Today I finished reading “Lucky Luke #25 – Ghost Town” by Morris
Listening – Face Value
This week I listened to “Face Value” by Phil Collins
Read – Gaston #12 – Le Cas Lagaffe
Today I finished reading “Gaston #12 – Le Cas Lagaffe” by Andre Franquin
Critical information
Do you think that the battle between David and Goliath was the earliest historically recorded critical hit?
Definitely a case of someone rolling a natural 20 with a bunch of bonuses.
Read – Boule et Bill #4 – 60 gags de Boule et Bill
Today I finished reading “Boule et Bill #4 – 60 gags de Boule et Bill” by Jean Roba
Listening – Bella Donna
This week I listened to “Bella Donna” by Stevie Nicks
Read – Boule et Bill #3 – 60 gags de Boule et Bill
Today I finished reading “Boule et Bill #3 – 60 gags de Boule et Bill” by Jean Roba
Listening – Tattoo You
This week I listened to “Tattoo You” by The Rolling Stones
Read – Lucky Luke #11 – Lucky Luke contre Joss Jamon
Today I finished reading “Lucky Luke #11 – Lucky Luke contre Joss Jamon” by Morris
Read – Anne’s House of Dreams
Today I finished reading “Anne’s House of Dreams” by L.M. Montgomery
The value of prototypes
After four years of writing computer game software, and also designing pen & paper games and board games, I have come to believe that creating a working prototype is very important.
A prototype lets you work out the kinks in your design and your rules before you commit to writing even a single line of code.
Coding (figuring out the machine and how the machine works) is fun. But that “fun” should be reserved for a very distinct phase of development.
Even a simple paper prototype (even for an arcade game) is useful to determine how the player’s spaceship (or whatever) moves about on the screen. How enemies will move, and so forth.
I can prototype in a few hours with figurines or dice or pieces of origami and a large sheet of graph paper how a game will play and some of the fun to be derived.
Whereas I would spend days or even weeks determining if the game play actually works if I were writing out the assembly and converting to machine code.
Programming is immensely fun, but solving interesting problems with figuring out how the machine works should really be a separate development step than figuring out how the game should play.
Listening – Escape
This week I listened to “Escape” by Journey
Read – Spirou et Fantasio #11 – Le Gorille a bonne mine
Today I finished reading “Spirou et Fantasio #11 – Le Gorille a bonne mine” by Andre Franquin
Listening – Fair Warning
This week I listened to “Fair Warning” by Van Halen
Read – Lucky Luke – 7 Histoires De Lucky Luke
Today I finished reading “Lucky Luke – 7 Histoires De Lucky Luke” by Morris
Read – Lucky Luke #10 – Alerte aux pieds-bleus
Today I finished reading “Lucky Luke #10 – Alerte aux pieds-bleus” by Morris
Listening – Killers
This week I listened to “Killers” by Iron Maiden
Read – Gaston Classique #10 – Le Geant De La Gaffe
Today I finished reading “Gaston Classique #10 – Le Geant De La Gaffe” by Andre Franquin
Just a bloody sump
Because fat people carry more blood (an extra fluid ounce of blood for every extra pound of fat according to an encyclopaedia) it would be for the national good for people with extremely rare blood types to be morbidly obese, because they would have more blood they could spare.
I am not saying my logic isn’t flawed, but certainly amusing to think about.
Read – Guust #6 – Flaters Schade
Today I finished reading “Guust #6 – Flaters Schade” by Andre Franquin
How dark is “too dark?”
I like black humour. It lets me face being afraid of something I cannot control.
Jokes full of black humour are like kids with cancer.
They never get old.
Listening – Dare
This week I listened to “Dare” by The Human League
Linking it all together
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.
Read – Spirou et Fantasio #1 – 4 aventures de Spirou… et Fantasio
Today I finished reading “Spirou et Fantasio #1 – 4 aventures de Spirou… et Fantasio” by Andre Franquin
Read – Lucky Luke #5 – Lucky Luke Contre Pat Poker
Today I finished reading “Lucky Luke #5 – Lucky Luke Contre Pat Poker” by Morris
Reality compression
I liken most software development to be the equivalent of squeezing a quart in to a pint pot.
It doesn’t matter what the pot is measuring – compute time, cost, memory or storage consumption, or development time – every measurement is equivalent to squeezing a quart in to a pint pot.
Sometimes we ‘re just better at squeezing some types of stuff smaller than others.
Loud and proud
You want to figure out who is most wrong in any altercation?
Look for the loudest one or the angriest one.
Anger and volume.
They are not always hand-in-hand.
But they are strong indicators that this is the person who is most in the wrong.
The one who fucked up.
The one who probably caused the accident.
Paged code
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.
Listening – Heaven Up Here
This week I listened to “Heaven Up Here” by Echo & The Bunnymen
Voices of a distant past
Does the voice in your head sound older as you grow older?
Or does the voice in your head stay the same age?
Can you change the volume of the voice in your head?
Read – Anne of Windy Poplars
Today I finished reading “Anne of Windy Poplars” by L.M. Montgomery
Listening – Time
This week I listened to “Time” by Electric Light Orchestra
Read – The House at Pooh Corner
Today I finished reading “The House at Pooh Corner” by A.A. Milne
Read – Lucky Luke #31 – Tortillas pour les Dalton
Today I finished reading “Lucky Luke #31 – Tortillas pour les Dalton” by Morris
It compiles!
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?!?
Read – Lucky Luke #6 – Hors-la-loi
Today I finished reading “Lucky Luke #6 – Hors-la-loi” by Morris
Read – Anne of Green Gables
Today I finished reading “Anne of Green Gables” by L.M. Montgomery
Listening – Faith
This week I listened to “Faith” by The Cure
Smarter than me?
If computers are so smart how come they cannot figure out how to correctly execute the lousy, buggy code I just wrote?
Read – The Art of Computer Programming, Volume 2: Seminumerical Algorithms
Today I finished reading “The Art of Computer Programming, Volume 2: Seminumerical Algorithms” by Donald Ervin Knuth
Long slow plodding read.
Takes even longer when you are forcing yourself to implement each of the examples. Once in BASIC and again in 6502 assembly.
Some of the math is leaving me behind.
It took me about two months to work my way through the first volume. This one took me well over three months.
Hard slog
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.
Read – Lucky Luke #27 – Le 20eme de Cavalerie
Today I finished reading “Lucky Luke #27 – Le 20eme de Cavalerie” by Morris
Listening – Juju
This week I listened to “Juju” by Siouxsie & The Banshees
Read – Lucky Luke #2 – Le Pied-tendre
Today I finished reading “Lucky Luke #2 – Le Pied-tendre” by Morris
Read – Lucky Luke #7 – El Elixir del doctor Doxio
Today I finished reading “Lucky Luke #7 – El Elixir del doctor Doxio” by Morris
Read – Lucky Luke #17 – Canyon Apache
Today I finished reading “Lucky Luke #17 – Canyon Apache” by Morris
Read – Boule et Bill #2 – 60 gags de Boule et Bill
Today I finished reading “Boule et Bill #2 – 60 gags de Boule et Bill” by Jean Roba
Cart before horse
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.
Read – Anne of the Island
Today I finished reading “Anne of the Island” by L.M. Montgomery
Child’s play
“That’s an interesting way to state how a computer works, but now try explaining it to me again using grown-up words.”
Apparently this is not something you should say to your school teacher explaining how a computer works.