Pages

Thursday, July 31, 2014

logo

I recently inherited some technical books from a close friend. Among them was Seymour Papert's 'Mindstorms' -- a book about the history of the logo language. I recalled with fondness my own experiences with logo in the heydey of the great 8 bit age.

I built a little one for my daughter. It is here.

try:
do 20 [ fd 20 rt 18 ]

to star [ do 5 [ fd 70 rt 144 ] ]
do 5 [ star pu fd 90 pd ]

It will grow as she outgrows its limits. I do not know if I will be able to keep up.

(update 7 Aug 2014)
this logo now generates GPGL cameo output with the 'cameo' command

Wednesday, July 30, 2014

mutually assured destruction

I have a large and growing collection of e-waste. One special neighborhood in this zip code of waste is reserved just for dead or dying gadgets that hold my personal information. The pile grows because I don't have good protocols for scrubbing this junk before it heads out the door for its date with an acid bath, a makeshift furnace attended by orphans, or an identity theft gang in Southeast Asia. They don't ask which you prefer at the ewaste drop-off.

My hard drives usually get destroyed. A wifi router might get its settings wiped. I have a harder time with things that seem like they ought to be useful. I recently had four Macs that fit this bill. All worked but none really made any sense as a computer. All were 'modern' Intel Macs though two were 32-bit-only Core Duos. MagSafe plugs were fraying. Batteries shot. Fluorescent backlights dim.

All these Macs had hard drives that are tedious at best to remove for erasure or destruction. Fortunately, all also had FireWire and all supported Apple's fabulous Target Disk Mode. Hold 'T'  at power on and the Mac exports its internal drives to another Mac over FireWire as if they were external disks. I used one of the Macs to wipe the drives of the other three. I installed a clean Mac OS on one of the wiped machines and turned it around to wipe the fourth.

This cyclic graph of destruction was not simply for show. While these Macs all had FireWire, none of my present Mac laptops do. These machines would have to wipe themselves. The arrangement sounds cumbersome but the outcome was ideal. I was able to recycle these machines as working computers rather than as pure waste.

I would be even happier if these Macs, and all phones, tablets, and computers, came with a 'donate me' mode in firmware that could give me some assurance that the device has been actually wiped. An article chosen at random from the Google suggests that these machines might take on average 4000 MJ of energy each to make. A million watt hours. Twenty thousand hours at 50 watts. I don't expect any of my old machines, or phones, could forestall the production of their replacement if re-used. I would still like the best shot at it. Perhaps future revisions of the 'Energy Star' program could include mandates designed to simplify responsible reuse.



Thursday, July 17, 2014

big ass brother

In November I wrote a three part review of the Haiku fan from Big Ass Fans. I love the fan, but I had some complaints about the clumsy remote and the dim lamp. That review ends with:

If Nest can solve the user interface challenge of configuring a wifi smoke detector on your ceiling, then it must be possible for a ceiling fan.

The folks at Big Ass have now come to the same conclusion. They have a new model out with 'SenseME' technology. What is SenseME? It looks like a module that replaces the lame lamp with the equivalent of a Nest thermostat.

I have a guess that the fan motherboard is unchanged and that the SenseME module plugs into the same header as the RF remote receiver.

SenseME is still in pre-launch. I wonder if they will work out some kind of revenue split with users over the monetization of your home occupancy data. Maybe they will just knock a hundred dollars of the list price up front. Maybe they'll find it easier to just keep the money.

In any case, I have two suggestions for Big Ass. The first is to go license "See Me, Feel Me" from The Who for your SenseME campaign. The second is to take a moment and consider a brand pivot. This could be the moment to transition away from fans and become Big Ass Brother. Why not just admit up front what we all suspect about the current connected home insanity? Your existing brand concept slaps a folksy, colloquial label on a plain fact -- big fans. Let's do the same thing for the Internet of Things that Spy on You (IoTtSoY). Big Ass Brother.



Monday, May 12, 2014

stokked

I'm trying to give away as much baby stuff as I can. This ritual is a common one in our culture. The traditional purpose is to ward off future offspring though it often induces just the opposite effect.

My weekend's task was to unload our Stokke Xplory stroller on a worthy family. I failed. I relaxed my standards of worthiness somewhat and still failed. Worthy now meant just that someone possessed $125 dollars and the ability to send me an email. Sad. The folks on the neighborhood listserv don't know what they are missing.

I picked the stroller years before I knew I would be a father. My wife and I saw the Stokke in a showcase of Norwegian design in Washington's Union Station. Norway used to erect a Christmas tree in Union Station as part of a comprehensive annual gratitude package for the people of the United States. I think we got the tree for being an early country to recognize Norway's independence from Sweden. The tree was certainly the highlight of the display for most. I favored the train display. In the early aughts, I preferred the display of Norwegian design most of all.

That display featured the most outlandish baby stroller I had ever seen. It looked at first like a golf cart with an attached infant seat. The seat could slide up and down the central aluminum spine. It could also turn to face forward or back. The stroller suggested a life free from dirty restaurant high chairs, splashes, and barricades that might block the view of a child.


Golf Cart
Image courtesy Golden Eagle Golf
Stokke Xplory
Photo courtesy your correspondent


I was sure that only this stroller would do for my hypothetical future children. When my wife and I went stroller shopping, years later, we first had to track down this crazy Norwegian stroller. We had no idea of its name. That was easy. A Google search for 'crazy stroller' turned up the answer on the first page.

The second challenge came only when we learned that the stroller was about a thousand bucks. I've bought cars that cost less. The golf cart pictured above goes for about a hundred bucks. In the pantheon of expensive hobbies, babies rate above golf. They may even rate above sailing.

I decided that the idea of a kilobuck stroller was insane. I decided that the Stokke folks must be a similarly insane tribe of designers and artists and engineers. I rationalized the purchase as if I were
subsidizing public art through the installation of this small and portable kinetic sculpture.

Despite my poor luck with shifting the thing this weekend, I have come here to praise the Xplory, not to bury it. This stroller was amazing in ways I could not have previously imagined. I wanted to share some of those ways with you before the memory fades completely.

Let me get some of the downsides out of the way before I move on to the praise bit. The stroller is heavy. It is difficult to fold. When stored most compactly, it is split into two bulky pieces. I was unable to check it for air travel without using a large and expensive stroller body bag. A plastic lever broke. The storage was nearly useless. The cup holder was a literal afterthought. The brake can be difficult to operate. The seat is difficult to flip from front to rear facing without taking off the foot rest. People will constantly stop you on the street to ask about it.

A happy Xplory owner will probably live in a walkable city and walk with it. I lived in Washington at the time and it was perfect for me and my kids. I probably put a thousand walking miles on it. It was a delight to push from Capitol Hill to Georgetown on a nice day.

The trait that defines the Xplory is its stiffness. Stiffness is what lets you take long strides without banging your foot into a nightmare of accordioned folding bits. Stiffness is what lets you pick the whole thing up, including child, and carry it up stairs (EDITOR'S NOTE: NEVER DO THIS). Stiffness is
what enables off-axis thrust and navigation.

Wheel wear on a non-stiff stroller
Image courtesy a unsatisfied Maclaren owner on Yelp

Off-axis thrust and navigation? These are not things I remember reading about in baby guides. Here's what it means in sailing terms: Most strollers are comfortable in only one point of sail -- running downwind with an adult directly behind pushing on both handles. The Stokke works fine with a single hand on the tiller. Not only that, the Stokke works fine in a broad reach with a hand anywhere on the large handle bar. The stiffness of the stroller and the height of the seat, when upright and facing forward, let the Stokke perform even in a beam reach.

I spent most of my time with it actually walking next to it and carrying it along with a hand on the child restraint bar. It was amazing to be able to talk to my children in the stroller while we were both facing forward. We walked hundreds of miles this way. I almost never used the vinyl rain cocoon thingy bundled with the stroller. Instead, I just walked along side it and shared my umbrella with comfort. I also found it pretty easy to push an infant in the Stokke and a toddler on a Kettler tricycle at the same time. This miracle helped me to get my youngest onto a bike much earlier than I otherwise would have been able to manage.

The stroller's stiffness comes in part from design and in part from quality. It should see service for at least a decade without difficulty. Perhaps the most difficult aspect of parting with the stroller is that I do not expect it to see out its entire useful life. In our part of the country, safety concerns over previously owned baby items make some only slightly more valuable second hand than radioactive waste. Even charities, perhaps especially charities, want nothing to do with most of what I have. I understand.

I understand that it can be difficult to reach unregistered owners with recall notices. I understand it can be difficult for new owners to discover the recall history for a gadget that may not have all its papers in order. I understand that new and ever better product safety regimes are difficult or impossible to apply to a product made years earlier. I still wonder if we have gone too far.

My children's car seats and boosters all have a use-by date. The old BMW wagon in which the seats are installed does not. The Stokke could have BPA or some other unfashionable substance buried somewhere it it. I got a whiff of the vinyl rain cover and guessed that it would not make a good chew toy. Could the stroller somehow be worse than a new Maclaren from China? I don't know.

I think the organic food folks might be able to help. We're expected to believe that baby stuff is up to snuff because it has a bunch of compliance marks on it. Organic folk also know to look for a special mark on their stuffs but they also know that each mushroom is traceable back to an actual farm. Even the inputs to that farm may be traceable back a few degrees.

If we can bother to make individual pieces of fruit traceable from 'farm to fork', perhaps it is not such a stretch to imagine the same for strollers, clothes, and toys. Organic foods labelled with the HarvestMark system can be traced by consumers prior to purchase directly from their telephones. Traceability could make it much easier to reason about the safety of a product later in its life. How much could it add to the cost of a thousand dollar stroller?

On the downside, we might be confronted with more than we really want to know about where our products come from and what they are made of.




Thursday, December 26, 2013

silent night

Our last episode was about bad experiences with iMovie and frustration with the state of licenses for movie soundtracks. I left on a high, though unlicensed, note and told you about my happy times with the python program 'webkit2png'.

It would have been a fine post with which to end the year if I had included an example. I couldn't figure out how to include the video I made in the course of writing that post and still preserve my anonymity.

I'm back with a new example that pinpoints my location as the northern hemisphere of Earth. I'm comfortable with that.



'Silent Night' was built from 251 ten second exposures taken at one minute intervals on Christmas Eve. The images were post-processed and stacked in webkit with an HTML canvas and getImageData/putImageData.

The sound track 'Silent Night' was licensed from friendlymusic.com for $1.99. That fee got me the rights to include the thirty second track in exactly one personal video uploaded to a 'User Generated Content' web site. My theory is that Google Drive is a 'User Generated Content' web site and that my hosting the file there is within the scope of my license.

Google Drive allowed direct access to the video for a few hours last night. That's what I wanted. This morning, Google gives me a fat HTTP 403. Perhaps this has something to do with copyright police. You ought to be able to get the full video from Google with this direct link. If your browser is a modern one, you ought to be able to skip the wonky flash player and just view the file directly below:


Merry Christmas.

Wednesday, December 11, 2013

cinema

Yesterday was a rare whole-family snow day. It was actually that rarer thing -- the nearly snowless snow day. The morning's lack of snow and relative leisure gave me a chance to set up a time lapse rig to catch the expected snowfall.

I shoot most of my time lapse movies with a Canon 40D SLR camera. I love the camera, but my time lapse machinery is a little unsatisfying. The camera is about six years old. My Mac appears ready to do tethered shooting with many camera models, Canon included, but not this one. I think this model was too new at first. Now it too old. Canon probably has an free and unscriptable app for this purpose. I'm sure that grownup photographers have expensive software that makes this all go. I don't use the words 'workflow' or 'post-processing' unironically to describe my modest endeavors. I'm not really interested in a complicated solution.

It is a strange sign of the times that my idea of an uncomplicated solution is an Arduino and a transistor. I bought a cheap wired remote for the camera and hacked it and the transistor onto the Arduino. A tiny sketch runs the project. My original project had no user interface. The delay was embedded in the sketch source. Every new project meant recompiling the shutter sketch. Though this sounds clunky, it is no more complicated than using Apple's own 'Automator' facility for this purpose. Who knows? Perhaps the Arduino IDE itself could be scripted with Automator.

I now use a TFT touch screen shield from Seeed (by way of Radio Shack) as a little user interface. That contraption uses nearly all of the available I/O pins on the poor Arduino. Good news, then, that the actual function of the whole bodge -- connecting two pins from the camera -- requires only one.

This assembly of camera, Arduino, touch screen, and transistor worked well enough to get me 497 pictures of the day's precipitation with a 30 second interval between shots. The camera's battery was about three quarters full at the start and the event wrapped up when the battery gave out. I shot from a Duplo rig.

The shooting took about five minutes to set up and ran unattended for the next four hours. These were, by far, the most pleasant hours of the project. The next four hours boiled away in front of iMovie as I tried to put the frames together. I have used iMovie dozens of times to stitch together little time lapse movies for my kids. It is always frustrating but I usually get a movie out of it. Not so this time.

I hadn't used iMovie as much since it was sent off to a reeducation camp for the redesigned iLife '11 suite. I adjusted my workflow and ambitions downward towards and kept going. Yesterday was the first time I tried the still newer 2013 version. It cheerfully upgraded my library and spent much of the rest of the evening crashing.

The basic idea in cinema is that a series of still images can be displayed in sequence in a way that an observer will perceive as fluid and continuous. That's the fundamental concept. The difference between a time lapse movie and a real time movie was once maintained by clockwork camera drive or the evenness of a cameraman's cranking cadence. In the digital world, it exists only in post production.

iMovie treats still pictures, the most basic and primitive element of movie making, as some sort of second class citizen. For years, you couldn't have a still picture on screen for less than .2 seconds. You can't have a title or effect span more than a single frame. Pictures are converted into 'Ken Burns' movie clips by default. The older iMovie 11 let users turn this default off. The newer version has apparently hidden this knob. Both versions let you set the duration of several stills together at one time. The new version seems to have lost the feature that lets you crop a bunch of stills to the same box.

iMovie accomplished a lot in the Power Mac G3 days simply by showing that it was possible to do something with digital video on a consumer machine. Job well done. I believed. Even today, a bunch of clips put together in iMovie usually look better than the raw concatenation of the footage.

It is no longer surprising that consumer machines can handle enough data to string together a movie. Apple themselves distribute a version of iMovie for their telephones and tablets. What is the point of iMovie now? What does it demonstrate? I don't know. Many of the signature iMovie effects seem not much better than HTML5 CSS demos available from Apple and others.

After four hours in front of iMovie, I decided to find a better way to make time lapses. My only rule was that it had to be free, simple, and not involve anything called an 'App Store'. I searched for tools designed to let you make movies with HTML5 and CSS3. There may be a good search result out there somewhere. I couldn't find it among the many articles about viewing videos in the browser with HTML5.

A more complicated query found me webkit2png. Webkit2png was described modestly as a command line tool for making screenshots of web pages. It is much cooler than that. It is a simple python script that uses the python to objective-C bridge to create a webkit view offscreen, load an URL into it, and dump the virtual frame buffer to a file. The screenshots have absolutely no browser chrome, just edge to edge web goodness.

I wrote a simple HTML file that accepts a frame number as part of the query string and generates a web view filled with that image. Titles are superimposed and styled with CSS. Webkit2png turns each of these rendered frames into a PNG. ffmpeg turns these PNGs into a movie. My titles can fade out over as many frames as I like.

There are some rough spots. My movie script is basically a javascript program. I use CSS for titles and transitions, but I'm not actually using the browser animation facility. Each movie frame is rendered by a completely independent webkit instance. Time exists only as a Javascript variable. Rendering is slow. ffmpeg turns 720p PNG files into 720p video at about 30 frames a second. I can render only about 2 frames a second with webkit2png. iMovie may have lost its mojo, but it at least has an interface that looks good in the Apple Store. My approach does not though I think one could be built for Safari with little trouble. Safari has evolving support for 'Web Audio' but this support does not translate directly into a soundtrack story for my movies.

My shell-based workflow is not an alternative to Apple software. It runs in a terminal window on my Mac. webkit2png runs only on a mac and depends on the fact that WebKit (also Apple) can be manipulated through a bridge to Objective-C (also Apple). Once ffmpeg generates a video, I open it in Apple's great Safari broswer and watch it full-screen. I don't know how to do this as simply with any combination of Linux, Windows, Firefox or Chrome.

I think Apple could decide to make the MPEG encoder and a few other toys available from Safari and then do iMovie as a web app. iMovie would have a point again. It would demonstrate that it is possible to do something with digital video on a consumer machine. The difference between now and iMovie of the twentieth century is that the leading consumer machine is the browser.

In the mean time, several groups are beavering away to bring you video editing in the cloud. I fear these efforts will be linked irretrievably to a 'platform', like YouTube. Apple could remind us that a local machine actually does a fine job. They could add some value along the way. They have the cloud facilities to offer automated closed captioning. They have the clout to offer a portal for licensing music for use in videos. Getting synchronization rights to incidental music in a home video is now more difficult than digital video editing.

One firm trying to sort the soundtrack issue is FriendlyMusic. They offer a catalog of at least tens of thousands of tracks available for your video. They offer 'Mash' licenses -- good for non-downloadable videos hosted only at youtube.com for as little as $.99. A 'Personal' license, $1.99, lets you host your
video on 'any social video website, such as YouTube, Vimeo, Animoto or any other UGC site.' A 'Commercial' license, $25.00, lets you make a video for your small business. They mean small -- fewer than ten employees and less than $1m in annual revenue. I hoped to find 'A Hazy Shade of Winter'. I expected that finding a specific track would be dicey. I was right. I looked around for alternative ideas. I flipped through about a hundred track clips before settling on silence as my alternative soundtrack concept.

Nick Wingfield reported last month that an Apple ][ machine donated by Steve Jobs to SEVA, a non-profit humanitarian organization in Nepal, has returned to his estate after 33 years. One point of that piece is that Steve Jobs was actually a philanthropic creature by some measure -- a response to a criticism often leveled at the man. Let me borrow a Steve Jobs quote from that piece:

“I only know how to do one thing well, I think I can help the world by doing this one thing.”

My Mac does at least four things well. It is beautiful and reliable. It has a good operating system. It includes a good web browser. It may be greedy of me to expect more from it or from Apple. For the moment, I am limited by my vision, not by my tools. I'm exceedingly grateful to Paul Hammond for webkit2png. It's cool. It scratched an itch. It reminded me of my joy using an early NeXT workstation. These reminders do not come often.

Wednesday, December 4, 2013

surprised

I have a friend who mines Bitcoin. He wondered aloud today if an alpaca might make a good animal for home. Alpaca scarves for all! I was surprised to hear myself say that Bitcoin might be the better investment.