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

    Table Runner of the Month Club

    May 21st, 2009

    Table Runners

    The Jeri Kelly Table runner of the month club is now beginning. Every Month we will offer a fabric kit for the table runner collection based on Jeri’s Book: “Every Month”. You can pick and choose the table runners you want to make or you can sign up for the year long program and save. You MUST own the book to participate. The book costs a one time fee of $24.00 and includes 12 patterns plus a place mat pattern that coordinates with the sets. The fabric kit includes everything you need for backing, binding and quilt top. For each table runner, you will need to supply 1 yard of Steam A Seam II - LIGHT and 17″ x 44″ Low Loft Batting (available here on the web site).Year Long Program: Sign-up for a year, start anytime, you will receive 1 book (when you order it) and 12 fabric kits over the next 12 months. You will be charged $12.99 each month plus shipping. Your first kit for the current month will be sent right away and all subsequent kits will be sent by the second week of each month. Because these kits are seasonal,we will send you the June kit in May so you have time to sew and complete the kit for the next month.

     If you have any questions, do not hesitate to let me know!

    Happy Day!

    Wendy

    My Garden is Planted!

    May 14th, 2009

    Wendy's GardenIf you have followed the newsletter, or the blog for any length of time, you know by now that I lost my Gazebo in a winter snowstorm and decided to have raised beds installed.  Well after long last the beds are planted with a glorious abundance of vegetables!!!  I have to admit that this is very exciting for me.  The vegetables are all planted!  Here is a list of what I have planted:

    1. Roma Classic Tomatoes

    2. Bush Early Girl Hybrid Tomato

    3. Red Bell Sweet Pepper

    4. Orange California Wonder Bell Pepper

    5. Romaine Lettuce x9

    6. Sweet Basil x 2

    7. Cilantro

    8. Cucumbers x 2

    9. Hood Strawberries x 2

    10. Bush Sugar Snap Peas

    11. Cabbage

    12. Beets

    13. Carrots

    14. Butternut Squash

    15. Brussels Sprouts

    My friend and customer Norma has also given me:

    16. Arugula

    17. Baby Bok Choy

    18. Summer Mellon

    Then in some pots around the raised beds, I have some wonderful Herbs.  Mint and Oregano.  I am still looking for some Italian Parsley.  I know this has nothing to do with quilting, but I just had to share this with all of you!  There is still time for you to plant your own victory garden!  I will keep you up to date as this my first official garden grows up!

    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

    Fabric Blowout Special

    May 4th, 2009

    Heart To Hand Needle Case

    May is our Anniversary month Beth, Dean and I have some special sales scheduled for you all month.  This week it is Buy two yards of fabric and get one free.  See the details below.

    We also have special projects scheduled for this month.  The first one is this adorable Heart To Hand Needle Case.  From White Sewing comes this cute project. Take a traditional log cabin square and transform it into this charming and handy needle case. It’s fun…and it’s easy to make! Our kit includes fabric to make the case, felt, and muslin. You supply the leftover batting or flannel, and buttons. We will include a free copy of the pattern and templates. We are offering a variety of color options. Inside Needle Case

    It’s Fabric Sale Time!!!

    We have a lot of fabrics that we need to clear out so we can purchase new ones. This week we are offering a buy two yards of fabric and get one free sale.  Limited to stock on hand. Put a total of three yards of fabric in your cart, and the server will charge you for the three but Susan will make the correction when she processes your order.  You will need to pay regular shipping on all fabric.

    You can find all our fabrics here.

    Happy Day!

    Wendy

    Quilting Book Sale!!

    April 28th, 2009

    More Fat Quarter Quilts

     We have a lot of books that we need to clear out, we know you can get books for less money at other book dealers so we are going to eliminate our book section. We are offering a buy two get one free sale on books. Buy any two books and get a third of equal or lesser value for FREE. Limited to stock on hand.

    Online: Put three books in your cart, and the server will charge you for the three but Susan will make the correction when she processes your order. You do need to pay shipping on all three books. Order online at www.hearttohandonline.com 

    At the Shop:  Visit us and mention this sale!

     Sale runs through May 5th. Hundreds of books to choose from, pictured is just an example of what we have to offer.

    Heart To Hand Quilt Shop
    412 Beavercreek Road
    Suite 607
    Oregon City, OR 97045
    503-230-9075
    Or visit us on the web: www.hearttohandonline.com

    Open: Tuesdays: 11:00am to 9:00pm Fridays 10:00am to 2:00pm Saturdays 10:00am to 5:00 pm.

    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

     

    Happy Easter

    April 12th, 2009

    All of us  at Heart To Hand would like to wish you and yours a wonderful Easter Day! We thank you for your faithfulness as our customers during these difficult economy days in our country.  Without you we would not be here, and we do realize that!  We know when you order, visit or call you are making a choice to buy your fabrics and supplies from us. Please let us know what we can do to serve you, our loyal customers!

     

     

    Click to play this Smilebox slideshow:

     

    Create your own slideshow - Powered by Smilebox

     

    Hoppy Day!
    Wendy and The Heart To Hand Team

    “The resurrection gives my life meaning and direction and the opportunity to start over no matter what my circumstances. ”
    ~ Robert Flatt 

    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

    « Previous Entries