February 9th, 2008 : DeChaos 3.0 (beta)

Well I finally have my photo sorting program to a state where I am happy enough with it that I am willing to let other people completely ruin it for me. It’s been a long process getting everything to work but I think it is all entirely worth it.

This program was written entirely for myself, but if someone else happens to find a use for it, that’s wonderful. That’s the reason I wanted to polish everything, so that I could have a really nice program that other people could use if they wanted too.

This program stemmed from a realization that I had to organize my photos. My picture collection had grown to 18,000 photos, most of which were in iPhoto and most of which were neither organized or named or rated or tagged. In fact, there were several batches of photos that had been dumped into iPhoto and never looked at again.

My task of sorting the photos was daunting to say the least, and iPhoto wasn’t much help. If I would often find myself deleting a photo from an album only to later remember that the photo was still in my library and I had not truly deleted it. Trying name or sort the photos in iPhoto caused an additional challenge because I had already set up several half completed sorting schemes and dragging photos to albums is rather clunky.

So I went in search of other photo organization tools. Nothing seemed to have the feature set I needed. I was looking for something that was

  • easy to use and able to sort thousands of photos quickly
  • something that was not proprietary
  • something that would allow me to sort the photos into groups
  • something that would let me name the photo.

But I couldn’t find anything that did this to my satisfaction. So I began to think about creating my own photo sorting program.

I had been wanting to try my hand at a full fledge Applescript Studio Application with a nice GUI for some time now, but I had never really had an opportunity. I figured this would also be a great learning experience for me as well, so I began with my design.

My initial program didn’t take long to write up, but I relied only on Applescript for this version and as a result the move commands to the Finder were far too slow. I rewrote the program using shell scripts to move the image files around, which sped things up tremendously. I used this version for awhile until I got fed up with the lack of a few of what I deemed “necessary features.”

Finally, I reworked the interface and added the needed features to the program, spending many more hours debugging and tweaking. While there are still a few little annoyances within the program, I can live with them until I can get them out. (Sometimes things just don’t do what they are suppose too.)

The program is very simplistic in nature. I exported all my photos from iPhoto into 3 different folders (based off of year taken) which culminated in a folder of several hundred photos, a folder of 4,000+ photos and a folder of 12,000+ photos. The program would then run through a list of the images I gave it and move the files to a new folder of my choosing and rename the file as I commanded.

I started off by creating a folder called “Philip’s Photo Library” wherein all my photos would eventually be sorted. Upon starting up my program I would choose a folder of photos to be sorted and my “Philip’s Photo Library” folder and off I would go to sort the photos.

DeChaos loads up the first photo in the list and displays it in the image box. I can then type a folder name into the drop down list menu. If, say, the photo was a , I might want to put this photo into the “Flowers” folder, so I would type in “Flowers” into the combo box. If I already had a folder called “Flowers” created, the combo box would automatically fill in as I typed, making it easy to have very specific or long folder names (”My Great Aunt Mable’s Wedding”). If I wanted to name the photo that was being sorted, I could then type in a second name in another text box. This would be the name of the image file after it had been moved.

The one issue I ran into at this point was the issue of duplicate names. I solved this issue very easily by attaching an ‘arbitrary’ number to the end of each photo that was sorted. This makes duplicate entries extremely unlikely, if not impossible, the only cost is that the image file names look a bit messy. This doesn’t bother me, yet, and I have been thinking over a few different options for getting rid of them, but it doesn’t seem worth the effort.

So as of right now, I am considering myself to be done with the overall development of DeChaos. I have noticed a few inconsistencies and problems for different people on different computers and my goal is to fix those as they come up, but for I’m not entirely sure what’s causing the problem yet and it’s only causing the problem in some instances so it’s not something that is readily reproduced.

If anyone is interested in DeChaos, proceed to download and try it out yourself. I am currently working on some documentation for the program, but I don’t know how much I really want to do with it, so stay tuned. In any event, if you have questions or problems drop me a line or leave me a comment and I’ll see what I can do to help.

UPDATE: New Version is out

DeChaos 4.0 (Build 1101)
Requirements:

  • Mac OS 10.4.x or 10.5.x
  • Photos that need to be sorted

Download Page

February 4th, 2008 : Discover the Real Problem

I had a great problem solving experience last night which not only solved the problem I was facing but also did a great job of helping me to realize a real world example of some of the things I am learning in my “Theatrical Design” class.

I was working on my photo sorting program, known as DeChaos, and I was struggling with the issue of allowing users to move forward and backward along the list of sorted photos. I wanted it to work so that if someone knew they had multiple shots of the same photo they could jump ahead or skip over a photo if they wanted to see what was next. The issue that faced me was that if the user decided to sort that photo the program would then move onto the next photo and, should they attempt to go back to the last photo, the program would try to load the photo that had already been sorted (meaning it moved location) and would error out because the photo file wouldn’t exist.

I had in my head, multiple elaborate schemes of how to keep track of the photos that the user skipped and how to jump back to them, keeping them from going back too far, and the whole thing was a complete mess.

I was thinking this over while sitting on the steps outside the SuperBowl party that was going on in the other room when Anna came over to talk to me. I started to explain the problem to her so she had an idea of what I was working on, when mid-sentence the answer struck me like a lightning bolt of energy.

The problem I was working on in my mind was “How do I keep track of the pictures that a user skips,the pictures that the user sorts, without slowing up my program, making a lot of unnecessary lists and variables and keep it simple and reliable.”

But as I explained my problem I realized that the issue was really “How do I keep the user from sorting photos after they have skipped over the photos.” The answer was immediately obvious to me: Don’t give them the option.

If I don’t allow users to sort photos after they have skipped some, they are forced then to go back to the photo they were at when they first skipped ahead and resume sorting from there. It was an amazing solution, easy to implement, and it makes perfect sense.

What this really did for me though, was open my eyes and look at the big picture, which was really “what do I need to prevent?” rather than “how can I make this work?”

This is something that people often overlook, sometimes we are just so focused on the gears that we don’t see that they aren’t doing anything. Thats when we need to take a step back and look at the whole clock.

February 4th, 2008 : SuperDuper! Tuesday!

It’s going to be a SuperDuper! Tuesday.

Tomorrow will be a happy day.

February 3rd, 2008 : Experimenting with Integration…

I’m in an experimental stage with integrating all my personal feeds. I think it would be nice to have one spot where all my blog posts show up, all my Flickr photos show up, all my Tweets show up and all my YouTube videos show up. My difficulty is that I would like my blog to remain clean of the clutter and chaos that all of these different things will throw at it. I think I finally have a solution which is mostly implement right now.

This all started when I signed up for Tumblr, which I was thinking about using for this purpose, but it just didn’t feel right with what I wanted to do. So after scouring the internet today I came across “SimplePie” which, I must say, has the most beautiful website, so much so that it doesn’t feel like the software should be free. Anyway, using SimplePie to create a few WordPress Pages, and suddenly I have this:

http://apatheticthursday.net/twitter-feed/ and

http://apatheticthursday.net/flickr-feed/

Which finally pulls everything together onto one site. My next step may be to try some more integration and set this up to work with a few other services that I use online, but I have to think over the interface I want to achieve before I jump in with any code.