There was a problem initializing the feedlist plugin. Make sure the file feedlist.php is directly under your wp-content/plugins directory and not a subdirectory.
args = $args; $this->id = md5(uniqid(rand(), true)); } function GetID(){ $this->Debug($this->id); } /* core methods */ // called automagically if you use an inline filter (inside a post/page). function FeedListFilter(){ return $this->BuildFeedOutput(); } // call this if you want to process one feed function FeedListFeed(){ echo $this->BuildFeedOutput(); } // call this if you want to process a feed file function FeedListFile(){ $this->args = $this->GetArgumentArray(); $this->output = ''; // Seed the random number generator: srand((double)microtime()*1000000); $feed = Array(); $feedInfo = $this->LoadFile($this->args['file']); if(count($feedInfo)){ // we have some feeds // Randomize the array: shuffle($feedInfo); // Make sure we are set to show something: ($this->args['feedsToShow'] < 1) ? 1 : $this->args['feedsToShow']; ($this->args['feedsToShow'] > sizeof($feedInfo)) ? sizeof($feedInfo) : $this->args['feedsToShow']; // we will fetch each feed, then coallate items for($i=0;$i<$this->args['feedsToShow'];$i++){ $thisFeed = $feedInfo[$i]; $urlAndTitle = preg_split("/~/", $thisFeed); $feedUrl = trim($urlAndTitle[0]); $feedTitle = trim($urlAndTitle[1]); $this->rs = $this->GetFeed($feedUrl); if($this->rs){ $this->items = $this->rs->items; if($this->args['random']){ shuffle($this->items); } // Slice off the number of items that we want: if ($this->args['num_items'] > 0) { $this->items = array_slice($this->items, 0, $this->args['num_items']); } if(!$this->args['mergeFeeds']){ $this->output.= '
'.$feedTitle.'
'; if($this->args['show_date']){ $this->output .= '
updated: '. $this->NormalizeDate($this->rs) . '
'; // fl_tz_convert($this->rs->last_modified,0,Date('I')).''; } $this->output.=$this->Draw($this->items,$this->args); } else { $feed = array_merge($feed,$this->items); } } } $this->output .= ''; } else { $this->output = $this->args['before'] . 'No Items Were Found In the Provided Feeds. Perhaps there is a communication problem.' . $this->args['after']; } // coallate feed items echo $this->output; } /* end core methods */ /* basic settings - you can edit these */ function GetSettings(){ /* CONFIGURATION SETTINGS ---------------------- cacheTimeout how long should your cache file live in seconds? By default it is 21600 or 6 hours. most sites prefer you use caching so please make sure you do! connectionTimeout how long should I try to connect the feed provider before I give up, default is 15 seconds showRssLinkListJS TRUE by default and will include a small block of JS in your header. If it is false the JS will not be included. If you want the $new_window = 'true' option to use the JS then this must also be true. Otherwise both true and simple will hardcode the target="_blank" into the new window links */ // DEFINE THE SETTINGS -- EDIT AS YOU NEED: $feedListDebug = false; // To debug this script during programming (true/false). $cacheTimeout = 21600; // 21600 sec is 6 hours. $connectionTimeout = 15; // 15 seconds is default $showRSSLinkListJS = true; $Language = 'en_US'; // Choose your language (from the available languages below,in the translations): $Translations = array(); // Please send in your suggestions/translations: // English: $Translations['en_US'] = array(); $Translations['en_US']['ReadMore'] = 'Read more...'; // Dutch: $Translations['nl_NL'] = array(); $Translations['nl_NL']['ReadMore'] = '[lees verder]'; // French: $Translations['fr_FR'] = array(); $Translations['fr_FR']['ReadMore'] = 'Lisez davantage'; $feedListFile = '/feeds.txt'; // IF you are going to use the random feedlist generator make sure this holds the correct name for your feed file: // Build an array out of the settings and send them back: $settings = array ( 'feedListDebug' => $feedListDebug, 'cacheTimeout' => $cacheTimeout, 'connectionTimeout' => $connectionTimeout, 'showRSSLinkListJS' => $showRSSLinkListJS, 'language' => $Language, 'translations' => $Translations, 'feedListFile' => $feedListFile ); return $settings; } function GetDefaults(){ $settings = $this->GetSettings(); return array( 'rss_feed_url' => 'http://del.icio.us/rss', 'num_items' => 15, 'show_description' => true, 'random' => false, 'before' => '
  • ', 'after' => '
  • ', 'description_separator' => ' - ', 'encoding' => false, 'sort' => 'none', 'new_window' => false, 'ignore_cache' => false, 'suppress_link' => false, 'show_date' => false, 'additional_fields' => '', 'max_characters' => 0, 'max_char_wordbreak' => true, 'file'=>$settings['file'], 'feedsToShow'=>0, 'mergeFeeds'=>false, 'show_date_per_item' => false, 'show_description_only' => false ); } /* end basic settings */ function BuildFeedOutput(){ $this->args = $this->GetArgumentArray(); $this->rs = $this->GetFeed($this->args['rss_feed_url']); $this->output = ''; if($this->rs){ $this->items = $this->rs->items; if($this->args['random']){ shuffle($this->items); } // Slice off the number of items that we want: if ($this->args['num_items'] > 0) { $this->items = array_slice($this->items, 0, $this->args['num_items']); } $this->output = $this->Draw(); } return $this->output; } function Draw(){ $settings = $this->GetSettings(); $this->items = $this->NormalizeDates($this->items); $this->items = $this->SortItems($this->items,$this->args['sort']); // Explicitly set this because $new_window could be "simple": $target = ''; if($this->args["new_window"] == true && $settings["showRSSLinkListJS"]) { $target=' rel="external" '; } elseif ($this->args["new_window"] == true || $settings["new_window"] == 'simple') { $target=' target="_blank" '; } $this->output =''; foreach($this->items as $item){ $thisLink = ''; $linkTitle = ''; $thisDescription = ''; $thisTitle = $item['title']; $thisItemDate = ''; if($this->args['show_description_only']){ $this->args['show_description'] = true; } if ($this->args['encoding']){ // very poor and limited internationalization effort $thisTitle = htmlentities(utf8_decode($thisTitle)); } if (isset($item['content']['encoded']) || isset($item['description'])){ if (isset($item['description'])){ $thisDescription = $item['description']; } else{ $thisDescription = $item['content']['encoded']; } // Handle max_characters and max_char_wordbreak before the htmlentities makes it more complicated: if (!empty($this->args['max_characters']) && is_numeric($this->args['max_characters'])) { $thisDescription = substr($thisDescription, 0, $this->args['max_characters']); // If true, we cut on the last space: if (!empty($this->args['max_char_wordbreak'])) { $max_char_pos = strrpos($thisDescription, ' '); if ($max_char_pos > 0) { $thisDescription = substr($thisDescription, 0, $max_char_pos); } } } else if ($encoding) { //further really weak attempt at internationalization $thisDescription = htmlentities(utf8_decode($thisDescription)); } $linkTitle = $thisDescription; $linkTitle = strip_tags($linkTitle); $linkTitle = str_replace(array("\n", "\t", '"'), array('', '', "'"), $linkTitle); $linkTitle = substr($linkTitle, 0, 300); // if we are only showing the description we don't need the separator.. if (strlen(trim($thisDescription)) && !$this->args['show_description_only']) { $thisDescription = $this->args['description_separator'].$thisDescription; } } // Only build the hyperlink if a link is provided..and we are not told to suppress the link: if (!$this->args['suppress_link'] && strlen(trim($item['link'])) && strlen(trim($thisTitle)) && !$this->args['show_description_only']){ $thisLink = ''.$thisTitle.''; } elseif (strlen(trim($item['link'])) && $this->args['show_description']) { // If we don't have a title but we do have a description we want to show.. link the description $thisLink = ''.$thisDescription.''; $thisDescription = ''; } else { $thisLink = '' . $thisTitle . ''; } if($this->args['show_date_per_item']){ $thisItemDate = '
    ' . $item['feeddate'] . '
    '; } // Determine if any extra data should be shown: $extraData = ''; if (strlen($this->args['additional_fields'])){ // Magpie converts all key names to lowercase so we do too: $this->args['additional_fields'] = strtolower($this->args['additional_fields']); // Get each additional field: $addFields = explode('~', $this->args['additional_fields']); foreach ($addFields as $addField) { // Determine if the field was a nested field: $fieldDef = explode('.', $addField); $thisNode = $item; foreach($fieldDef as $fieldName) { // Check to see if the fieldName has a COLON in it, if so then we are referencing an array: $thisField = explode(':', $fieldName); $fieldName = $thisField[0]; $thisNode = $thisNode[$fieldName]; if (count($thisField) == 2) { $fieldName = $thisField[1]; $thisNode = $thisNode[$fieldName]; } } if (is_string($thisNode) && isset($thisNode)) { $extraData .= '
    ' . $thisNode . '
    '; } } } if($this->args['show_description_only']){ $this->output .= $this->args['before'].$thisLink.$thisItemDate.$extraData; } else if ($this->args['show_description']){ $this->output .= $this->args['before'].$thisLink.$thisItemDate.$thisDescription.$extraData; }else{ $this->output .= $this->args['before'].$thisLink.$thisItemDate.$extraData; } if (is_numeric($this->args['max_characters']) && $this->args['max_characters'] > 0) { $this->output .= ''; } $this->output .= $this->args['after']; } return $this->output; } function ArrayPush(&$arr) { $args = func_get_args(); foreach ($args as $arg) { if (is_array($arg)) { foreach ($arg as $key => $value) { $arr[$key] = $value; $ret++; } }else{ $arr[$arg] = ""; } } return $ret; } /* utility functions */ function NormalizeDates(){ $newItems = array(); foreach($this->items as $item){ $this->ArrayPush($item,array("feeddate"=>$this->NormalizeDate($item))); array_push($newItems,$item); } return $newItems; } function NormalizeDate($item){ $d=""; if(array_key_exists('pubdate',$item)) { $d = date($this->dateFormat,strtotime($item['pubdate'])); } else if (array_key_exists('published',$item)) { $d = date($this->dateFormat,strtotime($item['published'])); } else if (array_key_exists('dc',$item) && array_key_exists('date',$item['dc'])) { $d = date($this->dateFormat,strtotime($item['dc']['date'])); } else if (array_key_exists('last_modified',$item)) { $d = $this->TimezoneConvert($item['last_modified'],0,Date('I')); } else { $d = date($this->dateFormat); } return $d; } function TimezoneConvert($datetime,$tz_from,$tz_to,$format='d M Y h:ia T'){ return date($format,strtotime($datetime)+(3600*($tz_to - $tz_from))); } function MakeNumericOnly($val){ return ereg_replace( '[^0-9]+', '', $val); } function GetMonthNum($month){ $months = array('jan'=>'01','feb'=>'02','mar'=>'03','apr'=>'04','may'=>'05','jun'=>'06','jul'=>'07','aug'=>'08','sep'=>'09','oct'=>'10','nov'=>'11','dec'=>'12'); $month = strtolower($month); return $months[$month]; } function SortItems(){ $sort = strtolower($this->args['sort']); $sort = explode(" ",$sort); if((count($sort) ==1 || $sort[0] == 'asc') && $sort[0] != 'none'){ $sort[1] = SORT_ASC; } elseif ($sort[1] == 'desc') { $sort[1] = SORT_DESC; } else { $sort[1] = ''; } if($sort[0] == 'feeddate'){ $sort[2] = SORT_NUMERIC; } else { $sort[2] = SORT_STRING; } if (($sort[1]!='') && count($this->items)) { // Order by sortCol: foreach($this->items as $item) { $sortBy[] = $item[$sort[0]]; } // Make titles lowercase (otherwise capitals will come before lowercase): $sortByLower = array_map('strtolower', $sortBy); array_multisort($sortByLower, $sort[1], $sort[2], $this->items); } return $this->items; } function LoadFile($file){ /* load the $feedListFile contents into an array, using the --NEXT-- text as a delimeter between feeds and a tilde (~) between URL and TITLE */ $x = file($file); return preg_split("/--NEXT--/", join('', file($file))); } function GetArgumentArray(){ $this->args = $this->AssignDefaults(); $a = array(); foreach($this->args as $d=>$v){ if($this->args[$d] === 'true') { $a[$d] = 1; }else if($this->args[$d] === 'false'){ $a[$d] = 0; }else{ $a[$d] = $v; } $a[$d] = html_entity_decode($a[$d]); } return $a; } function AssignDefaults(){ $defaults = $this->GetDefaults(); $a = array(); $i=0; foreach ($defaults as $d => $v) { $a[$d] = isset($this->args[$d]) ? $this->args[$d] : $v; $a[$d] = isset($this->args[$i]) ? $this->args[$i] : $a[$d]; $i++; } return $a; } function GetFeed($feedUrl){ $this->feed = false; if(function_exists('fetch_rss')){ $this->feed = fetch_rss($feedUrl); } return $this->feed; } function InitializeReader($ignore_cache){ $settings = $this->GetSettings(); if ($ignore_cache) { if (is_numeric($ignore_cache)) { define('MAGPIE_CACHE_AGE', $ignore_cache); } else { define('MAGPIE_CACHE_ON', false); } } else { define('MAGPIE_CACHE_AGE', $settings["cacheTimeout"]); } define('MAGPIE_DEBUG', false); define('MAGPIE_FETCH_TIME_OUT', $settings["connectionTimeout"]); } function Debug($val,$name=''){ if(strlen($name)){ print('

    '.$name.'

    '); } print('
    ');
    				print_r($val);
    				print('
    '); } /* end utility functions */ } function rssLinkListFilter($text) { return preg_replace_callback("//", "feedListFilter", $text); } /* Templates can call any of these functions */ function rssLinkList($args){ if(!is_array($args)){ $args = func_get_args(); } return feedList($args); } function feedList($args){ if(!is_array($args)){ $args = func_get_args(); } $feed = new FeedList($args); return $feed->FeedListFeed(); } function randomFeedList($args){ if(!is_array($args)){ $this->args = parse_str($args,$a); $this->args = $a; } $feed = new FeedList($args); return $feed->FeedListFile(); } function feedListFilter($args){ $args = explode(",",$args[1]); if(count($args) == 1 && !strpos($args[0],":=")){ $a = array(); $a["rss_feed_url"] = $args[0]; $args = $a; } else { $a = array(); foreach($args as $arg){ $arg = explode(":=",$arg); $a[$arg[0]] = $arg[1]; } $args = $a; } $feed = new FeedList($args); return $feed->FeedListFilter(); } /* end template functions */ if (function_exists('add_filter')) { add_filter('the_content', 'rssLinkListFilter'); } if(function_exists('FeedListInitError')){ add_action('admin_head','FeedListInitError'); } if(function_exists('add_action')) { function rssLinkList_JS(){ $jsstring = ' '; echo $jsstring; } $jsFeed = new FeedList(''); $settings = $jsFeed->GetSettings(); if($settings["showRSSLinkListJS"]){ add_action('wp_head', 'rssLinkList_JS'); } } ?> 2008 April-- Heart To Hand: Quilt Talk with Wendy

    Sisters Outdoor Quilt Show 2008 Bus Trip

    April 30th, 2008

    Sisters Outdoor Quilt Show 2008 Poster

    Sisters Outdoor Quilt Show 2008 Bus Trip

    Heart To Hand Quilt Shop Invites to join us for the 2008 Sisters Outdoor Quilt Show Bus Trip

    When: Saturday, July 12th,
    Time: 6:30 am SHARP to approximately 8:00 pm
    Cost: $59.00 if you pay by May 1st
    (Last Chance to SAVE)$69.00 after May 1st through June 12th.

    Once again we have chartered a Luxury Liner Bus to take us to Sisters, Oregon on July 12th. Bus will pick up customers at Mall 205 in Portland and at the shop in Oregon City. We will arrive at 10am in Sisters. At 2:00pm we will be taking a side trip to Bend, and visiting BJ’s Quilt Shop for fun and excitement, return to pick up any stragglers and leave from Sisters at 5:00pm. Spend the day shopping, participating in Make and Take projects, viewing all the beautiful quilts that will be on display and just relax because a professional will be doing the driving for us! We will provide a light breakfast but lunch and dinner will be on your own. You are welcome to bring your own! Sorry, no refunds after June 1st. Space limited to 50 customers, first come first served.

    Your ticket includes:
    1. Transportation to and from Portland or Oregon City.
    2. A light breakfast of bagel, cream cheese and juice .
    3. Bus Shopping Trip to BJ’s Quilt Shop in Bend.
    4. 20 minute fast food stop in Salem for dinner on your own.
    5. Games and prizes during your trip.
    Sign up today! No reserved seats, we load the bus by the order in which you signed-up for the trip.

    Happy Day!

    Wendy

    Quilt Tip: Ironing vs. Pressing

    April 29th, 2008

     IRONING vs. PRESSING  

     These may sound similar, but they are NOT.   The motion used in ironing, moving the iron back and forth, stretches your fabric and distorts its shape thus causing your square blocks to look like tortilla chips!    

     The motion used in pressing simply ‘trains’ your seams to lay in a certain direction.   This is done very easily, like pressing a button on your keyboard.  You raise your finger then you lower your finger onto the button. (see, no rubbing motion like in ironing)     In pressing a seam, you raise your iron above the fabric, then lower your iron onto the fabric and apply slight pressure.   

     To test your pressing skills, take two (2) 1.25″ strips of cloth, sew them together using an exact 1/4″ seam, PRESS seam and MEASURE. Your strip should be 2″ across from the top of the strip, to the bottom, if it is not….  YOU IRONED IT!   Try again, you’ll learn how.  

    Pressing Pointers:  

    1.     Press a seam before crossing it with another seam.  

    2.     Press seam allowances to one side, not open. 

    3.    Whenever possible, press seams toward the darker fabrics.  

    4.     Press seams of adjacent rows of blocks, or rows within blocks, in opposite directions so the pressed seams will abut as the rows are joined. 

      5.     Press appliqués very gently from the backside of the background fabric.  They are prettiest when slightly puffed, rather than flat.  Oliso Steam Iron

     

     

    How long has it been since you had a new iron?  Let me share with you my new favorite! it is the Oliso Steam Iron with Stainless Steel soleplate.  This is the only iron that lifts and lowers itself with a simple touch. The patented Auto-Lift System  is the most advanced iron technology available. It provides you the ultimate in safety and control. When you touch the handle, the iron automatically lowers onto your ironing. When you let go, it lifts above the fabric for a safer, smarter and simpler ironing experience. Minimize scorching, tipping, burns and wrist strain. Now with stainless steel soleplate! You can get this iron without the stainless steel soleplate for $9 less, but if you ask me the stainless steel soleplate is well worth the extra $9 for the long time wear of your new iron.

    Happy Day!

    Wendy

    Quilt Tip: Measure Your Quilt for Perfect Borders

    April 28th, 2008

    For the last couple of months I have been preparing quilt patterns to take to International Quilt Market in a couple of weeks.  One of the things I write over and over again is how to measure your quilt for perfect borders.  If you are like me, you might have some quilts that have wavy borders and when hang on a wall do not lay straight.  The solution to this ongoing problem for so many quilters, is to measure, measure, MEASURE.  While strolling through some quilt videos on the web this past week, I found a short vido that explains in detail how to measure your quilt for those perfect borders.  So take a look at this video if you need some assistance in this area.


    Happy Day!

    Wendy 

    Quilt Tip: Bed Quilt Sizes

    April 27th, 2008

    BED SIZES

    How many of you have made a quilt that said it was for a twin only to find out it is a lap size? Today I thought I would share with you the finished quilt sizes you need to make for bed quilts:
    Twin- A quilt made to fit a twin-size bed should measure at least 63″ x 87″.
    Double - quilt made to fit a double-size bed should measure at least 78″ x 87″.
    Queen - A quilt made to fit a queen-size bed should measure at least 84″ x 92″.
    King - A quilt made to fit a king-size bed should measure at least 100″ x 92″.

    But remember, if you have any questions… MEASURE THE BED so you can be sure to count the length of drop you may need!

    QUILT BACKING

    If you are finishing a quilt, you may wonder how much fabric you are going to need for a quilt backing.  Here is the Yardage amount needed if your fabric is 44″ wide.  Remember you need to cut the backing fabric into two equal pieces and sew the pieces together for a Twin or Double quilt.  Three equal pieces if you are working on a Queen or King.  We do carry fabric that is up to 109″ wide to help eliminate the need for seaming.

    Twin- 5 1/4 yards
    Double - 5 1/4 yards
    Queen - 7 1/2 yards
    King - 8 yards

    I hope that helps when you are working on your next quilt!

    Happy Day!

    Wendy

    Quilt Tip: Mitered Borders

    April 26th, 2008

    Mitered Quilt Binding

    I love the look of Mitered borders.  Here in this picture is a mitered border in a table runner.  We used a border print fabric RJR: Heirloom Lilacs. When an angled seam would complement the overall design of a quilt, consider using a Miter border corners. To begin, if you are using multiple borders for your quilt, sew the inner and outer border strips together first and attach to quilt as one unit.

     

    Step 1. Cut 2 strips the width of the quilt plus twice the border width and 2″ inches extra and 2 strips the length of the quilt plus twice the border width and 2″ inches extra.

     

    Example: Width of quilt before border = 65″; width of border(s) to be added = 6″

     

    65″ + 6″ + 6″ + 2″ = strip 79″ long. Cut 2 strips 79″ long (width measurement).

     

    Repeat steps for length of quilt.

     

    Step 2. Center and pin border strips in place. Start and end seams 1/4″ from raw edges: backstitch to secure. Press seams toward quilt top.

     

    Step 3. Lay quilt top right side up on ironing board and fold each border end flat back onto itself, right sides together, forming a 45 degree angle at the quilt’s corner. Press to form sharp creases.

     

    Step 4. Fold quilt on diagonal, right sides together. Align border strip raw edges, border seams at the 1/4″ backstitched point, and creases; pin in place. Stitch along crease, backstitching at 1/4″ border seam.

      

    Step 5. Lay quilt top right side up on ironing board and fold each border end flat back onto itself, right sides together, forming a 45 degree angle at the quilt’s corner. Press to form sharp creases.

     

    Step 6. Fold quilt on diagonal, right sides together. Align border strip raw edges, border seams at the 1/4″ backstitched point, and creases; pin in place. Stitch along crease, backstitching at 1/4″ border seam.

     

    Step 7. Press seam open. With quilt right side up, align 45 degree angle line of square ruler on seam line to check accuracy. If corner is flat and square, trim excess fabric to 1/4″ seam allowance.

     

    Happy Day!

    Wendy

    Open House Weekend

    April 25th, 2008

    Open House Ad

    If you are in the Portland Metro Area this weekend, I hope you will come and join us for our Open House and Grand Opening Party at the new shop in Oregon City.  If you need directions to the shop click here.

     

    sit-and-stitch

    Happy Day!

    Wendy

    Quilt Tip: Continuous Binding

    April 24th, 2008

    Continuous Bias Binding Step 1

    Quilts with simple straight edges can be bound using straight-grain binding. You can make straight-grain binding by piecing cut strips (by the width, or length, of the fabric) and sewing them end to end.

    Or you can make continuous binding.  This is done by start with a 18″ square of fabric, this will make 110″ of 2 1/2″ binding adjust square according to your individual needs. Draw a diagonal line as if you were preparing to cut bias strips. Cut on the drawn line.  

     

    Continuous Bias Binding Step 2
    Sew the resulting two pieces together with a 1/4-inch seam allowance. Press the seam open. Use a quilt marker and a ruler to draw parallel lines across the length of the seamed fabric piece. The space between the lines is the desired width of the binding strip, including seam allowance. For example, space the lines 2 1/2″ apart for a 5/8″ inch-wide finished binding.Bring the bias edges together, matching right sides, to create a tube. Offset the edges by shifting one down so that the top of one edge aligns with the first marked line of the opposite edge. Holding the fabric in this position, sew the bias edges together. Press the seam open. Begin cutting on the top marked line and cut in a continuous spiral. Each time you cut across the seam, you’ll be moving down one marked line.

     Looking for tools to help your hand sewing of your binding to be easier?  Try Collins Binding hem clips (COL136). These hold your binding in place while you are stitching it.  Want more information on Binding, try Dover Publications: Quilter’s Pocket Reference Guide (E2358).  It contains all the information on quilt fabric yardages plus lots more. Easy-to-use charts on mattress, batting, and quilt sizes, yardage equivalents, layouts, bias binding, enlarging and reducing.

    Happy Day!

    Wendy

    Show and Tell with Coffee and Stitch

    April 23rd, 2008

    Show and Tell from Sit and StitchOnce a week a group of wonderful women gather at the shop for Coffee and Stitch.  This is a free class and meets from 11:00 to 1:30 every Tuesday.  Judy and Sue, the original Coffee and Stitch women, have been working on these wonderful banners by Cottage Creek Quilts.  Each banner measures about 12″ x 30″ and makes a great front door quilt.  Try one of these great patterns, or join Judy, Sue and the rest of the group any Tuesday! 

    Happy Day!

    Wendy

    QUILTING TIP: Maintaining Seam Consistency

    April 22nd, 2008

    1/4\I was hopeful when the 1/4″ feet (JAM14) came out that having to worry about accurate 1/4″ seaming was not as necessary as it was in past years.  But my 1/4″ foot is not exact and is not helpful to me with irregular seams like on star points and such.  So I did some research on maintaining seam size consistency. Quilting expert Alex Anderson offers the following seam consistency advice:
     
    1. “One remedy is to take advantage of the quarter inch indentation on the sewing machine, as a key seam guide in addition to the quarter-inch presser foot.

    2. For sewing machines without the indentation, place a ruler under the presser foot and drop the needle at the 1/4-inch mark on the ruler. Place a piece of tape at 1/4-inch mark for a visual marking. Pay attention to both the tape and the indentation for a perfect seam.

    3. Align both the top and bottom fabrics to ensure that the fabric hasn’t shifted—this is any easy step to overlook.

    4. Use a seam ripper or a stiletto to feed the fabric through for consistent stitches.

    5. Change the needle (SCH1735) after every eight hours of use.”

    Happy Day!

    Wendy

    Clothworks Royal Orchids Collection

    April 21st, 2008

    Clothworks Royal OrchidsFor those of you who have been waiting, the rest of the Clothworks Royal Orchid Collection is in!  We have run out of the Light Blue Orchids and are unable to get any additional bolts of this fabric.  So if you love this collection, order NOW as we completely sold out of the first shipment in a little over a week.  This is a beautiful collection and the fabrics are running anywhere from $8.99 to $10.99 a yard at other sites, so you cannot pass up our prices.

    Happy Day!

    Wendy

    « Previous Entries