Archive for category Geekism

Date: October 8th, 2004
Cate: Geekism

Google browser-based DRM

This is what some of the best web engineers in the world can come up for image printing and download prevention. Recall that what they’re trying to do is impossible, so the fact that they’ve even made it difficult is pretty impressive.

I wonder if the Mozilla guys will consider the techniques Google’s used here to be bugs, and fix them in the next release?

Date: September 26th, 2004
Cate: Geekism
2 msgs

Neal Gafter has a blog

Neal Gafter has a blog! Created as a response to Bruce Eckel? Or to me?

Date: September 18th, 2004
Cate: Geekism
1 msg

VIEWGLOB

From the latest NTK:

VIEWGLOB is a little GTK+ window that sits near your xterm, and listens to you tapping away on bash or zsh. When you “cd” to a new directory, it shows you the content listing of that directory. [...] As the author Stephen Bach says, “no longer will you compulsively ls after every cd”.

I made the exact same thing, for the exact same reason (the “ls compulsion”) back in 1997 at Pratt & Whitney. Mine was super low-tech: the auto-ls window was just a cmdtool that started up, wrote its PID to a file, and then went into an infinite loop waiting for a signal. Then I used an alias to override my cd command to do the cd, write the path of the new current dir to a file, read the PID file, and use that to send a signal to the auto-ls window. The auto-ls window would wake up, read the path, execute ls, and then wait again. Sure, this new-fangled VIEWGLOB has more features, but my solution was written in about one one thousandth of the number of lines of code of VIEWGLOB’s Makefile.

I also hacked my .XDefaults files and whatever those other files were called so that my windows didn’t have any borders or widgets around the edges. You could only move, resize, or close them if you knew the obscure key combinations. Yeah… I was just EVER SO COOL back then.

Date: September 15th, 2004
Cate: Geekism

FoF used to automate Waxy-worship

Waxy.org [via] links metaaggregator (aggregates all the [via] links from here) by 90% Crud.

(recursive via)

Date: August 21st, 2004
Cate: Geekism
4 msgs

Safari v1.2.5: faster, better, still no undo

I finally ran Software Update and got the latest Safari, v1.2.5. It seems much faster! The lag I used to have switching between tabs, and the slowness typing and scrolling are completely gone. Nice. But… THERE’S STILL NO UNDO! Typing in a textarea is absolutely treacherous. One accidental ⌘-A and all your text is irretrievably gone, reducing the usability of my 2004 Mac to that of a 1984 DOS-based word processor. Didn’t that lady throw that hammer through the scary guy on that big screen so I don’t have to deal with this?

And while you’re at it, make it so I can undo the closing of a tab, too.

Date: August 11th, 2004
Cate: Geekism

Value Added (and subtracted… just a little)

Like your JavaDocs with community annotations? And with advertising? Then JDocs.com is for you!

(combined with the super bionic searching capability of javadocs.org this would be even cooler)

Date: July 29th, 2004
Cate: Geekism
2 msgs

Various

I should have one of those linkyblog things. Until then:

HTTP Caching and Cache-Busting – But what if I need a cache-buster-buster? (via)

How to handle international dates and times in PHP and MySQL – I’ve always wondered how to do this properly. I am a little concerned that he mentions that all bets might be off on Windows. (via)

Great Hackers – Interesting to me because he keeps mentioning ITA Software as one of the few places that currently employs and cultivates “Great Hackers”.

Date: July 16th, 2004
Cate: Geekism

True dedication

Looking over the release notes for Universal Feed Parser 3.3, I found this item: Optimized EBCDIC to ASCII conversion. Words fail me.

Date: July 11th, 2004
Cate: Geekism
2 msgs

SimpleAggregator 1.0 – Feed on Feeds mutated

Hey all you people who want me to rework Feed on Feeds to use Universal Feed Parser: guess what! It’s done! But not by me! Ludovico Magnocavallo started with FoF, completely disassembled it, and then put it back together in a totally new form: SimpleAggregator 1.0. He’s refactored the code, integrated a template system, redone the UI, and through the use of UFP, now supports every feed format ever invented.

I haven’t actually run this new aggregator, because I don’t quite have the technology to line up all the requirements (All the requirements of FoF + InnoDB + PEAR + Python + some Python modules + whatever the requirements of UFP are). And that is the reason why I’m not going to go this way in FoF: I want to remain 100% PHP and keep the external requirements down to a minimum. But for those of you who already have really well configured servers, you might want to check it out.

Date: July 4th, 2004
Cate: Geekism

UFP 3.2 supports EBCIDIC

Mr. Mark has updated his Universal Feed Parser. Apparently “previous versions of Universal Feed Parser naively used a regular expression on the raw byte stream to find the encoding attribute”. Using a regex to find the encoding attribute? How shameful! What kind of moron would do that?

Date: June 28th, 2004
Cate: Geekism

Java 5.0 is version 1.5 of Java 2?

They’ve making the versioning of Java even more confusing: Tiger? 1.5? 5.0? But it’s also still J2SE?

(by the way: free wireless from the show floor! yeah!)

Date: June 22nd, 2004
Cate: Geekism
15 msgs

FoF 0.1.7 – now!

Feed on Feeds 0.1.7

This version fixes that stupid mistake with htmlspecialchars in the last one that broke the forward and back navigation links on view.php. And! It includes a experimental pre-alpha version of Magpie that really tries its best to get the whole character encoding thing right. It uses this method, except it tries iconv (thanks Phil!) before trying mb_convert_encoding. Anecdotal evidence has shown that if iconv is installed, it may be more reliable than mbstring. It’s still not clear just what percentage of servers out there is going to have either one of them installed. Future versions of FoF will analyze your system during install.php and let you know what you’ve got and what encodings are going to work. For now, if you find feeds that still are getting corrupted, send me the links!

Date: June 21st, 2004
Cate: Geekism

Portable PHP is hard

I’m going to wait another day, at least, to release FoF 0.1.7. I’m still working with Kellan to figure out the approach to translating those charsets that is likely to work on the largest number of hosts. To iconv or to mbstring? That is the question!

Plus, it’s late at night, and rushed releases can be dangerous.

Date: June 18th, 2004
Cate: Geekism

PHP、XML、以及字元編碼:一則關於悲情、憤怒以及傷逝(資料)的故事

Zonble works fast! He has translated “PHP, XML, and Character Encodings: a tale of sadness, rage, and (data-)loss” into Chinese, here:

PHP、XML、以及字元編碼:一則關於悲情、憤怒以及傷逝(資料)的故事

Please note that since posting the original article, I’ve still found few more bugs and enhancements in the charset handling code. FoF 0.1.7 will incorporate them all, and I’ll go back and update the article with the final code.

Date: June 18th, 2004
Cate: Geekism
1 msg

Labels, not Folders

I came to the same conclusion. Feed on Feeds will have labels, some day. I implemented nested folders one time and didn’t like it.

Date: June 18th, 2004
Cate: Geekism

Scale

Ofoto adds 5 terabytes of storage every week. They’ll have a petabyte (1 Pb = 1,000 terabytes = 1,000,000 gigabytes) of storage soon. So will the Internet Archive. That’s an incredible amount of data!

Even more incredible: within 20 or 30 years your common desktop PC will come with a hard disk that size… and big archives like these will have smashed through the exabyte range and be up in the yottabytes. One yottabyte is 9,671,406,556,917,033,397,649,408 bits.

This prediction is not insane: my first computer, about 24 years ago, had 1 Kb, about 8,000 bits, of RAM. A new computer today has 1 Gb — a million fold increase. You get about a thousand fold increase in RAM size, hard disk size, and CPU speed almost every 10 years.

Date: June 17th, 2004
Cate: Geekism
84 msgs

PHP, XML, and Character Encodings: a tale of sadness, rage, and (data-)loss

Update: This code has been finalized and debugged, and is now shipped as part of MagpieRSS 0.7! Sadness and rage no more!

So I have this little program, called Feed on Feeds. It’s an RSS and Atom aggregator. For a long time I’ve known that it doesn’t quite handle international characters that well, so I set out to fix it. I knew that somewhere between input feed and output HTML page, characters were getting messed up. I adopted a policy of “UTF-8 Everywhere”: since FoF has to deal with feeds in lots of different charsets, but display them all on one page, I’d translate everything into UTF-8. I UTF-ized everything in the display code, and made sure that the DB wasn’t mucking with the characters, finally closing in on the place where it seemed characters were being munged: the XML parser itself, called by MagpieRSS, the RSS and Atom parser used by FoF.

Here’s how Magpie was creating the XML parser:

$parser = xml_parser_create();

Nice! Simple! But it munges characters, especially numeric entities. After reading some PHP docs, I found that there are two things you can set in PHP’s XML parser: the source encoding, and the target encoding. You can set the target encoding this way:

$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");

This means: “Whatever charset the XML is in, I want you to translate it into UTF-8. And if you happen to find any numeric entities in there, resolve them into UTF-8 characters, too.”

So I tried that. But it still wasn’t working. Some feeds were translated into UTF-8 properly, but others weren’t. Feeds already in UTF-8 were re-encoded, resulting in gibberish. Reading some more documentation and bug reports, I found that if you don’t set the source encoding, PHP assumes your XML is in ISO-8859-1! I was amazed that PHP’s XML parser didn’t examine the XML prolog to determine the encoding, and further shocked that they chose such an insane default. But anyway. You can set both source and target encodings this way:

$parser = xml_parser_create("EBCIDIC");
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");

This means, “I’m about to give you some XML, in EBCIDIC. I want you to translate all those characters into UTF-8 while you’re parsing it. Don’t forget to turn any numeric entities you find into UTF-8, too.”

That works… but presents a problem. How do you know the charset the XML is in? The only answer I could come up with: scan the XML myself, and find the encoding!

$rx = '/<?xml.*encoding=['"](.*?)['"].*?>/m';

if (preg_match($rx, $xml, $m)) {
  $encoding = strtoupper($m[1]);
} else {
  $encoding = "UTF-8";
}

That regex finds the charset declaration in the XML prolog itself, and if found, saves it in the variable $encoding. If it wasn’t found, it assumes the XML is in UTF-8 already, which is the default for XML.

So the full code is now:

$rx = '/<?xml.*encoding=['"](.*?)['"].*?>/m';

if (preg_match($rx, $xml, $m)) {
  $encoding = strtoupper($m[1]);
} else {
  $encoding = "UTF-8";
}

$parser = xml_parser_create($encoding);
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");

That, finally, worked. All my feeds were reliably translated into UTF-8. But that was just by coincidence. All the feeds I subscribe to were already in UTF-8 or ISO-8859-1. After making this release, people complained that feeds in ISO-8859-15 and BIG-5 weren’t working. Consulting the PHP docs again, and double checking in the source code because it was just so surprising I found that PHP 4.x only supports UTF-8, ISO-8859-1, and US-ASCII. So anybody out there who wants to subscribe to a feed in ISO-8859-anything-but-1 or BIG5 of SHIFT-JIS is still screwed.

Even PHP 5 won’t help here, when it is released: It sort-of supports a longer list of encodings, but not BIG5 or GB2312, the two main Chinese encodings.

So I searched the PHP docs some more, and came up with a potential solution: mbstring! The mbstring family of functions supports a huge long list of encodings, and can translate between them. So here’s the final solution: use a regex to find the source encoding. If PHP can handle it natively, fine. If not, lop off the XML prolog, replace it with one that says encoding="utf-8" and pass the whole XML file through mb_convert_encoding to convert it to UTF-8 before the parser even sees it. If mb_convert_encoding blows up (which it will if the source encoding is not recognized, or if the function completely doesn’t exist, which I’m told is highly probable, since it is an optional extension) just give up and pass the XML straight to the parser and avert your eyes as it makes mincemeat of the characters. At least I tried.

$rx = '/<?xml.*encoding=['"](.*?)['"].*?>/m';

if (preg_match($rx, $source, $m)) {
  $encoding = strtoupper($m[1]);
} else {
  $encoding = "UTF-8";
}

if($encoding == "UTF-8" || $encoding == "US-ASCII" || $encoding == "ISO-8859-1") {
  $parser = xml_parser_create($encoding);
} else {

  if(function_exists('mb_convert_encoding')) {
    $encoded_source = @mb_convert_encoding($source, "UTF-8", $encoding);
  }

  if($encoded_source != NULL) {
    $source = str_replace ( $m[0],'<?xml version="1.0" encoding="utf-8"?>', $encoded_source);
  }

  $parser = xml_parser_create("UTF-8");
}

xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");

Surprisingly, this hack on top of a hack wrapped up in a hack with extra hack on top… worked! It was able to parse ISO-8859-15, BIG-5, even GB2312 feeds just fine, and translate them all into UTF-8 for display on a single page. I have these changes in my local copy of FoF now, and I’m going to let them burn in for a few days before I release them to the wider world, who will probably point out, within minutes, the multiple and tragic ways that even this solution fails. But until then, I proclaim that this is the state of the art in PHP XML charset-aware parsing. I think this is as good as it gets in PHP 4.x.


Footnote: when I say PHP5 sort-of supports more encodings, this is what I mean: PHP5 (I looked at RC3, maybe these bugs will be fixed by the final release) is completely nuts. The XML parser supports a bunch more encodings, but they are really hard to get to. If you try to explicitly set the input encoding, the PHP code limits you to UTF-8, ISO-8859-1, or US-ASCII, even though libxml2, the underlying parser, supports many more. But, if you know the super secret codes, you can construct the parser this way:

$parser = xml_parser_create("");

Notice the difference? In PHP5 bizarro world, passing in an empty string means “do what you should have done all along, auto detect the stupid encoding!” But, there’s another problem: if you auto-detect the stupid encoding this way, the stupid target encoding is stupidly set to ISO-8859-1. I don’t know who would want that. And it goes against the documentation, which says by default the target encoding is set to the source encoding. And again, you are restricted artifically from setting the output encoding to anything other than UTF-8, ISO-8859-1, or US-ASCII. So you could, if you want, use a regex (yuck!) to find the source encoding, but you wouldn’t be allowed to set the target encoding to match. But, at least, you can do this:

$parser = xml_parser_create("");
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");

Meaning, “Auto detect the source encoding, and then translate everything, including numeric entities, into UTF-8.”

At least you will be able to… when PHP5 comes out, and is installed on the server where your application needs to run, which for me (I get complaints that FoF won’t work on PHP 3) probably won’t be for several years.

Date: June 16th, 2004
Cate: Geekism
7 msgs

FoF 0.1.6

Feed on Feeds 0.1.6

0.1.5 still had some pretty major bugs. I’ve fixed those, and tested this relase pretty thoroughly. Hopefully this one has no “SEVERITY ONE” issues.

By the way, I’m very very impressed with the “many eyes” effect on these last few releases. The community of FoF users found all the bugs almost immediately… within hours! And in the middle of the night! (at least, it was night here). And, had not only had they posted good bug reports to SF, but they even found the root causes, and produced patches! I wish the QA group at work was one tenth this good.

“Dear Steve, noticed you just checked in Boring.java. You’re using an unsynchronized Hashmap at line eight billion and seven. Funny thing, that will work most of the time, but it turns out that in cluster mode it will cause silent data loss. Checked in the fix for you, k thx bye.”

So thanks, everyone, for bearing with us during the technical difficulties, and helping out to solve them!

Date: June 16th, 2004
Cate: Geekism
7 msgs

FoF 0.1.4

Feed on Feeds 0.1.4 is here!

But you don’t want it. You want Feed on Feeds 0.1.5.

Here’s what I ended up with for features:

  • CSS / XHTML. The only remaining table is the feed list. As I said before, don’t worry, the much praised FoF look and feel has been scrupulously replicated in CSS. Or, you could use…
  • … The new frames-based, one page viewer.
  • Better charset handling – I’ve hacked MagpieRSS so that it does its very best to always return UTF-8, and that is used as the internal format, as well as the charset for all output pages. Kellan is looking at these changes now to see if he wants to add them, or something like them, to the mainline Magpie.
  • By default, read items will be purged completely (during the update) from the DB after 30 days. You can adjust this timeout, or shut this off entirely to go back to the old “never delete anything” behavior. Warning: If you’ve been using FoF to build up some kind of huge awesome database of feed items that you are very proud of, be very careful with this new version! You could very easily find them all deleted.
  • The cache directory is located in a smarter way. People trying to include FoF or call it from the command line should have better luck
  • Continuing code cleanups: more and more “logic” pulled into init.php, leaving the viewer pages purely “presentation”. More careful about namespace pollution, everything is prefixed with fof_ or FOF_. FoF should be much more “includable” now.
  • The meagre beginnings of a PHP API: look at fof_get_feeds and fof_get_items.
  • I think this time I didn’t completely screw up checking my changes into CVS. I did last time, nobody noticed.

To upgrade: install to a new, clean directory, and copy your settings over from your old config.php. There’s a lot more stuff in there now, so don’t just copy the whole file. And again, if you don’t want all your old, read items to be deleted, be very careful. Make a DB backup or something.

Date: June 11th, 2004
Cate: Geekism
4 msgs

0.1.4: Almost!

Sorry to keep you all waiting, but 0.1.4 is almost done. It’s taking a bit longer because for some reason it has twice as many features as I expected. They just keep creeping in there somehow: CSS, XHTML, much better charset handing, refactoring, includability, easier to use PHP API, new frames based display (shown above, but don’t worry: the award winning original FoF look and feel has been painstakingly replicated in pure CSS and is still included), database size management, …

I’ve got a pretty busy weekend, so no promises, but maybe on Sunday.

Date: June 8th, 2004
Cate: Geekism
2 msgs

TEXTAREA MUST DIE!

I completely agree with this. On Safari, even UNDO doesn’t work in a textarea! Every post is one miskeyed “select all” away from complete destruction. At least WP lets me save and keep on editing…

(via)

Date: June 8th, 2004
Cate: Geekism
2 msgs

fsockopen and PHP 4.3.4?

So is fsockopen just completely hosed in PHP 4.3.4 or what? I have a friend who was happily using FoF for a while, then it stopped working. His host is running PHP 4.3.4, and I suspect they just recently upgraded, and I think that broke fsockopen (which Snoopy uses (which Magpie uses (which FoF uses))). I’ve searched and found some bug reports on fsockopen in 4.3.4, but not quite with the same symptoms. Here’s what I’m seeing:

  • fsockopen to ‘127.0.0.1′ or ‘localhost’: works!
  • fopen to an http URL on another host: works!
  • fsockopen to another host, by name or by IP: fails! No error message is printed or logged. In fact, the script dies so completely that the browser gives a “This document contains no data” error. If you telnet in and type the HTTP request yourself, the server closes the connection before sending back any headers or anything.

At first I thought maybe his host had disabled fsockopen or maybe banned connections to other hosts. But fsockopen is not disabled, it works when connecting to localhost, and fopen works when connecting to any host.

Is this this bug? The symptoms aren’t quite the same. Is there any hope? Any workaround? Or should I just advise him to ask his host to upgrade to 4.3.5?

Date: June 1st, 2004
Cate: Geekism
12 msgs

FoF 0.1.3

Come and get it!

New: Various bugfixes, MagpieRSS 0.61, one click mark all as read, Safari speedup, and for you feedaholics: the much-requested ability to flag all the items above the current one. If you’re faced with hundreds of items, and start reading them from the top down but then need to do something else, you can click one link to flag the current item and all the items above it, and then mark them all as read. You can come back and read the rest later!

Safest upgrade: extract to new, empty directory and copy your config.php over. Also should work: extract right on top of old version, then restore settings in config.php. No database tables have been changed.

This is not the fabled multi-user, category enabled, refactored, CSS/XHTML nirvana release. That one is still a ways off. I think a better way to get there will be a set of smaller, more limited releases, rather than trying to do it all at once. So here you go, and more coming soon!

Date: May 25th, 2004
Cate: Geekism

WordPress Logging Hinters

I’ve been hacking on WordPress a bit to customize it for my needs, and I thought I’d share a few things I’ve “discovered”. These may be obvious to you, but they took me a while to figure out.

Logging

I’ve never figured out a good way to do logging from PHP. Sometimes you can get some insight into what’s going on by printing out some comments to the outgoing HTML that a view source will then reveal. But that doesn’t work in all cases: What if there’s something funny going on in the processing of a new post? There’s no place to print to! Actually, there is. Use STDERR!

$stderr = fopen('php://stderr', 'w');
fwrite($stderr,"Logging statement: value is $value\n");
fclose($stderr);

On my host, this works. There is a directory where the output from STDERR is captured. I can post a story, then look in the logfile and see what happened. It helped me debug this quite easily.

wpdb SAVEQUERIES

WordPress has the built in ability to log all the SQL queries executed while building your page, which I happened to notice while looking at the ‘wpdb’ class. Here’s how you can use it:

Step 1: Add define('SAVEQUERIES', true); to your wp-config.php. This will cause all queries run by the wpdb to be appended to an array that you can get at later.
Step 2: Print out the queries somehow. I’m printing them out in an HTML comment at the end of my main template, like this:

foreach ($wpdb->savedqueries as $q)
{
$q = trim(ereg_replace("[[:space:]]+", " ", $q));
echo "$q\n\n";
}

Now I (and you) can see exactly what queries are being executed, which may help answer some questions about what’s going on in the guts of WP.

Date: May 12th, 2004
Cate: Geekism
4 msgs

Cyan logo! Free!

Today’s word of the day is Geek, because I have had this story of geekism on my mind. Where I work, we are geeks, mostly. One of the geeky things we do is come up with “code names” for each project we work on. There’s actually a good reason for this: marketing will change the actual name of the product 10 times while you develop and test it, and then after you pass the point where the name can not possibly be changed, 10 more times. Then in the next version they’ll rename it more. To escape this cycle of pain, we use code names, which need never change. The product name is set at manufacturing time by some configuration file, but all the internal documentation and source code refers to the code name.

The second level of geekism here is that we name all our projects after colors. (everybody needs a theme, for instance Intel uses rivers and towns in the Pacific Northwest) Previous projects have been Gunmetal, Daffodil and Magenta. Current projects include Quicksilver and Cyan. Coming up soon will be Canary. Some purists out there are now thinking “WELL SOME OF THOSE ARE HARDLY COLORS.” …You need to learn to think outside the box.

The THIRD level of geekism is that we create silly logos for each codename that we use on internal documentation and sometimes tchotchkes. For the project I’m working on, Cyan, the details of which are unimportant, but I can assure you are incredibly boring, I created the perfect logo. I sent it out in an email. I got lots of responses. They all hated it! Not enough “Zing”, one email actually dared to say. People began to do Google image searches and send back alternatives nicked from the web “How about this one?” “OOooooo I like that one!” “Hey, this one has a funky font!” “Look at this funny album cover I found.” And so on, and so on.

We ended up using one of those other logos, leaving mine consigned to the dustbin of history (along with 22,700 other things, according to Google). But because of pride in my fine logo-geneering skills, stubbornness, or maybe plain stupidity, I decided: This will not stand. I’m not going to let my fine logo go to waste just because the people I work with (to a man: even the art designer guy) can’t appreciate it. So I’m working the other end of the lazy-web: Post the lazy-web response now, and when the lazy-web request comes in, the answer will be waiting here.

So here it is. Need a logo for your project/product/company/clothing line/floor wax/dessert topping? Is it called Cyan? USE THIS ONE! IT’S FREE! (note: logo makes more sense if your previous project/product/company/clothing line/floor wax/dessert topping was called Magenta)

Disappointed? Now you know how the people I work with feel. Every day.

Date: May 10th, 2004
Cate: Geekism

Official Google Blog

First post: pretty good, human voice, posted by an actual person

Second post: not so much (although the possibility of working for Google in Japan is, as they say, wicked cool)

Date: May 4th, 2004
Cate: Geekism

Year of the Tiger

June 28th 2004: Steve Jobs introduces Mac OS X 10.4, known as “Tiger”.

ALSO ON JUNE 28th: Sun introduces Java 1.5, also known as “Tiger”.

Date: April 23rd, 2004
Cate: Geekism

LJ’s Backend

This is sort of old news, but I finally read this presentation today and there’s a reason why it’s linked up everywhere. How do you set up a weblog hosting site that serves 2.4 million users (who read AND write), and deal with peak hit rates of 800 per second? Like this: Inside LiveJournal’s Backend (pdf).

Date: April 10th, 2004
Cate: Geekism
1 msg

Lifeforms: REMIX

Remember Data’s “scanning for lifeforms” song? Here’s the remix!

Date: March 29th, 2004
Cate: Geekism
3 msgs

Google “numrange” search?

Anybody else notice this yet? Is it new? Numrange Searches: Numrange can be used to specify that results contain numbers in a range you set. You can conduct a numrange search by specifying two numbers, separated by two periods, with no spaces. Be sure to specify a unit of measure or some other indicator of what the number range represents.

For example, shaw brothers 1975..1980

Date: March 22nd, 2004
Cate: Geekism
2 msgs

Rainbow

Here’s my other desktop. I made it all by myself.

Same joke as before, comes in any size, as long as it’s 1280×1024.

Date: March 20th, 2004
Cate: Geekism

Happy Mac

Using images stolen from OSたん保管庫 (don’t know what that means, but the site can only be described as “operating systems fan art”), I’ve created this desktop, perfect for use on a Mac:

It comes in whatever resolution you want, as long as it’s 1024×768.

Date: March 8th, 2004
Cate: Geekism

Iraqi Transitional Constitution – full text

LAW OF ADMINISTRATION FOR THE STATE OF IRAQ – FOR THE TRANSITIONAL PERIOD

The people of Iraq, striving to reclaim their freedom, which was usurped by the previous tyrannical regime, rejecting violence and coercion in all their forms, and particularly when used as instruments of governance, have determined that they shall hereafter remain a free people governed under the rule of law.

These people, affirming today their respect for international law, especially having been amongst the founders of the United Nations, working to reclaim their legitimate place among nations, have endeavored at the same time to preserve the unity of their homeland in a spirit of fraternity and solidarity in order to draw the features of the future new Iraq, and to establish the mechanisms aiming, amongst other aims, to erase the effects of racist and sectarian policies and practices.

This Law is now established to govern the affairs of Iraq during the transitional period until a duly elected government, operating under a permanent and legitimate constitution achieving full democracy, shall come into being.

(via The Command Post)

Date: March 3rd, 2004
Cate: Geekism
322 msgs

Amazing, in the same day I finally make contact with the guy from the famous Mario Piano video (the comment from “the source” really is him!), I find this video. It’s by KeiicHi, and from the look of his message board, the video has already made the rounds on at least the Asian parts of the internet. It’s a great version of the Mario music, complete with sound effects!

A post from one of his fans on the message board sums it up nicely:

You.

Very Good.

Your hair.

Beautiful.

-Guitarist from the hell in Korea.

And even though I know it’s not going to stem the tidal wave of comments, I’m going to try anyway by pointing to:

Guitar Tablature Here!!!

Date: February 24th, 2004
Cate: Geekism
3 msgs

E PLEBNISTA!

Ha, the Internet is great. That last post has sent me on an amazing Google-powered journey through Trek Trivia. Everything from “NO KILL I” to “Botany Bay?!!? OH NO!!” to “Queen to Queen’s level three”. I’ve determined what the ultimate Trek trivia question is. Anybody know this one, no cheating?

Of course everybody knows the self destruct sequence of the Enterprise, code one, one-A, two-B, zero zero zero… DESTRUCT… zero, all that stuff. Here’s the question: HOW DO YOU ABORT THE SELF DESTRUCT SEQUENCE?!?!? Do you know the code? What? You don’t? 8… 7…. 6…. 5… GET OUT! GET OUT OF THERE! GET OUUUUUUTTTTT!!!!!

Date: February 24th, 2004
Cate: Geekism

Klingon Mummification Glyph

Pop quiz! The Ships Of Star Trek. I got 7 out of 10 on this, even though it seemed like most of the questions were on Deep Space 9 or Voyager, which I never watched.

(I do have to take issue with one of the answers. The Federation class “Dreadnought” is CLEARLY documented in the original version of the Star Fleet Technical Manual, which being published in 1975, I think must be considered canonical.)

Date: February 17th, 2004
Cate: Geekism

What other kind of simple is there?

Sitepoint on Feed on Feeds: "Simple, but in a good way."