Archive | December, 2010

Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison :: KKovacs

Written in: ErlangMain point: DB consistency, ease of useLicense: ApacheProtocol: HTTP/RESTBi-directional (!) replication,continuous or ad-hoc,with conflict detection,thus, master-master replication. (!)MVCC – write operations do not block reads

(Full Story: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison :: KKovacs)

Making Too Much of TDD

The thing that fascinates me the most these days is where TDD and refactoring fall apart.  I’m most concerned with the “you can’t easily get there from here” problem. In a nutshell, it seems that incremental development of a design works fine until you confront stories which force you to change internal structure drastically to accommodate them.  A simple example would be something like a text editor.  You can march along very far maintaining a document as a single string before you encounter situations that make that representation impractical.

(Full Story: Michael Feathers’ Blog: Making Too Much of TDD)

Why startups should not choose NoSQL

NoSQL is great for “web-scale”. That is the mantra of NoSQL evangelists. But an important downside of NoSQL solutions, which is mentioned by most sources (twitter, facebook, rackspace) is that in NoSQL (at least for Cassandra and HBase) you must know what will be the questions that you will be asking upfront. You can’t just query anything you like. On the other hand the relational model allows you to define your model and then ask whatever question (query) comes to your mind.

(Full Story: Why startups should not choose NoSQL)

High Scalability – Pinboard.in Architecture – Pay to Play to Keep a System Small  

Small doesn’t always work. A storm of new users added over seven million bookmarks, more than were collected over the entire lifetime of the service, and traffic to the site was over a hundred times normal. As a result normal background tasks like search, archiving, and polling outside feeds were suspended. An elastic strategy to handle spike loads like these isn’t all bad.
(Link: High Scalability – Pinboard.in Architecture – Pay to Play to Keep a System Small  )

Economics of Information Technology

Better information for incumbents, lock-in, and demand- and supply-side economies of scale suggest that industry structure in high-technology industries will tend to be rather concentrated. Standards are a key policy variable, with an open standard, many firms can interconnect. Consider, for example, the PC industry. The PC itself is a standardized device: there are many motherboard makers, memory chip makers and card providers. There are even several CPU providers, despite the large economies of scale in this industry. Compare this to the software world, where a single firm dominates the PC operating system and applications environment. What’s the difference? The hardware components typically operate according to standardized specifications, so many players can compete in this industry. In the software industry, standards tend to be proprietary. This difference has led to a profound difference in industry structure.
(Link: Economics of Information Technology)

Developers: Java Lives

Another huge advantage of the polyglot JVM is that from an operational perspective, managing change in the infrastructure is simple. Operations teams already know how to manage and deal with a Java Virtual Machine in a production environment. A polyglot JVM would allow a Scala on Lift or a Ruby on Rails application to be applied to production. Operations recognizes this as just another Java Web application.
(Link: Developers: Java Lives)

Carl’s Jr. and Hardee’s Lead The Way In Interactive iPhone Check-In Social Rewards

Brad Haley, executive vice president of marketing for Carl’s Jr. and Hardee’s. “We are not only offering a GPS-driven check-in app to keep track of customer visits digitally, but we are offering guaranteed rewards
(Link: Carl’s Jr. and Hardee’s Lead The Way In Interactive iPhone Check-In Social Rewards)

Diffuse – graphical tool for merging and comparing text files

Diffuse is a small and simple text merge tool written in Python. With Diffuse, you can easily merge, edit, and review changes to your code
(Link: Diffuse – graphical tool for merging and comparing text files)

Ellsberg: “EVERY attack now made on WikiLeaks and Julian Assange was made against me and the release of the Pentagon Papers at the time.”

As part of their attempt to blacken WikiLeaks and Assange, pundit commentary over the weekend has tried to portray Assange’s exposure of classified materials as very different from — and far less laudable than — what Daniel Ellsberg did in releasing the Pentagon Papers in 1971. Ellsberg strongly rejects the mantra “Pentagon Papers good; WikiLeaks material bad.” He continues: “That’s just a cover for people who don’t want to admit that they oppose any and all exposure of even the most misguided, secretive foreign policy. The truth is that EVERY attack now made on WikiLeaks and Julian Assange was made against me and the release of the Pentagon Papers at the time.”
(Link: Ellsberg: “EVERY attack now made on WikiLeaks and Julian Assange was made against me and the release of the Pentagon Papers at the time.”)

Wirify: one-click convert a page to a wireframe

Wirify is a bookmarklet that lets you turn any web page into a wireframe in one click. It’s lightweight and works in many modern browsers.
(Link: Wirify: one-click convert a page to a wireframe)