Skip to main content


Showing posts from September, 2010

Why You (As A Developer) Should Question Technical Decisions

Many times throughout my career I've seen software developers take a lot of pain from their leaders. Throughout history, "leaders" have always been personified as an unstoppable wave in the ocean that everyone rides along with. One way--one direction--one man/woman's goal. A "leader" is the entity which has the final word. To some degree, I can't picture myself blindly following a leader without questioning his or her decisions--There has to be a reason for everything. Furthermore, you (as the developer on a team) should be asking "why" certain technical decisions are being made in specific situations. Positively, you may even end up saving a high degree of effort for your team just by having your leader realize how much of a bad mistake his or her decision was.

Decisions from a technical standpoint should always be strategic. One should always aiming for a goal to achieve and one should always have to look for key people, abilities, or event…

The State of 4N/WebSockets and NodeJS Hosting

4N + WebSocketsFor anyone that wants to develop on a 4N (Not Windows, nginx, NodeJS, NoSQL) stack, I've come up with a list of gotchas that you will eventually run into when developing your applications.

nginx does not support web socketsIf you're building an application that will require WebSockts for full duplex bi-directional communication between the client and the server, you're sore out of luck as nginx doesn't support the WebSockets protocol (ws:// for normal, wss:// for secure) yet as of September 2010. Based on the discussions on the NodeJS Google Group, some have gone out to say that NodeJS shouldn't be out in the front. For clarification, nginx is a battle-tested Russian event driven web server that powers high traffic sites like Wordpress, Hulu, Github, and SourceForge. By using a single master process, it is able to easily handle 10s of thousands requests by delegating to worker processes. Each worker handles multiple requests in an event-driven or asy…

Why the web evolves so slowly in comparison to other industries

In technology, in one way or another, you will run into specific individuals that just don't care about their jobs. I've had to chance to see them infest my beloved discipline: software development. Time and time again, I see them dodge bullets from upper management by talking their way out of specific things that are too challenging or too lazy to take ownership of.

I work in web development: my role is to to develop cutting edge user interfaces, produce engaging online experiences, build intuitive software, and be a passionate technology leader. I've come to realize now after working in the agency business for so long that there are too many people that just don't care about the software they are actually building for their clients.

I've talked with several other developers from different companies and it appears to be the same. Consequently, I believe that the reason why we're forced to code like a drone is because a majority of other disciplines in the bus…

NodeJS Hack Session: MMO Pokemon with NodeJS/WebSockets

The primary focus of this proof of concept is to determine how easy it is to build real-time web applications for all iPad, iPhone, droids, Safari, Chrome users on top of NodeJS (non-blocking event driven server side Javascript platform). The proof of concept was built within 6-8 hours including the following:

Uses Express framework for server side Javascript development (inspired by Rails / Sinatra / Django)Uses EJS for templating language (much like Django templates and symfony) -- allows partials and passing parameters into partials like symfony PHPReal-time chat using WebSocketsArena Queueing System for real-time competitive matchplay using WebSocketsHTML5 AudioCSS3 transitions for all hand cards, tappable cards, transparent panels, rounded corners, drop shadowsFallbacks for Firefox, IEFirefox/IE will fall back to Flash socketIE will fall back to XHR long poll if the user doesn't have Flash installedNoSQL CouchDB for fetching users and soon cards, achievements, friend associat…

SimpleYUI, thoughts on NodeJS development

I've been a huge fan of YUI for a few years, even back when they were named YUI-Ext. Recently, they rolled out SimpleYUI. When asking other web developers why they don't like YUI, they say, "their package system is too complicated" or "you can't just start accessing the DOM by including the library easily". Incidentally, back in the day, it was far worse--YUI didn't even have a selector engine until they ported someone else's into YAHOO.util.Selector (remember this guy?). This design flaw in the library is probably what cost them in terms of people adopting YUI. As a developer, you want a consistent way of doing the most common things (dom access).

Back in the day, you would have to call YAHOO.util.Dom.get(element or string for ID of element). This was terrible because they introduced YAHOO.util.Selector.query(cssSelector) right after and soon developers were choosing between fetching DOM elements by selector or by ID. MooTools has the same pro…