Client: “The app crashed again.”
Me: “Actually, it hasn’t crashed. It’s just a new way to close the app when you are done using it.”
Client: “The app crashed again.”
Me: “Actually, it hasn’t crashed. It’s just a new way to close the app when you are done using it.”
it’s never stick your dick in either crazy or lazy.
I bet your company has an employee handbook and I bet you have never read it.
I’ll bet some don’t even know that the company they work for has an employee handbook.
And if you have read the handbook, I’ll bet it was only because you were made too.
That’s quite a few bets.
Am I right on at least one of them?
Infinite Monkey Factory, my game development company, is growing up and expanding. With our new projects currently going in to production we’ll hit fifteen full-time employees within two months and with future planned projects for the rest of this year, by the end of 2007 that number could well double.
I’ve been contemplating writing some guidelines for new hires and to ensure that our current employees remember what we are trying to achieve as a company.
One of the tenets of IMF is “Act different.”
I keep reminding people that IMF exists in a bizarro opposite world where we try to do everything differently to almost every other company. I’m trying to give every production position a private office with a door that closes, five weeks of vacation time a year in addition to the regular Federal holidays that everyone gets, required vacation time (IMF shuts down completely between the 24th December of 2nd of January and an entire week at the height of the Summer), employee profit sharing, a democratic company, completely open information, in addition to all of the best hardware and software we can lay our hands on.
So when it comes to the employee handbook we’re going to do it differently to everyone else too.
We’re going to create a philosophy manual instead. I want something like a “Zen and the Art of Game Development” or “Sun Tzu’s Art of Development.” We want the philosophy manual to be something you want to read, and we want it to impart the philosophy of what it is to work at IMF.
And we want it all told in comic strip format.
Maybe Dilbert’s Scott Adams is looking for a new job…
The greatest freedom I ever gave myself in my work is a release from the tyranny of the alarm clock.
Today I woke up at the crack of 1:30PM after staying up until 5AM playing video games.
And it was glorious.
It is impossible to oversleep if you pretend that you live in a different time zone.
A couple of people have mentioned that my personal website (otakunozoku.com) is turning in to a hodge-podge of links and badly photographed pictures of M.A.M.E. emulators running on various consoles.
I’m contemplating turning it around, splitting off the personal bio/resume stuff in to a separate section and making a serious effort to turn it in to a competent game development web site with useful information.
My only problem is that I can’t really spend more than an hour or two a week working on it, so I need to concern myself with the scope of information I cover.
Update: Apparently I’ve been informed that something where you dump lots of random shit, link to other people’s web sites, show off cool stuff, and post interesting monologues is called a “blog.” Funny, I always thought such an endeavour was called a web page.
Marketing Consultant: “Address the chair!”
Ford Prefect: “There isn’t chair, there’s only a rock.”
Marketing Consultant: “Well, call it a chair.”
Ford Prefect: “Why not call it a rock?”
Marketing Consultant: “You obviously have no conception of modern business methods.”
This is not a blog.
I’ve never had a blog.
This page has never been a blog.
If it were a blog then it was a blog before any of you bozos actually knew that the internet existed, let alone knew what a blog was.
Another Update: Reading this 14 years later I now have a name for this outlook. It’s called “hipster.” I apparently “had a blog before it was cool.” Oh dear…
Just closed the first game contract for my new little video game company. I am going to be creating a couple of games for the Nintendo Gameboy Advance.
Rather excited by that.
I have come to the conclusion that in any romantic relationship you should aim to make it as interesting as your first Nintendo games console.
Classic, hours of fun for everyone involved, and every problem can usually be fixed by blowing on it before shoving it back in.
I got a full eight hours of sleep this week.
P.S. “You must be passionate to work here” is just another way of saying “easily exploited.”
I have been told I was dangerous because I didn’t ask permission to do something.
“Did it succeed?”
“Did it help the bottom line?”
“Was it in line with company goals?”
“Did it move our project forward?”
“Is everybody happy?”
“Then what’s the problem?”
“You didn’t ask permission. Initiative is good, but you should ask permission first.”
“I don’t think that word means what you think it means.”
“I could easily add trouble-maker to your HR notes.”
“I think the word you are looking for is irreverent.” I looked over her shoulder at her notes. “That’s two Rs.”
Good bye Wales.
Update: Hello California.
The only guy to step off the plane with a winter overcoat, gloves and two scarves.
Bumped in to “Diamond” Dave from my HND days on the plane. How weird is that?!?
I have a rather expensive digital kitchen thermometer that had died due to accidental submersion in liquid.
A couple of family members had tried to revive it with the usual tricks.
One family member even opened the thermometer up, wiped everything down and tested the circuit inside with a meter. But at the end of it all the thermometer was pronounced dead.
The thermometer was handed back to me with a “Sorry mate, it’s trash.”
Two days later I was about to throw the thermometer out but thought I’d give it one more try.
I opened up the battery compartment, popped a new battery in, and sure enough it was dead.
I pulled the battery back out, blew in to the battery compartment twice, put the battery back in and powered the thermometer on.
The thermometer sprang to life with the usual beep and the screen good and clear.
It continues to work to this day.
Nobody will ever know how awesome I was.
Yesterday I was informed that I am a dangerous individual because I don’t depend on anyone.
Apparently that is not normal.
My friends laughed at me when I said I wanted to take some classes in improv comedy.
Well they aren’t laughing now.
From several years ago.
“That is some fucking ugly string handling code.” I said as I looked over the shoulder of a colleague at the code he had written in TurboC.
“I agree it could stand to be prettified. I could write a prettification function.” He nodded.
“As opposed to now where it is a string petrification function? The only way that code could be prettified is with the backspace key.”
In my youth, I wasn’t known for my diplomatic language.
I think my New Year’s resolution for this year will be:
Drink like Gimli,
Sing like Glorfindel,
Eat like Pippin,
Be as grumpy as Gandalf.
What it is like to write code without unit tests:
“That didn’t work as expected.”
What it is like to write code with unit tests:
“That didn’t work, as expected.”
Today I am learning about unit testing and integration testing (thanks Fred Brooks!) because today the company I am doing some consulting work for finally decided that “maybe these industrial robots could kill someone, you know? Maybe we should pay more attention to safety than just putting up a guard rail and a big warning sign.”
Sat with colleagues at lunch and we are discussing personal password security.
It seems that I am among security conscious individuals.
I mention I don’t have a clever password scheme, “I always use the last 10-digits of Pi on every login, including my bank. Even my ATM pin code is the last 4 digits of e.”
“Did you just tell us your password? That’s really dumb.” two of them chorused.
“You should really go change that right now.” urged one.
I continued eating whilst one of my other colleagues sat there smirking.
Nothing is more permanent in any piece of software than a temporary, “quick fix” to the code just before you send the final master tape to the duplicator.
I’ve yet to meet a fast computer I couldn’t make slow through the application of an incorrect algorithm.
I have just been banned from my library.
And the reason cited is “I am checking out too many books per month which is highly suspicious.”
As in, I check out three books at once (the maximum I am allowed), I read them during the week, and I return them the following week.
Rinse and repeat.
This is, by all accounts, a highly suspicious activity and the librarian wants to talk to my parents as she believes I am up to no good.
I have been banned for three months.
When we eventually get cars that are self-driving and self-navigating at what point do we start having people who died en-route and arrive at their destinations D.O.A. as it were?
“Oh look everyone! Uncle Jeremy’s car just pulled up in the driveway. Let the children rush out to greet him first because they haven’t seen him in so long.”
Cue children screaming when they find Uncle Jeremy dead in the “driver’s” seat, having had a massive coronary and expired en route to family dinner.
Today I learned that treating people with kindness is considered weak.
But that treating people exactly how they treat you makes them very angry.
I have found that the most effective way to get more freelance work is pure word of mouth marketing.
This is not something I was ever taught in school.
And the biggest question is “Why was I not taught this?”
I have found that I can remember and recall sequences of numbers very easily.
Like credit cards.
And very long international telephone numbers.
And social security numbers.
I remember them better than I remember names or people’s faces.
Now how weird is that?!?
I have yet to design a single piece of software that could survive first contact with a user.
Looks like I wasn’t the first one to observe (obviously I am never the first) that adding extra people to a late software project just slows it down and makes it later.
I have yet to meet a computer or piece of software I couldn’t convincingly blame for my own fuck-up.
Earlier I got chastised by my boss for using a fancy code editor.
“It’s not real programming. It’s a crutch for someone who isn’t very good. If you were any good, you’d write out your code long-hand and then type it in directly. And it’d work first time.”
Which is why he is currently at my desk asking if I have seen the WordPerfect and Lotus 1-2-3 discs.
“It’s not real accounting. It’s a crutch for someone who isn’t very good. If you were any good, you’d write out your balance sheet long-hand and then type it up directly. And the numbers would balance first time.”
Apparently I am the biggest asshole that walks this planet.
Tomorrow I launch my own development company.
Not because I was fired but because I quit.
The first step on the path to enlightenment and inner peace and a disconnection from the drama that your family and friends bring into your life begins with but three words: “Not my problem.”
They link various bits of code together in to a final piece of executable code.
It’s like chaining and not like chaining.
I get it now!
Linkers take lots of little bits of “almost” ready to run code that the compiler spits out, and stitches them together in to a single piece of code.
A good linker can rearrange the code in memory based on usage, or other needs.
I think I could modify this linker code to dynamically load code from the floppy on-demand, so the program looks like one big piece of compiled code, that is actually too big to fit in memory, and I could just page bits of the code in as I need it.
Sure, it would slow down execution, but I’d keep the pieces of the program loaded that I absolutely need, and only load in that code that I need on occasion.
I could do this with a spell check in a word processing package instead of loading the spell check from ROM where it is stored now.
I could also load extra game levels in as you play through the game.
I figured out how to make the linker generate a program that has a bootstrap piece of code that then loads other parts of the program that are needed to execute.
Right now the linker is hard-coded to break up a large program in to two separate pieces.
I really think this could work for a text adventure game.
I would just load the room description and any special code that only runs in that room, whenever the player goes in to the room.
It could be paged in from floppy when the player enters the room, and then, when the player leaves the room and go somewhere else, the memory gets over-written with code for that new room the player just wandered off too.
I am coming to realise that C is pretty powerful.
Because I can write code very fast.
Much faster than in assembly.
That runs almost as fast.
Or as fast as I need it to for the software I want to write.
And if I am paying by the hour for someone else to write code for me, if the speed of the code is non-critical, I want them to write that code as quickly as possible.
My C compiler for the Beeb works!
It just compiled my test code.
*dances around room*
Seriously, who the hell thought that concept up?!?
If computers are so smart how come they cannot figure out how to correctly execute the lousy, buggy code I just wrote?
Progress is both “fast” and “slow” on the C compiler.
This is the first “real compiler” I’ve ever written.
I’ve done a couple of really simple custom languages, and I was able to cobble together a Forth compiler in 6502.
But this is taking my skills to a whole new level.
It is bloody hard.
I’ve got a book, and that’s helping.
And I’ve learned about lexical analysis, and syntactic analysis, and then I got lost at grammars and the tree structure required to figure out what piece of text can be compiled next.
I’m learning C.
It’s a fun little language to work with.
But before I can start really programming in C, I need a C compiler.
And there isn’t one available for the Beeb.
First I have to write a C compiler (in 6502) and then I can start writing C.
I love version control.
If you’re not using it, you should be.
I see a day when every project will use it, and every programmer will be required to understand it.
People will treat you like some kind of weirdo if you don’t use it.
But today, because I use it, people treat me like the weirdo.
The difference between a grave robber and an archeologist is merely one of hubris.
And now I have some explaining to do to the local constabulary.