May 19, 2009
Update (09/07/2010): It was brought to my attention that the help message printed by beamerizer referenced \include instead of \input. I updated the the help message to now use \input which is the better choice. Thanks to ArkanoidX for pointing this out 🙂
I have been using LaTeX beamer for a little over a year now to do my “PowerPoint” like presentations for math and computer science classes. I really like beamer a lot and I find it easy to put together a nice looking presentation that is not bogged down in special effects and gimmicky animations. One of my main problems with beamer is that I never know what theme to pick because I never know what the themes look like ahead of time. This is what made me think that it would be nice to have a script that automatically builds my presentation with every possible theme and puts them in one giant pdf file.
It turns out that by using Python and some nice Linux tools it is fairly easy to achieve this. I call the little script I wrote “beamerizer” and it takes a directory of LaTeX themes and a LaTeX source file. Then, it builds that source file with every possible theme. It’s a pretty simple idea, but it gets the job done. I have also used this script to produce a nice sample document that was built using the standard LaTeX themes. Both the beamerizer script and that sample document are included in this post. Hopefully this will help someone out who needs to see all the different beamer themes 🙂 .
Beamerizer Python Script: beamerizer.tar.gz (requires that “gs” and “pdflatex” be installed)
Theme Preview File: BeamerThemePreview.pdf
(For those of you who are interested: all beamerizer really does is generate a pdf file for each theme and then use the “gs” command to concatenate all the pdf files together)
May 17, 2009
Recently I was introduced to a nifty little Java program called Freemind. The purpose of Freemind is to help you map out your thoughts into a form which then allows you to manipulate them freely. Sometimes I have too many ideas in my head to put them all together in a coherent way and a program like Freemind helps me to sort through them all. Basically, I use it as an extension of my memory, and I have been looking for software that does this for quite a while now. Before Freemind all I had was a pencil and paper. This solution is not terrible, but I do almost all of my work on the computer so having a digitized solution is always prefered. Here is a screen shot of Freemind:
Screenshot of the main application
One of the main things I like about Freemind is that once you get the hang of the keyboard shortcuts you can control everything about the program from the keyboard. This is really handy for me since I can just type away and keep adding ideas without having to give too much thought in to the use of the computer itself.
In Freemind a file is called a “Mind Map” and it is basically a single unifiying topic for what you will be organizing your thoughts on. Off of that one supplies “nodes” which have snippets of text in them describing whatever you please. Nodes can, of course, be placed off other nodes and this is how one builds a mind map. The nice thing about Freemind is that these nodes can be moved around quite easily with keyboard shortcuts. This allows one to quickly rearrange ideas.
Finally, Freemind lets you place little graphics next to the nodes which one can use to indicate various things about nodes. For example, I was using Freemind to keep track of bugs in this small program I was writing, and I would use the check mark graphic to indicate when I had solved one and written unit tests for it.
All in all I really like Freemind and it is a great way to put my thoughts together in a coherent way. I hope to find new and interesting uses for it in the future.
May 11, 2009
For the past year or so I have been keeping a digital copy of the list of things I need to get done (aka my todo list). Originally, this was simply a text file that I stored on the computer science lab computers at my college. This was handy because I could always access the computers via ssh and retrieve my todo list. Eventually, that became too annoying to manage and I installed the program gtodo on all my computers. I use sshfs on all my machines so that I could store the todo list on those same computer science machines. This was a great system, but now I must graduate from college, which also means that I have to leave my account as well. Since I recently purchased a domain and web hosting I figured a web based solution would be perfect for my needs. That’s how I discovered TaskFreak!
TaskFreak! has exactly the features I need and one or two extras. Those features are: it lets me enter a new item, associate it with a category, give it a priority, give an optional deadline, and indicate when it is finished. On top of all that TaskFreak! lets you give a description of the task, which can be displayed when clicking on a given task. TaskFreak! lets you sort your tasks however you choose simply by clicking the first cell in each column of the table. Setting it up was fairly straightforward as all I had to do was create a new MySQL database on my web server and tell TaskFreak! how to contact that database.
At the end of the day TaskFreak! is exactly what I need it to be and not much more. I wanted a simple, web based way to access my todo list. TaskFreak! delivers perfectly. I should also note that there are multi-user versions of TaskFreak! if that is the kind of solution one desires. Finally, I leave with a screen shot of the UI (as rendered by FireFox 3):
Screenshot of the UI (Click to see full size)
May 8, 2009
Well, it seems as though the school year is basically over. I am still waiting to get grades in two of my classes, but I don’t expect any surprises from either of them so I guess that means I will graduate! I’m glad that I was able to get through college in 4 years. About half way through I decided to add Math as a major in combination with Computer Science. During the time I had to deal with the coursework, I second guessed my decision, but I am glad that I choose to do that. Certainly I plan to find a computer science related job, but I think the skills I have learned from my math classes will come in handy depending on what I do with computers. Even if they don’t, learning mathematics has taught me to think much more logically than I used to. As many programers know, being able to think logically is quite helpful when writing code.
The feeling of being “done” with school hasn’t fully set in though. I’m sure it will eventually, but I can’t really predict when that will be. Right now it just seems like another semester has ended and I have gone home to try and figure out what to do for the summer. Though, in my case, it’s what to do in terms of a job. I still have some time from now until there are a couple senior events and then graduation. I hope to make some more posts and work on my personal webpage in that time. Those plans aren’t really set it stone though so I may up doing something else instead.
It’s good to be back on Lightflame (my desktop computer) again. For the past weekish I was using only my laptop since I wanted to bring the motorcycle back to school and needed to bring Lightflame home when I had the car out at college. It was fun having the bike at college though, so it was worth forgoing the full power of my computer for a time.