Wrangling my finances

October 21, 2008 at 12:42 pm | In Cool Stuff, Economics, Emacs | 3 Comments

I've gotten better at thinking about my finances over the years but I've never had anything better than a mental budget. I've never actually written anything down on paper. I've got a brand new job so I figure I've got a clean slate. Starting right now, I pledge to myself to keep a balanced checkbook at all times and to do monthly reviews of my finances looking for things to cut out of my budget.

Fiscal Conscience: Ha! How many times have you said that?
Me: Dozens of times!
Fiscal Conscience: And did you ever actually do it?
Me: No, but this time it will be different!
Fiscal Conscience: You're going to have do to better than that!
Me: Fine, I'll show you.

GnuCash is a wonderful piece of open-source accounting software. I have used it myself, dozens of times. But as it happens I inevitably stop using it. Not because the software is flawed per se, it does everything a good accounting application should do:

  • Use Double-Entry accounting
  • Support multiple currencies
  • OFX import from online banking sites
  • etc

The only thing they get wrong is the fundamental design choice they made when developing the application: they made it a GUI. Sure, GUIs are great, but in my opinion GUIs should be interfaces to a service oriented application rather than the application itself. Unless I'm sitting at my desk at home I can't use my application. I don't consider remote desktops a reasonable response to this problem due to the huge network latency issues as well as firewall problems.

I want to be able to record my transactions from anywhere. At home at my desk, at work at my desk, on my N800 when traveling, or on my phone when running around. With an application fundamentally written as a GUI this is essentially an insurmountable problem. An application written as a service can do all of these things quite easily with minimal amounts of programming.

Enter Ledger.

Ledger does not keep track of your accounts. You keep track of your accounts in a plain text file and Ledger helps you understand them better. I can update my checkbook register from any text editor, anywhere I am. Most often this is Emacs through SSH on my home computer. Because of the triviality of the file format (being plain text) I can write a simple application that takes text messages from my phone and adds them to the register automatically.

But what about all my automatic payments?

I have most of my monthly payments automatically debited from my account. This is nice since I don't have to spend the time submitting payments to X number of companies each month, but is a nightmare when it comes time to balancing my checkbook. What I have done in the past is to just import an OFX file from my bank directly into GnuCash. This works great until you realize that something is wrong with the import and your checkbook is no longer balancing correctly. For this reason alone I prefer to record each transaction I make by hand. My money is my responsibility after all.

So, I wanted to be instantly notified of any debit on my checking account as soon as it happens. This gives me the following:

  • A text message to my phone describing the time, place and amount of the transaction
  • The total balance of my account
  • A way to constantly keep an eye on how I'm spending my money without the hassle of (remembering to) signing into my bank account
  • A reminder to balance my checkbook. (tells me when my actual checking balance has been out of sync with ledger for over 48 hours.)

The central peice to this process is getting the transaction data from my bank account. My bank offers online banking but it does not offer an easy way to download my transactions. Sure it supports Quicken and MS Money exports, but its all protected behind a password protected javascript-enabled website. I wanted to use the wonderful mechanize library for python. However, it doesn't support javascript.

Enter Selenium RC.

Selenium RC is an application that can remote control a real web browser and submit and receive data. I run selenium which launches Firefox in a headless X-server (Xvfb) and continuously refreshes my online banking site and parses out my account activity. This is probably a bit memory intensive to always keep a browser open for this specific purpose. I may want to experiment with python-spidermonkey in the future and go back to using mechanize, but I think there's a lot of glue missing in that solution whereas Selenium RC works perfectly right now!

No code to share at the moment, it's all a giant hack. If a similar setup appeals to someone out there, let me know and I'll think about releasing something.


3 comments - Leave a comment

Last.FM at 75MPH

March 4, 2008 at 11:33 pm | In Cool Stuff, Geeky, N800 | No Comments

I got a new phone today, a Samsung A737 from ATT. I signed up for their media net unlimited for an additional $15 and it gives me internet access, not only on my phone, but on my N800 too.

I have the Vagalume Last.FM client installed on my N800, and guess what? The 3G connection is sufficient for streaming! :)

I tested it out today, only a 5 mile trip on I-15 (SLC metro area). At 75 MPH, I went through about 3 songs. I advanced (skipped) the song about 5 times, and each time it went to the next song very rapidly (1-2 seconds delay). The whole time the music only cut out once when I first got onto the freeway, but only for about 2 seconds and it corrected itself.

I am extremely giddy at all the geeky prospects that lie ahead for me :)


No comments - Leave a comment

Life is to be sung

July 22, 2007 at 12:37 am | In Cool Stuff, Videos | No Comments

Achievement is overrated. Not worthless mind you, just overrated. The value of achievement is weighted so heavily in our lives that we tend to neglect the very prerequisites for it.

This is what beauty is: to find happiness and fulfillment in every single day.

Lifelong 'achievement' cannot be realized unless it is done daily. This country's education system and expected work schedules don't help much in this regard but it cannot be blamed for my lack of daily achievement. I can achieve something and find fulfillment in spite of the apathy that may surround me.

This video is very inspiring to me. Because of it I am reminded that I must refuse the concept that I will someday arrive at the beginning of my life.

I am already here.

I always have been.

What I do today is what counts.


No comments - Leave a comment

Michael Badnarik has a new radio show!

April 23, 2007 at 8:46 am | In Cool Stuff, Michael Badnarik | No Comments

Michael Badnarik

I got an email this morning from one of my favorite liberty activists: Michael Badnarik. Michael has been wrapping up a very rigourous campaign for US Congress and so we haven't heard much from him lately. But he is back and sounding better than ever!

Michael began today with his new show Lighting the Fires of Liberty on the We the People Radio Network. I wish Michael the best of luck, I feel that being an educator is one of his best roles and he will do extremely well, I'm sure of it.

Check his out podcast today!


No comments - Leave a comment

Awesome

June 20, 2006 at 10:58 pm | In Cool Stuff, Videos | 1 Comment

Sorry, I've been busy with school and work the past month or so, I promise I'll write here soon.

In the meantime, this is just plain awesome:


1 comment - Leave a comment

My Dad, the piano man.

April 29, 2006 at 12:35 pm | In Cool Stuff | No Comments

My father always had a piano in the house while I was growing up. I have many fond memories of him playing it. At some point, after we moved to Utah when I was 10 years old, the frequency of his playing slowed. I think this was due in part to his eagerness to provide for his family and thus his time diminished, but also because his Chickering upright piano did not fare well in Utah's lower humidity.

Last year, my parents moved closer to where my Dad works and they also got a new house-warming self-given gift: a 1911 Steiff grand piano. My Dad has been very enthusiastic about it ever since and his playing has improved by leaps and bounds. I am very proud of him.

Today, he sent me his latest studio recording. I assume this is not played on his new Piano as he doesn't have his own studio. This is amazing: If you could see me now.

Click the play button below


No comments - Leave a comment

Python! TurboGears!

November 18, 2005 at 12:20 am | In Cool Stuff, Python | No Comments

Python! TurboGears!
I have to to tell this story backwards so bear with me.

Yesterday, I watched something that was surprising, amazing, and inspiring all at the same time. It was a video of the making of an entire Wiki, from scratch, in only 20 minutes. Mind you this video was produced by a developer that intimately knows his development environment, but it was nonetheless amazing to just sit and watch the thing evolve in front of me and not get bored in the process of watching it. The video introduces a brand new web application framework called TurboGears.

I guess I'm a bit behind on the times, because I thought plain, vanilla, PHP was pretty cool stuff. It's what I've almost always used for developing web-apps, in both commercial environments and on my own personal time. I had heard of Zope before but until recently had never really considered it much more than an alternative on par with PHP. Enter Ruby on Rails. Until earlier this year, I didn't even know what Ruby was let alone what an MVC was. Ruby on Rails (RoR) is essentially the next big thing, a higher abstraction, in developing web applications. Everyone, everyone but me that is, has been talking about Ruby on Rails… but somehow it completely slipped me by.

Go back a little further in history..

In August, I stumbled on a very unique website called the Python Challenge. It is a site with a series of progressive riddles for (python) programmers. To summarize, it is very addicting. If you haven't tried it, go there right now (warning: if you're at work right now, you might not get back to it today). If you are a programmer (of any skill level) or just happen to like a good puzzle, this web site will challenge you for hours and days and even weeks. I started dreaming of these problems and possible solutions. The Python Challenge litterally tought me how to program Python in about one week. This is in part due to Python being a simplistic (yet oh so powerful), highly abstracted (that means you don't need to know much about computers folks!), well designed language. This is also due to the fact that the Python Challenge seems to cover almost all of the Python Standard Library. Instead of reading through a Python book from front to cover, the Challenge forces you to read certain portions of the documentation in order to solve the puzzle at hand. Then the next puzzle does the same thing for a different part of the documentation. By the time you've gone through ten or so of these puzzles you'll realize that you've read things that you probably never would have read without the motivation, or possibly you just would have skimmed over it without realizing it's significance. But since you were essentially forced into reading it and actually put it to use, you realize it was worthwhile after all and will know to use it again when the opportunity arises. I have since tried to incorporate as much Python into my work and my studies as possible and have found it very rewarding. Suffice it to say, I love Python!

Now, this probably sounds pretty non-coherent by now, if not totally unrelated to the first part of this post, but trust me, I told you all this for a reason. Shortly after reading about Ruby on Rails, and realizing the magnitude of it, while at the same time not relishing the thought of learning Ruby, I googled for "Python on Rails" and came across TurboGears. Now I found something I could really get excited about: a next-generation model for designing and implementing web applications that for all intents and purposes seems just as powerful as Ruby on Rails and just so happens to also be in a language that really excites me. I haven't gotten very far in doing anything with it yet (school and work is a little overwhelming right now) but before seeing these two things together I had almost deemed web development boring.. I never would have thought that it could be this fun again!


No comments - Leave a comment

What Fantasy/Sci-Fi Character are you?

October 20, 2005 at 7:57 am | In Cool Stuff, Enigma Curry | 1 Comment

Which Fantasy/SciFi Character Are You?

This is a fun little quiz to see what Fantasy or Sci-Fi character you are.

I answered truthfully and I turned out to be Spock… but I was also curious to see what happened if I changed my answers slightly. Did you know what the difference between Spock and Harry Potter is? I'll tell you. Harry Potter would gladly kill his best friend if it were to mean immortality for himself. Thank goodness that isn't something I'm apt to do.. something drastic indeed might have occured had I turned out Harry Potter.


1 comment - Leave a comment

Powered by WordPress.
Entries and comments feeds. Valid XHTML and CSS. ^Top^
XML Sitemap