Tom Insam


There’s a kind of “civil society” which is mostly about the soft power of public opinion on the actions of government, and then there’s something else that I guess one might call “social capital,” which is why people don’t just go cut the throat of the neighbor and run off with his microwave. It’s been my experience that they’re not the same thing, and the one can actually get in the way of the other.

The Balkans has always been pretty low on “civil society,” because most political decisions are made in smoke-filled rooms by angry drunk guys. But in terms of “social capital” they’re quite keen on looking after one another. The populace is very polite and considerate, by American standards. Hold-ups, muggings, drive-bys, gang rapes, maniacal outbursts by guys with automatic weapons, they’re all practically unheard-of.

The feeling on the streets of Belgrade is vastly calmer and cozier than, say, Los Angeles. By the standards of Belgrade, you’d think that LA was a para-militarized civil war zone, even though LA has got “civil society” like nobody’s business.

The Italians are second-to-none with the “social capital,” which is a major reason why their government is so dysfunctional. Italy really isn’t a “nation” with a “government,” it’s a bunch of extremely civilized city-states where a nationalist lifestyle was imposed during the 1860s. If the local predators in France and Austria hadn’t invented national government, I don’t think the Italians would have ever gotten around to it.

Bruce Sterling, State of the World 2013, on the WELL

From the amusing PHP Manual Masterpieces, we have a function that combines my two favourite pastimes - date operations and using PHP!

int frenchtojd ( int $month , int $day , int $year )

Converts a date from the French Republican Calendar to a Julian Day Count. These routines only convert dates in years 1 through 14 (Gregorian dates 22 September 1792 through 22 September 1806). This more than covers the period when the calendar was in use.

I like the entry on frenchtojd particularly because of the virtually glossed-over:

Notice, however, that the documentation does not say what happens if you pass in invalid data [..] I’d try to find out empirically, but my online PHP shell has actually disabled this function for vague “security reasons.”

He’s ranting about the core library, but practically takes it as read that random subsets of PHP may or may not be available on whatever hosting provider you happen to be using? Is this problem just minor background noise compared to everything else?

(Has anyone tried to make a sane (and necessarily slightly incompatible) fork of PHP that actually has a “parser” and a “grammar” and other incredibly advanced compsci concepts? Something that would let people write a subset of the language that would actually be understandable?)

On the bright side, maybe the rise of nginx will lead to the downfall of PHP. Right now it occupies a privileged position as the unofficial Apache scripting language, but using nginx you can only call PHP through fastcgi, where it has the same overhead as everything else, and has to compete on features.

What that really means is that we can’t just bake the UI into some C code. Even a DLL system would have issues because we are cross platform. We need a flexible and extensible system for building UI that’s available everywhere. [..] So given all of that, what’s a logical system for us to use? We could certainly build a custom system and embed lua for example. Or we could license a 3rd party library like Scaleform and use Actionscript. Or we could do the obvious thing and simply use a web browser as the UI system. So that’s what we’ve chosen to do. Basically the client is a transparent web browser (webkit) window over the top of an OpenGL context. All of the front end UI and the top level game UI is being written in Javascript.

Emmett “Doc” Brown explains git-rebase

Also awful

While I’m complaining about geo, let’s drag up some old links about other things I hate working with.

On 24 January 1918 Lenin signed a decree that moved the brand-new Soviet Union from the Julian to the Gregorian calendar. In order to bridge the 14-day gap between Julian and Gregorian, 1-13 February 1918 were omitted, so that 31 January was directly followed by 14 February.

Making <time> safe for historians

In “I scanned %g directories”, you’d expect “directories” to be in the accusative case (since it is the direct object in the sentnce) and the plural number, except where $directory_count is 1, then you’d expect the singular, of course. Just like Latin or German. But! Where $directory_count % 10 is 1 (“%” for modulo, remember), assuming $directory count is an integer, and except where $directory_count % 100 is 11, “directories” is forced to become grammatically singular, which means it gets the ending for the accusative singular.

A Localization Horror Story: It Could Happen To You

People whose names break my system are weird outliers. They should have had solid, acceptable names, like 田中太郎.

Falsehoods Programmers Believe About Names

This is why I hate working on software that deals with space, time, people and languages.