Results tagged “General” from Cordinc Blog

Rules of Programming

|

Coder, programmer, software developer, IT engineer. Whatever it is called, my profession has changed the way I think. I started learning to program 23 years ago as a hobby, started studying it seriously 17 years ago and have been doing it as a job for 13 years. Now I seem to think a great deal straighter than I did before - straighter than when I was in my early twenties and studying postgrad logic. By thinking straight, I mean following a chain of logical rules to their conclusion - determining what they imply and where any gaps in the rules or strange corner cases exist. Straighter in that I can quickly work out the logical chain, identify problems, and ignore unimportant avenues of thought. I don't tend to take the scenic route anymore; I go straight to the destination.

This makes sense to me, most of my job as a programmer is thinking straight. Writing the code is very easy once the language is mastered. Instead, the job comes down to solving problems with code. At the start of a project this is done by precisely specifying the steps of the solution in code. No ambiguity is allowed and all the possible situations must be covered. Edge and corner cases will cause bugs, so must be considered. As the project progresses, any changes or additions must take into account interactions with the body of rules already encoded in the existing codebase. As the complexity of the system increases, so do the possible interactions and it gets harder to run through them. This is one of the reasons big systems tend to have so many problems and why experienced coders try to keep things as simple as they can.

It seems reasonable that I have trained myself this way. I have far more than the suggested 10,000 hours of practice. A back of the envelope calculation suggests I'm close to 50,000 hours. That much practice is bound to etch a groove in my thought process. Sometimes that groove is too easy to follow and I get lost in thought, monomaniacally thinking about a system. In software development this state is often sought out and is no bad thing, except in your interactions with other people. Sometimes I wonder if a similar process is at work in other professions, perhaps with less than ethical results.

I studied a Business degree mid career (so far). It hasn't been of huge career advantage to me, as I have learnt I am happiest just coding away. However, I did learn the basics of some other professions. There was a semester of accounting and another of contract law. In both courses the lecturers spent some time detailing how case law or accounting rules were applied - explaining that it wasn't intuitive and you just had to follow the general rules. What!? I found it quite simple to apply the rules and I achieved good marks with little effort. I just did the same thing I did every day, simply swapping lines of code for case law.

My impression is that both law and accounting use similar thought processes to programming - applying rules to reach a desired end state. While programming uses exact statements of software logic; law and accounting use the written language in laws, cases or standards. This natural language is more malleable and open to interpretation. I sometimes wonder if people in other professions get similarly lost in their rules. Focussing on just beating the problem as presented to the exclusion of other concerns. This could offer a generous excuse for the motivation behind results like tax evasion, or dodgy financial products.

Hurt Locker

|

Possible Spoilers Below

Last night I watched Hurt Locker for the first time. I was looking forward to it. I had heard so many reviews and it had won 6 Oscars. However, to put it politely, I didn't like it. I consider it well below average. Both the major and minor characters are unbelievable and fit neatly into standard movie stereotypes ("he's a maverick, doing dangerous things - but he gets results!"). The scenarios in which the characters find themselves seem unlikely. One character carjacks a local and travels across Baghdad, then runs back to the base. At another point, 3 characters search for enemy bombers in the backstreets by themselves and unknown to their support. Coming to a three-way junction, they split up! The script is often heavy-handed, letting the audience know exactly what they are supposed to be thinking. For instance, when confronted with a possibly involuntary suicide bomber, the interpreter repeatedly reminds us "he's a good guy". Once is required, maybe twice to stress the point. However, the many repetitions beyond that are just clunky. At once crucial point we are told "he has 4 children". Are we perhaps supposed to empathise with him?

The plot is quite episodic. This got me thinking. It might be that the story's ambition was neutered by making it a movie in the first place. The story has potential and maybe many of its problems (heavy handedness, stock characters) could be solved by taking longer to tell it - much longer. It is very hard to fit a complete interesting story with detailed real characters into the 2 hour timeframe of a film. I doubt even extending the running length to 3 hours, the extreme end of theatrical releases, would give enough room to properly tell Hurt Locker's story. Perhaps it should be a TV series.

I remember a time not long ago when the 4 or 6 hours of a mini-series were the longest storylines around. Now there have been quite a few TV series with continuous storylines. Babylon 5 was the first I remember, but since then there have been the excellent The Wire and The Sopranos among many others. Generation Kill told a similar story to Hurt Locker more successfully over 7 hours. After watching these, other TV shows with their "everything resolved in 40 minutes" episodes seem inferior (Dr Who is suffering from this at the moment). I am not suggesting film is inferior in general, just that it has its limits and most of the best films don't try to do too much. For great characters and great stories the extra time afforded by TV pays great dividends.

Lies, Damn Lies and Indices

|

The last few days before the UK election saw the image below circulating around the city. I saw it first on FT Alphaville. I find this image incredibly annoying. Not because the message is necessarily wrong. There is a strong case to be made that the Labour's party's rhetoric on their ability to manage the UK economy is in no way matched by their actual management of the economy (although it's debatable whether the Tories would have been any better). Instead, it is because the image is using a misunderstood part of the financial world to produce a misleading graph.

boom-to-bust.jpg

The image is a graph of the FTSE 100 stock market index of the largest companies listed on the London Stock Exchange. It is a UK version of the S&P 500. Like other share indexes it is often quoted on the news in absolute terms as well as the absolute rise or drop over some time period. For example yesterday the FTSE 100 closed at 5123, a drop of 138 points. However, to compare movements the absolute point value should not be used. This is because the index is calculated as the change relative to some reference date. Calculated from this base, the larger the index, the larger point move required to be equivalent to a move at a smaller index move. A 2% move when the index is at 5000 is 100 points, when the index is at 2000 an equivalent move is 40 points. As the index gets larger, point movements will naturally become larger for no difference in activity. Thus the graph above is misleading because it exaggerates the more recent point moves at a larger index level compared to the earlier moves.

It is the percentage move that is important. If the graph showed percentage moves the 1987 crash would appear much larger and the recent crashes smaller. To better show the relative moves, I found a graph of the FTSE using a logarithmic scale on Yahoo. As can be seen below the recent boom and bust don't seem as large, but they are still there. So the same message could have been sent with a less misleading graph.

ftse.GIF

New goals, again

|

I don't like new year resolutions detailing plans to make yourself better - I'm already great! However, I do like the idea of setting a few goals. This year's goals are fairly similar to last years, but a little less ambitious:

  • Blog at an average rate of at least 4 times a month. Fairly sure I can do this with the Blender and History Podcast posts I'm planning.
  • Only have 2 programming projects going at the same time. Reassess projects every 3 months. The first two are: learning how to load and animate blender models in a 3D graphics engine; and a secret project.
  • Complete 3 Blender models and write tutorials on them - the models are a robot (to learn animation), a Thermopolium, and a Broch.
  • Maintain Queuesaurus and general ruby skills. Try to use Scala.
  • Run 5km in 25 minutes. This is a bit ambitious.
  • Decrease net ownership of physical goods

Recap

|

Almost a year ago I wrote some goals for the new year. Now it is time for an assessment.

  • Goal: Improve Ruby skills. Result: Partial success. I'm not at what I would consider a professional standard, but not far off it. I gemify'ed my BBC weather library, but have since abandoned it as keeping up with the BBC's constant API changes was frustrating. I use Queusaurus even if no one else does. I started another project, but it didn't get far enough to publicise.
  • Goal: Learn Scala. Result: Have done some, but not much.
  • Goal: Learn Blender. Result: Near Success. I feel confident enough about this one. I haven't completed an ancient scene, but I'm sure I could.
  • Goal: Decrease net ownership of physical goods. Result: Success. Doing this slowly but surely - I own fewer things now than when I wrote that goal, but not by much.
  • Goal: 48 blog posts in a year. Result: 44 posts. I'm fairly happy with that. Holidays and looking for a new work contract slowed me down a bit.
  • Goal: Run 5km in 25 minutes. Result: Not even close. The less said the better.
  • On the stretch goals, all are still a long distance away.

I think the main problem with achieving those goals was my tendency to try doing too much. At one point (and continuing for a couple of months) I had 6 programming projects on the go at once. Nothing progressed at any pace over the last half of the year and that is what caused the most slippage. Something to be aware of for the coming year.

New website and Blender pages

|

If you go to my main website, you will now find it changed. Previously it was a basic advert for my professional services. However, the company I ran those services through will be shutting down soon. So the site is now a hook upon which to place my little side projects. Thus I have added a Blender page to aggregate all the Blender and general 3D modelling content I have created - check it out.

Scientists have discovered...

|

Time for a pet peeve. Why do people say "scientists" as if they are some homogeneous group? Nearly every morning I hear reporters say "scientists have discovered that blah, blah, blah" during their token science story. It seems to be a lazy way to avoid saying biologist, astronomer, chemist, physicist, etc. Now I can't claim to be a scientist of any description (I dropped out of a PhD in Computer Science). Professionally I'm more of an engineer nowadays (although that is another category occasionally lumped into the media's science bucket). However, I know a few PhDs or lecturers in science subjects and there is a fairly large difference between the things they do, so it's not that hard to broadly differentiate them into categories more specific than scientist. Asking them is often a good start! Also, there is rarely a mention of where or how the work was done. I personally would be more impressed by a statistically significant result in a double blind study from MIT than a report from the Pond's Institute (although TV commercials would suggest the Pond's Institute has nicer labs).

Not convinced? Try this comparison. Next time you listen to the sport section of the news replace any mention of a specific game with "sport" and the players with "sports players", then just remove any mention of specific teams. "Last night in sport, a group of sports players from Manchester beat 3-2 a bunch of sport players from London." Not very informative.

The weather archive is no more

|

Today I shut down my historical weather website. It continually broke because BBC Backstage Weather kept changing the format of their RSS feed. It became too much effort to maintain the site in a working state, so it had to go. Since there was only ever 943 hits on it and the vast majority of those were me, I don't feel too bad. It served its purpose and I learnt quite a bit from writing it. In any case, I should focus my limited spare time on more useful projects.

I have kept weather_report up in case anyone wants to take it up and use it, but they would have to fix it for the new RSS format first.

Site Stats

|

I want to talk about this blog. Yes, it has been said Meta Is Murder, and I generally agree with that post. However, I originally started this blog to motivate myself in my personal software development and learn about internet publishing. This post will be about the latter (in the form of this blog) and a later post will deal with the former.

Since the first post 20 months ago on February 5th 2008, there have been 71 posts on this blog. An average of 3.5 per month. There has been a single comment and a single trackback (although there have been many spam versions of both, but I deleted them). I also set up Google Analytics and Adsense to track visits. At first very few people visited the blog - 20 visitors in the first months, 3 of whom were me! Since then the number of visitors has slowly increased. As of midnight yesterday there have been a total of 14,000 unique vistors resulting in 19,000 page views. The below statistics are for the last month.

blogstats.jpg

The most popular blog posts are the technical ones. Around 55% of the traffic comes to 3 pages: Installing Sphinx & Ultrasphinx on Windows; Multiple Attachments with Validations In Rails with Paperclip; and, the Prototype Tooltip Library. The rest of the top ten are also all technically based. People mainly find these pages through Google - a full 76% of visitors originate from a Google search. Note my specification of Google, all other search engines combined account for 1% of visits.

One month stands out as particularly exceptional. After publishing Multiple Attachments with Validations In Rails with Paperclip I sent an email to the Ruby Envy guys and they made a positive mention of the article (that was a real buzz). The result was immediate, noticeable and unfortunately short lived. The blog went from around 40 visits a day to over 300 in a single day. This is the only promotion of the blog I have done.

rubyenvy_boost.jpg

So how much money does advertising on the blog generate? Not much. I have made a total of £3.09 through 20 clicks on ads. This is a Click Through Rate of 0.11%, which is about right as I'm told one should expect a rate around 0.1%. Last month was the best month ever - making £0.81. Long may that continue. At that rate I will be able to cash out the money earned in just under 6 years (minimum balance of £60 before actually being paid any money).

The short lesson is write technical articles that are easily found through Google and self-promote.

Gone, but not forgotten

|

This week I met up with some old colleagues. While talking about what we were all doing now, one person who still worked at the place we worked together mentioned that there had been a change in software architecture. Thus all my old code would be rewritten. This news got me thinking. I've been writing software commercially for nearly 12 years and most of my code is no longer used. Three years of work is gone due to my employers going bust. Another 3 and a half years worth was (or will be) rewritten after changes in platform architecture. Two more years of work was retired after completing the purpose for which it was written. One employer from years ago still uses 2 years of coding work - just last month I crossed paths with one of the users who did acceptance testing (he remembered me after 5 years, although neither of us could remember the other's name) and he said they were still very happy with it. So about 70% of my work, measured by time, is gone and no longer of any use. Is that normal?

I'm not sure what is the appropriate comparison. Engineers and architects build structures that last for many years. I have known people who assisted building houses, power stations, and gas pumping stations. All of which still stand and should for decades to come. However, these are physical things, so are obviously physically harder to construct. Creating software is a thought driven logical process. Perhaps a better comparison is with other professionals dealing with abstract concepts like accountants, lawyers, analysts, etc. Much of their output is transactional in nature: calculating this year's corporate accounts; writing or checking a contract; or, producing a report. While such work may exist for some time, its utility drops greatly once the reason for its creation has passed. I suppose this is analogous to code still existing in sourcecode repositories long after it no longer runs. In which case still having 30% of my work useful is probably a good record.

However, I don't find the comparison to other abstract workers wholly compelling. Software developers seem to fall in between them and engineers. We think abstractly for a living, but produce something, even if it is just logic, that has utility beyond the point of its creation. Some computer programs have been running for decades - otherwise there couldn't have been such an issue around Y2K. Even in the faster moving consumer software world code can hang around. Just today I used a DOS command window - probably some very old code hanging around there.

Perhaps the best way to think about my profession is that it is a discipline of engineering which works with logic and thus allows the perception that its artefacts are easily replaced (even if in reality that often is not the case). Also it is a fairly new profession and as such it is developing and changing rapidly, which also encourages code to be replaced with updated, more modern, versions. As for my record, when I mentioned the figures to my old colleagues they didn't think it was strange or exceptional in any way. That is probably just modern commercial software development.

Stories

|

I was recently listening to a podcast from a game developers conference, and there was a great deal of conversation around open world games like GTA(series). That discussion made me think about the difference between a storyline (be it from a book, movie or game) and the world in which it's set. When a story is set somewhere other than the familiar every day world, the perceived richness of that world can make a big difference to satisfaction in the story. Think of The Lord of the Rings, where there is a strong impression that there is history to Middle-earth (read The Silmarillion to see that is exactly the case) and many interesting things are occurring just out of reach of the plot.

The first two Matrix(series) movies are another example. The first Matrix movie was quite linear (as many prophecy movies tend to be). Neo was led from scene to scene to fulfil his destiny. The world around Neo was the same as our own except for two organised opposing groups who knew the secret of the matrix. There wasn't much room for manoeuvre. Despite what people thought of the second Matrix's plot, its world was far richer. Neo has some choice in his actions, there are portals or otherwise strange locations and rogue or independent programs roaming the matrix. It is no longer black versus white, there are many other actors on the stage.

When I used to run D&D games some advice I was given was to make the world seem as open as possible, even if you were trying to subtly guide the players in one direction. The story can be thought of as a train, starting at the caboose and ending at the engine. A linear story/game would have the protagonists/players just travel through each carriage in turn. In a more open environment they may travel by climbing over the carriage roof or skipping carriages by walking past them at a station or travel backwards for a bit. In a completely open environment they could decide not to go to the engine at all, leave the train and do something else. A world in which that last option appears possible and realistic is much more interesting, even if the actual story is linear.

Companies I love

|

Earlier I wrote a post on Companies of which I am not a customer. I thought it would be a good idea to give the much shorter list of companies of which I'm very appreciative. These are companies that have done the right thing by me even when there was no need for them to do so.

Companies of which I am not a customer

|

I recently had a problem with a service for which I paid a monthly fee. My faith in the providing firm's ability to provide the service was destroyed. I cancelled the service and thought about adding the firm to my list. "What list?" I hear you ask. The list of companies of which I have been a paying customer, but will never be a customer again. In the end I decided not to add them, they were helpful is sorting things out and cancelling the service. Plus, they have other services I would still consider.

In any case I thought it would be good to display my list. I won't add links or describe the circumstances of them being added. I don't want to provide free advertising, nor fall foul of British libel laws.

Companies of which I have been a paying customer, but will never be a customer again

  • Hurford Salvi Carr Real Estate
  • Kempton Azzopardi Real Estate
  • Rossen Real Estate
  • 3 sixty Contractor Solutions
  • British Gas
  • Holmes Place Gyms (now Virgin Gyms)

Just to show I'm not always gloomy, I'll write another post with the companies I am very happy to be a customer.

New goals

|

Last year I started this by stating I wanted to write a system, put it up online and create a startup around it. Well, 2 out of 3 isn't bad. I'd still like to create a product business, but I'm fairly happy I got Queuesaurus up and running. I partially attribute this result to publishing the goal So I thought I'd write a new list.

Achievable goals (I hope to manage most of these):

  • Improve Ruby skills to general professional standard (at present I know it just well enough to do what I want), particularly:
    • Gemify BBC weather component and put it on github
    • Continue working on Queuesaurus issue list (now kept on queuesaurus - viva dogfooding!)
    • Start next web project
  • Learn Scala to point of being able to rewrite one of my old abandoned libraries in it
  • Learn Blender to point of being able to recreate simple ancient historical architectural scenes (no need for animation or people)
  • Decrease net ownership of physical goods
  • Blog at an average rate of at least 4 times a month
  • Run 5km in 25 minutes

Stretch goals (I'm unlikely to manage any of these without significantly more spare time):

  • Get the weather app to a standard where I would be happy to open source it (no one would use it, but it could show what I can do)
  • learn Blender and gaming libraries enough to create simplistic graphical MMOs
  • Restart abandoned libraries (graph data type, yafal, music library analyser)
  • Play poker profitably
  • Make enough money from non-consulting activities to cover costs

Send the hoppers to get a reup

|

You know you watched too much of "The Wire" when someone at work says "there is something wrong with the package" and your first thought is that the drugs must have been cut with something bad rather than there was a problem with the weekend's release.

Design

|

A recent Java Posse podcast discussed UI design and mentioned that some places like Apple take design very seriously, actually starting the development process by deciding what the finished product will visually look like. This has worked very well for Apple (I love my Apple stuff) and is probably a good way to go if your product's end users may not be technically oriented. Unfortunately I have no design skills (it is beginning to show in my project) and a key part of what I'm trying to develop is that is easy to use, mainly because it is not targeted at technical people.

I like to think of designs as a state-space (this itself is probably a bad start!). Imagine a mountain range, the higher the peak the better the design, so you want to stand at the highest point you can. Starting at any random place in the range, you can either climb the mountain you are on to the top or go down to climb a different taller mountain. It all depends on whether you can see a taller mountain nearby. For the purposes of this metaphor, I am nearly blind. Unless very lucky I will not end up very high. Much like most of the other software engineers I know!

Knowing these shortcomings, instead of a normal design process, I follow the "Break & Enter" school of design. That is I find something simple I like and largely copy it. That's fine for corporate websites or GUIs, but I'm not sure how well it will work with the general public. This is something I need to think about (comments welcome). At least it's a common problem. In the Java Posse podcast there were repeated questions around how to instil a design culture or hire for design skills - I don't remember there being a good answer.

The Internet is cool

|

I have been writing this blog for almost a month and have signed up for various tools, including Google Web Analytics. I originally signed up to learn how they work for my startup idea (more about that soon, I promise), but now I think they are just cool.

For instance, thanks to analytics I know that 3 people regularly visit my blog and two of them are me! I also know that on the 26th of February, someone at Ricks College in Rexburg, Idaho, typed "weird in sign language" into google and came to my blog post about the sign language for being bitten by an alligator. Obviously it wasn't quite what they were expecting so they left after a few seconds. For some reason that little bit of knowledge puts a smile on my face.

FYI, the American Sign Language for "weird" is here, and that's cool too.

Mobile Broadband Modem

|

I don't have a home phone line, so until recently I used open wifi points to access the internet. Seeing a large number of ads for mobile broadband modems (modems that connect to the mobile phone network) I thought I could improve my connection's reliability and expense.

I bought a Pay As You Go Huawei E220 USB modem from 3, advertised as very simple to use, and plugged it in. It didn't work. At this point my biggest mistake was calling the 3 support line - what a dismal experience! The support people kept me waiting for ages and suggested clearly stupid solutions. They refused to listen to my reasons why their obviously wrong suggestions wouldn't work and seemed eager to end the call. I made them wait for me to try their solution, and when it didn't work, the cycle repeated (starting with the wait while on hold). After about half an hour I gave up on them. The next morning I was angry and determined to return the modem for a refund. However, I tried a quick google search at work first and found the answer - it seems these modems do not play nicely with others. I disabled my laptop's internal modem and the Huawei modem has worked fine since.

Overall, I'm happy with my purchase, but very unhappy with 3. Internal modems are common and to have conflicts with them would, in my mind, preclude claiming something as plug and play. I will never call the 3 support line again - I found them hopeless (why not just have them search google?). Since my dealings with 3 I have found others with similar problems. YMMV.

Rhetoric

|

Logically bad arguments are annoying. It is almost as annoying when people argue that a premise is clear when it is not. Often people make assumptions about their argument's starting points, perhaps to avoid examining the implications of their premise. Sometimes this is done for rhetorical reasons (they just want to win an argument - politicians seem particularly guilty of this). Other times it appears to be due to a lack of thought.

That small rant was prompted by a segment on breakfast TV about performance-enhancing drugs. The premise was that performance-enhancing drugs were unfair and how hard they were to detect. Why it was unfair was never examined. The situation may well be unfair, and being a fan of cycling I mourn the damage drugs have done to that sport. However, what caught my attention was the background of the presenter. He was a UK Olympic gold medallist in rowing. Many people would consider such a person eminently qualified to talk about fairness in sport. I would not be so sure.

One of my earliest memories of the Olympics was watching the cycling team time trial, a 100km 4-member team race against the clock. The competitive teams were on the latest expensive bicycles costing thousands and had been in intensive high-tech training camps to ensure their best performance. Then the Ethiopian team was shown. Their bikes were clearly of a much older and cheaper design - lacking all the aerodynamic finery necessary in modern cycling. They had no chance in the race. Is it unfair that the Ethiopians were not as competitive as others because they had worse technology? Is it unfair that having more money spent on an athlete (in support, training, a high-tech bike or better boat) makes them more likely to win?

It may be possible to say that the best athlete at the start of the competition has the best chance of winning. However, drugs and money give a distinct and often insurmountable advantage before the competition begins. Drugs and money distort the playing field from the very start and always have. The breakfast TV presenter benefitted greatly from this situation. While people suggest a complete ban on performance-enhancing drugs for the sake of fairness (at least on this breakfast TV show), there is no similar call for fairness in money. It could be argued that money fairness is impractical and could not be enforced, but that's not the point (incidentally HGH use can't be detected and thus its ban can't be enforced at present).

If fairness is defined as all have the same chance of winning at the start, then competitive sport is inherently unfair. I'm not sure that is a bad thing - I certainly don't have a problem with it. The best have advantages (I haven't even touched on the concept of genetic unfairness) and that should just be accepted, it is the nature of the competition.
I would prefer to see a different argument against performance-enhancing drugs.

Strange Sign Language

|

One weekend afternoon I was wasting some time and had the TV on in the background. Some sort of animal bothering show was on and caught my attention. The show's image was overlaid with a sign language interpreter signing the dialogue. So I turned off the sound and tried to work out what was going on from the sign language. At first the host was just annoying alligators, but then he interviewed a young girl who had her arm in bandages. At one point the girl repeatedly pinched her bandaged arm with her whole hand in a detached manner. I guessed she must have been talking about being bitten by an alligator at the time and waited for the sign language version. Apparently, the sign language for being bitten in the arm by an alligator is furiously pinching your arm with the whole hand while alternating between a furious face and a scared face!

UK Credit checks

|

Recently I had someone suggest not all was fine with my credit. A little concerned, I decided to check my credit report (for reference, I currently live in the UK and all the details I mention should be assumed to be UK specific). UK law states that the credit agencies have to provide you with a copy of your personal credit report for £2. However, it looks like the agencies would much rather sell you far more expensive deals with subscriptions, online access, regular updates, commentary/interpretation, etc. I'm sure these packages are useful for many people, but I just wanted the statutory credit report and finding the details about this took some effort amongst all the other marketing. It was nearly an hour of digging across the three credit agencies before I obtained the required forms. I'm guessing the law states there must be at least one link from the agency's home page to the forms, but no more than that. So to help other people, here are some quick links direct to the info and forms:

UPDATE: Experian promptly sent back my credit report; the other two cashed my cheques but sent back requests for proof of residency. I will send them the requested documents.

UPDATE: I now have all three credit reports. It was fairly painless process, albeit a slow one (although snail mail and proof of residency are fine by me to ensure the reports aren't sent out to anyone).

The beginning, again

|

I have decided to write a blog, again. Previous attempts to document aspects of my life rapidly lost momentum due to procrastination and the fuzzy aim of trying to preserve memories. I hope this time will be different. The aim of this blog is to detail my attempts to create a business that exists on more just selling my time as a consultant; other programming projects I undertake; and any other nonsense I think about. That list is in decreasing order of importance, yet I have a premonition it will be in increasing order of posting frequency. Let's go!