cobolhacker.com

2006/9/29

How to make your programmers happy

Filed under: General — cobolhacker @ 20:05

Although this interesting post is about programming, you don’t have to be a programmer to read it and understand why companies like Google are able to extract so much good work from their people.  Almost as an aside, the post also gives you a bit of insight into the kind of silly management trends that make life so miserable for IT workers, especially programmers.

If you ask me, a programmer should never feel as if he is a cog in the machine, or the disciple of some faith (as some flavours of Extreme Programming might have him believe).  He should feel as if he is doing his life’s work, not merely working for The Man.

The Google way of motivating workers should be studied, not just by IT managers, but by managers in any knowledge-based industry.  Hell, any industry.  Cracking the whip just doesn’t cut it anymore.  If you want people to be the best for you, you have to make them feel like they are the best and Google gets that.

2006/9/25

Protecting Canada From Bad Copyright Law: A Letter to My MP, part 2

Filed under: General — cobolhacker @ 20:41

The Honourable Mr. Schellenberger,

Dear Sir,

Thank you for taking the time to read my recent letter to you. I don’t try to engage the government all that often, so I’m delighted to know that someone on the other end is putting in the effort to listen.

I must also thank you very much for forwarding the letter to the Minister of Industry. I’m sure he’s busy, but maybe he too will find the time to read it and perhaps gain something from my opinion on an important Canadian issue.

Sincerely,

Robert J. Young, of Stratford Ontario

A letter from my MP

Soldiers in the Grass

Filed under: General — cobolhacker @ 08:58

I don’t think you would ever see such a picture come out of the U.S. Military. Only the Canadian Forces would publish a picture of our lads hiding out in a patch of marijuana.

Ok, maybe the Dutch.

from the CBC

2006/9/22

OneWebDay

Filed under: General — cobolhacker @ 21:20

It’s OneWebDay today!

As a blogger, I had hoped to think up something interesting, or even just witty to write, but the great thoughts have so far eluded me today. Sorry Michael :(

I will say, however, I’m damned grateful to be living in a place where I can have my say whenever I want without having to worry about people coming to shoot me because I’ve said something they don’t like. If more nations were like Canada I think the world would suck far less. If the Internet allows me to export even a miniscule amount of my freedom to another, then shiny.

2006/9/21

Small Steps In Programming

Filed under: General — cobolhacker @ 20:01

I have often wondered how you get children into computer programming these days. This article by author David Brin appealed to me somewhat because he articulates in it what I’ve thought for a long while: programming used to be educational and fun, but not so much now.

For all of their high-flown education initiatives (like the “$100 laptop”), they seem bent on providing information consumption devices, not tools that teach creative thinking and technological mastery.

I haven’t meaningfully worked as a computer programmer for eight years. Oh I’ve hacked on HTML, played with PHP a bit, scripted up some stuff in bash, pissed around with Perl long enough to think it was very fucked… but my days as a programmer are mostly over. I’ve some sadness on that account, but I’m not even sure if I would want to get back into it today. Programming has become more complex, and far less engaging.

You see, I am one of those poor programmers stuck in between generations. I learned my hack after the programming language revolution in the late sixties, but before the widespread adoption of object-oriented languages in the early nineties. I got into it because the popular programming languages back then were easy.

I learned to program on a Commodore 64 in the early 80s. At first it was with BASIC, then with 6510 assembler. After a while I moved into Turbo Basic on a PC, then into Turbo C, then ANSI C and finally into C++. I programmed in various flavours of C for a few years, but I was never truly happy with it. The syntax of C and C++ always made me think I was hacking on it for the compiler’s benefit, and not my own sanity. C always struck me as a mostly incomprehensible mess of symbols, delimiters and punctuation. When I needed to relax, I always went back to coding on my C64.

BASIC may have been developed for the beginner, but it was always practical and fun. If it weren’t for the simplicity of C64 BASIC V2, I probably wouldn’t have ever bothered to try out programming and ultimately would have never trained to work in IT.

Perhaps because of my experiences, I’m also one of these heathens who think Edsger Dijkstra was wrong. I think he was way too caught up in his own shit. He once said that, “The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.” He similarly hated BASIC:

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

Honestly, I think this is nothing more than ivory tower arrogance. Modern programmers need the mathematicians like builders need the engineers but in the end, it’s the grunt swinging the hammer who gets the job done. Programming has always been about the line coding and BASIC does a fabulous job at teaching that. I’ve never been entirely convinced that the syntax or the paradigm leads to superior programming effectiveness anyway.

When I went to college, I got a glimpse at a brilliant programming language, a language that to me seemed a natural, grown-up version of the simple language I loved so much in my youth. It couldn’t do graphics, but boy could it do datasets. I played with the language eagerly, only to discover later that it was being phased out because it was old and therefore no good. In fact, I was only being trained in COBOL so I could better convert it into C. I was bothered by this. To me, I was being trained to fix something that was never broken in the first place.

I don’t program in COBOL anymore, but the near perfection of its logic haunts me to this day. Modern languages seem so esoteric and haphazard in their presentation, but COBOL was always certain, like a well crafted plan. Each Division told you a different part of the plan and when you got to Procedure Division it was game time. COBOL was wordy and lacked a lot of modern features, but the rigidity of its syntax strongly discouraged errors. If you made a typo or forgot a statement, the compiler found it. Like most human languages it had the good sense to use the period at the end of a logical line, and there was never any debate about how far in you needed to indent, or whether a brace should be beside the function or below it.

Some days I blame object oriented programming for the decline of fun and certainty in programming, perhaps unfairly. Yet there are legions of young hackers out there who think this paradigm is just how the processor works. So many of them just don’t understand their roots. They’ve never hacked on the old line-coding languages of the past, they’ve never hacked assembler or machine code, and they just don’t understand that deep down CPUs are really only designed to do one instruction at a time.

All of the rules, complication and such regarding modern programming technique might be why young people aren’t so interested in it these days. For all the attempts over the years to produce the better programming language we have instead produced languages and methods so intimidating they are scaring away potentially talented programmers. It’s like there are no small steps that lead into the discipline anymore.

So maybe Brin is on to something. Get an old C64 off of Ebay and start his boy off right with a pure, simple computer, unencumbered by any of the programming trends of today. Let the young programmer delight in simple things like PRINT statements, POKE commands and line numbers before he has to tackle things like pointers, structures and garbage collection. Maybe starting off with a simple language like BASIC is actually a good way to unleash a great programmer.

2006/9/19

Arrr matey!

Filed under: General — cobolhacker @ 22:22

OH SNAP!  It’s Talk Like a Pirate Day!

ohh I can’t resist… I must share the sickness!

2006/9/14

A random picture of me

Filed under: General — cobolhacker @ 08:26

“You should post more pictures of yourself.”

Meh. I’m no celebrity blogger and I’m only a little bit vain. So meh.

But here’s one! The Toronto Festival of Beer, summer 2005. That’s the missus and I, plus our very good friend Greg. Even though it’s the mid afternoon, we’re already halfway into the bag. Good times, good times.

I don’t usually post pictures of myself in part because there aren’t all that many good ones, but mostly because I’m shy. That’s just the deal with me. I might set up a gallery one day, but I’m not likely to be in it.

2006/9/11

What’s that thingy called…?

Filed under: General — cobolhacker @ 11:13

Just recently one of my customers emailed me the question, “What is my Desktop and how do I open it?”

Now before all of you experienced computer users start laughing, take a moment to consider the bicycle. You know how to ride one, yes? Ok, now properly name all of the components of the gearing system. Most people can’t. But if you were searching for a replacement crankset part on the Internet you would have to know what it was properly named to ever find one. Likewise, you don’t need to know what the Desktop is called to use it, but you have to know what it is called when someone instructs you to do something with it.

I’m sure some computer techs would be surprised to learn that regular folks, even those who have been using computers for a few years, don’t have a good grip on even basic computer terminology because nobody has ever told them. We encounter this frequently at the shop. So the Desktop question is actually not an unreasonable question at all.

I told the customer:

In Windows, the “Desktop” is what you see on the screen when no programs are visible. The Start Button and Taskbar typically lie at the bottom of it, most users have a bunch of shortcut icons on it and your background wallpaper is seen under it. Most Save As… dialog boxes allow you to save something on the Desktop, the selection for it is usually at the top of the list inside the drop down list box to the right of “Save in:”. If you save something there, an icon for the item will appear on the screen.

Despite its special status, the Desktop is a folder like any other in the Windows system. The actual location of it within the filesystem varies from computer to computer. On Windows XP machines it is normally found at “C:\Documents and Settings\user\Desktop”, where “user” is the original username of your user account.

I have a suspicion the reaction to my verbose response was probably, “Oh yeah! That thing.” Never been told before, I’ll bet.

When you do tech support on the phone or by email you can’t see what the user sees on their screen, nor can you point at things. You have to tell them in plain language what to do. This is a lot harder than it sounds because most people do not have a good understanding of the names for the objects that make up the graphic user interface (GUI). Even the term “graphic user interface” is an unusual phrase, not typical of the kind of language a regular person uses day to day.

Language and terminology are serious problems for computer tech support because the widgets that make up the graphic user interface are so far out of whack with the physical reality most of us can relate to (widget is actually the proper term for GUI objects). Although the original intent of Windows was to simulate a desk (hence the Desktop), modern versions of Windows are now so stylised they don’t even remotely resemble a desk, a cabinet, a bookshelf, or anything in the real world.

But we have to call the objects something, as the names are all we have. We can’t call every one a “thingy”, “dohicky” or even a “widget”. An icon is an icon, a button a button and the Desktop is the Desktop. That’s what it is called. You could it “the thing with all the icons”, “the place where the wallpaper is” or “the screen”, but really it’s called the Desktop and the users we help should be made to understand that so we can help them better.

2006/9/6

Protecting Canada From Bad Copyright Law: A Letter to My MP

Filed under: General — cobolhacker @ 12:49

The Honourable Mr. Schellenberger,

Dear sir,

I own a small business in Stratford, Ontario engaged in the activity of building and fixing computers.

It has come to my attention when the government returns from the summer break they intend to move quickly on legislation to modernize the Copyright Act. In addition to being my Member of Parliament, your position as the Chair of the Standing Committee on Canadian Heritage puts you in a unique position of influence over this process. As a devoted Canadian and a person with a fair bit of practical experience in the area, I feel it is my duty to summarize my thoughts on the matter for your consideration.

I am writing to you today because respected Canadian scholar Dr. Michael Geist is convinced the government intends to create a Canadian version of the U.S. Digital Millennium Copyright Act, to put us more in line with American laws and the expectations of WIPO. While I won’t argue against modernizing the Copyright Act, I will argue that the adoption of severe intellectual property laws like the DMCA will do nothing to help Canadian culture and may actually hurt innovation, two of the few things which set us apart from other nations in the world, especially the United States. I intend to express to you a few of the societal problems posed by such a law.

Canada, like most advanced nations, is at something of a civilizational crossroads because of the widespread proliferation of Internet technology. The Internet connects people in Canada and people around the globe more effectively than any other communication system and greatly changes the rules regarding the distribution of culture and knowledge. The crossroads is what we choose to do with the our culture and knowledge: contain it or unleash it.

If you work in the media industry of today computers and the Internet are your worst nightmare. Not only can someone make all the copies of something they want, they can send it to as many people as they like for practically nothing. While this sounds terrible, it is what Canadians are accustomed to. We listen to the radio for free, watch movies on the television for free and borrow from the library for free. So we expect popular media to be free and the Internet gives us this, only faster. The public want to see content unleashed on the Internet. The popularity of Internet file sharing is proof of this.

The media industry has come to reject this notion, obviously, but it is easy to forget that the industry is not the art, it is merely the distribution system. The art comes from the artists, the human beings with the talent, a fact pointed out by the Canadian Music Creators Coalition. The Internet represents a real opportunity for writers and artists, musicians and other media creators to directly connect with a global audience without having to submit to the fickle and often bland whims the profit-driven corporate distribution system. I can think of no finer way to unleash Canadian culture on the world than this.

It is common knowledge that members of the media industry are extensively lobbying government to do something to stop this change in their industry. They say if nothing is done then art will disappear because they won’t be around to sell it. But before the industry came along, artists seemed to get along just fine selling their art directly. Will the collapse of a few foreign owned publishers really stop Avril Lavigne from singing or David Cronenberg from filming? I doubt it. If anything, I think it will decrease the amount of mass-produced American content, giving Canadian content more exposure. Websites like YouTube are proof you don’t need an industrial enterprise to distribute creativity.

So the Internet may well be the end of the media industry in its current state but it won’t stop the creation of art. And in the end, is it really the job of government to protect outdated industries? To use a popular meme, did the government do anything to protect the makers of buggy whips when the automobile came along? When the media industry asks for a DMCA-style law to make it a crime to share media on the Internet, they are asking for us to preserve their outdated businesses. They are asking for containment.

DMCA-like laws also play nicely into the hands of other corporate interests because it allows the enforcement of certain patterns of consumption, beneficial to them, which might otherwise be unnatural for a market. They might want you to buy your backups, not reuse spent consumables, watch their sponsor’s advertising, or be unable to modify the product for some other purpose. One of the ways to achieve this is to put technological locks on products to stop people from studying and modifying them. In other words, containment.

Tinkering with the things you own is a practise as old as the hills, and it has lead many Canadians into technical fields, including me. But the practise is endangered, I fear, as one of the key parts of the DMCA is a prohibition on the circumvention of these locks.

Originally conceived of to protect the media industry, the infamous section 12 of the DMCA is now used to protect all manner of products and business models. In my job alone, circumvention can take many forms: breaking the encryption on a DVD to make a backup copy, removing spyware to make a computer run better, cracking a game so it doesn’t crash a machine on boot, refilling a printer cartridge… the list of dodges we have to use in the shop to keep the computers running goes on and on. DMCA-like law makes it illegal to circumvent protection schemes and under such law there may even come a time when we have to tell customers we can’t remove unwanted software from their computers because it is illegal to.

But aside from the potential legal problems for our shop, a DMCA-style law also seriously threatens innovation. Protecting invention was never the responsibility of copyright law — that’s what patents are for — but the DMCA involves itself in this area and severely restricts activities like reverse engineering. Not only does this stifle competition in the marketplace, it potentially deprives future generations of students of the most basic opportunity to rip something apart, find out how it works, and discuss it with others, a process now greatly enhanced by the Internet. New products are often created by this discovering and sharing of knowledge. By removing the right to tinker and discuss, we protect corporate interests today while we hamstring Canadian inventors in the future.

History has shown us again and again that civilizations which adapt to new technology and new ideas are the ones which prosper most. Canada’s adoption of the railroad, the automobile, mechanized farming, mechanized factories, even NAFTA, have brought us great prosperity over the years. All of these ideas worked because they unleashed new things. A law like the Digital Millennium Copyright Act rejects the natural evolution of communications, technology and the markets in favour of containment, not for the benefit of the people, but for the benefit of large, profit-driven corporate interests which have no interest in the betterment of our society.

I have always felt that it is the job of the Canadian government to pass laws which work toward the benefit of our people tomorrow, not the bottom line of a few large firms today. When the House returns in the fall and begins to debate copyright reform, I respectfully urge you and your colleagues to carefully consider who you intend to protect with the new laws and whether or not those laws will ultimately contain or unleash the Canadian future.

Sincerely,

Robert J. Young of Stratford, Ontario

rjyoung@frankie.ca

2006/9/5

Cycle Training, Week 8

Filed under: General — cobolhacker @ 00:06

I decided to undertake a personal upgrade a number of weeks ago by taking up an activity I used to love in my youth — cycling. It’s not the easiest thing to commit yourself to a regime of physical activity, but so far my complaints are few.

Here are some observations about my experience so far… this isn’t advice by any stretch, so your mileage may vary.

. . .

In the first week I enthusiastically went out hard every day, but in the second week I decided to adopt a more realistic regime of hard sessions every second or third day, leaving a day or two for recovery. This is would seem to be more in line with how regular cyclists train, and seems far more satisfactory.

For the most part I’ve been busting it along paved county roads, pretending I’m a road cyclist. Since the primary goal is to improve my endurance I figure long, hard road humps are a good way to do it. Inside the city can be tricky, but Stratford has lots of paved, lightly trafficked county roads around it perfect for cycling. Come to think of it, I’ve noticed that while there are all kinds of people with mountain bikes, I seem to be part of a rare group who dare to drive them along county roads. I see road cyclists out there, but very few mountain bikers. Perhaps they train somewhere else I haven’t found yet.

Your only friends out there are other cyclists. The farmers just stare at you. Their children point. Yuppies in their SUVs seem terribly set upon when they zip around you at 130kph. But the other cyclists you see will often give you a knowing look between breaths, for they understand the labour, no matter what the skill level.

I guess I’m not in quite as bad a shape as I thought. Haven’t blown a gasket yet, anyway. By the end of the first week, my body seemed to have resigned itself to the idea of long periods of aerobic exercise. It is not easy work — within minutes of getting up to a decent speed my oxygen needs rise to the point where I’m breathing through my mouth. But my perseverance is beginning to show results. I’m now able to cycle continuously on open road for as long as two hours, provided I’m realistic about my pace. I’m pretty sure I can go for longer, but then again, I haven’t had the opportunity to try.

On a good day, that pace translates roughly into around 30kph.

Once you get into it, distances don’t bother you so much anymore. At first, the idea of riding a 2km county block seemed formidable, but now 10km is light. My longest run so far has been around 30km, which sounds like a lot to the uninitiated, but isn’t really (a typical stage of the Tour de France is around 200km). I have a suspicion the more I do this the more my range will increase. Well, so be it.

I have lost around 10 pounds so far. This is good, as weight loss is part of the goal. I only have 15 more pounds to go and I’m not entirely certain what happens when I get there. I’ll have to cycle less or eat more, I guess. The winter is coming though, so I might well get fatter again. Hmm, maybe skating isn’t such a bad idea after all.

I’ve been practising with higher pedalling cadence. Some believe it to be more efficient and after working with it for a while I’m inclined to agree. Mashing along a road or hammering up a hill just sucks the energy right out of you. But dropping gear on the cartridge and trying to maintain the same cadence spreads out the pain a bit more evenly and leaves you less exhausted at the top of a hill. It’s hard to stick to it, though, to figure out what sprocket to be in, especially when climbing. Since I’m new to this I’m still trying to find the right cadence for me, but somewhere around 80rpm seems to feel ok. I don’t have toe cages (or even cycling shoes, for that matter) so if I spin much faster my feet feel as if they’re hopping off the pedals.

I almost never change the gears on the chainring. I dunno why. I tend to use the rear cassette only. I suppose I should really get a clue and figure out how many teeth are actually in that ring so I know how I compare to other cyclists, but I can’t be bothered.

I have developed a strong dislike of the wind. Riding on the open road with a mountain bike is sometimes like pushing a sailing ship backwards against the Jet Stream. Climbing I can deal with. Climbing 4 km on gravel is doable. Climbing 4km on gravel with a 35km headwind, however, is not cool. When normal folk pull up a weather report the first thing they look at is temperature. I look at wind speed.

I have discovered that cycling soon after a big meal is not happy. You feel full and slow somehow. For me, even four hours afterwards is sometimes not enough of a wait. Eating a big breakfast and a smaller lunch seems to work ok on days when I go out in the late afternoon. But you can’t not eat. I found that out right quick. If you go out without having received adequate nutrition, like say, in the early morning before breakfast, you feel like shit after about an hour or so.

Having water handy on the ride is everything. When it’s hot a mere 50ml shot of water can translate into 4km of cycling enjoyment.

Bikes make you buy bike accessories. Since I purchased my bike and helmet, I have also purchased two water bottles with cages, a lock, gloves with funny gel stuff in the palms and a little pouch for my keys and cellphone that hangs under my seat.

. . .

Once you get past the technical, I understand some of the allure of cycling. Or maybe I’m just remembering it all again.

Today I raced as hard as I could to get to the outside of the city so I could watch the sun go down without buildings in the way. Had a sitdown in some farmer’s field and just watched it. Then I had to go as hard as I could to get back into the city before the light was gone. If I had done that in my car the experience wouldn’t have been nearly as good.

And that’s alright.

Powered by WordPress