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'); } } ?> Quilting Classes-- Heart To Hand: Quilt Talk with Wendy

    ARRIVAL OF THE ACCUQUILT GO!

    March 9th, 2010

    AccuQuilt GoThe AccuQuilt GO! Fabric Cutter is a lightweight, portable fabric cutter quilters can transport easily to classes, guild meetings, retreats and quilting bees. Its design was inspired by the ideas and suggestions of quilters throughout the world and features an easy-lift handle, comfortable roller handle grip, magnetic seal and a neutral, light-colored work surface. Fabric cutting dies for the AccuQuilt GO! are light and made exclusively to ft the portable GO!fabric cutter. Designed for time-saving accuracy, these dies ensure all cuts are quick and precise so your shapes piece together perfectly every time. A GO!

    My friend, neighbor and co-worker Jan and I bought the AccuQuilt about a month ago. We have been experimenting with the different templates.  Jan just loves the 2 1/2″ Strip cutter for borders and binding. She continues to comment on how straight her borders are now.

    I started with the cutting die that has three different shapes on it.  I designed a table runner using the 2 1/2″ Square ; 2″ Finished Half Square Triangle.  I love the exactness of this product.  Cutting half square triangles was never my strength and they would bob and weave all over my quilt.  But with the AccuQuilt, I did not have that problem.

    I have only loaded 15 of the MANY dies that the AccuQuilt uses on the web tonight.  Look for the rest of them on the web in the next week or so.  If you are going to order some dies, and want other ones not listed, just include a note in the comments section of your checkout form and we will have it for you so you can save on postage. You can check out all the dies that Accuquilt offers at The AccuQuilt Website.

    Before to long, we will be offering to cut your fabric with the new AccuQuilt and hope to be able to set up a rental option for you at the shop. I will be doing several demo’s at the shop on the AccuQuilt in April so check the class schedule and drop by the shop to test it out!

    Happy Day!

    Wendy

    ONE MILLION PILLOWCASE CHALLENGE

    January 21st, 2010

    Pillowcase Challenge Logo

    American Patchwork & Quilting® magazine is challenging quilters, crafters and sewers across the country to Make a Pillowcase, Make a Difference. Local quilting enthusiasts will join the cause to help reach the goal of making and donating one million pillowcases to benefit local charities. Every pillowcase can make a difference in our community. A pillowcase can provide comfort for a cancer patient, hope for a foster child, encouragement for a battered woman, or beauty for a nursing home resident.

    Heart To Hand, will be hosting events locally at 412 Beavercreek Road, Suite 607, Oregon City, OR 97045 (located in the Red Soils Business Park). We are also hosting opportunities on our web site.

    Throughout 2010, quilters, crafters and sewers across the nation will make pillowcases at their local quilt shops. The shops will then collect the pillowcases and donate them to a local charity of their choice. A counter will track nationwide progress toward the goal of one million pillowcases.

    As the owner of Heart To Hand I see the One Million Pillowcase Challenge as a way to give back to the local community. “We have worked locally with the Passages Quilt Program and Emanuel Children Hospital, Oregon Food Bank as well as making over 50 quilts that were auctioned off for Breast Cancer awareness. I am glad to be able to help our customers serve the community in yet another way. Pillowcase Challenge

    We will be hosting pillowcase events locally and on-line. How you can participate:
    1. Donate 100% Cotton Fabric in 1 yard increments to the shop to be made into pillowcases.
    2. Make pillowcases at home and get them to the shop.
    3. Join the Pillowcase Parties! in January and February (Click link to see dates and times)
    4. Order Pillowcase kits with the pattern from Heart To Hand. These are sale priced at $6.99. Make your pillowcase and return them to the shop to help us reach our goal!

    FREE PATTERNS:
    Need some pattern idea for getting started. Check out this link for four free Pillowcase Patterns

    For more questions call 503-230-9075, visit the store or the website at: www.hearttohandonline.com.
    Happy Day!
    Wendy

    2010 McKenna Ryan Club

    September 24th, 2009

    As 2009 rapidly comes to a close it is time to start choosing projects for the New Year.  We just concluded voting for the Thimbleberries 2010 and the color Midnight won.  You can sign up for Thimbleberries now on our web site.

    Our McKenna Ryan club is just finishing Once Upon A Star and I would like to invite you all to vote on which of the following four quilts you would like to see us work on for next year.  Take a look at the quilts and then vote below in the “Leave A Reply” Section.

    Quilt One: Back on the Farm

     Back on the Farm

     

     

     

     

     

     

     

     

     

     

     

    Quilt Two: Storybook Farm

     Storybook Farm

     

     

     

     

     

     

     

     

     

     

     

    Quilt Three: Journey To The Light

     Journey to the Light

     

     

     

     

     

     

     

     

     

     

     

    Quilt Four: When Friends Gather

     When Friends Gather

     

     

     

     

     

     

     

     

     

     

     

    Please cast your vote by October 2, 2009

    Happy Day!

    Wendy

     

    Thimbleberries 2010

    September 14th, 2009

    Village Green

    It is voting time again, no not for politics, but rather for what color you would like to see us offer for Thimbleberries 2010.

    This year the quilt is called Village Green, the quilt finishes at 72″ x 82″ and comes in three color options.  Each is created to reflect the stages of light: Dawn, Dusk, and Midnight.  You will see houses, trees, stars and flowers.

    In addition to the monthly block patterns, Lynette designs extra club projects exclusively for Thimbleberries Quilt Club members, and communicates with you monthly through her Quilt Club newsletter. Before we commit to this major investment of time and fabric, we need to know from you if you might interested and what color way you like best.  We will take voting through September 22nd.

    Cost: Depending on the number of participants the price will run $320 - $280. 

    This includes: Membership fee, All 12 patterns, All fabrics for top. borders and binding, plus 108″ wide Thimbleberries backing fabric.  Pricing will be spread out over three installments.  You will be charged $25 up front to hold your place in the club.  This is non-refundable but will be credited towards the price of your first fabric kit.  Monthly project patterns and bonus instructions for the Throw Quilt and the Queen Quilt options. Actual shipping fees do apply. This program will start shipping Jan 15, 2010.

    Village Green: Dawn

    Village Green Dawn

     

     

     

     

     

     

     

     

    Village Green: Dusk

    Village Green Dusk

    Village Green: Midnight

    Willage Green Midnight
     
     
     
     
     
     

     

     

     

     

     

     

    Cast your vote now! Send me an email to: Wendy@hearttohandonline.com

    Title it: Thimbleberries 2010 Vote
    And vote for your favorite color way: Dawn, Dusk or Midnight.
    I look forward to hearing from you!
    Happy Day!
    Wendy

    Saturday Breakfast Club

    May 7th, 2009

    Table TopperDo you need a reason to get up in the morning or add bounce to your day? We think the Heart to Hand Breakfast Club will provide a great start to your day. Breakfast Club offers a breakfast treat, and coffee or tea, along with a Quilter’s recipe (pattern). The Breakfast Club patterns are designed for your dining (quilting) pleasure. Just bring in your sewing machine and tools along with a “Fabric Cinnamon Roll”. The size of the Fabric Cinnamon Rolls will depend on whether you are making a table runner or a king size quilt.

    The staff at Heart to Hand is available during normal shop hours if you need assistance selecting fabrics for your Fabric Cinnamon Roll.

    Meets: May 9th
    Time: 11:00 to 4:30
    Cost: $35

    Buddy Special! Which is 20% off your class fee when you bring a buddy to take the class too. Register online or call the shop: 503-230-9075.  You MUST register by Friday at 2:00pm so we can have your treats waiting for you! 

     

     

    This picture is of the Eggs Benedict 30″ x 35″ table topper.  The great thing about this project is you use 2 1/2″ strips and can make 4 place mats, a table topper, A wall quilt, a lap quilt, a full/queen or a king all from the same pattern that we give you. So pick your project and come join us this Saturday.

    Sharyle has an out of town engagement, and so Beth and I will be team teaching this class.  Sharyle will return in June to teach Grannies Granola.  June 13th.

    Happy Day!

    Wendy

    McKenna Ryan Block of the Month

    April 24th, 2009

    McKenna Ryan Block of the MonthHere is the fourth block in the McKenna Ryan Block of the Month program: Wish Upon A Star.  The embellishments and quilting are not done yet but I thought you would enjoy seeing this block.  The Polar Bears are throwing snowballs!

    We started Wish Upon A Star back in January. Anyone can join at any time.  We meet on the third Saturday of each month, or you can order the supplies online and work at home.  We have fabric kits, patterns and embellishments for this great Winter Holiday Quilt. 

    So come join us!  For information on the block program and to order it online visit our website.  To register for the class at our Oregon City Store you can get more information here.

    Happy Day!

    Wendy

    Follow-up to National Quilting Day!

    April 20th, 2009

    National Quilting Day QuiltMarch 21st was National Quilting Day.  Shown here is a quilt top sewn by Barbara Timby she also donated the fabric, Beth Durand donated her long-arm quilting skills and Heart to Hand donated the batting and backing.  This will be given to our local Habitat for Humanity.  Thanks to Barbara and Beth for a great charity quilt! We will let you know more details about this donation later this month.

    You can still get this free pattern at the link above.

    In other activities, Jan just put up a beautiful wall of purses and purse patterns at the shop.  Norma and I are teaching classes on totes and encourage you to sign up. 

    Norma is teaching Six-Pack Stack Reversible Tote that uses six different Fat quarters.  I will be teaching the Birdie Sling class.  I hope you will consider coming and joining us.

    Dick and Jane Tote

    Beth just finished this cute tote, using a panel from Michael Miller’s Dick and Jane Fabrics.  Very simple and so very cute! Anyone can make it and NO pattern needed!

    Happy Day!

    Wendy

     

    Signs of Spring

    April 11th, 2009

    Signs of SpringThere are lots of signs that spring is about.  Today, here in Oregon, we had glimpses of beautiful weather among the rain drops.  But there is more, the Daffodils and tulips are starting to bloom in my garden.

    Peeps line the isles of the local grocery stores calling my name in new colors and flavors and waiting for Easter Baskets.  I love Peeps.  I have not Lenox Peeps Basketpurchased a package this year, showing SOME restraint, but I usually like to buy them on clearance.  Can you believe it; even Lenox China has a line of Peeps-ware.  This cute Peeps Easter Basket is just ONE example. I wonder if that means they will go on clearance after Monday.  I am sure I can only wish, if you see this $100 piece for $20 let me know!!!

    Of course new fabrics arriving in the shop are also signs of Spring.  I just finished adding 17 fabrics to the web.  I love the colors.  I think many of you know I am pretty partial to purple, and while there are a couple of purples, there are some beautiful greens, teals, oranges and red!  All signs of Spring.

    Several of our customers have been working on “One Block Wonder” projects.  I bought one fabric just for them this week called “English Countryside” wow is it a beautiful fabric by Debbie Beaves. Maybe we can convince Chris to make a sample out of it and teach another class in the “One Block Wonder” so you can join us!

    What ever signs of Spring are showing in your neighborhood, I hope they are wonderful!

    Happy Day!

    Wendy

    Leftovers: For Cooking and Sewing

    April 10th, 2009

    Birdie Sling

    I struggle with leftovers.  They are good for a day or so and then I get bored with them.  So I wrap them up in the freezer to save for another day and usually end up throwing out the leftovers six months later.  But having cleaned the fridge and freezer a week or so ago I decided that there was a 2 pound leftover pork tenderloin roast in the freezer that I did not want to go bad.  I have been thinking of pulled pork sandwiches.  Not that I have ever had one, but still I was thinking of them.

    So after cleaning the kitchen, I pulled the pork out and mixed up a sauce of French onion soup, catsup, mustard, brown sugar, and vinegar.  Mixing it well in the crock-pot, I tossed in my leftover tenderloin.  The house smells wonderful! It has been cooking for about six hours on low and I will cook it another two.  Then shred the pork and roll it into my new favorite bread option.  Flat-out whole grain flat bread.  YUMMY. 

     So dinner was taken care of and I was off to my next project.  Making this cute purse pattern designed by Amy Butler called a “Birdie Sling“. I made this bag in great Spring and Summer fabric colors using fabric leftovers.  I think it is a cute bag, and realize that this been a day of leftovers in cooking and sewing, and everything can look new again from a different prospective.

    Happy Day!
    Wendy

    Local Update: Quilt Till You Wilt

    January 21st, 2009

    Can you believe that January has five Saturdays?  I did not realize it until late last week.  I am going to have some minor surgery on my hand the first week of February and I kept thinking it was coming sooner than later.  Well, a 5th Saturday explains my date confusion.

    As a result, we are adding another Quilt Till You Wilt Potluck for THIS Saturday, January 24th.  If you have never been to a Quilt Till You Wilt, you are missing out on a lot of fun and sewing time!  This is one of our MOST popular events!  Bring an unfinished project to work on? Want to sew and socialize? Then join us for a Free Class: Quilt Till You Wilt. EVERY month in 2009! This is an open quilting and sewing time. We start at 10:00am and you may sew all day until 4:45pm or until you wilt. Bring anything you want to work on and bring Lunch Pot Luck Dish to share for our 12:30 Lunch and continue snacking all day. Please bring your Show and tell items as well, for our sharing time before Lunch.

    PLEASE RSVP online or by calling 503-230-9075 so we can save you a seat!

    Happy Day!

    Wendy

    « Previous Entries