Using a Scanner to Reduce Paper Clutter

March 17, 2010

Ok, this might not be the most exciting subject, but I normally find it easiest to blog about things that are going on in my life. Two weeks ago I completed my 2009 tax return online using H&R Block. To be perfectly honest I had very mixed feelings about doing my taxes completely online, but that is the subject of another blog post. Anyway, ever since I got out into “the real world” I have found myself with an ever increasing amount of paper work and documents that I either “need for tax purposes” or “need to keep for my records”. I absolutely despise clutter because I feel as though it slows me down. I dislike trying to find some cryptic piece of paper in a pile of junk. This large increase in paper work led me to purchase a scanner to store my documents electronically.

The idea is quite simple (and hardly original). You get a document, you scan it in, and you save as a pdf. Then, once it’s on your computer, you can setup whatever directory structure makes sense (I store by year and organization). Further, if you use consistent file naming you might be able to search your files for a document that you need. If you have been reading this blog for any length of time it should not be a surprise to learn that I am a Linux user. Presently I run Kubuntu 9.10 so it was important to me that my scanner work in Linux and that I be able to make said PDF files in Linux. The other consideration is that I wanted a cheap scanner since I am scanning mostly black and while documents. I do most of my shopping on Newegg and using the wonderful comments I was able to locate a Linux compatible scanner (more on the setup of that in a future post, but it was not trivial).

In any case once I had the scanner working, I could scan my documents into GIMP. Once they were in GIMP I saved them as PNG files and used everyone’s favorite “convert” to make them PDF files.

convert sample-png.png sample-pdf.pdf

If the documents were more than one page I used pdftk to make one giant document.

pdftk *.pdf cat output final-document.pdf

The trick to getting the *.pdf to concatenate in the correct document order means prefixing the documents with numbers such as: 00-ImportantTaxThing.pdf, 01-ImportantTaxThing.pdf, 02-ImportantTaxThing.pdf, etc.

The method can be a bit round about, but I’m sure a bit of bash magic could speed things up a little. Perhaps if I’m feeling motivated I’ll write a little python graphical front end to all this.

In any case, I have found this to be quite nice and it’s really easy to find these documents on the rare occasions I need them. Now, I should mention there is one flaw in my plan which my dad brought up. I don’t know what the laws are for needing physical copies of documents if you were, for example, audited by the IRS. So, for any extra special documents I just store them away in a folder that is unsorted on the off chance I might need them. Still, this allows me to keep a very clean desk, and still have access to all my documents.


Sorting My Thoughts with Freemind

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

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.


The Value of Organized LAN Parties

December 6, 2008

Today I was invited to a general purpose gaming event. There were some XBox 360s and Wiis, the usual suspects. I suppose this was not a LAN party in the purest sense, but what I am writing about certainly applies to LAN parities as well. What I am about to explain is from experience gained over going to different LAN parties and gaming events over the years.

Step 1: Decide who you want to invite. This is probably the most straightforward step and truthfully there isn’t much to mess up here. However it is still a consideration in the overall process.

Step2: Decide what games you want to play. This means several things. The first is that you want to select games that you KNOW everyone is going to WANT to play. Depending on your setup and the amount of people you have this may need to involve some compromise.  This is where I think a lot of events of this manner fail. A lot of time is wasted when people get there and complain because they don’t want to play game x or game y. If you decide in advance that you will be playing games x and y then they have no right to fuss and you can get on with gaming.

Deciding on games is not easy everyone has their preferences and you need to be mindful of that. It might mean not inviting the guy “who only plays FPS games” to the LAN party where you want to play WarCraft III the entire time. Either that or you play FPS games part of the time and RTS the other time, which I think is the better solution since it doesn’t exclude a potential friend and fellow gamer.

Also, I think gamers should be open to playing games in more than one genre. The largest problem we find here is that everyone wants to play within the genre they are best at. You can’t always have this! Sometimes you need to play the games you aren’t going to dominate at and who knows… you might get better!

Step 3: Set a schedule for when to play each game. This doesn’t mean you have to adhere perfectly to your schedule, but it helps put down the person who is always saying: “When are we going to switch games!?”. At least with the schedule you can simply let them know that you will switch at 4pm or after dinner or whatever metric you use.

Step 4: Download all patches and game updates BEFORE EVERYONE GETS THERE. This is critical because modern games all want you to have the same versions of everything. No one enjoys spending 3 hours waiting for patches and updates to be downloaded. It is best to just download them all and place them on the network somewhere so when everyone gets there they can easily get all the important updates.

Step 5: Make sure your network is functioning. This way when people arrive you can blame them for not being able to connect 😉 . In all seriousness it is a good idea to make sure you will have enough IP addresses/ports for everyone and that your router is assigning IP addresses correctly.

Step 6: Enjoy the party! Order some pizza and bring over the caffeinated beverages and let the party begin 🙂 . The extra planning can go a long way to make the party run smoother and maximize game time.

To summerize:

  1. Decide who to invite
  2. Decide on what games to play
  3. Set a schedule for all the games
  4. Download patches/updates
  5. Check network functionality
  6. Enjoy!

I hope this helps people plan some killer LAN parties. It may seem like a lot of extra effort, but when a LAN party runs smooth it is well worth it!