uWink spins off tech into Tapcode by brent

We recently completed the process of spinning off the uWink technology into its own company named Tapcode. It's an exciting time as this separation allows us to focus exclusively on the licensing of our self-service and entertainment product suite to third parties. It turns out a "tap code" is a cipher for communicating, similar to morse code. As a word nerd, I can't help but like the double entendre in the new name! Visit the new Tapcode website here.

Laser Maze by brent

Tyler, Dan, dad and I exhibited our laser maze (for the first time to the public!) last night at the February Mindshare. The object was to traverse the room without breaking any of the beams, ring a bell, and then navigate back to the start. Attendees pretended to be [take your pick of cinema's security-breaching thieves] employing everything from commando crawls to acrobatics to get across. Thanks to Seth Margolin for an excellent filming and editing job on the video!

Laser Maze at the Firehouse from Brent Bushnell on Vimeo.

[nggallery id=2]

BIL Conference by brent

Had a great time at BIL in Long Beach this past weekend. The presentations were on a very broad range of topics... open source architecture to cyborgs, politics to consciousness, a girl even presented on blow jobs. A contingent of Mindshare labs (Dougie, Eric and I) setup an installation in the interactive room and gave a talk Saturday afternoon titled "Interactive Spaces". I highly recommend BIL as an alternative to TED (seriously).

Ergonomics and a chair by brent

After taking ergonomics at work very seriously, I finally got around to fixing my home office. The last missing piece was a good chair. With my Aeron living at work and nothing solid at Staples, I broke down and got another Herman Miller. I wanted something smaller than the Aeron that would act as more of a lab chair and found the perfect solution with the Caper.[singlepic id=32 h=250 w=250]

Pygame on OSX by brent

There are a few options for getting pygame running on OSX, namely, the MacPorts version and the version off of the Pygame site. The MacPort is available here. Note it's named py-game.  It has a huge number of dependencies.    Install this via the command:

sudo port install py-game

If it fails for you like it did for me, use the following:

Download the source ball from here. Follow their OSX instructions here with these caveats: - The MacPort package names are wrong in the instructions, use the following command instead:

sudo port install libsdl-framework libsdl_ttf-framework libsdl_image-framework libsdl_mixer-framework

- If you're running SVN 1.5, it isn't supported by the standard OSX python install of setuptools, meaning that pygame won't install. Run the following to remedy:

svn co setuptools cd setuptools sudo python install

In theory, you're done! Download a good game to verify you've got everything running here (tgz file)

import this by brent

I love python for a lot of reasons, not the least of which are easter egg gems like this:

[brent@ronin ~]501$ python Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import this The Zen of Python, by Tim Peters

Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those! >>>

VIM settings for Python by brent

Here are a few VIM settings that have been helpful to me for python. This adds improved syntax highlighting:

Add the following to your .vimrc file. This is usually located in your home directory at ~/.vimrc

autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class autocmd BufRead *.py set tabstop=4 autocmd BufRead *.py set shiftwidth=4 autocmd BufRead *.py set smarttab autocmd BufRead *.py set expandtab autocmd BufRead *.py set softtabstop=4 autocmd BufRead *.py set autoindent

karma by brent

I'm hanging out with my younger brother Wyatt and show him a GPS/radio unit I'm thinking about buying. His response? Deadpan. "great, now you can chat with the only other geek in the world that has one." Regardless of whether he has a point, the sibling hierarchy might be eroding.

Joomla XSL Mambot by brent

I recently came across a nice little mambot that allows using XSL to format XML in Joomla. I modified it a bit so that it can pull in remote XML. Usage is easy:

{mosxslt my.xml my.xsl}


{mosxslt my.xsl}

You can download it here

cool toys by brent

The last few weeks I've wanted more and more to have the free time of a teenager. There are lots of toys out there right now:

There's an open hardware/microcontroller platform:

An open programming language with an art bent:

An open mote platform:

Swarm robots: ($800): ($200):

iRobot opened up their platform:

Open humanoid robot:

An open mobile platform:

Running Kcachegrind on Mac OSX 10.4 by brent

This is a great app for profiling and optimizing your PHP, Perl and Python code. When used in conjunction with the cachegrind files produced by APD or Xdebug one can profile PHP scripts with a high degree of granularity. Getting it running on Mac is not immediate however.

The short recipe to get it setup is:- Make sure you have X11 installed.

- edit /sw/etc/fink.conf, add unstable/main and unstable/crypto to the Trees. (I've not seen the app to be unstable though)

- From the command line: # fink selfupdate; fink index; fink scanpackages

- run the command: # sudo fink install kcachegrind

NOTE: If you've installed Lesstif via some other package (there will be a file here: /usr/X11R6/include/Xm/Xm.h) Then you need to move the Xm directory temporarily somewhere else so Kcachegrind builds.

My php.ini settings look like this: ;;;;;;;;;;;;;;;;;;;;;;; ; Xdebug stuff zend_extension="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20050922/" xdebug.default_enable = 1 ;increases memory usage xdebug.extended_info = 0 xdebug.auto_trace = 0 xdebug.trace_output_dir = "/var/log/php/xdebug" xdebug.collect_includes = 1 xdebug.show_mem_delta = 1 xdebug.remote_enable = 0 xdebug.auto_trace = 0 ; Careful... these 2 produce a lot of output xdebug.collect_params = 1 xdebug.collect_return = 1 xdebug.profiler_enable = 1 xdebug.profiler_output_dir = "/var/log/php/xdebug-profile" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

With that you should be good!

Quick list of tools for web development by brent

There are a number of tools that we like to use at Izolo.

A number of them help a great deal with understanding what is really going on with web services. Some speed development and others provide the necessary error correction to produce great, international sites.

For validating

For validating CSS:

For checking file sizes and transfer optimality:

For international speed testing:

Some excellent Firefox extensions:

Web-developer toolbar

View formatted source

A window into AJAX requests: Firebug

For filling a page with words before the real content is ready: Lorem Ipsum Generator

A fantastic talk on UI Design from Oscon '06.

Hopefully these help you understand and develop web sites.