Ajax, Browsers, Running Out of Time

Ajax, Browsers, Running Out of Time:Help is on the way, in the form of bytecode interpreters and vm’s for Safari and Mozilla, though the future of IE is still cloudy (still, there is a plan to bring Tamarin to IE). But if the new Browser version don’t arrive quickly enough, or if they don’t fully solve the problem of browsers crashing once an hour, then a mass migration to Opera may be the best we can hope for. At worst, content and application producers will opt for more stable non-Ajax alternatives such as Flash or Silverlight.
[I’m no so heavy a user of my browser under most conditions. I find apps that connect to the web either as services or as app specific browsers are a more compelling experience, and so many of the “web apps” I use run locally on my desktop while I have my home environment. But I can see the problem and work hard as coder to minimize the problem, would be nice if the lower level stuff made this easier and less leak prone.]
Source: Ajaxian

DSL book Work In Progress

DSL book Work In Progress: Updated web site: Over the last few months (actually many months),
I’ve been working on a book on Domain Specific Languages. I’m
now at the point where I think it’s worth pushing out my work in
progress. This page will keep you informed on where things are
(and there’s an atom feed too). Rather than drop it all out in
one huge dollop, I shall release what I have so far in bits over the
next few weeks. Once I’m caught up I’ll release material as I’m
writing it. [Cool.]
Source: Martin Fowler

Ruby stuffs

Two things worth noting:

def something(x = 0)
  ...
end

doesn’t ensure that x is set to a value of zero, because the method could be called with nil [something(nil)] so to ensure a default value of zero even in the face a call with nil

def something(x = 0)
  x ||= 0
  ...
end

would do the trick.

The second is that when adding text and an object’s property

x = 'some string'
y = x + something.description

that if something.description is nil, the addition will fail, but if you interpolate ala

x = 'some string'
y = x + "#{something.description}"

something.description evaluates to empty string and therefore won’t fail.

Two subtle regressions our tests caught today when refactoring, but were not easy to see in the code.
Onward!

ZFS and The Holy Grail of Storage

ZFS and The Holy Grail of Storage:

I’ve wanted that for years, but I’ve largely dismissed it as a pipe dream, because it doesn’t fit cleanly into the drive/RAID/LVM/filesystem model that everything uses. The only thing that I’ve seen that even comes close is Drobo, and it’s supposedly fairly slow and really just too “magic” for me to trust.

[Even this isn’t what I really want… although the Drobo seems nice. I want the same sort of thing, but I want to two pools… one for the time machine backups and one for the “live boot image” type backup. I admit that in some cases that might be overkill, but not for business related stuff. I admit that it wouldn’t take long because of the “virtual nature” of so many apps to go from blank machine or disk to up and running (all my code is in repositories, schedule, mail and stuff is on the web etc., but still) but I keep a fairly up to date back up anyway, because if the failure occurs near a deadline (and doesn’t it always? Praise Murphy!) I don’t really want to be mucking about with that, I just want to get things done. Anyway, having two per machine would make it easy to have both, and having one hardware device that could do that or more would make it easier to manage. In the meantime the individual hard drives are piling up… I should add that a pair of Drobo’s per machine seems costly to me… Other suggestions?]
Source: *scottstuff*

Owning your namespace

Owning your namespace: But WebCite has a different, and very special, mission. It’s for scholarly and professional authors whose articles are themselves persistently linkable by way of Digital Object Identifiers. Increasingly those articles cite more ephemeral things, like blog entries. Using a WebCite bookmarklet, these authors can produce URLs that point to archived copies of web pages. Think Wayback Machine, but you can ask to have an item archived and be sure that it will be.[Interesting.]
Source: Jon’s Radio

The seven rules of unobtrusive JavaScript

The seven rules of unobtrusive JavaScript: I’ve found the following rules over the years developing, teaching and implementing JavaScript in an unobtrusive manner. They have specifically been the outline of a workshop on unobtrusive JavaScript for the Paris Web conference 2007 in Paris, France. I hope that they help you understand a bit why it is a good idea to plan and execute your JavaScript in this way. It has helped me deliver products faster, with much higher quality and a lot easier maintenance. [Good stuff.]

scripteka

Prototype UI: Prototype UI is a javascript library based on Prototype 1.6 and Script.aculo.us. It's an extensive and fast growing library of UI components which can be used in complex web applications. Currently, Prototype UI provides such modules as Carousel, Modal window, Shadow and Context menu which can be used as one package or independently.”[Scripteka is collection of prototype.j extensions and libs. Excellent.]
Source: Scripteka

The $8 billion story/scam or Gift cards are for chumps

The $8 billion story/scam: Last year, more than $8,000,000,000 was wasted on these cards. Not in the value spent, but in fees and breakage. When you give a card, if it doesn’t get used, someone ends up keeping your money, and it’s not the recipient. People spent more than eight billion dollars for nothing… buying a product that isn’t as good as cash.

If I were a creative non-profit, I’d start marketing alternative gift cards. They would consist of PDF files you could print out and hand over to people when you give them cash. It could say,

“Merry Christmas. Here’s your present, go spend it on what you really want. AND, just to make sure we’re in the right holiday spirit, I made a donation in your name to Aworthycause.”

Stories come and go. It’s up to marketers to spread the good ones.

[Right on! Spread the meme: Gift cards are for chumps!]
Source: Seth’s Blog