Rust Browser 4: Type Madness
March 24th, 2020
I have greatly enjoyed the reliability of Rust so far, but a few things really annoy / mystify me. One is the type annotations. I understand that type annotations lets you say what type another type is defined in terms of. The common case is a vector of points, with something like:
Building a Rust Web Browser
March 10th, 2020
I have done something very foolish. I've started building a new web browser. From scratch. Not a new wrapper around Chromium or WebKit or Gecko. No, an actual new browser. Why have I done such a thing?!
Thoughts on the Hunger Games
March 3rd, 2020
In my side gig as a science fiction writer I'm trying to suss out the modern market. I grew up reading golden age sci-fi authors like Asimov and Heinlein. The are less than relevant today. When I was a kid YA (Young Adult) scifi/fantasy wasn't really a genre. Now it's dominated by modern blockbusters like Harry Potter and Divergent. So, if I'm to understand the modern market I should actually read some of this stuff. So that's why I read the first Hunger Games novel. Spoiler alert, I didn't like it but I do get it.
Thoughts on Build Systems
July 21st, 2019
thoughts on build systems
Why I'm a Climate Change Optimist
July 15th, 2019
I'm optimistic about humanity's abillity to deal with climate change. I know that sounds ridiculous in the current political environment of the US, where one party can't agree on what to do and the other party denies that the problem even exists. But still I'm optimistic. Why? Because of the bomb.
This Blog is Now Proudly Google Free
February 20th, 2019
I'm happy to announce that as of today there is no Google on my website. In fact, there is nothing loaded from any other domains than my own. No fonts, no images, and absolutely no trackers. Here's how I did it.
This is why DRM is a Bad Idea
January 29th, 2019
This is why DRM is a Bad Idea
Or, an attempt to exercise my digital rights, badly managed.
Being an Independent Researcher
July 10th, 2018
Recently Nadia Eghbal posted about the history of independent researchers. One crucial point (hinted at in her article but I don't think is explicit enough) is that to be a researcher you don't need to have a big organization behind you or credentials, but you do have to publish. Sharing research, both the successes and failures, is what makes science work. If you hoard away your research and keep the results a secret then you aren't a scientist, you're an alchemist.
Mobile VR Problems
May 15th, 2018
I tried to use my sparkling new Oculus Go on an airplane yesterday, since it seems like the obvious place to use it. The number one thing I think people will want to do with this device is download some Netflix movies for a plane. I mean, who wouldn't want to leave the cramped loud environment of an airplane for the calm of their favorite movie over a fun moonscape background. Sadly, Netflix doesn't support downloads in their VR app, even though they do in their mobile ones. Hey Netflix! Turn it on!
My Cut of the White Album
May 12th, 2018
I have always loved The Beatles, even when I was little. I'm too young to have known about The Beatles in a cultural sense. I was 5 when John Lennon was murdered, far too young to remember, so to me The Beatles were always just music that existed. While I love their entire catalog I've always felt the White Album was their weakest effort due to lack of editing. Today we're going to fix that.
Things Which Annoy Me About Modern Computers
May 9th, 2018
I'm annoyed that we don't have something like the Amiga anymore. A computer that doesn't give you apps, but instead gives you primitives that you can combine in different ways to be creative and make art. Okay, the Amiga wasn't quite like that, but it had the spirit and desire to become that.
May 4th, 2018
Today I received a note from our local recycling company that they can no longer take any plastics except for washed milk jugs. Even the many kinds of hard plastic that claim to be fully recyclable they are unable to take. They say it's because of the international recycling crisis currently affecting the world. I'm a curious fellow, so I did some reading.
Ongoing Revenue: How to build a new smartphone platform
April 25th, 2018
Yesterday I ran across a post on Hacker News about a new phone. From the website it appears to be a brand new OS with features to help you keep focused and clear away the distractions. While the site was pretty, the lack of good UI screenshots was a red flag. What did this OS look like? How can a new OS possibly be built by a small company and be any good?
Why don't we have Wayland yet?!
March 26th, 2018
Or: The state of Linux Graphics with Raspberry Pi and Rust
I have long wanted to create my own desktop operating system targeting the Raspberry Pi. I believe we should have a hackable desktop environment that is both powerful and lightweight, similar to BeOS and the Amiga. To build this desktop we really need full control over how apps draw to the screen, but still have hardware acceleration. That means we'll need to use real graphics drivers and real graphics APIs from existing Linux desktops. When I last looked at all things Linux graphics five years ago everything was a mess but with some promising signs. Over the past couple of days I've been researching the current state. Here is my report, with both good and bad news.
2017 Retrospective and a Ponderous List of Things Which Are Yet To Come
January 20th, 2018
A question for the ages.
Is there anything which uses the word nog that is not eggnog? Are there other types of nog? Where did the word even come from? Is it derived from grog or something else? And is there any connection with nogging?
Ideal OS: Rebooting the Desktop Operating System Experience
August 18th, 2017
Twitter user ekse has graciously translated this blog to Chinese. Thanks! TL;DR: By the end of this essay I hope to convince you of the following facts. First, that modern desktop operating systems are anything but. They are bloated, slow, and layered with legacy cruft that still functions only thanks to Moore's Law. Second, that innovation in desktop operating systems stopped about 15 years ago and the major players are unlikely to heavily invest in them again. And finally, I hope to convince you that we can and should start over from scratch, learning the lessons of the past.
Five Reasons Why You Should Hire an Old Programmer
July 2nd, 2017
You should hire an old programmer. It’s true! Sure.. older programmers are not going to work as many hours as someone fresh out of college. They have kids and spouses and mortgages and softball games to attend. They won't hang out at the office playing Xbox and ping-pong all night. They will not work 80 hour weeks and they will actually use their vacation time. And of course they cost more than young programmers. Despite all of those reasons not to hire an older programmer, you still should. For one simple reason: they are worth it. I know this, because I am one.
I am worried about AI, but not for the reason you think
May 30th, 2017
True high level Artificial Intelligence, the kind we read about in novels and hear crazy stories about from futurists, won't be like the movies. There won't be a Her that we fall in love with. There won't be a HAL 9000 who turns against us. When we finally build a true self-learning AI, it won't be anything at all like a human intelligence. This shouldn't be a surprise. We have half a century of results to show this is true.
On Uber, Gardens, and Why Corporate Culture Matters
February 21st, 2017
I’m mad this morning. I just read an article by a woman who spent a year at Uber facing sexual harassment. She had great courage to bring it up with HR multiple times, saw nothing was done as the situation got worse with a repeat offender, and finally quit to join a less offensive company. This is not an isolated incident. Uber has a corporate culture which enables this kind of behavior.
Why I'm No Longer a Republican
August 5th, 2016
It's true. It finally happened. I left the Republican Party. While I’ve voted independent or democratic for the past few elections I’ve maintained my Republican Party affiliation for the local elections. That all ended a month ago when I officially changed my party to Democrat. This blog is my attempt to explain why.
Pokémon Go: Why and Why Now?
July 19th, 2016
Wandering through campus we saw them everywhere. In small groups of two or three they walked slowly. Looking around. Pausing every few seconds to check their phones, then moving on a few more steps. Walk, check, walk, check. The mild summer weather and warm evening brought them out in larger numbers, so I wondered how many would come out to play in the rainy winter six months from now. Of course, it might not even still be a thing then. After all, it wasn’t a thing two weeks ago.
Programming Beyond Text: the Parsing Problem
June 13th, 2016
I’ve written many times about how programming is being held back by storing our code as ASCII text. My efforts garnered a dim reception. As strong as the arguments for other storage formats may be, text works extremely well with existing tools. Leaving text behind means leaving an entire ecosystem of practice and tooling, thus we are stuck in a local maxima.
Reflections Upon Turning 40
August 17th, 2015
Or: Now I Know Why Old Men Drink Scotch
Over 40 years, has Software Gotten Better or Worse?
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!
Samsung Should be Broken Up, I Have the Evidence
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.
Why You *Can* Build a Smartphone.
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.
Ideal OS Part III: User Attention Is Sacred
January 14th, 2015
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.
How Microsoft can fix Windows. They have the Technology.
September 30th, 2014
Note: I’m a research at Nokia but this blog does not represent my employer. I didn’t move to Microsoft and I’ve never been on the Windows Phone team. These ill considered opinions are my own.
Where's The Data?
April 29th, 2014
The Web is amazing for answering questions. Suppose you want to answer a question like, "what does the .JPG file extension mean", then the answer is just an internet search away. Millions of answers. However, if you stray from the common path just a tiny bit things get hairy. What if you want to get a list of all file extensions? This is harder to find. Occasionally you might find a PDF listing them, but if you are asking for all file extensions then you probably want to do something with that list. This means you want the list in some computable form. A database or at least a JSON file. Now you are in the world of ‘public’ data. You are in a world of pain.
Why You Can't Build a Smartphone
December 2nd, 2013
Every day or so I read another blog post (or ranting comments) about how BlackBerry could be rehabilitated, or how Nokia could restart Maemo and build the ultimate smartphone again. Things came to a head after Jolla announced their first phone for sale. Surely this phone with an amazing user interface will vindicate the N9?! Amazing technology plus a killer UI? Marketshare is theirs for the taking!
Improved Easing Functions
March 1st, 2013
Animation is just moving something over time. The rate at which the something moves is defined by a function called an easing equation or interpolation function. It is these equations which make something move slowly at the start and speed up, or slow down near the end. These equations give animation a more life like feel. The most common set of easing equations come from Robert Penner's book and webpage.
Why should children learn math?
February 6th, 2013
In my hunt for what's next I've been reading a lot of books lately. A lot of books. As part of my search I decided to hunt down some of the classics in the computer science field that I'd missed over the years. First articles, then research papers, and some Alan Kay work. That led me to a book I'd always meant to read but never found the time: Mindstorms, by Seymour Papert.
Sacred Language Cows Part 2: we can rebuild it. We have the technology.
April 14th, 2012
An open letter to language designers: Kill your sacred cows.
April 9th, 2012
An open letter to language designers: please, for the good of humanity, kill your sacred cows. Yes, i know those calves look so cute with big brown eyes and soft leathery skin, but you know what? Veal is delicious!
IFRAME, you are dead to me
March 7th, 2012
I know IFRAME, I know. We've had a good run. You've tried hard and back in the day you were somethin' special. The way you could bring in content from any domain was nothing short of amazing, and you certainly took out the trash when you bumped off FRAMESET. But that was then and this is now. A lot has changed in the past few years. CSS and AJAX are really hitting their stride and you just can't hack it. I'm willing to overlook a few margin bugs, but this?! Well this is simply the last straw.
The Bathtub of Global Commerce and the Keystone Pipeline.
February 6th, 2012
I'm tired of hearing people talk about how we need a new pipeline to bring oil from Canada to Texas for processing. They say we need to do this for the US to have "energy independence". This is bullshit. Anyone who claims this has no idea how global commerce works. Oil is a fungible commodity so whether Canada sells their oil to the US, China, Brazil, or Switzerland makes no difference. Let me explain.
Genetic Programming: AI Opening Disappointment
January 25th, 2012
For some reason the concept of Genetic Programming got stuck in my head the other evening. At midnight, after spending about four hours reading up on the topic around the web, I came away disappointed. The concept of evolving code the way genes do is fascinating but the results in the field seem to be very narrow and limiting. Thus began this rant.
Flash is Dead. Long Live Adobe
November 14th, 2011
The twit-o-sphere came alive last week with the news that Adobe is canceling their Flash for Mobile products. I even briefly joined in. Many see this as evidence that the open web has won (it has), or a justified comeuppance for Adobe's historical slights to Apple (it might be), or perhaps vindication of Steve Jobs' rant anti-Flash (it was), and maybe even that Microsoft was really to blame (it's a stretch). Lost in all this, I wonder, is the effect this actually has on Adobe beyond their short term problems.
Why 2014 Won't Be Like 1984
February 22nd, 2011
I've heard a lot of noise recently about these new fangled smartphones and tablets not replacing 'real computers', especially since the announcement of many new tablet products, including the HP TouchPad. That they are just expensive FaceBook machines. I've also heard people say that there's no room in the market for more devices: iOS and Android will take up the market and leave nothing for anyone else. It'll be just like the PC wars again!
webOS, the OS built from the web
April 15th, 2010
There's been a ton of talk lately about several mobile operating systems and their problems, such as language restrictions, fragmentation, and anti-competitive practices. It's never a good idea to talk bad about your competition, so I'll take this opportunity to simply say a few things about the webOS (the OS that powers Palm's Pre and Pixi phones) that you might not know.
Why do Alarm Clocks Suck?
March 8th, 2010
It's been a month since I posted so I'd say it's time for a rant. I've been traveling a lot lately so the object of my wrath this week is alarm clocks. Most specifically the alarm clocks in hotel rooms, but home use clocks don't get off easy either.
The Success of MultiTouch is a Lie
November 27th, 2009
Listening to some podcasts about mobile devices I heard over and over statements like "iPhone changed the world with multi-touch" and "Android could compete with Apple if it had multi-touch." This simply isn't true. Okay, while perhaps not a lie, the success and value of of multitouch is extremely overrated. In fact, the iPhone barely uses multi-touch!
In Defense of Wires
October 19th, 2009
An essay in which I expound upon the benefits of the lowly wire and resist the temptation to wireless-ize the world of personal gadetry.
Microwaves Are Evil (at least mine)
November 24th, 2003
Yes, that's right microwaves are evil. More specifically, the microwave in my office. Or, to get right down to it, the interface on this microwave. You see, it's awful. Just plain awful. And yet, I've seen worse.