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'); } } ?> Skill Building-- 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

    Fabric Dyeing with Kool Aid

    August 3rd, 2009

    Kool-AidWell it is Summertime, and the weather is warm.  If you have kids, or even if you do not, you likely have made a pitcher or two of Kool-Aid or lemonade.  I received this great article in the mail today from Quilting Arts Embellishment Newsletter.  I knew when I read it, I just had to pass it on to you!

    “Linda Sharp, whose needle-felted plum quilt was chosen to depict November in the 2010 Quilting Arts calendar, shares her technique and enthusiasm for Kool-Aid dyeing, a perfect summer activity.

    Kool-Aid dyeing gives absolutely delicious colors to protein fibers,” says Linda. “This process is safe, inexpensive, and easy. The materials are readily available, it requires no special equipment, and it smells wonderful!

    Materials

    • Natural (protein) fibers such as wool, dog hair, alpaca, angora, silk, etc. (Loose fibers, like dog hair, can be stuffed into a loosely woven synthetic gift bag to keep them together while dyeing.)
    • Dish detergent
    • Packets of unsweetened Kool-Aid drink mix (Do not use the color-change flavors.)
    • Mask
    • A stainless steel or un-chipped enamel pot
    • Water
    • Wooden stirrers (such as chopsticks)

    Optional: Candy thermometer, rubber gloves

    Note: A good ratio to begin with is 1 package of Kool-Aid to 1 ounce of fiber. (Double this for the lemon flavor.) More Kool-Aid will give you stronger colors. You can mix colors if you’re feeling adventurous. Use unsweetened Kool-Aid and do not add sugar.

    Directions

    1. Gently wash your fiber with lukewarm water and a little dish detergent and rinse the soap out. Treat wool very gently or it will felt. Let your fiber soak in lukewarm water while you prepare the dye.
    2. Fill the pot with enough water to comfortably cover your fiber. Put on your mask before opening the Kool-Aid package(s) to avoid inhaling the powder. Stir the powder into the water with the wooden chopsticks until dissolved.
    3. Add the wet fiber to the pot and slowly heat to just below boiling (85°C or 185°F). You can use a candy thermometer, if you have one. Check periodically to see that the mixture is not boiling, to avoid felting the wool. The dyeing process is done when the water is clear. You can tell by dipping the chopsticks in the water. This process will probably take about half an hour.
    4. When the water is clear, move the pot off the heat and let it cool. Then gently rinse it with water that is the same temperature as the fiber. Hang to dry. The colors will be lightfast and colorfast; no heat-setting is required.

    This is a great way to get a bit of silk or wool the color you want, to overdye a batch of garish fibers, or to get matching colors. Dye many batches now, and you’ll have a cache of beautifully colored fibers that smell like summer all winter long.”

    Please send picture if you try this wonderful idea!

    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

    Quilting with Friends:
    Heceta Head Lighthouse Project

    March 31st, 2009

    LighthouseAt the end of February, my friend and neighbor Jan returned from the Sewing and Stitching Show in Puyallup, Washington.  Jan came over to show me all her purchases, including a new book about Oregon Lighthouses.  Jan knows that I am kind of a lighthouse person and they have great symbolism for me. 

    Before I had my transplant I designed and made a lighthouse vest that went everywhere with me the three months following my transplant, from ICU to, the Surgery floors, and to rehab and back again.  It meant a lot to me.

    So Jan and I decided to do a lighthouse landscape together.  This is the Heceta Head Lighthouse near Florance Oregon. We started this project at the same time, and Jan is finished.  Mine does not have the borders, quilting or binding done.  But I thought I would share Jan’s with all of you. I think it is truly beautiful.

    This amazing sky fabric is from the Thomas Kinkade Collection.  The rest of the fabrics shown in this quilt Jan has collected over the past years of quilting.  My collection of landscape fabrics is not quite as large, but thankfully Jan is willing to share her fabrics with me.  I hope you and a buddy can find a project you can work on together and talk about.  It makes a world of difference and builds a wonderful friendship that will leave you with lots of great memories.

    Happy Day!

    Wendy

    Exploring New Borders

    March 5th, 2009

    Borders WorkbookI just came into the office after spending an evening in the sewing room.  Wow, have I missed sewing.  Since my hand surgery at the beginning of February, I have not been in the sewing room to work on anything.  So finally tonight I was able to get myself in there and reacquaint myself with the joys of fabric, quilting and my machine. 

    In this time of economic struggle, many people are using up their fabrics from their stash to keep up with their quilting.  Looking and patterns you have used before are also an economic opportunity.  I would like to encourage you to consider thinking about learning a new technique or skill.  Like exploring new borders. 

    That Patchwork Place: Border Workbook is the perfect book to use to teach yourself a new technique and learn to sew great borders for your quilts.  This book is a wonderful guide full of tips for choosing the best design, selecting fabrics, and figuring yardage.  With a simple calculator and pencil and paper this book will give you step-by-step directions for 27 border designs in several sizes, with instructions for calculating any size border you need.  That is right from baby to king size your borders turn out perfectly every time.  Most of these borders are rotary cut and speed pieced to go together quickly and easily.  Each border is illustrated at the edge of the page for quick reference, and a full color gallery provides you with lots of inspiration.  There are also paper pieced versions for many of the the borders. 

    If you needmore inspiration, and live in the Portland area, stop by the shop and see a nice sample of these borders that Sharyle made as samples for her Borders class.  Click on the video below for more great ideas.  You can order the book here and begin exploring new borders right away! 

      Get the Flash Player to see this player.

    Happy Day!

    Wendy

    National Quilting Day
    March 21st

    March 3rd, 2009

    National Quilting DayThe theme for National Quilting Day this year is “Welcome Home”. The NQA writes: “As our country looks forward to 2009 with a new president and new hope for our country, we at The National Quilting Association thought it would be appropriate this year, to devote National Quilting Day, to the home. The housing market is in decline and foreclosures are on the rise, with greater numbers of homeless families to follow. “We would like to encourage our members, guilds, and sponsors to join together and give their effort and energy to those who may be struggling for warmth and comfort.”

    The NQA has created a block pattern called,“Welcome Home”, to help all of us help others. You can get a link to the free pattern here. Send in your blocks to Heart To Hand and we will make quilts for those involved with Habitat for Humanity.  If you live in the area, join us at the shop for an all day sew in to make these blocks and quilts. You can register for this class here.

    Printing Photos on Fabric

    October 14th, 2008

    There are several ways to transfer photos to fabric for photo quilts or journal quilts. The short video below talks about one way using Bubble Jet.  I strongly encourage you to use fabrics that are 100% cotton, a very fine texture or fabric no texture at all.  Finally, opt for pale colors for the background of your photos.  This way the pictures will show up easily.  Despite the fact that I do not pre-wash any of my fabrics for sewing, I do recommend that you prewash all your fabrics for you photo fabric projects. The author of this video prints on flannel, and personally I do not like printing on napped fabric, however, it does have its place if you do not mind that the clarity of the picture is not real sharp.

    Any ink jet printer will transfer photos to fabric.  Laser printers will not.  For best quality prints, using the technique described in this video, Make sure that your picture has a moderate to high resolution, preferably of around 300 dots per inch (dpi) or more.

    Happy Day!

     

     

     

    Block of the Month: Contrary Wife

    October 10th, 2008

    I thought I would start talking a little bit about specifics of the blocks that I am choosing for the block of the month lottery program.  In hopes of getting more of you interested in participating.  If you are not familiar with the Heart To Hand Lottery Block Program, click here for more information.

    For October I chose the Contrary Wife Block.  This is a block that has had a lot of different names, but Contrary Wife is the original name.  A vintage quilt block from the Kansas City Star Newspaper published in the 1930’s. Between 1928 and 1961, The Kansas City Star published over 1,000 different quilt patterns in the newspaper. These patterns have become world famous and will remain favorites for generations to come.

    This quilt block is one of the basic nine patch patterns and only uses squares and half square triangles to complete. The fabric included in the Lottery BOM kit is the pear and apple fabric shown in the block above. It is easy to make for quilters of all skill levels.  So come on and participate in the Lottery Block of the Month!

    Happy Day!

     

     

     

    BEGINNING QUILTING CLASS
    Starts Soon!!!

    September 30th, 2008

    Come join us to learn the art of quilt making! Patchwork and quilting skills are easy to achieve when you use the appropriate methods and materials. This six-week class will take you through the process of choosing a project to creating your very own quilt. You’ll learn about the materials and supplies needed to make a quilt and how to use them, the techniques and skills necessary and how to do them, and make unfamiliar quilting terms part of your everyday language. And when the class is over, you’ll take home a fully finished quilt project! Starts NEXT Tuesday with our great teacher Judy Minami.  Be sure to call 503-230-9075 to register or register online here.

    Meets: October 7, 14, 21, 28, November 4 and 11th
    Time: 7:00 to 9:00 PM
    Cost: $75 + Supplies
    Teacher: Judy Minami

    If you are new to quilting and do not live in the area, where you can take a class consider taking yourself through the book that Judy uses: “Your Very First Quilt Book, Or It Should Be!” by Carol Doak.

    Take some time for yourself and get involved in this great class!

    Happy Day!

     

     

     

     

    « Previous Entries