Wednesday, December 10, 2014

Evernote, Forevernote, Nevernote?

I write a lot of things down, most of them on a computer. What I’m writing on a computer usually falls into one of several fairly typical categories:

  • Brainstorms
  • Plans
  • Lists
  • E-mails
  • Software

I wish I could add essays and fiction but I’m not there just yet. And I do keep something vaguely like a journal, and something like a studio notebook, but those are done with pens on paper and thus, as we say, out of scope. I might yet get around to regularly blogging or otherwise writing for the web, but I’ll burn that bridge when I come to it.

So, back to my categories. Let’s start from the bottom. Software, for me, lives in GitHub as long as it’s my own software. If it’s work for hire then I’m not at liberty to say where it lives. And most software is written in an editor of choice. When the choice is mine it’s usually TextMate 2, otherwise it’s usually XCode; and of course Vim is the fallback. Thus you could say that the software-writing problem is solved, for better or for worse.

I would say the same about e-mail, though here most technically minded people would aggree that “for worse” applies. I write my e-mails in Apple Mail and that’s unlikely to change. If I were a Windows user I’d probably use Outlook, and if I were on neither I’d probably use a mix of Thunderbird and something like Pine. I’ve used all of these as my primary e-mail client at some point; I’m not a Gmail type, nor do I “glass”, nor do I drive a Segway. Call me old-fashioned, or say I have a modicum of taste, or ride into the sunset on my color TV screen. As you like.

At any rate I, like most people who write software and e-mails, am sufficiently invested in my current workflows that it would take something fairly revolutionary to make me switch.

The next thing up my list is a different story: Lists! How do I list thee, let me list the ways! As banal as it might seem at first glance, list-writing and list-managing and list-using are all basically unsolved problems that are perfectly suited to software. And because nobody has really solved these problems together in a universally good way, and because they look on the surface like simple problems, there are lots and lots of computer programs that try to help you with your lists.

Most of them, as far as I can tell, are concerned with the subgenre of To-Do Lists. Among those, one of the most established and probably the most comprehensive is OmniFocus, and I have used it for years. I bought their Mac software and their iPhone software and their iPad software, and thanks to Apple’s dislike of “upgrade pricing” I may well buy them all again.

OmniFocus is GTD-oriented but it works for generalists just as well. I think it’s fair to say that OmniFocus was built for, and is championed by, people who have resigned themselves to always having large and complex To-Do lists, and in general to being “busy people” in a way that involves, or at least should ideally involve, lists. I may be such a person, and that may be a good thing, or maybe not and/or not. That’s a topic for a more philosophical blog post in The Future.

Over time I developed a serious problem with OmniFocus: it was such a good program for “capturing” (writing down) list items that I started keeping all my lists in it, not just my lists of actionable To-Do items. That was very much not the intended use of the program, and the user interface frequently reminded me of this fact.

Let’s move further up my category list: more trouble arrives with Lists. My List-Landfill slowly morphed into a Plan-Landfill: I was using OmniFocus as a project outliner, again because it was so easy to put things into it. But a Plan-Landfill – Plandfill? – is a dangerous thing. After all, these are plans! Things to be realized! Not things to be forgotten!

So after a year or so of this I decided to move the plan-writing to OmniOutliner, which seemed like just the ticket. And I suppose it might be, but I couldn’t warm to its look and feel, and its file format and export options were adding complexity where I already had enough.

Meanwhile I was still using my favorite text editor, TextMate 2, to do most of my Brainstorm writing –- the top of my writing pyramid, or column at least. I would write things in Markdown, and when then got too long or needed images or diagrams I would break them up into messy directories of Stuff.

That is, when I wasn’t further abusing the OmniGroup by mixing up my brainstorms and my plans and my lists in OmniOutliner and OmniFocus. Oh recidivist I!

Eventually it dawned on me, like sign language on a chimp, that I was overcomplicating things and that none of this would ever “scale” or for that matter remain useful five or ten years down the road.

As it happened OmniFocus had just been upgraded, and it would cost some money to re-commit; and I had been growing weary of their sync service that almost never worked with my iPhone (I had to re-download my whole database several times a week). So I decided to try something new.

Enter Evernote.

But wait: first, enter Wunderlist. It occurred to me that the best way to stop overusing OmniFocus was to use something else for my To-Do lists, and there was a new startup on the block with a well-reviewed and simple app. As a bonus they are based in Berlin, as am I (more or less). Wunderlist’s business model seems to be team collaboration and subscription revenue, and they’re doing a good job as far as I can tell. As usual, I digress: Wunderlist will be the subject of Yet Another Future Blog Post.

Enter again: Evernote.

The promise of Evernote is to be, like Yojimbo before it, a catch-all information organizer. Only modern. On all the smart devices, in the “Cloud,” and so on.

This works pretty well in practice. You have “notes” (documents) which are organized in “notebooks” (which can be nested), and there’s some basic tagging support and some interesting takes on organizing it all in the UI. Notes are more or less rich-text, but can have quite a bit of styling in them, and you can add images and other media. You can “clip” (capture and save) web pages. You can graphically annotate your graphics, and your notes as well. You can share notes and collaborate and this and that and the other popular thing.

Overall, I like it, especially for brainstorms.

Evernote works on the subscription model much like Wunderlist, and is also pushing its collaboration and “business” features a lot lately. It’s free to use and quite useful at the free tier; the paid version is something like $5/month, which for us grownups is more than affordable. In fact as long as you live in the developed world it’s affordable: it costs less per month than a single Starbucks coffee-esque beverage, and it provides real utility.

As with any app I disagree with some of the UI conventions, and as with any app there are some annoying bugs, but overall it strikes me as a great product, and after a month or two of use I could see it potentially solving my brainstorming, planning, and list-writing problems. It even supports To-Do lists, but based on my experience with OmniFocus I’m keen to keep that function separate from the rest.

Evernote has been very successful and as far as I can tell the success is well deserved. It even has a public API that a hacker like me could use to integrate it into other, weirder parts of my information superduperset. Part of me wants to go all-in and make Evernote my primary note-taking, information-ingesting, brainstorming-and-more gateway to the magical Cloud in the electric-blue sky.

But.

But…

But what about the lock-in? And what about security?

To be fair, I think Evernote goes above and beyond the industry standard for both data-freedom and security. There is a well-documented, machine-readable document format and you can export all your data whenever you like. You can even do it through the API if you want.

The company clearly takes security seriously and does a lot, probably all they reasonably can, to keep your notes secure and private. Or at least all they reasonably can while maintaining a useful service for normal humans.

As I see it, the lock-in problem for any system comes down to two questions:

  1. If I want to move to another system, how hard will it be?
  2. How confident am I that the service (and my data) will be around (and useful) for a long time?

Moving to another system will be easy as long as the other system imports Evernote files. Given Evernote’s popularity I think it’s very likely that serious competitors, once large enough, would import your data. Or at least import my data: in my case it’s mostly text, so I’m not worried about importing a terabyte of painstakingly catalogued home video.

Moving to no system, or to a system with no Evernote import, is another matter. At least it could be done, but I’d probably spend a week writing that converter. And the thing you’d end up with is, at best, a big pile of HTML documents.

For most people that’s utterly irrelevant. But for us hackers it’s a thing to consider: the portability of a document decreases as its structure gains in complexity. Evernote’s HTML variant is pretty manageable, especially by software, but it’s still a far cry from the plain-text goodness of Markdown.

I don’t think anybody’s doing this better than Evernote, but it does give me pause that there isn’t a simpler underlying format in case I change my mind.

And what of the product’s longevity? This matters not just in terms of access to your data but also, principally, for your continuity of habit. If you learn all the tips and tricks of Evernote, build yourself a workflow around it, and use it day in and day out, your commitment has great value. The value to the company is obvious as long as they keep enough customers paying; but the value to you is much greater. The cost of learning another system would be very high.

Plus, as unpleasant as it is to think of such things, longevity isn’t just a matter of existence. You need the product to be cared for, to be developed futher with the kind of passion that’s brought it this far; and above all you need them to keep caring about data-freedom and security.

In favor of Evernote’s longevity we find, mostly, their great popularity. I think their business model also makes a lot of sense: get people involved and committed on the free tier, sell them up to the premium tier, and make most of your money from a business tier that becomes more and more attractive to businesses as more of their employees already know the software.

But I don’t think there’s any proof yet that I’m right. They may well have a very lopsided user base, with the free tier consuming most of their resources and the paid tiers not contributing enough money.

They’ve apparently raised over $290 Million in venture funding over many rounds. That’s enough that there will definitely not be an OmniGroup-like small-shop happy end to all this. Either Evernote goes public, and is subject to market pressures that may force it to change its behavior; or it is acquired by a large player like Google, and is “integrated” into something like GooglePlus.

Or, of course, they go out of business. Given their open data format they are more vulnerable than not should a game-changing revolutionary note-management thingy evolve and come shuffling up out of the mud. I don’t think that’s likely, but then I was one of the many geniuses who thought up Twitter in 2005 and then dismissed the idea as culturally pointless and commercially hopeless. (We may all be proved right in the end…)

All of these risks exist with any product you might choose, certainly with any product that’s this popular. I have no reason to believe the odds are any worse with Evernote than with any of its competitors.

But it’s still a game with odds. It would be possible to build a product that specifically avoids lock-in, but what kind of business would that be?

Finally, let’s consider the security risks.

Evernote – the app, the service, the company – wants to be used for as much of your information-world as possible. I wouldn’t be surprised if they build in e-mail at some point. And just as with e-mail, the result is that a lot of your very private information lives, unencrypted, on somebody else’s server. Or in somebody else’s “Cloud.”

That doesn’t mean it necessarily will be compromised, but it does mean it can be compromised. Through your own stupidity or theirs. And as Evernote grows, it becomes a target for government-sponsored cybercriminals who have beaten the likes of Google, so it’s not just a questing of hiring good programmers. Evernote’s security was breached in 2013, and it probably will be again one day.

This problem, much like the lock-in problem, exists with any useful service, because the things that make it useful are precisely the things that limit its security.

In this day and age, sadly, you should assume that everything stored outside your own (encrypted!) hard drive will eventually be stolen by Bad Guys. Hopefully it won’t, but consider how private you want it to remain if that should happen.

Again this is something you could design for, but it’s not clear that would be smart business. Security always comes at the expense of convenience.

I don’t think “normal people” will ever really care about lock-in or security, and Facebook is the standard Exhibit A of this argument. I don’t think Evernote needs to lose any more sleep over these things than they already do. As the man said: If you’re not cop you’re little people.

But I, in this metaphor stew, am cop.

A Roll of One’s Own

I’ve visited and revisited this problem so many times over the years, and cobbled together so many half-assed “solutions,” that the temptation is very great indeed to just go all-in with Evernote and let the Everelves manage my Everstuff for Ever and Ever.

Yet still, there is the classic hacker’s weakness: I am always tempted to roll my own. (Back when I was a smoker, I rolled with the best of ’em. Just FYI.)

If I were to build a Note Manager Thing, its goals would be simplicity and security.

Simplicity would mean a strong bias towards plain text as the source format for, well, everything; and human-readability in addition to machine-readability wherever possible in metadata, i.e. no XML ever; and the assumption that anything else manipulating the notes is probably operating in a UNIX-like environment. These ideas are, unsurprisingly, very close to the original rules of Markdown.

Security would mean that everything is encrypted such that only the user can decrypt it. That’s a hard nut to crack of course. If I’m editing a bunch of text files in folders on my Mac then I can just stick them in an encrypted disk image et voilà, encryption. But then there’s the problem of moving things around, and of doing cool machine-learning tricks on the server, and a million other things. In reality I’d probably have to encrypt each piece of data separately, thus making the software slower and introducing some nontrivial number of bugs. What about auto-save? Ad nauseam.

Oh yes, and usability. That would be a goal too, at some point.

Just because it’s hard doesn’t mean it’s not worth doing.

It doesn’t seem quite sane to imagine this working as a business, at least absent some Silicon Valley Venture-Capital Slush Fund. Maybe if I called it Slush.ly.

Just because it’s not a business doesn’t mean it’s not worth doing.

Furthermore, I have a lot of things going on. I have a job, I have a wife, I have a gym, I have a painting studio (sort of), I have a photo lab, I have half a dozen experimental software projects, and I have a taste for the good life.

So for the moment, for me, it’s probably not worth doing. I’ll probably continue to use a bunch of different programs, including Evernote, for my digital writing and writing-down. And I will probably return to think about the problem once or twice a year, secretly hoping someone who shares my design goals has gone and built the thing I would build so I can just trade him (or her!) a few Merkels… er, € for it.

On the other hand:

If you’re listening, Marc Andreessen, I wouldn’t say no to your money.

Labels: , ,

Friday, September 26, 2014

’Ello Ello

There is a new social network in town: Ello. ’Ello Ello!

I’ve noticed enough people in my Facebook list joining Ello that I would definitely say it’s “trending.” And it turns out it was started by the guy who makes those nerdy-edgy plastic figurines you’ve probably seen on some programmer’s desk: Kidrobot.

I plan to give it a whirl as soon as somebody invites me in. Yes, that means Ello is trying to limit its growth rate by being invitation-only and limiting the number of invitations people get. It’s an old trick but it probably works, even if (sorry) it’s no longer cool to having a pocket full of invites.

Ello says that you are not a product.

But I see a few problems that lie in store for Ello.

1. Exponential Growth

Sooner or later they have to stop rationing invitations, and then since they are the buzz-child of the moment their growth will explode.

This is a really, really hard thing to handle even if you have a lot of money and great connections in the relevant nerd circles.

The normal way to deal with this is to take on venture funding so you can hire the experts and build up the infrastructure. But as soon as you take VC money you have somebody who can veto your Manifesto.

Now, a smart VC will let them burn money and follow their Manifesto and hope for an Instragram Moment, when Facebook fears all the cool kids will be on Ello and thus buys them for billions of dollars.

Either way, I don’t think there is a way to fund a conventional social network (which this is) without taking investment, and if they do then sooner or later they will sell out.

2. Scope Creep vs. Focus

Ello’s business model, such as it is, basically amounts to scope creep. I think they are seriously underestimating how hard it will be to just keep their minimalist feature set intact and usable at scale. If they want to add a bunch of features at the same time, that’s great, but then who’s going to keep the lights on?

In that sense it sounds like they want to be Craigslist — a lifestyle business that “goes viral” — but running a social network is a lot harder and more expensive than running Craig’s little apartments-and-prostitution site.

They also will need serious apps for iOS, Android and Windows Mobile. The iOS and Android apps are at least on their official feature backlog. Maybe Microsoft will write the Windows Mobile app for them.

In the best case you might have a group of talented programmers and designers who are willing to quit their jobs and work full-time for a year or two for equity. But sooner or later (most likely sooner) people need to get paid, and Ello needs real talent in two very high-end disciplines: mobile app engineering and scalability.

Again this comes down to the VC question. Ello has already taken a small seed investment, according to Crunchbase. But it’s not enough to buy full-time engineers, and until they can hire people they will have to choose between growth and features. Or perhaps I should say I hope they are smart enough to realize it’s one or the other.

3. Financial Sustainability

If by some miracle they manage to avoid the VC trap, how are they supposed to make money?

So far they talk about selling “premium features” but can you really operate a big social network on subscription revenue, with most of your users not paying anything? With server farms and a bunch of engineers who get market pay because they have to do the boring work? With a legal department that’s not going to be little pro-bono junior Lessigs?

I don’t buy it, not for a second. Even if enough of my friends went on Ello to make it worth splitting my activity into two networks (“cool” Ello vs “dull” Facebook) and even if I would pay $50/year for the service, I don’t think anybody else I know in Budapest would pay for it. Say that’s 200 people, now you have revenue of 25c/user/year, with which you can buy exactly nothing. I’m sure the “premium conversion” rate would be higher in the Bay Area but globally I don’t think 0.5% sounds pessimistic at all.

To put it another way: I don’t think Facebook is an ad platform because Zuckerberg is Evil, I think Facebook is an ad platform because there’s no other way to pay for a full-scale social network with all the features people want. That they’re very very good at being an ad platform, and utterly craven about their users’ privacy, accounts for their huge profits; but without ads per se I don’t think they could keep the blinkenlights on.

When the founder says things like “data is cheap” you have to wonder whether he’s been exposed to real-world, large-scale data-management problems. Of course the physical and virtual infrastructure required to launch a startup is much, much cheaper than it was back in 2004, but engineering talent is more expensive and a lot of the problems are vastly more complex. And sooner or later you have to scale up.

Never Say Never

Of course there is nothing new about these problems, just as there is nothing new about making the Anti-Facebook. But that’s no reason to not try.

I personally think the Next Big Social Thing will be less centralized, if only because Facebook sits in social networks where Google sits in web search: behind a massive capital-intensive barrier to entry, namely its server farms. To a lesser extent there is also the network effect on Facebook, but I think that’s easier to break than it seems. The rush of people wanting to try Ello points to the depth of dissatisfaction with Facebook; I would expect any reasonably convincing Anti-Facebook would benefit from that.

To be clear: if I were the Ello people I’d take this buzz and run as fast and far as I could with it. I’d get half a billion dollars in venture capital and make every investor sign off on my utterly unproved business model. I’d use the successful obstinance of Mark Zuckerberg as my template. I’d build a war chest big enough to run Ello according to my chosen principles for years and years and figure that sooner or later I’ll either figure out how to make money at it or find good money to chase the bad.

In today’s Silicon Valley investment climate I would even be a little surprised if they didn’t build a preposterously large war chest. And if they really could force their investors to sign on to the Manifesto, returns & exits be damned, then that would solve all three of the problems I metnioned above.

While I’m more than a little sceptical about their long-term prospects, maybe it doesn’t matter.

Maybe Ello is the next Facebook. Maybe Ello is the Anti-Facebook. Maybe Ello lives forever. Maybe it’s better to switch social networks every few years anyway.

I wish them the best. I know they will go through a lot of pain when they have to scale, but the very fact that it looks like they will have to scale puts them at the head of the pack.

Labels: ,

Wednesday, September 24, 2014

What’s With the Crazy-Ass Startup Names?

It all started, I think, with Flickr: the cute, in-the-know jokey misspellings and then, soon enough, the simply crazy-ass names for Internet startups.

Full disclosure: I once worked on a site called Zulio (short version: Yelp meets Craigslist). One of the founders pulled the name out his ass, but it did have a nice ring to it. Certainly better than Yelp, which unfortunately is the perfect description of 99% of their content.

What Do These Seven Companies Do?

  1. Kinvey — Social Family Tree?
  2. Clinkle — Tomorrow’s Diapers, Made in Germany?
  3. Viggle Samwer brothers’ clone of Worms.com?
  4. Yerdle — Yelp for Yodelers?
  5. Reactr — Flickr for Physicists?
  6. Convercent — Low-Cost Language Training?
  7. Booodl — Next-Generaaaation Blooood Bank?

These are just some random examples found on CrunchBase. I thought I should make this a quiz, but I’m sure somebody else has already done that better than I could anyway. See this startup name generator for example. Though it’s old-school compared to these crazy new names.

Sometimes I wonder whether all the super-cool Budapest bar names look this way to people who don’t speak-a the magyar. The key difference of course being that for those of us who do the names are multifaceted wordplay, and as with much Hungarian humor they assume a sharp wit. Is there an equivalent hipsterese dialect in which these startup names are less ridiculous?

Labels: ,

Tuesday, September 23, 2014

Aronofsky's Noah

I just finally got around to watching Noah, the sloshy epic starring Russel Crowe and directed by Darren Aronofsky.

It's about that Noah of course, the one with the Ark and the Flood and the affinity for Armenia.

SPOILER ALERT!

They survive the flood. But, given that you exist, you probably knew that already. Read on if you're not afraid of lesser spoilers.

ET Kill Home

It had never occurred to me that Russel Crowe would have to build the whole stupid Ark by himself. Well, with the help of the womenfolk and Russel Brand, who plays his son Shim or Sham or whatever. The other son is Ham, though in fairness Logan Lerman as Ham probably hams it up less than any other character, human or beast.

So, provided by his grandfather Hannibal with a magic bean that instantly sprouts an entire forest, and thus an ample supply of wood, Noah Crowe seeks to build a very large barge.

But he's in a hurry, the rain's coming, the Ark is Really Really Big! What to do?

Why, enlist the help of giant many-armed barnacle-like Extraterrestrial Lumberjacks!

These also come in handy when, later on, Noah needs to repel a full-scale attack by the armies of Ray Winstone, the Representative of the Line of Cain and also the sole actor to be having any fun in this cash-colored deluge.

The ET Giants casually murder hundreds of humans before they realize that Death is Martyrdom, and when killed they will be beamed up to Heaven (thank you Scotty!). At that point they enthusiastically murder thousands of humans until the last ET Giant performs a sort of ritual rock-and-roll suicide and Noah is left to kill a few stragglers himself before the ship launches.

Redemptive Violence and the Rule of Man

This isn't the first time Noah turns a Gladiator trick. Throughout the movie we are repeatedly shown this self-appointed paragon of morality mood-swing his way into a murderous, but in the moment probably more or less justified rage.

Sooner or later it had to catch up to him. After all, he's spent almost as much energy as those ET Lumberjacks on a project that can only be described as genocide.

When he proposes that All Humans Must Die, including his own family (though on their own schedule), he comes close to losing his one remaining bond to Creation other than his sycophantic following of an imaginary, lunatic Creator: the love of his family.

When he proposes to murder his son's newborn twins, and only through his own weakness fails to make good on the promise, he does in fact more or less permanently lose that love.

Except he doesn't really. After hitting the bottle for a while on good old Ararat, everybody except Ham forgives him.

So here we have Noah: World's Greatest Asshole; mass murderer and negligent manslaughterer (womanslaughterer, at least); slow-motion suicidal genocidaire; self-loathing God-playing arbiter of life and death, dispensing a reprieve but only that for the family that sacrificed everything to go along with his crazy scheme. And yet they follow him as if he were G-d H-ms-lf, because in the given scheme of things that's what the Patriarch is.

A Christian Movie?

So this got me thinking. This movie is very casual about the mass murder taking place, as if it were in fact a divine action (we are expected to trust the ET Giants on that point). But it appears to condemn the overall violence and brutality leading up to the genocide itself, and also Noah's infanticidal machinations.

These things, however, all flow from the central establishing fact of the story: these people's (and ET Giants') Creator is a despotic and vengeful god, a god one must submit to even at one's own peril.

That sounds exactly like the god you always hear the Christians telling you they've replaced with a god of love and compassion.

Winstone's character has the clearest understanding of the Creator in this movie: he, a power-hungry Man in Full, giving and taking life, is living as he was created: in the image of the Creator.

Interestingly, while Ray Winstone-son-of-Cain is the villain in his relationship to Noah Crowe, he is without question the guy you'd want to follow if you had to choose between them. Noah has the ET Giants and the Big Bad Boat, but he would - he does - stand by and watch you drown. W-s-o-Cain would at least try to recruit you to his cause.

By any modern standard of ethics, Winstone's actions make more and more sense while Crowe's are more and more craven. Noah can't even plead self-defense as a justification for his evil deeds, since his plan is to die when the job is done. Or, anyway, in his typically self-righteous manner, live as long as he likes after the job is done and then someday get around to dying, yeah sure.

If, in a largely Christian country, you make a mass-market sci-fi movie based on an old Jewish legend, and in it you make it abundantly clear what a sick and bloodthirsty bastard the Creator is, are you not implicitly making an argument in favor of the Christian idea of God?

Of course that might be entirely coincidental. But I did not see anything much redeeming about the God in this movie other than arguably His ability to talk all the other lions into letting just these two be saved from the flood.

Science, Superstition and Aranofsky

It would be very interesting, but also very difficult and possibly not very entertaining to make a Noah's Ark movie in which there is no superstitious hocus-pocus at all.

Considering how crazy the traditional version of the story is, one might argue that Aranofsky's sci-fi touches are just minor adaptations to modern cinema. At least he doesn't try to make sense of Noah's age (six hundred, they tell me).

What fascinates me about Aranofsky's take is that everything falls neatly into one of exactly two categories: has a perfectly rational explanation vs. completely impossible sci-fi fantasy.

It's as if on the one hand he invites us to consider that Noah may be delusional and the Creator may not exist; but on the other hand he shows us Instant Forests and Glowing Angel Creatures (the souls of the ET Giants) and faith healing and Magic Glowing ET Fingers (apparently without irony).

I very much wish Aronofsky had gone all the way with the scepticism and presented the probably inevitable sci-fi elements as at least consistent with physics, so we could have concentrated on the twin problems facing Noah:

Is this really what the Creator wants me to do?

Am I insane?

Though of course in my world there is a third problem: If the Creator really wants me to do this, is he not my enemy?

Recom-meh-ndation...

I found Aronofsky's Noah to be blustery, often ridiculous, and more than a little confused about its moral position (and its accents).

But it did make me think. Was it worth the five bucks I spent renting it? Probably not. Would I watch it again? Only if somebody makes a Ray Winstone highlight reel.

Labels: , , , , ,

Friday, August 22, 2014

Z Minus Ten

So I finally got around to watching  Brad Pitt's Zombie Apocalypse movie World War Z.

The central conceit is FAST ZOMBIES!  Fast fast fast! And it's surprisingly effective.  Fast Zombies kick your ass.  Fast Zombies outrun the soldiers.  Fast Zombies swarm like ants.  Fast Zombies make faster action, Fast Zombies spread the Zombie Disease Fast Fast Fast!

Cities fall, nations tumble, Fast Zombies threaten humanity! 

After a while the acute observers (mostly Mr Pitt) have noticed two things about the Fast Zombies:

1) They are attracted to noise.

2) They don't bite people already infected with other deadly viruses.

So, ladies and gentlemen of the Joint Chiefs, what should we do?

A) Develop a vaccine that makes healthy humans look terminally ill so the Fast Zombies will ignore us until a resistant strain of Fast Zombie Virus emerges and Brad Pitt can make a sequel; meanwhile blow up much of our infrastructure trying to get rid of the leftover Fast Zombies.

B) Build giant tar pits with sirens in the middle.

Hmm, tough choice, better ask the scientists...

Tuesday, June 10, 2014

Merging the Apps, Merging the App Stores

Apple’s recent World Wide Developer Conference revealed many exciting new software technologies, about which I will surely write more at some point. One interesting thing is that there is much better integration and communication between iOS and OSX on the horizon.

This got me thinking: why are there still two Apple App Stores?

(Why are they so awful is another question, and out of scope for now.)

Right now you can make an app for iPhone; or for iPad; or for both iPhone and iPad; or for the Mac. You would usually use the same tools to make any of these.

Why not merge the stores, and also merge the apps?

Merging the stores is a fairly obvious idea. It would mean using the "normal" (Mac) App Store to buy and manage mobile apps on your Mac. That might be a nice opportunity to get mobile devices out of iTunes once and for all, but again: out of scope.

Merging the apps is perhaps less obvious, but more and more iOS apps are spawning Mac versions. Wouldn’t it be cool if the developer could sell all three versions as one package? From the developer’s point of view it would probably involve uploading separate apps and simply merging them administratively. OSX and iOS are not likely to be the same thing any time soon, so in terms of binaries we are still talking about two apps.

But in terms of user perception we are talking about one app with three incarnations. I think people would get used to this very fast, and come to think of a good app as being available on all their devices automatically.

Not every developer would take advantage of this at first. Consider the Omni Group, one of the best independent software companies in the Apple ecosystem. They make some great software and they are not shy about charging real money for their products. I have one of their apps, OmniFocus for iPhone, iPad and Mac, and I paid three times for the privelege. Now they have released a new version as a paid upgrade (still pending for iPad) and I will probably, sooner or later, pay them three times again, because I believe I get sufficiently premium value from these premium products to justify their premium prices.

But for smaller developers looking to maximize their users’ engagement, it could be a big win. Or for Silicon Valley startups trying to metabolize their large injections of venture capital and desperate for eyeballs lest their Social Meatball World be overtaken by Meatball Cloudface LLC. You need to get on as many devices as possible, and get people to use your software as much as possible, before the Samwer brothers come out with Wolkenfleischball Sozial Total and lock you out of the German market.

As a user and a customer, I would like that. I want all my apps in one place, at least administratively. I want one "Purchased" tab. I want things that interoperate between my devices. I want to open iTunes as infrequently as possible.

Apple wants 30% of everything. Should be an easy match, no?

As a developer, however dilettantish my engagement with XCode may be, I find it exciting to think about making apps that are integrated out of the "box," as it were. Imagine, for example, an online banking app. Some things you really want to have available when you’re out and about, and some things are much easier to do on a "real" computer. Or think about all the things you can do (soon) with Apple’s new Health app. This begs for a desktop/laptop companion app.

I think Apple will merge the stores at some point. I have no idea when, and it would be silly to speculate considering I’ve seen iTunes as a dead man walking for years now. But sooner or later I think we will have one app store, at least for Macs.

Will they allow the apps to be merged as well? I hope so. I see a lot of benefit to it. But I could also imagine this waiting until some day, probably at least five years from now, when the operating systems themselves merge and you could have a three-platform app (or four, with the TV) that really is a single app.

Merged or not, I think the future of a lot of app categories is tight interaction between the phone, tablet and desktop/laptop versions. Doing this across platforms is much more challenging, and I have a hard time imagining the integration ever being very good. That might give Microsoft a much-needed boost to its mobile business, because at the moment only Apple and Microsoft are capable of tight integration throughout their respective ecosystems.

If I’m going to be so rash as to predict something, then it's this: by this time next year there will be a bunch of indie apps offering a unified user experience on iPhone, iPad and Mac, and at least a couple will be popular enough that the conversation in the developer community will be largely about that integration.

Labels: , ,

Wednesday, July 10, 2013

Sending Error Responses in Poet

I'm playing around with Poet, a new Mason-based web framework in Perl.

You can read more about it here:
http://www.masonhq.com/

One thing seems under-documented: how do you deal with error pages?

Well, you probably noticed there is a directory called "static/errors" and in it there are things like "404.html" and so on. So far so good: these are what they appear to be.

But how do you trigger one?

The documentation for Poet::Mason shows a very useful method:

abort (status)
clear_and_abort (status)
    These methods are overridden to set the response status
    before aborting, if status is provided. e.g. to send back
    a FORBIDDEN result:

        $m->clear_and_abort(403);

    This is equivalent to

        $m->res->status(403);
        $m->clear_and_abort();

    If a status is not provided, the methods work just as
    before.

Great, so all we need is:

<%init>
    # you can't see me!
    $m->clear_and_abort(404);
</%init>

and... boom! You are served the standard 404 page from your "static/errors" directory.

But what about a 400 BAD REQUEST, which is more likely to be needed in the first place? Just changing that status code to 400 gives us... only the status code in the response headers, and a blank page. At least that much worked.

But a quick look at "static/errors" shows there is no "400.html" -- and all we need to do is drop one in, right? Wrong. Or half-wrong anyway: we do need to create that file, but just creating it isn't enough.

It turns out this is controlled in "bin/app.psgi" (around line 20). The command:

enable "ErrorDocument",
    map { $_ => $poet->static_path("errors/$_.html") }
    qw(401 403 404 500);

So now we just add a "400" to that list and restart the server, right?

RIGHT!

Hope that helps.