Archive for May 2008

Saturday, May 31, 2008

Spaces in 10.5.3

John Gruber:

One non-obvious detail is that you can switch to another space by clicking an app’s Dock icon multiple times. If you click a running app’s Dock icon once, that app will activate in the current space. If it doesn’t have any open windows in the current space, it will activate without creating a new untitled window. But if you click that same app’s Dock icon again, you’ll jump to the next space in which that app does have an open window.

Thursday, May 22, 2008

Denormalize to Scale

Hank Williams recommends that Twitter denormalize its database so that it can be split up:

In typical normalized databases you would want to store every message sent only once and not in two places as I suggest above. But while perfectly normalized databases make for “cleaner” databases, they cannot scale. Database purists often speak of the merits of normalization. And certainly some normalization is generally necessary. But in the new database world, a perfectly normalized database is an un-scalable database.

Update: Twittering About Architecture.

Tuesday, May 20, 2008

Why Comic Sans?

Vincent Connare:

Comic Sans was designed because when I was working at Microsoft I received a beta version of Microsoft Bob. It was a comic software package that had a dog called Rover at the beginning and he had a balloon with messages using Times New Roman.

Monday, May 19, 2008

iPhone Security Tips

Rich Mogull:

The biggest problem with the iPhone’s VPN is that it doesn’t engage automatically. If you wander in and out of a Wi-Fi network’s coverage, and the iPhone switches to EDGE and back, you’ll lose your Internet connection (if the VPN connection tries to remain active) or your VPN protection (if it does not). Here’s hoping Apple fixes that in the iPhone 2.0 software.

3G Music Store

John Gruber:

So let’s get this straight. The music labels think we should pay more for a song downloaded from a server that isn’t theirs, over a network that isn’t theirs, because, well, just because.

Thursday, May 15, 2008

Introducing Google Doctype

Mark Pilgrim:

In its current (beta) form, Google Doctype contains dozens of articles written by top Googlers on topics important to all Web developers: security, performance, caching, DOM manipulation, CSS styling, and more. It contains over 8,000 lines of JavaScript code: Google’s own battle-tested JavaScript library, released today under a liberal open source license. And it contains the beginnings of a test-driven reference of the open Web: a reference of every element, every attribute, every DOM method, every CSS property, all backed up by test cases.


gitshelve is a Python module that follows the shelve interface but stores the data in a Git repository, providing efficient storage and snapshots.

Tuesday, May 13, 2008

Safari Link Exposer

For quicker referral skimming, Daniel Jalkut uses FastScripts to run an AppleScript that runs a JavaScript that tells Safari to highlight links in the current window that point to his Web site.

Saying Hello (Again) to Visual Basic

Erik Schwiebert:

Almost two years ago, back at WWDC in August 2006, the MacBU announced that Office 2008 would not have support for Visual Basic. I blogged about it at the time, and that one post has proven to be my 15 minutes of Internet fame. It continues to be the most popular post on my site — 21 months later, it still accounts for almost half of all the hits I get each week. A section of the Mac community spoke out very vocally against our decision, and I still hear echos of it to this day.

This isn’t a done deed yet, but I’ve got a new commitment for you.…VB is (well, will be) back, baby! When we came to the realization in 2006 that there was no way for us to keep VB in the product and still ship Office 2008 on any semblance of the schedule we wanted, we announced its removal, but kept looking at how to bring it back into the suite even before we shipped. Many of the technical challenges I wrote about then still remain, but for a while now I and several others have been working with a group of people who know a heck of a lot about the internals of VB, and once we determined that we could achieve the revival VB in the new schedule for the next version of Mac Office, we locked it into place on the feature list.

Update: Office 2008 SP1 is now available, and it has release notes.

Monday, May 12, 2008

Dynamic Languages Strike Back

Steve Yegge gave a talk at Stanford with lots of interesting information and links about dynamic languages and performance:

Java inlines polymorphic methods! Now the simplest way to do it was actually invented here at Stanford by Googler Urs Hoelzle, who’s, you know, like VP and Fellow there, and it’s called, it’s now called Polymorphic Inline Caching. He called it, uh, type-feedback compilation, I believe is what he called it. Great paper. And it scared everybody, apparently. The rumors on the mailing lists were that people were terrified of it, I mean it seems too hard. And if you look at it now, you’re like, dang, that was a good idea.

So when we talk about performance, it’s all crap. The most important thing is that you have a small system. And then the performance will just fall out of it naturally.

What’s happening is: as of this Ajax revolution, the industry shifted to trying to optimize JavaScript. And that has triggered what is going to be a landslide of research in optimizing dynamic languages.

Update: Avi Bryant responds:

The following two statements are true:

  1. Strongtalk has an optional static type system.
  2. Strongtalk is 15-20x faster than most other Smalltalk systems.

What’s false is the causal link Steve is claiming between them.

Saturday, May 3, 2008

Bye Matlab, Hello Python, Thanks Sage

Vincent Noel:

[SAGE] is basically a wrapper around Python with tons of scientific packages added, all nicely pre-compiled into tasty binaries just for you by very nice people (which involves tons of work, not as simple as it sounds). These goodies come in gzipped tarballs that you dump into your $HOME. You can then launch the sage program, which handles regular Python just fine and includes all the modules I was longing for: NumPy (easy, efficient handling of huge numerical array with slicing and dicing), SciPy (input/output and scientific functions), Matplotlib (lots of plotting tools with lickable, anti-aliased output and a syntax almost identical to Matlab)! Even IPython is there, meaning you get a comfortable interactive experience with tab completion on files, objects, dictionaries and tons of other niceties!…Matlab without Matlab.

Friday, May 2, 2008

Subversion’s Future?

Ben Collins-Sussman:

I’ve chatted with other developers, and we’ve all come to some similar private conclusions about Subversion’s future. First, we think that this will probably be the “final” centralized system that gets written in the open source world — it represents the end-of-the-line for this model of code collaboration. It will continue to be used for many years, but specifically it will gain huge mindshare in the corporate world, while (eventually) losing mindshare to distributed systems in the open-source arena.

The thing is, DVCSs can be preferable to Subversion, even when used in a centralized style. That’s mostly how I use Git, but I appreciate its speed, the efficiency of its disk use (much less space used and many fewer files, which really matter for multi-gigabyte repositories), merging, and not having to worry about .svn folders getting clobbered or moved to the wrong place when I reorganize. Subversion works well, and there are a lot of tools that integrate with it, but as the ecosystems for the DVCSs improve, I can’t see why they wouldn’t start to gain mindshare and marketshare, even outside the open-source world.

Secondly, I don’t really see why Collins-Sussman thinks that Subversion’s advantage is with large projects. I think it’s the opposite.

Thursday, May 1, 2008

ATPM 14.05

The May issue of ATPM is out: