Once I had five six foot tall tubes, I wrote some code that would attempt to render text using a 5×7 font. If you can read the three letters I scroll (vertically) in the movie below I have been successful:
How not to wire up porch lights
Our house was built in the 1960’s, so I didn’t wonder too much about this “mystery” panel inside the front door…
That is, until I went to replace an outlet on the other side of the wall, and found this LAMP CORD soldered on to the back of the wires feeding the outlet and heading up into the wall.
Now, I have nothing against lamp cord specifically. It is fine for, you know, carrying electricity from an outlet over to a lamp. However, it is not designed to be used inside walls, so I decided to take the “mystery panel” off and see where this lamp cord went…
Turns out it ended at what used to be a switch box. Yes, that is a bare end of a hot wire just sitting there in that metal box…. somebody had removed the switch (probably so that the house would have a chance of passing inspection…) But what had the missing switch switched? Seeing as how it was right inside the front door, I went outside to take a look, and found a set of four nail holes in the brick on both sides of the front door….and matching lamp cord going over the front door frame. Apparently somebody had wired up two porch lights using lamp cord instead of Romex. I had seen the lamp wire tacked over the door frame with staples while hanging Christmas lights, but because it hadn’t gone anywhere I figured it was just the remnants of a left over extension cord from a previous Christmas.
In case you are reading this post and think this looks like a good idea…don’t….go hire an electrician. I yanked the remaining lamp cord out of the wall and replaced the outlet.
_except_handler4_common could not be located (py2exe)
When developing python2.7 py2exe applications on Windows Vista or Windows 7, and deploying the applications to windows XP, some of the DLL files that may be automatically included in your distribution directory may trigger an error message such as the following because they import an incorrect version of msvcrt:
_except_handler4_common could not be located in the dynamic link library msvcrt.dll
One annoying thing is that py2exe is incorrect, and these DLL files don’t actually need to be included for your program to function correctly. Another annoying thing is that the DLL files that trigger this error message are not always the same. Some people have found it to be MSWSOCK.DLL, or DWMAPI.DLL.
To this list I can add DNSAPI.DLL as a DLL file that I had to exclude to remove this error.
And for good measure, USP10.DLL had to be excluded to remove a different error…
Opening winmail.dat files in Thunderbird
Outlook will attach items and forwarded email embedded in a “winmail.dat” file. The winmail.dat file is a TNEF file and Mozilla Thunderbird does not process them natively. The LookOut plugin for Thunderbird will allow you to see the attachments embedded within the winmail.dat file and treat them like normal attachments.
Scaling up to six feet!
So far I have been using 1 and 2 foot acrylic tubes to try out different nozzle types, acrylic welding techniques, and liquid bubble mediums. Now that I’ve selected my nozzle (a 1/4″ coupler that joins the 1/8″ vinyl tubing in polycarbonate) it’s time to scale up to full six foot tubes.
Although all of my calculations told me that everything should work with a six foot acrylic tube, you never really know if something is going to scale up correctly until you try it. For example, here is a list of possible problems with scaling up (ordered by probability):
- The air pumps, which are rated to a max pressure of 350mmHg (basically meaning they can just barely blow a bubble into a column of mercury 0.35 meters high, or deliver 6.7 psi), won’t actually achieve their rated pressure, and be unable to blow a bubble into a 6 foot high column of water (4.7 meters of water is equivalent to 350mmHg…but still….)
- The bond holding the nozzle and bottom of the acrylic tube which worked fine for 1 foot of water would spectacularly fail when loaded with 6 times the pressure.
- The Acrylic column won’t be able to support the water pressure, and will burst. (Even 1/8″ acrylic is relatively strong, if brittle, so I wasn’t really worried about this one…)
- The cyclic pumping, combined with flashing RGB LED’s would interact in a heretofore unknown way to produce fusion, a la Chain Reaction (1996).
Fortunately, everything worked just fine. What does an air bubble look like rising thorugh six feet of water? I’m glad you asked. Watch this video:
Trying out different nozzle sizes and material
The nozzle size has an effect on the amount of air (expressed in milliseconds of pump activation) that will form into a single bubble. In water, even if you launch a stream of several bubbles, they typically join together relatively quickly to form a single bubble. However, with Glycerin the bubbles are more likely to separate, and the smaller bubbles rise slower, eventually getting caught and integrated into a larger following bubble. By increasing the nozzle size from a 1/8 inch hose barb to a 1/4 inch hose barb, I found that I could create larger more regular bubbles, and launch them closer together (temporally and vertically).
I also switched my nozzle material from Nylon (which acrylic weld won’t weld, and required the use of epoxy) to Clear Polycarbonate, which acrylic weld WILL weld. This allows me to use a single welding solvent to construct the entire tube assembly, and gives me more confidence in the bond. (Although the Epoxy appears to be working well….) Because they are clear I can visually inspect the weld between the bottom of the tube and the nozzle. Also, they blend into the acrylic bottoms of the tubes and give a much nicer visual appearance. The specific part I used to get both polycarbonate and a 1/4″ output was a Single-Barbed Reducing Coupling for 1/4″ X 1/8″ ID Tubes. The nylon 1/8″ nozzle cost 0.26 USD, the same part in clear polycarbonate is 0.47 USD, and if you want a 1/8″ to 1/4″ coupling it costs 0.70 USD, so the cost for the larger clear nozzle is nearly triple the plain old nylon part, but as a percentage of the total tube cost it is negligible.
Full Sized Bubble Display Mockup
While my prototype bubble display is all good for testing, it really isn’t a good demonstration of the aesthetic effect I am imagining for a full sized bubble display. Here is my 3D mock up of a bubble display that would be made up of 60 tubes, making a 60 inch wide display that would stand 84 inches tall, with approximately 70 inches of visible bubble tube.
Continuing with the “acrylic modern” aesthetic, the support frame would be built of t-channel (8020) aluminum, with plastic panels forming a triangular prism at the base which would contain the air pumps and electronics. The tops of the tubes would be covered with a curved mesh of metal wires. I imagine that the light transfered from the acrylic at the top of each tube will light up and refract off of the mesh nicely, plus the mesh will keep bugs out of the tubes.
Testing Glycerin as a bubble medium
The tube on the left is filled with Glycerin. I like how the bubbles float up much slower and are more defined. Also, because the Glycerin has a lot of “micro-bubbles” in it, the light from the RGB LED’s in the bottom of the tube diffuses out of the mixture much more, and gives the whole tube a colored glow effect.
One problem is that if I want to make larger bubbles (than in the video above) I need to increase the size of my nozzle. The current small nozzles will make “separated” bubbles if I run air through them for too long, demonstrated below in this video:
Of course, I had to try making bubbles really fast! (The upper limit in Glycerin is slower than in water…)
Glycerin is relatively safe (msds) as long as you don’t eat it, although it can cause skin and eye irritation if you don’t wash it off. Clean up is easy, as it dissolves in water, but it’s more messy than just plain water, and costs a lot more! Even buying in bulk, it takes $8 worth of Glycerin to fill a 6′ long 1″ square tube!
Getting rid of extra UI elements in Google Reader!
My wife complained about all of the extra stuff at the top of Google reader. You know, the links to all of the other Google products in the black bar, the humongously big “Search Reader” bar and Google logo. I had never really minded them before, but it does take up around 150 pixels before you get down to your actual content!
So I searched around and found out that other people also dislike all the extra clutter and have designed scripts that will allow you to give the Google User Interface a haircut. If you are using Mozilla firefox, you can install the Stylish plugin and then the Google Reader Absolutely Compact style to get the following effect:
Of course, the Stylish modification is a “one size fits all” super compact view. I actually like having access to the “Entry Actions” (keep unread, Email link, Plus One, etc…), so I ended up using the Google Reader Absolutely Customizable script for the Greasemonkey add-on, as it allows you to fully customize which elements are shown/hidden from within the Google Reader GUI (click on the “Subscriptions” drop down menu, select “Customize…” at the bottom.). Here is my final view of Google Reader:
Bubble Display Videos
I have been playing around with the timing for how long to turn on the air pumps (as well as the delay time between bubbles). This video is my “favorite” so far for the solid bubbles (on the left) 30ms on-time, and 300ms delay. Obviously, the aquarium air stone tube (right side) needs a longer delay to separate the air pulses.
Of course, I also tried playing around with super fast bubbles!
And with the smallest bubbles I could make (the electronics can give a 1ms pulse, but the motor/air-pump needs at least 8ms of power to eject a bubble…)