I wrote last time about my experience with a bad iPad mini keyboard. I talked a big game about dumping it in the ewaste box but it didn't actually make it there until yesterday. It's not coming back out.
Unfortunately, the matching iOS app 'Prompt' can't actually be physically thrown out so easily. The combination of poor keyboard, poor app, and beautiful iPad left me in actual tears for a moment yesterday. That's when my position on Apple vs. FBI changed totally.
I had been vaguely pro-Apple in the San Bernardino dust up. I thought that Apple had been too slow to adopt a real secure element and that they would wind up helping the FBI. It would then fall to them to never got caught in that situation again.
My new position is simple. Manufacturers shouldn't be made responsible for the programs or data in computers. Manufacturers should not be compelled to speak -- through programs or through generating non-repudiable signatures for another's programs. A consumer or a court can easily tell if an electronic device is this kind of computer. A computer allows the owner or user to load any program or data they choose without qualification or restriction. Computers have manuals, specifications, or program source codes that describe their operation. Period. iPhones and iPads are not computers.
A compound electronic device may contain a computer available to a user. Examples include computing systems comprising a kernel and user environments where the manufacturer restricts the ability of a user or owner to load new kernel programs or certain user programs. Here, the user environment may be protected. If the vendor restricts the loading of new kernel programs or data through digital signatures, through other technical measures, or through failure to furnish a manual, spec, or source then let them comply with arbitrarily fanciful orders for those portions of the system which are not a protected computer.
An AVR-based Arduino? That's a computer. A Commodore 64? That's a computer. A Thinkpad? That's not a computer. The Libreboot x200 (itself a remanufactured Thinkpad)? A computer! Today's Tivos? Not a computer. Today's smart fridges? Not computers. Essentially everything in the IoT? Throw it all under the bus.
If a company wants to sell you a walled garden -- then let it be known that there will be snakes. A company that actually respects your privacy will sell you a real computer.
Phones and telegraphs have been monitored almost since their invention but the specter of typewriter registration in Ceausescu's Romaina remains morally repugnant almost without reservation. Smartphones with signed firmwares are no different than telegraph lines. Real computers represent the typewriter and freedom.
I dare Congress to pass legislation forcing manufacturers to help with electronic devices. Provide an exception for true computers. Protect the right to build and sell true computers. Allow manufacturers to 'upgrade' devices to true computer status by publishing specifications and keys instead of complying with orders. Then I dare Apple and everyone else to build and sell us those computers.
Richard Stallman has had this part right all along. Who knew that a terrorism investigation, not a DRM lawsuit, would be the best test case in a generation?
Wednesday, February 24, 2016
Friday, February 12, 2016
reograph: backlog two
Reograph lightning review: ZAGG Rugged Book Case for iPad mini
Do not buy.
Did you get an iPad mini for Christmas instead of a cheap and chunky Chromebook? Don't worry. For only a few dollars more than the cost of the cheapest Chromebook ($99), ZAGG will sell you a poorly made 'rugged' laptop-type keyboard case for your iPad that will have you exchanging homemade candles instead of electronics for Christmas for a decade.
The box claims a year or more of battery life. Good news. The Micro-USB charging jack on mine is so poorly aligned with the rubber surround that I wouldn't want to charge it more than about once a year. The whole thing is a rubbery iPad case, some magnets, and a rubbery iPad keyboard thing that merge into a two-part iPad laptop Voltron deal. We're not talking spaceship Voltron. We're not even talking lion Voltron. We're talking 'Voltron Off Broadway' pantomime horse Voltron. It assembles in a variety of ways.
Mode one is Cheap Laptop Mode: The one key is smaller than the two key. Plus doesn't get its own key. Making a pipe symbol takes three keys. On the other hand, literally, tilde also takes three keys. RSI risk is one thing. This keyboard makes the UNIX gods very angry. You risk their wrath when you bang on this keyboard.
Mode two is 2001: A Space Odyssey Mode: The keyboard folds to cover the screen. The assembly resembles a slightly rubbery monolith. This mode is where the ZAGG Rugged Book Case shines. It appears totally inert. Mine may have sent a bluetooth signal in the direction of Jupiter (or Saturn, if you're _that_ kind of Clarke fan).
Mode three is Reverse Cowgirl Mode: The iPad pops off, turns around, and pops back on facing away from the keyboard. I think some other tablets call this 'tent mode'. I can see that. The difference here is that the keyboard remains fully armed and ready for something to fall on the delete key and eat your entire product review. Most of the other tablets have the decency to shut the keyboard off when they know it makes no sense. The ZAGG could easily have detected the orientation of the iPad and turned the keyboard off. It doesn't.
Small Chess Playing Dwarf Mode: This is exactly the same as Reverse Cowgirl above. The difference is that you hide behind iPad screen and type messages on the keyboard to the delight and amazement of your audience. The larger iPad Air version of the case probably works better for this mode unless you can really scrunch yourself down.
WTF Mode: Here, the still active keyboard folds behind the iPad. You hold an assembly about four times as thick as a regular iPad. The on-screen keyboard will not appear because you have a paired, active, bluetooth keyboard hidden behind the screen. The power key to turn the keyboard off is also hidden behind the screen.
St. Denis Mode: Here, you rip off the keyboard assembly and chuck it in your bag. Then you pull it back out of your bag when you realize it is still paired. Then you turn it off. Then you chuck it back in your bag. Then the unprotected power key is hit and the rest of the ewaste in your bag presses the delete key and nukes your entire sinful Valentine's Day letter. St. Denis is said to have carried his decapitated head under his arm for a ten kilometer walk while preaching repentance all the way. With the ZAGG, the disembodied keyboard can actually repent for you while you walk. Handy enough.
My ZAGG came in a box packed with the manual, in English and French at least, that was actually for a similar product for Samsung tablets. From what I can make out, only the French portion of that manual actually references St. Denis.
Ewaste Mode: This is fast becoming my favorite. Here it sits in your ewaste box. The unprotected power switch and the non-removeable battery that lasts an entire dog's adolescence means that you had better unpair your iPad or you're in for a up to a year of random keyboard events.
Do not buy.
Did you get an iPad mini for Christmas instead of a cheap and chunky Chromebook? Don't worry. For only a few dollars more than the cost of the cheapest Chromebook ($99), ZAGG will sell you a poorly made 'rugged' laptop-type keyboard case for your iPad that will have you exchanging homemade candles instead of electronics for Christmas for a decade.
The box claims a year or more of battery life. Good news. The Micro-USB charging jack on mine is so poorly aligned with the rubber surround that I wouldn't want to charge it more than about once a year. The whole thing is a rubbery iPad case, some magnets, and a rubbery iPad keyboard thing that merge into a two-part iPad laptop Voltron deal. We're not talking spaceship Voltron. We're not even talking lion Voltron. We're talking 'Voltron Off Broadway' pantomime horse Voltron. It assembles in a variety of ways.
Mode one is Cheap Laptop Mode: The one key is smaller than the two key. Plus doesn't get its own key. Making a pipe symbol takes three keys. On the other hand, literally, tilde also takes three keys. RSI risk is one thing. This keyboard makes the UNIX gods very angry. You risk their wrath when you bang on this keyboard.
Mode two is 2001: A Space Odyssey Mode: The keyboard folds to cover the screen. The assembly resembles a slightly rubbery monolith. This mode is where the ZAGG Rugged Book Case shines. It appears totally inert. Mine may have sent a bluetooth signal in the direction of Jupiter (or Saturn, if you're _that_ kind of Clarke fan).
Mode three is Reverse Cowgirl Mode: The iPad pops off, turns around, and pops back on facing away from the keyboard. I think some other tablets call this 'tent mode'. I can see that. The difference here is that the keyboard remains fully armed and ready for something to fall on the delete key and eat your entire product review. Most of the other tablets have the decency to shut the keyboard off when they know it makes no sense. The ZAGG could easily have detected the orientation of the iPad and turned the keyboard off. It doesn't.
Small Chess Playing Dwarf Mode: This is exactly the same as Reverse Cowgirl above. The difference is that you hide behind iPad screen and type messages on the keyboard to the delight and amazement of your audience. The larger iPad Air version of the case probably works better for this mode unless you can really scrunch yourself down.
WTF Mode: Here, the still active keyboard folds behind the iPad. You hold an assembly about four times as thick as a regular iPad. The on-screen keyboard will not appear because you have a paired, active, bluetooth keyboard hidden behind the screen. The power key to turn the keyboard off is also hidden behind the screen.
St. Denis Mode: Here, you rip off the keyboard assembly and chuck it in your bag. Then you pull it back out of your bag when you realize it is still paired. Then you turn it off. Then you chuck it back in your bag. Then the unprotected power key is hit and the rest of the ewaste in your bag presses the delete key and nukes your entire sinful Valentine's Day letter. St. Denis is said to have carried his decapitated head under his arm for a ten kilometer walk while preaching repentance all the way. With the ZAGG, the disembodied keyboard can actually repent for you while you walk. Handy enough.
My ZAGG came in a box packed with the manual, in English and French at least, that was actually for a similar product for Samsung tablets. From what I can make out, only the French portion of that manual actually references St. Denis.
Ewaste Mode: This is fast becoming my favorite. Here it sits in your ewaste box. The unprotected power switch and the non-removeable battery that lasts an entire dog's adolescence means that you had better unpair your iPad or you're in for a up to a year of random keyboard events.
Wednesday, December 16, 2015
pour over
I filled the carafe of my coffee maker with ten cups of water. I put 60 grams of Finca Mauritania into an unbleached #4 paper filter. Then I poured the carafe of water straight into the hopper of my Mazzer Super Jolly coffee grinder. Oops.
I disassembled most of the machine, dried it, and then put it back together. I ran it for about 20 minutes to dry it out. This was not enough to keep moisture from rusting the upper bearings over the course of the next week.
The District of Columbia offers many things. Large birds are returning to the Anacostia. Organic produce abounds. Chocolate and gin are made in DC mere blocks apart. Beards are omnipresent. Despite this bounty, the District of Columbia remains a bearing desert. I couldn't find a stocking dealer of the necessary 6202-2Z bearings anywhere in the city.
Amazon came to the rescue with a pair of suitably Italian SKF bearings. The padded envelope slipped right through my mail slot this afternoon. The grinder was purring an hour later.
I don't know if bearings and fellow travelers can be reintroduced to DC with any less effort than it took to bring ospreys back to the Anacostia. I wonder often if DC can support the kind of specialty retail trade that it takes to support hardware needs beyond the fastener aisle of the local hardware store. I wonder how to start. My current thinking is that DC could certainly support a few arduino/maker/hacker vending machines. I would certainly use them.
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.
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.
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.
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.
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.
Subscribe to:
Posts (Atom)