js-spec: Want to do BDD in Javascript? This aims to clone rspec (http://rspec.rubyforge.org) in javascript.

For now it's very basic, but stuff like the following works.

describe("A newly created Tic-Tac-Toe", function() {
  with (this) {
    before("each", function() {
      this.game = new TicTacToe();
    it("should have 9 empty cells", function() {
      game.cells.should( have(9, "items") );
      game.cells.each(function(cell) {
        cell.should( be(undefined) );
    it("should have 0 players", function() {
      game.should( have(0, "players") );

Stay tuned for more :)
Ask questions, make suggestions and post bugs at http://code.google.com/p/js-spec/issues/ [Nice to see BDD spreading…]
Source: Scripteka

Bloomberg Says Let Them Eat Fruit

Bloomberg Says Let Them Eat Fruit: Speaking at a press conference announcing the plan, Health Commissioner Dr. Thomas R. Frieden pointed out that “we are in the midst of an obesity epidemic. In some neighborhoods, rates of obesity and diabetes are 50 percent higher than the citywide average.” But the Neighborhood Retail Alliance opposes the plan, fearing a loss of business to the carts. Richard Lipsky, a lobbyist for the bodegas, told the Daily News the “real problem is the lack of demand. If the demand was high, the stores would be well-stocked.”[This comment, while rational on its face, fails utterly in the specifics. Salad and fruit are an important part of a healthy diet. But they’re not particularly calorie dense. When your hungry and you don’t have a lot of money, calorie density calls out to you… you look for carbs and sugars. Since we make chips and snack foods mostly from corn and corn divisions, they are inexpensive from a quantity standpoint, and high in sugars and carbs… exactly the sort of food that overweight and diabetic prone folks ought not to be eating. Additionally, vegetables and fruit need to be eaten fresh, and therefore purchased more often, so a busy person will buy some but less, since you can’t store it as long as a packaged food. All in all, it is a vicious circle that is hard to break. I’m not sure that this is an answer, but it certainly can’t hurt.]
Source: Gothamist

City Pedestrian Crossings Are Discriminatory by Design

City Pedestrian Crossings Are Discriminatory by Design: The team found that senior citizens begin to show signs of distress and engage in dangerous crossing behavior — such as speeding up their walking pace, walking unsteadily, standing in the street before beginning to cross and crossing before the signal has changed — at wider crossings to compensate for the fact that they walk at slower speeds. Coupled with the fact that 95 percent of vehicles observed during the study period did not yield to pedestrians, the study concludes that wider streets present unacceptable risks to elderly pedestrians. These risks have an overwhelming impact on the well-being and quality of life of senior citizens. [What a mess…]
Source: StreetsBlog

Announcing SunSpider 0.9 (A New JavaScript Benchmark From the WebKit Team)

Announcing SunSpider 0.9: Incidentally, we’ve been doing a lot of work on JavaScript performance lately. If you’re interested in helping out, stop by the webkit-dev@webkit.org mailing list, or the #webkit IRC channel on chat.freenode.net and say hi. Our engine is highly hackable so it’s easier than you think to get started.[I so love it when others do performance work…]
Source: Surfin’ Safari

The power of checklists

The power of checklists: “Pronovost and his colleagues monitored what happened for a year afterward. The results were so dramatic that they weren’t sure whether to believe them: the ten-day line-infection rate went from eleven per cent to zero. So they followed patients for fifteen more months. Only two line infections occurred during the entire period. They calculated that, in this one hospital, the checklist had prevented forty-three infections and eight deaths, and saved two million dollars in costs.”
[All they did was to create a checklist and empower the nurses to ensure that all doctors followed the checklist. Pronovost was smart about how he engaged them, see Mark’s post for more about that.]

Janette Sadik-Khan: A Reason to Love NYC in 2007

Janette Sadik-Khan: A Reason to Love NYC in 2007: But recently, the DOT has been championing some very un-DOT ideas. It has replaced parking lots and traffic lanes with chairs and umbrellas in Dumbo and the meatpacking district and installed a new, physically separated bike lane on Ninth Avenue; it is pushing the mayor’s controversial congestion- pricing plan; and, in a symbolic act, it has given over three parking spots by the Bedford Avenue L stop to bike racks. Taken together, it’s as if the department has awakened to the idea that streets belong to people, not their vehicles.

The difference can be summed up in one name: Janette Sadik-Khan… [Go! Go! Go!]
Source: StreetsBlog

Rails 2.0.2: Some new defaults and a few fixes

Rails 2.0.2: Some new defaults and a few fixes: SQLite3 is the new default database

Most importantly is SQLite3 as the new database we’ll configure for by default when you run the rails generation command without any specification. This change comes as SQLite3 is simply an easier out of the box experience than MySQL. There’s no fussing with GRANTs and creates, the database is just there. This is especially so under OS X 10.5 Leopard, which ships with SQLite3 and the driver gems preinstalled as part of the development kit.

If you want to preconfigure your database for MySQL (or any of the other adapters), you simply do “rails -d mysql myapp” and everything is the same as before. But if you’re just playing with a new application or building a smallish internal tool, then I strongly recommend having a look at SQLite3. Thanks to the agnostic db/schema.rb, it’s as easy as changing your config/database.yml to switch from SQLite3 to MySQL (or another database) as soon as your load warrants it. [OK. Nice to the tweaks flowing…]
Source: Riding Rails

A New PickAxe

A New PickAxe:


Ruby 1.9 is just around the corner, so it looks like a good time to create a new edition of Programming Ruby. So, I’m pleased to announce that the Third Edition of the PickAxe has just entered beta.

The book’s home page is at http://pragprog.com/titles/ruby3.

Although 1.9 is largely compatible with 1.8, there are definite differences. And it’s been an interesting ride getting the examples in the book to compile and run with the current 1.9 interpreter. The book pushes the envelope in many different areas, and includes example code designed to illustrate edge cases. When I find these, I’m flagging them in the text and (if they look like bugs) adding them to the tracking system. But, so far, 1.9 is looking like a big win for Ruby.

[The original guide, which so many used to get started with Ruby. Looking forward to 1.9, and now reviewing this edition.]
Source: PragDave