The last few weeks I've been working on a new web-based rich text editor. It’s a semantic editor, or “What You See Is What You Mean” (WYSIWYM). You edit using styles you define then import or export to whatever you need. Following cues from Medium and others on the perils of content-editable, I stopped relying on the browser to store the model. Instead I built an internally consistent model that only uses the DOM for handling input and pastes. This approach makes the editor robust, flexible, and very easy to customize.
When a man reaches a certain age his gaze turns more backwards than forwards. He ponders the value of what he’s done and the goals for his remaining years. Presumably that age is the midpoint of his life, when the years in front are exceeded by the years behind. Though I know I’m likely to reach well beyond 80 given the current trajectory of medical science; for me this age of analysis appears to be forty.
After a long three and a half years at Nokia I’m ready to leave. I’ve been through several re-orgs and my team has been dissolved. I’m hoping you can help me.
Is software getting better or worse? Some say we are making software ever more bloated. Some say we don’t care about quality anymore; that worse is better. Some say we haven’t changed how we write software in 40 years. It's still ASCII text on disk. (Yes that would be me, saying that). Certainly our programming languages haven’t improved. We still write billions of lines in glorified C code!
It’s the Fourth of July again, which is America’s independence day for my non-US friends, and it’s time for some code cleaning. I’ve built several open source projects over the last year and it’s time to shut some of them down. Out with the old to make way for the new. Let’s review, shall we?
I’ve been wearing an Android or Apple Watch for a few months now and I’ve come to one conclusion. While you don’t want to buy these quite yet, when the good version comes out in a few years we will all become superheroes.
For a recent project I needed a nice HTML table library to render a long table of data with fixed headers. Figuring there must be a million of such libraries, I started searching around. This would seem to be a simple thing, yet after a day of searching I still couldn’t find a good solution.
A year ago I speculated that Apple would never make a TV. If they ever did, I said they'd integrate a FaceTime camera with complex image processing, but I didn't think they would make a TV at all. There's just not enough opportunity in that market to make it worth Apple's while. It's low margin and no room to differentiate the product.
As smartwatches have slowly faded into existence from their sci-fi past, I have always wondered: what is the killer app? What is the feature (or actual app) that would do something so useful I’d wear it on my wrist, put up with a mostly-off screen and laggy voice control, learn a new interface, and charge it daily. What would it do that makes me want to actually buy one despite the limitations? After living with my Apple Watch for a few weeks I think I finally know. The watch itself is the killer app.
I've been writing unix-ish code for more than two decades (crap, I'm old!) but last week I discovered something I'd never used before, the stdbuf command. It solves (well, works around) one of my longstanding problems working with command line programs: buffering.
Today I received my Apple Watch. Compared to the three Android Wear watches and a few fitness sensors, I can safely say it’s the first smart watch that merely sucks instead of being truly horrible. All of these devices will continue to get better and better, longer battery life, simplified UI, etc. Soon we won’t know how we lived without them. But that’s not important right now. What’s important is when we look back in history we will say 2015 is the day we started to wire up humanity.
As part of my research at Nokia I often test and analyze products from other companies. This gives us an awareness of the state of the industry, and helps us to focus our efforts. This week my target was the Samsung Gear S smartwatch. As of yet I have been unable to actually test it. This is my story. And the story of why Samsung should be broken up into smaller companies that can actually make good products.
Smartwatches are coming. By Christmas they will be everywhere. And we won't know how we ever lived without them. Or so we are told to believe. But if you were a company making a smartwatch, how would you know what features to build? How would you know which features will fit the "something people didn't know they wanted" category? You have to predict the future. Turns out, that's hard.
Note: The first half of this post was written before the Apple Watch event and the second half after. I wanted to capture my thoughts before they were polluted by endless "reviewers" proclaiming the genius/delusion of Tim Cook. I almost didn’t want to write this because I knew my conclusion would be that you can’t review any technology this personal without using it for a while, and here I am reviewing a device I haven’t personally used. That said, I think this represents more of my thoughts on the category rather than Apple Watch in particular, a category that is going to bigger than we expect. So... here goes.
In what was by far my most popular post of 2013, Why You Can’t Build A Smartphone, I explained why building a new smartphone platform was futile. Today, like any good author, I’m going completely contradict myself. Yes, it is possible to create a new smartphone platform. You just have to follow a few constraints.
In the first two (1, 2 ) installments of this essay I covered overall system design, the window manager, and applications. I talked about how the user will communicate with the system, but I haven’t discussed much about how the system communicates back to the user. This brings us to the next big problem of today’s operating systems: notifications and concentration.
In the future touch interfaces will take over most computing tasks but 10% of people will still need ‘full general purpose computers’. We can’t let the interface stagnate. This white paper represents a decade of my thinking on what is wrong with desktop style operating systems (WIMP) style and proposed solutions. PCs are not obsolete. They just need improvements to become ‘workstations’ again.