PSGML

Posted on Fri, 2 Jun 2006 in Random
Last edited Fri, 2 Jun 2006
PSGML is absolutely the worst program I have ever used. Every time I run emacs it does something different. Sometimes it feels like indenting properly. Sometimes it doesn't. Sometimes it uses one color scheme, sometimes it uses another. ARRRRGGG. I HATE PSGML. It opens a stupid log buffer to spew incomprehensible errors at me at RANDOM POINTS IN TIME WHEN I'M TRYING TO TYPE. Sometims it decides i need è where my whitespace used to be FOR NO REASON AT ALL. Why isn't there a xml mode that isn't completely batshit insane?

aaaaahhhhh, NXML

Posted on Fri, 2 Jun 2006 in Random
I found a XML mode that doesn't wig out: NXML.

Aligning Interest with Capability

Posted on Fri, 2 Jun 2006 in Random
Last edited Fri, 2 Jun 2006
Schneier describes a unpopular scheme that the Italian government used to try to get shoppers to demand receipts from retailers. Taiwan found a way to create an incentive without pissing people off.

Baby Geese

Posted on Sun, 4 Jun 2006 in Random
Last edited Sun, 4 Jun 2006
A few months ago Meghan and I went for a walk in Columbia and we came across a family of geese with little babies. They were tiny and the jumped in the lake but I did get a blurry cell phone picture of them swimming away:

Today we went the thee lake an they were almost all grown up:

Still adorable though. I have a few more cell-pone pictures from today.

Reddit

Posted on Sun, 4 Jun 2006 in Random
Last edited Sun, 4 Jun 2006
If you aren't already familiar with reddit you should go check it out. It recommends links to you, which you can mark as things you like or dislike. This input trains a filter so it can recommend links you're more likely to be interested in. What's really neat about reddit is that you wind up seeing a lot of great stuff that you never would have been aware of otherwise. It would have never occurred to me to search for the largest known crystals on earth or salt being transformed into patterns by sound waves.

I've been using reddit for about a week and it's already gotten quite good at picking links for me. You really should check it out, but be warned: it's quite addictive.

What I Want in a Language

Posted on Sun, 11 Jun 2006 in Technology
Last edited Sun, 11 Jun 2006
  • I want lexical scope as the default and dynamic scope as an option
  • I want lambda.
  • I want an interactive programing environment. I want a REPL, a *scratch* buffer, and M-x compile-defun.
  • I want syntax. Sorry lisp, but I want lots and lots of syntax so my code doesn't look like oatmeal. I love perl and I love syntax.
  • I want s-expressions. Specifically I want all that great syntax to translate into s-expressions in a predictable way that is considered part of the published interface of the language. Mathematica is a good example of this.
  • Now that I have sexps I also want eval and macros. Real macros. None of that hygienic crap.
  • I want the parser to be user-extensible so the user isn't stuck with whatever syntax the language comes with. Lisp reader macros do this with a prefix notation but they don't go far enough. Perl6 will hopefully do this well.
  • I want multimethods, conditions and a MOP.
  • I want to be able to program in a functional mode or a procedural mode. In the functional mode I want to be able to do all sorts of great haskelley things like data recursion and lazy evaluation and infiniate data structures. I want it to be very easy to write procedures that call functions, and functions that generate procedures.
  • I want good unix integration and standard libraries for standard things. I don't want to have to choose between five different FFI libraries because the language designers couldn't bear the thought of putting any system-dependency in the spec.
  • I want to be able to be able to write my speed critical functions in a static style that compiles predictably into fast machine code.
  • I want to be able to write my non speed critical functions in a dynamic style that is easy to write and maintain.
  • Basically, I want everything. I want a language that has every feature of my favorites. I want a language that doesn't have an ax to grind. I want a language that's a better perl than perl, a better lisp than lisp, a better c than c and a better haskell than haskell. I want a language that lets me program in whatever style or paridigm is appropriate to the problem.
I know it probably won't happen, but it's nice to dream.

potrace

Posted on Tue, 13 Jun 2006 in Random
Last edited Tue, 13 Jun 2006
I probably shouldn't have staid up all night playing with potrace:

Oh well. Who needs sleep anyway?

Ubuntu

Posted on Sat, 17 Jun 2006 in Technology
I've finally found a linux distro that doesn't suck. I've used a lot of distros over the years, and they've all sucked. Gentoo sucked less than anything else, but it still sucked. Ubuntu, on the other hand, actually doesn't suck. It detected all my hardware. Every device worked perfectly out of the box except the wireless card. The wireless card didn't work because it defaulted to a experimental native broadcom driver instead of ndiswrapper, but get this: ndiswrapper was on the install cd!. I disabled bcm43xx and installed the windows driver for my card and now it works. The package tools are great. They don't crash or lock up like fedora's do. The package repository is comprehensive. It has almost everything I can think of. The mirrors are fast. Everything Just Works. It has a memtester in the boot menu by default. Seriously, this distro is nice.

Fucking Spammers

Posted on Mon, 19 Jun 2006 in Random
God dammit I fucking hate spammers. Today I was surprised to see four shiny new trackback pings on my blog. I should have known. They were identical links to a "live sex cam".

Metaprograming in Haskell

Posted on Sun, 25 Jun 2006 in Technology
Last edited Sun, 25 Jun 2006
It occurred to me recently that the use of combinators in Haskell actually constitutes a metaprograming capability that can solve a lot of the same problems that lisp solves with macros. Because Haskell is pure functional, you can do significant computation in a function that returns a function, and the compiler can fully compute the function that is returned at compile time. This means you can do things like parser generators in Haskell without ever leaving the language, just like you can in lisp, and without paying for it at runtime.

I know this is probably obvious to Haskell people, but I was pretty surprised when realized it. Lisp tends to make metaprograming in other languages look like a joke, but Haskell can actually hold it's own. In addition to combinators + constant folding, ghc has an extension that lets you generate Haskell code to be spliced into your program at compile time. The one thing Haskell doesn't appear to have is a way of generating code at runtime and compiling it into machine code. This feature is actually pretty useful, for example you can write a reasonably fast just-in-time compiling virtual machine in CL by translating your bytecodes into CL lambda expressions and compiling them.

Murkey Ona Harp

Posted on Mon, 26 Jun 2006 in Random
so cute
(let ((x (quote (quasiquote (let ((x (quote (unquote x)))) (unquote x))))))
  (quasiquote (let ((x (quote (unquote x)))) (unquote x))))