Archive for October, 2008


And now its Wednesday…

So, the markets were up Monday, and now they have almost completely erased all of the gains made on Monday, and look to end up the week lower than they started it… exactly like I figured they would.

Unless the fundamentals get fixed, all of the bailouts in the world won’t fix things. Liquidity simply isn’t the problem here.

Now, many people are claiming that liquidity wasn’t the problem in the thirties either, and that having fiat currency is the root of depressions… which is stupid because depressions were common when the US was using the gold standard, in fact fiat currency has helped to prevent many depressions, but it is not a perfect system.  Fiat currency is inflationary, whereas the gold standard tends to have sudden resource expansions and contractions due to unexpected changes in supply. The end result of a gold standard (or a silver standard) is a volatile economy, much like the one that existed in the 18th and 19th centuries, with regular cycles of boom and bust. In fact, the depression at the end of the 19th century was by all measures except total length much worse than the great depression, with jobs being scarcer, hunger more prevalent, and many, many more people being completely wiped out financially. This was under the gold standard, but was the result of a speculative bubble, much like the current economic crisis. Of course, that depression was ended with the judicious use of cheap oil and the creation of many new industries… options that simply aren’t there this time around.

In fact, our market and employment patterns are very much like that fierce depression (not identical, just similar) and the measures being used to combat this depression are targeted at something completely different, in fact they are such that they are likely to end up excascerbating the problem.

Whatever we do, we only have so much time left with a high energy civilization… maybe it is time to try something a little different, a little lower energy, while that is still relatively painless.


Its Monday, everything is going to be fine…

I just read that the markets are on the rebound and everything is going to be fine with the economy. I’m trying to remember where I read something like that before… oh yeah, it was last Monday, and the Monday before that, and the Monday before that. By Friday we are in for the worst depression since 1929…

I think I know where the problem lies. Financial journalists have made a fundamental error. They believe that liquidity is the same thing as wealth. So long as there is capital in the market, they figure, banks will loan money out and that money somehow percolate through the economy making everything alright for everyone. Suddenly, your house won’t be foreclosed on, your job will be safe, your groceries will cost an amount you can afford. Liquidity isn’t the issue, lack of wealth is the issue.


Parting ways

Keane and I have parted ways, so all of my time is going to be devoted to the security stuff and my encryption patent. I have a bit of pay still outstanding and will be focusing on building up contracts over the next few weeks.

Also, I will be writing another couple of articles for Glenn Sacks.

I will keep people posted.


Canada’s election

I’m Canadian, which means that my federal election has a lot less fanfare. Our English language leadership debate took place on the same day as the US Biden/Pain debate… guess which one got more Canadian viewers? I chose to watch the US debate as well, but only because I already know who I am going to vote for.

A friend of mine is urging everyone to vote on election day here (election day is Tuesday, October 14th) no matter who they vote for. Given the destructive policies of our Conservative Party I would like to amend that: Vote, it is absolutely vital, unless you are a supporter of the Conservatives Party. In that case, well, the polling station might be hard to find… it could be packed, really, do you want to go  to all that effort? I mean, it’s not like on vote is going to make a difference right? If you aren’t voting conservative, please ignore those last comments.

Someone else I know complained that Jack Layton (the leader of the New Democratic Party) doesn’t have the balls for being a world leader. Seems to me that having big brass balls is a huge part of the mess the world is in, maybe we need someone less aggressive (and I don’t think Jack is a wimp or anything, just that he isn’t as in your face as Stephen Harper. Sometimes it takes more guts to not be a grandstanding bully…).

Please, vote NDP if you are in riding where they can win. If you are in a riding where the NDP doesn’t stand a chance, but the liberals do, vote liberal. If neither of them stands a chance, vote green, or marxist/leninist, or hell, Bloc Quebecois if that is the only non-conservative option… just don’t vote for Harper, after all, with his policies that are in line with the ones that created the global credit crisis, Harper just isn’t worth the risk!


Forgive the geekiness

I realize that this blog is mostly about politics, economics and gender issues with a bit of business creation thrown in, but this post is going to be geeky as hell. You see, in my day job I am a programmer and I have been since around 1994.

This post is going to be about abstraction… the process that is so popular in programming these days of breaking code into small, small pieces that interact with other small pieces, and some of the standard practices that are around that are just stupid ideas.

Lets start with databases… maybe it’s because so many of the people I work with weren’t around in the early nineties, and they were introduced to the industry after SQL became widespread that they don’t understand exactly what it is that they are doing when they write database abstraction classes that remove writing actual SQL from their code. See, back when I started out every database was accessed differently. You had to learn a specific language for that DB and often that meant you were programming in whatever flavour of the month you were using. In C and Assembly Language it was worse. You created the database and the access methods most of the time (only if you had a lot of money for the project could you use one of the SQL based DB’s). This meant that you had hundreds and hundreds of pieces of syntax floating around in your brain just to get the information your program needed to function. SQL ended all that. There were minor differences (this database supports limit, that one doesn’t, etc.) but for basic tasks like reading, updating, inserting and deleting simple data you were fine. This actually led to a lot of the web 2.0 revolution. Now that it was easy to figure out the database end of things and you could get a free database that did everything you needed, you were welcome to concentrate on the more important bits.

Now, everyone creates a class for accessing SQL. Some kind of Active Record beast that uses a custom syntax (instead of SELECT * you type findall… etc.) They object oriented methodologies to make it an object that has methods you can access. In the end it just means that you have to learn a unique syntax for every project you work on and you have hundreds of methods for accessing a database floating around in your head…

Another big guilty party is the whole idea of MVC and templating. Every MVC system I know of uses a templating system, often Mako templates, but maybe something else. Now, instead of learning the language you are using, you have to learn at least three languages. You have to know HTML because that is the main presentation language and if the content isn’t presented in HTML you are not going to be able to output to a web browser, and since most business programming does output to a web browser these days… of course you have to know that actual scripting language you are using (python in the case of my day job, sometimes c, sometimes php, etc.) and then you have to know Mako. Mako is a bad language. It is a cludge of a clusterfuck designed to abstract programming from the person building the page, but one that still supports variables, conditional branching, looping, basically all of the features that make a programming language a programming language. Technically you could make a Mako template that accepts no data from anywhere and have it actually be a program… although without something feeding it data it would always display the same thing as it is lacking any input methods. Hell, combine it with some JS and you could have a decent web app… oh yeah, make that four languages for a modern app. The worst ever offender for this is PHP using Smarty. PHP is a templating system folks, it isn’t even all that much more powerful than Mako… more functions and some actual input abilities, but at the base you could create a page that was identical to a Mako template in every way except that it used the slightly more elegant PHP coding where Mako has its cludged together crap-tacular coding (this is a real, honest to god, function call within a Mako template: ${h.form(h.url(action=’add’, method=’POST’))} and something that is the equivalent in PHP <?php form(url(‘add’,’POST’)); ?>, how in gods name does Mako add anything to that?)

Lets talk MVC. For the uninitiated, MVC stands for Model View Controller. It is a way of breaking program down into standardized blocks. The Model describes the data the program will use. It provides an access point to the database (for your incredibly awesome Ruby on Rails Active Record implementation). Just to be clear, this means that you have to define your database in two places, inside the actual DB and in your model… they match because your model takes care of creating the DB structure for you, but in reality that DB structure now exists twice. Then you have a view. A view is bits of code that feed data to Mako templates and decide which Mako templates to use (or some other template schema… but usually Mako). Again, you create memory variables which feed Mako memory variables. Finally, you have the controller. The controller takes data that the user supplies and data from the model, does various things to it (like summing up a bunch of numbers or deciding which names belong in a list of top customers) and feeds them to the view. It is yet another step in the ages long quest to turn programmers into assembly line workers. All of them doing the same thing at the same speed. In the end it produces code that can only be read if you are using an Integrated Design Environment that will find where something is actually declared for you, because you can’t possibly decipher the damn program yourself. The argument has gone from VI vs. Emacs to Eclipse vs. Microsoft Visual Studio. VI took up a few kilobytes of memory, same with Emacs. Eclipse can take up hundreds of megs of memory. Even worse though, programmers are losing the ability to think. They are in fact becoming assembly line workers, the creative spark beaten out of the ones that possessed it.

Object Oriented Design was the beginning of this. The idea is that in the real world there are objects, each object is made up of smaller bits, other objects, that have the properties of the parent (oddly enough, that system of human classification breaks down very quickly under scrutiny, but is the reigning metaphor for software development). In practice it means that when I want to say, get the name of a user, I don’t type something like getUsers(‘bob”), instead I type something like function.users._user.getUsers(“bob”) and if I want to change what a user looks like I have to figure out where the hell the code actually is. Thankfully I have an IDE so I can right click on getUsers in my code and select goto definition, or whatever the equivalent of that action is in the IDE I am being forced to use at work this week. When I started, I would look at my include lines. One of them would be called something like “users.c” and I would open it. Then I would find (by quickly scanning this fairly small file that was just functions that dealt with users) the getUsers function. Then I would make the changes I needed to. See, I did object oriented design right before doing it wrong became the way of the world.

Bad programmers produce bad code, if it is object oriented code, they produce bad object oriented code. Good programmers produce either good code, or JAVA.

I didn’t realize I was this angry about this stuff until now.



So, the thing with the market right now is not just that it is dropping like a stone, it is also that I can go for my (rather short) lunch break and discover that the market has changed by a total of a couple of hundred points. That kind of radical swing behaviour means that for most people the market has simply become too unpredictable. It will take a period of stability before the average investor starts to plow cash back in, and that period probably won’t occur until the market drops far lower than it is now. We are in tech crash territory on the market now, meaning that this is a huge, huge drop. Expect worse before it stabilizes, and then the oil shock will hit…

John Michael Greer talks about the end of civilizations as being a series of crisis, each one followed by a recovery that never quite gets you back above where you were before the crisis. This is what seems to be happening, it’s just that like so many things in our  society, it is doing it at breakneck speed.


Trust Sharon to say something profound

Sharon Astyk just posted this: she gives me hope for humanity…