Archive for Personal category
Origins of a love affair
From an earliest memory of a cream coloured box emblazoned with letters, mostly black – some red, came an owl proclaiming allegiance to the BBC.
This small box sat silently, patiently even, in our classroom for the best part of a year. On the few occasions our teacher was brave enough to flip the switch the machine would chirp into life with it’s two-tone beep and would state on capital white letters on a black background that it was BASIC. At this point the teacher would key-in the mythical incantation of CHAIN “” – handily jotted on a nearby note – and feed the beast a cassette tape.
Some time later the machine would announce it’s vague disappointment with the contents of the tape and be put back to sleep. One time, and one time only, I recall a screen full of bright colours masquerading as pirates looking for treasure.
I was 11.
Such a tantalising taste of computing left me hungry for more. I knew precisely two people who owned computers. One possessed a cut-down version of the BBC Micro from my classroom called the Acorn Electron and guarded it like a sacred treasure, the other was a friend and more accommodating so much so that he agreed, with little optimism, we could type my program listing into his computer.
What combination of childish scrawl, lack of understanding of programming concepts or the cobbled-together dialect of BASIC was responsible for his Texas Instruments TI-99 rejecting my program I would never know. However neither that failure nor the subsequent arrival and rapid departure of a ‘programmable’ Philips G7000 Videopac from my home would quench my thirst.
A new school year started and for me that meant a new school and new subjects the most interesting of these was named Information Technology or IT for short. I don’t recall much of these early lessons other than some exposure to word processing, videotext and a simplified geometry-base programming language for drawing shapes called Logo.
This fixed schedule held little interest to me although the machines themselves did and the teacher opened the room of fifteen or so BBC Micro’s equipped with 5.25″ floppy drives to the ever-changing line of misfits queued outside to play games. But unlike my old school a few people here actually knew a little about these machines.
Chuckie Egg and Mr. E were favourites while masochists would fire up Castle Quest, Citadel and Repton 2 despite being impossible to complete and lacking a crucial save-game option. Fewer still braved the open-ended and Elite space trading/combat game which would let you resume your position each day. Right on commander!
Games consisted of a few files passed between easily damaged 5.25″ floppy disks that students had mysteriously acquired. Remembering which file to CHAIN, *EXEC or *LOAD was a task in itself made worse by the ever-changing scene of kids and games. Now I finally had a machine to myself for a brief period each day I set about solving the first real world problem I encountered here and wanted to create something that would automatically boot and let you select a game by pressing a letter or a number.
Scouring magazines, loaning one of the few BBC BASIC programming manuals from the teacher and occasionally LISTing other people’s I came up with something that worked. Before long it had double height text, colours and some basic animation. Included in the program were some basic instructions on how to edit the program to fit the games on your own disk and it spread like wildfire.
Shortly after my father, who made gadget trading one of his hobbies, brought home a Sinclair ZX Spectrum 16KB. It was less powerful than the BBC’s at school and had to be hooked up to a television and cassette record to be of any use and had small rubber keys that were hard to type on. I played and programmed on it for hours without interruption and it finally became mine when my mother made it clear to my father it couldn’t be traded out for the next gadget. Within a few months the machine had died after something metallic got in through the edge connector.
I was heartbroken but found a neighbour was selling his Spectrum 48K and persuaded my parents to buy it. The extra memory was useful but even better was the hard-key keyboard and the original Sinclair BASIC programming manual I’d been missing. That year my parents split, my father moved out and we moved to a new parish on our little island of Guernsey which meant new friends and a new school. A school that had IT sharing lessons with technical drawing.
My hopes weren’t high…
[)amien
Friday Fill-Ins #91
Started by Janet, picked up via Brad.
- Settling down in the Redmond area and being with my team are some of the things I’m most looking forward to in October.
- Sometimes I am so deep in thought when people ask me a question I look dazed and confused, failing to answer them.
- People grow and situations change and that’s why there is a saying, “never say never”!
- When I’m down, I take a nap, wake up and do something different or creative.
- Microsoft Building 35 is where you’ll find me most often.
- A rainy day is good for splashing in puddles, getting wet and drying off near something warm with cocoa.
- And as for the weekend, tonight I’m looking forward to wrapping things up, tomorrow my plans include going out with my Vancouver friends one last time and Sunday, I want to go parkouring and start packing!
How did I get started in software development?
Ken Egozi tagged me with the latest meme and this time it’s at least relevant :)
How old were you when you first started in programming?
Some time between 10 and 12 when my father bought home a ZX Spectrum and I ended up delving into the excellent programming manual when I finally ran out of games to play. At the same time my school opened up the computer room at lunchtimes…
What was your first programming language?
BASIC on the Sinclair Spectrum (evenings) and BBC Micro (lunch-times and after school). Multi-platform from the outset ;-)
What was the first real program you wrote?
Probably the MultiFile +3 disk & file management tool for the Spectrum in a mix of assembler and BASIC but I was also creating menu and copy protection for the BBC Micro around the same time.
I also trashed an expensive 3” disk drive at the time with a small bug in my end-of-disk detection code that resulted in the drive trying to step itself beyond the end several times and knocked it out of alignment.
What languages have you used since you started programming?
Well I’ve *used* the following although ones in italics for only brief periods involving one or two small applications.
- BASICs: Sinclair, BBC, Microsoft, QBASIC, Mallard, QuickBasic, ASIC
- Assemblers: Z80, 6502, 8051
- Visual Basic, VBA, VBScript, VB.NET
- C, C++, Objective-C, C#, Java, JavaScript, ActionScript
- Turbo Pascal, Delphi, SQL, PHP
- COBOL, RPG, SmallTalk, Algol, Prolog
I’m not sure if XSLT/XPath or RegEx’s count.
What was your first professional programming gig?
Writing IBM AS/400 (iSeries) banking applications in COBOL age 17 joining a team where the leader was already known as the Kindergarten Cop as everyone in his team was “only 23-25”. I got to delve into the kernel, general ledger and securities systems eventually single-handedly developing intricate multi-base-currency support leaving days before my 19th birthday. (Okay, a little pride there ;-)
If you knew then what you know now, would you have started programming?
Without a shadow of a doubt.
If there is one thing you learned along the way that you would tell new developers, what would it be?
Enjoy the journey, new languages are going to come and go so learn them just-in-time ;-)
It’s a shame computers and languages are more complex now but with the Internet and great books available there is no real barrier to entry.
What’s the most fun you’ve ever had programming?
Any application that brings a smile to a users face :)
Some ‘interesting’ moments have been revisiting school-level physics for a pool game and an on-the-fly domain class construction system for an international configurable payroll package.
Who am I calling out?
I’m not sure any of them are reading my blog any more but you never know ;-)
[)amien
May 2008 checkpoint
I am now settled into my new, albeit temporary, apartment here in Vancouver, BC working for Microsoft!
Joining Microsoft
For those who haven’t been following my blog long I took a job at Microsoft Canada Development Centre as a developer on LINQ to SQL. It turns out my H-1B Visa has been approved and I will be moving down to Redmond in October.
Joining a company of Microsoft’s size is a daunting experience. The sheer number of people, departments, systems, procedures and intranet sites to navigate and learn plus of course the actual job of jumping into the product and seeing where we go from here. I’ve also been helping out a little on the forums and internal lists and getting involved in the regular scheduled update meetings.
Of course you also hear all sorts of interesting news just before it becomes public knowledge such as publishing XNA apps to Xbox Live! and Office getting ODF and PDF support.
On the personal front…
A whirlwind couple of weeks full of new employee orientation, relocating, getting lost, filling in forms, exploring, meeting a couple of hundred people and catching up with a few old friends including one from Guernsey all of which lead to a quiet blog.
There have been some personal stories of getting lost, baby sharks and falling in lakes which will be kept to email now – there’s no way those 500+ subscribers are here for my personal bits! I’ll be sending out an email this week so if you haven’t seen something by the weekend and we’re friends ping me and I’ll forward you on a copy.
Some photos are up on Facebook with a few more to follow.
Envy Code R
Of course what everybody really wants to know (according to my inbox) is where Envy Code R preview #7 is.
It is coming, but every time I think I’m close to a release I find another annoying glitch all related to hinting.
Hinting is the process whereby you tell the rendering system how to shape the characters to better fit into a pixel grid. It consists of a table saying at which sizes to smooth and apply instruction plus a program that adjusts the font as a whole for a given size and then a program per-glyph that tells it how to adjust the points in relation to each other with delta hints providing modifications for specific point sizes.
It’s a complicated process if you’re doing it at the lowest level with a tool such as Microsoft’s Visual TrueType but is made easier with a tool like FontLab Studio 5 which has an autohinter that often gets things wrong but is a lot easier to work with and works with hints at a higher level of abstraction.
Which is why I parted with $999 on FontLab and I’m going to investigate a donate option to try and recoup some of those costs.
The bold variant is the only one now requiring hinting and I’m hoping to have it done in the next 24-48 hours. The regular variant looks just great… as does italics.
[)amien
Joining the LINQ to SQL team at Microsoft
I’ve been quiet on my blog lately largely because I have been preparing to change job and relocate half-way around the world to Vancouver in the beautiful province of British Columbia (where I spent my 2004 summer holiday).
In February I travelled out to Redmond for three days of interviews (one position grew to two, then three). Having read the Microsoft Jobs Blog I was prepared for long hard days but in reality the process was incredibly enjoyable and exciting.
So much so I wanted to find a desk and move in right then.
With some luck I also found myself at Hanselman’s geek dinner which involved some great discussions and the chance to meet Scott himself, Brad Wilson and Nikhil Kothari who I knew from .NET on-line community as well as some 35 other developers from both within Microsoft and the outside world. It was one fun evening and my thanks go to Scott for kindly driving me back to my hotel in Redmond town centre.
Many white-boards and a few lunches later (including an unexpected one with Phil Haack, Nikhil and two more guys from ASP.NET team – I wish I could remember all the names of the people I met!) I found myself with the hard task of choosing a position.
I settled on a developer role within the LINQ to SQL team starting mid-May and am counting down the days…
[)amien