Pages

Thursday, November 5, 2015

your move

Last month brought the new Chromecast Audio. I like mine just fine though not quite enough to displace any of the existing Airport Express devices in my house. Last month also brought Apple's El Capitan to my machine.

With El Capitan's Safari 9, Apple appeared to say 'your move.' to Google and their Cast extension for Chrome by breaking iTunes' 11-year stranglehold on official desktop app support for Airplay. What Apple actually said was 'your mo... oh, dear. i've soiled myself.'

Apple's otherwise great new webkitShowPlaybackTargetPicker() media element method lets web content sling itself to Airplay without obnoxious extensions or API keys. Awesome. The resulting Airplay picker popup -- triggered from an audio element here at reograph labs -- shows
exactly none of the Apple Airport Express devices installed around the house. An old Apple TV and a third-party Airplay server running on a Mac put in an appearance but that's it.

I don't know whose move is next but I'm getting tired of this game. System-level mediated audio made sense in the past when the system actually multiplexed audio streams. Essentially none of my audio today except the terminal bell is routed to a DAC attached to a bus in my computer. How is Apple struggling with a feature that worked with iTunes on my G3 iBook?

Is this perhaps a sign that the old Airtunes-protocol hardware is on the way out? Does the bulky new Apple TV create room for a Chromecast Audio-like Apple TV for the Blind? You heard it here first.


Tuesday, October 20, 2015

ewaste pda style

Back when PDAs were a thing, I owned one of just about every interesting device. Psion? Yeah. Palm? I had a half a dozen. Newton? Check. Sharp Zaurus? Check. MagicCap device? Got it. Franklin REX? These were the mainstream machines. I had a dozen of the weird ones as well. The worst of those was probably the Agenda VR3.

The Apollo program closed out 1972 with humanity's last manned mission to the moon so far. The eight year lull before Shuttle launched in 1980 seemed like an eternity though Skylab and Apollo-Soyuz took a bit of the edge off.

The PDA market had an Apollonian slump between the release of the last terrific PDA (1999's Palm V) and the release of the original iPhone in 2007. Weird things turned up in the market during that time but they really only ever took a bit of the edge off.

I needed a fix of personal digital love in 2005 and jumped on the new Nokia 770 with vigor. It is hard now to explain why in terms other than a fix. It was perhaps the first PDA-like thing to come with a kernel that supported the Plan 9 file system protocol. Maybe? That seemed breathtakingly important at the time. It also seemed like the perfect platform to run Paul Guyot's Einstein emulation of the Newton. Your PDA platform may have problems if a Newton emulator seems like a high calling.

I can't say that it was awesome, or that it seemed awesome. It seemed then that it would eventually be awesome. And then it wasn't. It was a preview of modern high-DPI displays. Its 4.1 inch screen rocked 225 ppi at 800x480 two years before the iPhone rolled up with the retro resolution of 480x320 at 163 ppi. It was unlocked. It was the first PDA I owned to run a real web browser. It was interesting.

The 770 was easy to tether to a bluetooth phone and I used it this way until I had owned an iPhone for about 15 minutes.

It was beautiful and well made. My copy was made in Estonia, an ancient Baltic country taken as part of the Soviet Union until 1991. That's as close a PDA analogy as I can make to Apollo-Soyuz. It was a relative heavyweight. Mine weighs in at 235g. My iPhone 5s weighs in at 112g. The Palm V weighed 114g.

An old joke says that the Americans spent a million dollars to develop a pressurized pen capable of operating in outer space while the Soviets simply used a pencil. The tale is reversed with the 770. Nokia spent a lot of money to develop the last of the resistive/stylus machines when the Americans, here Apple, simply used a finger.

My 770 goes off to recycling today with its original stylus still tucked safely in its slot.


Nokia 770 tablet (pictured with Sparky for scale)
photo courtesy your correspondent



Wednesday, October 7, 2015

chromecast audio

I wrote this morning about my disappointment streaming simple audio from a Chrome tab. I placed the blame, correctly, on Chrome and not the Chromecast but I may have been a bit harsh. I may have blamed son Chrome for the sins of father Google.

I've now had a Chromecast audio in my hands for about a half an hour. It is much less horrible than its video cousin. The SDK is still broken by design. The Cast Chrome extension is still very large and complicated. It still required my phone, and not my Macbook, to configure.

If you set aside the setup, the pointless cryptography is pointless but only modestly worse than Apple's scheme in Airplay.

Our beloved RMS used to say that it wasn't really important to have the source to the firmware of a device that behaved like a circuit. An OTP PIC micro controller pretending to be a quad NOR gate was as good freedom-wise as a real quad NOR gate. The audio Chromecast works almost as transparently and reliably as an old 900MHz wireless speaker and I'm prepared to treat it as a circuit for now.

I stand squarely behind the rest of this morning's rant. The browsers with native APIs are the only local, graphical, general-purpose platforms worth programming. I look forward to the day that my web app can stream to a Chromecast, or an Airplay, directly without obnoxious SDKs or extensions or App IDs or the cloud. Until then, I'll listen to some tunes.

chromecast

I've had a Google Chromecast gathering dust in my workshop since just after they were announced. This dusty nap wasn't really its fault. The device just didn't seem very useful after I gave away the television.

Google's recent announcement of second-generation Chromecast hardware included an audio-only version that sparked in me new interest. I dug my old Chromecast out of a drawer and plugged it into
an HDMI monitor that can split HDMI audio out to external speakers.

I was pleasantly surprised. The experience of streaming a tab-full of audio out of Chrome into the Chromecast was worse than streaming audio from iTunes to Airplay but better than directing Mac system audio into Airplay.

Airplay is just about the only thing that iTunes does well. In any case, I had already banished iTunes from my machine and I play all my tunes by drag-and-drop with a web app, phonoh, that runs in Safari, Firefox, Chrome, or as a Chrome app. I'm happy this setup but it has left me without a pleasant way to beam audio from the browser to any of the speakers in my house.

Ten minutes with the Chromecast had me beaming tunes from phonoh into speakers. The crippling downside is that I have to cast the entire tab for this to work. Why? For starters, Google's cast SDK fails totally for web apps hosted from the filesystem with file://. For nexters, there is a gigantic disconnect between the ease with which tab-casting works and the Kafka-ocracy of hosting a receiver app, registering an app id, enabling magic developer mode on your device, blah, blah, blah for an app where there is fundamentally nothing worth hosting anywhere but in Chrome in the first place.

I drop files onto the web app from the desktop or from another web app. That's it. Essentially every audio track I have ever played is smaller than a single RAW file from my eight-year-old DSLR. I'm not a media hoarding survivalist with a ridiculous HTPC, a shotgun, a vault of ripped Blu-Ray discs, and food for a month. I'm just a dude who is going to listen to less than a terabyte of music between now and death. Why stream the soundtrack to my demise when most of it would fit on a microSD card in the space of a fingernail?

I took a tour through the two megabytes (!!) of minimized Javascript that make up the Cast extension that Google distributes. I thought it might be simpler to just write my own Chrome extension that lets me manage the WebRTC plumbing that appears to make tab-casting go.

I poked around in there to find the Chrome mDNS support and I built that into phonoh. Chrome's mDNS found my Airplay devices in short order but not the Chromecast!

At this point, I decided that I would just build a registered custom receiver that could be used with any app. I thought I could build a receiver web app that presented a generic remote-DOM interface to
the Chromecast. This appears possible, but generic (or even re-useable) custom receiver apps are forbidden by the SDK terms of service! Nearly every aspect of what I wanted to build is explicitly forbidden by the terms of service.

The Chromecast dongle is now in the ewaste pile. I was never meant to be the customer for Chromecast. I was somehow meant to be the product.

My point isn't that Chromecast is broken or evil. My real point is that Chrome, or Chromium, and Firefox are the only local, graphical, general purpose computing platforms worth programming today. Chrome, through extensions written in Javascript, can even host its own local development. Chrome is demonstrably adequate for interesting systems programming -- look no further than the cast plugin or the Chromecast themselves.

Chrome and Firefox are essentially fully baked as platforms. Most of the rest is removing the damage they inflict on themselves through administrative fiat. For example, Firefox doesn't allow self-hosted apps to use privileged APIs -- which is most of the APIs that distinguish an app from a web page. I can't build an alarm clock in Firefox without permission from Firefox World HQ. Even worse, Firefox reserves some permissions just for the 'manufacturer' and presumably still others for themselves. Manufacturer, here, means one particular middleman out of the many between you and the orphans at the conflict mineral mine who dug your device up from the earth a handful at a time. There is no higher plane of privilege reserved for the owner. Or for the orphans, for that matter.

By the way, Orphan Rights Management would be awesome. This tantalum isn't for pornography. This indium can't be used for human trafficking. This tin can't be used by despotic regimes that don't follow the Terms of Service in the UN Universal Declaration of Human Rights.

Let's stop treating audio and video as technological special cases. Let's give up on the idea that clients are somehow less than servers. Let's stop pretending that we can keep the bad men out by preventing users from using their computers. Let's take back 'rooting' and just call it 'owning' again. Leave the rooting to wild pigs.

Monday, September 21, 2015

volkswagen

The recent allegation that VW has been cheating on emissions testing for the last six years, if true, is fantastic news.

It's fantastic for consumers, fantastic for the environment, and fantastic for Volkswagen.

Volkswagen may now be on the hook for fines of up to $18 billion dollars, according to the Washington Post, and the full cost of a recall effort of nearly half a million cars. That's all before VW begins tangling with a half a million current owners and millions more prospective owners.

How is this good? This is good because it creates a fabulous space for a deal. Here's one idea for a deal that I think could work for everyone:

Point 1: VW re-captures those vehicles which are still on lease, modifies their software, and leases them back out with penalties for high mileage. The mileage restrictions and reduced performance on these leases will make the cars nearly worthless. VW offers them cheaply in exchange for a cash-for-clunkers style trade that takes a grosser polluter off the road. This captures the sunk costs of building these cars in the first place, preserves a role for VW dealers, and gets some worse cars off the road. Perhaps VW also buys back cars in private hands and gets them into low-mileage fleets to blunt the environmental impact without the pointless work of a recall. If my impression of the residuals on VWs is in the right ballpark, this could cost less than $2 billion over the next three years.

Point 2: VW inks a deal to manufacture and sell a million electric cars in the U.S. over the next ten years. For each car eligible for the (up to) $7500 refund from the feds, VW pays the Treasury $7500. For every state and locality that waives excise or registration taxes for electrics, VW pays. This could cost less than $10 billion over ten years. For each car not sold below the target of a million, VW pays the original $37500 fine for the diesel cars plus a new fine of $37500. The cars are built in the US so that EPA inspectors can oversee the loading of the critical powertrain management software that has recently been difficult for VW.

Point 3: The VW pays an additional $1 billion dollars over ten years into the highway trust fund to offset the (presumed) lost gas tax revenue for these million cars over their service lives.

Point 4: VW claws back five cents a mile in penalty fees (up to $3750 per car) for miles driven beyond 100k miles per car in the first three years or for miles above 200k per car over ten years.

Point 5: VW builds $1 billion in SAE DC fast charge stations in the US over the next three years.

This plan could cost VW about $14 billion over ten years to build and sell the lineup of electric cars they have already designed -- some of which are already available for sale. It would blunt the environmental impact of the offending cars by reducing their total mileage, using them to displace worse cars, and putting new electrics into service. This plan would protect the investment of existing owners and protect the investment of VW franchise owners.

This guaranteed production of electrics will ensure that investment in electric-appropriate subassemblies, like electric air conditioning compressors, continues through today's dip in crude oil prices. The truth of large-scale electric adoption is that electric cars aren't mainstream until Magna and Bosch and Valmet and Nippondenso and ZF and dozens of other suppliers are ready.

Point 4, the clawback, will help ensure that these new electric cars are actually used on roads and displace real miles driven by gas and diesel cars. The investment in fast chargers and the economics of the claw-back could work to make these VWs easy choices for drivers with ride sharing services like Uber and in traditional taxi fleets.

The American public get a net environmental benefit at no cost to the Treasury, no cost to the highway trust fund, without a single new EPA rule, and perhaps without any action by Congress.

VW will look back in 15 years and see this as the best thing that ever happened to them in the US. VW could take these licks while establishing this as the prescribed remedy for similar transgressions by other automakers in the US and elsewhere. In three years, we'll find out that VW was not the only automaker who fudged the numbers and then we lather, rinse, repeat.


Friday, September 11, 2015

computing

I wrote recently about the search for a new machine for my daughter. She asked me for a computer of her own so that she could write LOGO programs. I'm helpless.

I considered a lot of machines -- Android tablets, Microsoft surfaces, convertible Chromebook tablets, Windows 10 portable all-in-ones, and traditional macintoshes. I finally bought her a 12" Macbook and a Raspberry Pi.

I had originally hoped that a $150 Chromebook would fit the bill but Chrome OS lost on several fronts. The $1299 Macbook is not eight times better than the $150 Chromebook but it is probably four times as good as the $249 ASUS C100 convertible Chromebook. I bought one of those and returned it with prejudice about a half an hour later. (Computer value estimations may be oddly non-transitive).

We're not really birthday people. I would normally have spent somewhere between $5 and $75 on a birthday present for a child. I did not buy a $1299 laptop because computers are important, or because STEM is important, or because education is important or anything like that. I bought it because computing is deflationary. I'm trying to ensure that good computing seems as accessible and affordable to my children as it will later be.

A mac does a lot out of the box but it's not a turn-key computing environment for children. I'm about a dozen hours into the configuration of the machine and I still think I'm in the wilderness.

My first step was to make an account for my daughter. That was easy until I got to the password. My daughter opens her bike lock with a four digit number. Does she really need an eight-character mixed-case password? No. A four digit pin number? That doesn't seem right either. Auto-login using a password she doesn't remember? This is harder than setting up the Commodore 64.

I moved on from authentication into what Apple calls 'parental controls'. Apple wouldn't let me tweak the parental controls until I made a parental account. Now I'm in double authentication purgatory. I have an authentication system for a child that makes no sense and a second credential and account for an adult that serves absolutely no purpose except for managing the child's interface.

People appear to have lots of different ideas about how to manage a child's interface. For lots of people, this seems to have a lot to do with steering kids away from Wikipedia and into the tamer wasteland of auto-playing videos at PBS Kids. That's not my deal. For some, it has to do with replacing parental supervision with an electronic screen time limiter. That's not my deal either.

I want to use the available knobs to turn the Mac environment into the kind of environment that I wish I had as a boy. The Mac desktop started out simple in 1984, but a stray click on the menu bar today brings up a translucent gray screen that tells my child that GOOG 621.35 and AAPL 112.57. Amiga Guru Meditations were more helpful. After dozens of fiddly interactions, 10 percent of the finder has been stuffed back into its bottle.

With hotkeys, gestures, and the rest all turned off, I could begin to take this machine from day planner on crack to computer. I actually think Safari is a pretty great computing environment. This
mac would become a Safari-book if Safari supported webrtc, web midi, packaged web apps, and a few of the other user-facing features that make Chrome not Safari.

I downloaded Chrome, enabled 'Developer mode' in the extensions menu, and loaded up a few
of my favorite web apps as 'unpacked extensions' from the local filesystem.

Life is now pretty good. My daughter gets many of the benefits of Chrome without a Chrome sign-in. She has local printing. She and I have a software development environment that requires only a text editor. She has, in the Macbook, one of the best computer terminals available at any price.

The fly in this ointment is bad interaction between Chrome and network restrictions in parental controls. I have beat on a dozen Chrome settings to try and get it to stop contacting Google. Every time it tries to contact Google, I get a pop-up informing me that a series of random IP addresses in Google space are blocked.

In the end, I wrote a shell script that opens Chrome at login with a command line flag that specifies a PAC. That file that steers all traffic into a nonexistent proxy. That shut Chrome up.

I went a little further and built a Chrome extension for her that overrides the new tab page with an interface built just for her.

Our prototype computing environment is a variant of the simple LOGO I built her last year.

She is very happy with the machine. It's a good size for her. It's a good weight. The USB C charging cable is easy to use. Printing works.

The machine doesn't support Common Core. It doesn't run any dedicated educational software. It doesn't eliminate paper textbooks. It is not configured for remote administration. It is not rugged. It is not synchronized with the cloud. It has no collaboration features except for a wide viewing angle.

Seymour Papert said, of computers and children, that if the child is not programming the computer then the computer is programming the child. He was right in 1980 and he's still right today. Every child deserves a personal computing environment.

I would challenge Google and Apple and Microsoft and Donald Trump and anyone who can hear me take a 'computes out of the box' pledge to build devices that offer a useful computing environment on par at least with the ROM BASICs of the 8-bit era straight out of the box without the installation of any software, without a single credential, without a wifi password, without a software update, and without a click-through EULA. Let's call it the 'RUN 2020' pledge. By 2020, we could get every major manufacturer to offer at least this much computing out of the box. We could get a computing environment available from every lock screen by 2020. Every machine would be ready to compute on Christmas morning and on the first day of school. Every new machine would be useful before the packaging was cleared away. Every working donated machine would be useful for something immediately.

This idea is hardly outlandish. Support across platforms for ephemeral 'guest' accounts is growing. RUN 2020 pushes guest a little harder and ensures that guest mode is useful. I admire and support the One Laptop Per Child. I want Every Laptop to be for Every Child next.










Tuesday, August 18, 2015

when a plug is not an endorsement

I wrote some years ago about ripping out some old Smarthome branded X10 compatible light switches. I should have kept one installed somewhere to remind me to not revisit the concept.

I'm being slowly sucked back into new ewaste items for the smarter home because the Samsung IP cameras I recently installed appear to be working happily. I was excited that I could bypass their apps trivially without ever downloading them.

The latest device to follow me home is a 'Wi-Fi Smart Plug' from D-Link.

The device is a surprisingly bulky box stuffed with a power board and a daughter board. The power board has the high-voltage side of the power supply for the electronics, a relay for controlling a load, and a PL8331 energy metering IC from Prolific.

The daughter board holds the Atheros AR1311 and the flash that make the box a computer. These parts also make the smart plug essentially indistinguishable from any of a thousand other products from a hundred other vendors all built on the same platform.

A clever soul posted a simple script to bypass all the appery associated with this gizmo but it may have been too much to hope for two purchases in a row to work out. I bought this gizmo at Micro Center. I don't know why I even go in that store. If there are two variants of a product in the wild, Micro Center is guaranteed to have the wrong one. If you want the vulnerable one, they have the patched one. If you want the secure one, they have the vulnerable one. It's all the proof I need that the LHC will find a luck particle someday.

My guess is that only the vulnerable devices were marketable and the demand for these boxes cratered one D-Link shipped one not worth making work. Perhaps Micro Center got someone else's overstock cheap.

Other intrepid souls have pursued the matter further. If I may paraphrase Newton -- if I have seen less far, it is because I could not be bothered to climb up to the shoulders of giants. This box goes straight to recycling.