Feb. 13, 2011

  • Some people believe that a computational model of reality is the best model.

  • In this model, reality itself is assumed to be a mathematical process. It is a mathematical system sufficient to describe the set of natural numbers.

  • Therefore Gödel's incompleteness theorms apply to this model of reality.

  • Therefore in such a model of reality you can never prove the consistency of the model from within the model.

  • Additionally, there are true statements within this model which are not provable.

  • This means that such a model of reality cannot possibly contain a nested copy of itself, a perfect predictive model of reality/itself, since such a nested model would allow you to break both of the incompleteness theorems.

  • I think that this is proof that any computational or mathematical model of reality paradoxically excludes itself from ever being a perfect model of reality. This probably applies to all mathematical models of our reality, including any Grand Unified Theory.

We can never come up with a mathematical model of reality that is 100% predictive and accurate.

Jan. 28, 2011

How Google could become a game console heavyweight to rival the likes of Nintendo, Microsoft, and Sony:

  • Supply USB gamepad drivers for Android OS (this code is actually already in the GNU/Linux kernel underneath Android OS).
  • Put joystick hooks into the Android Java API and market this fact to developers.
  • Encourage TV retailers to sell branded USB gamepads as add-ons with their Android based set-top boxes and TVs.

Atari by Great Beyond - tonyjcase on flickr

Developers could then put joystick support in their games, and people could play said games on their TVs through their Android OS set-top boxes. USB Gamepads are a stable, cheap, and robust technology which everyone understands.

This may result in a new indie console gaming golden age, with all of the wonderful new indie games of recent years running in peoples' lounge rooms on their TVs just like in the 80s. Admit it, wouldn't you love to sit cross legged together under the TV and return to the days of Sonic the Hedgehog, Mario Bros., Alex Kidd, Commander Keen, and friends? Only newer, and cheaper, and open, and network multiplayer. Oh boy, that is a vision I find irresistable!

A guy can dream, right?

Dec. 9, 2010

Hello! I've uploaded two new tunes to the squeakyshoecore album of algorithmic acid. They are called ring singularity and prolate spheroid. Get yr rave on here. Incidentally, you might like to type the names of the squeakyshoecore songs into the search bar of Wikipedia. They are all named after fascinating science and mathematics topics.

upside down squeakyshoecore shoe

On the 18th of December, I will also be playing a live gig in Hyde Park, Perth. I will be using the GarageAcidLab algorithms that I use to make squeakyshoecore here in Perth, Western Australia as part of the Seriously Sound System music festival organised by the local radio station, RTRFM. I am on just after midday at 12.40 in the afternoon. It should be a lot of fun!

Leading up to that I will be interviewed on that radio station at 8am local time this Friday the 10th of December. If you are not awake for it (like me), or you don't live in Western Australia, you can listen to the podcast, which I'll post here afterwards if I can figure out where it is.

Kampai!

Nov. 19, 2010

Diaspora is the new social network effort by a group of hackers who are building a Free Software implementation of something like Facebook, or Google Buzz, but in a decentralised, open source, privacy aware way. Here are the things that I think are really promising about it so far:

  • Your people are organised into 'aspects' which are logical groupings like in real life e.g. "family people", "work people", "people I send rude jokes to" etc. so that you won't ever post a picture of yourself drunk and naked for your grandmother to see by accident. This is baked into the interface in a completely natural way that feels right and fits with your existing mental model of your social groups. To me this is the number one killer feature that might encourage people to use it over Facebook. I was convinced that this is neccessary by the slides from this talk: http://www.slideshare.net/padday/the-real-life-social-network-v2. I think that Mark Zuckerberg's everyone-should-over-share-with-everyone-and-get-over-it philosophy of privacy is at odds with basic human nature.

  • Your 'seed' (user) is portable. If you don't like the pod (server) you started with you can easily move to a different one. This is great as you aren't locked down to a particular provider. If your social service provider stops maintaining their code, or their service is bad, or they try to snoop on people, then you can get up and leave and find a better provider and take all of your data, posts, contacts etc. with you.

  • It's decentralised. There isn't a single server or point of access like there is with Facebook and Google Buzz. This might sound like it would not work, but it does because you can friend people on other servers and it works exactly as if they were on the same server as you. You can even be the only person on your own privately run pod (server) and still network with, and see what your friends on other pods are up to. It's like email in that respect, except without the spam. Your address at a particular pod looks like an email address, so that is a concept that people already understand well.

  • It's going to link up with other social networking services like Twitter, Buzz, Facebook etc. I guess the update posting will be based on the "aspects" idea too so if you post publically then it goes out to social networks, but otherwise not. This bit isn't done yet, but I'm excited about it as it means I can stop using the other services by visiting their sites. Instead when I post something on Diaspora, I can elect to also have it tweeted or fb updated, or whatever. I am not sure if it will be two-way so that you could also read your friends Facebook status updates from your diaspora instance, but that would be very cool if they can pull it off. That would provide a big incentive for people to switch as they can maintain their existing networks.

  • Encryption of your data keeps it away from snooping sysadmins. You don't have to completely trust whoever is hosting your account, and the fact that Google and Mark Zuckerberg don't own your data and they can't "mine" it for their own benefit, is another big feature for me. My social graph is not a corporate asset.

People have said to me "but nothing can kill Facebook now, it's too big." I beg to differ for two reasons:

  • I've had internet access since about 1995, and I have seen a ton of protocols come and go, even ones that literally everyone on the internet used. Remember BBSes, Gopher, Archie, news groups, ICQ, IRC, etc. etc.? Yes, most of them are still around, but the majority of internet users don't use them any more. There is no doubt in my mind that the same thing can happen to Facebook.

  • Facebook is not the only social network. There are a ton of others and some of them come close to rivalling it in size. In some countries other networks have a larger presence than Facebook does. I think that people will follow two things to new software: a) their friends b) features. I think that privacy features are important to people, good ideas spread virally, and friendship groups will stick together across networks.

  • The internet is built on competition between software and protocols. It's a thriving environment in which the most evolved software is selected by users and survives in the long run. I believe that even if Diaspora is not it, something better than Facebook will come along and unseat it. Historically speaking it's the open and free systems and software that survive the best and longest in the network environment.

Because it's Free Software following the "release early, realease often" development model, Diaspora is buggy and insecure and lacking in features right now, but I think it holds huge promise. In the few days I have had it running I've already seen bugfixes and features going in at a tremendous rate. I'm going to continue hosting my own pod and fingers crossed, maybe I'll meet you in the Diaspora universe one day soon.

"They trust me - dumb fucks." -- Mark Zuckerberg

Nov. 6, 2010

Update: There appears to be some weird bug on WebKit (at least in Chrome) making objects randomly not get drawn in both demos. Will have to figure this one out!

Update 2: The WebKit bug is now fixed and was due to the strage fact that Array.sort is unstable in WebKit - one to remember. Have fun!

jsGameSoup logo - a bowl and chopsticks

Here's another demo built using my HTML5 and Javascript game engine, jsGameSoup.

I also updated the AsteroidsTNG demo to support collisions so that the ship no longer passes through the asteroids.

I'm finding it pretty fun to fly around this almost infinite asteroid field finding interesting little places amongst the virtual space rocks. I really want to add some kind of multiplayer component to this demo.

After these changes jsGameSoup now has the following new features:

  • Collision engine with support for circle, poly, and axis-aligned bounding-box (rectangle) collisions.
  • Sprite engine which is capable of basic animation.
  • Seedable random number generator, useful for procedurally generated worlds where you want the same seed to generate the same thing for everyone every time.
  • Basic support for touch on WebKit browsers (like in the iPad and Android devices).

The collision, sprite, and random number engines are each simple and self-contained, and can be used independently of the jsGameSoup library by just including the respective javascript file in your project. If you use the library though, you also get cross platform events and robust entity management thrown in for free.

Unfortunately I still haven't updated the documentation or the jsGameSoup page to reflect these changes. Whoops!