SE: A New Rich Text Editor for the Web
August 24th, 2015
August 24th, 2015
August 17th, 2015
August 17th, 2015
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.
August 1st, 2015
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.
July 31st, 2015
I’ve been doing some summer cleaning and finally got to the blog this week. If you read this in an actual browser instead of a feed reader you’ll notice it looks very different, but there’s a bunch of new things under the hood too that reflect what I’ve learned about writing and running a blog.
July 13th, 2015
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!
July 6th, 2015
Yesterday, amidst the Independence Day Fun, I lost my phone. Or rather, it flew away on the rear bumper of my mother in law’s car.
July 5th, 2015
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?
June 17th, 2015
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.
May 23rd, 2015
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.
May 19th, 2015
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.
May 15th, 2015
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.
May 14th, 2015
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.
May 5th, 2015
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.
April 1st, 2015
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.
March 21st, 2015
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.
March 13th, 2015
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.
February 28th, 2015
Among the too many things I’ve done recently, I was a tech reviewer for a new WebGL book from Packt author Jos Dirksen called the Three.js Cookbook.
February 27th, 2015
I've done a major refactoring which will make Amino easier to install, easier to maintain and, eventually, better performance and portability. Part of this work involved moving the platform specific parts to their own node modules. This means you should no longer install aminogfx directly. Instead, install the appropriate platform specific module. Currently there is one for GL and one for Canvas. I've also added stage transparency support to Raspberry Pi!
January 21st, 2015
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.