Great Blue Heron

December 2nd, 2013 (trackback)
Great Blue Heron (Ardea herodias)

This morning, Roger pointed out that a Great Blue Heron had perched in a tree at the edge of my parent’s pond (Columbia, MO). Cool. Grab the camera. Maybe I can get a shot or two.

Out of the 40+ pictures I took, this was the only real keeper. Frankly, that seems about right for a rather large, rather skittish bird hanging about in bad morning light (overcast to the point of dim).

Happy enough, I figured that was that.

Later in the morning, with the sun out, Roger mentioned that the Heron was back and fishing in the shallow end of the pond. I grabbed the camera and headed outside, but couldn’t find it.

Great Blue Heron (Ardea herodias)

Until this popped up from behind the retaining wall between wall and pond.

The Heron was definitely back and put on quite a show!

I was able to take a bunch of decent pictures which you can see below the fold.

Read the rest of this entry »


Philips Hue: Almost the Perfect Lighting Solution

October 12th, 2013 (trackback)

Update (3/28/14): Today, Philips announced the “Tap” switch for the Hue..

While it is very very cool technology (battery-less, wireless, scene direction for the Hue), it still doesn’t solve the very basic problem of integrate the Hue with the dead, simple, stupid, 100 year old this switch controls that light model of lighting control in use in just about every household that exists.

While you could hardwire the existing light switch to be always on and then use the Tap to control various lights, it would be aesthetically unpleasing and not nearly as convenient.

Until there exists a Tap-like device that is the same form factor and provides the same dead, simple, stupid “flip this to turn on/off that” mode of operation, the Hue — and every other pending solution like it — will not be a true home lighting solution.

Worse, it won’t achieve the promise. Right now, I have two if-this-then-that recipes that control the lights in our bedroom to wake us up and tell us about the pending day. One light will glow yellow or blue to indicate sun or rain. The other light glows from blue to orange to yellow to red (which, btw, was a pain in the butt to set up in IFTTT) depending on the high temperature for the day.

And we never see these programs run. Why? Because the last thing we do before going to bed is hit the light switch on the wall, cutting power to the Hues entirely. As does pretty much everyone.


Nearly a year ago, I upgraded all of the standard incandescent lights in the house to Philips Hue. The Hue is an LED lamp that gives off a decent amount of light — 60 watt incandescent range.

The Hue can also be remotely controlled via ZigBee. The Hue starter pack comes with a hub and 3 lamps. The hub has an ethernet port (no Wifi) and communicates with the Hue lamps throughout the house wirelessly.

It works really well. Better yet, there is a full API for controlling the Hue lamps and, as a result, there are a couple of dozen apps for controlling the Hue for both iOS devices and OS X. As well, the fabulous if-this-then-that site can control the Hue lamps based on various inputs. Want to have the Hue in the living to glow red on a warm day and blue on a cold day? No problem. What the Hue in your office to glow red when $AAPL is down and green when it is up? Easy peasy.

Yet, unfortunately, I can’t really recommend the Hue as anything beyond a novelty. Not because of any flaw in the Hue itself as it is a fantastic product, but because of what is lacking.

The critical missing piece is Hue compatible light switch. For example, when I walk into the bedroom at night, I hit one or both of the wall switches at the door, and I expect there to be light. Similarly, when I flip the switch off, the lights should go off. Now, unfortunately, this — as expected — kills all power to the Hue. No amount of remote control is going to light a lamp that isn’t plugged in!

One possible solution is to use something like the WeMo switch. It can be integrated with if-this-then-that to turn on/off a Hue or set of Hues when the switch is toggled. Beyond being expensive ($50/switch), there is a 7 to 10 second lag between the switch being activated and the light state changing. That assumes, of course, that the myriad of moving virtual parts between the light switch and the light are all up and running.

Way too Rube Goldberg to be acceptable.

Another possibility would be to configure a web server on a computer to receive the WeMo input, then fire a command off against the Hue hub. This would, at least, confine the Complex Machine to our house, but I’m really not interested in adding yet another server that needs administration to my life.


Kickstarter Opportunity!

To complete the Hue as a home lighting solution, there needs to be a light switch optimized to the Hue hub itself. Ideally, it would communicate over Zigbee to talk directly to the hub, reducing the switch-light hop count to 1. The switch would leave the Hue always powered. While it could be automatically configurable, that really isn’t necessary. The Hue management app could easily provide a list of switches and lights. Toggle the switch and it highlights. Select which lights should be controlled by the switch and you’re all set.

Alternatively, there is definitely a Kickstarter opportunity here and no one has come close (there have been a couple of “TCP/IP switches” on KS, but they all go for the kitchen sink of features). The key is dead simple; the switch could be as simple as on/off. Even basic dimming isn’t really necessary. Just an on/off toggle that doesn’t power off the device it is connected to, but sends a command to the Hue Hub over Wifi (because Philips has not opened ZigBee interface). Only need a 2-way switch because 3-way could be done entirely in software and could be implemented as n-way. The switch could be Hue compatible primarily, but that pretty much implies that it is a TCP/IP switch. Configuration is an obvious challenge; a bit of a chicken and egg situation there. Unless something like WPS (Wireless Protected Setup) could be used to automatically configure the switch, then I suppose it would have to have a USB port or something.

In any case, keep it simple. Go for maximal cost reduction while still producing an attractive product. I’d back it in a heartbeat, as I expect would many Hue owners.


Bluetooth Keyboard Caps

June 22nd, 2013 (trackback)
Redesigned Keyboard Cap

v1.0, pictured below, proved lacking.

v2.0, in red, appears at the left.

The size difference between the end cap and the bit that rests against the end of the keyboard was widened considerably. The old piece would slip over the keyboard and the closed end would activate the power button. The open end combined with the wider overhang, seems, so far, to be a better, more durable, design.

Yes, my printer’s belts need to be tightened.

Thingiverse Updated.


Apple BT Keyboard End Caps

Recently, I’ve been carrying an Apple Bluetooth Keyboard with my iPad mini so I can compose relatively long emails. Nothing beats a keyboard for text entry!

While I love the keyboard, it does have an annoying habit of turning on when floating about my murse.

A few minutes in Autodesk Inventor Fusion and I whipped up some printable caps that slide over the ends of the keyboard. The cap protects the power button from accidental activation (there are two styles of caps, one more defensive than the other) and by placing a cap at both ends, they can be left in place while using the keyboard and it remains level.

The STL files and some more photos can be found on thingiverse.com.

Aside: I clearly need to reprint that piece. I had some schmutz on the print bed, leading to the end not being smooth. That and it looks like my belts need tightening. I’ll switch colors to clear and re-print someday soon.

Aside^2: Something snapped in my brain since the last time I messed with Inventor Fusion. In particular, I went from nerver using to completely embracing the construction feature. Basically, construction allows you to place axis or planes relative to features on the model. Thus, if you want to bisect the model to, say, make the inside wall of a tube a bit fatter for a few millimeters near the end, you simply place a plane parallel to the end face, offset a few millimeters into the tube and then bisect the model with the plane.



OS X Client Software for Owon SDS7102 Digital Storage Oscilloscope

April 15th, 2013 (trackback)

Ever since using my first Oscilloscope in the ’80s, I’ve wanted one. Though I’m a software person by trade, my hobbies have long included electronics in many forms. Heck, I’ll take a well tuned, clean, pinball game over a video game any day (and if it isn’t well tuned and clean, I’ll do that, too). An oscilloscope has long been the ultra-expensive super tool that my hobbyist pursuits just couldn’t justify the expense.

Not any more.

Recently, I picked up a cheap treadmill to turn into a “walking desk”. It works fine, save for the annoyance that it turns off ever 30 minutes and the control box is this big, ugly, clunky thing that clearly is a whole lot dumber than the LED display indicates. In adding some extra length to the control box’s cable, I noted there were only three wires; power, ground, and a signal wire.

Clearly, given price point and lack of real communication between control box and treadmill, the “protocol” between the two is likely nothing more than a PWM signal.

Which, given that the treadmill (Confidence Treadmill) is for my health, health is vital, and the best way to explore that signal deeper, I investigated picking up an oscilloscope for the first time in 15 years.

Boy howdy. What a difference those 15 years made! I was used to seeing depressing 4 digit numbers on scopes that were somewhat slow, very bulky and had little to no means of exporting data save for snapping a picture. Now? Less than $500 gets you a multi-input ‘scope capable of handling up to 100MHz signals with lots of analysis features and the ability to dump it all to USB or, in some cases, the network.

A bit of research revealed that the Rigol DS1102E is the most popular of the sort of entry level digital scopes.

However, the Owon scope pictured at left was only $50 more, has a much larger screen, and a LAN port. Rigol’s ds2072 is similar, but nearly $400 more and is backordered pretty much everywhere. While the Owon has had some negative reviews, the latest version seems to have addressed almost all of the criticisms. That, combined with the realization that I’m not exactly going to be pushing it (and a bit of a desire for immediate gratification) and I went with the Owon.

Couldn’t be happier. The Owon SDS7102 seems to work just fine; more than enough for my needs. The user interface is pretty mediocre, but passable.

I’ll let people far more competent than me properly review the scope.


Read the rest of this entry »


Ratchet & Clank Infinite Bolt Hack (and Much Much More)

December 29th, 2012 (trackback)

The whole Ratchet & Clank series of games is just fantastic (save for the last one or two that kinda lost the plot). This year, the first 3 games were remastered for the PS3; 1080p and a bunch of new content. If you like 3D platformers and haven’t played R&C, I highly encourage you to do so.

R&C features a whole slew of upgradeable weapons. You collect bolts — the in-game currency — and use those to buy new weapons (and ammo). There is one incredibly powerful black market weapon available called the R.Y.N.O. (the “Rip Ya A New One” gun). Priced at 150,000 bolts, it would take many, many hours of repetitive game play to harvest enough bolts (until you beat the final boss once and start over in challenge mode where bolt collection is 2x to 3x faster).

Photo
Photo 1

There aren’t any cheat codes that’ll get bolts any faster, but there are bugs that can be exploited. Specifically, you can exploit a flaw in the geometry engine to go through a wall, fly through a roof and then fly to a race track where the game engine rules are tuned to you being on a hoverboard. In particular, you can use “the taunter” to break boxes of bolts in a way that the boxes keep breaking for as long as you hold down the “taunt” button.

It takes about 3 or 4 hours of taunting boxes to generate the 150,000 bolts to grab the R.Y.N.O.

Now, of course, this hack — “cheat” implies a Konami-Kode, this is much more of an exploit than a purposeful feature — is well documented online. This is a pretty typical example video.

It, however, is the hard way. A much easier way to do this is to go to the room containing the two health globes (screenshot(s) forthcoming) that said video shows you flying to. Once in the room, stand in the corner behind the globes and knock yourself through the wall using the decoys. Once through the wall, walk to the left along the narrow ledge until you are between the building and a really tall wall that goes over the race track. Wall jump up to the top of the building and fly to the race track as the video shows.

Much, much easier than the video for several reasons. First, going through a right-angle corner is a lot easier than that nuttiness in the raceway plaza. Secondly, no need to fly nearly blind from way up high through the roof of the building.

Of course, the hacker in me immediately asked “Why does this happen and can we exploit this further?”

Turns out that the answer is a resounding yes. It is really easy to find flaws in the game geometry that can be exploited. Look for sharp corners and aim your decoy gun (or any gun with a target) into them. If the gun’s target jumps between planes rapidly — better yet, if there are places where it will steadily oscillate between two planes — you can almost assuredly use the Decoy trick to knock yourself through that spot into whatever is beyond.

The glitches that result can be pretty mind bending. I have yet to see the game crash, but “divide-by-zero” would be an apt description of some of the results.

I’ve now used this in a few places in the game to complete a mission without doing any of the intervening bits or to get into a secret room without bothering to find the oft-well-hidden entrance.

Roger & I now have quite a few worlds to explore!




Xcode: Sometimes a return is not a return (emacs brain damage)

December 23rd, 2012 (trackback)
ExpectedExpression
Indention and Insertion Prefs

Every now and then, I’ll be coding along merrily in Xcode and I’ll get an error much like the one at left. Or “expected identifier or ‘(‘” is another variant.

Huh? That code is fine. Maybe it is an invisible character? Nope. Nothing shown.

Took a bit, but I figured out the cause; 25 years of using emacs as my command line editor of choice, along with the folks at NeXT that implemented the AppKit’s text editor.

In emacs, you quite commonly navigate about by holding down the ctrl- key and banging on various keys to go to the beginning/end of lines, etc. Many of these control sequences are honored by Cocoa’s text editing system and quite a few more are supported in Xcode’s editor.

Seemingly unrelated, ctrl-return is mapped to Insert Line Break.

Thus, if you are an emacs head and you commonly hit ctrl-e<return> to start a new line of code and you happen to hold down the return key just a tad too long, it causes the error shown (or a variant depending on where the insert happens).

The easiest way to tell if this is the case is to go to the line of code after the line reporting the error and hit ctrl-a. If the cursor ends up at the beginning of the previous line, that line is ended by a line break and not a true newline. (ctrl-n – backspace – return to quickly fix).

While it is easy enough to fix once you know the ctrl-a trick, a better fix is one that makes it such that it’ll never happen again.

To do that, go to Xcode’s Key Bindings Preferences, click on “Text”, and scroll down to Insertions and Indetions. On Insert Line Break, delete the ctrl-return (hat + u-turn arrow) key sequence. For convenience add the same to Insert Newline.

Problem solved.


3D Printing: A Tour of Stuff

December 15th, 2012 (trackback)

Since picking up an Ultimaker nearly a year ago, I’ve printed many things (and wrote a very well received article for Make: Ultimate Guide to 3D Printing).

These are many of them and some lessons learned from each.

Printed Ornaments

Koch Snowflake Tree Ornament Baubles

This is Thingiverse Object #35561.

Every year, we have an annual ornament exchange in our neighborhood. Last year, I used EMSL’s Egg-Bot to create an Eichler themed ornament.

This year, I started down the path of custom designing an ornament for printing, but grabbed the Koch snowflake baubles from Thingiverse.

Lesson Learned: Design software is hard to use. 3D design software is harder. You’d think a simple circle with some stars and words extruded in 3-space would be easy to do. Still, people totally dig the unique texture and shapes of these. In hindsight, I probably should have used Inkscape (awful, but works and is what is used for the egg-bot) to do a 2D design and then extrude that.

Read the rest of this entry »


Roast Turkey

December 4th, 2012 (trackback)
Turkey

For Thanksgiving this year, I couldn’t decide between cooking a smoked turkey or a roasted turkey. So I did both. 38 lbs of turkey may have been excessive for 12 people, but the leftovers are grand (still have quit a bit frozen).

For the smoked turkey, I followed the guide at Amazing Ribs. Hands down, the best BBQ/Grilling site around.

For the roast turkey, I started with Martha Stewart’s Cheesecloth Method, derived inspiration from Amazing Ribs, and applied a bit of my whim. The end result was incredibly good and, bonus, also produced some of the best gravy I’ve ever had.

Details:

  • You’ll need a roasting pan that allows the turkey to be suspended at least an inch, preferably more, above the contents of the pan (which will be about 1″ deep). Looking closely at the (admittedly poor) picture, my turkey roaster’s rack has little notches that allow it to be suspended over the pan. If you have room, you could use a pan on the bottom rack of the oven with a rack immediately over to hold the turkey.
  • Shove some sage leaves and a lemon inside the bird’s body cavity. No stuffing, though, as that just dries out the meat (by requiring a longer cook) while not really improving stuffing quality.
  • Pre-heat oven to 450℉
  • In the roasting pan place all the turkey innards but the gizzard — neck, any fatty bits cut off, heart, liver, etc… Add to the pan:
    • One large onion, halved, skin on. The skin adds color.
    • Several peeled carrots, cut to finger length chunks.
    • Celery, finger length chunks.
    • 6+ whole peppercorns.
    • 60 / 40 mix of water / apple juice, enough to mostly cover the veggies.
  • In a deep sauce pan, melt 3/4 lbs of butter. Add 2 cups of Sake and ~1 Cup of Jack Daniels. Once thoroughly melted and stirred, soak a cheese cloth in it and layer on top of the turkey. There should be at least 4 layers of cloth on the top and down the sides of the turkey.
  • Shove the bird in the oven. After one hour, drop the temperature to 350℉ and baste the turkey with most of the remaining butter/sake/JD magic sauce. It’ll sizzle and pop. That’s OK. The cheesecloth will likely be near black and crispy. Also OK.
  • After another couple of hours, remove the cheesecloth carefully. Baste with any remaining awesomesauce and baste with a bit more of the drippings from the roasting pan below the turkey.
  • Cook for at least another hour. The bird will be done when the meat in the thickest part reaches ~155℉. Not 165℉ as the bird needs to rest for a good 15 to 20 minutes when pulled and carryover will cause the temperature to both continue to rise and continue to pasteurize (if you hold poultry at 131℉ for long enough, it’ll be fully pasteurized– the USDA’s quote of 165℉ for safety is based on holding at that temperature for only a few seconds!).
  • Strain the contents of the roasting pan into a pot. You could choose to serve it as is as a delicious and flavorful broth to be ladled over the meat. Or you can choose to cook it down — to thicken it up — as a more traditional gravy.



Printing the NASA 3D Models

October 23rd, 2012 (trackback)
Shuttle

Update: Thinking about it for just a moment, I realized the print quality would likely be higher if I printed in “launch position”. Doing so would greatly improve the wing quality while also, hopefully, improving tail quality in that there would be fewer really small layers (that cause the print head to slow way down, causing blobbing). The disadvantage would be a lot more support material, especially around the engines, and, thus, a potentially difficult, if not destructive, post print cleanup.

And it worked! I only lost one control jet off the back during cleanup, even!

There are more photos of the final printed piece and of the print in progress in my Flickr feed (link goes to a photo in the middle of the set).


I remember watching the first Shuttle launch way back in 1981. If you’d told me then that I’d be casually printing a small copy of the Shuttle on my own personal 3D printer 32 years later, I might have thought you were crazy. Or, at 11 years old, I probably would have have asked, “Why so long from now?”


3D Printed Shuttle

NASA has kindly dumped a treasure trove of 3D models available for free download.

Obviously, these beg to be printed. Doing so is a matter of jumping through a couple of file conversion hoops. The files start out as Autodesk 3DS files.

Meshlab can be used to import said files and then export them to STL. You might need to do some mixup after. Using netFabb, I found several errors in the model’s geometry and fixed it. I believe Meshlab can do the same, but I’m not familiar enough with the tool

Slicing for printing is tricky. The models give zero consideration, no surprise, for 3D printing. In fact, they are entirely sub-optimal for printing. For example, the shuttle’s cargo bay is empty, leading to a bit of a support mess, and it would print much better if the wings sat flat on the print bed. Thus, even the simple Space Shuttle model has a curved bottom. You’ll probably want to enable support when slicing. Some of the models, like the lunar landers, are unlikely to be able to be printed using an extruded plastic printer without support material that can be dissolved away afterwords (i.e print in PLA or ABS with PVA support material.

As a first print, I sliced using Cura with 20% infill, 0.2mm layer height, and support material turned on. It actually turned out better than expected!



75/47.5 Yogurt

September 9th, 2012 (trackback)
Yum!

When I became sous vide enabled (controlled water bath, anyway, a proper vacuum chamber is on the to-buy list), it immediately dawned on me that a tightly temperature controlled water bath would be perfect for purposefully growing microorganisms as much as for preventing the growth while achieving perfectly done foods.

Roger has long been a fan of yogurt and yogurt is nothing more than milk fermented by a lactose consuming bacteria of, most commonly, the Lactobacillus delbrueckii subsp. bulgaricus and Streptococcus salivarius subsp. thermophilus varieties.

And, yes, it has proven incredibly easy, cost effective, and exceptionally delicious to cultivate these bacteria in the milk of your choice using a sous vide rig. Note that you really don’t need a water bath; a cooler, some hot bottles and towels can work well enough.

However, you do need the precision of a water bath to achieve consistent results of the highest quality!

The Recipe

Milk Divided

1. Divide a gallon of milk amongst 5 1-quart Bell canning jars (which aren’t actually 1 quart in many cases — go figure — just divide the milk evenly between them). Lids on loosely!

We often use generic organic whole milk, but low-fat works, too. It cannot be ultra-pasteurized (as ultra-pasteurization breaks down the proteins to the point that the bacteria can’t survive. The implications on the healthiness of said milk are quite bad). Raw milk works beautifully, but is expensive. I’ve been meaning to try a mix of sheep and/or goat with the cow’s milk.

Lately, I’ve taken to using a gallon of 2% mixed with a quart of raw whole milk. The result is a bit richer in flavor and texture while not being the whole fat experience.

Making Yogurt; Scalding the Milk

2. Place in an 75C water bath for ~2 hours (long enough to heat the milk thoroughly to 75C for at least an hour).
3. Cool milk to 47.5C. I find it easiest to scoop out the hot water and replace with cold water to bring the temperature down rapidly.

I usually set the target temp of the water bath to 46C initially. By doing this, the residual heat from the milk will leach out into the water bath and you can tell when it is stable when it holds steady. You can inoculate and bring the temperature back to 47.5C simultaneously (Yogurt cultures will incubate fine up to just above 50C and, in fact, I used to do this at 50C. I’ve since found that 47.5C produces an even better result.). The key is to make sure the milk is solidly below 55C before inoculation, otherwise you’ll run the risk of killing off the live cultures!


Innoculate at 50C

4. Stir in one tablespoon of the plain flavor of your favorite brand of yogurt into each jar. Place lids back onto jar loosely.

You can use previous batches to inoculate new batches, but it is generally recommended that you refresh with new yogurt every few batches. Honestly, I’m not sure how much this matters. It’d seem that as long as you store your live culture yogurt properly, you shouldn’t have any more of an issue than one might with, say, a sour dough starter. Mostly, I end up “starting over” with store bought plain yogurt simply because we eat the previous batch so quickly and we forget to preserve enough to start the next batch!
5. Leave in the water bath for at least 12 hours and up to 24 hours (maybe even longer). The longer they are in the bath, the more greek-like sourness to the yogurt. I usually target 18 hours, maybe 22, and everyone in the family eats the stuff like crazy.

Done!

6. Tighten the lid and submerge in ice water to stop the bacteria from continuing reproduction as the temperature falls (more below). You should hear a “pop” as each jar seals itself.

7. Refrigerate. We’ve had jars sit in the fridge for 4+ weeks with no off flavors or nasty bits forming. Others have reported keeping the sealed jars in the fridge for 6+ weeks without issue.

You’ll get a bit of whey on some jars, some more than others, I typically collect the whey and use it in bread making.

Read the rest of this entry »