h1

Chinese Curse

June 10, 2009

Even though there’s no official link to anything from China, I like the Chinese Curse – it gives you a lot to think about:

  • May you live in interesting times
  • May you come to the attention of those in authority
  • May you find what you are looking for
h1

Disassembly Inspired

May 15, 2009

I’ve been encouraging the boy to understand how things work – and decided a fun way to do that would be to take things apart, after all that’s what I did at his age.  So we headed to the Flea at MIT on a hunch they might have some fun stuff to take apart.

IMG_4096

Turns out it was the perfect place to find exactly what I had in mind.  The place is a geeks dream come true.  So much old technology I didn’t know where to start.  I was tempted to buy an old oscilloscope, as their were at least a hundred of them in different stalls. 

I ended up finding a reel-to-reel tape recorder a guy was selling for $50.  I started talking him down on price and asked, “Does it still work?”

He replied, “Perfectly.”

I told him the plan was for me and my son to take it apart, and that I didn’t want to ruin something that still worked well.  He agreed and told me to take the reel-to-reel recorder sitting next to it for free.  It weighed 30pounds easy and I had to carry it all over the place.

IMG_4101

Nick really enjoyed it – although maybe next time I’ll get something that we can see working first and maybe keep plugged in (low volt DC something) to watch it work.

IMG_4104

Anna was along for the whole ride – and I had a screw driver ready for her.  Instead she played repoter with the stuffed weasel beanie baby she got at the Flea at MIT.

IMG_4106

They really don’t make things like this any more – hardly any plastic.

IMG_4108 IMG_4112

The kewlest part of this device in my mind was that it had vacuum tubes.  I was tempted to try to get the amplifier part of the thing working and maybe build a small guitar amp or something… but my ambition escaped me.

Here’s a pretty kewl shot with the tubes visible:

IMG_4120 IMG_4121

We got it apart as much as we good – with a ton of screws and bolts lying around.  The carcase sat on the table for a week or so – hard to dispose of that much metal.

 

IMG_4125

All in all the project was a complete success.  Quality dad-kids time and maybe a little education.

h1

Display Version / Revision Number in Flex / Actionscript

March 31, 2009

I wanted a method to show what the version or subversion revision number a user was currently running.  The main reason is to determine what code base was being run by users reporting problems I thought we fixed, or not seeing functionality I thought was complete.

Most people are familiar with this functionality exposed via the “Help->About” menu on a desktop application.  Web developers need to do this differently, as there typically is no outer application menu. 

Being a flex application, I have the ability to modify the context menu users see when they right click.  This was part one of the puzzle, and that answer is well documented in this post by Kenny Lin.  The way I have my SDK wired, much of the code documented there did not trigger the autocomplete on my system, but it compiles and runs perfectly.

Getting the revision number is the hard part.  We currently use subversion as our source code repository, and it has a global revision number – what most developers would refer to as the build number. (Due to the fact that we now do a build every time we do a subversion update, see below.)

Subversion has a technique called keyword substitution which allows you to put a string in a file like $Revision$ and every time that file is updated on the repository subversion will update that string with the correct number.  I thought I was done right here – but the problem is that subversion only does this substitution when it updates a file, i.e. when a developer edits it.  I added this to our main application file, and it worked the first time I updated it, but it turns out we don’t update that file very often anymore.

The biggest piece of the puzzle was an autobuild process which is triggered by subversion updates.  My very simple build script generates a subversion info file using this shell script command:

svn info > assets/svnInfo.txt

I embed this file in the application via this technique which is only a couple lines of actionscript code:

//Embed a text file that is autogenerated by the build process
//it contains the revsion number of the project from subversion
[Embed("assets/svnInfo.txt", mimeType="application/octet-stream")]
private static const svnInfoText: Class;

And the following function parses the revision and puts it in the context menu:

/**
* add the version number from the subversion generated file
* to the context menu so testers can verify what
* build they are running
*
**/
private function setUpContextMenu():void
{
    var myMenu:ContextMenu = new ContextMenu();
    myMenu.hideBuiltInItems();
    var svnTextInstance: Object = new svnInfoText();
    var svnString:String = svnTextInstance.toString();
    var findString:String = “Last Changed Rev:”;
    var revisionString:String = svnString.substr(svnString.indexOf(findString) + findString.length +1, 5);
    var menuItem1:ContextMenuItem = new ContextMenuItem(“MyApp v0.1.”+ revisionString);
    myMenu.customItems.push(menuItem1);
    this.contextMenu = myMenu;
}

Getting the autobuild process up and running was the hardest part – learning the various libraries I needed and setting up the license information from adobe.  I have a lot of ideas and opportunities around that, including ANT or other build tools – but for now the simple fact that I can control the build to the level of adding this step of creating the subversion information file get’s me the functionality required. 

h1

White House "Open for Questions"

March 27, 2009

Earlier this week the White House unveiled an online system to submit questions to the President and vote on other people submitted questions.  My first reaction was very positive.  I liked the fact that I discovered this as a post in the stream on my FaceBook page.  I was eager to see what kind of technology they would be using for the system.  I have been impressed with the WhiteHouse.Gov web site team’s work ever since they switched it on at exactly 12:00pm on January 20th.

I navigated to the site and was pleased to see it was very responsive and handling what had to be an incredible number of users.  I would like to see their roll out plan and how they ensured it’s scalability.  I signed up for an account and submitted my question in about 5 min.  My question was, verbatim:

How will you prevent gaming of this system? I imagine there are special interests with the technology to get their agenda onto this system – submitting hundreds of votes for the questions they want to appear important etc

In a matter of hours my question received 10 negative votes and 7 positive votes. It didn’t come close to the 5k+ votes that the most popular questions received.

As it turns out, the people at NORML did exactly what I thought would be done.  They rallied their large following online to game the system, and all of the most popular questions in several categories were questions about the legalization of marijuana. 

So I’m a bit disappointed by the White House technology team – they should have seen something like this coming.  I don’t know if there’s an iron clad method to prevent this.  I don’t think it’s even so much a technology problem.  I am also not faulting NORML in this – as they did exactly what they were supposed to do.

The only idea I have that might help is less anonymity  in the system.  In this particular instance it might have prevented people from publicly stating their position on the marijuana issue – but more importantly, if you can tie the voting system to real people you can prevent the “multiple votes” problem, which I suspect was the case here.

There is some technology that might help as well, like the fully open online voting system called Helios.  It’s a system that uses pretty standard computer security techniques to enable people to submit votes secretly but still verify that their vote was used in the final tally.  I don’t propose that such a system be used to the point where every person who votes does the math to verify their vote was counted – but the existence of such a technique in the system would ensure that someone could audit the election, and anyone questioning the validity could do so. 

Helios doesn’t solve the “one vote per person” problem, but I believe it could be used in conjunction with some other system to do so.  What that other system will look like I have some ideas about – but it opens up privacy and indenty theft issues that mass media has convinced people are more important than things like participation in government.

h1

Taps

March 16, 2009

Got it into my head shortly after we moved into a house with a bar that a tap would be nice to have.    I spent the next 6 months thinking about it, and the last month doing the research into how I could make it happen.  Most people purchase completed systems for this sort of thing, or modify an old fridge by sticking a tap through the door.  These devices are called kegerators and there is no shortage of images of them on the internet.

My first thoughts were to modify the existing fridge under the bar – but it’s a pretty nice fridge and I realized I’m still going to want some cold beverage storage at the bar.

I found an Internet forum of people who discuss these systems and dole out tons of advice to noobs like myself.

A few days searching on craigslist and I found a pretty standard old fridge for the project, sold by a guy right around the corner from us.  I brought this home and got a keg in it to make sure my CO2 system still worked.

Next I started to drill the holes in this fridge.  I could not find a diagram of where the coolant lines were inside the old fridge – but my drill bit found one.  A loud HISS and the fridge was garbage.  It’s possible to repair a coolant line and recharge the coolant system – but it would end up costing about 5 times what I paid for the fridge.  So, that fridge is garbage now.  So much for this being a “green” project.

This crisis however turned into a beautiful opportunity.  While killing the fridge I was doing more reading online and decided that a chest freezer was probably a better choice for the system.  Craiglist to the rescue again – a little further away this time – but I acquired a Kenmore C675 freezer with I think a 13 ft^3 capacity.  It will easily hold 3 kegs + CO2 tank vs. the old fridge only holding a couple.

I spent a night drilling holes in the bar and floor and garage ceiling.  Had to cut out more than I planned on becuase my 2.5 inch drill bit wasn’t close to long enough for the whole job.  This was probably a good thing as I was able to explore what was in the various layers between the bar and the garage before drilling through them.

I convinced my friend Chris to come help on a Thursday night – he’s very willing to help with beer related projects – and we assembled the various parts of the system in one night with only a single additional trip to Home Depot.

The main design goal of the system aside from delivering carbonated beer to the tap is to keep that beer cold all the way to the tap.  If it gets warm in the lines it will come out as foam and then settle into flat beer.  There are a couple of ways to do this – the expensive way: coolant lines and a compressor in the fridge, and the cheap way: a blower motor blowing cold air from inside the fridge up a pipe with the beer lines in it.  I chose the cheap way. 

Here’s the freezer chest in the garage under the bar:

IMG_3437 

There’s a 2inch PVC pipe coming out the side insulated with foam.  The 2×4 skirt around the top is there to raise the lid a little (some homebrew kegs are to tall) but mostly to avoid having to cut into the freezer – which I was more than happy not to do.

Inside the freezer are the kegs and the CO2 system:

IMG_3440

There’s a blower motor attached to a blower hose that goes up into the 2in PVC pipe.  The beer lines go inside this blower hose.  The blower pulls cold air from in the freezer and blows it up the hose alongside the beer lines.  This air goes to the tap on top and then returns to the freezer on the outside of the blower hose inside the PVC pipe.  There’s a little spill in the freezer from a mistake I detail below, and I plan to clean it all out after I kick these two kegs.

There are two lines run up to the taps – but I only have one D coupler (keg tap) so I only have one beer online at the moment.

The interface between the freezer and the outside world:

IMG_3435

Here we see the external thermostat – becuase beer is very sensitive to temperature and the freezer doesn’t have a setting warm enough for beer. 

Inside the tap tower:

IMG_3426

Here is where a mistake was made – I used a thin walled hose to deliver the beer initially (all they had at Lowes) and it leaked. The hose clamp just wasn’t able to get a good seal no matter how tight it was. So when we first turned it all on the beer leaked back down the hose all the way down into the blower motor.  A quick trip to Home Depot and I got 20ft of nice thickly walled 1/4″ hosing.  This new hose sealed perfectly.

The finished project:

IMG_3422

There’s probably a drip tray in my future – and I’m currently running the beer through 20ft of hose.  The advice is to get the hose too long and shorten it to get the flow rate you want.  It’s currently pouring a little slow, but there’s very little foam and I’m afraid to mess with it.  There are also probably some tap handles in my future.

We had some folks over for my son’s bday party and the tap worked perfectly.  Spent a lot of time outside with the kids this weekend as well and it got me thinking of having a quick-change tap system to dispense beer inside the freezer.

All in all – it was a lot of plumbing and the biggest thing I would have done different was to get the right hose from the start.  I also will probably seal up/insulate the 2×4 skirting a little better as it get’s warmer – but currently the outside temp is colder than what I want inside the freezer.

I also need a name for the whole thing.

Cheers!

h1

Safety Whistle Necklace

February 21, 2009

Just in time for the family ski-vaca I finally got around to crafting some lanyards for the safety whistles I bought a few months ago.  The kids are under 10 and we’ll be skiing in bounds the whole time – but it was a fun project and if I get them to wear them every time they ski and hike it might make a difference some day.

Materials:
Wind Storm Whistle, purchased from Campmore
2 meters of Cord per Lanyard: MINOR Cord, 3mm I bought a 15M roll from EMS

The Knots:
Sizeable Necklace Knot

Boatswains Knot

The boatswains knot is purely decorative. I suppose it holds the whistle at the midway point which might be handy, but the main reason I use it is because it’s exactly what the knot was designed for.

The sizeable necklace knots work pretty well, and allowed me to make 4 identical lanyards that’ll fit both the wife and I as well as the kids.  I’m not sure what the name of this knot is though.  I think it’s fashioned after a noose – which is not a good image to have making something that’s going around your neck.  If anyone has any advice on a better knot or technique to use here I’d love to hear it.

Oh yeah – pix:

A completed whistle and lanyard

IMG_3747

The sizeable knots

IMG_3749

 
The Boatswains decorative knot

IMG_3750

h1

Pathatique Line Niner

February 15, 2009

Made it to line nine today – In the last video I decided to stop playing it from the beginning and focus on the section being learned. This will cut down on the length of video I need to upload etc.

At my current rate I should be done before opening day – but I fear there are some hard parts coming up that might take a lot more time then what I’ve laid down to date.

I am very much enjoying this goal BTW: It’s motivated me to find all the missing ivory chips from the keyboard and fix them. Who knows – I might get the piano tuned someday soon!

As usual: To track my progress start here:
http://spreadsheets.google.com/pub?key=pCoR2s6yl9fw3B1rC1N1vdw

h1

Voice Synthesizer

February 9, 2009

Played with a bunch of these when I was a kid – figuring out ways to make them swear mostly – but this one is the best I’ve heard.

I used it to updated my voice mail greeting.

I have to assume the developers tested it a bit with this one.

h1

The HP Lappy Lives – but for how long?

February 6, 2009

hpLappyI’ve got a HP NC6000 Laptop that I used heavily for several years.  After we moved it started to hang occasionally.  About a month ago it was hung, and nothing would bring it back, so I put it on book shelf.

It’s been running ubuntu for the past couple of years, and I’d like to try the windows 7 install on it – but I fear the hardware is very underpowered.

This morning I finally have some room on the desk, so I plugged it in and it started up perfectly.  Ran the updates and am now looking into the hanging problem.  Found this useful link, and am now running the memtest utility for a while.

To be honest, one reason I want this thing working is because of the kewl stickers on the case.

Ran memTest for 1.5hrs.  Completed 2 passes.  All green.  Gonna bring this laptop back into the fold.

Booted fine 3 times in a row.

Following Day: It won’t boot.  Get’s to BIOS select drive screen – let it auto choose as I did yesterday – and now it locks at the “Starting up …” screen.

Useful info here

Steps to get a little futher:

  1. Boot and hit ESC at Grub Loading screen
  2. Select first boot option, hit E to edit
  3. remove the nosplash and add “acpi=off” (previous version need no acpi I think)
  4. hit esc, hit B to boot

Now I have to figure out how to make it work every time.

Found answer to edit grub here

Not sure if it’s related – but the touchpad mouse is sketch now.

Rebooted without USB mouse dongle and things seem okay.  Not getting the power icon on the task bar – but I can probably live without it.

h1

Free Octave

February 4, 2009

I’m a big fan of the Star Spangled Banner.  I find it inspiring to witness crowds in the thousands silence themselves during it’s performance pre-game.  This year’s rendition by Jennifer Hudson was notable for a few reasons, but what I really liked about it is the musical flair added during the singing of line “O’re the land of the free, and the home of the brave.” 

Many performers add a note to the word “Free” by raising up an octave – I think it’s amazing.  I call this technique the “Free Octave” and always cheer then I hear it.  It comes right at the end of the song too – and is a perfect queue to begin the applause.  It also coincides with fly-by timing nicely.

Hudson’s rendition is available on the iTunes store, and you can hear her “Free Octove” at the 2:11 mark in the recording.