Friday, December 30, 2011

Motivating Myself for 2012

It is that time of year that people look back on the year it was.  I look back and I'm pretty pleased with how it went down.  I've gotten some things done that I've been meaning to get done for a long time, I have challenged myself to learn new things, I have had good success at work, and I like to think that I am a little better person than I was when 2011 was about to roll in.

It is said that one way of making sure you carry through on something is to tell other people what you are doing.  The more people you tell, the more people you are letting down if you fail to follow through.  With that thought in mind, and with 2011 drawing to a close, it seems like a good time to look ahead and set some goals for 2012 in a couple different areas.

Working Out

I have been working out pretty diligently over the past four years or so and have become decently strong on a few lifts.  This despite having the frame of a Japanese schoolgirl and the fact that the testosterone train left the station long ago (i.e. I'm old).  I'm not expecting huge gains in muscle mass but I do think I have the capacity to put on a few more good pounds if I eat enough and don't get hurt.

My best lift is the deadlift.  Pick a weight up off the ground and put it back down.  Simple enough.  I can usually do something like 350lbs to 365lbs for five or six reps depending on the day with a bodyweight in the low 140lb range.  Not bad.  This should translate into a 415lb+ one-rep max.  Should, but probably doesn't, at least for me.  I find that my body doesn't seem to obey the basic predicted formulas for one-rep max

one-rep max = weight / (1.0278 - (.0278 * reps))

and that my reps go down sharply as the weight goes up.  So...

Goal #1: Deadlift 405lbs for a single rep.  That's four wheels a side.  This goal should be doable.  I just have to do it.
This is 495lbs, but you get the idea
One of my weaker lifts is the squat.  Yesterday's workout was 235lbs x 4 for a calculated one rep max of 256lbs.  This lags well behind my deadlift.  I feel my hamstrings are letting me down and will work to strengthen them up.  I really need to build up my bottom position strength before I see some decent gains here.  Because this lift sucks for me, I'm thinking...

Goal #2: Squat 280lbs for a single rep below parallel.  285lbs - 290lbs would be even better, as this would be 2x bodyweight.

 I get mistaken for Tom Platz all the time

My other lifts are decent enough, so I'd be OK with basically maintaining them as I bring these others up.  I can pretty easily Military Press my bodyweight, and I can do weighted chinups with an extra 77.5lbs of weight (around 55% bodyweight) hanging off a belt for 5 reps or so.  Bench press?  Screw it.  It has done my shoulders far more harm than good in the past.  I might play around here a little bit, but pushing serious weight with them isn't something I'm planning on.

Work

Work isn't really something I talk about this on this blog, so I won't.  Suffice to say I just hope I'm not putting in crazy amounts of extra time that would take substantially away from all this other stuff I want to do.

Hacking

This year we went away for a few days to spend Christmas with the family.  We had our neighbor check in on the place while we were away.  You never know if the furnace might go out or a pipe springs a leak or something like that.

Actually, you can know.  And it isn't that hard.  I've spent a bunch of time researching this lately.  There are a multitude of ways that data can be collected and made available so I could know right away if my furnace stopped working or a pipe sprung a leak.  Then I could just make a phone call for somebody to check into it rather than having them waste their time when everything is fine.  One strategy would be to collect the data with some JeeNodes from JeeLabs and the incomparable Jean-Claude Wippler.  JeeNodes are a kind of Arduino clone with built in network capabilities and an emphasis on low power such that a single remote node ran on a single LiPo for a year without breaking a sweat.  More here.  And did I mention that these things are crazy cheap?

Now, that data has got to get onto the net, so why not just hook up a JeeNode to my router and write a script like that used to collect data from my weather station and push it out on to the web?  If only there was a site that was willing to store all of this data for me and make it easy to get to.

It turns out that there is.  Pachube is happy to take all of the data I send to them.  They have an open API.  Look at the data from their web site or pull the data into a Google gadget and display it on a web page.  And you can retrieve the data whenever you want in three different formats.  All for free.  So how about...

Goal #3: Get some basic home monitoring going by Christmas 2012.
This is what I have in mind.
One more thing that I have been playing with for some time is trying to understand how the Davis Weather Station outdoor sensor suite is monitored by the indoor console.  What I'm working towards is some means of building a standalone receiver that could listen in on its transmissions and collect the data without depending on the console.  I had initially proposed a Pretty Pink Pager for this task, and indeed, I was playing with this just the other day.  Unfortunately, I'm struggling with some kind of problem with my GoodFET where it doesn't want to talk to the IM-ME, and this is slowing me down.

There is a problem with this approach though.  The number of people that have a Davis Weather Station, an IM-ME, and the means to hack it is a number one less than two.  The IM-ME is a good prototyping platform for this kind of thing, but it isn't an accessible solution for others.  The biggest problem is the CC1021 chip in the console is not exactly hacker friendly.  The documentation is great, but actually building a board around this thing is not: the components are tiny and a good layout is critical to decent performance.  Development boards also tend to be either expensive or very expensive.  Then I came across the XRF module from Ciseco that puts a CC1101 processor (CC1021 RF compatible) onto an XBee form factor board for just £10 plus another £2.50 for shipping.  What a deal!  This leads us to:

Goal #4: Get a standalone receiver picking up the transmissions from a Davis outdoor sensor suite by the end of 2012.
Let's Do This.  You and Me.  Mano-a-Mano.
Wrapping Up (Finally)

Well, that is enough for now.  There are still a lot of other things I want to get done this year, such as
  • I have a bunch of landscaping to get done.
  • I'd like to get a little hydroponics setup going so I don't have to wait until fall for a decent tomato.  Life is too short for shitty tomatoes.
  • I'm going to keep working at improving my breadmaking skills.  Incidentally, this Sourdough Rye bread is outstanding.
These things lead me to...

Goal #5: Keep this blog going, share the adventure, and enjoy the ride.

What are YOUR goals?  What do YOU plan to do?  We live in a great time where pretty much anyone can learn about anything.  The greatest threat to this is a lack of motivation.  Don't waste the opportunity you have.  Get started today.

Happy New Year from all of us here at Mad Scientist Labs.

DD-WRT is Dead! Long Live OpenWrt!

The Christmas break is upon me and I am trying to get a few things done rather than just sit around and eat cookies.
Chose to Eat Cookies
One of these things was to change the firmware on my trusty Linksys WRT-54G, perhaps one of the greatest routers of all time.
The Muhammad Ali of Routers
It's greatness was largely accidental and stemmed from a license violation.  Linksys used Linux as the brains behind this router.  However, they did not realize at first that the GNU Public License that Linux is released under requires all changes to the source code be made public.  Their hand was forced, and the source code was released in July of 2003.  The open source community tore into this code like a pack of wolves and custom versions with additional features sprang forth.  Before long, this $60 router had the features of a $600 router.  It became the router of choice for geeks and hackers everywhere, and Linksys sold approximately eleventy billion of them.  Read this if you want more of a history lesson.

Linksys came out with many different versions of this router as time rolled on.  I have one of the best: a Version 3 with a staggering 16 Meg of flash and 4 Meg of RAM.  Later versions halved the amounts of flash and RAM, forcing subsequent versions of custom firmware to cut back on features to make room.

I don't remember when I did it, but my first cut at custom firmware was DD-WRT.  I picked this because it had more features than I would ever use, was well supported, and had a nice GUI to control everything.  Sadly, DD-WRT doesn't seem to remember where it came from anymore, and you can't build the whole shebang from source.  Want to modify the GUI?  Be prepared to jump through some nasty hoops to do so.  Development of DD-WRT has also slowed to a trickle: the last release for my router was in 2009, and that was to fix a software vulnerability.

Screw this.  Time to switch, and switch I did.  Yesterday I put OpenWrt and the Gargoyle "router management utility" on it and the process was relatively painless.  Note that I said relatively painless.  There were a few bumps in the road that tripped me up briefly.  This is what got me going.
  • I went to this page on the Gargoyle website and chose the Firmware Image for the Broadcom architecture for the latest stable branch of the code.  This image has the OpenWrt firmware rolled in already.  Nice.
  • The brcm47xx-squashfs file was what I needed, but should I download the .trx or the .bin version?  According to the install guide...
If you are installing from another third-party firmware such as DD-WRT or Tomato, you should also use the .trx file.
Sounded to me like I need to download the .trx version.  Turns out this was wrong.  More on that in a second.
  • The Installation Guide on the OpenWrt Wiki told me that all I should have to do was "Open the WebUI of the original firmware with your web browser and install the OpenWrt firmware image file using the "Firmware Upgrade" option of the original firmware."  Easy peasy.  I backed up my DD-WRT settings from the GUI and then tried to load the .trx file.  DD-WRT greeted me with
Incorrect Image File 

Not good.  That is when I started Googling around and started reading about all the people that had troubles upgrading to OpenWrt from DD-WRT.  The problems people were having were broken charts in Gargoyle and wireless that just plain didn't work afterwards.  This got me a little nervous because this is the only router I have, and botching this upgrade would make me very grumpy.  But no guts, no glory.  I proceeded onward.
  • This post suggested resetting to factory defaults within DD-WRT before doing the upgrade.  This made sense to me: clearing the NVRAM in the router before going to a new firmware version would let OpenWrt start with a clean slate.  Resetting to defaults caused the router to reboot into DD-WRT, after which I had to re-login with the default password of "password".  I'd have never guessed.
  • The next step was to rename the .trx file to .bin and again use the DD-WRT "Firmware Upgrade" option, against the advice of the installation guide.  DD-WRT happily accepted this file.  Several nerve-racking minutes passed while the router re-flashed and rebooted itself.  I pointed my browser to 192.168.1.1 and...
Success!
  • But I wasn't through yet.  Wireless wasn't working.  I dug around the GUI a bit and saw that it was disabled by default.  I enabled that, set the SSID and security stuff, and saved my changes.  This caused the router to reboot and... still no wireless.  This is what I had read about and I was starting to get a little nervous again.  I unplugged the router's power supply for 30 seconds, plugged it back in, and it worked!  Yay me!
Looking back, I realized I was fortunate doing this upgrade over a wired connection.  The default of wireless being disabled and the temporary problem I had with getting wireless going would have caused addition grief if I hadn't been wired in.

A question you might be asking yourself is why I am still playing around with such an underpowered, ancient router that only supports the B & G standards.  Well, when all you have 2 Mbits/sec of downstream bandwidth and 128 kbits/sec of upstream bandwidth, Wireless G is all you need.  But more than that, this thing is completely and utterly reliable.  It quitely does its thing, hidden away in the basement.  The custom firmware also gives it far more capabilities than I need, and it is still incredibly well supported.  What is not to like?

Well, it doesn't have anything in the way of extra ports and it could use more memory.  But there are a ton of easy hardware mods for this router that I might take a shot at that would give me exactly this.  One thing that I really want to try is this 1-wire mod that will let me connect simple devices like temperature sensors to this thing.  A reader of my blog has even written a script that lets a WRT54G with a serial port hacked on upload data from a Davis Weather Station Console directly to Weather Underground.  How cool is that?

This baby still has a lot of life in it yet.

Sunday, December 11, 2011

Please Read This

Christmas was the best day ever when I was a little kid, just like it is for so many kids today.  But as I've gotten older, there are a few things about it that are like old clothes: for some reason, they just don't seem to fit quite as well as they used to.  I still enjoy the socializing and the food.  It is more the gift thing that just seems a little awkward now.
Best Christmas Movie Ever, Bar None
I am not a very materialistic person.  I also understand the difference between "need" and "want".  If I need something, I get it because I actually need it.  If I want something, I tend to mull it over for some time.  What I have found is that the things I think I want are fleeting, and what I think I want one month, I am no longer interested in the next.  To quote Sheryl Crow:

It's not having what you want,
It's wanting what you've got.

It is very rare that I will buy something I think I want on the spur of the moment.  This discipline serves me very well.  It saves money and keeps down on the amount of clutter around the house.  I've found clutter like this tends to depress me, so avoiding it in the first place just helps me feel better.
I Am A Few Ounces Of Discipline Away From This...
I also have gotten to be pretty particular about the things I buy.  If I decide I want something, I'll get something that does all the things I want it to do.  I do a lot of research before putting down my hard earned cash.  That doesn't necessarily mean that it is expensive.  It means it does what I want it to do at a good price.  The internet is an absolute godsend for me.

So lets get back to Christmas.  I was getting gifts in recent years from very well meaning friends and relatives that I wasn't really enjoying or using that much: books I wouldn't get around to reading, stuff that I never used, etc.  It just seemed kind of wasteful despite the best of intentions.  This stuff and another incident I won't get in to started turning me off the whole gift thing.  So after Christmas a couple of years ago, I decided it was time to do something different.  I simply asked everyone that in lieu of a gift to me, that they instead make a donation to a charity of their choice.

You see, one of my numerous shortcomings is that I don't donate much to charity.  My request would indirectly address this shortcoming and take some of the commercialization out of the holiday season that was bugging me as well.  I was killing two birds with one stone.  Sheer genius, eh?  I'm right up there with the great physicists of our time: Einstein, Planck, and Spears.
First Row, Fourth From the Right
So last year was the first year that there were no gifts under the tree for me.  How did it  work out?  Much better than I had expected, without a doubt.  It was a little weird in that it was different for me.  However, I felt great each time I heard of other person's act of giving.
Srsly
I learned of the most memorable of these events when I drove home on Christmas day 2010 to see my mom and spend the day with her.  She told me that she had made a donation to the Children's Wish Foundation, whose goal is to bring some happiness to children who are facing a pretty dire situation.  This is a charity dear to her heart (again for a couple reasons I won't go in to).  She had made her donation to Children's Wish earlier that month, and that was great.  But for her, what really made it was when the charity phoned her just before the holiday to express their gratitude.  They didn't ask for more money, they simply thanked her.  She told me that this was the best thing that had happened to her all holiday.

That made me feel pretty awesome.  I'm getting a little choked up typing this in even now.

Fast forward a year to 2011.  I got a Christmas card from my mom in the mail just the other day.  I opened it up so I could read it and put it onto the mantle with the rest of them.  But this was no ordinary card.
I didn't realize it was my Christmas present until I opened the card and started reading.
A goat brings lasting abundance to hungry families.
For impoverished families, a gift of one or even two goats is a fantastic milk, food, and income source.  The family will also receive training on how to breed the goat and start a business.  Because of you, this precious gift can even be the start of a flourishing dairy business for the family that receives it.  Thank you!
Mom had done it again.  I was totally taken aback.  The card was from World Vision.  They work "to improve child well-being and to serve people around the world regardless of religion, race, gender or ethnicity".  Mom had chosen this goat from the many options listed in their gift catalogue.  Her choice meant some family I will never meet will get a shot at a better life vs. me getting something I don't really want and won't use.  Seems like a pretty good deal to me.

Whoever said it was better to give than to receive was right.  I know that now.

Why not find this out for yourself if you haven't already done so?  Consider giving either some of your cash, some of your time, or some of what you might have coming your way this season to a cause you support.  Or maybe you've enjoyed what you've read on this blog or learned something useful and want to show some appreciation?  That works too.  Pick a cause and help them out.  Whatever cause you choose isn't important, as long as it is important to you.

If you decide to do something, that would be fantastic.  If you don't, that is OK too.  Your choice.  Whatever you choose to do, the staff of Mad Scientist Labs wishes you a safe and happy holiday, and the best of 2012.