I need new music. For years I’ve been listening to a core group of bands: XTC, Beatles, Squeeze, Joe Jackson, various solo Beatles, R.E.M., Billy Joel and They Might Be Giants, with smaller amounts of the B-52’s, Indigo Girls, and a little Classical (mostly Mozart, Bach and Beethoven of course).

In the last few years, I’ve started to change a little bit. I’ve dipped my toes into new music and I have been really well rewarded. Radiohead, Jude, and David Yazbek are the biggest successes. Alanis Morisette not so much, really. I just started another push into the water with Badly Drawn Boy, Owsley, and Apples in Stereo. Those didn’t impress me much.

I need to strike out in a completely new direction, into some genre that I’m completely ignorant of. The best thing about Radiohead, Jude and Yazbek is the originality, or rather the difference from my usual fare, whichever. But this is exactly what makes finding new music hard: if I know the kind of music, and not the bands, I’m stuck. Any suggestions?

And while I’m at it, I need a fresh look at Classical music. New symphonies by composers I’m familiar with, or whole new composers and subgenres. For example, I really like the Mahler I’ve heard, but I only have a couple of his symphonies.

Since I can’t afford to buy too many CDs, I need to be pretty clever about it. This is exactly the purpose to which Napster et al are poorly suited, because you have to type something in, not browse. That’s the stereotypically male shopping model, and at this point I need more of the female model.

One solution I’ve had some success with is searching the archives of fan bulletin boards of bands I know I like. If you search for “recommend,” then you can read postings where the fans suggest music to each other, which makes a lot of sense if you like the band the list is based on. Maybe I’ll take a look at more lists besides XTC’s.

I recently rented The Lord of the Rings in audiobook format, on CD, from Recorded Books. They make, sell, and rent audiobooks. When you rent, they send you the books in a box-within-a-box. The inner box is for sending it back, so there is very little hassle.

Don’t tell them, but I am ripping the whole set into MP3 format, so that I can listen on my iPod. I am not doing it to steal the books, or put them up on Limewire, I just want to put the data in my own bucket, as it were. It’s very relaxing to kick back and listen to a book, so I recommend poring over the selection at Recorded Books.

So the Paint-by-Numbers project, named Go-Gan, is proceeding. Absolutely no interface has been coded yet, just the representation of the underlying puzzle. Tonight I’ll write the logic that creates the list of clues from a row or column of painted cells.

After that’s done, I’m going to skip over the hardest part of all, and go to the user interface and Cocoa bits. The hard part is a feature where a player working on a puzzle can get a hint. No matter what hinting system I eventually implement, they all rely on the computer being able to (secretly) solve a puzzle completely. Certain scenarios may not require the whole puzzle to be solved in order to give the hint, but the real underlying purpose of this project, besides learning Cocoa, is to figure out how to get a computer to solve a PBN from just the clues.

All I know are the ad-hoc rules that Alison and I apply to a PBN puzzle, but sometimes there are several speculative steps needed, which will require the computer to perhaps build a branching tree of decisions, in order to arrive at a contradiction in all but one path from root to leaves. The most important principle, though, is the “more than half”, where a clue tells you there are n cells colored black in a space where fewer than 2n will fit. This allows you to fill in some of the middle squares, which then give you information about the columns.

I’m going to get started today on a new piece of software. It will be a multipurpose “Paint by Numbers” application. Paint by Numbers is a puzzle game (I am not yet sure whether this name is a trademark or not) where you are presented with a blank rectangular grid of squares, usually about 20×20 or larger (the bigger it is, the harder it is). The goal is to reproduce the picture by deducing which squares should be colored. The clues are lists of numbers, one list for each row and one list for each column. Each number in the list is the tally for a consecutive run of colored squares. Visit this Japanese site for some examples to try.

I’m going to write the app in Cocoa, the native environment for Mac OS X. In fact, this is just my excuse to learn Cocoa. When Apple computer bought Steve Jobs’ company Next in 1995 (?), they did so to obtain the sophisticated Nextstep operating system. This became Mac OS X, and the then-revolutionary Nextstep programming framework became Cocoa. Tim Berners-Lee, the creator of HTML, HTTP, and the first web browser, wrote all of it using Nextstep. Why? Because it was easy, supposedly. I’ve explored it a little bit and I find it very exciting. It is easy in the sense that many things come for free, as in Java, but it is also hard in that it leaves me running to the documentation all the time — once I commit the core of Cocoa to memory, this will disappear as well and it probably will seem easy.

I’ll write the engine in C++, though, not Objective-C (the language you have to use to use Cocoa). The engine will include the abstraction of what a Paint-by-Numbers puzzle is, and the things the player can do to it. Actually wiring that up to a user of the app will be another layer, the user interface layer. This layer will listen to mouse clicks and whatnot, and will then call the appropriate message in the engine.

For example, the most common way to interact with the puzzle will be to click on a square cell. When the click is heard, I will have to compute which square on the screen it was in, and therefore which abstract cell it is. Then, I will ask the abstract “paint by numbers cell object,” which is invisible to the user, to alter its state (turn it black, for example). Then, I’ll have the representation of the cell on the screen update accordingly, by asking the abstract cell what color it is now.

I’m still working out the architecture, but I should have some progress by day’s end. I have some Economist magazine reading to do too.

I was thinking about Close Encounters of the Third Kind the other day. I was pretty young, so take this with a grain of salt, but here’s what I was thinking. At the beginning, a mood of chaos is set when as-yet-unintroduced high-ranking officials meet in a remote location where a World War II plane (boat?) has been found. They arrive in a helicopter, and part of the fun and tension of the scene is the landing of this loud helicopter. It really is exciting, because, you know, you don’t see helicopters land every day. These guys must really be important, and there must be quite a bit of urgency!

Nowadays, having helicopters land in movies is totally cliche. I will never again feel like it is significant for characters to use helicopters, so the device is useless. I just say to myself, “Okay, here these guys are. They’re army dudes, there are three of them…” whatever. This is a very general problem with imitation, really.

I’m against imitation.

I suppose it’s crucial for there to be certain kinds of imitation in certain cases, but I would like to strive not to use it. I would rather be the innovator who creates Close Encounters than the joker who just creates knock-offs. Plus, the really significant experiences of my life were never repeats, they were new! It is hard and elusive to communicate something in a truly new way, but very worthwile and satisfying to both parties. So, please, could we all try to innovate a little more?