Programming to the Rescue: Amortization Automation
What I love about programming is the instant feedback. In most programming languages, after you set up a framework for the barest bones of a program you can then run it at every step of the way to confirm that you are moving towards your goal. What I love second-most about programming is the fact that I am using my computer to solve a problem and free myself from tedium.
365 Graph
Today I worked on a python program to create a graph of the views of all my photos in my 365 Project set. Here’s the result: (click for full size)

365 Project Views Graph
I was curious how they stacked up and I wanted to see if I could detect any patterns. Except for a few outliers, they’re mostly below 50 views per photo. I also expected to see more views after I started adding my photos to more 365 photo groups, but this is not the case. There do appear to be clusters of views. In other words, one highly viewed photo seemed to lift the ones by it. That one huge outlier is my photo making fun of causes of the swine flu. The other big one is my Heroin Chic photo, no surprises there. It was fun to create this and I learned a new python module. Also, even though it probably took me a bit more time to program than to do it manually, it will now automatically generate whenever I want, and that’s worth the time it took.
Why there are over 2 dozen music players
People often groan when they hear of someone making another game of Tetris, Window Manager, or audio program. After all, people ask, “Do we really need another? Why can’t you just contribute to fixing annoying bug X in gTetris/KDE/xmms?” I’ve always been on the side of the argument that said - “So what! They’re doing it for free. Not only that, but they’re not getting paid for this. It’s their hobby. So you can’t tell them what to make. If they don’t WANT to help Amarok, then leave them alone. Don’t download their program and they will eventually lose interest.” I’ve never been one for telling people what they should do in their spare time. (Not in any serious sense, anyway)
Moonlight - what's the big deal?
Hardly a day goes by that I don’t see an article on Linux Today about Moonlight and what a horrible person Miguel de Icaza is. So I thought I’d go ahead and do some exploration of what’s going on with Moonlight and Silverlight. First of all, what’s Silverlight? Check out the Silverlight article on Wikipedia. Basically, Silverlight is Microsoft’s answer to Adobe’s Flash. MS is pretty peeved they haven’t been able to get people off of PDF and onto their own format. They waited way too long while the rest of us realized that PDF is great if you want to make sure that the document you create is displayed the same way on everyone’s computer regardless of the fonts they have or which version of Office they have installed. (Or if they even have office installed)
My Latest Procedural Art
More math-based art, but I really like how this came out a LOT better than my experiment with Fibonacci. Check them out!
Tight Cornell Archemedean Spiral by DJOtaku, on Flickr A really tight Archemedean Spiral featuring my photos tagged with Cornell

Portrait Archemedean Spiral by DJOtaku, on Flickr An Archemedean Spiral based on my Portrait Photos
My latest Procedural Art Experiment
I think that nearly everyone who has ever learned about the Fibonacci Sequence is fascinated by how quickly it grows. I wanted to illustrate that, so I created this collage with some modifications to J im’s makeCollage.pl script. The rules were that each picture takes the place of a number on the Fibonacci Sequence and is displayed that many times. Of course, I skipped Fibonacci number 1, which is 0. No point in having a picture show up 0 times. So the first picture is shown once, as is the second. Then two times, then three, then…..
Procedural Art
edited to add the tags I used
That collage was created by a program. I certainly don’t have the patience to arrange all of those photos one-by-one!I told the program to download all of my pictures tagged with Eric Danny David and Danielle and create this collage.
But does that make this any less of a work of art? I think the answer is no. The artwork was just created procedurally instead of visually. To argue that this is less artful is to say that the The Lion King isn’t art because the wildebeast scene was created procedurally. Of course, in this situation I don’t see myself as the artist, but the guy who wrote the program is the collage artist. It’s his procedures which created the art. His name is Jim Bumgardner and he’s a really nice guy who helped me fix up the script. I copied it from his book, Flickr Hacks, but unfortunately, as the code he relied on has changed, it didn’t work as posted. In fact, here is the fix you need in his program, makeCollage.pl :
More Flickr Hacking
Over the last two days, between playing Portal and Age of Empires III (both of which are…awesome!), I’ve been doing a little more flickr hacking. This is very closely related to my previous Flickr program where I checked if my pictures were ready to be moved into the next views groups.
This time I wanted to see which of my photos were not in any groups. So in the case that I’ve missed putting a photo into the 25 views groups because it’s a few pages back and I really don’t have time to go back through all of my photos to find the pictures to put into the groups. I tried that once and it was excrutiatingly slow - even slower than figuring out if it was time to graduate my pictures out of the views groups. So here’s the output of my current program:
Viet Zodiac Makes Top 10 on Google!
My Vietnamese Zodiac program is on the first page of Google when you search for the term! In fact, that about 24 people have come to my site looking for that from a search engine as of 29 February! That’s exciting because I know a lot of people don’t look past the first page of search results in Google.
Flickr Views Program
I forgot to post this about 1 or so weeks ago when I finsihed up the script. So here’s how the output looks on my flickr views program:
Now my next step is to put it on the web. However, the Python API I’m using doesn’t do web-based program authentication. It also doesn’t handle multiple user authentication, which I’d eventually like to do. Right now I’m thinking of porting it to Perl or PHP. I’ll keep you posted.



