545

I’ve started using Drivel to post to Livejournal, after ironing out some sticky bugs with IPv6, proxies, and the difficulty of parsing IPv6 addresses with port numbers badly specified. Thanks to Todd for the help.

544

I now have a version of Instiki that doesn’t use Madeleine for its storage. It’s using Og instead, and it works really well. It’s faster than the other version so far, by feel — don’t take that as an objective measurement — and won’t have the memory issues[1] that a large Instiki does with Madeleine.

If I get a chance, I’ll clean up my modifications and make a patch against Instiki-latest.

4279 aredride 16 0 220m 198m 3664 S 0.0 19.7 31:40.65 ruby

543

From Why Does Haskell Matter?:

Removing side-effects from the equation allows expressions to be evaluated in any order (although not all functional languages use this). A function will always return the same result if passed the same input. This determinism removes a whole class of bugs found in imperative programs. In fact, I would even go as far as to say that most bugs in large systems can be traced back to side-effects - if not directly caused by it, then caused by a flawed design made possible only by using side-effects. Functional programs will most often have less bugs!

This is dead on.

542

So much for taking the day off. I ended up working for my favorite customers, though, so it went really well, and they bought me dinner at the chinese restaurant. Their office has been re-arranged, the computer restored to more than its former glory, Mary loves the theme.dll hack, their printers work, and their billing software got moved over without a hitch. All in all worth a hundred bucks, and a good time was had.

541

I need to write more letters, on real paper again. My letters used to look much like this one, all the time. Unfortunately, I’m also one who writes letters, then decides not to send them. I have a small collection of these — they’re beautiful, but they’ll remain unsent.

A letter.

540

I realized tonight that I’ve never broken up with someone — not started it. I’ve been through the process of break-ups, sometimes it’s quick and relatively painless, sometimes it feels rather like being thrown off a building must.

Pain = Gain, right?

I just learned how to play A minor scales, and my hand just cramped up unbelievably. Here’s to learning. Ow.

538

This morning I managed to down five cups of coffee and four shots of espresso without feeling too much jitter. However, this evening, I’m suffering mild panic attacks. It’s not fun.

537

I get immense satisfaction from filing good quality bug reports. Doubly so with attached patches.

536

Ruby’s binding to Redland is maddeningly hopeless, but I did get this out of it with a SPARQL query…

`aredridel@mizar:~$ ruby rdfq.rb file://$(pwd)/dc.rdf

Function rasqal_query_get_source_sequence is deprecated - use rasqal_query_get_data_graph_sequenceCalling deprecated rasqal_triples_source factory method new_triples_match (will go in rasqal 0.9.10+) {“title”=>#<SWIG::TYPE_p_librdf_node:0x40078cb4>, “x”=>#<SWIG::TYPE_p_librdf_node:0x40078d04>} `

Let’s just leave it that I have major issues with SWIG.

Orgasmilicious.

Mango Salsa

  • One slightly underripe mango, chopped,
  • one quarter cup red onion, chopped,
  • one teaspoon fennel seed, ground,
  • juice of one lemon,
  • a half teaspoon of habanero sauce, or one habanero, roasted and chopped up super super fine. Add more if you like you like your food thermonuclear.

This goes really well with Polenta Chips.

You know you're a child of the '90s when...

Thanks to ftmichael, evinboy, and baileyjordan

  1. You’ve ever ended a sentence with the word “PSYCH!”
  2. You watched the Pound Puppies.
  3. You can sing the rap to the “Fresh Prince of Bel Air.”
  4. You wore biker shorts under your skirts and felt stylish.
  5. You yearned to be a member of the Baby Sitters Club and tried to start a club of your own.
  6. You owned those little Strawberry Shortcake pals scented dolls.
  7. You know that “WHOA” comes from Joey on “Blossom.”
  8. Two words: M.C. Hammer
  9. If you ever watched “Fraggle Rock.”
  10. You had plastic streamers on your handle bars.
  11. You can sing the entire theme song to “Duck Tales.”
  12. You remember when it was actually worth getting up early on a Saturday to watch cartoons.
  13. You wore a ponytail on the side [back] of your head.
  14. You saw the original “Teenage Mutant Ninja Turtles” on the big screen.
  15. You got super excited when it was Oregon Trail Day in computer class at school.
  16. You played the game “MASH.” (Mansion Apartment Shack House)
  17. You wore a Jordache Jean jacket and you were proud of it.
  18. L.A. Gear
  19. You wanted to change your name to “JEM” in Kindergarten.
  20. You remember reading Tales of a Fourth Grade Nothing and all the Ramona books.
  21. You know the profound meaning of “WAX ON, WAX OFF.”
  22. You wanted to be a Goonie. Truffle Shuffle! Boodie Trap!
  23. You ever wore flourescent clothing.
  24. You can remember what Michael Jackson looked like before his nose fell off.
  25. You have pondered why Smurfette was the only female smurf.
  26. **You took plastic cartoon lunch boxes to school. **
  27. You remember the CRAZE, then the BANNING of slap bracelets. oh, the heartbreak.
  28. You still get the urge to say “NOT” after (almost) every sentence
  29. You remember Hypercolor T-shirts.
  30. Barbie and the Rockers was your favorite band.
  31. You thought She-Ra and He-Man should hook up.
  32. You thought your childhood friends would never leave because you exchanged friendship bracelets.
  33. You owned a pair of jelly sandals.
  34. After you saw “Pee-Wee’s Big Adventure” you kept saying “I know what you are, but what am I?”
  35. You remember “I’ve fallen and I can’t get up!”
  36. You remember going to the skating rink before there were inline skates.
  37. You even got seriously injured on a Slip ‘n’ Slide.
  38. You have ever played with a Skip-It.
  39. You had or attended a birthday party at McDonald’s.
  40. You’ve gone through this list occasionally saying “awesome.”
  41. You remember Popples.
  42. “Don’t worry, be happy.”
  43. You wore like, EIGHT pairs of socks over tights.
  44. You wore socks scrunched down.
  45. “Miss Mary MACK MACK MACK, all dressed in BLACK BLACK BLACK, with silver BUTTONS, BUTTONS, BUTTONS all down her BACK, BACK, BACK!”
  46. You remember boom boxes vs. CD players.
  47. You remember watching both “Gremlins” movies.
  48. You knew what it meant to say “Care Bear Stare!”
  49. You remember watching “Rainbow Brite” and “My Little Ponies.”
  50. You thought Doogie Howser was hot.
  51. You remember Alf, the lil furry brown alien from Melmac.
  52. You remember New Kids on the Block when they were cool.
  53. You knew all the characters names and their life stories on “Saved By the Bell.”
  54. You know all the words to Bon Jovi.
  55. You played and/or collected “Pogs.”
  56. You used to pretend that you could transform into a Power Ranger. (I remember when they were cool, even)
  57. You had a variety of colors for Buddha beads.
  58. “Where’s Waldo?” was a big hit
  59. “Lean on me … when you’re not strong … and I’ll be your friend. I’ll help you carrrryyyy onnnn.”
  60. The GREY Nintendo Gameboys
  61. Besides gameboy, you remember Gamegear
  62. You owned a Furby.
  63. Your friends had a group where each girl was a Spice Girl
  64. Chuck E Cheese Parties. (And before that, Showbiz Pizza)
  65. Discovery Zone was better than Chuck E. Cheese
  66. You watched American Gladiators
  67. You played with Stretch Armstrong
  68. You played with Crash Dummies
  69. When thinking about gummy bears you imagine them in a line, dancing into their bag.
  70. You read almost every single copy of R.L. Stiens “goosebumps”.
  71. So we were, like, going, like, to that, like, place, like, where, like, people do, like, stuff.
  72. You can hum the mario bros. theme song in three part harmony with friends.
  73. You watched Eek the Cat
  74. Garfield, Odie, Jon Arbuckle ring a bell
  75. “Take Chances, get messy, make mistakes.” “I know I should have stayed home today.” “Okay bus, do your stuff”

I am such a child of the mid-eighties. Good god. I even beat baileyjordan.

Choosing a data format

It’s no secret that I hate just about every data format out there. SQL is non-portable, XML is usually Wrong, abused and badly laid out, nor is it appendable; YAML doesn’t include enough structure. Text files are usually too ad-hoc, and hard to index. RDF is beautiful, but hard to parse.

If you need microformat interoperability — that is, the ability to yank out little pieces of information from larger documents or data structures, look at XML and especially RDF/XML, and take note of existing (meta)data standards like Dublin Core. RDF has a whole suite of well specified semantic types, which are importable by reference to the specs. Parsing is exeedingly well defined, but hell to do in an ad-hoc way. This plays nice with some DTD-based XML, and mosst DTD-less XML. The lack of easy-to-append isn’t often a problem in cases like this, especially with “documents” that are usually updated whole, not streams of data. XML is good at corruption detection because of well-formedness rules.

If you need streams of data, look at separate files for each entry, or a text file you can append to. If indexing or querying is important, look at SQL, too — Sometimes it’s really the best tool for the job. SQL lets you formally specify data types, which is good, but relations are left up to the query, which can be bad, as there’s no universal namespace, so data formats end up being very ad-hoc. Binary storage like SQL isn’t resilient in the case of format upgrades or disk errors, so keep backups. Good ones.

If you want to import the semantics of various IETF RFCs, look at MIME-formatted files, and at using HTTP as a transport. There’s relatively easy conversions between mail and web, and parsers are very easy to implement. Files are text files, so with a human to go through the data, even things like having sectors missing from your disk may not render the data entirely unusable. Searching with linear search programs like grep is easy, and if metadata is in the header of the data, it’s relatively easy to match as well.

If you want to mark up arbitrary text with arbitrary annotations, look at XML with mixed-content DTDs like XHTML. Mixing sets of annotations is relatively easy, for many tasks, and the ability to just mark relevant bits of text with semantic annotation makes for very strong, parseable documents. Pure XHTML 1.0, 1.1 and 2.0 are all easily indexed as well with crawlers like Google, Lucene and HT://Dig.

If you need simple config files, first see if your implementation language serves as a suitable choice itself, if not, look at YAML — its utter simplicity at representing hashes and lists makes it a natural choice for very simple config data. (I find that most software configuration can be simplified to a hash.)

If you’re dealing with encryption, look into the bulk of ASN.1 instead of XML, or at least get a handle on treating data with binary exactness, and not being loose with white-space and newline translations. Have some idea what your canonical format is.

If you’re building compound documents, especially on the Macintosh, take a hint from MacOS and use a directory instead of a file. OS support for directories as opaque objects is getting better.

In all these cases, figure out what your atomic edit is — if an entire document gets saved at once, XML might be fine. If edits are always appends, XML is going to be ugly. If you need random-access and concurrent updates, look at one file per entry, or SQL, since concurrency is well supported in these cases.

532

EUNTASTE: cannot place cell of color “maroon” inside table of color “pink”.

Just because I can, bluesbodger

Quote of the Day

Night_Kitten is amused by Sean-speak.

Sean says “I fully realise that Seanish is t3h secks”

lev('Seanish', 'Spanish') => 1