Extracted from:
No Fluff, Just Stuff Anthology
The 2006 Edition
This PDF file contains pages extracted from No Fluff, Just Stuff Anthology, published by
the Pragmatic Bookshelf. For more information or to purchase a paperback or PDF
copy, please visit http://www.pragmaticprogrammer.com.
Note: This extract contains some colored text (particularly in code listing). This is
available only in online versions of the books. The printed versions are black and white.
Pagination might vary between the online and printer versions; the content is otherwise
identical.
Copyright © 2005 The Pragmatic Programmers, LLC.
All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any
means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher.
Chapter 15
Buried Treasure
by Glenn Vanderburg
Glenn Vanderburg has been a programmer through only the second half of the
history of computing, but he’s interested in the first 30 years, too. For years
he has dreamed of teaching a course on the topic. That’s just one reason he’s
delighted that people are discovering the practical value of knowing our history.
Glenn is a consultant who lives in Plano, Texas, with his wife, Deborah, and their
sons, James and Daniel.
Glenn talks about some recent tool and book favorites starting on page 215.
THE SIGNS 200
Over the past three years, many of my talks for the No Fluff, Just Stuff
symposium series have shared a common theme. It was partly conscious,
but mostly it came naturally, as a reflection of where I think
our field is going.
I think our field is going backward.
And it’s not a minute too soon. For years, we’ve been fighting our
way forward, step by harried step, but for the most part it has been
down the wrong path. The grass looked greener here—or at least, better
manicured—but traps are lurking here, some of them very well concealed.
We keep falling into them, but we keep fighting on. “We must
be more careful!” we say, calling over our shoulders to our companions
as we walk toward the next pit.
But some in the programming field have started to remember another
place, one we passed on the way. It was a little unkempt and overgrown,
to be sure, and maybe there were just as many dangers—but somehow
the place, overall, was less dangerous. Plus, people who ventured
in there keep telling us about the riches to be found in that place—
wonderful treasures buried just below the surface.
The reasons why these older ways turn out to be better are subtle and
occasionally complex, and I don’t claim to understand them all. Whatever
the reasons, the signs of what’s happening are clear. Let’s look at
those first and then try to make sense of the whys and wherefores.
15.1 The Signs
The signs that we’re returning to older stomping grounds are everywhere.
Those of us programmers who know the history of our field
spotted them early (although I certainly wasn’t the first). Now they’re so
prominent, and growing so quickly, that many people have spotted the
trend. The signs I’ve noticed tend to fall into a few distinct areas: the
way we go about designing and building systems, the kinds of programming
languages and techniques we employ, and the way languages and
platforms are implemented.
Design
The way programmers and teams of programmers design software is
changing. After decades of increasing investment in tools and disciplines
to support an analytical approach to software design, our field
CLICK HERE to purchase this book now.
THE SIGNS 201
is running headlong toward a more empirical approach based on iteration,
trial and error, and rapid feedback. There is widespread acknowledgment
that the task of software design is simply too complex to tackle
with a purely analytical approach. Programming will always involve a
lot of careful thought, of course, but we must also be guided by feedback,
checking our assumptions against the hard realities of real systems
and running code.
The modern approaches to design aren’t precisely the same as the older
approaches from the 1960s and 1970s, but they share many of the
same characteristics. A prime example is the emphasis on iterative
development. Long before it became fashionable to try to design a program
completely before beginning programming, the common practice
was to build a simple, working system and gradually enhance it. Stories
are even told of Marvin Minsky at MIT taking this practice to an
extreme, beginning development by starting to debug an empty program.
The modern equivalent of that, of course, is test-driven development.
Guiding our development with automated tests is relatively new,
but developing in small increments, evolving the design as we go, has
a long history.
Another sign: today we are beginning once again to emphasize code
over pictures in the design process. Don’t get me wrong—we’ll always
draw pictures of our systems from time to time; that’s something programmers
have always done. But as the centerpiece of the design process,
UML and other graphical notations have clearly failed. After having
tried for years to improve software design by focusing on graphical
models before we start writing code, programmers have learned something
crucial. Code—good clean code, at least—is a more expressive
notation for the details of software than boxes and lines.
As a computer science student in the 1980s, I read papers by Jon Bentley
and others from Bell Labs extolling the virtues of domain-specific
languages (DSLs). The best way to build many kinds of systems, they
said, was to design simple, focused, special-purpose programming languages
for the applications’ domains, implement those languages, and
build the systems using languages tailored to the tasks at hand. Language
development tools such as yacc and lex were introduced as tools
to facilitate developing such languages. And that group had remarkable
success practicing what they preached, building groundbreaking tools
such as pic, grap, make, sed, awk, and, of course, yacc and lex. All of those
tools are still in use, in some form or other, decades later.
CLICK HERE to purchase this book now.
THE SIGNS 202
That style of development never really took off outside Bell Labs. Now,
though, it’s seeing a sudden resurgence. One of the most dramatic
overnight success stories in software development is the Rails web
framework, and much of Rails’ strength comes from its inclusion of
several distinct, small domain-specific languages focused on various
aspects of web application development. Two related tools that have
also garnered their share of attention, Capistrano (née SwitchTower)
and Rake, are also based on those concepts. The implementation techniques
are different from what the Bell Labs gang wrote about (and I’ll
talk about the new techniques next) but the concepts are the same.
The idea of domain-specific languages seems to be one whose time has
come.
Programming Techniques
I also see big changes in the programming techniques we use to build
our software. This isn’t entirely unrelated to the previous section; these
techniques have strong effects on our design, and vice versa.
The most obvious change in this category is the move toward dynamically
typed languages. Static languages of various stripes have dominated
the software development for decades, from the loosely typed C
and C++ to the stronger type systems of Pascal, Java, and C#. Most
programmers have been taught that strong, static typing and compiletime
analysis provide the only way to build robust, reliable systems.
That idea seemed to make sense, but it ignored the many solid systems
built using dynamic languages. Additionally, during my ten years as a
Java programmer I saw firsthand that strong typing is not a panacea;
in fact, truly robust Java-based applications are rather rare.
Today, many developers have realized that a static type system is a
two-edged sword. It does have some benefits, but it also has some
costs. The advent of unit testing, more than anything else, has served to
weaken static typing’s appeal. Ruby, Python, and even JavaScript are
growing more and more popular as developers discover the productivity
advantages of dynamic typing.
For various reasons, many of these dynamically typed languages are
dynamic in other ways as well. Your code can change (or augment) the
way built-in facilities work, for example. This sounds similar to how
aspect-oriented programming systems work, but the idea isn’t new; in
fact, aspect-oriented programming is a direct attempt to adapt older
CLICK HERE to purchase this book now.
THE SIGNS 203
dynamic language techniques to static languages, pioneered by some
of the same people who built those dynamic language facilities.
Dynamic languages also blur the distinction between compile-time and
run-time; in such languages, new code can easily be added to the system
while it’s running. Combined with other dynamic characteristics,
this gives rise to a technique called metaprogramming, which is essentially
extending your programming language from within. The practice
of metaprogramming is a big part of the reason that domain-specific
languages are making a comeback, because compared to building a
stand-alone interpreter or compiler for a language, it’s much, much
easier to define domain-specific constructs in a language that supports
metaprogramming. The new wave of DSLs gaining popularity in the
Ruby community are built within Ruby itself as libraries.
The trend toward dynamically typed languages is both widespread and
strong. Less obvious, though, is a resurgence of interest in functional
programming and functional languages. Just in the past two years,
two compelling applications have appeared that are written in Haskell:
PUGS (an exploratory, prototype implementation of Perl 6) and Darcs (a
powerful, decentralized revision control system). Other interesting systems
have been written in Objective CAML (including MTASC, a free,
blazingly fast ActionScript compiler). Those systems have prompted
many programmers to learn those languages just so they can contribute
to the projects, and the newcomers have been struck by the
power and efficiency of functional languages.
Plus, interesting functional languages continue to appear. XQuery, the
XML query language, is a functional language. This year’s No Fluff,
Just Stuff symposia will feature a talk from Ted Neward about Scala,
a terrific functional language designed to work compatibly on both the
JVM and the CLR. In fact, Ruby, Python, and JavaScript have strong
functional characteristics and are often used in a functional style.
But it’s not just a revival of old concepts in new languages; the old
languages themselves are seeing a resurgence. A surprising number of
people are discovering (or rediscovering) Lisp, due in part to the popular
essays of Paul Graham. Also, the use of Smalltalk is growing again,
sparked by some impressive systems such as Croquet and the brilliant
Seaside web framework.
CLICK HERE to purchase this book now.
WHY NOW? 204
Language Implementations and Infrastructure
I remember vividly the reaction of many programmers when Java was
released: “It’s interpreted! It’s garbage-collected! All array references
are bounds-checked. You can’t use languages like that; they’re too
slow!”
That was the common wisdom among most programmers for about
three decades. To be efficient, languages had to be compiled, and programmers
had to manage memory themselves.
It’s true that many Java-based systems perform poorly, and Java to
this day has a reputation for sluggishness. And, for that matter, early
implementations of Java really were excruciatingly slow. But that was
mostly due to immature implementations that used pure interpretation
of bytecodes and naive garbage collection strategies. In modern Javabased
systems, though, the slowness is due not to those characteristics
of the language implementation but to the libraries, frameworks, and
platforms that have been built on top of Java. Java’s garbage collector
performs extremely well, and many Java systems spend much less time
managing memory than do equivalent C and C++ programs. As far as
interpretation goes, the just-in-time compilers (JITs) and dynamic optimization
technologies employed by most Java implementations produce
very fast machine code at run-time.
Today we seem to have shed those earlier qualms about Java’s style
of language implementation. Oh, there will always be situations where
C is the most appropriate technology, but for most of the systems we
build, VM-based or interpreted languages are fast enough, and features
such as automatic memory management and array bounds checking
really do help us build more robust systems—they’re much more helpful,
in my opinion, than static typing.
For most systems, you get much more performance benefit from good
architecture than you do from fast code. That’s a big part of the reason
that typical Rails applications are at least as fast as their J2EE counterparts,
even though Java typically benchmarks as about ten times
faster than Ruby.
15.2 Why Now?
So far I’ve avoided a crucial question: if these older ways of doing things
are so great, why didn’t they succeed at first? Lisp and Smalltalk had
CLICK HERE to purchase this book now.
WHY NOW? 205
their moments, as did bottom-up and iterative development, and the
market chose a different direction. Why? And what has changed now
to make the time right?
First, it’s important to realize that there are more ways to fail than
there are to succeed, and the problems weren’t necessarily inherent to
the technologies. Here are just a few ideas about what went wrong the
first time and why things are different now.
The kinds of design techniques and processes that are returning to
prominence were originally used by individuals and very small teams
and began to show real weaknesses on more ambitious projects with
larger teams. It was perfectly natural to try to inject more “discipline”
into things with the use of phases, careful analysis and planning,
inspections, and so on. But there are other forms of discipline besides
top-down control, and we’ve learned from painful experience that software
development is just too complicated a task to really benefit from
central planning. Economies around the world, successful businesses,
and even military organizations are pushing power and responsibility
down toward the people in the trenches. The software development
industry has learned the same lessons. Rigid control hasn’t helped us
avoid mistakes, so the industry is returning to basic skills, communication,
and cooperation, supported this time by powerful tools and
improved team practices.
Dynamic languages can be implemented very efficiently, but it’s not
easy to do so. Early implementations of dynamic languages were rather
slow and required a lot of resources. It was much easier to build a C
compiler that generated fast code than to build, say, a Smalltalk VM
that performed similarly well. But implementation techniques have
continued to advance, and the performance gap has shrunk dramatically.
Not every dynamic or functional language has a state-of-theart
implementation, but we know from examples like Common Lisp,
Squeak Smalltalk, and Haskell that it is possible for such languages to
be blazingly fast.
As language implementations have been getting faster, our cost models
have been changing. The first time around, slow CPUs and expensive
memory meant that computing resources were not to be wasted, and
dynamic languages looked like the wrong trade-off. Now, though, the
balance has shifted. Sure, we still can’t afford to be completely heedless
of CPU and memory utilization, but fast machines and cheap memory
mean that the sensible trade-off today is very different. Productivity is
CLICK HERE to purchase this book now.
WHY NOW? 206
much more valuable than it used to be in software development, and
languages that save our time at the expense of some extra CPU cycles
make a lot of sense.
As mentioned previously, we’ve begun using better development practices
that help a lot. When projects don’t use version control and don’t
have a disciplined approach to testing, the safety net offered by static
typing seems to be quite valuable. We’ve learned, though, that we have
to build our own safety nets that cover all aspects of the project, not
just data types.
I could keep extending this list of reasons why things happened the
way they did. The full list includes reasons such as primitive tools, fractured
communities, weak development practices, incompatible competing
dialects, expensive implementations, the lack of any free versions
that developers could play with, and more.
Ultimately, though, we never really gave these tools and techniques
a fair chance the first time. A world that hadn’t yet really grasped
the concept and power of “emergence” fled from iterative development
as soon as it began showing flaws, not considering that the problem
was a lack of supporting tools and practices rather than the technique
itself. As far as languages are concerned, Lisp and Smalltalk were
always on the fringes of the software field. COBOL, Fortran, C, and
BASIC occupied the center. Occasionally we would adopt some of the
ideas, such as object orientation, but we would try to fit them into the
world we were used to, rather than taking them on their own terms.
As a result, we missed some important subtleties, like (for example) the
fact that object orientation doesn’t exist in isolation but benefits greatly
from other language characteristics such as blocks, dynamic typing,
and automatic memory management.
So it’s wrong to say “we tried that once and it failed.” We’re not going
back to what we tried once; we’re going back to what others had success
with. The industry at large tried to go a different way, and at
long last we’ve begun to realize that no matter how many new tools
we throw at our problems, software development still isn’t getting any
easier. Maybe it’s time to rethink the whole way we’ve been going. The
people who really embraced Lisp and Smalltalk early on don’t think
those languages failed (except in terms of gaining broad acceptance).
On the contrary, most of them that I know are either still finding ways
to work with those technologies or else yearning for a return to the good
old days.
CLICK HERE to purchase this book now.
MORE PAST IN OUR FUTURE 207
15.3 More Past in Our Future
I predict that we’ll see the increasingly wide adoption of dynamic languages,
metaprogramming, and agile design and development practices
over the next few years. In spite of many naysayers, momentum seems
to be building in this direction.
I don’t think it will stop with Ruby, Python, or any of the other new old
languages that are gaining popularity. Although those languages borrow
extensively from their progenitors, they stop short in some other
ways. I love programming in Ruby, but occasionally I find myself needing
some of the features of Smalltalk or Lisp that Ruby doesn’t have—
true macros, for instance, or the ability to easily pass multiple blocks
to a single method (with appropriate cues as to their distinct roles).
And don’t get the idea that I’m an old Smalltalk or Lisp programmer!
I come from a C, C++, and Java background. But I’ve recently begun
to understand some of the subtle strengths of languages that I used to
think were weird.
I’m not predicting a utopia, of course. These are trade-offs, and we’ll
give up some features to gain others. I can hear my skeptical friends
asking now, “Sure, all that stuff is powerful, but is that the kind of
power you want to give to the weakest programmers on your team?”
I bought into that argument for a while and argued that you should use
truly powerful languages only with sharp, experienced teams. But then
I started to notice something about the Java projects I was involved
in: weak teams and weak programmers will go to great lengths to do
the wrong thing. Time and again I’ve seen system designs that were
not only inappropriate but also much more difficult to build than better
designs would have been. I’ve just shaken my head in amazement—not
at the inappropriate designs per se because good design is difficult but
at the effort and tenacity it took to proceed with those designs in the
face of the obstacles the teams had to overcome to build them.
What I’ve concluded is that you can’t keep a weak team out of trouble
by limiting the power of their tools. The way forward is not figuring out
how to achieve acceptable results with weak teams; rather, it’s understanding
how to build strong teams and how to train programmers to
be part of such teams. One place to start is with more emphasis on history.
Our field is just barely 60 years old; there’s no excuse for allowing
programming students to remain ignorant of such recent history. Our
history is rich with lessons that have been forgotten.
CLICK HERE to purchase this book now.
MORE PAST IN OUR FUTURE 208
Here’s an example. I’m developing with Rails right now, and Rails incorporates
nice support for database migrations: little classes that encapsulate
the changes to production databases (including both schema
and data changes) required to move from one version or release of an
application to another. It’s a brilliant feature. But it has some problems,
and most of them involve the way migrations mesh with the way
we use version control. When we have a particular version of the software
checked out, we are working with a set of files that describe the
way the system looks at a given point in time. But migrations don’t fit
that model. There, in one version of your project, is a set of files that
describe the whole history of the database schema, not just a point in
time. It’s like having a little version control system stored within your
project, and that feels odd.
Typically we use version control to manage versions of program source
code, and we use that source to build the system from scratch each
time. Migrations, on the other hand, operate on persistent data; they
don’t have the luxury of starting from a clean slate.
In thinking about how to resolve some of these issues and perhaps fix
them, I suddenly realized Smalltalk developers have dealt with similar
issues for years. Smalltalk programs don’t exist in source files on disk
that are loaded, parsed, and compiled every time the system is run.
Rather, they exist as objects—class objects, method objects, predefined
and preconfigured instances, and other things—in a Smalltalk image,
essentially a dump of Smalltalk’s heap that is reloaded from disk and
reconstituted just as it was the last time you were using it. In other
words, Smalltalk programs exist as persistent objects.
So to learn how to solve my problems with migrations, it might help me
to find out how Smalltalk developers do version management of their
applications. I don’t know the answer yet; that’s a part of Smalltalk I’m
not familiar with. But I’m going to find out.
There’s more buried treasure there.
CLICK HERE to purchase this book now.
The Pragmatic Bookshelf
The Pragmatic Bookshelf features books written by working practitioners. The titles continue
the well-known Pragmatic Programmer style, and continue to garner awards and
rave reviews. As software development gets more and more difficult, the Pragmatic Programmers
will be there with more titles and products to help programmers and their
managers stay on top of their game.
Visit Us Online
No Fluff Just Stuff 2006
pragmaticprogrammer.com/titles/nfjs06
Web home for this book, where you can find and submit errata, send us feedback, and
find other related resources.
Register for Updates
pragmaticprogrammer.com/updates
Be notified when updates and new books become available.
Join the Community
pragmaticprogrammer.com/community
Read our weblogs, join our online discussions, participate in our mailing list, interact
with our wiki, and benefit from the experience of other Pragmatic Programmers.
New and Noteworthy
pragmaticprogrammer.com/news
Check out the latest pragmatic developments in the news.
Buy the Book
If you liked this PDF, perhaps you’d like to have a paper copy of the book. It’s available
for purchase at our store: pragmaticprogrammer.com/titles/nfjs06.
Contact Us
Phone Orders: 1-800-699-PROG (+1 919 847 3884)
Online Orders: http://www.pragmaticprogrammer.com/catalog
Customer Service: orders@pragmaticprogrammer.com
Non-English Versions: translations@pragmaticprogrammer.com
Pragmatic Teaching: academic@pragmaticprogrammer.com
Author Proposals: proposals@pragmaticprogrammer.com
Archive for the ‘Survival Guide’ Category
No Fluff, Just Stuff Anthology: Extract from The 2006 Edition
January 8, 2008The Best $21 Survival Guide
January 3, 2008The $21 Challenge
Survival
Guide
A quick reference guide by and for the members of
Simple Savings
Can you feed YOUR family for a whole week
with just $21???
© 2007 Simple Savings International Pty Ltd. Page 1 of 24
What is the $21 Challenge?
Congratulations on taking on the $21 Challenge! The challenge originated from a Simple Savings
member called Barbara Kane, who managed to feed her family of four for a whole week on just $21
following a dare from her husband! Barbara wrote to tell me how she managed it and I thought it
was a great idea so spread the word. More than 50 members took part in the first Challenge to see if
they could do the same and the numbers continue to just keep growing! Members love to take part
in the Challenge together, but you can choose to do it whenever you like, at a time that suits you
and your family best. It has proved a great way to get through particularly tough times, such as
when those nasty unexpected expenses arise, or just to prove to yourself that you can do it! Many
of these members who have been doing the challenge have larger families, so the rule of thumb they
have been using is to add an extra $5.25 per extra person – it still makes for an incredibly frugal
week!
What to do…
The key to surviving the week on just $21 worth of food is organisation! How many times do we
look in our pantries and say ‘I’ve got no food, I’ll have to go shopping?’ Before you hit the shops,
stop right there! You’ll be amazed at the meals you can come up with if you really put some
thought into it. Here is the perfect opportunity to use up all those bits and pieces lurking at the back
of your food cupboards and in the freezer. The aim is to make the most out of what you have
already got on hand, not to go to the supermarket and stock up before the week starts – that’s
cheating! One infamous member from the first Challenge revealed that she had no less than 11 cans
of corn gathering dust in her pantry! While she didn’t inflict ALL of them on her family during the
Challenge week, I do believe she managed to get through a fair few! Other members have been
amazed to take a good look at their pantries and find that they could probably live comfortably out
of it for several months – they had just never thought about it before. It’s easy to get into buying
the same old things week after week, so the Challenge is a great way to re-assess your shopping
habits and re-acquaint yourself with what you and your family actually do eat!
Planning is the key
When taking on the $21 Challenge for the first time, set aside some time to really plan your menu
for the week ahead. This will prove essential in order for you to know exactly what you are going
to be cooking and exactly what you need to buy to get within your $21 budget. If you have never
used a Menu Plan before, now is the time to start! No more excuses, everything you need can be
found on the Simple Savings website here: www.simplesavings.com.au/freestuff/ and you can
download your free Menu Planner, which is exactly the same one I use and gives examples of how
to use it. Dig out your recipe books, grab a pen and paper and get planning! Best of luck!
© 2007 Simple Savings International Pty Ltd. Page 2 of 24
Getting started
Before starting the Challenge, you need to think carefully about what your $21 Challenge is going
to include, to make it realistic and achievable for you and your family’s needs. Some people use the
Challenge for main meals only, to reduce the amount they spend on dinners. Others feel that they
can apply the $21 rule to ALL their grocery purchases, including every meal for the week, toiletries
or other non-food items. Choose whether you are going to be able to include everyone’s lunches or
not, or if you are going to include milk and bread in the Challenge. Many families would use up
their entire $21 quota on milk and bread alone for the week, so if this is the case in your household,
it may be better to leave those items out of the Challenge!
How Barbara managed the first ever $21 Challenge!
When Barb Kane sent me through the details of her now famous $21 Challenge, little did she know
what she had started! Below is her original menu plan for the week. Obviously these are just
examples, you don’t have to stick to this meal plan; it’s really just meant to give an idea of what
meals can be made out of what you have in the pantry when you think you have no food, and to get
people thinking. It will soon have you looking in your
cupboards for inspiration! It may not be a week full of gourmet meals, but it’s certainly a challenge
to get creative with what little you have and it’s a great way to use up all those things in the pantry
that never get round to being used!
Before she spent her $21, Barb looked in her cupboards and found she already had the following – a
tin of tuna, two chicken breasts, two frozen fish fillets, apples, pumpkin, potatoes, lemons, a box of
cereal, milk and bread.
On Monday, they had the frozen fish fillets (Barb bought sausages for her two teenage boys). She
disguised the pumpkin by mixing it with some potato and found a packet of Surprise peas left over
from a recent school camp.
On Tuesday she bought a 600g combination pack of mince and sausage meat and made a meatloaf.
She also bought some broccoli and baked potatoes.
On Wednesday she used one of the chicken breasts and the lemons to make lemon chicken and
saved one breast, planning to use it on Friday.
On Thursday she used the tin of tuna to make tuna patties and bought half a cabbage to make
coleslaw (she only used half the cabbage). One boy wouldn’t eat the tuna so there went Barb’s spare
chicken!
On Friday she bought some pasta and used leftover salami and tinned tomatoes to make a sauce to
go with it.
On Saturday she used the rest of the cabbage and some more of the mince she had purchased on
Tuesday to make a Chow Mein. She saved a small portion of mince to use on Sunday.
© 2007 Simple Savings International Pty Ltd. Page 3 of 24
On Sunday she purchased some pastry and used the last of the mince to make a family sized pasty.
As you can see it’s really a case of looking at what you have and planning ahead. All Barb ended up
buying was her mince and sausages, broccoli, cabbage, pasta and pastry. A pretty small shopping
list for a whole week and nobody seemed to complain about going hungry either!
Following is a collection of helpful recipes and ideas taken from the Simple Savings Savings Forum
and members’ emails to me. If you find yourself struggling for more recipes, both the Forum and
the Savings Vault are fantastic resources for cheap and cheerful no-fuss recipes. Have a look in
your pantry and freezer and write a list of what you already have, then see how many meals you can
plan around those ingredients. You may end up with a few unusual combinations, but that’s all part
of the fun!
In case you need a little more encouragement, here are some inspiring words from some of the
members who have ‘been there and done it!’
“I did my shopping for a week for $20.60! I left my purse behind so I couldn’t add one or two
extras. Wow, how long is it since I shopped for a week with only a basket! I cheated though – I only
bought 2L milk. When I got home I washed out the old 2L bottle, made up 2L powdered milk, mixed
the two lots of milk together in a jug then halved them between the two 2L bottles. When I got home
I realised I was low on vanilla yoghurt, but no problem – I am making up a batch of yoghurt in the
Esky. The check out girl just laughed when I handed over the cash saying ‘I did it!’”
Kath M
“I had to go to the supermarket today for sour cream for the pumpkin soup we had tonight – and I
resisted so many things that normally I would just grab and not think about. I put back the bottle of
Diet Coke and decided having water instead would not kill me! I also put back the milk as I have
two bags of powdered milk in the cupboard (enough to make 20 litres). I put back the Arnott’s
Shapes for school lunches tomorrow (instead, the kids will finish off the Saladas that were hiding at
the back of the pantry). The bread maker has been working overtime and so far so good – only
$4.00 (or so) spent so far. I will probably have to grab a few things later in the week but will be
keeping it to the absolute minimum! Good luck everyone!”
Kristen
“This challenge couldn’t have come at a better time for me. We just purchased our first home.
Now we are no longer renting it is more important than ever for me to become a ‘Destitute
Gourmet’! I wish everyone taking the challenge luck, here’s to full freezers and full tummies”
Kylie
Tried and tested $21 Challenge recipes – go for it!
OK, so you’ve had a good look in your pantry, fridge and freezer and now you know exactly what
you’ve got. The next question is what are you going to do with them? Here are some tried and true
answers from members who have used their pantry staples to create some delicious miserly meals.
Enjoy!
© 2007 Simple Savings International Pty Ltd. Page 4 of 24
Potatoes
Potato (and whatever you might want to use up!) Pie for One
(even though this actually makes more than one serve!)
Small amount margarine or oil or butter to sauté [Fwd: Updated S & H story]
1 onion, finely chopped
1 slice bread
1 egg, slightly beaten
1 small potato, grated (peel if you want, I don’t)
1/4 cup grated cheese
1/4 tsp salt, some black pepper.
1/4 tsp paprika
1. Preheat oven to 250 degrees C.
2. Sauté onion in melted margarine over medium heat until soft.
3. Wet bread under tap, gently squeeze excess water and tear up into small pieces. Add to onion in
mixing bowl.
4. Add egg (beaten) with salt, pepper, paprika to mix.
5. Lastly, add grated potato and cheese to mix, combine.
6. Grease or spray a suitable oven dish e.g. ramekins for individual serves, or a big Pyrex dish, or
even cake tin (depending on size of mixture and quantities). Fill with mixture, allow for some
bubbling, so don’t pack in too much!
7. Cook in oven for 20-25 minutes for single serve until lightly browned on top.
Enjoy with vegies.
Hot tip: I added some grated zucchini and chicken breast pieces last time, and topped with little
extra grated cheese and it was REALLY yummy! Saved two serves, froze them and had more great
dinners for later.
(Jo L)
Savoury Baked Potatoes
One good way of using left over bolognaise or chilli con carne is to choose as many medium to
large sized potatoes as you have people to feed and scrub them. Microwave until cooked through.
Cut a slit in the top and spoon out some of the potato. (You can put it in a soup or casserole.)
Place potatoes close together on an oven proof dish and place your bolognaise sauce or chilli over
the top (how much you use depends on how much left over you have!).
Add grated cheese or salsa (if you are using chilli) over this and bake in a moderate oven until
cheese melts.
Judith L
You could simply use salsa and grated cheese if liked – I have even used tomato relish and cheese
before now if there are no leftovers! Other members have tried the chilli version and added sour
cream or mashed avocado to serve. Basically, once you have the potatoes you can put almost
anything on the top – baked beans, left over tuna mornay, savoury mince with grated cheese on top
– you get the idea! Serve with a salad for a tasty, well balanced meal.
© 2007 Simple Savings International Pty Ltd. Page 5 of 24
Tuna
Tuna Pasta Sauce
Small can tuna in oil (anything from a 100g tin up), drained and oil reserved
1 large chopped onion
1 green pepper, sliced
1 teaspoon minced garlic or 1 clove garlic
375g tomato puree (or if you already have a tin of tomatoes just puree that)
1 tablespoon tomato paste
1/2 cup white wine
Black pepper to taste
2 tablespoons chopped parsley (or basil)
Olives if you have any
Use oil from tuna to cook onion, pepper and garlic for 3 to 4 minutes until onion is soft.
Stir in tomato puree and paste and wine and cook for 3 to 4 minutes. Add tuna to sauce and cook,
stirring gently for 4 to 5 minutes. Spoon sauce over pasta and toss to combine. Garnish with olives
(black are best), parsley and pepper. You can also use a tin of smoked mussels instead of the tuna.
Any of the flavoured or herbed tunas are good too.
Judith L
Tropical Tuna
4 cups approx cooked pasta (elbows or spirals are best)
1 large tin tuna in brine
1 small tin pineapple pieces
1 tin tomato soup or crushed tomatoes
1 green pepper
Slice green pepper, drain pineapple pieces.
Put pepper, pineapple juice and tomato soup in a saucepan and heat until almost boils, add
pineapple pieces.
Put pasta in base of ovenproof dish and spread tuna over top.
Pour tomato and pineapple mixture over.
Cover and bake in moderate oven for about 30 minutes.
We sometimes just have a sauce of chopped fresh tomatoes, zucchini, garlic and onion simmered
with some wine and herbs. Add lots of black pepper and you have a very tasty pasta sauce. Any left
over is good as a pizza topping or spread over an omelette.
Judith L
© 2007 Simple Savings International Pty Ltd. Page 6 of 24
Tuna Pasta Bake Recipe
Serves two.
60g uncooked pasta (makes 180g cooked)
100g can of tuna in brine
1 tbsp Masterfoods tomato and mustard sauce
60g grated cheese
2 slices of bread, processed to crumbs
Boil water and cook pasta for 12 minutes, then drain. Drain tuna and break up into small pieces.
Mix pasta, tuna and sauce together. Put into two-person sized baking dish. Mix breadcrumbs and
cheese together and sprinkle on top (it will be difficult to spread). Bake at 180 degrees Celsius until
golden.
Submitted to the Savings Vault by Shane O and recommended by Jenny W
Tuna Pie
1 large can of tuna
Two largish handfuls of cracker biscuits (like Jatz but Home Brand)
1 cup grated cheese
1 diced onion
1 cup milk
Couple of sprigs of parsley from the garden
3 eggs
Blend together (I used a hand mixer) and cook in a greased pie dish / container for 30 – 40 minutes
at around180 degrees. This turned out sooooo yummy my husband ate the remainder of the whole
pie. He was drooling! Hope you can try it and enjoy it too.
Naomi B (Simple Savings Staff)
© 2007 Simple Savings International Pty Ltd. Page 7 of 24
Pasta
Tomato and Salami Pasta Sauce
1 can crushed tomatoes
1 tbsp tomato paste
1 small onion, chopped
1 sliced green pepper
1 clove garlic
White wine or water
Oil
Black pepper
About 150g sliced salami (but you could use bacon or ham)
Basically the same instructions as the previous recipe, but if you use bacon you will need to fry it
first. You could add slices of zucchini or eggplant, along with some dried or fresh oregano.
Judith L
Minted Pea and Lemon Pesto Pasta
400g fettuccine
1 cup frozen peas
1 cup mint leaves
¼ cup pine nuts, toasted
¼ cup grated cheese (parmesan if you like it)
1 tablespoon lemon juice
½ cup olive oil
Salt and pepper
Cook the pasta. Put everything else in the food processor until roughly chopped. Add to pasta.
I guess it’s a bit expensive for some unless you’ve already got pine nuts in the cupboard, but I
thought I’d add it because it’s so simple!
Kazari (ACT)
Sausage Pasta
I don’t have an exact quantity only because I usually use left over sausages.
Spiral pasta works best with this recipe but you can use any pasta you have in the cupboard. Cook
sausages as to your liking and then slice into bite size pieces.
Cook pasta as directed on the packet. Once the pasta has been cooked, combine pasta sauce/tinned
tomatoes, sausages and herbs and heat through.
Sylvia S (VIC)
© 2007 Simple Savings International Pty Ltd. Page 8 of 24
Spaghetti Carbonara – recipe from MSN recipe website
500g spaghetti
1 tablespoon olive oil
20g butter
250g bacon, cut into strips
1 onion, chopped
1 egg, lightly beaten
60g grated parmesan cheese
¼ cup chopped parsley (optional)
Extra parmesan, for serving
Bring a large pot of water to the boil. Add the pasta and cook according to packet instructions. (It is
important to time this well, as the pasta has to be just cooked and very hot to mix with the
remaining ingredients.)
Heat oil and butter in a frying pan. Add bacon and cook until crisp. If pasta isn’t ready, turn off and
reheat at the last minute.
Drain spaghetti and return to the pot. Add bacon mixture and toss in the egg. Using tongs toss
thoroughly. Toss through the parsley if using and serve immediately with extra cheese.
Jenny W
Lasagna
500g minced beef
1 jar of bolognaise sauce (I tend to use Dolmio as I buy it on special for as cheap as $1.39 a jar)
1 can of diced tomatoes
Lasagna sheets
Grated cheese
White sauce
Brown mince and then add spaghetti bolognaise sauce and tomatoes. Cook for 10 minutes. Let cool.
White sauce:
I can’t give you exact measurements as I guess, but the cook books says ‘1 tablespoon of butter, 1 ½
tablespoons of flour (I use self raising but the books say plain) and 1 cup of milk. I would multiply
these ingredients by 1 ½. Melt butter and then add the flour; will form a soft ball of dough. Slowly
mix in the milk until you have a smooth mixture. Let cool.
Layer the ingredients in a large, deep tray with the meat, lasagna sheets, meat, white sauce, cheese
and then re-layer again as from the lasagna sheets, ending with meat and cheese. Cook in the oven
for 50-60 minutes at 180C.
Submitted to the Savings Vault by Elizabeth B and recommended by Jenny W
© 2007 Simple Savings International Pty Ltd. Page 9 of 24
Pasta with Chicken, White Wine and Cream
This is a quick and easy recipe that tastes great.
Cooked pasta (penne or spiral best)
2 tsp crushed garlic
1 chopped onion
½ chopped shallot
200g shredded cooked chicken
250ml pouring cream
White wine
Parmesan cheese
Chicken stock powder
Put 2 tbsp olive oil in frypan on medium heat. Add chopped onion, garlic and shallots until onion is
caramelised. Add chook and mix through, add two good splashes of wine and allow it to reduce.
Add cream, two tbsp of parmesan cheese and two good pinches of chicken stock. Allow the cream
to thicken before adding the cooked pasta and toss through. Enjoy!
Julie D
Basic Pasta Sauce
2 onions
4 cloves garlic
2 carrots
Few sticks celery
Olive oil
Butter
2 tins peeled tomatoes
Chop all the vegetables except tomatoes together in a food processor. Drizzle oil in saucepan, add
knob of butter. Add the onions, garlic, carrots and celery and cook on low for 15 minutes. Add
tomatoes, salt and pepper and simmer for 30 minutes. I use this sauce for pasta and for polenta.
Jacqui A
Pasta Bake
Cook and drain pasta of choice.
Place in a large casserole dish and stir through a tin of crushed tomatoes, a tablespoon of butter and
a tablespoon of flour. Add any leftover chopped vegetables or ham. Sprinkle a cup of grated cheese
over the top, then mix up some egg and milk to pour over. Bake until set. The result is much like the
jar mixes where you add them to cooked pasta and pop in the oven.
Jennifer G
© 2007 Simple Savings International Pty Ltd. Page 10 of 24
Creamy Pasta with Bacon
300ml cream (or milk or Carnation milk mixed with 2 tsp flour/cornflour)
1 medium onion, diced finely
2 rashers of bacon, chopped finely
1 garlic clove, crushed (or 1 tsp of garlic from the jar)
Cracked black pepper
Cooked pasta
Fry up onion, garlic and bacon on medium to high heat until just cooked. Reduce heat (low -
medium) and pour in liquid. Stir until thick and creamy. Sprinkle with pepper. Serve on top of pasta
with parmesan or grated cheese.
You can add heaps of vegetables to this too. Carrot, cauliflower, broccoli, mushrooms – whatever is
available. Another simple way to enjoy pasta is to add one or two tablespoons of pesto to cooked
pasta with a tin of tuna or cheese.
Lauren N
Carnation Pasta
300g spaghetti or pasta
1 tbsp oil
3 cups sliced vegetables (e.g. red capsicum, courgette, mushrooms)
375ml can Carnation evaporated milk
1 tbsp cornflour
1 tbsp wholegrain mustard
¾ cup grated cheese
Salt & pepper
Cook pasta to directions. Heat oil in pan, add vegetables and cook two minutes. Add combined
Carnation milk, cornflour and mustard. Bring to boil, stirring. Stir in cheese and simmer for one
minute. Toss through cooked pasta and season to taste.
Penny W
© 2007 Simple Savings International Pty Ltd. Page 11 of 24
Rice & TVP
Mushroom Risotto
4-6 large sliced mushrooms
2 cups rice cooked in vegetable stock
1 tbsp butter
Grated parmesan cheese
Sauté mushrooms in butter and add to cooked rice. Sprinkle with parmesan.
Kirby P
Beans and Rice
This one is easy, cheap, and popular with even my fussy boy. We just call it “beans and rice” or
“chili con carne, without chili or carne” ☺
1-2 tbsp olive oil
1 clove of garlic, crushed
Cumin seeds, any other spices your family likes (even chilli if they eat it )
1 ½ cups of rice
1 can diced tomatoes
1 big can kidney beans
1 heaped tsp stock powder (Massel is good – vegetarian & gluten free) dissolved in 1 cup of water
Extra water
Grated cheese
Sour cream
Heat oil & gently cook garlic and spices.
Add rice, stir to coat, cook about 1 minute.
Stir in tomatoes, drained kidney beans and stock.
Put a lid on the pan and cook on low heat until rice is cooked and a little creamy. Keep checking the
pan and stirring in 1/2 cup water at a time to keep the rice from drying out and sticking (you will
need to do this a few times- maybe 4 or 5).
When done, serve with sour cream, grated cheese & salad.
I should say that:
1. The quantities are VERY approximate as I made it up and I rarely measure anything!
2. The sour cream was a refinement we added later as we happened to have sour cream in the
fridge, and we thought it would taste good (it does) BUT you don’t really need it at all. It’s still
pretty yummy, and filling!
Kath M
© 2007 Simple Savings International Pty Ltd. Page 12 of 24
Mung Beans with Rice
This recipe comes from the Philippines
Dried mung beans
Chopped onion
Crushed garlic (or you could use bottled to taste)
Crushed ginger
Chopped chilli – optional
Leftover meat if you have any – BBQ chops, bacon, chicken or whatever – if using chops put in the
bone as well.
Mushrooms – optional
Water
Chicken stock cube
In a saucepan, boil the mung beans until soft (almost like baked beans consistency).
Remove from pan.
Fry onion, garlic, chilli, meat if using and ginger in pan.
Add mung beans back to mix.
Add more water to ensure enough for soup as the beans will absorb it.
Add chicken stock and simmer until cooked through.
Serve with a little rice in bottom of bowl – very filling, cheap, yummy and very good for you!
Angela C
TVP Bolognaise
1 onion, diced
2 cups TVP
1 tin tomato soup
2 cups water
2 tbsp tahini
Garlic and herbs to taste
Fry the onion in a little oil. Add soup, water, TVP and herbs and simmer for
20 minutes. Stir in tahini and it will become thick and creamy. Serve over
pasta. So yummy and cheap!
Helen T
© 2007 Simple Savings International Pty Ltd. Page 13 of 24
Eggs
Impossible Pie
4 eggs
2 cups of milk
1/2 cup SR flour
1 dessertspoon melted butter
Whatever you want to flavour it with, e.g. bacon and onion, tomato, tuna, whatever you have to
hand.
Grated cheese for topping.
Combine all together, pour into a greased casserole dish and bake for about 50 minutes at 180C.
Katrina M
Salmon Quiche
½ cup plain flour
¼ tsp baking powder
4 beaten eggs
2 cups milk
75g melted butter
1 440g can pink salmon, drained
1 onion, chopped
1 tsp chives
Sift flour and baking powder into a large bowl. Make a well in the centre and stir in eggs, milk and
butter. Add salmon, onion and cheese and mix well. Pour into a greased dish and cook at 180C for
about 45 minutes until set. Perfect for lunches the next day too!
Penny W
© 2007 Simple Savings International Pty Ltd. Page 14 of 24
Chicken
Magic Chicken Pies (Destitute Gourmet recipe)
Makes 12-15 small pies with very little chicken!
1 leek sliced
Handful of mushrooms sliced
25g butter
2 tbsp flour
250ml milk
300g cooked potato cut in small slices
1 tsp dried thyme
1 single chicken breast, cooked and shredded
Salt & pepper
2-3 sheets pastry (or make your own)
1 beaten egg
Preheat oven to 200C.
Sauté leek and mushrooms in butter till soft. Stir in flour and gradually add milk till thick sauce is
formed. Add potato, thyme, salt and pepper and chicken and set to cool.
Grease medium muffin tins and line with pastry then spoon in chicken filling. Use leftover strips of
pastry to make lattice tops and brush with egg to glaze. Bake for 20 minutes or until golden.
Barb
Easy Chicken Curry
Serves 4
Chicken pieces (enough to serve four people)
1 large onion, chopped
1 tbsp flour
250g container sour cream
50g butter
2 tsp curry powder
1 tin condensed cream of chicken soup
Salt & pepper
Paprika
Cook chicken pieces in oven until ‘done’. Heat butter in pan and gently sauté onion and curry
powder until tender. Add flour, stir until combined and remove from heat. Add soup, sour cream
and salt and pepper and stir. Return pan to heat and stir until sauce thickens, then reduce heat and
simmer for two minutes. Pour sauce over chicken and sprinkle with paprika. Serve with rice.
Penny W
© 2007 Simple Savings International Pty Ltd. Page 15 of 24
French Onion Chicken
Serves 5
8-10 chicken drumsticks
1 tin chopped tomatoes
1 packet French Onion soup
1 chopped onion
1 tbsp soy sauce
½ cup water
Fry the chopped onion in a small amount of oil in a frypan for a couple of minutes.
While cooking, put the drumsticks in the base of the crock pot.
Combine tomatoes, soup, soy sauce, water and cooked onion. Pour over chicken, turn and coat
well. Cover and cook on low for eight hours. Serve with rice and steamed vegetables.
Submitted to the Savings Vault by Carol T and recommended by Penny W
© 2007 Simple Savings International Pty Ltd. Page 16 of 24
Meat
Home Burgers (Destitute Gourmet recipe)
For up to 6 burgers
500g mince
½ onion, chopped
Pinch mixed herbs
3 tbsp fresh breadcrumbs
Dash of Worcestershire sauce
1 egg
Salt & pepper
Burger buns
Tomato sauce
Combine the first 7 ingredients in a bowl and mix well. Divide the mixture into portions and shape
into patties. Grill, fry or BBQ the patties and serve them in the buns with salad or however you like
them.
Penny W
Star Wars Stew
450g sausages, cut in one inch slices
1 medium onion, chopped
175g chopped bacon
220g tin baked beans
1 small tin sweet corn kernels
1 large tin tomatoes, chopped
1 bay leaf
Salt & pepper
2 large potatoes, peeled and thinly sliced
Heat a little fat in a 3 litre casserole (or if the casserole is unsuitable for stove top, brown in a frypan
and transfer to casserole when browned). Add sausages, onion and bacon and brown gently. Then
add the beans, sweet corn and tomatoes. Add the bay leaf and season well with salt and pepper.
Top with the thinly sliced potatoes, cover with lid or foil and cook gently at 150C for about 2 ½
hours. Remove the lid and turn heat up to 190C for another 30 minutes to slightly brown the
potatoes. You can top with grated cheese if liked, just return to the oven for a few minutes until
cheese melts. Sounds a strange combination, but everyone loves it!
Penny W
© 2007 Simple Savings International Pty Ltd. Page 17 of 24
Beef Stew
I usually pick up cheap steak for $5.98kg.
Dice meat and place it in a plastic bag with some flour so the meat is covered.
Place some butter or oil in a pot and brown meat. Add some onions.
Add any vegetables that you have in the cupboard/fridge such as potato, sweet potato, carrots,
broccoli, peas, beans, cauliflower. You can also add a can of four bean mix (red lentils and so on)
if liked. Pour in water until just covered and simmer till all tender. Add gravy powder, spices, soy,
Worcestershire sauce or whatever seasoning you like. Serve with rice. I always make heaps and
freeze it in individual portions as my own microwave dinners/lunches.
Kate P
© 2007 Simple Savings International Pty Ltd. Page 18 of 24
Baking
Slack Scones ☺
My slack way of making scones is like this:
2 cups SR flour
2 heaped tablespoons of butter/margarine
Pinch of salt
One cup of milk
Sift flour and salt and then rub in with butter. Add enough milk to make a dough and cut into
scones. Bake in oven at 180C for 10-12 minutes.
Jenny W
Strawberry Yoghurt Muffins
120g (1/2 cup) margarine
120g (1/2 cup) sugar
2 eggs
150g strawberry yoghurt
70ml (or more) milk
170g fresh strawberries, chopped
1 lemon, juice & rind
280g (2.5 cups) self raising flour
Preheat oven to 180C, prepare pans. Blend the margarine & sugar & beat in the eggs, yoghurt &
milk. Fold in the chopped strawberries, lemon juice & rind & very carefully fold in the flour to
avoid squashing the fruit. Spoon into muffin cases and bake for about 20 minutes, longer if frozen
fruit is used.
My improvisations: I left out the milk and used all yoghurt (because I was trying to use it up), I just
added a squirt of lemon juice rather than the juice of a whole lemon & rind, and I used apple &
peaches in place of the strawberry. They’re incredibly moist!
Kerrie P
© 2007 Simple Savings International Pty Ltd. Page 19 of 24
Raisin Muffins
1 ½ cups raisins
1 ½ cups water
½ cup of raw sugar
½ cup butter
1 egg
1 tsp vanilla
1 ½ cups SR flour
Put the raisins, water, butter and sugar in a saucepan and bring to the boil. Simmer for two minutes,
then let cool for an hour. Add the egg, vanilla and flour. Place in greased muffin tins. Cook at
200C for 15 minutes
Helen T.
Marie Biscuit Hedgehog
1.5 cups margarine/butter
480g sugar
6 tbsp cocoa
6 tbsp coconut
3 eggs
6 cups crushed Marie biscuits (around 2 – 2.5 packets)
Melt butter and sugar and remove from heat. Add cocoa and mix well, then add egg and coconut
and mix again. Stir in biscuit crumbs and mix well. Pour into lined (aluminium foil will do) slice
tray, flatten out and sprinkle coconut on top or sprinkles for colour. Place in fridge until set. You
can also put icing on top; this freezes really well and is yummy!
Jay T
Five-cup Loaf
This is a great cake when there is “nothing” in the cupboard; it keeps well and you can change the
sultanas to mixed fruit, apricots or chocolate chips with a tablespoon of cocoa.
1 cup SR flour
1 cup brown sugar
1 cup milk
1 cup coconut
1 cup sultanas
Mix all together and bake in a loaf tin in moderate oven until cooked.
Jay T
© 2007 Simple Savings International Pty Ltd. Page 20 of 24
Fudgy Choc Chip Cookies
A yummy cookie, crisp on the outside, moist and rich inside! Store in an airtight container in a cool
place.
2 eggs
1 cup lightly packed soft brown sugar
½ cup extra virgin olive oil
1 teaspoon vanilla essence
2 cups self raising flour
½ cup cocoa, sifted
½ cup dark chocolate chips
1. Preheat oven to 180ºC/160ºC fan-forced. Line baking trays with baking paper.
2. Beat together eggs, brown sugar and oil. Add vanilla, flour and cocoa and beat to combine. Stir
through chocolate chips.
3. Roll teaspoonfuls of mixture in balls, then flatten slightly. Place on prepared trays. Bake for 12-
15 minutes or until cooked through. Cool on wire racks.
Ruth K
Last but not least, no $21 Challenge would be complete without a recipe for using up all those tins
of sweet corn and tomatoes – this one cleverly uses both!
Tomato and Corn Soup
1 chopped onion
1 tsp chicken stock powder
1 tsp ground coriander
1 x 400g tin tomatoes, chopped with the juice
1 ½ cups tomato puree (I would just puree one of the tins of tomatoes)
2 tsp dried parsley (I am sure fresh would be better)
1 x 420g creamed corn
1 x 420g can corn kernels
¼ tsp chilli powder
chopped fresh mint to serve
Cook onion, stock powder and coriander in a little tomato juice until the onion is soft. Add
remaining ingredients, except mint and cook until heated through. Garnish with mint to serve. Only
about 1.5g of fat per serve!
Judith L
© 2007 Simple Savings International Pty Ltd. Page 21 of 24
Planning your menu
So now you have some recipes on hand to help you along the way, it’s time to finish filling in your
menu plan. Even the most seasoned menu planners can struggle organising a week’s worth of
meals for just $21, but it does get easier, we promise! Another bonus of doing the Challenge is that
you learn to become very resourceful and this skill often carries on well after the Challenge has
finished for long term savings! Here’s one of my own menu plans specifically for the Challenge,
based on what I had in the cupboard and freezer that week. I pinched it from a blog extract so you
can see how I came up with the menu. Six of the seven meals mentioned are among the recipes
included in this guide!
Monday: Easy Chicken Curry with Rice. The easiest curry recipe ever and one of Noel’s
favourites! Found can of Creamy Chicken Soup in pantry left over from Ali’s post-op recovery
period. Already have sour cream in fridge, chicken pieces in freezer and rice in pantry. Ran out of
curry powder last week though!
Tuesday: Salmon Quiche with Green Vegetables. Found a 440g can of pink salmon in pantry.
Will need to buy eggs but have cheese on hand, chives and broccoli in the garden and plenty of
other vegies in the freezer.
Wednesday: Carnation Pasta. My favourite recipe for using up evaporated milk! Found can of lite
evaporated milk in pantry. Also have pasta in pantry and mushrooms and capsicums and cheese in
the fridge, will just need to buy a couple of zucchini or could substitute for something else if
zucchini too expensive. Had better grab a piece of steak from the freezer for Noel to go with it too.
Thursday: Star Wars Stew. Haven’t made this for years! From one of my kid’s cookbooks I’ve had
since I was nine years old! Perfect for the crock pot too, just chuck it all in and forget about it. I
remembered this recipe when I found a couple of tins of tomatoes and a can of sweet corn in the
pantry. You also need sausages and bacon, which I already have in the freezer, onions which I have
and potatoes, which I’m going to have to buy.
Friday: Reminded myself to look in the freezer as well as the pantry and came up with ‘Home
Burgers’ – a Destitute Gourmet recipe. I already have the mince in the freezer and all other patty
ingredients in the pantry, just need to buy some burger buns. Will use some of the bought potatoes
to make home-made potato wedges too.
Saturday: French Onion Chicken. Courtesy of the Vault and a great way to use up the sachet of
French Onion soup from the pantry! Another good crock pot recipe too. Will have enough chicken
pieces left in the freezer from Monday and can use up the other tin of tomatoes from the pantry too.
Nice with rice or mashed potatoes, both of which I will have, along with more vegetables from the
freezer (I always prepare and freeze my fresh vegetables as soon as I buy them, so always have
plenty on hand – broccoli, carrots, cabbage, cauliflower, pumpkin – you name it!)
Sunday: Roast Dinner. We always have a Sunday roast, just as my mum raised me! Normally I
would have to buy one during the week, but thanks to Noel’s generous client last week we have half
a ton of pork in the freezer so it won’t be necessary to buy one! Will still have plenty of potatoes to
roast, along with all necessary ingredients for Yorkshire Pudding and of course all the vegies I need
in the freezer!
That’s about it I think! We never eat dessert as we’re always too full, so don’t have to worry about
those. I have bananas in the freezer to make the kids banana muffins for lunchboxes and after
© 2007 Simple Savings International Pty Ltd. Page 22 of 24
school snacks and rolled oats in the pantry to make Anzac biscuits. So from what I can see at the
moment, my shopping list to get me through the week should look like this:
Potatoes
Bread & burger buns
Milk
Eggs
Zucchini (if not too expensive)
Tomatoes for sandwiches ($2.00 for a huge bag from a local lady selling them outside her house!)
Potato chips for the boys’ lunchboxes
Other members have kindly shared their menu plans on the Forum as follows:
From Kristen:
“After going through my cupboards I have managed to find enough bits and pieces to make:
Monday – home-made pumpkin soup and macaroni cheese with chicken.
Tuesday – Tuna risotto and golden syrup dumplings.
Wednesday – Topside steak (probably make it into a casserole for the slow cooker).
Thursday – Home-made asparagus and sweetcorn soup and muffin pizzas.
Friday – Salmon casserole with mash and vegies.
Saturday – Chicken fillets (with a sauce of cream, French Onion soup mix and chopped bacon) and
steamed vegies.
Sunday – Curried tuna slice and apple crumble.
I have enough bread in the freezer as well as bread mix for the bread maker for breakfasts and
lunches, as well as enough cereal in the pantry to last the week. I also have milk powder in the
pantry for when the fresh stuff runs out. Should have enough vegies for the week in the fridge -
pumpkin, potatoes, onions, cauliflower, broccoli, zucchini, peas, corn and carrots. Lunches will be
sandwiches, tinned soup, spaghetti or baked beans on toast, eggs a la whatever (to coin Ron’s
phrase) and/or pasta with grated cheese. For snacks I intend to make some cheese scones, some
pikelets, a cake (ALDI packet mix in pantry) and some biscuits (bulk freezable recipe from the
Vault). I also have unopened boxes of Saladas, rice cakes and Vita Weet biscuits in the pantry.
Have a stockpile of toilet paper and laundry detergent from recent sales. Went through bathroom
cupboards and found numerous bottles of shampoo, conditioner, deodorant etc with little bits in the
bottom, enough for the week (don’t you love it when the kids open the new bottle before the old one
is finished). My shopping list for the week so far contains macaroni, sour cream, custard and ham.
Will be starting the challenge on Monday! Bring it on!”
From Kath M:
“Dinners will consist of:
Spaghetti bolognaise (everything already in stock)
Pea soup (froze some last week) with bread
Satay beef on rice (everything in stock, including beef and jar of simmer sauce)
Fish and chips (in freezer again)
Fried rice with bacon and tofu
Beans and rice with salad
© 2007 Simple Savings International Pty Ltd. Page 23 of 24
Lunches will consist of:
Bread roll/corn thins with any or all of cheese, jam, margarine, Vegemite
Piece of fruit (apple or mandarin)
Slice of chocolate cake/freshly popped popcorn/microwave prawn crackers
Breakfasts: choice of muesli/Weetbix/ rice porridge/ rice flakes with milk/yoghurt, fruit juice, toast
if desired
To bake: Gluten free bread & bread rolls, gluten free chocolate cake, pineapple upside-down cakes
for Friday staff morning tea
To buy: eggs, milk, apples, mandarins, cheese slices, maybe one bottle fruit juice, toilet paper, 1kg
‘normal’ flour for the morning tea cakes: That’s it!”
Hopefully by now you’ve got the idea! To all new Challengers, have fun! Get the family involved
and let them know what you’re doing. You’ll be surprised how much they support you. And for
those who aren’t so supportive, amaze them with your strength of resolve! To those who have done
the Challenge before, I hope this little guide is of some help for your next one. Thank you to
everyone who has contributed. If you have any contributions you would like to add to this guide for
future updates, please email me penny@simplesavings.com.au. Oh – and let me know how you go
with the Challenge!
Penny
© 2007 Simple Savings International Pty Ltd. Page 24 of 24