We live in an amazing time.. I’m so tired!

There is so much to experience, and the Information Superhighway has brought it all right into our eyeballs.  Why leave your seat?  Why go out?  You can be amazed, touched, thrilled, angered, and so much more.  It’s like TV, but .. more. MORE! I can’t wait for VR food!  It’ll be like that scene in Brazil, but even better, cause it will be virtual!

Yeah I sound old.  I jest, but well I suppose I am, considering I was born BEFORE ubiquitous internet changed our world.  What must THAT have been like, oh elder netizen?  We had modems and Usenet and Gopher and BBS’s and..  well we listened to music, just like you do today, although it didn’t have as much video.  MTV had this and that, but it didn’t have this:

or this

but it might have had a wee bit of something like this

but nowhere as awesome.

Enjoy the videos.



A New Hope

(This was moved/copied from http://alienoverlord.com/mvl)

I should say from the start that this post is NOT about Star Wars. Sorry.

This is a new blog mini-site for a new direction. After years of working for Apple, I’m back to working on my own — at least for now. Part of that means not really working at all, since I had been doing too much work and not taking enough time for myself and my family. I want to let life find a natural flow again, and let that inform my path. I *am* working on some iphone and ipad apps, albeit slowly… ;-) Sometimes it’s hard to get excited about it, when you’ve seen the ugly underbelly… but Alienoverlord has long been a seed idea, and I’d like to do some interesting things with it.

I am doing other things as well.. lots of reading for one. I joined a dojo and started doing martial arts again, something I’ve always enjoyed but rarely found the time for between commuting and long work schedules. I’m playing more music — for a while I was playing in a celtic pub band, but the other members decided to give it up for now. I’m working on some Bach pieces — on the mandolin. I’m sleeping more, and have fallen into “musician’s hours” again (wake up around noon, or later, sleep around 3AM, or later).

I would like to do more coding. Since I was laid off, I took a bit of a break from it so as to decompress. But I’m thinking I’d like to get involved in an open-source project. I’ve been doing development on the mac for the last 10 years or more, so that’s my main skill area, although I’m open to other platforms. I like Python as well. Anyone has any suggestions or interesting projects (or if you have interesting employment opportunities in the California Central Coast area), let me know. Bye.

encoding – ha!

Given the last post, this is timely:


I have not written anything in a while.  Too busy I suppose.

In those two sentences are encoded all sorts of information.  We as humans understand each other through words, through sounds, through our own experiences, shared or otherwise.  So much information is encoded in our various forms of communication — it’s actually an incredible form of compression (probably lossy!)  A picture is worth a thousand words, but words can represent pictures, smells, feelings, etc. too.

As a programmer, I deal with encoding all the time.  Some forms are implicit — such as a UI element that initiates an action.  The user knows  (if I’ve done my job well) that clicking a button called “Start” will do something in the context of the application.  Other forms are more explicit — such as using bit fields in a struct to encode info about a network request.  But there are layers and layers of encoding going on — it’s one of the fundamental features of how computers work, and indeed how we work as humans.

This came up yesterday as my son (he’s 6) and I were taking apart an old mouse.  He’s been watching Make TV video podcasts lately, as he’s fascinated by how things work.  In one recent video, someone takes apart a mouse to get at the “rotary encoder” in the scroll wheel mechanism.  We found an old IBM mouse from @1990 that has the roller ball inside (as opposed to the newer laser mice).  The way these worked was pretty cool — there’s an LED facing a photosensor with a small wheel in between the two. The wheel contains a series of small slits around the circumference, and this is turned when the ball rolls.  This lets the light go through at intervals as the ball rolls.  There are two of these, one for the Y axis, one for the Y.  Here, let me encode this in a link, which should take you to a picture of what I’m babbling about:


So we were trying to figure this out and if we could use it for something else, and I used the word “decode”, which prompted him to ask “what is a decoder?”.    So we talked about morse code, and how letters encode sounds, and morse code encodes letters, and so on. Something like this:

Say I wanted to send a secret message to someone, and only we knew Morse Code (ha!).  I might wish to say:


Which translated into Morse Code would be:

. . . .   .   . _ . .   . _ . .   _ _ _

These dots and dashes are then encoded in sounds — short blips for dots, longer beeps for dashes. Specific amounts of space/silence to indicate letter and word boundaries.

The receiver of this encoded message would want to decode it, resulting in the message “Hello”. He’d know the code which would obviously enable him to do so.

However, what if “Hello” was code for “Begin the revolution”?  More encoding.  And on and on it goes.

This probably gets a little tedious, but it did get me thinking about machines and the human system.  Take for example music.  As a musician, I suppose I’m able to encode feelings and ideas into a musical form (if I’m doing it well, that is).  Some ideas are probably easier to encode — such as anger or sillyness.  Others are more complicated.

So back to work… I’ve been working on a framework for easily transmitting data (generally images, video or sound files) and metadata about those media.  Something that hides all the tricky stuff.  The previously mentioned bitfields are part of a message header that users of this framework can use to specify what kind of message is being sent, request, reply, error, etc.  Encoding this in a bit field makes it small, so the header can be transmitted quickly over potentially slow wireless networks.  Basic stuff really.  Another part of this is authentication and security.  Security and encryption gets at the very soul of encoding (or at least it’s evil conscience!) — it gets quite complicated.  A message contains a header and optionally a payload (e.g. it’s data).  That payload may have metadata as well as some media, which in turn may be compressed or not, and so on.  Then there’s the structure of the framework itself — there are classes for a ‘server object’ and a ‘client object’, a ‘message’ and a ‘message hub’.  Part of the point of object-oriented programming is to encapsulate functionality into an object so that as humans we can deal with the inherent complexity in easier to grok pieces (objects).  Without all this encoding, it would be a big mess.

Conclusion?  Errr… uh… I guess we’re complicated entities in a complicated system and capable of great beauty or great ugliness, or infinite variations thereof?

I guess that’s enough for now.

Adventures in Embedding Python on OS X – Part 1.5

So why part 1.5?  Cause I’m not really starting at the beginning.    I’ll write more later, but here is one way of embedding Python in an Objective-C application, getting access to the app’s objects from Python, and one way to pass ivars over to Python, using a Singleton to manage a pool of objects.

The example is not complete, and not without it’s problems in terms of design, and so on.  There are other ways to do this as well, for example using notifications, or perhaps bindings.   So your mileage may vary, but I hope it helps some people who have been asking about this lately. I have several other Python/ObjC embedding samples that I can share as well, and will endeavor to do so when I have time.

Here’s the source code (Xcode project, OS X 10.5.x, links to system python):

“A cat has died.”

Tabla the Cat

That’s what my son said as we laid our old cat’s body into the ground, wrapped in a towel.  My son is always conducting these role-playing games, where he tells you what to say and what the scenario is. He’s just 5 years old,  and didn’t want to see Tabla’s body.   He didn’t want to know that Tabla had died.  When we told him, he ran away and said “Why did you tell me that?”.  I can relate.  I didn’t want to think too much about it either — it reminded me very surely that I will die one day, and my son will most likely have to deal with it.  I watched Tabla slowly get old and feeble, eventually toothless, incontinent and deaf.  His former self diminished.  Will I be like that?  I’d like to think that I’ll be a sprightly old codger, but considering the abuse my body has recieved, courtesy of myself, I wonder.   Hold me over the litterbox — I gotta go.

We all knew it was coming. We were lucky, as he (the cat) had gone missing a few weeks ago, and we found him.  He knew that his time was coming to an end, but I don’t think he wanted to go.  He tried to rally.  We had a few nights where he was perky and he even seemed to enjoy a salmon dinner we shared with him (his favorite food).  But in the end, he couldn’t walk or get up, and eventually lay there on the couch, just breathing.  I knew it was his last night, and stayed with him for a while..  When I woke the following morning, our other cat, mostly feral, was sitting with Tabla’s body, and let me pet him for a while.  I know he’ll miss his friend too.

We buried him with rosemary and lavender flowers, on the hill behind our house. Saying goodbye as the sun went down in the ocean. That night, as I lay in bed, I imagined Tabla stretching out and into the sky.  A cat-shaped outline filled with cat joys, like fresh green spring oaxalis, fish and mice, sunshine and warm fur.  His spirit released, becoming once again the wild, bright shining Cat that he was.  Expanding …

my old friend the cat: missing, and found

Oh, great.  A blog about your cat, you say.  How trite.    Well I don’t care, and you don’t have to read it.

My 19 year-old, toothless, deaf and wobbly cat, a dear friend, started complaining the other week.  I knew he wasn’t feeling well and probably expected me to do something about it.  As it was the weekend, I couldn’t take him to the vets, and on Sunday night he wandered off. 

Freeway overpass + earthquake = alarming experience!

Tonight just after 8pm there was a 5.6 earthquake, and it occured while I was driving home.  On a very high, very long, curvy freeway cloverleaf type junction ramp, going from I-280 to Hwy 101 in South SanJose, going south.  Right here.

Here’s a picture:I280-to-101 junction

This is a test of the TextMate blogging plugin

I’m bloggin from TextMate. Woo-f***in-hoo!

Why does wordpress’s editor suck so much?

If I try to edit in the Code editor, I save and it pops me back to Visual mode.  If I go back to Code, it’s mangled all my <br/>s and <code> tags and whay have you.  Basically makes an ugly run-on paragraph.  Ugghh.  I spent soooo much time re-editing that last post.  There must be a better way, right?