The Multi-Minion Machine

A Function of Scale Draft 1, Ernest Prabhakar, 2013-08-08 The Sequel to "The Minion Machine" The Premise Real systems aren't linear, but have scales where the cost is fixed below, but astronomical above. The Goal Extend/Restrict the Minion Machine to capture what it means to operate at "optimal scale". The Concept Define a Multi-Minion Machine as a... Continue Reading →

The Minion Machine

The Action of Complexity Draft 2, Ernest Prabhakar, 2013-08-07 Inspired by a proposal from Christy Warren The Premise Using concepts derived from physics such as Energy and Time, we can gain insight into the nature of computational complexity. The Goal Devise the simplest possible physical system that captures the aspects of computation relevant to complexity... Continue Reading →

Summary: Retrospective Thoughts on BitC

In my opinion, BitC is the most innovative take on systems programming we've seen since the invention of C.  While sad that it failed, I am deeply impressed by the thoughtful post-mortem by Jonathan S. Shapiro.   Here are links to the various threads of his analysis (and the equally thoughtful responses): [bitc-dev] Retrospective Thoughts on BitC... Continue Reading →

RIBS: Marrying the REST and MVC Design Patterns

[Diagram updated on 10/27. Thanks to @frozencanuck for his feedback.] The RIBS diagram is my third attempt to extend the wildly-succesful Model–View–Controller design pattern to encompass first the The DCI Architecture and now the REST architectural style.  This time, I started by reverse-engineered the design principles behind the Ki Statechart Framework, particularly their use of statecharts as coordinating controllers.... Continue Reading →

DIDA: Reinterpreting MVC object modelling in light of DCI

[UPDATE: This post has been obsoleted by SIDA: Moving Object-Oriented Design beyond Model-View-Controller] I recently read about The DCI Architecture: A New Vision of Object-Oriented Programming, a successor/complement to the original Model–View–Controller design pattern, by one of the original authors.  The DCI stand for: Data Context Interaction I was both impressed and confused.  Impressed because I've been thinking for... Continue Reading →

What Makes Programming Languages Successful?

Following up on my (subjective) list of what I like about Ruby, here's a (relatively objective) list based on articles about what makes programming languages successful. The characteristics widely-adopted languages seem to share: Generality (suitable for a wide range of problems) Extensibility (can easily be extended with new abstractions) Novelty (solves a certain domain of problems... Continue Reading →

What I love most about Ruby

I have some friends (Hi Dustin) that are serious language geeks, whom I often get into debates with. One of my common refrains is "to do it the Ruby way", because (while Ruby has its warts) it does so many little things beautifully well. So, as future ammunition, I figured I should try to collect links to my favorite Ruby features (much as many others have already done before me).

Migrating from Steel.app to 1Password

For years I've used Steel.app from Gravity to manage all my passwords. Alas, as sometimes happens, they've decided to discontinue that product. 😦 To their credit, they're offering a 20% discount on the User-Friendy-but-Ugly-Safari-Hack 1Password from Agile Web Solutions. Unfortunately, since Steel.app is freeform and 1Password is structured, they say you have to cut and... Continue Reading →

Blog at WordPress.com.

Up ↑