A Curious Warning

posted by chip on 2008-10-21 01:03:58
I got a letter from the University today. The relevant portion:
The University of Illinois recently learned that a computer in the Department of Biochemistry was compromised by a computer virus for a short time. The computer held some personal data on students and staff of the Department, which included your name and University Identification Number (UIN).

This is not so much worrying as confusing for me, as I have never been a student or staff in the Department of Biochemistry. I'm pretty sure I've never taken a biology class at UIUC, period.

Why then, am I apparently in their database?

Also I bought Mega Man 9. IT IS AWESOME (AND INCREDIBLY DIFFICULT).

0 comments reply permalink

Coding in Tongues

posted by chip on 2008-10-17 01:00:06
On a whim, I decided to walk through a Ruby tutorial. I've installed the ruby interpreter in my last two Slackware installs, but I've never used it. A couple of tutorials later, I understand how it works, and it irritates me in much the same way Perl must irritate C and shell programmers. "You've just shoved a bunch of features from other languages in here without regard for how they fit together!" Ruby is basically a lot of Perl and Python ideas and a few Smalltalk ideas thrown together. Proponents would argue that it combines the best of all those languages. As someone who already knows Perl and Python, it's like a train wreck in my brain. I can blame part of this on the terrible tutorial I found. Google for "ruby tutorial," it's the first one. It suggested that I do a loop like this:

list.each do |x|
    frobnicate x
end

Instead of the much more sensical:

for x in list
    frobnicate x
end

But mostly, I like Perl for being a concise "do what I mean" language, and I like Python for being a clear, verbose OO environment. And I'm quite happy to keep them separate, thankyouverymuch.

Lisp, on the other hand, seems to be much more elegant. Or at least that's what I've been told. Browsing the GNU Common Lisp site, I'm finding a lot of spiel about how Lisp is great, and that it's the solution to all my problems, but not much information on how to actually program in Lisp. For the record, please consider that a comment on the egotism of Lisp hackers. :-P

Lisp, in the lore of ancient hackers, is the second evolutionary divergence in programming. The first was the development of high-level languages like Fortran. Lisp then re-defined what "high-level" meant. Lisp is still one of the only languages that makes little distinction between code and data. A piece of code in lisp can re-arrange another piece of code, allowing a programmer to make the kind of optimizations in his program that would usually only happen in an advanced compiler. Given these feats, it is unfortunate that Lisp is so visually ambiguous.

In Lisp, everything is a kind of list. The language, by what I guess must be convention, takes the first thing in the list to be a function, and the rest are arguments. Except when a list is a list of arguments, or something else. Lisp takes lexical orthogonality to absurd extremes with a handful of actual punctuation marks that can be used nearly anywhere. This lack of formal structure in Lisp makes it hard to read. Take, for example, a function definition:

(defun foo (bar baz) (quux glarch))

And tell me what bar does (hint: it's not the same thing that quux or defun does). As a linguist, I find this kind of ambiguity highly unnerving. Imagine trying to understand someone who only communicated using spoken nouns and hand gestures. That's what Lisp looks like.

I leave you with this moment of Zen I found in my fortune cookie:

Your present plants are going to succeed. .

Lucky #.3, 15, 20, 21, 36, 40
Learn Chinese: Yan-Zi, 燕子, A Sallow

1 comment reply permalink

The Walls Are So Soft

posted by chip on 2008-10-14 01:26:17
You might expect that Fortran, a language developed in the dark ages of computing, would be an unsafe language with little or no data integrity assurances in the compiler or the runtime.

You would be absolutely right.

One of the fun facets of Fortran is that all arguments are pass-by-reference. That is, when an argument is passed to a procedure, what you're really doing is telling the function where your original variable is. Because of this, a Fortran subroutine can run around willy nilly in the dummy variables (the Fortran way of saying "arguments") you've passed in, changing anything it wants. And because Fortran doesn't check array bounds when arrays are passed to procedures, a subroutine can say "This array that was passed in is this big," and then go mucking about with memory that the caller didn't pass in.

What happens, then, if one of your arguments is a constant value? The answer, amusingly enough, is undefined. Some compilers (on complicit architectures) will store that constant in a static data area, and when it's dummy variable is assigned to, happily overwrite the "constant" value with something else. If you don't use that constant elsewhere, the program will hum along blissfully ignorant. If you do use it elsewhere, it's possible that you've subtly changed the operation of your program, and you'll have a lot of fun debugging it. Better compilers (and architectures that have hardware enforcement of read-only memory areas) will produce an access protection violation and kill the program so that the programmer can (hopefully) find the error. Really good compilers will detect these kinds of shenanigans at compile time if you ask nicely, but I'm talking out of my ass here — I don't really know if such compilers exist.

The moral of the story is: If you have an opportunity to maintain old Fortran code, especially if said maintenance requires getting it working on a new architecture, run. For the sake of your sanity, run fast; run far.

As for me, I'm typing this with my nose. The nice men in lab coats say that if I'm good, they'll untie the strait-jacket and I can type with my hands, but only if I can convince them there won't be a repeat of last time.

Hee hee hee hee heeeeeeee...

0 comments reply permalink

Weeaboo-arific Metafiction-tastic

posted by chip on 2008-10-08 22:36:40
I like metafiction. Metafiction is the use of a story within a story to provide reference or counterpoint to the enclosing story. Used well, it can introduce a viewpoint that the audience may not have considered, provide insight into the characters of a story, or advance the plot in novel ways. Popular examples include Tales of the Black Freighter inside Watchmen and the Mind Fantasy Game inside Ender's Game.

I've been re-watching Densha Otoko, the purportedly true story of a geek who gets help from anonymous people on the internet to help impress a girl. The particular version I'm watching is the TV drama, which does a really good job of making you hope you never meet a Japanese nerd in person. In this drama, the protagonist and his friends are fans of an anime called "Getsumen Heiki Mina." The animation studio that did the shorts for Densha Otoko, GONZO, decided to turn the metafictional story into an actual series, Getsumento Heiki Mina.

I just finished another anime series, Love GetChu, which contains no less than three metafictional universes. In the story, a group of girls aspire to be voice actresses, and so several metafictional anime series show up. In this way, the show explains aspects of the real-life voice acting profession, and through the metafictional series, pokes fun at itself and other anime. The other interesting thing about Love GetChu is that it's based on a cell phone game. That seemed weird to me until I realized that an interactive visual fiction game (read: dating sim) would be easy to do within the confines of a cell phone, and there are probably a lot of lonely men commuting on the Tokyo train system that would love that sort of thing.

I'm in the middle of a third series, Mahou Tsukai ni Taisetsu na Koto. It has a little metafiction in a different vein. The story is about Sora Suzuki, a girl from Hokkaido who travels to Tokyo for training to become a mage. It sounds like Harry Potter, but it's not. By that I mean that like Harry Potter, it deals with young people and magic, but unlike Harry Potter, it doesn't pander to little kids who want to use magic to get revenge on the bullies who shove their head down a toilet on a daily basis. The show uses photorealistic CG backgrounds, particularly in the Shimokitazawa borough of Tokyo. In Shimokitazawa, there is a woman who performs songs on the street. And there we are, metafictional music. :)

And for something that is not metafictional, I just found out that there is a new season of ef - a tale of memories called ef - a tale of melodies. If I haven't said so here, ef is quite possibly the most depressing twelve episodes of anything I have ever watched. If you are feeling good about your life and your friends and yourself, ef will fix that. It does have a happy ending, but it was probably put in as a concession so that viewers didn't go hang themselves after the series ended. It's very good, though, and I can recommend it highly. Just, uh, don't watch it if you're already depressed.

0 comments reply permalink

Slowpoke Reporting In

posted by chip on 2008-10-02 01:03:57
You know it's been a while since you've read your feeds when your own blog has five new articles. You know it's been a really long time when Kuro5hin has six new articles. I am now officially lagging behind the slowest news site in the universe.

I've been browsing backward through my archives, finding technical articles. I was talking to Alex one day about how he tries his best to make his HOWTOs and such web searchable. Since the entire /blog/ section here is off limits to robots, I decided to put useful articles on a Blogger site. I certainly could rig up something here, but having Google handle that effectively solves the primary problem: getting the content indexed so that people can find it. Note that I'm not splitting the blog. All content will still exist here, but some of it is now in a more public place.

Reading old articles has brought up a bunch of forgotten bits and pieces. I completely forgot about Deviantart, for example, and I found that Nothing Nice to Say has actually updated in the last three years. And of course, a website reaching back over ten years of my memory, Hitoshi Doi's Sailor Moon page.

Are you excited about the VP debate tomorrow? I sure am, even though it's going to be a oh-god-is-it-over-yet train wreck while I watch through one open eye as I hold my hands in front of my face. I suggested to Erickson that we turn it into a game — take a drink every time Palin clearly doesn't understand the question. Erickson replied that "people might need to drive home..."

I think it's a sign that I'm maturing (read: growing old and stale) that I don't find Love Hina as comforting as I used to. Perhaps it's because I don't see myself as a bumbling Keitaro anymore, or perhaps it's because now even I think he's an idiot for putting up with Naru. She's violent, possessive, bipolar, jealous, at times arguably insane, and oh, yes, incredibly hot — i.e. the kind of girl I typically fawn all over. Maybe I'm finally growing out of that.

I leave you with this: If we were playing a game of Civilization, would you try to fix the US, or would you quit the game and start over?

0 comments reply permalink

Mega Man 9

posted by chip on 2008-09-24 02:25:20
Somehow Capcom created a whole new Mega Man game in the original series, and it slipped by me completely unnoticed. Just released on WiiWare, Xbox Live Arcade, and Playstation Network, Mega Man 9 is the official continuation of the original series that returns to its 8-bit roots. Well, sort of.

The game was developed by Inti Creates, who has developed the recent Mega Man Zero and Mega Man ZX series for GBA and DS. The company employs many former Capcom developers, including some of the people who worked on Capcom's original 8-bit titles on NES. Inti Creates created a new game engine that replicates the workings of an old 8-bit system's features and limitations, down to sprite flicker and slowdown (which you can optionally turn off). A lot of hard work has gone into the game to make it look like classic Mega Man. The producer, Hironobu Takeshita, says that "... Mr. Inafune had to tell us to redo half of the characters. He brought us in the room and said, 'These characters are too big and bulky, with too many lines. We want to keep it simple.'"

Reports so far say that the game has excellent level design, and may well be the hardest Mega Man game to date. Rumors also suggest that Capcom may finally release a few Mega Man games on Virtual Console. At least on WiiWare, though, it seems like they're milking it. The game costs $10, but numerous addons will cost you extra: Endless attack, $3; Proto Man Mode, $2; Hero Mode, $1; SuperHero Mode, $1; Special Stage, $1. Perhaps they could make a version with all the extras for $15 and call it a day?

Alex wasn't quite as excited about it as I was. He saw the 8-bit style as gimmicky, and instead wanted to see a modern 2D game with all the pixel art they could throw at it. I respectfully disagree. They certainly could have made a modern 2D Mega Man, but that's what they did with Mega Man 7, Mega Man 8, the Mega Man X series, the Mega Man Zero series, and the Mega Man ZX series. The market is full-up with nicely done 2D Mega Man games. Going back-to-basics was more than a way to sell the game. It was an artistic decision that Inafune made to make the game his Mega Man. Besides, Mega Man isn't about the graphics. It's about being a campy as all get-out, masochistically difficult action platformer. And as long as it is a well made game, the visual style is no more gimmicky than Toyota putting that crazy hoop spoiler on the Supra Twin Turbo . Yeah, it'll turn heads, but the beauty is under the hood.

tl;dr EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE! *hops up and down with excitement*

0 comments reply permalink

Remarks by Bill Nye: Habits of a Literary Man

posted by chip on 2008-09-23 02:17:38
Erickson picked up a rather old book at a sale, Remarks by Bill Nye. No, not that Bill Nye. The book is a series of short comedic essays, each no longer than a few pages. I'd describe it best as a published "best of" from a late 19th century blog. The copyright has expired, so I'd like to reprint one of his works for your reading pleasure. Actually, even if our copyright laws prohibited copying a work from 112 years ago (and they nearly do), I'd print it anyway. It's not every day you find something that old.

Habits of a Literary Man

The editor of an Eastern health magazine, having asked for information relative to the habits, hours of work, and style and frequency of feed adopted by literary men, and several parties having responded who were no more essentially saturated with literature than I am, I now take my pen in hand to reveal the true inwardness of my literary life, so that boys, who may yearn to follow in my footsteps and wear a laurel wreath the year round in place of a hat, may know what the personal habits of a literary party are.

I rise from bed the first thing in the morning, leaving my couch not because I am dissatisfied wit hit, but because I cannot carry it with me during the day.

I then seat myself on the edge of the bed and devote a few moments to thought. Literary men who have never set aside a few moments on rising for thought will do well to try it.

I then insert myself into a pair of middle-aged pantaloons. It is needless to say that girls who may have a literary tendency will find little to interest them here.

Other clothing is added to the above from time to time. I then bathe myself. Still this is not absolutely essential to a literary life. Others who do not do so have been equally successful.

Some literary people bathe before dressing.

I then go down stairs and out to the barn, where I feed the horse. Some literary men feel above taking care of a horse, because there is really nothing in common between the care of a horse and literature, but simplicity is my watchword. T. Jefferson would have to rise early in the day to eclipse me in simplicity. I wish I had as many dollars as I have got simplicity.

I then go in to breakfast. This meal consists almost wholly of food. I am passionately fond of food, and I may truly say, with my hand on my heart, that I owe much of my great success in life to this inward craving, this constant yearning for something better.

During this meal I frequently converse with my family. I do not feel above my family; at least, if I do, I try to conceal it as much as possible. Buckwheat pancakes in a heated state, with maple syrup on the upper side, are extremely conducive to literature. Nothing jerks the mental faculties around with greater rapidity than buckwheat pancakes.

After breakfast the time is put in to good advantage looking forward to the time when dinner will be ready. From 8 to 10 A. M., however, I frequently retire to my private library hot-bed in the hay mow, and write 1,200 words in my forthcoming book, the price of which will be $2.50 in cloth and $4 with Russia back.

I then play Copenhagen with some little girls 21 years of age, who live near by, and of whom I am passionately fond.

After that I dig some worms, with a view to angling. I then angle. After this I return home, waiting until dusk, however, as I do not like to attract attention. Nothing is more distasteful to a truly good man of wonderful literary acquirements, and yet with singular modesty, than the coarse and rude scrutiny of the vulger [sic] herd.

In winter I do not angle. I read the "Pirate Prince" or the "Missourian's Mash," or some other work, not so much for the plot as the style, that I may get my mind into correct channels of thought. I then play "old sledge" in a rambling sort of manner. I sometimes spend an evening at home, in order to excite remark and draw attention to my wonderful eccentricity.

I do not use alcohol in any form, if I know it, though sometimes I am basely deceived by those who know of my peculiar prejudice, and who do it, too, because they enjoy watching my odd and amusing antics at the time.

Alcohol should be avoided entirely by literary workers, especially young women. There can be no more pitiable sight to the tender hearted, than a young woman of marked ability writing an obituary poem while under the influence of liquor.

I knew a young man who was a good writer. His penmanship was very good indeed. He once wrote an article for the press while under the influence of liquor. He sent it to the editor, who returned it at once with a cold and cruel letter, every line of which was a stab. The letter came at a time when he was full of remorse.

He tossed up a cent to see whether he should blow out his brains or go into the ready-made clothing business. The coin decided that he should die by his own hand, but his head ached so that he didn't feel like shooting into it. So he went into the ready-made clothing business, and now he pays taxes on $75,000, so he is probably worth $150,000. This, of course, salves over his wounded heart, but he often says to me that he might have been in the literary business to-day if he had let liquor alone.

2 comments reply permalink

Cryptography Ahoy!

posted by chip on 2008-09-20 01:52:09
Cryptography has been one of those things that I've always wanted to learn, but I've never had the stomach to wade through the technical discussion. Since cryptography is the art of transforming readable data into the unreadable kind and back again, the discussions are necessarily dense. If any branch of Computer Science is most akin to magic, it would be cryptography (or perhaps machine vision). I read a bit of Bruce Schneier's "Applied Cryptography" a while back, and more recently, the Wikipedia article on DES, and after some pounding on my synapses, I finally started to get how it worked.

More recently, I thought of a data escrow system that stored messages in encrypted form. The encryption would be designed so that, if the key was unknown, a small amount of computation (15 minutes or less) would allow the user to brute-force the key. The idea was to require non-trivial resources for the recipient to read the message, introducing an element of suspense. This "message in a crypto bottle" could be used as a building block for games. Creating an interesting game out of this is left as an exercise to the reader.

Even if otherwise useless, a simple, easily crackable algorithm could serve as an introduction to cryptography. I spent a few days tinkering with a simple cryptosystem, and I finally wound up with Cryptobox. In a webpage, it allows you to encrypt and decrypt text, and, in a short while, brute force encrypted text. The page explains the algorithm, and the source is provided for perusal.

Somewhat unintentionally, Cryptobox turned out to be a great benchmark for Javascript performance. Completely unintentionally, it works in IE7. I know. It surprised the fuck out of me, too. So for your performance measurement pleasure, here is Cryptobox cracking a 383 byte message on my 1.8GHz Athlon64 Wintendo:

BrowserTime (seconds)Time Factor
Google Chrome 0.2.149.3068.6901.0
Mozilla Firefox 3.0373.3905.43
Opera 9.50446.8906.50
Internet Explorer 7.0.5730.131081.12515.74

Which just goes to show that even when IE is working, it fails hard. I was expecting IE to be slow, maybe 20% slower than Firefox, but 200% slower is just ridiculous. Of course, you should take these results with a grain of salt. Not all applications are as math-heavy as Cryptobox.

But when the applications we use are becoming increasingly web-based, it's easy to see Google's train of thought with Chrome. "Remove limitations, and developers will make more ambitious applications." It's not a stretch of the imagination to say that right now, everything runs twice as fast in Chrome as it does anywhere else. It's like Google gave you a computer from the future. For free.

Now if they would just finish the Linux and Mac version. :-/

0 comments reply permalink

Live Healthy, Die Anyway

posted by chip on 2008-09-17 03:41:56
"Are you eating butter?"
"No. It's margarine."

A couple days ago I made Bacon Tofu Yakisoba. That may sound a bit strange to you, but belive me when I say that it's absolutely delicious. Tofu is, when it starts out, a nearly tasteless white brick of soybean protein, not unlike the blank canvas of the food world. When marinated in a soy sauce and hot sauce mixture and fried in bacon fat, however, it comes alive with flavor. With shredded bacon, fried onions, and noodles, it's quite a treat. I recommend it to anyone, especially vegetarians.

I just finished American Gods, and as it usually happens after reading several books, I have the urge to write. Writing, for me, is an exercise in removing distractions. To focus solely on my work, I use a certain word processor that has been near and dear to my heart for the past 20 years: Galaxy. Galaxy was a WordStar clone for DOS that I used back on our first IBM PC compatible. It's simple and useful, providing no distractions or obstructions when pounding out a stream of text. I have Galaxy 3.0 installed on my server, and I use it over SSH running in DOSEMU. That's right, I'm using a dual Opteron machine to run a DOS word processor. :D

Somewhat relatedly, I've screwed up my sleep schedule. I'm trying slowly to get it back to "normal," but my plan of waking up early requires the kind of discipline I just don't have when I'm asleep.

Last Sunday, our basement flooded. The sump pump was working, but due to the way the basement is, water pooled in lower sections anyway, leading to about an inch of water on my bedroom floor. As I peered out from my bed (which is lofted a good three feet above the floor), I noticed dirt on the white tile floor that wasn't there before. "That's odd," I said to myself, and leaped down from the loft. *sploosh* "Well shit. It's going to be one of those days." The dirt wasn't actually on the floor, it turns out, it merely rode in on a stream of water. With some help from our landlord, I got it cleaned up, but we're still not sure where the leak is.

Every time I get up now, though, I check to make sure the floor isn't covered in water.

0 comments reply permalink

On The Passage of Time

posted by chip on 2008-09-11 01:28:47
Yesterday was Nancy's birthday. After wishing her a Happy Birthday, she requested that I do something special. She didn't tell me what I should do, just that I should do something to celebrate her birthday. When I asked her what she was doing for her birthday, she replied that she was going to eat some Pho. Pho is a Vietnamese noodle soup typically made with beef broth, slices of beef, and various vegetables. I found a Vietnamese place in town, and with Alex and Andrea (who were celebrating the arrival of Alex's financial aid check), I had some Pho for Nancy's birthday.

On a trip to Barnes & Noble the other day, I picked up a copy of Lewis Carroll's Alice's Adventures in Wonderland and Through the Looking-Glass. While all of Carroll's works are now in the public domain, you really should have a physical copy just for the accompanying illustrations. This particular version is part of "Barnes & Noble Classics," which adds historical and biographical footnotes as well as commentary from a literary critic. Most people know Carroll as an author of children's tales, but few know that he (under his real name, Charles Lutwidge Dodgson) was also a mathematician. At the end of the book is one of his mathematically-inclined short stories, "What the Tortise Said to Achilles," a followup to the famous treatment of Zeno's Paradox. It is amazing to me how well his fictional works reflect electronic computing, even though computers as we know them didn't exist for nearly a hundred years after Alice was published. For example:

"Come, we shall have some fun now!" thought Alice. "I'm glad they've begun asking riddles—I believe I can guess that," she added aloud.

"Do you mean that you think you can find out the answer to it?" said the March Hare.

"Exactly so," said Alice.

"Then you should say what you mean," the March Hare went on.

Each of Carroll's characters displays this peculiar logical obtuseness that seems eerily familiar to anyone who has worked with an "intelligent" computer system.

I've been spending some mental effort lately to come up with new and useful methods of digital communication. (Un)fortunately, every thing I've come up with already exists. Somehow we've gone from email to chat to instant messages to webmail to private messages on websites that you're notified of via email to messages broadcast on websites that you can also read in your news or email or SMS or... *gasp pant choke* Quite frankly, I find the whole progression retarded. It's like there's some sort of technological attention deficit disorder that makes people gravitate towards the next shiny thing without regard for whether or not it's actually an improvement. Last I checked, email worked just fine, so why do people feel the need to send messages via Myspace or Facebook? Maybe I'm just geting old.

Speaking of old, I've been reading the Unix Hater's Handbook. What's truly disturbing about the Handbook is not how old and outdated it is, but rather how, even with the advances of modern Linux, it's still mostly true. It is filled with historical anecdotes of Unix "lossage" that no longer apply, but quite a few of the issues it brings up are still valid. It's a great "Ha Ha Only Serious!" book that I recommend to any Unix fanboy.

And it is now September 11th, which means I need to find the company that currently owns my domain registration and renew. That's not even a joke. When I registered it initially, it was with RackShack. The following two years, it has been Ev1servers. It seems that Ev1 has been bought by The Planet. One of these years, my domain will just get lost in the shuffle, and it will disappear into the bit bucket. :/

2 comments reply permalink

<< 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 >>
All content printed on 100% recycled internet memes.