Skip to content


20131215 (2013 December 15 Sunday)

First let us assuming (for now) that growth is possible, and it has no limits in a finite world, and that it is desirable. We will do this because my argument does not depend on it and for now it will make things simpler.

If the economy was a car, then GDP (Gross Domestic Product) would be a measure of how much petrol(gas) it uses, and not how fast it goes, how much it can carry, or what it looks like, or the quality of the sound system. We may not all agree on which of these is the most important, but who of us thinks that the most important measure of a car is the speed at which in empties the tank, that future cars need to grow in the fuel using ability. Like wise we need a better measure of the economy.

So we need to ask what sort of growth should we have, and how do we achieve it.

Here are some things worth growing in:

  • Better efficiency in production and other work.
  • Making things that last, even if they cost more.
  • Make devices that don’t over consume.
  • Make devices that produce renewable energy.
  • Make things that are repairable.

If it is worth doing, it is worth doing forever, and for everyone. Therefore it must be sustainable. By sustainable I just mean we do it in a way that makes the first sentence in this paragraph true. Note: I did not say always, just forever.

Give a person a fish, then they have a fish. Teach them to fish, then they will sell all the fish (no more fish). We need to insist that we like fish, we want to eat fish until we are old. If this means not eating fish as often, then ok. Just make sure there are plenty more fish in the sea.


20131115 (2013 November 15 Friday)

The word economics comes from the Greek word to study the home.

If we look at the home/house/family as a model, then we will find some things that may work at a world or country scale and some that won’t.

I have heard lots of suggestions of things, that I don’t think will work.

Suggestion 1:
Buy lots of stuff, throw it away, and buy more stuff.

This does not work at the home/house/family level. Some dis-functional families do this, but it does not lead to good. The same is true at the global or country level.

Suggestion 2:
Get a lazy person to vacuum the carpet, even when it is clean, to produce work.

This may help with training, distribution of money, and avoiding free-loaders, but that is all.

Suggestion 3:
Give money to the rich and hope that it trickles down.

This can help in a closed system such as a family. But in a closed system, where does the money come from? In country wide system, there is no problem of money creation, but the effect is just inflation(this is bad as reduces savings), and reduction of debts(this is good). Therefore the creation of money also creates irresponsibility “it is better to be in debt than to save”. Targeting of the needy or of the cause of the problem makes this irresponsibility problem even worse.

Here are some that I think may work, or at least be better.

Suggestion 1:
Encourage people to do useful work, that benefits society as a whole.

Suggestion 2:
Pay everyone in a society a living allowance, not means tested. Everyone retains a right to work, without loosing this allowance. Take away all means tested benefits, such as unemployment benefit.

There can be additional allowance for disabilities, based on a fair judgement, not on whether you do or don’t work, but on needs and whether you can or can’t work (irrespective or if you do or don’t). If a person can’t but does work, then there status is still can’t work so they still get the benefit. If it is can but does not work, there status is can work so they don’t get additional benefit. If they need equipment they get an allowance for it. If they get it cheep second hand (charity shop, ebay etc), then good for them, they get to keep the difference. People should NEVER be punished for doing what is best, even if it costs more. In the long term this is best.

This encourages people to do the right thing, the best thing is that we do not need to know what the right thing is. We just stop rewarding behaviour that leads to bad outcomes(capitalist). And we give an allowance to everyone, without judgement (socialist).

An energy equation of grace — god and science

20130810 (2013 August 10 Saturday)

The food equation

1 Corinthians 3:6 — “Paul planted the seed, Apollos watered it, but God has been making it grow.”

Imagine some food, imagine a loaf of bread. Now for simplicity imagine it is you source of energy, you get all of your energy from bread like this. Now Imagine that energy is your only need, you need nothing else, no shelter, no water, no air, no sleep, no warmth, no love, no stuff, just energy. However you have to work for the bread, I don’t mean you have to just plant and water, I mean you have to earn every last Joule of energy. So let us imagine we want to make a loaf of bread with 100 units of energy in it: The field is ready (as if my magic), we scatter the seed (a few units), as if by a miracle it rains (saving us a few units), then we have to make it grow (that must be at least 100 units of shining on it), then we pick the wheat (a few units), then grind it (more units), add water (fetching water is hard work), cook it (we will need to grow some wood), eat it (a few units). As you can see even if we can make this process even more efficient, we can never do it: if it where 100% efficient then we would put 100 units in, and get 100 units out, but it can not be 100% efficient so to get 100 units of energy you will have to do more than 100 units of work.

So what is happening? You are getting into energy debt. We will not have enough energy, We are slowly loosing what we started with, and eventually (probably quite quickly) die of lack of energy.

So how does it work in the real world? God does the shinning. God makes the wind, the waves, the tide, to grind the grain. We just do our little bit. James 3:4 — “Or take ships as an example. Although they are so large and are driven by strong winds, they are steered by a very small rudder wherever the pilot wants to go.”

So when you eat, know that you did not earn it. If you are rich, you did not earn it. If you are poor, you did not earn it. It is by grace that you eat, by grace that you have surplus energy. Use this energy wisely, and give thanks.

Romans 12:3 — “For by the grace given me I say to every one of you: Do not think of yourself more highly than you ought, but rather think of yourself with sober judgement, in accordance with the faith God has distributed to each of you.”

A missing pattern: Command, Query, Observer and ???

20130710 (2013 July 10 Wednesday)

When I read about the observer pattern in design patterns, I though but what about the other patterns. By this I mean the other patterns that govern the communication relationship between exactly 2 already existing objects.

There is a finite set of patterns governing the relationship between 2 objects that already exist. This finite number I believe is 4. (These relationships do not involve creation or destruction.) The 2 objects may have any combination of these relationships.


UML is inadequate for what is being shown here, so I have used another notation.

Rectangular box

A rectangular box represents an object

an arrow with a solid line

An arrow with a solid line, represents data flow

an arrow with a dotted line

An arrow with a dotted line represents control flow.

an arrow with a zigzag line

An arrow with a zigzag line represents synchronization, when to do something. A simple method call with possibly no arguments and no return value, and no action except to tell the called object that something has happened. The called object then synchronously does something.

The patterns — but only an introduction


Also called: procedure.

Uses: method, routine or sub-routine
Used by: Command Query Separation
Implements: Setter, Do-er

Command methods/sub-routines should be verb phrases.

A Command is a method/sub-routine or even a code fragment, used to make an object do something. A command can be passed data, but can not retrieve(return) data, in it self. The command read-line-from-file returns nothing, though it will change the state of the object, the object will store this line of text and any error condition.

A controls and passed data to B


Also called: function

Uses: method, routine or sub-routine
Used by: Command Query Separation, functional programming
Implements: getter

Query methods/sub-routines should be noun phrases, unless the return type is Boolean, in this case it should be an adjective phrase. It should not start with the verb get.

A Query is a method/sub-routine or even a code fragment, used to find out something about an object. A command can retrieve data, it can except data, but it can not change the object.

A controls B, but B passes data to A


Uses: method, routine or sub-routine
Used by:
Implements: dependency inversion

Observer is used when B is in control, but A knows when things need doing.

B Queries A, but at A's request

Note: It is an anti-pattern, to use observer to update state in B when state in A changes. Use Query chaining for this. Use observer to update objects that you do not know if they are being queried, e.g. a display that is queried when a person looks at it. Or to trigger processing, that can not be deferred e.g. event logging.

The other pattern

Also called: to be decided

Uses: method, routine or sub-routine
Used by: see below
Implements: see below

So first we see from the diagrams that the following diagram has not yet been described.
B Commands A, but at A's request

When I looked at this diagram I realized I had seen it before. It us used in Graphical User Interface frameworks, when there are multiple overlapping windows. If a window is covered the windowing system may forget what is covered; When the covered window is exposed the windowing system can not on its own redisplay the missing region. It therefore sends an expose event to the owner of the uncovered window. This owner then sends commands the the windowing system to redraw the area.

Used by: Windowing system, …
Implements: Refresh, …

One day you will die — what inspires you?

20130610 (2013 June 10 Monday)

Don’t be inspired by how short your life is. Instead be inspired by your life being finite (one day it will end). What will you leave behind?

  • Start something, a project, that you will not personally finish.
  • Work on a project you did not start.
  • Work on a project that has no end.

Do not try to make a difference, that way leads to chaos; A negative difference is still a difference. If you aim for a difference you will get what comes easiest, a negative difference (many people do this).

Try to make everything you work on better; Don’t try to fix everything, but if you work on it, then ask how can I make it better. So that the next person to use or work on it will find it less frustrating, and a joy.

Part 4 — Do we need Free Software? — Where do we go from here?

20130510 (2013 May 10 Friday)

Try it

You can get many Free Software applications for Microsoft-Windows and Apple-Mac, but to really appreciate it you will need to run a Free operating system such as Gnu/Linux.

Debian Gun/Linux (and many others) will run directly from CD/DVD (live CD), so you don’t have to install it to try it.


“So how do I start using free software, I use xyz, I can’t change, I depend on abc.” Your current software provider does not care about your freedom. Sorry this is not fair, they do care, they care that you have none: They are actively trying to take away your freedom. This includes the freedom of choice, the freedom to change your mind, to use alternative software. They do this my making there software not interoperate, and by scaring you: telling you the other software is “incompatible”.

So you are locked in, how do you escape, don’t panic it is possible.

We will now look at migration roots. If you are new to computers you are lucky it is easy for you. However you will probably have the most fear, and need the most support. However if you are well entrenched you will need a migration strategy. You will need to start to move to a new way, but if you try it all at once you may fail. First I will show some things to consider, then show some ideas of what you can change.

Levels of freedom

  1. Awareness

    The most important step, if you miss this step you may be tempted by non-free software.
    It is important to value your freedom, to fight for it and to pay for it;
    Be prepared to pay more for Free Software than for non-free software.
    Remember Free Software is about freedom not price.

  2. Avoid lockin — use open standards (file formats / network protocols)

    It can be hard to change; We have been using software that uses proprietary formats, to lock us in, for years, so it may be difficult to change. Ironically it is easier for new users to adopt Free Software, but these are the least confident to do it on there own (so ask for help, or offer help depending on who you are). However it is still possible to change, and the sooner you do it the easier it is. An important step is to avoid lock-in by using open protocols/file formates.

  3. Use some Free Software

    You can run some Free Software on Microsoft Windows, Apple Mac and other proprietary systems.

  4. Install a Free operating system, such as Gnu/Linux

    You can install Gnu/Linux on most hardware including PC and Mac.

  5. Use 100% Free Software

Other factors

  • Free market vs closed market.
  • Free file formats / network protocols vs Locked-in.
  • Multiple supplier vs single supplier.

Migration Tools

  • Free Software is well established on servers, if you are running a business then migrate you servers to Free Software.
  • Stop generating files/documents in non open formats: Continue to use the old proprietary software only to read old files/documents, and configure the old tools to write open formats — Microsoft Office can now be configured to write Open Document Format.
  • Look at what Free Software applications are available for your current operating system.
  • Try out a Free operating system using a live CD/DVD.
  • Install a Free operating system, duel boot or in a virtual machine.
  • Then when you are doing most stuff with the Free system, put the old proprietary system in the virtual machine, with the Free system as the main system.

Above all find someone that can help you.

We have looked at reasons to use Free Software, but why write it?

  • Because it is the right thing to do.
  • Because I can be part of a community.
  • Because it gives be an opportunity to learn and extend my skills.
  • Because I want to give back, in gratitude for what I have received.
  • Because it well reduce my maintenance costs.
  • etc.

Be careful with language

Alternative names and confusing words

What about alternative names to avoid confusion of the word free, such as Open Source?
Some people use the term “Open Source”. Most software that is Open Source is Free Software. But the ideas are different.

In a mailing list post, MJ Ray FROM the Association For Free Software described some of the reasons why they strongly prefer the term “free software”:–

“Open Source” is an ambiguous phrase with definitions FROM OSI, !OeE, Becta, Microsoft(!) and many others. One of the original reason for the Open Source Initiative was to remove ambiguity by securing a trademark on the phrase (wishful thinking?) and to clarify things through marketing it. However, they didn’t get the trademark and their marketing effort is dwarfed by other people defining “open source” as other things. The Free Software Definition is simpler and the ideas have had 20 years or so to establish themselves.

Another reason for “Open Source” was to remove the connection with the ideas of sharing and being a good member of the community. From what I heard at the conference, those are still very popular ideas with people working in education. Some people class promotion of these ideas as political. I guess in that case, Chris could call AFFS a political group. Oh well. I’m not sure why it would be less popular with educators or why it should stop us promoting free software for the practical benefits too, though.

If you sympathize with the goal of providing effective promotion of our preferred software licensing, please use the older term “Free Software” and do the relatively simple explanation about “free as in freedom.” Ambiguity and division never help marketing.

note: Freedoms 1 and 3 require source code to be available because studying and modifying software without its source code is highly impractical.

The opposite of Free is proprietary, do not use the word commercial; Free Software can be exchanged for money, it can be commercial.

Do not use the word Intellectual Property. It lumps together many concepts, and allows the idea of theft to be applied. You can not steal in idea, as you can not take it off of somebody. They still have it, and you have it. You copied it, you grew it, there is now more of it than there was before.

Some people say “for free” this is not the same, you can sell Free Software.
Some people say “Freeware” or “Shareware” these are term that refereed to something else.
Some people say “free download” this is the same at “free of charge” is Free Software.
Some people say “Linux“ Linux is the most common kernel used in Gnu. If we refer to Gnu/Linux as just Linux, then what do we call Linux. Android phones contain Linux, but (usually) not Gnu. When you hear that Android contains Linux you may be fooled into thinking is like your desktop (Gnu/Linux).

What are we for, what are we against

We are not against anything, we are for freedom. We would like you to have freedom when you use your computer, but we are not saying you should use a computer.

We are not against the software companies, no, we believe that people should be free to sell software, including Free Software.

This is about your freedom, not about the suppliers. You have to demand Free Software (and be prepared to pay for it), or you won’t get it.


  • Free Software is about your Freedom, not about price.
  • We believe you will be free only when your device is free.
  • We believe that your device is your device.
  • We believe you should be able to decide what you want to do today.
  • We believe you should live in a world without walls, fences and gates 🙂

What will you do next?

  • Try some Free Software today:
    • Download and use some Free Software for your current System.
    • Download a live Gnu/Linux System, and try it out.
    • Ask for help?
  • Tell other about Free Software.
    • Tell people what is happening and what exists.
    • Tell people about Freedom.
    • Use the words Free Software and explain what Free means (Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”).
    • Share a link to this blog.
    • Take the material improve it and share it.

Other resources


Other Free Software for windows

Other Free Software for Mac

Free Software Operating Systems — version 7 was released on 04 May 2013

About Free Software

See a list of all my blog posts on Free Software at

Licenses: Creative Commons License
Free Software by Richard Delorenzi is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Part 3 — Do we need Free Software? — What is possible now?

20130410 (2013 April 10 Wednesday)

What is possible now

Free Software is growing fast. It is the fastest growing software sector, Microsoft’s have stated that it is there only real competitor.

Free Software is everywhere, you already use it:

  • A netcraft graph, showing what web-server software is used on the internet.Free Software web servers are running most of the Web. This graph shows that Apache (Free Software) is the most popular web server since 1995, before that NCSA (Free Software) was the most popular. nginx (Free Software) is growing in share, it may overtake Microsoft (proprietary) soon. In some of Netcraft’s graphs it already has.
  • Most of the infrastructure on the internet is running Gnu/Linux or BSD, both Free Software operating systems.
  • Most of the e-mail transport and Domain Name look-up is done on Free Software.
  • Google, WordPress, Wikipedia and others run on Linux and other Free Software. Even Hotmail (a Microsoft web mail server) runs partly on Linux.

Most of the top 500 super computers use free softwareScientists use Linux: Of the 500 fastest computers in the world 457 run Linux (Free Software), 1 BSD (Free Software), 1 Open Solaris (Free Software), 11 mixed Linux (Free Software) plus other, 28 run AIX Unix, 1 runs CellOS Unix and 1 runs Microsoft-Windows. That is 459 Free Software, 11 mixed, 30 Proprietary.

It is not just for geeks; The geeks saw the need first, but then others started joining in.

Chances are your web browser is Free Software
Chances are you are already using Free Software. Firefox and Crome account for about 50% and rising of browser use. They are Free Software. IE the default of Microsoft windows has under 50% and falling., VLC, Audacity, Gimp, Inkscape, Filezilla, X-chat, PeaZip, Juice, Mplayer, Thunderbird, Miro, Pidgin, Transmission, zenmap, wireshark, Kdiff, mono, python, sub-version, VirtualBox(gpl version) to name a few, are all Free Software.

Screen-shot of KDE a windowing system used on Gnu/Linux
Free Software on the desktop. The Free Software desktop is as easy to use, or easier than Microsoft-Windows and Mac. It looks very similar, the change is like going from Windows XP to Windows 7, only better. Free Software had 3D desktop effects before Microsoft-Windows.

The Free Software that is produced not only is free, but is also low cost; You can usually download it for no charge, or get it for a few pounds (Free as in freedom, not as in free of charge). It also tends to be of higher quality than non-Free Software (as the motivation of the developers is to produce software not to make money, and because anyone can fix it).

Debian Gnu/Linux comes on 6 DVDs, though you only need one CD no get the core system. It includes pretty much all the software you will need. Equivalent to Microsoft Windows 7 Professional, plus Microsoft office, plus Microsoft Visual studio Professional, plus Microsoft Server, plus, plus, plus … . No Licenses to worry about. Just one single install for the base system, then just click to add applications.

List of organizations:

  • Free Software foundation
  • freedomdefined
  • Free art
  • Internet Engineering Task Force
  • Open Knowledge
  • Open Source
  • Free/Libre Knowledge

See a list of all my blog posts on Free Software