company-logo

Category

Software Development

Quick application prototyping solved

I can not overstate the importance of getting some actual User Experience out there quickly for feedback. Mockups being static do not convey that critical aspect of interaction so they don’t pass muster. It often takes development dollars to realize an app was great only in picture format and that to make it a good app you’d need to double the original budget. Ouch. Amir Khella was so nice to elaborate on
Read More

The Top 10 applications we don’t want to build

1. I need an application to get around constraints imposed by a vendor, whether it’s Microsoft, Apple (iPhone). – They’re going to find a way to block you or sue you before you recover your costs. 2. I want an application that combines the features of Facebook, MySpace and YouTube. – Only a few people have enough money to compete successfully and they know better. However, if you can create a niche (a spe
Read More

Dude, where's my Flash RGB?

photo credit: Jamal Ahmad Flash has a great function for changing pixels that meet specified color criteria on a Bitmap to a new color: threshold() on a BitmapData object. I learned about this function recently while working on a data visualization project in which the user wanted to be able to toggle a color-coded measurement value on and off. Upon discovery of threshold() the plan was simple: replace all pixels of
Read More

Simple Rails Performance Tip – ActiveRecord Batch Retrieval

Users.each do |user| puts user.name end Ever wondered about how expensive a simple “.each” on an ActiveRecord object collection is. This essentially means for every iteration of the loop, there is going to be a database fetch. Imagine looping over a collection that has 10,000 records (forget millions..). Yes, I have made use of this very same thing a bunch of times without realising the kind of performanc
Read More

Installing mysql gem with bundler on Snow Leopard

Between 0.9.26, RC and final 1.0 release, bundler went thru some heavy changes with respect to command line options it supports. Luckily, twitter, forum and blogs kept everybody in the loop. The blogs, however, became obsolete quickly and even blog posts few months old don’t work with latest version of bundler. We came across this issue that kept is in a loop for a while. Snow Leopard changed a few things with
Read More

Git is for Playing

photo credit: Felix Francier I’ve been using Git for close to a year now, and I cannot remember what I did before it. I literally forget the process involved in doing certain things with subversion, cvs, and (shudder) vss. At first it was a bit of a struggle sure. The gui tools are somewhat lacking, but what is there is decent enough. I like Gitx a lot for what it does, but mainly I use it for partial commits,
Read More

Which is Harder? Simplicity or Power?

photo credit: the_moog We develop digital products. Lots of them. So when I talk about things that are hard or easy to do, it’s based on hard won experience. Two products that we’re about to help clients launch provide a perfect contrast on the two kinds of “hard” you find in software product development. First we have a data visualization app that cranks through 72 million point datasets and
Read More

Why use an index, when I can scan the whole table?

After working in ruby on rails for a number of years, I have found a number of performance related bottlenecks due to a lack of indexes on the database tables. I’ve noticed that most rails developers don’t write much SQL anymore, which is great, but also sometimes a problem. Back in the day, you really got your hands dirty in SQL, which made you really think of tuning the database. As relational databases
Read More

Agile for Primary Schools?

photo credit: Wootang01 The NYT had a very interesting article back on September 6th, entitled In a New Role, Teachers Move to Run Schools. I didn’t have time to blog about it, but wanted to come back to it  since it rang a lot of agile bells. The idea is that teachers, rather than principals, make decisions about how to run a school. Hmmm, self organizing teams, continuous improvement, motivated teachers? Soun
Read More

Avoiding Fear, Loathing, and Analysis Paralysis

When starting a new project, we employ a technique we call Inception.  At a high level, the goal of Inception is to develop a shared vision for the project, come up with an initial scope (user story list), provide an updated estimate, and identify areas of risk. A pitfall that is challenging to avoid is getting stuck in analysis paralysis.  Our customers love to dig into the details of how each story could work.  Our
Read More