- My Blog -     - My Projects -     - About Me -  
My own Life Hacks
Project Summary:

This project is where I post tips that I pickup or come up with on managing my time, projects, and other elements of productivity in my life.

Tue Sep 02 00:00:00 EDT 2008

I have been learning a lot lately about personal productivity as I try to squeeze all these projects into what little spare time I have left in my life. I am a far cry from some of the experts out there whos life passion is time management or life hacking, but I do pick up some nifty tricks along the way while trying to do what I can. Most of my ideas come from (which is an incredible site), but every once in a while Ill have an original idea of my own about personal productivity. Whether it be something that I pickup on that works for me, or one of my own great ideas, I will be posting some of the better ones here on this life hack project page of mine to share with the rest of the world for what they are worth.

Also this winter, as I have a little space in between deadlines, I will be working to implement some key systems that I have learned that I need based on managing my projects earlier this year. They are financial budgeting and tracking(so I can figure out just how much I can spend on my projects), a better calendaring system (so that that I can keep track of my familys and my own schedule), and project management software (so that I can watch my deadlines slip out of control with better accuracy). Anyhow, as I try to integrate these key systems into my life, Ill let people know what I am doing and how Im doing it here.

Tue Sep 30 12:00:00 EDT 2008

I have recently implemented a new personal financial and budgeting program called Buddi for managing my own finances. I was using Quicken on the Mac but was astonished to find out that there is absolutely no API for interacting with the software. How could a company that has such a large market share of a mainstream product not have a way for other companies or people to integrate with it? It did look like they had API for the windows software but not for the mac.

Anyhow, to improve the work flow of my life, I wanted to have a personal financial platform that I could write plug-ins for or at least have scripts or something tie into it so that it would allow me to do something like automating the process of entering in bills or other mundane financial task a little easier for myself. I have also been playing around with the idea of a Google gadget or something that could allow me to enter transactions from any desktop in my house or display my balance information. With out the ability to integrate into the software this would become a real pain.

This is what lead me on a search for a new financial application. One of my criteria was that I wanted the software to be completely cross platform. Our family computer is a Mac and that is a necessary platform for the software to run on but my own personal workstation is a Linux box, and it would be nice to run the software on that system as well. I also wanted the software to have a published interface for integrating with it. That lead me to two products

Buddi and MoneyDance

They are both Java applications so they run on Windows, Mac, and Linux. I cant really give a review of MoneyDance since I did not try it but it looked like a pretty impressive application and filled all the requirements. However, Buddi looked like a very polished application as well and it was open source so I opted to try it first. At first I wasnt sure if Buddi was going to have enough features but after a while that is exactly why I liked it. With Quicken I always felt like I wasnt getting the most out of the software because it has all these features that seemed to get in the way and slow you and the application down more then they helped you. With Buddi, the application feels extremely snappy and easy to navigate around in.

One feature that people seem to always ask me about is whether or not Buddi integrates with the bank and downloads your transactions automatically. First I say no, but then I tell them why that is a good thing. Even when I was using quicken I was not downloading my transactions because I felt it really took away one of the benefits of tracking your finances. If you are always just going to download your transactions, why even bother using standalone software. Just log on and look at your account online. Its the exact same data because all you did was sync it. I feel that if you just automatically download all your transactions then there is a much higher chance that you are going to miss a transaction where you were charged to much or a transaction that is not yours. By entering in your transactions throughout the week and then balancing your account on the weekend you have a much better grasp on your finances. If you manage your finances properly anyways, you should be entering them in as you spend money so that you can see exactly how much you have left. Then there is no need to sync with your bank. Entering transactions for Buddi is extremely easy too. One of the features that I immediately liked was that it remembered a lot of what I had already entered into it and it would fill in a lot of fields automatically as I entered transactions. It has an extremely refined interface for an open source application (and believe me, I use a lot of open source apps).

Where Buddi excels is its budgeting features. Its primarily designed to allow someone to create a budget and to easily track spending and to monitor how well you are staying on budget. Since one of my primary goals was to better track my spending on projects and to more easily budget for future projects then this was a huge draw for me to use Buddi. It even has graphs and charts to show your spending and budgeting.

Overall Buddi is not perfect in that it does not have some of the bells and whistles that you may be use to in a financial application. Some of these shortfalls that I cant live without, I will be trying to help address soon. Most of the bells and whistles I am happy to trade for a nice simple and easy to use application. If you absolutely have to have these features then maybe take a look at MoneyDance, but I highly suggest you try Buddi first.

This is my proposal to the Buddi project for adding functionality to the application to split transactions into multiple categories.

First I would start by adding a split button next to the category drop down box in the transaction entry area on an account form. If one is concerned that the split functionality is too complicated for some people then I may make it a preference similar to the reconcile and clear transaction boxes. The split button is really the only major change to any existing forms so if it was disabled by default then the application would behave exactly as it does now. Im not saying it should be disabled by default, only that it is a possibility if you wanted to keep the application extremely simple by default.

Now lets say that you wanted to enter a transaction for the store Target. Now that is a store I always need to split transactions for. Lets say that spend $15.53. I would just enter the transaction like normal except that when I get to the category drop down I would simply press the split button next to the drop down. A window would pop up with another category drop down in it and 15.53 next to the drop down. Lets say that I spent roughly $10.00 on wine (I know cheap wine) and $5.00 on a soccer ball. So I would select groceries as the category and then enter 10.00 over the 15.53.

when I press enter or tab or whatever then a new line would automatically be inserted below the existing line with another drop down and 5.53 in the amount window next to it (since this is what remains of the split). Now at this point I could simply choose a category and press save or if I had more splits to do I could continue this trend until I have assigned all money a category. You will not be able to press save successfully without assigning everything to a category.

After you press save and then press enter to complete the transaction then the transaction would simply show -split- (or something like it) to show that the transaction has been split.

Everything else pretty much works like normal. If I click on a category in the budget screen then the transaction would be listed just like normal in the list.

A couple of notes

It would probably be nice to make a mouse over the split category field show a list of the assigned categories but this would only look right for 5 to 10 transactions or less.. This will probably cover 99% of people though and I would just display a for people who feel the need to split a transaction more then 10 ways.

I put a line at the bottom of the list to display the amount remaining to be split. This line may be unnecessary or may be helpful to the user I have to think about it still a bit.

There may be also a need to add a button that manually adds a new line to the transaction split window.

A couple a years ago I made my office paperless... What was my secret for reaching this holy grail of digital nirvana??? I moved all my papers into my wifes office. Now I'm not completely cheating... My goal is still to digitize all my physical papers that I need to work with. But, in order to go completely paperless I really needed a station in my house where paper flowing into the home is turned into bits and when ever I needed a physical printout to leave the house, this station would be able to print the bits.

The reasoning for moving this scanning to a separate workstation in my house (in this case my wife's office) is because no matter how on top of the scanning of incoming paper I try to be, inescapably the stuff stacks up every so often. If you are trying to maintain a paperless office and you do your scanning in the same office that you are trying to remain paperless in, well it won't take long for that concept to altogether break down. Eventually you will find yourself surrounded by paper you intend to scan but never have. You'll fall back to your old practices and the paperless dream is gone. If you scan in everything at a separate office/station rather then the office you work in, then you will be forced to scan in that one piece of paper you need in order to work on it in your normal office. The thought of bringing in that one piece of paper into your perfect paperless world will seem deplorable when it is so easy just to scan and store that single document to work with it in your office. Likewise, it is easier to keep the perfect paperless world intact when backlog of documents that you do not necessarily have time to scan are allowed to stack up safely away from your office.

Now in my case, my wife did not have the same aspirations for a paperless paradise. Also a lot of the incoming mail would end up in a bin next to her desk anyways. So I use her office as my analog port to digitize incoming documents and print outgoing documents. For your own home you may want to do something similar, or maybe you have a common computer that everyone uses in a central location in the home. This would be a great option because then everyone can share the scanner and printer. Another idea you may want to look into is a networked multifunction printer/scanner/copier. Multifunction devices are really powerful now. If you have a particular counter or cubby in your home that you set your mail down on anyways when walk in the house, perhaps there is room in or next to it for a nice multifunction printer. Everyone in the home could print to this printer, or any incoming paper could easily be scanned to the computer in your office from this device. The most important point here is to do the scanning and printing somewhere else than you typically work.

Is this really such a big deal to have a paperless office when the possibility of stacks of paper could exist somewhere else. For some, it probably wouldn't mean anything to them. For myself at least... definitely! Having the primary office where I do a majority of my work on a regular basis completely free of stacks of papers and junk mail, and documents I should have scanned, shredded or filed away is a very great feeling. It cuts the clutter way down (in my office anyways), and since this is where I do most of my creative thinking, concentrating, and work... It just seems to allow me to think more clearly.

Moving on to the hardware I use, my wife's workstation is a Mac. This is nice since the rest of the computers in the house are Linux boxes and since driver support for the scanner and printer I use is nicer for the Mac then it would have been for Linux. The printer is nothing special... An Epson R1800. The scanner however, is very nice and noteworthy. It is a Fujitsu ScanSnap S300M. I love the Scansnap and it is one of the key pieces of technology that make scanning everything in possible. It scans both sides of the document extremely fast and it will take a stack of papers and create a multi page pdf file for you. The newer Scansnaps even have OCR software bundled with the Scansnap software. Regarding the scansnap software packaged with the scanner; it is unbelievable. In the past I have never liked software that was packaged with a scanner or printer. The Scansnap changed that for me. The engineers who put the software together did a wonderful job at making it both reliable and extremely efficient at getting documents scanned and converted into a pdf file. It also supports a couple of other file formats as well.

Regarding the software I use to store and search my documents, I went back and forth on a couple of solutions before finally settling on OpenKM. OpenKM at first seemed a little heavier than I wanted to use. It's a full-scale open source document management system. However I found it simpler to get up and running than I originally expected and it capabilities are pretty impressive. The nicest features that I like are

- it's ability to index open office, pdf, and other formats

- preview open office, pdf and other formats

- a web services api

- tagging and categorizing of documents

- a fairly well designed web interface

So far I am very happy with OpenKM, but I will confess I have not been using it that long. To speed up getting my documents into OpenKM, I have been able to write some simple groovy scripts which upload documents into OpenKM via the webservices api. Once I get the rough edges rounded out of the scripts perhaps I will post them here. In the mean time if anyone needs them sooner, send me an email and I will see what I can do.

For the most part this covers the extent of my paperless office (and my wife's somewhat paperless office). I am sure I still have some more modifications to the process to make before I will be 100 percent happy though. I have a backlog of old archived documents that I would like to get into OpenKM. I have some improvements to the groovy scripts that upload documents into OpenKM that I would like to make. I also hope to get an android based tablet later this year for working with my digital documents. I guess it is not a perfect solution, but this is the furthest I have ever been in my endeavor towards my futuristic paperless universe.

Sun Apr 17 21:00:00 EDT 2011

You may have noticed I am finally getting back to a habit of updating my blog again. I put off updating my blog for a long while because I was pretty busy as I mentioned a few weeks ago, but I also quite updating my blog because I didn't like using wordpress anymore and I hadn't gotten around to replacing it. It actually had a pretty nice interface, but it got to the point where I didn't like it as much because every time I logged into my blog's control panel, there was a new security update for it that I needed to install. Every time I logged in to write another blog entry, I would notice the message that I need to update it. I would have to download the patch, read through the instructions and install it on the server before doing what I really intended to do which was write another blog entry. My only other choice was to ignore the message that a new security update was available and then write my blog entry anyhow.

After letting my blog sit for awhile, I noticed that several of my friends were moving over to static blogs. Static blogs are blogs that are not dynamic web applications. They do not have code that is running on the server querying a database when a user goes to look at an entry. Instead they have a database or some sort of storage that runs on a desktop for maintaining the blog entries. A script is then run to read the blog entries on the desktop and generate a set of simple static pages that make up the blog. I'm sure there are variations on the design that I just described but ultimately the blog ends up as a set of static web pages.

This has two distinct advantages. For one my blog is lot faster. There is no server-side dynamic code running as you navigate through the site which significantly speeds it up. Second the security is simplified greatly. Again with no dynamic code you only have to worry about making sure the security of the web pages is correct. No more steady stream of patches from wordpress to worry about.

Another nice thing is you can make a static website feel extremely dynamic with java-script these days. Javascript is used far more heavily on the web today than when I first launched my website years ago. Libraries like jQuery can easily help you fill the void of switching away from a dynamic website. The pagination on my blog is nothing more then static web pages that our loaded dynamically with java-script making the site feel very dynamic.

There are a number of static blog generators out there that seemed fairly nice but I decided to create my own simple one. The only time I want to mess around with the blog software is when I am deciding on my own terms to implement a new feature that I want. I don't really have to worry to much about security holes since that is pretty much handled by the web server with a static blog. After I work out the kinks in my own software the only maintenance I need to worry about is when I want to implement my own changes. After constantly updating wordpress this sounded very nice to me.

I can think three basic parts to my new blog engine. The blog entry authoring tool, the method of storing or organizing the blog entries, and the script which generates the web site. For the authoring tool I decided to use Open Office or Libre Office for now. Really it is the Open Document Format that I decided to standardize on writing my blog entries in, but for now the best tool to author an open document file is Libre or Open Office. I picked the open document format primarily for two reasons. The first being that I have a choice of a number of nice word processors for authoring my blog entries in. The second being that the open document format is very nice at storing all sorts of metadata. This allows me to store most if not all of the metadata about the blog entry in the document for the entry itself.

The method I use to store and organize my blog entries is using openKM (the same tool I mentioned in my previous blog entry that I use for document management). If I were to write this tool as an open-source project (which I may do in the future) that others would use I would probably just organize the documents in a directory structure. Most of the metadata about the blog entry is stored in the open document format anyhow. Since I store my other documents in OpenKM though, I thought what the heck and designed my script to pull the documents out of the document management system. I do use the categorizing feature in OpenKM though to categorize my blog entries with projects. My script then parses this metadata out of OpenKM when it builds the project pages.

The last piece of my new blog engine is a fairly small groovy script which pulls the documents out of openKM, and parses through them. The Open Document Format is nothing more than a zip file which contains various xml files that make up the content and metadata as well as some image files if you did anything to include images. It wasn't to hard hard with groovy's xml parser to start parsing out blog entries out of the open document format. There are a few problems that I still have such as special characters (you may have noticed) and I am not currently handling much of the special formatting (Not that I really need to). As I need a new features I will just implement it. Anyhow once I decided to go the route that I did I was able to get the blog engine script into a usable state fairly quickly. 90 percent of the features I initially wanted are already implemented. The last 10 percent will probably turn out to be a pain in the butt though. That is usually how it is...