Skip to main content


Showing posts from November, 2013

5 Reasons Web Components Aren't Ready for Prime Time

Wow! Web Components are amazing! Honestly, despite the negative title of this post I'm absolutely floored with excitement for this new set of technologies. This post is my exercise in grounding my excitement a bit with some reality discovered in actually using them in a serious project, and the issues we've run against and had to deal with. Web Components are an important part of the future of web development, and libraries like Polymer and X-Tags mean we can use much of their power today, without waiting browser support (which is already under way!) Like so many new technologies, this is also incomplete. It may be fair, it would be more accurate to say the ecosystem around Web Components is not mature , than to blame Web Components directly. Ecosystems are extremely important. Therefore, the items listed here are the parts of an ecosystem that I believe we need built around this new set of technologies. Missing Item 1: Routing Now this one took me by surprise because,

The essence of minimal product design

Google Search is a prime example of a product that conquerors complexity and enables users to search through 25 billion pages in a fraction of a second. v ia the ever brilliant  Amir Salihefendic

Learning to combine AngularJS and PouchDB

Are you trying to understand AngularJS? I have been, and a few use cases have eluded me. Most importantly has been the intersection between AngularJS apps and services exposing browser storage to your app. What are the best practices? This example found on GitHub by Tom Wilson is an excellent example todo app built with AngularJS and PouchDB. The README explains the entire setup in an excellent tutorial! An AngularJS Tutorial that will walk you through creating a ToDo Application using a local PouchDb. This tutorial should introduce you to some of the AngularJS concepts like directives and data-binding. It will also show you how to build offline applications using PouchDb. If you're interested in this combination you should check out ngTodoPouch immediately!

Devil’s Dictionary of Programming

  another great post from  Devil’s Dictionary of Programming   at Programming is Terrible simple — It solves my use case. opinionated — I don’t believe that your use case exists. elegant — The only use case is making me feel smart. lightweight — I don’t understand the use-cases the alternatives solve. configurable — It’s your job to make it usable. minimal — You’re going to have to write more code than I did to make it useful. util — A collection of wrappers around the standard library, battle worn, and copy-pasted from last weeks project into next weeks. dsl — A domain specific language, where code is written in one language and errors are given in another. framework — A product with the business logic removed, but all of the assumptions left in. documented —There are podcasts, screencasts and answers on stack overflow. startup — A business without a business plan. hackday — A competition where the entry fee is sleep deprivation and the prize is vendor lock in. entrepreneur — One wh

We Who Value Simplicity Have Built Incomprehensible Machines

 James Hague wrote a great post about the emergent nature of complexity in computers. (emphasis added by me) The 8086 “AAA” instruction seemed like a good idea at the time. In the 1970s there was still a case to be made for operating on binary-coded decimal values, with two digits per byte. What’s the advantage of BCD? Large values can be easily displayed without multi-byte division or multiplication. “ASCII Adjust After Addition,” or AAA, was committed to the x86 hardware and 30+ years later it’s still there, emulated in microcode, in every i7 processor.    ... The UNIX  ls  utility seemed like a good idea at the time. It’s the poster child for the UNIX way: a small tool that does exactly one thing well. Here that thing is to display a list of filenames. But deciding exactly what filenames to display and in what format led to the addition of over 35 command-line switches. Now the man page for the BSD version of  ls  bears the shame of this footnote: “To maintain backward compat

Natural Born Programmers

A post  Natural Born Programmers  caught my eye the other day. An exerpt is below, but I recommend everyone go read the whole post. The idea of the natural born programmer really is a tremendously damaging and dangerous idea we need to fight against. The idea of hereditary legislators is as inconsistent as that of hereditary judges, or hereditary juries; and as absurd as an hereditary mathematician, or an hereditary wise man; and as ridiculous as an hereditary poet laureate.  Thomas Paine, The Rights of Man There is nothing quite so destructive as the myth of the natural born programmer, the assumption that some magic genetic variation lets you write the most elegant web shops in lisp. In  Is Math a Gift?  , Dweck researches how this assumption undermines learning: We had found in our past research that viewing intellectual ability as a gift led students to question that ability and lose motivation when they encountered setbacks. In contrast, viewing intellectual ability as a