Archive for May, 2007


Since I’ve been looking at languages for embedding/scripting purposes lately, I naturally came across LOLCODE. I’d been leaning towards Ruby as the overall most elegant, cleanest, robust language I could find, but how can you beat this?

		BTW this is true
		BTW this is false



Fun with language filters

All MMOs have profanity filters. Usually optional, but always available.

This week I had to look at a ticket about a particular player who was forced to change his name for “no apparent reason.” It turns out his name, his whole name, not a substring, had been added to the profanity filter in the most recent patch, which will cause an automatic rename. The closest translation of his name (it was German) appears to be “rascal”, but obviously more derogatory if someone put it in the profanity list. I’d link you the google translation of the German wikipedia page, but I don’t want to cause the player any grief by posting his (old) name.

Adding actual substring matching to profanity filters is usually a bad idea. You might think there are certain words that are always bad even if they only match substrings. You might even go and add them to the list.

Until your game winds up filtering out “Brightwater Lake”

That happened in beta. Look closely.

Also, the forums used to filter out cockroach.

Comments (1)

OS X includes 12 real programming languages

Maybe more. Some of these are only there after you install the developer tools, but that’s still on the included install disc.

  • Perl
  • Python
  • Java (javac is included)
  • Bash
  • Emacs Lisp
  • Javascript
  • Ruby
  • C/C++ (C++ is a superset of C for practical purposes, even though there are a few incompatibilities)
  • Objective C
  • AppleScript
  • PHP
  • Tcl

Even Flex and Bison are there in case you feel like making up your own language.

That’s an incredible wealth of development tools right out of the box (if you count a few extra clicks on the install disc as “out of the box”). Of course, most Unix-like systems like Linux will have all of those languages (except AppleScript) available from the get go too (though I was really surprised and pleased to find Ruby there!) You should expect any modern operating system to come with a similar suite of languages. They’re all free, why wouldn’t every OS maker include them? The more languages you have out of the box, the more likely people are to write software for your OS.

So what does the number one OS include?

  • Javascript
  • Batch files

Sorry if I’ve missed anything there, it’s definitely possible, especially with Vista, which I’m not really familiar with. I think they may have added a new scripting system in Vista. I’m not actually sure if there’s a new language to go with it though, or just more hooks for languages in general. But even if I did miss something, there’s still not much there.

It doesn’t matter as much now that downloading any of those languages is trivial, but I do think it still matters. And Microsoft charges money for their IDEs. If they weren’t the dominant OS, that would be a recipe for disaster. Every other OS maker needs the barrier to entry to development to be as low as possible. I know Microsoft does offer free stripped down versions of Visual C++ et. al these days, and that others sell IDEs and compilers for other OSs, but Microsoft is the only OS maker that also tries to make you pay them even more for the privilege of creating software for their OS. Apple gives you a really good C/C++/Obj-C IDE (not to mention Emacs, the bearded Unix geek’s IDE) for free plus all those other languages to play with.

So anyway, I’m about to start playing around with Ruby to see if it’s something I want to use for future large-scale projects. I’m procrastinating by writing this post. But finding it already installed on my Mac made me think about how great it is having all those languages right there, just in case.

It doesn’t have Erlang though (It did build and run just fine after downloading it). Erlang is another interesting language I might write more about later. Anyone interested in concurrent and distributed processing should at least go read about it. It’s not well suited to a lot of things, I wouldn’t want to write a whole game in it. But there are bits and pieces where it might be exceptionally useful and robust.

Comments (1)

The price of gas

I don’t really have a big problem with the price of gas. It’s cheaper in the U.S., even in California, than most places in the world.

I do have a problem with the Shell station near here. They’ve added video advertising over every pump. I hated it when Ralph’s added it at every checkout lane, and went there less often as a direct result. After a couple of years, they removed it. I guess they got the message. Now it’s Shell’s turn to learn. There is no way I will visit that Shell station again as long as they have those video ads. Especially not when there’s a Chevron right across the street. Ralph’s got a pass every once in a while because it was the closest grocery store by a few miles.

You don’t need to show me ads when I’m already buying something from you. It’s just going to annoy your customers, and an annoyed customer is not a repeat customer. It’s bad enough that the whole world is plastered with static, silent ads. I’ll actively avoid multimedia advertising whenever I can. And this one’s especially easy to avoid. If you’re not even going to sell me gas cheaper via your new advertising subsidy, why should I subject myself to it?

It’s just like websites with video ads.  If I click a link and an audio/video ad immediately starts playing, I immediately close the site and never go back.  It’s pretty rare, which leads me to believe that’s most people’s reaction and that websites have mostly learned this lesson.  Video ads without sound until you click seem to be getting more common.  I’d prefer not to see those either, but it’s far easier to ignore when there’s no sound, so they won’t instantly drive me away.


New Ride

This is my new toy. Two days old, has about 45 miles on it already. Feels great! Except for the damn seat, I already replaced that. Everything else is nice.

New Bike

Comments (7)

Antisocial Bookmarking

There are some popular blogs out there under the “Lifehacking” and “GTD” (Getting Things Done) banners. Often, the topics they present border on obsessive compulsive behavior. I feel like following all the advice on those subjects would cost me far more time than it saved me. Just reading about it barely feels like a break-even proposition.

But somewhere this morning, not actually on a blog focused on those subjects, but definitely something they’d be concerned with, I found out about Google Browser Sync, which lets you sync your bookmarks, cookies, passwords, (and history and tab state if you really want, I opted out of those), with your Firefox browsers anywhere. Like, work, home and laptop. Add a bookmark anywhere, it shows up right in your bookmarks menu or toolbar everywhere.

This is something Netscape 4 had built-in, via FTP or LDAP, nearly a decade ago. I ran my own FTP server and used it. It was GREAT. I’ve been waiting for someone to do the same ever since Netscape 4 became basically unviable. Mozilla/Netscape never built it in past v4, nor did any other browser to my knowledge.

There have been other Firefox extensions that sort of accomplish this, but they’ve been based on social bookmarking sites like I don’t have anything against those sites, but I don’t actually want to share all my bookmarks with everyone in the world just so I can also have all my browsers present me the same bookmarks. Antisocial Bookmarking has its place too. I’d still prefer to store everything on my own server somewhere, but storing it privately, rather than socially, on Google’s servers is almost as good. And it’s probably even better for most people.

I installed it across all the machines I use on a regular basis, and I’m already feeling like web related things have finally gotten back to where I was eight years ago (when Netscape 4 was already getting long in the tooth and people were giving me funny looks for still using it).

I’d still rather not trust Google to save this stuff for me, but if I’m going to trust any corporation, it might as well be Google. Nevertheless, an implementation of this that let me run the repository on my own server rather than someone else’s would be very welcome. But short of that, this finally does everything I ever wanted.

Comments (3)

I have a new nozzle

I cannot stress enough the importance of maintaining your nozzles.