- O’Reilly Radar: Google Bets Big on HTML 5. The big takeaway from this is that current browsers already support a big chunk of HTML 5.
- Webmonkey: Google Throws Its Weight Behind HTML 5. More coverage.
- O’Reilly Radar: Google Wave: What Might Email Look Like If It Were Invented Today? Really interesting new project from Google.
- Introducing Typekit. Third party hosting for embeddable fonts. This could be huge.
- The New Yorker: Annals of Medicine: The Cost Conundrum. Convincing argument that capitalism is driving rising medical costs, delivering inferior care to patients and lining the pockets of doctors and the health care industry. This is a must-read for anyone who cares about health insurance.
Tag Archives: Web development
Quotable: Simon Willison
This is a great definition of a microframework:
Microframeworks let you build an entire web application in a single file, usually with only one import statement.
Links from March 30th
- Jason Santa Maria: Reflections on Layer Tennis. Really, really great post on participating in Layer Tennis. I loved this.
- SF Gate: Food, service uneven at Absinthe. A review of Top Chef participant Jamie “Top Scallop” Lauren’s San Francisco restaurant by Michael Bauer. Brutal.
- John Resig: Determining Browser Market Share. Deep thoughts on measuring browser market share.
- New York Times: Vast Spy System Loots Computers in 103 Countries. Uncovered by researchers at the University of Toronto. Also read this followup from James Fallows.
- Goodnight, Raleigh: Memorializing a Magnificent Oak and “The Great Pacificator”. A little local knowledge about Raleigh.
- The Economist: Germany’s racy auto banks.
- Tim Bray: On Rack. A nice, short introduction to Rack, the glue that provides an interface from Ruby applications to Web servers.
- MySQL Performance Blog: PROCEDURE ANALYSE. Very useful for optimizing your MySQL schema.
- Vanessa Fox: Transforming the Relationship Between Citizens and Government: Making Content Findable Online. Advice on making data more searchable, pertinent to anyone publishing online.
- Last.fm: Last.fm Radio Announcement. Users not in the US, UK, or Germany have to pay up to listen. Music licensing sucks.
- LastFM Firefox Extension. Scrobbles Pandora tracks to Last.fm, for people like me who feel weird anytime they listen to a song and the data isn’t transmitted to Last.fm.
- intranation: Development virtual machines on OS X using VMWare and Ubuntu. A clever alternative to MacPorts or Fink.
- Trustico: Buy GeoTrust, VeriSign SSL Certificates At Cheaper Prices – Strategic Partner United States. I hate paying for certificates. These guys are cheap.
Links from March 23rd
There are a whole ton of links in the backlog today.
- xhtmlrenderer: The Flying Saucer Project. A tool to render HTML in PDF format (supports CSS).
- Antonio Cangiano: Ruby’s Biggest Challenge for 2009. A plea for Ruby developers to move to Ruby 1.9.1. Getting all of the libraries and Rails plugins updated is going to be a big job.
- Ajazxian: Richard Stallman: Free the Javascript. People make full of rms, but he is an extremist for a good cause. His radical stance in many ways frames a debate that is worth having.
- TV Guide: Battlestar Galactica’s Ron Moore Answers Our Burning Questionsm. I totally get the unhappiness with all of the deus ex machina aspects of the series finale, but I enjoyed it anyway.
- Thoughtbot: Testing Rake’s Integration. How to write integration tests for Rake tasks.
- Doug Bowman: Goodbye Google. Remarks on leaving Google. Nice reading for all of us who were never offered a job by Google.
- The Big Picture: Scenes from 30,000 meters above. High altitude photographs taken by a weather balloon launched by Spanish students.
- The Best Pictures from the BOREALIS Archives. Another student weather balloon project.
- Karl Martino: Here’s to dreaming big and doing it. More links relating to the weather balloon project.
- What they make: The highest paid chief executives in digital media. I’m surprised the CEO of Tivo makes more than the CEO of Netflix.
- WoW Insider: Authenticator app coming to iPhones, iPods, and other mobile devices. Blizzard is expanding the authentication options that prevent World of Warcraft account theft.
- FiveThirtyEight: Why AIG Paid the “Bonuses”. Most interesting remarks I’ve read on this topic.
- istartedsomething: Expression Web SuperPreview makes cross-browser testing like moist delicious cake. Seems like a major advance in cross-browser testing.
- Laughing Meme: Streams, affordances, Facebook, and rounding errors. Insightful remarks on the Facebook redesign.
- New York Times: Hadoop, Analytical Software, Finds Uses Beyond Search. I still don’t understand MapReduce as well as I should.
- Antonio Cangiano: Introducing Redis: a fast key-value database. Still looking for the right project to use this technology for.
- The Annotated Watchmen. For after I finish the graphic novel.
Web site CPU usage
Brent Simmons says that developers should profile their Web pages to see how they affect the CPU usage on end user computers. My wife uses an iMac G5, and I can tell which Web sites she’s using based on how loud the fan is. There are plenty of Web sites that keep the fan running all the time, even if she walks away from the computer. This is an area of Web development that has been ignored but should not be.
Filtering versus conditional logic
One aspect of jQuery that I’ve really come to appreciate is its ability to apply filters to elements on a Web page. Let’s say, for example, that you want to disable all of the links on a Web page if the user has not yet logged in.
In most server-side frameworks, this requires you to add conditional logic to every link on the page (or just use a different template entirely). In PHP, you’d have to do something like:
<?php if ($login_page) { ?>
My stuff
<?php } else { ?>
<a href="">My stuff</a>
<?php } ?>
You could perhaps shorten that a bit if you were clever, but that’s what you’re up against. And the problem is that you have to repeat it 100 times if you have 100 links on the page. You have to add a lot of code to your page to do something relatively simple.
On the other hand, with a tool like jQuery, you can accomplish something similar with one line of code.
$("a").bind("click", function(e) { return false; });
Needless to say, it’s a much cleaner and simpler approach. This approach won’t work in terms of security since users can just disable JavaScript, but it’s great in terms of clarity and simplicity.
What I’m wondering is why more server-side frameworks don’t have similar selector-based DOM manipulation tools built in. Wouldn’t it be cool if you could attach such filters to views on the server side and manipulate the output page before it’s presented? Why isn’t this more common?
Google on rewriting dynamic URLs
Google says that rewriting dynamic URLs is obsolete as far as they’re concerned. Google has no longer has any problem indexing sites that are built using dynamic URLs.
I prefer frameworks with nice URLs, but if you’re not using one, it’s fine to just go with the standard URLs produced by the application rather than using Web server hacks to make improvements that are no longer needed.
When’s framework overhead justified
The other day we had an interesting discussion at work about when the overhead of using a framework is justified. Incorporating a framework into an application has costs in terms of performance and complexity. In this case, we have a few JavaScript features that we wind up using on most Web sites, and the question was whether or not to use jQuery to reimplement those features, or to just use some simple home grown scripts that we already had.
The argument against was that we already have scripts (even though they need some updates), and that the compressed jQuery file is still over 20 kilobytes. Plus it’s an additional dependency that could introduce conflict with other choices we make later on.
In the end, we wound up choosing to include jQuery, for a couple of reasons. The first is that it makes the framework responsible for most of the code that’s likely to require more maintenance due to browser inconsistencies. When Internet Explorer 8 is released or Firefox 3.1 comes out, jQuery contributors are likely to find most of the bugs and inconsistencies and release an update that fixes them. Even if I have to fix some of those bugs, I’ve found that the frameworks still save time. I had to fix an Internet Explorer 5 bug in Prototype once, and I didn’t find it that difficult, even though most of Prototype’s source looks like magic to me.
The second is that incorporating the framework lowers the bar for adding new features to the Web site. If jQuery is already available, the barrier to writing new features is much lower than it is when writing those features from scratch, and I don’t have to revisit the decision whether or not to add a framework at that point. It becomes a tougher decision when you already have non-framework code in place.
I’ve become a fan of using a framework from the start, especially if the framework adds at least some value to even simple tasks. For example, JavaScript frameworks like jQuery make almost everything you do a little bit simpler, from binding events to altering styles on the page. They may not save you much time in your initial efforts because you’re doing something simpler, but you’ll be prepared to reap more efficiency as you add features to the site in the future. And you’re then not forced to make a tougher decision about when to add the framework later (especially if it would require writing non-framework code).
There’s probably an economic argument to be made here about marginal costs. Adding a framework increases the fixed costs of an application in terms of time and complexity, although the simplest frameworks make these fixed costs almost negligible. There’s a cost involved with setting up the framework and learning enough about how it works to employ it effectively. However, the right framework will lower the marginal cost of new features.
My thought is that it’s almost always worth it to eat the fixed costs of using a well-chosen framework to gain the marginal cost benefits when writing new features.
Adobe is making Flash searchable
Looks like one argument against building Web sites in Flash is going to bite the dust. You still shouldn’t build Web sites in Flash.
Why Firebug is awesome
jQuery creator John Resig explains the advances that FireBug brought to JavaScript development. I’d say that I didn’t really take JavaScript seriously until I started using FireBug.
He also has a list of potential improvements to FireBug, including porting it to work with Internet Explorer. Given the amount of time Web developers spend debugging weird issues in Internet Explorer, a tool like FireBug would literally be life changing.