Jerome Covington: Dev

Your Moment of DevZen

Some code you live with for the long haul, some is more ephemeral. The things is, it may not be immediately apparent which is which! Make it maintainable and give it structure, but don’t get too precious or build brittle systems that are hard to back out of.


Checklist for Code Design

When cooking up a new batch of code, it helps to ask these questions…

Does the code make a product useful?
Does the code help make a product understandable?
Is the code itself understandable?
Does the code have the potential to be long-lasting?
Is the code thorough? Does it cover all use-cases presently known?

Finally, if all of these points are covered…
Is the code innovative?

This final question can help answer the others, but as an end in itself, may lead to trouble.


HTML5 Please Shows the Way

A well designed site by the folks who brought us HTML5 Boilerplate, Modernizr and CSS3 Please shows how to implement specific HTML5 features: with confidence, with a fallback or with polyfills. The site also breaks it all down with a searchable interface and the ability to filter by html, css, js or browser-native API.

Check the site out here.


A Well Balanced Comparison of Mongo and Couch

A surprisingly balanced comparison between Mongo and Couch is posted on the Mongo docs website. While the focus of technical talking points drifts towards Mongo, this is inevitable, as the doc is written from the perspective of Mongo experts. However, the writing is not pre-disposed to favor Mongo as a one size fits all solution, and the author goes out of his way to point out that Couch is more suitable for some situations (such as master-master database solutions where this is a high degree of geographical, often offline distribution). Read the entire doc here.


End to End User Experience

“End to End User Experience”…the idea that all developers, not just those who develop the UI (and the designers they partner with), need to safeguard the quality of the user experience. I really truly believe that the optimum user experience can only be realized from a technical perspective when the code from server to browser is carefully designed around all of the things that developers can do to enrich the experience of the user. This means excellent performance, a clear and well documented API, clean coding best practices, etc.

The whole team needs to rally around this guiding principle. It’s time for developers to give as much thought to the user experience as their counterparts in the visual design field. Likewise it is time for visual designers to understand that their vision is relevant only to the extent that it can be implemented with care by developers who have their aesthetic trained on the user’s experience of the product.

What do you think?


Twitter Re-engineered Their 2010 Architecture Around Client-side Technologies

A blog post from September 2010 by the Twitter engineering team, while published a year ago, describes very well the recent shifts in web app development. It goes into substantial detail regarding their 2010 redesign. As it turns out, the redesign was far more than a re-imagined UI, but in fact relied heavily on shifting the work done by the app mostly to the client.

The paradigm shift is not an uncommon one in the current age, and depends on such strategies as exposing an API and the utilization of a group of JS frameworks to render the site: jQuery, Mustache, LABjs and Modernizr. The article states that JavaScript is central to the 2010 architecture.

The application also manages page state in the client, caching visited pages in the client while subscribing to updates and keeping the pages in sync with the state of the application.

The full article is available here.


Responsive Design with the Ignition HTML5/CSS3 Framework

Ignition, inspired by HTML5 Boilerplate and Twitter’s Bootstrap is one attempt to apply the sensibility of those projects (implementing baseline templates for HTML5, CSS3 and JavaScript) towards Responsive Design. Having a template to base your development and design on, which will allow for a fluid screen layout on desktop/laptop, tablet and mobile, is a welcome idea.

While Ignition is still in the early phases of development, a few key features stand out. Included are the usual CSS reset along with some simple baseline styles. Media queries deliver the appropriate customized styles to different devices. It’s worth pointing out that font sizes are specified in rems for greater control and accuracy. Also of note is Ignition’s implementation of Sass CSS for more flexible CSS development using variables, mixins and selector inheritance. While the eventual goal is to support all browsers, currently Ignition has only been tested on Chrome 13+, Firefox 6 and Safari 5.


Google Codesearch Shutdown

Google Codesearch will be shutdown effective January 15, 2012 but there are a number of alternatives for searching the source of publicly available codebases. Alternatives mentioned (but not explicitly endorsed) by the Codesearch team include http://koders.com, http://opensearch.krugle.org, http://grepcode.com and http://www.antepedia.com.

Of these four, Krugle seems to be the most helpful for Front End development code searches, turning up plenty of hits for “webkit”, for example, whereas the others turn up mostly empty-handed.


Dochub makes life easy again

Mozilla Developer Central has long been a go to source for for technical documentation of web-standards based development. Now this excellent resource for info on HTML, CSS, JavaScript and the DOM has been organized with a nice clean UI.

dochub.io is a welcome take on this exhaustive information, made more suitable for browsing and quick lookups, as well as more in depth exploration.