You've stumbled over the About page! Probably an accident, but none the less. Welcome to my library of ramblings about the internet and selected parts of the non-internet. My my, this ol' site has been ticking over for a good many years now, so I'm glad you could come in and have a look.
I like making things with code, and occasionally electronic noises that sometimes resemble music. Feel free to send me some mail at mrspeaker@gmail.com. Otherwise, get clicky on the site and see if you can find something that takes your fancy:
- Fire/Escape
- Your Last Ever Computer
- Basic-er BASIC
- NBA Jam, um, tank-mode?
- Why WebGL colors don’t look like Blender colors
- Note to self: Math.hypot() still exists
- USB Mini Shawarma
- And… goodbye JavaScript!
- Monads for Babies
- A most useful function
- Olive vs OliveDrab
- Graybeard
- It Just Works ™
- JavaScript’s Numeric Separators
- document.designMode?
- Blog-o-thon ahoy!
- Mr Speaker lives!
- Word-processing Code
- Some musoems that I made
- WebGL2 Voxels
- Deleted my twi**er account
- De-bloating my piece of the web
- Where the ECMA 262 1st Edition did they come from?
- Farm to Table: A postmortem
- Oops, forgot about you
- These are my Emacs days
- Me n’ Carl Sagan hand-rolling some WebGL2
- Popcorn kernel bread ™
- ES6 (ES2017+) module support
- Building geometry with fraggles
- Lil’ cube-y thing
- Horizontal Rulez! for your terminal
- THIS IS WHERE YOUR DEMO GOES
- The elusive Pinterest App Link handler
- CyberVision Lite
- Code-golfing the BASICs
- British Pathé random video viewer
- Functions as RxJS Subjects
- Five short years
- Explostyx: explody 3D french fries
- Wanna do new JavaScript + React?
- Alien vs Joy Division
- Announcing JS.scala v0.1
- Oculus Rift Reddit Internet Explorer
- “let” is the new “with”. But good.
- Mac service: open iTerm at selection path
- (Nearly) Getting Started with ClojureScript
- CHIMP-8: a lil’ CHIP-8 VM
- Nodevember Conf talk: Gonzo Game Dev
- Your first Ludum Dare
- Hyperactivate: mo’ 2005 sounds
- Selling Swift: what a fool believes
- Metal Meter Madness
- Write the theme tune, sing the theme tune
- The simple genius of Flappy Bird
- Mister Moonboots: on the App Store!
- Flappy Bird Typing Tutor
- Conquering Flappy Bird
- Bitcoin market visualizer thing
- Spam, my friend.
- One-line array wrap
- My new bitcoin-enabled business card
- New games ahoy!
- Pixelmator save, Project reload.
- DIGIBOTS & CO.: a game in a month.
- Into the third dimension
- Pix Up, Look Sharp: a pixel resizer for Pixelmator
- More is Zmore
- ZMORE: a game in 48 hours
- DHTML Lemmings: an awesome hack
- Short function syntax is here!
- #Random Hex colour
- Three.js: looking away from .lookAt
- Scala date range
- Live editing for game development
- Track: Fuck me dead
- ‘mazed
- A better phonetic alphabet
- What you’re missing out on on App.Net
- CoffeeScript: tell me how you feel about it
- Nicer random colours, with HSL
- #rimshot: zingers from tweetland
- Caine’s Arcade Fun Pass Generator
- Syntax highlighting for writers
- Typesafe Console: behind the scenes
- Weird EventSource problems? Watch your content-length!
- You can skip this ad in 0:02
- Colourising sprites in Canvas – part 2
- Translating marketing garbage
- Navigate the web with your gamepad
- Colourising sprites in Canvas – part 1
- What I learned from watching people watching Notch
- A Minecraft soundtrack for your daily grind
- My grandmother was immutable
- CoffeeScript & Less with Play! 2.0
- AI Class Playlists
- Java on film: the livestream videos
- Code like that
- What happened to Window Mobile Apps?
- Making Google+ like Twitter
- The C64 DemoScene
- How do you parse input?
- Mr Speakers
- Internet Explorer pizza. With extra obsolescence.
- _this = this
- HOWAMI: a command line tool
- Semantic game making
- “Products”
- They are coming…
- JavaScript has a lisp
- Conventional Interfaces: map/reduce and friends
- Mr Speaker as a test case
- Reducing map: jQuery vs jQuery vs JavaScript
- My very own botnet
- HackemUp: A HackerNews bookmarklet
- Better Ads!
- DOMTimeStamp fun
- Canvas and Inputs aren’t friends
- iOS 4.3 Geolocation in web apps
- UX with EXIF FTW!
- “Elastic social graph”
- Swipe to delete
- Long jQuery fades eats CPU
- Tumblr proves emacs superior
- Choose your own cache.manifest
- Google says Bing is tracking you
- IE6 Final Countdown
- Accelerometer in Javascript
- Syntactic artificial sweetener
- oadingL: The Magnificent Marquee Throbber
- Anonymous functions for inline event handlers
- On the importance of marketing
- Beginning Mac Hacking
- Dear Network Diary…
- Password expiration
- Terrainer: terrain generator
- lowersrc: dynamic images for wireframing
- WadBug – mobile web developer toolbar
- Intresting things
- URL shrtng
- SEARCHING FOR $ – a C64 Ajax loader
- iOS4 touchend to end all touchends
- humans.txt
- Wireframing on a budget
- Argy-Bargy
- Two teams, one cup
- Google will help
- Instant: coffeescript on the go
- Amazing tech news just announced
- Book review: “jQuery: Novice to Ninja”
- jQuery meeting – the man behind the dollar sign
- DIY Old-school racing game: Part 1
- iPadmé. Geddit?
- Sine Scrollbars
- jQuery 1.4 iPhone reference app
- .index() becomes cool in jQuery 1.4
- Parcycle: A Particle System with HTML5 canvas
- JavaScript iPhone Games: Part II
- PPK vs Degrassi Junior High
- Nifty jQuery trick: setting attributes
- The road to jQuery 1.4: at a glance
- Adding “1UP notification” with jQuery
- Selecting JavaScript objects with jQuery
- Critical jQuery Info: How to pronounce “live”
- Decision making
- Closures with self-invoking functions
- Using jQuery on JavaScript objects (Part 1)
- Esrever ni sdrocer gniyalp
- Soldier Soldier
- Game of Life
- Smoking Canvas
- Springs with Canvas
- 3D with HTML5 Canvas: Part 2
- Convert WordPress fetch_rss to fetch_feed
- JavaScript games for iPhone
- 3D with HTML5 Canvas: Part 1
- 3D with HTML5 Canvas: Part 0
- Do you remember when rock was young?
- Blobby physics thing
- Faking email delivery in .NET
- More javascript madness
- Why you’ll care about Google Wave
- Heads or Tails or “Other”
- Don’t Get It “Video”
- Javascript game: Deamons Of Space
- JavaScript game: Corporate BFFs
- Arduino step sequencer
- Plops!
- Revisions in WordPress 2.7
- Pinball on YouTube
- Wolfram Alpha and jQuery Easing
- 301-ing! Come join the house-warming!
- 10 Hidden & Advanced Features of Turntubelist
- Niche Marketing: The Bacon and Egg Roll Project
- Turntubelist: Web master cuts faster!
- Revenge of the Font Nerds
- Making insecure passwords secure
- Best tech release of 2008
- O! Computadors!
- Wave rooting in Newcastle
- Wave rooting, Part II: Morning of terror
- Wave rooting, Part III: WävRüta
- Web 3.1, for workgroups
- Mask On, Mask Off
- Animated PNGs for everyone!
- Mr Speaker’s Law of Averageness
- <b><u>HTML Skillz</u></b>
- 7 days without google makes one weak
- Oi, Sharkie…
- Let’s get ‘pataphysical
- The Secret Life of The Secret Life Of
- Little animated-gif indicator AJAX thingos
- WallBot: The Post-Modern Prometheus
- TLA FYI
- APEC Sound System
- Vertical Selecting
- Circuit Bending
- We Are For The Big
- Google Gears: The Mega Cookie
- Helpful Error Messages
- In defence of Twitter
- Consumer Good God
- Track: Happy (Hardcore)
- Marinated Not-Chicken Wings
- Web automation with Chickenfoot
- Introduction To Web Sequins
- Who is Mr Speaker?
- Last.fm Loves Safari
- Views vs Comments: 100 to 1
- Flickr/Last.Fm Mashup with Yahoo! Pipes
- Introduction to Yahoo Pipes
- Step-By-Step Onigiri Tutorial
- Japan: Footy, Tag Clouds and 2D Barcodes
- My Life – In Computer Years
- When is a dead pixel not a dead pixel?
- Javascript Hexadecimal Helpers
- Formalised System For Beer Re-distribution
- Line Rider File Format
- Death of Australian Media
- Visual Studio Tab Un-stupidifier Macro
- Read-Only Live Clipboard
- Iran takes news of Irwin’s death badly
- The End of XBM as we know it
- Talking Boony Lives!
- Technical Difficulties and Brain Surgery
- Boon From Beyond The Grave
- Client-Side Image Replacement
- A Boon To Mankind
- Reverse Boonjaneering
- The fantastical DHTML angle-scroller!
- Talking Boony
- Hacking Windows Pinball
- Happy 51th Post!
- A Still Tongue Makes A Good Citizen
- Tacky DHTML web tricks #1
- Hello? Anybody? – A WordPress plugin
- Where the HTML4.0 did they come from?
- Shocking news – oil prices up!
- Recipes for the handy-man.
- Jolly Good Cricket: Methods of Dismissal
- Compiling interop dlls for SMTP sinks
- Kentucky Fried Chicken Feet
- Oil Watch – revisited
- Life imitates meat – “Bake”
- Air CSS Battle – a DHTML odyssey
- Greasemonkeying around
- Greasemonkey and WordPress
- Calculator Chicken
- Thought Thieves
- Beer o’clock. Beer o’clock.
- Binary on your digits
- Better living through Mr.T
- Getting a reference to cdoex.dll
- Graphic Design – by the book
- Terrorism: Are we paranoid enough?
- Improving the user experience with the XmlHttpRequest
- The Fonz uses XmlHttpRequest and AJAX to spy on you.
- The Offices
- Bill Gates and John Howard look for Venture Capital
- Goodbye grey skies, hello blue.
- DHTML oldschool raster effect
- XBM graphics format? What the bloomin’ heck?
- Hackin’ around with WordPress
- Book review – Russel ist krank
- Tracks: Fakin ‘n’ Jumping & Eye of the booty.
- Spam’s community service
- Oil Watch
- The end is nigh, and most likely boring.
- The Shogun, and the video game
- Playing with food
- What’s that VBScript Object?
- Fetching things with File Fisher
- The Old Lady and the handdrier machine
- Track: The Young And The Wrestlers
- Javascript. The demon of space.
- Track: Non-breaking space
- Be the moderator you want to be.
- Track: Nightsoil
- What’s that port?
- I am your Automatic Teller. Automatic Teller.
- Life imitates meat – Squid Chews
- Track: Chocobarrie
- Ferries change their tune