a glob of nerdishness

February 25, 2012

A new old bloggishness

written by natevw @ 10:22 pm

After years of threats and murmurs I’ve finally replaced this here thing with a new version of itself. It has a simpler engine, and an updated look, and a new URL. But it’s still just a glob of nerdishness.

I hope you’ll update your feed subscription to http://n.exts.ch/?format=atom for the most uninterrupted service.

Oh, and if you’re reading this, my sincere thanks for tuning in! Feel free to say “hi” over in the comments; long ago I forgot how to view visitor statistics on this host and have had to write like nobody/everybody’s watching ever since.

January 17, 2012

The web is its own platform

written by natevw @ 1:57 am

Web apps are not cross-platform apps.

If the battle is whether Apple’s tools or HTML5 is the best way to write iPhone apps, whether Google’s frameworks or HTML5 is the best way to write Android apps, whether Windows Presentation Foundation or HTML5 is the best way to write Windows apps — my money’s on “native” in any and every case. Some developers aren’t as bothered by oppressive distribution policies as they are by the differences between platforms. They see JavaScript as the new Java — write once, run anywhere — and see generic-but-native-looking HTML5 apps as superior to the native apps they mimic.

The trouble is that users don’t value “consistent across platforms”. Why would they? They expect consistency within a platform. Developers who look at web apps as a “cross-platform solution” because of “HTML5″ do themselves a double disservice: not only do they devalue their own app by making it subtly inconsistent to native iPhone apps, they devalue the foundation they’ve built upon by muddying the web’s unique consistency.

Interestingly enough, it was Apple’s experiments that in large part sparked what we now call HTML5 — even before they tried to pitch web technologies as the iPhone SDK. Their 2004 introduction of Tiger’s new WebKit features, and their use in HTML-based dashboard widgets, was not uncontroversial — especially the debut of the <canvas> element. The controversy was not just about a browser adding this new element ahead of the standards process, but whether its nature fundamentally fit the web.

This wrestling may have been too quickly forgotten when the zeitgeist turned to The Web vs. Flash. Which one did we want in our pockets? Which one would we allow into the App Store? (We know who shot a rather rich mixture of fuel across that flame too!) Cute young <canvas> livened up that party, while the more web-ish SVG kept faithfully raising the children back in her own namespace.

Now APIs for 2-dimensional, and perhaps someday 3-onto-2-dimensional, drawing at such a low level as <canvas> provides is one of the most native-ish things a sandboxed web page could hope to ever do. But what distinguishes <canvas> from Flash? Very little as far as the topic at hand — the user experience may certainly benefit indirectly from an open standard implemented by competing vendors accessible from the same code that manipulates other document content, but its fundamental direct nature is one of a rectangular garden in which every website may try to plant its own reimplementation of superficial patterns and behaviour borrowed from hither and yon.

Like Flash, <canvas> is a useful medium for games. Games are their own platform. There are certain habits in game design; one of these patterns is that every game paints its own interaction. The Web, too, is its own platform!

Should the web platform shun games as one of its many contents? Certainly not! The web is a platform for content — perhaps the platform for content — and I’m beginning to suspect that that is exactly how a web *app* should look and behave as well. And not just any content, but linked content. Hyperlinked hypercontent for hyperconnected hyperhumans.

Raw pixels do have a place in that, as do video and audio and maps and molecule models.

You may recall me puzzling, in my early days of transition from desktop interfaces, at the attraction of building “apps” on what began as the physics paper platform. Just as physics is discovering what a tangled web may lie beneath their spherical cows of uniform density, it’s becoming harder and harder to ignore just how revolutionary “sharing within internationally dispersed teams” was even just for some academic information. And the web was never intended to be limited to a single format, so the idea of applying it — finding applications of it — building web apps for any task that can be turned into information, is not unfounded. Because of the web, any part of our lives that can be turned into content is limited only by the velocity of its light cone and the weight of its incoming links. It’s a powerful, powerful platform.

(The web’s other attraction is not unique to the web: any medium seems to gather a healthy school of builders who may not understand the first thing about foundations but are willing to keep bracing lumber together until they find an arrangement that’s worth tying a rope swing beneath. However, the web platform is actually especially conducive to this; how many of us don’t look back fondly at the first tree forts we built, that were our early homesteads in this great forest?)

So what is “native” to the web? Cloning every desktop and mobile operating system into a least common denominator cross-platform app framework has failed before, and it will fail again. I even see a very low return on investment trying to mimic the design patterns and interaction behaviours of only The Mac (or the iPad, for that matter) with the new tools HTML5 has given. The Macintosh interface was designed for specific hardware and a rather earlier period of transition. Not to mention, its modern implementation has much deeper consistencies and broader features than the different 80% each one of us relies on, which varies whether we’re keyboard people or mouse people, know Emacs meta shortcuts or copy/paste, have a multi-button scroll mouse or prefer a braille display. A web app’s best bet is not to pirate these patterns, like a camcorder snuck into a matinee, but to embrace the medium of hypercontent it’s been given.

That’s really what the web is: important information, flexibly found and presented, easily shareable via links. Since the web is not the world, people need specialized means of integration between their lives and whatever information they care to share by projecting it into existing and still-missing forms of content. Making that better is what web apps are.

December 5, 2011

Beyond 1984

written by natevw @ 4:08 pm

A few weeks after writing that personal computers are no longer quite what they could be, I came across an article declaring that The Personal Computer Is Dead — with the implication being that this is not quite what it should be.

Jonathan Zittrain, in this article (which you should read) and in his book (which I should read), argues that a society in which a few corporations completely control our devices in the name of security, and to better serve their profitholders — that a society which allows that will ultimately end up an un-safe, and un-growing, society. So we should be building up and building on platforms that don’t discourage freedom and sharing and other similarly unpatriotic ideas.

Which is half, but not the better half, of my little Beyond 1984 project.

I’m tempted to say the other half is about homeland-warming things like such as in money making and consumer happiness. But that’s a cynical take. The other half is about putting away cynicism. We already have Zittrain’s “angry nerds”: they’re the Stallmanites, the cypherpunks, the anarcho-pacifists and other tinfoil-hat flouride-fearers that you’d never want at your company Christmas party.

Angry nerds? Angry nerds are a dime a dozen! We’re the solution to what exactly now?

Meanwhile, Twitter’s repressed are excited that maybe Google+Path can re-centralize the violence inherent in Facebook — O frabjous day! And if that’s already more than what 99% of computer owners care about, it’s certainly not the world’s richest 1% who are going to patronize the development of a free society either.

So the other half of going Beyond 1984 is going not so much by avoiding what’s wrong with the Orwellian but by embracing what’s good. Embracing well-distributed, privacy-respecting, citizen-empowering hardware and software designs may be a worthwhile goal — or maybe not.

I don’t imagine anger, or fear, or even schadenfreude, can inspire much great industrial design. Angry nerds like me need to go beyond building systems that are Anti-Ungood. Going beyond what 1984 represents will require abandoning those themes ourselves.

So that’s what this little Beyond 1984 project is: researching libertarian technology, if it could be built for healthy reasons.

October 20, 2011

Creating a self-signed S/MIME certificate for Mac and iOS 5 email

written by natevw @ 12:43 pm

Today I needed to send some passwords to someone over the internet again. The recipient recommended using PGP/GPG to send an encrypted email, but unfortunately that protocol appears to be quite a hacky hassle if you use the built-in email clients on Apple’s (and apparently Microsoft’s) platforms.

Fortunately, iOS 5 just added support for a more standard protocol called S/MIME, and so I had recently come across a nice article on setting up secure email on both Mac OS X and iOS 5. Since I mostly want S/MIME for email encryption rather than signing (there’s a good overview of the distinction on its Wikipedia article) I decided to just create a self-signed pair rather than procuring a certificate from some annoying, overpaid and insecure centralized certificate “authority” as that article recommends.

Creating a self-signed S/MIME certificate is actually very quick and relatively easy using the Keychain app that comes with Mac OS X, but I wanted to document the process as getting a certificate that Mail recognizes did require overriding at least one of the assistant’s defaults:

Update: Turns out Mozilla Thunderbird will not accept the certificates generated through this process. I’ve had success by creating a standalone personal certificate authority and then using that to sign a user-only certificate. I need to test it a bit more before writing it up here, but it might be a bit simpler process in the end.

  1. In the Keychain utility application’s menu, choose “Create a Certificate…”:
    Self-signed S/MIME certificate creation, figure 1
  2. I had to override the defaults primarily so I could include my email address necessary for Mail.app to use it:
    Self-signed S/MIME certificate creation, figure 2
  3. Confirm that self-signed is okay
  4. I just accepted the default serial number (1) and validity period (365 days)
  5. Then the part where you enter (at least) the email address you want to use this certificate with:
    Self-signed S/MIME certificate creation, figure 3
  6. For the actual keypair, I went with DSA mostly just because:
    Self-signed S/MIME certificate creation, figure 4
  7. I unchecked all the certificate metadata stuff in the next 4 steps, you can try playing with it but didn’t seem worth the complication:
    Self-signed S/MIME certificate creation, figure 5
  8. Then just have the assistant create it in your login keychain unless you have some different setup. It will take a bit to generate the keypair.
  9. Once it’s created you’ll need to find the certificate and double click it…
    Self-signed S/MIME certificate creation, figure 6
  10. …so that you can manually trust it for at least S/MIME:
    Self-signed S/MIME certificate creation, figure 7

Once you’ve done that, you’ve taken care of the “The Certificate” step and can just follow the rest of the instructions in Ars Technica’s “How to secure your e-mail under Mac OS X and iOS 5 with S/MIME” article using the certificate you created instead of one from some corporation.

There is one major drawback to a self-signed (decentralized) certificate. As you’ve seen yourself after creating your certificate, it will not be trusted by default — only several dozen corporations and governments and rogue nations are trusted to forge certificates; you are not on any platform’s pre-approved issuer list. So: after you give your public key to your email contacts (as will be necessary for them to decrypt your messages) they will have to repeat steps 9 and 10 above to manually trust your self-signed certificate on their own machine.

July 2, 2011

Parting questions for PalmHP

written by natevw @ 2:51 pm

To be clear, I LIKE webOS and want it to succeed. :/
Steven Frank, 2011 July 1

One of my first memories of Palm’s new “New Palm” thing was when they were in the papers every month for making their first webOS device pretend to be an iPod. For USB syncing purposes. Clever way to get some free advertising from MacRumors, but you know what? I hate what iTunes has become and loved being able to just drag and drop MP3 files onto my Palm Pre 2.

Anyone wanna buy a Palm Pre 2?

I tried to love it, just like how for years I’d been trying to love the heavy, bulky reel mower I also bought online. It’s good for the ecosystem, it’s got some very very nice qualities designed into it…

I’ve decided I don’t like either the lawnmower or the smartphone. And while I don’t need perfect landscaping in an efficient amount of time or energy, with greater responsibility at work comes greater need to join the same technological century as the rest of the world. Even though I’ve owned a Palm Pre 2 since last December, it’s never felt okay nor have I had room for it on my person. Thus it was not until this week that I became a cellphone person.

More honestly: I am now an iPhone people. It seems like such a silly insignificant change to go from having an iPod touch always in my pocket to an iPhone always in my pocket, but for me it is a defeat.

When something fails I wanna know why. So here are some poignant, probing questions that will magically make Palm/HP awesome again:Good questions are hard please read the following rants instead:

  • what’s with the HP logo when my phone reboots? The original palm wordmark was a reserved, artistic logo. The new .(h|p)*…thing is a glowing gradient of a corporate wart that only calls all the nice things the Palm people have said about their acquisition into question.
  • for example. why is “http://h41112.www4.hp.com/promo/webos/us/en/smartphones/pre3.html” the URL for the Palm Pre 3 (and why is it down while I’m trying to gather info for this post?)
  • why is the Palm Pre 3 still only [no worky web page, no getty authoritative tech specs...] X millimeters “thin”-ner than the mainframe computer I am typing this on?
  • why does it still have a stupid slidey keyboard thing that I could never shake the feeling would remain in my pocket when I accidentally pulled out only the other half?
  • why, after I really really really wanted to love my Palm Pre 2 but couldn’t, am I now completely uninterested in any incremental non-improvement you’ve not really made at all since then? Since the very first Pre?!
  • I know HP used to be a great company and all, but can you please just license the poor operating system that still somehow shows the most spectacular promise of being potentially both usable and open, try taking it and licensing it to a company that might actually be capable of combining it with some decent hardware before it’s too late?
  • and also: I said “potentially spectacular” operating system, not “actually spectacular”. Pls to put a hard-driving perfectionist in charge of software. No more Mr. Nice People, otherwise only Mr. Nice People will be able to say Mr. Nice Things about the promising prototype-grade rubbish you keep. shipping.
  • Buying an iPhone was a defeat because now i’mStuck with iCloud instead of a Synergy plugin that could talk to data on a server I control. Now i’mStuck with iStore monopolies instead of your fun official instructions for owning the device I bought. Now i’mStuck with the same iPhone that everyone else and their soccer mothers all sport like a luxury item because a truly useful phone still is — and it’s cheaper than yours!

    But the saddest thing about it all is that this sticks me with an even better web browser — w00t! — than I got on a platform called webOS. So even while Apple keeps shoving native adults into a sandbox, they’ve also been pushing web technologies up towards where I suspect native vs. web will meet: the same amount of power, but on the latter: the freedom to innovate that only a real platform can provide.

    The web is the only tool developers have left. I feel defeated because it’s not thriving as or even on anyone else’s operating system and I don’t know what that means.

    June 26, 2011

    The Continued Adventures of ShutterStem

    written by natevw @ 12:33 am

    The working motto is that ShutterStem is “trying to make taking photos fun again”.

    And it’s this nebulous dream, and that’s okay for now.

    Some moonbeams for holdy paws:

    • so iCloud is a relief. I doubt they even sync metadata, but at least Apple finally woke up and realized that they needed to do something about the iMac sitting at home not being useful most of the time.
    • sync was gonna be the killer feature that made the world beat a path to ShutterStem’s door, but giving everyone a private server without needing everyone to be a devops ninjas and/or having to make hardware etc. etc. is a Hard Problem even with a CouchDBs at ones’ disposal.
    • so it’s nice that iApple have tackled the low-hanging fruit and the 90% may soon have something practical, useful, and just works, while still meanwhile I “trying”
    • what is an ShutterStem? then?
    • the medium-term goal is just a collection of tools that shows off why I heart CouchDB and how it can help a small niche of photographers who insist on doing some things the hard way (=my dad and me and you if you want) get things done a little more easily and better…ly
    • so you’re rewriting stuff again and this will never be finished?
    • probably? look. this is not just an audacious dream of a platform for photos, but it is also a platform for a bunch of audacious ideas about how the web should just connect people to extensions of their own selves and to extensions of each other, rather than be the warrantlessly searchable home of all our eggs in one basket. this kinda stuff takes time, filing out all the paperwork through the proper channels and whatnot if you aren’t impressed with ill-fated shortcuts

    French Revolution?! Where were we. Oh yeah…

    • photos fun again?

    So I’ve had this vague notion that my photography hit some something and then wasn’t fun anymore. That’s really all this little ShutterStem hobby is about…playing with the slightly more “revolutionary” side of some neat technologies to somehow somewhere get back to the days where I were outside taking pictures that were fun to look at again and again. It doesn’t matter that App Stores are evil or any other stupid politics… I just wanna help make some photo app that kinda surprises and delights even in its nichey nerdishness.

    So what’s the wall, where maybe should I push for revolution?

    I wonder if it’s…if it is related to my capacity for mental inventory? I have a bunch of gadgets…but I know where each one is, and all its accessories. I have piles of books…but I can picture each one on the shelf in my head. I have tons of deadtree and digital documents…but I can generally track down the one I’m looking for. I even know where, within our two-year old’s scattered arsenal of real and supposed toys, the better part of half our kitchen utensils likely lie….

    But I might as well be backing up a bazillion blurry photos, because that’s the haystack that one day my brain stopped looking for needles in. And I wonder if that’s when photos stopped being fun?

    So besides being OpenDoc, besides being Unhosted, besides being W3C or RFC-worthy or maybe instead of any of all of that, ShutterStem just needs to help me [help anyone] INTERNALIZE THE INVENTORY. Helping as only computers can help. ing.

    • Q. Does that mean I’m starting over with yet another prototype(s) instead of shipping some sort of v1.1?
    • A. Meh.
    • If you’re sticking along for the ride I’d hate to bore you.

    March 4, 2011

    Not embarrassed

    written by natevw @ 11:14 pm

    When you’ve been taught that shipping an embarrassing “version one” means you shipped early enough, then it’s hard to be embarrassed by such a release.

    On the self-imposed deadline of February’s end, I called the progress I’ve made on ShutterStem so far and named it “version one”. By the time I got around to actually tagging the “1.0″ release in version control, the source code had already gained an additional contributor with support for an additional version of OS X. And a bit of documentation.

    Two months ago I had whittled down the insurmountable task of going from version 0.1 to version The World Is O’ertaken, into a outline of requirements in an otherwise empty repository branch called “take_two”. These requirements focused on a primary metabolism of the amateur photography workflow: breathe in, pick images to share, breathe out.

    It’s interesting to see how version 1.0 differs from its original requirements; projects always do and are often better for it. It’s less fun to see what suffered for the deadline. Hence the “early enough”: it sets up like a <artistic analogy regarding difficulty>, it looks like a <deprecating humor regarding homeliness>, and certain parts got shipped in a <one hundred percent half-assed state>.

    But it works.

    I was sitting around the house one evening, pouting about how pitiful my project was as I used it on an iPad. My wife was nearby with her laptop, helping me collect images into baskets. Organizing the same photo library, via completely different devices, over only the local network. The mainframe across the room was no longer just a big hard drive behind a big screen, but also a server — and not even the server! — as we relaxed over on the couch and enjoyed paging through photos together.

    I think it’s got a shot.

    May 19, 2010

    HTML 5.0 Transitional

    written by natevw @ 9:18 pm

    Today I officially accepted a full-time job as “Web Application Developer and GIS ExpertJourneyman” — employee number seven — at &yet. Since meeting &yet (when it was just Adam Brault) a little over a year ago, it’s moved in my regard from “cool local website company” to “top-notch team” to “dream employer”.

    To be honest, though, the job offer was mostly unexpected and I’m still adjusting to the task of becoming “dream employee” instead of an independent contractor. Writing shareware for Calf Trail was a chance to explore all my ideals. Especially the one about money not being important. Working with &yet is about combining diverse talents and perspectives into one team that shares responsibility for breadwinning — and fantasticmaking, of course.

    I’m deeply grateful that I’ve been led to and then given this opportunity. While desktop software still interests me as a hobby, times were shifting and I’d already chosen the open web over giving 30% ownership of my livelihood to a corporation who squish liberty like bug. Joining &yet mostly means a much greater chance of success in this next stage of life.

    We’re still working out the details, but the basic gist is that I will be moving all my paid geo, web and technical writing services to &yet. Calf Trail will remain, for the time being anyway, but mostly as a home for some desktop and photo management experiments. (More about that later, and I’ll be posting the official “Calf Trail” plan on the company blog when Calf Trail has an official plan.)

    So, yeah…uh…that’s today’s nerdishness news. DRAMATIC CLOSE

    February 14, 2009

    Why sync still stinks

    written by natevw @ 5:24 pm

    Antonio Rodriguez, of the excellent Tabblo service fame, asks “Why does sync still suck?” without giving an answer. Sync is going to become more and more important as we use more software on more devices from more places. I’m a little hesitant to say this, because a) it might be only true for us nerds in our gadget-filled bubbles and b) Internet access may soon become completely ubiquitous for said nerds. But if the nerds ever figure out sync they’ll be really eager to share it with the rest of the world.

    It’s frustrating that sync really belongs in the operating system, or even in standards above the operating system level, but for various reasons even where it is present it’s tough to really justify the extra pain of working with it. Apple does have a system framework (Sync Services) that is available to third party developers, but it is not designed to handle large chunks of media. It can’t be used to sync with iPhones, and MobileMe’s continuing bad reputation gives it a bad stigma as well. Maybe Microsoft has their own solution, but it probably has its own problems and certainly wouldn’t be compatible with Apple’s, or Google’s…

    To answer Antonio’s question: Sync still stinks because file formats still stink and file system models still stink. And, in practice, the web hasn’t solved many of the underlying problems either. Standard formats lead to stagnation, proprietary solutions lead to fragmentation. File systems are stagnant, and file formats are usually fragmented. I’m very interested to learn how these difficulties can be overcome, but after so many years of not solving these problems, I don’t expect it will be easy.

    January 12, 2008

    Bookmarking with del.icio.us: Now I’m a believer.

    written by natevw @ 6:08 pm

    I’m almost embarrassed to admit it, but I just registered at del.icio.us, the socially/taggy bookmarking site. Why it took so long, I don’t know. Years ago I heard about it but wrote it off as some fad. Why would I want all my bookmarks online anyway?

    Since then I’ve switched operating systems (which to my mind happened in the distant past!) and switched browsers and gotten my first modern laptop. I’ve also begun to realize what information overload means, but still don’t want to lose recollection of great sites that might have taken a bit of serendipity to notice in all the noise.

    I had already given up using the built in browser bookmark folders. (I do use the bookmarks *toolbar* for more frequent destinations.) I’ve got no idea how to categorize something as chaotic as my web surfing in the first place, and any method I pick just gets so messy. The static nature means that things stay in place long past relevancy, and I’m bad at knowing when that time has come. Now that I’m using both a laptop and a desktop they would never be on the right machine anyway. Not to mention the quandary that came about when I started this blog: “Do I have anything worthwhile to say about this link, or must I keep it to myself?”

    Del.icio.us seems to tackle all those problems. When I bookmark a link, I’m also sharing it. By nature of their centralization, I can access them from any machine I’m on. (As a friend pointed out, “the cloud” is a great place for bookmarks since you need web access to use them anyway.) Like a blog, there is a timeline element so that recent bookmarks are up top while older ones can fade away. To top it off, the semi-habitual yet often-random nature of web safari trophies is an excellent application for tagging.

    I hope to eventually make this blog format less disgusting. When I find the time to take the ugly out, integrate with the rest of the site and organize to suit my personality — someday, someday — I hope to include this new discovery into the mix. Until then, feel free to follow my bookmarks as I settle in to a new groove.

    Next Page »