Cashflow Calendar

My wife and I recently regained sufficient interest in tracking and projecting our personal finances. One of the questions we wanted to be able to answer was how much money would we have each day for the next month or so. We receive direct deposited salaries every week or two, but we also have some irregular income like the employee stock purchase plan that my company offers and I participate in. So we made a cashflow calendar. Using a Google Docs spreadsheet, we put days of the week as column headers, allowed seven rows for transactions, and calculated a daily total and a running sum at the bottom. I used conditional formatting to highlight when the checking account would dip below a threshold.

Screenshot from 2015-02-14 08:09:22

I like this because at least within the time period you’re writing up, you can track cashflow that has happened and project cashflow you expect to happen at the natural frequencies. You don’t have to divide a once-a-month bill in half to fit into a 2 week budget or in fourths to fit in a weekly budget. The cashflow calendar seems like an obvious tool, and indeed it is a slight evolution of what I was taught in Engineering Economy at Virginia Tech, but it wasn’t how the Financial Peace University budget template was formatted, and we had been coasting off of that class and its methods for some time.

At the moment we’re only really tracking out checking account and doing it all manually. I hope that with some clever scripting I may be able to have my computer handle the data entry automatically, and all I have to do is predict the future.

Watching the GETs, POSTs, and OKs

Having put in place a simple man-in-the-middle SSL/TLS stripping setup using socat, I used Wireshark to view the HTTP traffic to my bank, so I could replicate it in a more programmatic manner than manually using a web browser. I set Wireshark to capture on any device using the following filter.

tcp port 1337

Using a custom port (1337) slightly hindered automatic decoding so I right clicked on the data section of TCP packets with a data section and selected “Decode As…”, and selected transport tab for port 1337 to be decoded as HTTP. With this in place I put “http” in the filter box and removed a bunch of TCP noise. Now there was still a bunch of javascript fetches that I hopefully won’t have to deal with, but it was easy to locate the POST method that I was particularly interested in.

Taking the S out of HTTPS for Reverse Engineering

I’d like to be able to automatically query my checking account balance (and all my other accounts to, but checking is a good place to start). To my knowledge, my credit union does not provide an API like The Open Bank Project. So I must resort to screen scraping. To start, I’d like to observe my browser logging in. To do so, I’ll use socat.

socat \
  tcp4-listen:1337,fork \
  openssl:subdomain.domain.tld:443,cafile=/etc/ssl/certs/Appropriate_CA.pem

You may need to look closely at the URLs you’re dealing with. I found that my credit union used a different certificate for the account login subdomain than for the home page at the regular domain. With that in place I can navigate to http://127.0.0.1:1337/path/to/login in Firefox and observe the traffic unencrypted in Wireshark. (Apparently I could give Wireshark my private key as well, if it was built against GNU TLS, but I’ve yet to try that approach.)

Circuit Stickers on Blocks

image

So I’ve been disappointed for a while at the lack of technical toys for toddlers and wanted to do something about it. Yesterday I finally put together a very initial prototype using Circuit Stickers and blocks. Here are a couple pictures.

image

I’d love to see my introduction to computer engineer project, designing and building a 4 bit arithmetic logic unit with a few basic 7400 chips, possible with something like this.

Why Not Use Low Voltage Direct Current?

disassembled LED lamp

Disassembled LED lamp
“EcoEnergy EE-02-010” by Dmitry G. Licensed under Creative Commons Attribution-Share Alike 3.0 via Wikimedia Commons

I recently was at Lowe’s and finally bought one of the outlets I had been eyeing for a while with USB charging ports built in. This brought back a thought that I’ve had before that relates to both baby-proofing and efficient use of distributed, Photo-Voltaic (PV) generated electricity. I’ve gathered through the years that high voltage alternating current is so widely used because it’s great for long distance transmission. But is that still the most important factor to optimize? What devices in a modern house actually use alternating current and high voltage? The computer in my pocket (smartphone) charges with 5V, and my Novena desktop will be plugged in to 12V (see the top left corner page 5 of the motherboard schematics–I’ll have to study these further to see why not 5V). I figured that Compact Flourescant Lights (CFLs) would be one of the few devices to actually use alternating current. Turns our they do, but not what they get over the wire. According to the CFL article on Wikipedia, they rectify the 60Hz incoming and bring their own transistors and inverter to get the high frequency signal they need. I’ll have to further explore what kind of voltage they actually use. My first introduction to powering LEDs was with coin cell batteries, when I learned about throwies at the Last HOPE. Presumably the LED lamps you twist into an Edison screw (just learned that that’s its name) bring their own rectifier and could be powered off of significantly fewer volts. Having mentioned the Edison screw, a transition to wiring the house with low voltage direct current is probably the perfect opportunity to also ditch the Edison screw for something that is significantly less likely to electrocute me, and more importantly, my children.

That covers computers and lights–things we want everywhere in our house. Vacuum cleaners are also nice to have everywhere, but my mother in law has a robot with a battery sweep her floors. I like to think that’s the way of the future. So that leaves hair dryers, refrigerators, microwaves, clothes dryers and other generally large but fixed location devices. I would hope that semiconductors could somehow help them become much lower voltage just like LED lamps did for lighting, but I don’t know if that’s realistic. But say you were to keep the current high voltage for charging stations in the garage and appliance hookups in the kitchen, laundry room, and maybe bathrooms. Bedrooms, living rooms, and offices could potentially be wired with safer, and potentially more PV-friendly, low voltage direct current. While we’re at it, maybe bundle it with data, like power over ethernet (that topic might be worth its own blog post). I really don’t know what I’m talking about here though, so before I go on longer, I’ll have to learn how to simulate electrical transmission and make some comparisons. If anyone knows of libre software useful for that, let me know. I may start by firing up QUCS once again.

OpenStreetMap tags for new dads

As the father of a one year old, I find myself wanting to know different things from the map than I used to. When nature calls for my little one, I want to know whether the guy’s bathroom has a diaper changing station, for one thing. While not yet accepted through the wiki voting procedure, there is a proposed tag for this.

diaper:male=yes

A more complex need that our baby has, as a crawler and toddler, is the need to be active and play in a relatively safe environment, at best in the company of other children. The following tag mostly covers this.

leisure=playground

however I’m not sure if people are tagging McDonald’s PlayPlaces and the like with this. Until I’m informed of a better alternative, I plan to start, though.

I think these are both particularly useful while traveling. We just got back from a trip and I used Vespucci to make at least one such update while on location. The current tag editor works pretty well for this, you just have to know the tags off the top of your head or take the extra time to look them up.

wpid-screenshot_2014-09-05-06-33-23.pngwpid-screenshot_2014-09-05-06-33-44.pngUnfortunately, on the flip side, I don’t know how to search for these tags specifically while on the go. There is a leisure search option that I’ve found great in the past, but it appears to include parks regardless of play equipment, and being able to differentiate would be awesome. Update: thanks to a helpful Redditor, I now know how to do this! In OsmAnd choose the search option and then “Custom filter”. Press “Leisure” and then scroll down the list that pops up and select “Playground”. You can then view the filter on the map to see just playgrounds.

I don’t think OsmAnd has the diaper tag in its distillation of the map data. Presumably one could supplement the usual data like is done for ski slopes. If I find the time, I’ll have to look into that.

I Feel Prolific

I just touched up and uploaded over 100 house numbers and points of interest from my backlog of geodata. I edited the unprocessed Keypad Mapper 3 data from February and March in JOSM, mostly just moving the nodes onto the center of the house using Bing aerial imagery and using control+shift+v to paste in the street, city, country, etc. address information that remains relatively constant if you work in a line. I did encounter and report a bug in JOSM when adding properties to a node without any. I worked around that by using control+shift+v. I still have April through August to process, but I don’t recall any collection walks as long as the one in March, so it may go faster. It’s time to move on to other things today, but it’s great to start off feeling (as Isaac Asimov described himself as an author) prolific.

Moving to Electrum

I think Bitcoin is cool. I bought one bitcoin for $20 back in 2011 and have been living off of it ever since. Just kidding. I’ve only bought a few donuts with it so far (at Rise), and I’ve also bought some additional milliBitcoins since then. I’m very happy with the Bitcoin Wallet application on my phone. When I got back from my first Bitcoin purchase, I thought to myself though, “Gee, won’t it be neat when I don’t have to carry a wallet around because I can pay for everything I want from my phone. But that might make losing my phone pretty disastrous.” So I don’t stash my entire Bitcoin savings on my phone.

Back in 2011 I used the mainline Bitcoin application on my Linux laptop and was happy. These days though, the blockchain is some 2GB and I don’t really feel like keeping that updated on my laptop’s solid state (faster but shorter lifetime) drive. So I looked at how the wallet application on my phone works, using Simplified Payment Verification, and looked around for something that could do the same without depending on Dalvik. Electrum came up in my search. In the meantime I had deleted the 2GB block chain from bitcoin-qt, so it wouldn’t start. So I used PyWallet to extract the private keys from my wallet file and import them into Electrum. Here was the command.

for k in $(python ../../pywallet/pywallet.py --dumpwallet | sed -nr 's/.*"sec": "(.*)",/\1/p'); do
  ./electrum importprivkey $k
done