Navigation
- News
- Latest News
- Sports
- Longform
- Daily Newsletter
- Weekly Newsletter
- Restaurant Guide
- Restaurant Reviews
- 100 Houston Creatives
- Stage
- Calendar
- Submit an Event
- Movie Times
- HoustonPressArtsGuide.com
- Music
- Latest Music
- Concerts
- Concert Calendar
- Submit a Music Event
- Music Newsletter
- More
- Things to Do/Tickets
- Best of Houston
- Best of Houston Readers' Choice Winners
- Slideshows
- Promotions
- Lists
- Houston Press Careers
- Local Advertising
- Things To Do Newsletter
- Best Of Newsletter
- News
- Latest News
- Sports
- Longform
- Daily Newsletter
- Weekly Newsletter
- Restaurant Guide
- Restaurant Reviews
- 100 Houston Creatives
- Stage
- Calendar
- Submit an Event
- Movie Times
- HoustonPressArtsGuide.com
- Music
- Latest Music
- Concerts
- Concert Calendar
- Submit a Music Event
- Music Newsletter
- More
- Things to Do/Tickets
- Best of Houston
- Best of Houston Readers' Choice Winners
- Slideshows
- Promotions
- Lists
- Houston Press Careers
- Local Advertising
- Things To Do Newsletter
- Best Of Newsletter
Support Us
Houston's independent source of
local news and culture
Grocery Guide
Katharine ShilcuttNovember 23, 20126:00AM
This is the last in a five-part series on keeping your groceries safe and sound.
Can you freeze that extra loaf of bread you baked? And did you know that you absolutely should freeze that new bag of flour you brought home for at least 48 hours before using or storing it? Flour almost always contains insect eggs, and freezing the flour will kill off any eggs before they hatch -- saving you from opening a bag of flour one day to bake cookies and being greeted by a colony of weevils.
What about honey? Does it even go bad? And how can you tell when baking powder or baking soda are no longer effective and should be thrown out? Read on for our handy guide to making the most out of your dry goods and storing them in the most effective manner possible.
See also:- Spoiler Alert! A Handy Infographic Guide to the Shelf Life of Fruit- Spoiler Alert! A Handy Infographic Guide to the Shelf Life of Meat and Fish- Spoiler Alert! A Handy Infographic Guide to the Shelf Life of Vegetables- Spoiler Alert! A Handy Infographic Guide to the Shelf Life of Dairy Products
Follow Eating Our Words on Facebook and on Twitter @EatingOurWords
') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } // const insertionBlockClass = `fdn-paragraph-insertion-block`; const styleElementHook = `fdn-paragraph-insertion-styles`; jQuery(element).addClass(insertionBlockClass); if (jQuery(`[${styleElementHook}]`).length === 0) { jQuery('div.fdn-content-body, div #storyBody').append('
') const paragraphLineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() const styleElement = jQuery(`
`); const styleText = ` div.fdn-content-body br+.${insertionBlockClass}:not([hidden]), div #storyBody br+.${insertionBlockClass}:not([hidden]) { margin-top: ${paragraphLineHeight*2}px; margin-bottom: ${paragraphLineHeight}px; } div.fdn-content-body br+.${insertionBlockClass}[hidden] > div:last-of-type, div #storyBody br+.${insertionBlockClass}[hidden] > div:last-of-type { margin-bottom: ${paragraphLineHeight*2}px; } ` styleElement.text(styleText); jQuery('head').append(styleElement); } // } } jQuery(element).insertBefore(this.paragraphEndNodes[index]); } else { console.warn('Foundation.ParagraphTool.insertElemenAt: invalid insertion index', index); } } this.insertElemenAtEnd = function (element) { if (this.paragraphEndNodes.length) { let lastNode = this.getNodeAtIndex(this.paragraphEndNodes.length -1); if (this.isDoubleBrParagraphBreak(lastNode) || this.isBrParagraphBreakBeforeBlockElement(lastNode)) { if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) { jQuery('
').insertAfter(this.paragraphEndNodes[index]); jQuery('
').insertAfter(this.paragraphEndNodes[index]); } else { jQuery('div.fdn-content-body, div #storyBody').append('
') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } } } } this.bodyContainer.append(element); } this.getNodeAtIndex = function (index) { return this.paragraphEndNodes[index]; } }
`); } var paragraphCount = myParagraphTool.getParagraphEndNodeCount(); // No need to insert if there aren't enough paragaphs if (paragraphCount >= parseInt(item.requiredCountToDisplay)) { // Matches specific paragraph insertion indexes if (item.insertPoint.match(/^\d+$/) !== null) { var insertIndex = parseInt(item.insertPoint) - 1; // Insert within content if (insertIndex < paragraphCount) { myParagraphTool.insertElemenAtIndex(componentElement, insertIndex); } // Append to the end if the insert point is beyond the paragraph count else { myParagraphTool.insertElemenAtEnd(componentElement) } } // Matches for 1/2, 1/4, 2/3, 5/6, etc else if (item.insertPoint.match(/^[1223456]\/[23456]$/) !== null) { var fractionMatch = new RegExp(/^([123456])(?:\/)([23456]$)/); var fractionPart = parseInt(item.insertPoint.match(fractionMatch)[1]); var fractionWhole = parseInt(item.insertPoint.match(fractionMatch)[2]); var fractionValue = fractionPart / fractionWhole; var fractionIndex = Math.floor(myParagraphTool.paragraphEndNodes.length * fractionValue) - 1; myParagraphTool.insertElemenAtIndex(componentElement, fractionIndex); } // Matches for every Nth insertion point else if (item.insertPoint.match(/^\d*th$/i) !== null) { var intervalIndex = parseInt(item.insertPoint.match(/^(\d*)th$/i)[1]); var startingIndex = parseInt(item.startingPoint) - 1; var insertionMax = parseInt(item.maxInsertions) || 100; var insertionCount = 0; for (var i = startingIndex; i < myParagraphTool.paragraphEndNodes.length && insertionCount < insertionMax; i++) { if ((i - startingIndex) % intervalIndex === 0) { let currentNode = myParagraphTool.getNodeAtIndex(i); const clonedComponent = componentElement.clone(); myParagraphTool.insertElemenAtIndex(clonedComponent, i); insertionCount++; } } } } }); Foundation.Content['6432567'].setupInlineComponents = function () { return true; }; if (typeof callback === 'function') { callback(); } }, 200); } Foundation.Content['6432567'].previewInsertionPoints = function () { var myParagraphTool = Foundation.Content['6432567'].paragraphTool myParagraphTool.paragraphEndNodes.each((index, item) => { const insertionPointPlaceholder = jQuery(`
Insertion point ${index+1}
`) myParagraphTool.insertElemenAtIndex(insertionPointPlaceholder, index); }); return 'Paragraph insertion placeholders applied.'; }
KEEP THE HOUSTON PRESS FREE...Since we started the Houston Press, it has been defined as the free, independent voice of Houston, and we'd like to keep it that way. With local media under siege, it's more important than ever for us to rally support behind funding our local journalism. You can help by participating in our "I Support" program, allowing us to keep offering readers access to our incisive coverage of local news, food and culture with no paywalls.
Make a one-time donation today for as little as $1.
Katharine Shilcutt
Contact:Katharine Shilcutt
`); setTimeout(() => { (function(e,t){if(t._ym===void 0){t._ym="";var m=e.createElement("script");m.type="text/javascript",m.async=!0,m.src="//static.yieldmo.com/ym.min.js",(e.getElementsByTagName("head")[0]||e.getElementsByTagName("body")[0]).appendChild(m)}else t._ym instanceof String||void 0===t._ym.chkPls||t._ym.chkPls()})(document,window); }, 300); }}, 1000);
Trending Food & Drink
- Houston Bars and Restaurants Celebrating Cinco de Mayo 2024
- Where to Brunch in Houston This Mother’s Day 2024
- This Week in Houston Food Events: Ice Cream in the Park, Wine on the Bayou and a Buzzy New Happy Hour
Don't Miss Out
SIGN UP for the latestfood & drinknews, free stuff and more!
Sign Up
Become a member to support the independent voice of Houstonand help keep the future of the Houston Press FREE
I SupportLearn More
Latest Stories
- This Week in Houston Food Events: Ice Cream in the Park, Wine on the Bayou and a Buzzy New Happy Hour
By Brooke Viggiano
- Openings and Closings: Blue Tuba Opens Soon, Prego Will Depart
By Lorretta Ruggiero
- 5 Best Weekend Food Bets: Beer, Crawfish and Pickleball
By Brooke Viggiano
More »
', 'fetching') }, success: function (data) { // console.log(data.result, data.error, data) if (data) { if (data.error) { // presentResult('Trouble loading content.', 'error') } else if (data.result) { presentResult(data.result, 'remove', function () { cmInstance.queue.push(function () { if (typeof apntag === 'object') { apntag.anq.push(function() { if (typeof Foundation.ApnAds.fillAds === 'function') { Foundation.ApnAds.fillAds() } }) } }) cmInstance.queue.push(reflowRightColumnItems) }) } else { // presentResult('How did we get here?', 'error') } } else { // presentResult('No result or error returned from content request.', 'error') } }, complete: function () { fireEvent('foundation:multiitem:itemLoaded', { objId: contentOid }) cmInstance.queue.push(fetchUnloadedItems) }, error: function (error) { // presentResult('Ajax request error.', 'error') } }) } } cmInstance.queue.push(reflowRightColumnItems) cmInstance.queue.push(fetchUnloadedItems) var reflowSensor = new ResizeSensor(cmInstance.items[0], reflowRightColumnItems) jQuery(document).on('scroll resize', function () { // Prevent rapid firing of event stuff clearTimeout(onScrollTimeout) onScrollTimeout = setTimeout(function() { // console.log('Foundation.MultiItem onScroll event') updateFurthestDownInView() }, 100); }) jQuery(document).on('foundation:multiitem:itemchange', function () { // Prevent rapid firing of event stuff clearTimeout(onItemChangeTimeout) onItemChangeTimeout = setTimeout(function() { // console.log('Foundation.MultiItem foundation:multiitem:itemchange event ') cmInstance.onItemChange() }, 100); }) }; Foundation.MultiItems = Foundation.MultiItems || { add: function (multiItem) { Foundation.MultiItems[multiItem.id] = multiItem; } }; Foundation.MultiItems.add(new Foundation.MultiItem({ id: 'ContentRowMultiple', onItemChange: function () { if (this.currentPermaLink) { var state = {} var title = '' var url = this.currentPermaLink history.pushState(state, title, url) } if (this.currentCanonical) { document.querySelector('meta[property*=og\\:url]').href = this.currentCanonical document.querySelector('link[rel*=canonical]').href = this.currentCanonical } if (this.currentThumb) { document.querySelector('link[rel*=image_src]').href = this.currentThumb document.querySelector('meta[name*=thumbnail]').content = this.currentThumb document.querySelector('meta[property*=og\\:image]').content = this.currentThumb document.querySelector('meta[name*=twitter\\:image]').content = this.currentThumb } if (this.currentTitle) { document.querySelector('title').text = this.currentTitle } // Google track pageview if (typeof ga === 'function') { ga('set', 'location', window.location.href) for (let i = 2; i <= 10; i++) { let currentDimension = jQuery(Foundation.MultiItems["ContentRowMultiple"].currentItem).attr('ga-dimension'+i) if (typeof currentDimension === 'string') { ga('set', 'dimension' + i, currentDimension) } else { ga('set', 'dimension' + i, '') } } ga('send', 'pageview') // // Track when scrolling to another item // const multiItemIndex = jQuery(Foundation.MultiItems["ContentRowMultiple"].currentItem).attr('fdn-content-multi-item-index') // if (multiItemIndex.match(/[23456789]/) !== null) { // ga("send", "event", "Article", "ArticleScrolled", multiItemIndex); // /* console.log(`sending ArticleScrolled ${multiItemIndex}`); */ // } } // // Chartbeat track pageview if (typeof pSUPERFLY === 'object') { pSUPERFLY.virtualPage({ sections: jQuery(Foundation.MultiItems["ContentRowMultiple"].currentItem).attr('ga-dimension2') || '', authors: jQuery(Foundation.MultiItems["ContentRowMultiple"].currentItem).attr('ga-dimension6') || '', path: window.location.path, title: Foundation.MultiItems["ContentRowMultiple"].currentTitle || '' }) } } })) // // Track the first item on load. // jQuery(() => { // if (typeof ga === 'function') { // const multiItemIndex = jQuery(Foundation.MultiItems["ContentRowMultiple"].currentItem).attr('fdn-content-multi-item-index') // if (multiItemIndex.match(/\d/) !== null) { // ga("send", "event", "Article", "ArticleScrolled", multiItemIndex) // } // } // }) // if (typeof Foundation.Content !== 'object') { // function throwInExtraInsertions (oid) { var startIndex = 16; var objId = oid; var myBodyElement = jQuery(`[fdn-content-multi-item="${objId}"] .fdn-content-body`); var myParagraphTool = new window.Foundation.ParagraphTool(myBodyElement) // console.log(event, myBodyElement, myParagraphTool); if (typeof apntag === 'object') { apntag.anq.push(function() { // Throw in a placeholder after every 5th usable paragraph ending for (var i = startIndex; i < myParagraphTool.paragraphEndNodes.length; i++) { if (i % 4 === 0) { let currentNode = myParagraphTool.getNodeAtIndex(i); let myElement = jQuery('