Friday, October 21, 2011

Throwable Panoramic Ball Camera

Neat idea.  Wouldn't fit in your pocket very well ... seems like you could make an iphone app to capture pictures as it was tossed, spinning, in the air.  These could be reassembled into a panorama.

Wednesday, October 19, 2011

How Google's Self-Driving Car Works - IEEE Spectrum

Very interesting talk/demo of Google's self driving car.

    How Google's Self-Driving Car Works - IEEE Spectrum

Looks like this takes a lot of high data rate / high volume processing. The density of points in the laser scanner is impressive -- couple that with the fact that it is updated 3 times a second --- whew.

Monday, October 17, 2011

Tuesday, October 11, 2011

A good algorithm looks like magic ...

Computers can still amaze.  Sometimes is just takes a new algorithm.  

Adobe demos the amazing unblur feature  -- from -- I Didn't Know That!


Observe the crowd reaction around the 1 minute mark in the youtube video.

Monday, October 10, 2011

Regexes Parse XML Just Fine, ( Sort of ...)

I love this:

... I (felt) like doing “impossible” things lately, ... The point of it is not to be a good solution, but rather the opposite: there is a certain joy in getting something to work in completely the wrong way.

The Big Mud Puddle: Regexes Parse XML Just Fine, Actually

I love that because sometimes the conventional wisdom is actually wrong. There is more wisdom in examining a proposition yourself to see what you come up with.

Friday, October 7, 2011

Where to get programming help and Reputation Systems

Perhaps the best place to get programming tips/help is
http://stackoverflow.com/.

What makes the site so effective, is its "moderation" or editting system.  This type of system, generically called a Reputaion system, is based on the user rating of the quality of the question or answer.  Higher ratings cause the content to bubble up.

I first became a fan of such a system on perlmonks.org, a site for perl questions.  The format really broke out when it was implemented with a beautiful UI on Digg.com for any type user submited content.

These systems quality can vary depending on the behavior of the community.  XKCD riffed on this.  I am fascinated that these system generally produce very high quality results, even when it is known that you can game these systems.  A good read on this topic is "The Wisdom of Crowds".

Thursday, October 6, 2011

So long Steve. You were the very, very best of our generation. Thanks for making your vision of technology into reality for all of us. You will be missed.


Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary. --- Steve Jobs

Wednesday, October 5, 2011

The Joel Test

Joel Spolsky "gets" software development. He writes an infrequently updated blog. However, his old posts are worth reading and worth re-reading.

For example:
The Joel Test: 12 Steps to Better Code - Joel on Software
is my personal litmus test of the suitability of a workplace.

I've also been trying out one of his products trello.com to self manage my work in an "agile" way. I like trello's very simplistic approach, which is very much like http://www.rememberthemilk.com/.

Tuesday, October 4, 2011

Not directly related ...

What work do you design into your code that is not directly related to the strict requirements?

I'll come back to a example with code, but first consider for a moment the hood to your car.  The lightest, cheapest design; the best for speed, fuel economy would have no mechanism to keep the hood up.  It would lack sprung hinges or an internal prop.  It would need an external prop of some kind. Yet, production cars do come with a built in mechanism to prop open the car hood.   In this case maintenance and ease of assembly was factored into the design.

An example of this in software is logging.  Software that is capable of logging usually needs a bit more code than is strictly needed to fulfill the requirements.  Nevertheless, I tend to think that logging is highly useful over the life of the code both for troubleshooting, maintenance and debugging.

Other things which I find are worth the extra effort:
* Automated tests
* Consistency checks
* Diagnostic displays
* Editable configurations
* Installation / Migration utilities

Thanks to Joe ...

Today I'm starting this blog, MusingCode, about my craft.   I program for a living, but it's more than just a living.  I've programmed since I was 14 years old because it was fascinating to me.  I going to share my day to day fascination on this blog.

Thanks to Joe Tavares for inspiring me to write about code.