"Development" Posts


Modifying browser history with Javascript

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

We lost the browser state when we replaced our Charts UI w/AJAX manipulation. While it’s possible to maintain state using an anchor ala Gmail (ie – gmail.com/mail?#inbox/THREAD), it breaks the separation between business and view logic. The server cannot access the state information contained in the anchor – it’s only accessible from the browser.

To maintain state, we’d need a combination of Javascript parsing and additional requests to retrieve chart data. Our views would be a confusing mess of logic. I’m glad we punted – we can maintain state in 3 lines of Javascript now.

Read More →

 

Data processing slowing you down? Try a teaser check

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

Your cluster of servers ping Scout every minute, but you may only login to our website once a day. There’s a large gap between the amount of work on the data-processing side and the number of times it results in a visit to Scout. It’s a typical profile of a data processing application.

For a write-heavy application like Scout, hardware costs can increase linearly with user growth. It doesn’t scale like a read-heavy web application that can leverage a fast, in-memory caching layer for frequent reads. You need to make writing data more efficient.

For us, teaser checks have dramatically decreased the time spent processing data.

Read More →

 

"I expected it to …" feature requests

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

When I bike into work, I coast down a decent hill. With gentle curves and smooth pavement for 99% of the decent, it’s a refreshing way to start the day. My one complaint: there’s a 2×2 ft. section in the final turn with bad pavement.

This tiny imperfection breaks up the natural flow: I need to remind myself of it before I descend. It’s a lot like my favorite feature requests: those that begin with “I expected it to …”.

These requests often hint at tiny imperfections our users experience, but live with. When fixed, it makes an entire workflow seem natural.

 

One change that lowered our DB I/O by 80%

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

When a server reports data to Scout, a small bit of data is updated in a MySQL MyISAM table. Each of these updates doesn’t change much data:

UPDATE `plugins` SET `last_reported_at` = '2010-11-17 19:53:00' WHERE `id` = 999999

I assumed that only the updated data was written to disk. I was wrong: Jesse Newland of Rails Machine pointed out that updating a row in a MyISAM table rewrites the entire row to disk (not just the updated columns).

These updates were expensive: we were updating small bits of data, but our table contained a large text column that accounted for 75% of the data stored in the table. Every update to a row in our plugins table would rewrite the large text column (even though the text column wasn’t changing).

Read More →

 

Where are the Rails infrastructure support firms?

By Derek Bullet_white Posted in Development, Business Bullet_white Comments Comments

There are no formal documents to sign if you and your spouse decide to have children. You don’t have to sit through an accreditation class. There is no credit check. You don’t need a high school diploma. Procreation can even happen accidentally.

A baby is a lot like a Rails application: the problem is caring for it, not creating it.

Five years ago, the typical Rails stack was just a couple of pieces: Apache/Mongrel, Rails, and MySQL. While Rails is remarkably similar to its original form even today, the stack around it is dramatically more diverse. We’re deploying to automated infrastructures, using NoSQL databases, messaging systems, queuing systems, and more. With the increased complexity of web applications, I’m surprised we’re not seeing companies dedicated to 24/7 infrastructure support: it doesn’t matter where your app is hosted, they manage it.

Read More →

 

Here's to the unsung developer heros

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

We’re fascinated with complexity. Write an article about the enormously high throughput/disk space/concurrency your application pushes and people will read it. You’ll speak at conferences. People will follow you.

It’s fun talking about a complex system, but it can be tiring caring for one. I love Woz’s focus on efficiency when starting Apple:

It’s can you, Steve Wozniak, design the same computer – maybe it’s a Varian 620i – can you design it on paper with fewer chips than last month? Can you design it with 79 chips instead of 80 chips?

Here’s to the oft-ignored, seldom blogged-about, patch-commiting developer doing the dirty work, making the tools we already use more efficient a line at a time.

 

Older posts: 1 ... 5 6 7 8