This site is about a superior iPhone doodle animation app.

Developer's Diary - for when you think it can't get any worse.

2011 - Before the Well of Hope was pumped dry (just kidding)

Feb - First test on an iPad and it's running natively! Kind of cool but the teensy iPhone sized controls look silly. It's clear that the image dimension control is inadequate as the iPad crams the tiny doodles into the top left of the screen

Mar - Replaced the image scaling system but now uploads look flaky and there's a host of zooming issues.

Crammed this page into the site, called by the Diary list on the home page. Used Dynamic Drive's favicon tool to generate the wee icon that sits on the browser tab.

Massive effort to get the app submitted before the end of the month. So much going on at the moment that it would be a shame to have this uncomplete. Turns out there was far too much to do

Apr - Failed in so many ways to meet our (artificial) targets

Attempted to submit and thought we could get away with uploading and only then writing the prerequisite documentation page. But as soon as we started it became clear that this was going to be a much bigger task than we'd imagined. Four days later and a little fiddling with PHP and it now exists (see Support), but uses a very crude trick to mimic a nice looking table of contents frame.

The consensus seems to be that AJAX is the prefered method of loading < div > content.

Worse than that, a host of glitches surfaced while running through the "reachability" tests. This is Apple's requirement that the app notify the user when a relevant network service becomes unreachable. Fair enough but it's easy to screw up and it's a common cause of app rejection

May - Discovered that it had been accepted! Quickly withdrew it for lack of a marketing plan and then discovered a few bugs, one of which was was a subtle, annoying little creature. Good riddance. Added a couple of nice features and resubmitted and now it's available (hooray!) but can't see it on iTunes. Why not?

Jun - Video conversion, at last! After banging our heads against the wall it is simply a matter of delving into the AV (audio-visual) framework documentation. There are only a few classes required to initialise a video and then it's just a matter of copying the DF 'tween frames to the video, one at a time, with the appropriate time signature. The resulting video can be written to a .mov (QuickTime) file and saved in the app's private documents directory on the device, then exported to the user's photo/video album. No need to write a load of http (or include the Google YouTube api) to send it to YouTube as that's built into the photo/video management app.

Jul - Work on v1.2 stuttering but the mathematical algorithm made it easy to add a couple of useful features - pinch gesture to resize a curve and rotate gesture. Not yet applied to a whole frame (multiple curves) although this shouldn't be difficult.
The video export was a source real trouble,caused by the iPhone running out of memory while it was accumulating video frames. Out of our depth there but the workaround seems to be to export the video into a series of small files, then build a single, large file from them. Nuisance.

Sep - Short term success can lead to long term failure! Exporting the flicks into video format was much easier than we expected, but so slow! And there was a memory leak that we could not nail down. This obstacle was beating us down throughout August (hence no comments) until a solution appeared out of desparation. - In-App purchasing! Let the server do the video export and let the client pay for the video. That way the free app (yes it's coming) will provide a revenue stream.

Oct - A solution, but a complex and convoluted one, requiring a home PC to poll (yuck) the server in order to check whether or not an export has been requested. Should the PC app locate one, it calls another program to download the doodle and settings info from the server then convert that into a series of still images that get crammed into a QuickTime video format. This step is complicated by the difficulty we've been having creating a file that YouTube recognises. The solution to that was to get QuickTime to perform an export, requiring an automation script. Phew! Then the data is uploaded to the server blah and blah and what a nuisance.

Nov - In-App purchasing is not conceptually difficult, but it's no picnic to test. The 'products' don't exist until the app has been approved, so how do you test it while the sofware is being developed?! Apple lets you fake an iTunes account, and the 'purchase' occurs within a sandboxed environment.

Dec - iOS displays a scrolling selector wheel for multiple choices but it seems like overkill when there are only three choices. So we created our own but it doesn't look great and for the next release (inshah' allah) there will only be one export format: video. On the server-side, the help page for mobile devices is much better with a little Ajax. With the javascript document model (that works fine on Safari) page content can be requested from the server and positioned in place without a full refresh, which saves on bandwidth. Nice!

2012 - Economic collapse
(check out the weird dude).

Jan - JSON (pronounced Jason) is a lightweight way to describe software objects compared to its older brother XML. It's the mechanism used by Apple's servers to validate a purchase and, somewhat surprisingly, it works exactly as the technical description says. So, for once, a bit of work that didn't require a lot of hair-pulling (inshah'allah).

Feb - The answer to video conversion was ffmpeg. The original solution relied on Apple's QuickTime to convert the .mov to an .mp4. This was slow and the only way the calling program could determine if the conversion was successful was to continually check for the output file (and check that it wasn't open). Clunky. Ffmpeg is a fast and efficient open source video conversion tool with a bewildering range of options. We call it using NSTask.

Mar - More "challenges" to overcome as uploading a video that's been converted from a Flick can fail if the upload is exceptionally large. It may also be a simple http setting but we can't control these (curse these shared Linux servers!). The hack that we found was to transfer the file in chunks. Primitive!

Apr - Both the upgrade and the Lite version were accepted by Apple. Revised the php "views" counter (which is not the same as hits) and it's clear that this page is never viewed by a human! Which means that you are the first! But the point of it is really to make subtle changes to the site so that Google's spiders will elevate it's ranking. The target is page one for

iPhone Animation App.

May - Calligraphy with openGL. Adapted Apple's GLPaint example to create an iPad utility that can replay a curve with the same pace. This is important as the pace gives a sense of how the master calligrapher pauses or sweeps sections of text.

Jun - More openGL. The iPad version of this app includes layers, which allow the artist to paint with different colours. Although it's obvious, it isn't as easy as it sounds as the 'Tween engine works by matching curves based on their drawing order. So what if one's green in one frame and orange in another?! The 'tween colour might get ugly. By using individual layers for each colour we can avoid this, but it's a headache to code. The developer's are spending more time each day in the local pubs.

Jul - Alright I admit that (so far) there have been very few takers of the video export feature (which took months of hard graft). Who even knows about it?! Videos have been tricky to support in web development because of the mutually incompatible codecs and the wars between the browsers. Animated GIFs, however, are lightweight, standard and easy to plunk into a site to give it a bit of oomph, and that's what we're doing, with many thanks to Laszlo Zsidi for GifMerge.

Aug - The programmers are all at music festivals I'm not too keen on the way they act when they come back. Lethargic and prone to fits of weeping.

Sep - The end of summer sees our fondly-regarded intern return to school. We are very pleased with the progress he made on our openGL project, especially the implementation of a Verlet physics engine.

Oct - Optimisation (UK spelling) seems to have been the theme as the recent versions of Xcode seem to be equipped with simpler profiling tools. More likely, it was just laziness on our part that allowed code including repeated, slow graphics calls that made some operations lag.

Nov - We were working on special effects with openGL ES (the lightweight version for mobile devices) and had this idea that it would look really good if we could have falling snow (a bunch of particles) stick to the lighted positions of an image. It does! But rewriting the backing texture on every frame update is costly if it's not done with smarts. Something our dimwit team never had in abundance.

Dec - The appstore closes over the holidays, so we became anxious as we thought about all the people who would miss out on the latest enhancements to the app: (that's right)

  • Memory - After many hours of profiling we noticed that it wasn't being recycled efficiently
  • Gifs - Nobody uses it, so we thought we'd improve it (because we never learn)
  • Gestures - As above, and for the same reason.
Perhaps 2013 will be the year of the Flick! You can help by writing a review on the appstore. Gracias.

2013 - Swallowed by a cloud?

Jan- Working hard on the iPad version - DoodleFlick Biggie is its name - we discovered that Apple's advice that iOS apps should be release as dual-use, whenever possible, was very difficult to follow with this graphics-intensive app.

Almost every screen (UIView to Xcoders) needs to be rejigged to take advantage of the iPad's size. In the end we gave up and decided to fork the development. Maybe one day...

Feb - Unforeseeable delays! Our lead developer took time out to install a Velux window in his roof (sounds complicated) and then our "camp cook" suffered a fractured clavicle. We persevere!

Mar- Leap Motion invited a few select developers to get to work on their interesting new motion-detecting device. We believe that we were chosen to participate because DoodleFlick is so cool. Could this be the beginning of DoodleFlick 3d?

Apr- Yes, it appears. DoodleFlick is making its way to the Mac

May - Loss of our Turkish coder to the struggle against fascism in his home country. He's been wrapped up in the occupation of Taksim square

June - We are making our doodles dance!

July - Temporarily abandoned work on the Leap Motion controller when a step upgrade in the driver caused all of our hard-won listening software to go deaf!

August - The programmers have decided to swap vacations for go-slows. That's nice for them and saves them a load of money, but doesn't help any interesting animation software make it to the light of day. Shame on them!

September - Outbreak of fecklessness turns our employees into zombies. They were never going to amount to much anyway.

October - Selecting from a list on cocoa touch is cumbersome so we built a selector int the style of the one used by Fallout

November - The Hallowe'en season always seems to bring out the spooky side of our animation ideas. But this year we just used a cool trick to make a light sculpture out of a pumpkin

December - When the mood of Scrooge makes its annual appearance, we refuse to submit, for a while. Then we just can't help but loathe the insistent, hyper marketing that takes over every media outlet until, abruptly after Christmas, it simply fades into furniture sales.

2014 - Begins with a chill

Jan - Clips allow short repeating sequences to be embedded within a track.

Feb - Multiple tracks with their own settings enable animators to overlay doodles.

Mar - Time to apply animated GIFs (soft G) to the rewarding activity of language learning. Flashcard systems like Anki allow the student to attach graphics to their cards. What better way to remember action words than an animated GIF?!

Apr - But some of us are interested in web apps and, for their sake, we've started reducing our focus on objective-c and turned our gaze towards html5!

May - and here it is. (Well, at least a demonstration of the principle)

Jun- Animations can be quite emotional so we've attempted to make an animated list of them here

Jul- Our background artist is having another exhibition so we have rebuilt her website using Javascript to build the html dynamically. Much easier to maintain!

Aug- We generally avoid messing around with music, but when one of developer's started moonlighting as a lounge pianist, we thought that it was time to develop an app to help carry a load of musical scores on a phone.

Sep- Vancouver was where many of DoodleFlick's concepts took root. This month saw one of our minions head to great quiche-eating la-la land for consultation with one North America's most original thinkers, Erik Whittaker.

Oct- This site uses the Zend php framework to drive its in-app purchases, but we were very impressed by the work from codeigniter with its lightweight mvp paradigm.

Nov- When we're avoiding work, we're pleased to be situated in the West Country (image from the Daily Mail) where there are pretty views to keep our visual cortex pleasantly occupied while we fret about implications of our design changes.

Dec - Apple try to wring money out of their customers by prodding them into upgrading their software and, consequently, buying the latest hardward. Tricky for us, churning our old products, but we've created a nice, shiny selector for iOS 7.



2015 - New Horizons visits Pluto

Jan - We have always wanted a larger audience (than the robots who are, currently, the only things that browse this site) so one of us has written some pointless eye-candy here

Feb - At doodleflick we care so much about quality that we are unable to complete any work without fretting over it for days.

Mar - .htaccess is the 'front desk' of a REST enabled application. It directs the server to call up pages based on the instructions contained therein.

Apr - The White Hart in Somerton is this Spring's choice for a nice lunch on the way to the extreme Southwest of England, where men are manly and kids are childish.

May - Some doubts about time travel are based in our discomfort at breaking established, testable laws of physics. Conservation of momentum (objects don't change change direction on their own) and action-reaction, both from Isaac Newton, would have trouble with a person standing in a time capsule, sitting on Earth, speeding around the sun, suddenly moving in at a completely different direction, although in the same location relative to earth, but at a different point in the planet's orbit/daily rotation etc.

Similarly Einstein's famous equation of mass and energy presumes that matter cannot move faster than light, the energy of a system is presumed to be constant over time, and other difficulties are troubling for us.

So let's attempt to skirt around these problems with tangible objects, and focus on information. However we travel through time, with or without lugging our bodies, we require a transfer of information between temporal locations. We can make it as simple as possible by considering a machine that only transfers numbers. It has a simple display showing it's current value, let's make it a positive integer, a keypad to set its value, and a send button that sends the value forward or backward in time.

This machine works perfectly well when travelling forward in time. We enter the value, wait a minute and voila! the value is still on the screen. This is the trivial case of forward time travel. Even after thousands of years, assuming our machine is kept running, some future historian can look back and see exactly what we entered.

Now we'll deploy the non-trivial case of travel into the past. We'll wait in front of the machine for the number sent by our future selves, then a minute later send it back to our past selves, creating a neat circle of time travelling information. So we switch the machine on and it shows the default zero, wait for the time we've agreed that our future selves will send a value, confirm it, and then send it back to our past selves. Now we might be disappointed to see the zero unchanged, in which case we simply wait, then press the send button a minute later, but it's unlikely to convince anyone that the machine is anything more than a digital display.

To improve the test, we'll ensure that the machine's value changes by adding 'one' to the value we receive, then pressing send after a minute. Now we have a paradox. Whatever number, N, the machine returns, it must have been N-1 a minute before, but as it's looping recursively, the N-1 must have been zero at some stage, at which point it didn't work, because the machine only allows positive integers, and the previous number can't have been -1.

Jun - Fermat's last theorem was solved by Andrew Wiles, using an implausibly complex proof. A corollary of the theorem is the Martini conundrum. If you have a Martini glass marked up it's side at equal intervals, and you discover the perfect mix by filling it with Vermouth to mark N, and further adding vodka to mark P, then you will never be able to scale up the measurements using the same intervals.

July - It turns out that there are an unknown number of pentagons that "tile the plane". Pretty cool!

August - In England

September - We need to fix some design flaws that were committed into our application in the past. Would it be possible to travel into the past to sort these bugs out, or would that create an impossible paradox?

October - Our most junior developer was sent to the Hogeschool in Amsterdam to study International Business but we since discovered that he was spending all his time here!

November - We like the Peterson Graph.

"Petersen1 tiny" by Leshabirukov
Own work by uploader based on https://en.wikipedia.org/wiki/File:Heawood_Graph.svg.

Licensed under CC BY-SA 3.0 via Commons.

December - Some of our developers are "politically correct" and prefer the term Winterval but we'll stick with Christmas.

Jan - Because Node.js uses an event-driven, non-blocking I/O model, we considered it for our web development, but then discarded it because we're too dim to understand what event-driven, non-blocking I/O means, and also after we read this.

Feb - Here's some more on Node.js

Mar - Because doodleflick uses a proprietary algorithm to analyse doodles, we take a great interest in anything similar; that's why we spend a lot of time here.

Apr - Is Google's Tilt Brush something we should look into at DoodleFlick's?

Have a look at this video to see what we're thinking.

May - At doodleflick we are concerned with "concerns". In software terms this might mean anything from general storage mechanisms to low-level calculations, depending on the level of detail the developer is working on.

In most cases software can be logically separated into different units (sections of code), which deal with separate concerns, and thereby avoid the need for the units to know particular information addressed by a other units.

Jun - "Separation of concerns" is the term Edsger Dijkstra used to describe the motivation for modular code, which allows the programmer to reduce the complexity of the system being designed. "Coupling" occurs when different concerns are engaged within a single module and highly coupled code is notoriously difficult to disentangle and extend.

Jul - from wikipedia, "Cross-cutting concerns" are aspects of a program that that affect other concerns. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and can result in either scattering (code duplication), tangling (significant dependencies between systems), or both.

Aug - "A squad went out on ops - 7 of 'em in exos. They got to the target. We could hear 'em… we could see the ordnance three miles away. It was over so fast. Pow pow pow, four maybe five big, big flashes, and then some. There was radio chatter and then - they were calling in hit - the exos were sending May Days. Their voices went dead - the men. The exos were still sending data, but it was all fucked up, all confused. The drones were down. And half an hour later they came out of the woods - the exos - at a trot, carrying their pilots, alarms flashing. All dead. All burnt and shot to hell. Fuck. Bobby and the guys just pressed the release and the pilots… The pilots just fell out, still smoking."

Autumn From https://greatwar.nl

Sep - When we watch film footage from the Great War or around that time, we can clearly make out individuals, architecture, animals and machinery. The films were made in black and white and often have no sound so they often overdubbed with soundtracks of marching, gunfire or celebration, and some colourization techniques have been mildly successful in rendering the scenes more realistically. We're at the point where history can be synthesized. Is this a kind of synthetic Time Travel?

Oct - "A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, most notably computer science."








Nov - This month the team was diverted by the Tank Museum because most computer programmers (or "software developers") are nerds at heart.

Dec - Millions who bemoaned the US election result have taken comfort from the thought that, after The Donald commits some serious blunder, the dupes who voted for him will wake up to their folly, the scales will fall from their eyes, and they will think twice, in future. Experience suggests that, on the contrary, his supporters will just blame someone else.

Jan - As educated, well-traveled world citizens, the development team don't generally fall for conspiracy theories, like 911. In the States, if you're going to gear the country up for war there's no need to stage an atrocity. It's sufficient to show a jihadi gobbing on the American flag to get half the population cheering on the bombers. So why kill your own people in an operation that could easily unravel?

Also, if you want to invade Afghanistain and Iraq, while bolstering hatred for Iran and Palestine, wouldn't it make sense to place at least one dude from those countries on the team? We don't want to go overboard and have an entirely Palestinian team or anything. The people aren't stupid! But come on, most of them were nationals of a strategically imporant ally.

Feb - Returning to software development, which is what we sometimes do, the observer pattern is a software design pattern where one object (the subject), maintains a list of observers, and notifies them when something changes, usually by calling one of their methods.

Like idiots we started with a botched implementation of this pattern. Now we're fixing it. Repent at leisure

Mar - Michel Thomas is a character worthy of a movie. But is it true?

We don't know, but one of us is using his method to learn a foreign language. It's the opposite approach to Babelfish. He leverages cognates (same sounding and meaning words) to get the student talking in very short time.

Apr - Despite trying to get traction with our desktop client of doodleflick (for pros!), we find ourselves increasingly concerned with website development. Is this a permanent thing?

May - We avoid international travel, being tree-hugging hypocrites, but it's sometimes necessary and some of us have had to get new passports. They now come with a built-in biometric identifier, designed by idiots so that they can be read by anyone with the right equipment. At least we didn't get the wrong kind.

June - Once armed with passports, we are able to travel abroad. At doodleflick we predict that this is going to become redundant, thanks to the morons (can they be they same people who devised the passports?) who have decided to leave the European Union

July - Charlie Garde died this month. The little boy was born with a complex, congenital disease that brought him so close to death that the hospital treating him decided to take him off life support. The parents objected. They were offered speculative treatment in the United States where "life is sacred". Tricky.

August - To wind down, some of the team entered a race in Whitby. As clearly demonstrated by some of the barges, sailing is still firmly fixed in the past, but what about these sailboats with wing sails?

September - For our end of the summer jolly we took a trip to le Mont Saint-Michel. It consists of leucogranite, which solidified from an underground intrusion of molten magma about 525 million years ago, during the Cambrian period

October - In fact, we've had it with coding and have become more interested in traditional buildings, like the cob walls found in the southwest of England.

November - The Turkish language is very logical and elegant. That's why we put so much store in our Turkish programmers. For example : Siz o zaman orada imişsiniz. = It is said that you were there at that time.

December - PV. Artists often have a "Private View" of their work on the first day of an exhibition. The French call it a "vernissage", as in varnishing, where wine is the varnish. We took the crew to this one.

January - We like maps here, and spend many hours plotting routes on them, rather than simply flick on the SatNav. But this map lets you travel in time!

February - Dieting for Lent. There's strong evidence that the body benefits from some fasting. Is the pain worth it? I suppose it depends on the individual and how porky they are.

March - Dieselgate - Our German allies, previously known as the Krauts, are stereotyped as honest to a fault, but the engineers at Volkswagen were devious bastards of the highest order when they built a test evasion condition into their pollution reduction system. It seems that Rudolf's system is simply unable to work without whacking great gobs of soot.

April - The real-world coding cycle:
  1. System is (re)written.
  2. The original "architects" eventually leave the company one by one.
  3. The "new" guys say "this is shit, let's rewrite it it in a new perfect way with all the new technology"
  4. return to (1)

May - "Birds sing about their nests." It sounds like someone has been drinking Electric Kool-Aid, but the idea encapsulates the relationship between motor skills and other neurological processes dedicated to patterns. The ability to weave twigs and strips of material into a solid structure, like knitting - pearl eight, drop one, requires a neural system or systems, with properties that can "bleed out" into other cognitive processes. Almost all song-birds weave nests.

June - Edouard's law? The processor scale of integrated circuits reflects the dimensions of their problem space.

  • A 4 bit processor can control a switch, or a hexadecimal digit on a display. This is like a single point, or 0D problem.
  • An 8 bit processor can control a line of text, which approximates to one dimension.
  • With 16 bits we can work in two dimensions, on a whole page of text or an image.
  • 32 bits lets us work on 3D images or moving images, which are both 3D.
  • A 64 bit processor provides the horsepower necessary to run moving, 3D images, like immersive games.
  • By extension, what maps to 5 dimensions, such that we need a 128 bit processor? Abstract pondering aside, it's beyond a human's cognitive ability, so I propose that there will never be much demand for it apart from in high end workstations.

July - Fermat's Final Martini? Agent Double-0 Zero has a favourite recipe for a vodka martini, mixed in a conical measure with evenly spaced gradation lines. He pours the Vermouth up to line x, then adds vodka until it reaches line z. One day, after a botched operation following too many drinks, he's captured. Before execution he's asked "Any final requests?" and replies by demanding a martini, with his favourite, exact proportions, x and z. Then he adds "And as it's my final drink, could you please pour the vodka first?"
This is impossible as the line y must be (z^3-x^3)^(1/3).
By Fermat's final theorem y is irrational. There is no line y! Instead, after a few tries, they say "Ha ha! You win again Oh Oh Zero," then laugh uproariously after they shoot him in the head.


August - After a long, hot summer (the Brits go on about how great it was in '76 - fondly remembering the drought) our minds are again on solar cars. One objection is that pasting photovoltaic panels onto a car won't provide sufficient power to drive it along at realistic speeds. That may be true but ignores the fact that most cars sit outside all day long. With sufficient battery storage an electirc or hybrid vehicle could store enough solar energy to drive it to work and back.
200 watts x 8 hours = 1.6 kilowatt hours = almost 20 kilowatts for 5 minutes(!)

September - Howe Sound in the Pacific Northwest


October - The borders between English counties, such as this one between Dorset and Devon, can be neglected, and all the better for it. (from Monkton Wyld)

November - A whole century after the end of the Great War, (very basic) artificial intelligence has been put to use bringing old film footage back to life by cleaning and colourising. In Peter Jackson's "They Shall Not Grow Old" human judgement is leveraged with computer processing. It can't be long before AI is used to break down a film sequence into separate objects, the surface texture and lighting extracted, and the whole reconstructed in CGI to enable high-quality re-enactments.

December - a fencepost error can occur if a person makes an intuitive supposition that a fence only needs as many posts as dividing the length by the length between posts. If the fence is not an enclosure, it needs an additional post at the end. This is a common bug in computing and the team at doodleflick check for these kind of faults before they release their code for general use.

January - Bitcoin is a clever idea with a malign impact on society. At doodleflick we couldn't give a shit about privacy if that means the ability to transfer capital anonymously.

February - GIF (with a soft g) is a compact, popular image format that supports animation. Our earlier iOS effort supported an animated GIF generator that comprised awkward upload, process, download steps. Very clunky, and Apple's development framework has advanced significantly since then, making it easy to create various formats without connecting to the network.

March - Usk is not a common name, but it's definitely an interesting one, and the place is a (yet another) picturesque part of Wales.

April - Within the team there exist those who enjoy the diversion of sci-fi and thriller films, but as we are (ahem) mostly deep thinkers, we're a bit tired of the zombie trope. The worst of these is the way that the first character to be bitten takes far longer to fall to the illness and, as the characters fall, it takes progressively less time, to the point that they are instantly rabid near the end.

May - A creative consultant from Vancouver visited the team this month. He lived in a part of the city known for its relative poverty. That was almost thirty years ago and we know that Canada has been attempting to tackle the problems of drug abuse in the meantime. This is what it looks like now (from Google maps)

June - The Cotswolds is a small, pleasant part of England sitting on an escarpment along the river Severn. It offers many views like this (from pinterest) (photo by Giles Clare)

July - While we're on pleasant parts of England, Hollocombe Water is a stream in Devon that runs through Horry Mill and feeds the River Taw.
August - And still on England, and the curious way in which it became so powerful, is the Commonwealth's Saxe-Coburg regent (ancestors from Germania), Elizabeth Rex.







September - Garden Bay, near Pender Harbour, BC (from Google Maps)




October - The author, Andreï Makine, writes beautiful French but speaks it with a strong Russian accent.

November - Marx uses convoluted language laced with technical terms in a deliberate attempt to dazzle the reader. Take this example:

No social order is ever destroyed before all the productive forces for which it is sufficient have been developed, and new superior relations of production never replace older ones before the material conditions for their existence have matured within the framework of the old society.

There are two independent clauses here. Simplifying:

  1. No social order is destroyed before certain forces have been developed.

    Note the use of the word "destroyed", as if the vague, subjective idea of a "social order" is analogous to a chemical compound or a gas . "Forces" need to be "developed". What kind of forces are these? Marx specifies "Productive" forces. What other forces should they be? Counter-productive forces? But the idea of a social order being destroyed is false in any case! They evolve, as can be shown by our own societal evolution, but Marx would have been ignorant of the fact that our direct ancestors were monkeys, and that their societal structures continue to exist, even within us.

  2. Relations of production are never replaced before conditions have matured.

    Here the "relations of production" is the subject of the second clause. "New superior" is a verbal trick, intended to lure the reader into thinking that these "relations" will be replaced by superior ones. "New" is redundant and "superior" is entirely subjective. "Conditions" are the material (physics terminology employed again) conditions "for their existence".

So what does it mean?

The Marxist farmer:

  • "No chicken can be replaced before the specific requirements for a new chicken arise!"
  • "A hen cannot produce an egg until the physical conditions for the egg's production have matured!"

(NB. This is not to say that we endorse western capitalism)

December - The UK chooses Johnson or rejects Corbyn? A bit of both, no doubt, and under the earnest lightweight Jo Swinson, the Liberal Democrats' hubris is fatally exposed.

January - "2020" has a nice, futuristic, ring to it, to the eyes of our team, all born in the last century, but would we have predicted how we would still be sitting in wooden chairs wearing wool and cotton? And why not?

February - Winter never really got going in England this year. From the beginning of Autumn it was a series of named storms and periods of rain or showery weather were barely separated by a dry day.

The Pandemic of 2020

March - The virus had already made the news, but before a lockdown was announced in the UK, one of our team members became very ill with a bad cough, aches, fatigue, and fever. We suspected that it was too early for the coronavirus to have made inroads this deeply into the country, but accounts from elsewhere suggest that the spread may have been much wider than the first news bulletins described. (He survived)

April - Dead pets cemetery. A lot of people have had a family pet. They'll know that they are loved like a child (with learning difficulties). Our team has had one from before the time (the doodleflick era) that this app was created and he was even there at the beginning! This Spring, as the lucky people who had nice homes hunkered down in lockdown, our dog had a seizure and then a vet was called to "take care" of him. (He died)

May - Furlough and easing of tensions. Even though the number of hospitalisations remains much higher than it was at the beginning of lockdown, people have begun to lower their guard, and their natural need for company overrides their fear of death! The fatality rate is still small, but not negligible. It appears that most fatalities are caused by an overreaction of the immune system, rather than cell death from viral reproduction. Treatments have improved and this is the value of an initial heavy response - it prevents premature deaths by reducing the number of people who become ill during the chaotic early stages of our response.

June - This year's Spring (in Northwest Europe) was excellent and the fruit is looking good. We make currant jelly because it's more interesting than writing software, when the Sun is out.

July - Here's another attempt at the puppet controller.

August - Back to language learning and how to do it, Duolingo&tm; is a neat, engaging web application, but it's a bit like learning to play football with a Nerf&tm; ball in a squash court. Not at all useless, but nothing like playing with a team on a grass pitch.

September - One common Mexican word for a bribe is 'morbida', which is like a bite that criminal gangs, including the police, take out of your wealth.

October - Spotify provides a top 200 list facility that presents the streaming counts, broken down by country. Our programmers, with their experience of data analysis (They know what it means), have been approached to perform some extraction of this data. We are hoping that the results will be available early next year.

November - Apple&tm; have a double-edged advantage/disadvantage compared to Microsoft&tm;. By controlling their hardware they are able to maximize its performance with respect to the software they care about (their own). The disadvantage is that they have to spread their expertise over hardware and software divisions. Independent hardware vendors can (and often do) build machines superior to anything available by the fruit guys. With the new M1 Apple appear to have stolen a march. It won't last long!

December - Scoriton on the edge of Dartmoor

January - Apple tree pruning

February - The Duck of Marlborough

March - Frog spawn (Fraie)

April - Swift's Gameskit

May - Boiler technology

June - Water shortages

July - Art in 44AD

August - Hip prosthetics

September - Driver shortage

October - COP26