Strange Loops

No Matter Where You Go, There You Are

10 Things to Accomplish This Goal

| Comments

1. Java gets Generics! Java 1.5
2. Learn to use an IDE Eclipse
3. More testing needed JUnit + MockObjects
4. AOP is cool AspectJ / Aspectwerkz
5. Yet another application framework Spring
6. O/R mapping tool Hibernate
7. Measuring with Hyades
8. Building languages for the JVM with ANTLR + BCEL
9. Building Java code with Ant + CruiseControl
10. Automating busy work with XDoclet
11. Scripting Java with BSF Languages

Whadda ya know! A one off error.

Mind if I Haskell You?

| Comments

Something about Haskell has always appealed to me more than it’s cousin ML or OCaml. I’ve always wanted to learn a strongly typed functional programming language since we never covered that category in my programming language class. For the longest time, I couldn’t find a decent tutorial on the internet. Recently I’ve found two. A short introduction is Introduction to Haskell. It goes over one comprehensive example, covering the main points of the language (though it glosses over the issue of layout). Yet Another Haskell Tutorial by Hal Daume is the most comprehensive tutorial I’ve found online. It’s also fairly easy to read.

I’ve supplemented the online reading with some books. The Haskell School of Expression isn’t great but used ones are fairly cheap. A good one I’ve found is The Fun of Programming (on loan to me). This one isn’t an introductory book, it states that you already know the Haskell language. I’ve managed to work through it fairly well but I’m constantly look up Hal’s tutorial to understand things. The examples in this book are fun! fun! fun! covering a range of topics from esoteric to practical.

Giving a Damn About Customers…

| Comments

I found the Creating Passionate Users blog by way of this link: Giving a damn about customers…
Interesting reading considering I just finished doing my performance reviews.

I’m tempted to get a book of theirs.

They have a couple of other books (JSP,EJB, Java) but the Design Patterns one looked the most intriguing. My friend Alice recommends them highly. I just feel like buying it because they have a wickedly smart website that I like to read more of their stuff.

Practical Common Lisp

| Comments

I’ve used ANSI Common Lisp in the past to learn lisp. It’s a great reference but the examples (except for the one where you build an OO language) never appealed to me.

I’ve started reading Peter Siebel’s new book online and the first example (a simple database) has made lots of stuff fall into place. I understood Lisp but never understood the context in which to apply stuff. I’m getting the hardcover version of Practical Common Lisp when it comes out in April. I still like ACL for a reference but PCL’s examples can’t be beat.


Kudos to SLIME too. A good, easy to install LISP IDE that I don’t have to shell cash out for. Plus it worked with all the CL implementations (SBCL, CLISP, OpenMCL) I’ve tried. Used it to try the example in PCL and it made things much more fun!

One Week +/- a Day With the Shuffle

| Comments

The shuffle is a nice little toy though it has a couple of quirks. The most annoying one is how it deals with audio books. The location of where it put bookmarks after you sync strikes me as slightly non-deterministic. Sometimes it remembers where I’m and other times it puts me in odd locations.

I found an apple knowledge base article describing how to play audio books but the behavior of the shuffle doesn’t match what I read.

The back button on the shuffle is irritating especially if you have audio books. The back button is overloaded. 1 click = go to beginning of track. 2 clicks = go to start of the previous song. Don’t double click in time = back to the beginning of the audio book for you.

I’ll Need a File Cabinet

| Comments

For the home office, I’m thinking of getting the quartz rolling file cabinet. It is a little pricey but
  • it does what the book describes
  • i have the desk part of the set
There is also the quartz lateral file cabinet which is way over my budget even if it matches my desk set.

The rolling cabinet will be next to my desk where I do all my work. That’s where most paperwork (99%) should go. I’ll keep some cheaper plastic cabinets for storing archival stuff in my store room (since nobody ever sees those).

The other great thing about the rolling cabinet is that I’ll finally have place to put stationary in my apartment. I’ve been lacking in that department since I’ve moved. Jars with stationary is cluttering up my desk.

See more progress on: get things done

Pugs = Perl6

| Comments

I attended a talk given by Damian Conway a couple of years ago where he talked about Perl 6. Everybody in the room was glued to his every word. He sketched out the really grand ideas for Perl 6 and lots of brilliant design ideas. It looked like they were stealing the very best programming language ideas out there and modifying it to fit into the Perl culture.

Since then things have quietened down. I gave it another look late last night and saw that there was this cool new project Pugs. Essentially a very talented Perl hacker has been working for the last month to implement the full Perl6 specifications in Haskell (Pugs is a play on Hugs).


I’m pretty excited to try it out. Perl is one of those languages I have a love/hate relationship with. You can do some amazing things with it but you have to deal with the ugliness it’s flexibility gives.

Gnu Arch

| Comments

It appears that GNU arch has very similar goals to darcs. Might be worthwhile to give it a try. That way I’ve would have tried most of the next generation version control software, subversion, darcs and arch.