I first met my wife at a conference in Chicago in the year 2000.
We were so happy for almost 13 years.
Then we got married.
Somebody needs to think about this stuff...
by justin
I first met my wife at a conference in Chicago in the year 2000.
We were so happy for almost 13 years.
Then we got married.
by justin
I had this vivid and intense dream where my wife and I were constructing a giraffe stand for the new baby giraffe we had just inherited from my wife’s aunt.
The dream centered around trying to make my wife understand that we had to carefully balance the construction of the giraffe stand against cost of materials and the fact that the giraffe would eventually grow up and the stand would no longer be big enough for the adult giraffe.
Why can you not understand this? Why is it so difficult?!?
I woke up, turned to my wife, said very intensely “We need to build a giraffe stand for the giraffe from your aunt.” and then fell back asleep for another three hours.
by justin
I believe strongly in supporting the products I make and sell.
Strong support is a revenue generating feature as far as I am concerned, either through support licenses or because people, and developers and managers especially, will perceive good support as a value add to any product they use.
But I don’t offer support on my giveaway OpenSource projects these days beyond a cursory “I’ll fix it when I get to it” philosophy.
What I realised a few years ago was that most of my time was being sucked up, for free, by individuals and companies requesting fixes to obscure bugs that affected one in five thousand developers (literally!) and features that would only be useful to a handful of people.
Yes, I admit it sucks when an obscure bug affects your day-to-day work and the developer won’t fix it, and even though the source code is available for the taking you don’t have time to fix it yourself.
Yes, I admit it sucks when a developer puts out a project and doesn’t update it for years and support for the latest model hardware falls behind.
I have over 20 OpenSource projects of various types I have personally developed over the years, which are now all hosted at http://code.otakunozoku.com/.
I don’t directly offer support on any of them.
If someone reports a bug or desires a particular feature, I’ll add it to the list of things to do.
And that is about all I will do with someone’s urgent request.
I don’t prioritise any particular task based on a request or report. I have found that this is the only way to stay sane in a world where every person you interact with believes that your TO DO list should be publically accessible and writeable.
The best productivity tool I have developed to date is the word “No.”
In each README of my projects there is now an explicit “No support provided” line that clearly sets the expectation for people who download the software or source code.
I have interacted with a few people who still expect support, even demand it in a few cases, but generally I think it has had a net positive effect on people’s expectations.
by justin
“And we can us mixins in Java now!” proclaimed the developer proudly.
Congratulations, your toy language can finally do what C++ did 30 years ago.
by justin
Just picked up a Kinect for Windows. Now to start hacking on it. I am thinking of experimenting with some of my eye tracking work I did for mobile phones.
by justin
Just got done assembling a nice little “super-computer” consisting of a bunch of NVIDIA GPUs in a rack mount case.
Power-on and self-test shows me… I have way too much computing power and a cooling problem. Looks like I am going to have to route some cooling ducts out of the server closet and through the wall to the outside.
I like this stack of h/w. I shall call it “BabyBlue” for the obvious play on words.
by justin
This is just me rambling about nothing at all on a Sunday night, so ignore it if you don’t have time.
I’m currently doing some work with the Unity game engine (great engine, only a few annoyances) and I had to have two copies of Unity open at once.
Unity, when you open the application, will attempt to load the previously opened project. You can stop it from doing this, and pop up the project browser window by holding down a key, which happens to be the ALT key on Windows.
Only problem is, I’m also running with a bunch of 128GB SSD drives in a RAID 0 configuration. I click on the Unity icon on the start menu and before I even touch the key, Unity has loaded and complained about the previous project already being open.
Luckily for me, I can just run the Unity application from the command line and use the “-openfile” option to specify the project to use.
That said, opening up Maya 2010, Max 2010, a couple of copies of Unity, two copies of Visual Studio 2010, and Photoshop CS5 all in a matter of seconds… very nice.
SSDs in RAID 0.
I recommend them.
by justin
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.”
by justin
it’s never stick your dick in either crazy or lazy.
by justin
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…
by justin
The greatest freedom I ever gave myself in my work is a release from the tyranny of the alarm clock.
by justin
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.
by justin
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…
by justin
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.
by justin
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.”
by justin
I have been told I was dangerous because I didn’t ask permission to do something.
“Did it succeed?”
Yes.
“Did it help the bottom line?”
Yes.
“Was it in line with company goals?”
Yes.
“Did it move our project forward?”
Yes.
“Is everybody happy?”
Yes.
“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.”
by justin
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?!?
by justin
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.
by justin
Yesterday I was informed that I am a dangerous individual because I don’t depend on anyone.
Apparently that is not normal.
by justin
My friends laughed at me when I said I wanted to take some classes in improv comedy.
Well they aren’t laughing now.
by justin
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.
by justin
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.
by justin
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.”
Yah think?!?
by justin
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.
by justin
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.
by justin
I’ve yet to meet a fast computer I couldn’t make slow through the application of an incorrect algorithm.
by justin
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.
by justin
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.
by justin
Today I learned that treating people with kindness is considered weak.
But that treating people exactly how they treat you makes them very angry.
by justin
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?”
by justin
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?!?
by justin
I have yet to design a single piece of software that could survive first contact with a user.
by justin
Well, well.
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.
by justin
I have yet to meet a computer or piece of software I couldn’t convincingly blame for my own fuck-up.
by justin
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.
by justin
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.”
by justin
Linkers.
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.
by justin
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.
by justin
My C compiler for the Beeb works!
Wow!
Wow!
Wow!
It just compiled my test code.
*dances around room*
A linker?
Seriously, who the hell thought that concept up?!?
by justin
If computers are so smart how come they cannot figure out how to correctly execute the lousy, buggy code I just wrote?
by justin
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.
by justin
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.
by justin
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.
by justin
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.