After over a year of living with my custom built blog system I'd finally had enough last weekend. Time for something new. Something less buggy. Something extensible. So I took a day and rewrote it from scratch.
The new blog system is still custom, and still based on Node, but now backed by a real database ReThinkDB. Also, having many more months of Node and JS experience means I have a better idea of what I'm actually doing now. The new system integrate pages and posts into a single system, automatically tracks traffic, and calculate the sidebar links based on which content is the most popular. All with a single DB query, actually.
In any case, the internals probably aren't very interesting to you. More interesting is the new design, hopefully a bit cleaner and easier to read. I chose new colors and fonts, restyled a few things, and built a new custom layout from scratch. Of particular importance to me is that the pages scale properly on all device screens, from the lowly smart phone, through varying tablets, to the gargantuan widescreen desktop computer. If you resize you're browser you'll see the fonts and margins shift to always provide the optimum experience.
posted Sat Aug 24 2013
or, an epic post in which Josh declares his boredom of smartphones, creates a new world order, and redirects this site towards evil purposes.
I Am Tiredman
I am tired of smartphones. It's true. They are done. Baked. And boring. It's not that I don't like mine. It's just that I don't see anything interesting in them anymore. I'm happy to use one, but as a career target for innovation I feel they are done. Before you jump all over me about how I could possibly feel this way when I work for a smartphone company please allow me to explain.
I've spent the last seven years championing underdog platforms. First it was Swing, then JavaFX, then webOS. Throughout it all I saw the progression of smartphones from promising niche technology (my Treo 300 -> Treo 680) to ubiquitous consumer product. This really is a good thing. We now have the ability to check our email, take pictures, listen to music, and design killer apps for a class of tiny devices with immense computing power on a miserly power budget. Simply astounding! The future is now, people, the future is now.
So why am I bored? Because we are basically done. We know what a smartphone is now. There will certainly be innovation in the next ten years, but the iPhone 9x won't look too much different than the iPhone 4s. It will be a slab with a touch screen running apps. We know roughly what it will be. It won't be some new form factor that will blow away the competition (Google Glass is interesting but it won't take the place of smartphones. It's … something else).
This type of thing has happened before. In the early days of automobiles there were all sorts of crazy designs that we could never drive today. Some used levers to steer. Some actually used reigns like the horse and buggy. Eventually things settled down by the 30s resulting is the classic design of a car. A car of today would not look unrecognizable to a person from the 30s. The only huge advance was the automatic transmission, doubling the number of people who could successfully drive a car. We achieved the final form of the car. Everything after that has been incremental improvements. Great improvements of course, but incremental. That's where we are with smart phones, or in many ways "Personal Computing". With the advent of a smartphone now anyone can use a computer to be productive. Good job old chaps. Well done, I say good sir. Well done. Indeed.
So now what?
The Big Picture
The winding down of HP's webOS business and my new non-product position at Nokia has afforded me the time and vantage point to look at the big picture. I'm no longer involved in the phone OS wars. My favorite phone is now 'all of them'. I actually have a Lumia 800, iPhone 4S, Galaxy Nexus, Pre3, and the legendary Meego N9. Finally I've had a chance to catch my breath and get some perspective. Along the way I've noticed a few trends that I think will shape the next 10 to 20 years (limiting myself to computing technology).
We are turning atoms into bits.
Replacing atoms with bits is incredibly powerful. We can lower costs, increase reliability, and expand access to technology that was previously only available to the few. At it's best, turning atoms into bits not only improves the efficiency of existing things but makes new things possible.
Take for example quad-copters. These small cheap flying vehicles really came out of no-where, or at least it seems that way. They are cheap and surprisingly good. They are made possible by the decades long development of cheap sensors and open source software. An autonomous flying vehicle used to need lots of mechanical parts for navigation as well as an physical shape that would be aerodynamically stable. Additional stability implied additional size, weight, and cost. A non-stable vehicle is unthinkable because no human could react fast enough to pilot it.
The magic of drones is that they are controlled by a computer system fast enough to keep up with an unstable system. This removes the constraints of aerodynamic stability resulting is a drastic cost and weight reduction. Bits replaced atoms. Now that quad-copters are accessible we can think about doing truly new things with them, like hovering servers and taco delivering robots. A big enough change in efficiency allows a qualitative change, not just quantitative. Quad-copters are just the beginning. I expect we will finally get our flying cars this way.
Bits can replacing and controlling atoms creating so many new opportunities. I am very excited by the possibility of 3D printers and home CNC machines. For a few hundred dollars you can build a machine that will carve wood, drill precise holes, create circuit boards, and draw pretty much anything. For a few hundred more you can have an additive 3D printer.
This is a trend that is just starting to pick up steam. I can't wait to see where it leads. If we can really build it. Which brings me to my next point.
We are tracking our atoms with bits
Tracking and controlling our atoms is part of the next big thing. Yes, we've been doing this in some form since the dawn of the industrial revolution but I have never see the technology become so democratized. Take a look at Kickstarter. Count the number of projects that are trying to let people build their own contraptions, program their own hardware, and monitor their own world. I think we can take Kickstarter as a leading indicator. We are nearing a big change of some sort centered around sensors and actuators.
Sensors and actuators are the interface between software and hardware. I'll talk more about this in the future, but suffice it to say: programming physical objects is like a breath of fresh air. Software feels more real when it does something beyond calculating math more efficiently.
We can't dream big anymore
I realize this sounds like the opposite of what I've just previously said, but please hear me out.I feel like we are a very risk averse culture now. Children can't run on the playground at school anymore for fear of lawsuits (yes, I am serious). In the 50s we dreamed of space colonies, now we can't leave low earth orbit. The original Empire State Building was constructed in 13 months. Today you can't even file the paperwork for the site that quickly. We know how to make expensive buildings but not grand ones. Can you imagine anyone commissioning a building as elegant as Grand Central Station today? I wonder if we just can't dream big anymore.
The smartest engineers of my generation are currently spending their collective brainpower trying to get people to watch more advertisements instead of building the next world changing technology. This is just sad to me. Where will the next Steve Jobs come from if we are just making companies to be sold to Google and Facebook?
I'm a futurist. I'm obsessed with old visions of the future, especially the 1950s. I love the positive view of the future we used to have. How did we stop dreaming? Where are my floating cities and intelligent androids? Where are my replacement kidneys and synthetic eyeballs?
Many of my interests are converging and I feel like I'm at an inflection point in my career, so it's time to change this site to fit.
I can't talk about my job at Nokia, but I can assure you it's not to build new phone apps. But I can tell you that I'm a software guy. I'd love all hardware to be emulated. It's turtles all the way down. But the realness of controlling physical atoms is intoxicating. During my week at OSCON I filled up on talks about home automation, Arduino, and embedded computation.
- Connecting iOS to the open source world with Arduino
- Arduino Hacking 101: Importing the Universe
- Arduino & Handbag: Create Android Accessories Without Android Code
- Building a Home Automation Server
- The Yocto Project: Professional Tools for Embedded Linux
- Bonescript: Simplified Physical Computing with Node.JS
I've been doing this blog for three years now. I've focused mainly on software and user interface design. It's time for some changes.
First, I have released my book HTML Canvas Deep Dive as open source. I suspect I won't be able to maintain as much as I like, so the best way to have it live is to give it to the world. It's cur currently in GitHub awaiting pull requests.
Next: Physical computing. I have several projects on my plate around physical computing. I've been doing more with Arduino and ARM chips lately. I've also purchased some stepper motors and a set of extrusions from Open Beam to build my own CNC machine. I'll be blogging as I do this, so look for more posts around building actual real physical things, from the point of view of a software guy learning about hardware. It should be enlightening.
And finally. I can't make the world dream big again. But I do know people who are dreaming big. My mission, which I have chosen to accept, is to bring their stories to you. I am starting a new series of long form innoviews with innovators. (get it? inno-views? inno… ah, never mind). I haven't decided if these will be recorded or written, but I hope to bring out not just what these people are working on but why they do what they do. What drives them to push the boundaries? And what do *they* see as the important challenges ahead?
My blog posts will continue to be about design, and thus the name of this blog, but more on the design of physical things, their interaction with computation, and the design of things by innovative people with a vision of the future they want to see.
I hope you will enjoy the next three years even more than the last.
posted Sat Jul 28 2012
I finally got tired of hacking Wordpress and decided it was time for a change. My site has always essentially been static. I don't need a database or the ability to switch themes and use plugins. I'm the only author and the content doesn't change more than once a day (usually once a week). So, I scrapped WordPress entirely and wrote my own blog in Node. It only took me about a day of real hacking to get it up and running.
The blog itself is a simple Node app with the Express toolkit. For markup I'm using Jade, a refreshingly clean template engine. The blog posts themselves are just HTML on disk with some adjacent JSON metadata. ie: the simplest thing that could possibly work. No databases are involved. Just in memory caching of on disk text files. When I want to post something I just drop in a new file and restart the node process (takes less than 1 second). I suppose I could write some sort of visual posting interface if I wanted to, but no need to complicate things rith now.
The style of the site is custom. I designed it to have a bit of a retro feel while remaining clean. You can see the tag chart in the sidebar borrows colors from the top header. The top font is Ostrich Sans from the League of Movable Type, using @fontface.
I originally chose to go with WordPress for my blog because of the many themes available, but finally decided they are all way too configurable or just plain crap. And the markup is always atrocious. I wanted something neat and clean, so I had to go custom.
I built the UI of the site on top of Twitter's Bootstrap CSS framework which gives me a nice clean grid to work with, consistent vertical spacing, and responsive behavior if you view it on a mobile device. Yes, there is no special mobile theme. You get the exact same content on all devices, but with a layout tuned to your needs. As a mobile developer I am adamant that we shouldn't have two versions of any site. Just make it adjust dynamically.
I hope you enjoy the new design. Please give me feedback on Twitter.
posted March 17th, 2012