You Go, Jeff

posted by chip on Saturday, the fifth of September 2009, at a quarter till four in the morning
I first heard about Jeffrey Friedl from his rather good web-based Japanese-English Dictionary, which helped me get through two years of Japanese language class. The domain name for that site belies his more common notoriety — he is an expert on regular expressions (or regexes for short). Mastering Regular Expressions is the book for regexes; nobody else even comes close. I have a copy on my shelf, and it's been an invaluable resource for work and play. Yes, I play with regexes, don't look at me like that.

Now, you may be wondering why a renowned author of a famous programming book is doing making a Japanese-English dictionary. To answer this, you need only look at the dedication for his book: 文枝, Fumie. His wife is Japanese.

Jeffrey Friedl, you are my idol. :-D

0 comments reply permalink

Ban Ban Boo!

posted by chip on Wednesday, the twenty-ninth of July 2009, at three in the morning
Rather by chance, I found a wonderful little programming language called Boo that targets the Common Language Infrastructure (known to most of you as .NET and/or Mono). It's climbed my list of favorite languages rather quickly due to its combination of several winning features:

I've been using Boo for about a day, and here's where it sits on my list of Favorite Programming Languages:

  1. Perl
  2. JavaScript
  3. Boo
  4. Lua
  5. Python
  6. C#

It's good stuff. And Miku's a fan as well. :)
(Actually, that's a partial reference to this set of bizarre Japanese McDonald's commercials, but I like it anyway)

0 comments reply permalink

Random Access Update

posted by chip on Monday, the thirteenth of July 2009, at a quarter till four in the morning
I just finished the last episode of Hatsukoi Limited. FINALLY, a good ending! Oh, I didn't tell you about Hatsukoi Limited? It's uh... it's a really manly anime about monster trucks and beer and stuff. Y'know. The kind of thing a man watches. Yup.

I've also created yet another method of sharing files on The Dominion of Awesome: Tree. It's a hierarchical file storage service with a simple permissions system. Unlike other sharing methods on DoA, Tree is designed for sharing files in a structured, deterministic manner. It works a lot like any other online storage system, except that all users share a common repository. Putting my money where my earlier mouth was, authentication is done entirely through OpenID, so if you have one, you have an account. When a file is uploaded or a directory is created, it is owned by the creator. Directories can be "disowned," which allows any authenticated user to upload into them — useful for drop boxes. Also, Tree supports uploading and downloading files as .ZIP files and automatic playlist generation for directories containing audio files.

My friend Marty has started his own business called Pointy Helmet Coaching, which provides triathlon coaching services in Gainesville, Florida. I don't live anywhere near there, and you probably don't, either, but I'm pointing it out because it will help make him more legitimate in the eyes of Google PageRank. Also, I wish him luck and success. :)

I'll be moving into a new house soon, which means the next week will involve a lot of lifting heavy things in the heat of summer. Our new place is pretty nice, though. It's incredibly huge in a way that's not easy to explain. If you want to know exactly how awesome it is, you'll just have to come visit. :-P

0 comments reply permalink

Tofu Research and Development

posted by chip on Thursday, the second of July 2009, at a quarter till four in the morning
Tofu has only recently become a part of my culinary arsenal. As a "vegetarian" substance, it held a place in my mind next to soy milk and wheatgrass. It seemed to me to be a silly thing, created by vegetarians as soy-based meat. Well, curiosity eventually got the better of me, and in the name of science, I bought a chunk and experimented on it. Based on several years of ensuing research, I am pleased to report these findings.
  1. Tofu is not a meat substitute. Anyone who claims this is a liar. Meats have personality. Tofu does not. Attempts to replace real meat with tofu will usually end in tears and broken frienships.
  2. Because tofu is a blank slate, you have to add flavor to it for it to be palatable. This may sound like a minus, but it's actually a plus — tofu is a more versatile flavor platform than even chicken breasts. With a good marinade or spice mix, tofu is a ready ally in any flavor situation. And because it's not meat, you can test the flavor without worrying about food-borne illness. :)
  3. Any grade of tofu below "firm" is only for use in salads to "add texture" (Spoilers: it doesn't). For serious tofu work, stick with the hard stuff.
  4. The only viable way I've found of getting proper flavor and texture into a piece of tofu is by frying it. My research to date focuses mainly on the application of stir-frying to marinated tofu, and results have exceeded all expectations.
  5. The best way of preparing tofu is to fry it in bacon fat (but this is probably true for anything).

This experimental research has brought us such heretically delicious dishes as Bacon Tofu Yakisoba and the culture-bending delight that is Curry Fried Rice. There is a lot left to explore about tofu's potential, and I hope that future endeavors will unlock this potential in mind-bendingly flavorful ways. :)

0 comments reply permalink

Terms of Servitude

posted by chip on Tuesday, the thirtieth of June 2009, at four in the morning
Prompted by a Slashdot story, I decided to look through the Terms of Service of both MySpace and Facebook. Somewhat to my surprise, they were both rather straightforward and easy to read. I had heard that both services claim ownership of the content you post. Apparently, this is a myth — both services specifically state that they do not claim ownership of your content. You do grant them a license to reproduce the content in relation to their services, but this is a pretty standard measure that allows them, for example, to display the images you have uploaded.

Also good to know is that this license terminates when you remove the content. MySpace says:

After you remove your Content from the MySpace Services we will cease distribution as soon as practicable, and at such time when distribution ceases, the license will terminate.

And on Facebook:

This IP License ends when you delete your IP content or your account (except to the extent your content has been shared with others, and they have not deleted it).

But if you can tell me where the delete button is for a Facebook account, I'll give you $5. Even after deactivating your account, you can log in later, and all your data is still there. Facebook says:

When you delete IP content, it is deleted in a manner similar to emptying the recycle bin on a computer. However, you understand that removed content may persist in backup copies for a reasonable period of time (but will not be available to others).

For some unspecified value of "reasonable."

Also interesting:

You will not use Facebook if you are located in a country embargoed by the U.S., or are on the U.S. Treasury Department's list of Specially Designated Nationals.

And that's why you don't hear about Iranian protesters using Facebook.

0 comments reply permalink

Driving a (Few Hundred) Miles on Someone Else's Tires

posted by chip on Wednesday, the twenty-fourth of June 2009, at half past three in the morning
Boy is it good to have my car back. I did really appreciate Ahab (as I have dubbed the family's white Honda Acura Integra) on the long distance drive, but in town, it's just too big and sloppy to work well. It may sound a little weird to call that car "big" in a country where it would be considered, at best, a mid-size sedan, but compared to my little hatchback, it's positively gargantuan. Relative to the nimble CRX, the four-door '93 Integra feels numb and detached.

It's shutdown routine is also completely wrong. Here's what I do when parking my CRX:

  1. Turn off the engine.
  2. Pull the handbrake.
  3. Roll up the window.
  4. Exit the vehicle.

And here's what happens when I park the Integra:

  1. Turn off the engine.
  2. Wait, why can't I remove the key?
  3. Oh, right, it's still in Drive. Shift into Park.
  4. Remove the key.
  5. Don't pull the handbrake — You're in Park already.
  6. Roll up the windows... oh, wait, the key has to be on for the electric windows to work.
  7. Insert the key and turn it to the ON position.
  8. Roll up the windows.
  9. Remove the key.
  10. Exit the vehicle.

And don't get me started on the silly active restraint system. Still, the Integra had a list of amenities that made the drive much more enjoyable — things like cruise control, air conditioning, and not being deafeningly loud at 70MPH.

But when you have to pass a line of stopped cars, dive into their lane 50m before the intersection, brake hard, then sharply turn left, you really want a CRX. :)

0 comments reply permalink

The Wedding Adventure

posted by chip on Monday, the twenty-second of June 2009, at a quarter till four in the morning
Des: You're not like how I imagined you'd be from your comments.
Me: How so?
Des: Mmm... I thought you'd be taller.
Me: What?

The past few days I went back down to Springfield, MO for my friend and co-worker Alan's wedding. As you can see from the conversation above, I also got to meet the illustrious Desiree, a.k.a. Alan's New York friend who I've been harassing constructively criticizing on her blog. (Actually, she's in D.C., now, but the distinction hardly matters in my mind.) I got the chance to talk with her at length, but we were both unfortunately not at 100%, so things were a bit slow and awkward. In her case, that was a missed flight that turned into a 24-hour bus ride from D.C. to Springfield. She's a trooper, that one.

I made it to Springfield on the day before the wedding in order to go to the "bachelor party." Despite the best efforts of Alan's compatriots, the debauchery was kept to a minimum, so I put the event in quotation marks to indicate that it was not a true bachelor party in the American tradition. We drank, ate fondue, talked about Alan's most embarrasing moments, went to a gay bar, drank terrible liquors, then broke into a park in the wee hours of the morning. I got to meet Robin, Alan's one female groomsman (groomswoman?), who apparently draws energy from an internal source whose limits are unmeasurable with current technology.

The wedding was, as is custom, hectic and fraught with last-minute problems. I played assistant to the wedding party in tasks ranging from assisting in Desiree's pick-up from the Greyhound station to delivering the paycheck to the DJ. The wedding itself went off without a hitch, and the wedding party and guests retired to the reception, which was held at a loft apartment in downtown Springfield. It was a bit cramped, but the food was good and the company was excellent.

After the reception, the younger, more resilient members headed to the hotel to swim in the pool, drink, and be merry into the wee hours of the night. I didn't swim, but it did feel good to soak my feet in the pool, and it was a beautiful view. ;) Later, there was less swimming and more bloody marys. Much conversation was had, and Robin taught me to cha-cha. After the party finally wound down, Robin drove me back to Jon's and I fell asleep faster than I have in months. (Robin drives a 6-speed Nissan Versa. I didn't even know those came with 6-speed transmissions. Did I mention that Robin is awesome? No? Robin is awesome.)

The following day, I helped clean up the reception mess, had some custard, owned at a game of Risk, drove back in time for a beer with Alex, and had a good long sleep.

Good times. :)

2 comments reply permalink

Opera Unite

posted by chip on Wednesday, the seventeenth of June 2009, at a quarter till four in the morning
Yesterday, Alex found an announcement from Opera that they were going to "rewrite the web." Naturally, I was skeptical of such a claim, but at 2am CDT (presumably daytime in Norway), they unveiled Opera Unite. It's a system by which simple web server applications can be run in your Opera browser, then accessed anywhere on the web via Opera's proxies. You get an address like http://machine.username.operaunite.com/, at which services appear. They've packaged a few very useful demo apps that show off what can be done. You can read their entire spiel at unite.opera.com.

I am not someone who is easily impressed, so when I say that I'm impressed, you should be impressed. And I'm impressed.

It really is such a simple idea, connecting computer-to-computer across the internet instead of relying on servers, but somehow it's taken this long to get something implemented. And Opera has made it a simple affair. Of course, ISPs will hate it because it means there will be more demand on upstream bandwidth. Media cartels will hate it because it enables massive piracy. Web service providers will hate it because in several cases, it makes them obsolete. It has all the makings of a disruptive technology, which tickles me pink. Then again, there are a few good criticisms against Opera Unite:

  1. Opera's stated goal with Unite is to free users from the tyrrany of servers that are under the control of others. An admirable goal, but consider this: Unite works by routing traffic from your browser, through Opera's proxy servers, and to the other user's browser. Without Opera standing in the middle of your traffic, this whole scheme doesn't work. Furthermore, it can only be served by Opera, though I suspect that will change soon enough.
  2. Running services on home computers will make accessing Unite services a bit like rolling the dice. Is their computer on? Is Opera running? People are used to a degree of certainty on the web. It is arguably a flawed idea to think that the web is reliable, but the unpredictable availability of Unite services will probaby irk a lot of users.
  3. While the platform is securely designed, it will only take a few badly written servers to expose users to information leaks and security holes. It will happen. Trust me.

I've written a version of my infamous DATA MONSTER script using Unite, and I will say that the framework is simple and well-designed. Most of my time was spent learning how Unite does things instead of writing code, which is good. (SPOILERS: Unite servers are Opera Widgets that work as event-driven server processes rather than client processes)

Do give their beta a try — you may be amazed at how easy it is to set up your own media sharing server.

0 comments reply permalink

On Self-Awareness

posted by chip on Monday, the fifteenth of June 2009, at half past three in the morning
If, while working with a new concept, you feel that you're doing well, this is due to one of two reasons:
  1. You have a natural knack for the concept, and have gained an intuitive understanding of it.
  2. You are so completely far from understanding the concept that you cannot even gauge how poorly you understand it.

This is why scientists and engineers collaborate. :)

0 comments reply permalink

OpenID: Half-Way There and Staying Put

posted by chip on Sunday, the fourteenth of June 2009, at half past two in the morning
OpenID is a great idea that seems to be forever locked in a kind of Zeno's Paradox. It edges ever closer to universal adoption, but never seems to make it past that tipping point. Since the last time I checked, both Google and Microsoft announced beta support for authenticating OpenID with their services. As of this writing, the list of sites offering OpenID is pretty long: In addition to the aforementioned Google and Microsoft, AOL, MySpace, Yahoo, Blogger, Flickr, LiveJournal, and WordPress also provide OpenID authentication. So why aren't we using OpenID everywhere?

Well, there is a big problem. Providing authentication is only half of the picture. An OpenID ecosystem consists of providers and consumers, and so far, almost all those big names are providers, not consumers. The list of exceptions is small: only LiveJournal accepts OpenID as a login method, and Blogger accepts OpenID for posting comments. It's like a party where everyone is talking but no one is listening — there is a lot of noise being made, but not much is getting done. It's not just laziness, though. For big sites, their userbase is a resource that they guard jealously. Allowing other sites to log in loosens their grip on their users. That's not likely to change any time soon.

For my part, I'm going to start using OpenID where public authentication makes sense. Expect to see it as an option for posting comments soon, and it will probably show up on a few Dominion of Awesome services. I've just finished a publicly available OpenID server at id.dominionofawesome.com where you can get your own OpenID URI. Currently, you will have to punch in the whole URI, which looks like id.dominionofawesome.com/username. I'm planning on getting autodiscovery working so you only have to type in dominionofawesome.com, but even that is quite a bit to type (if anyone wants to buy me doa.com, that would be neat-o-keen).

To slow down bots, I've added a kind of turing test inspired by the Voight-Kampff test from Blade Runner/Do Androids Dream of Electric Sheep?. It asks questions based on what should be no-brainer responses for humans, but are (probably) currently impossible for computers to figure out. The answers don't have to be exact — the checker merely looks for certain key words that will always occur in a normal response. For well-written questions, those key words should not occur in the question. This, of course, may also prevent human psychopaths from signing up, but by any measure, that's a good thing. :)

0 comments reply permalink

next previous
All content printed on 100% recycled internet memes.