Drunken Jogging

I started using the RunKeeper app to track my jogs, as my sister uses it and likes it a lot. It is also able to track bike rides, which I also do. So this seemed like a great solution. And to top it off, on my first run, it said my pace was a bit faster than I thought I was doing, so I was pretty happy.

Then, on my second run, it said my pace was even faster. Simply by changing how I tracked my runs, my pace went from around 12 min/mile to around 9 min/mile. Since I was 100% sure that I didn't get that much faster in two days, I knew something was up. I blamed RunKeeper, but I think the real problem is Sprint. My sister has AT&T phone service and she said she thought RunKeeper was pretty accurate. Take a look at a zoomed in part of one of my runs and see if you can spot the problem.


And this is pretty a typical run. It was made completely clear to me when I jogged 35th street from basically Ashland to State and back. Ashland to State is two miles, so this run should have been around four miles. According to RunKeeper, I had run almost five, which explained my sudden increase in speed.

Now my decision is whether to stay with RunKeeper or not. I probably will, simply because the real problem is with Sprint. My intention is to switch to T-Mobile when my contract is up. Their service probably won't be much better, but since I refuse to go to AT&T, it's pretty much my only option.

My Robot

My niece and nephew were both talking about building a robot and it made me realize that I wanted to build a robot as well. After looking around, I had intended to buy the new Arduino robot, but it wasn't in stock. Instead I found a hexapod robot called Hexy, which looked even more fun. So I ordered it and it arrived today.


The instructions for how to assemble the robot are all online. They are here (http://arcbotics.com/products/hexy/start/.

The first step is to check that you have all the parts. I laid all mine out and labelled them.


I had all the parts and an additional bag (of what looked like gears) that isn't in the picture on the website. I guess I'll see later if these are required or if I just got a random bag in my kit.

In the assembly, the first step is to build a leg and then repeat that step five times for a total of six legs. Again, I laid out all the parts of the leg like the picture on the website.


I spent a couple of hours on this tonight and made three legs.


Some observations:

1. The included screwdriver is a piece of junk. It's too small for most of the screws. I switched to using one of my own and things went a lot better.

2. All those pieces in the legs are covered with protective paper that needs to be peeled off. This is by far, the most time-consuming step. Fortunately, my fingernails are a bit long which helped immensely in getting this paper off.

3. The text on the website was very confusing to me. I basically just followed the pictures. Interestingly, the pictures used an orange plastic and black screws to make the robot. My kit has blue plastic and silver screws, so on the first leg it took me a while to get used to what went where.

I figured I'd stop after three legs so I could do a little work tomorrow. And I'm also going to leave one leg for my nephew to assemble later in the week. After that, we'll see how the rest of the robot comes together.

Front Stairs

While waiting for the new window to arrive, I decided to tackle some other tasks that I've been ignoring. First up, my horribly dangerous front stairs. Since I'm getting a roommate soon, who will unquestionably complain about them, I decided I should do something. None of the contractors I contacted over the summer got back to me, so it's looking like the stairs won't get rebuilt this year. I had mixed a little mortar the other week to fix the gaps around my window and it was pretty easy to work with. So I thought, why not give it a try?

First off, do you know how much a 60 lb. bag of concrete costs? $3.03, including tax. For that amount, I figured I really had nothing to lose in giving it a try. So I bought a bag and started mixing. I don't have a cement mixer, so I just did about five cups at a time in a 5 gallon container. I ended up using all of it, which surprised me. But it was fun.

The original stair after I pulled out as many broken pieces as I could
The original stair after I pulled out as many broken pieces as I could
Top view of stair after I put in all my concrete, with my duct-taped form.
Top view of stair after I put in all my concrete, with my duct-taped form.
Better view of my form. These were pieces I had lying around my kitchen
Better view of my form. These were pieces I had lying around my kitchen
Final look.  Is it perfect? No.  Is it better? Yes.
Final look. Is it perfect? No. Is it better? Yes.

The cool thing is that this took me about an hour to an hour and a half to do. So even if it falls apart later, I'm glad I did it. I'm hoping it will last through the winter.

After the front stair repair, I also decided it was time to finish the closet in my bedroom. And by finishing, I mean hang some poles so I could put my clothes in it. I had gone to the container store to get some really nice elfa shelving. But it seems like you have to spend time with a consultant to lay the thing out and I just wasn't in the mood. So I saved a lot of money by going to Home Depot and just buying some brackets, a pole and some wood. For $50, I have to poles and shelves now and I'm happy.

Mass Mailing in Rails

I have a need to send out a bunch of individual emails from the same email address. I thought it would be good practice for me to see if I could do this as part of a rails app. The interesting thing is that I don't want to save anything to a model. I just want to be able to upload a csv file, get all the names and email addresses out and send the same email with attachment to all of them. Here's how I did it.

Here's my standalone model

class Message
  include ActiveModel::Validations
  include ActiveModel::Conversion
  extend ActiveModel::Naming

  attr_accessor :name, :email, :doc
  validates_presence_of :name, :email
  def initialize(attributes = {})
    attributes.each do |name, value|
      send("#{name}=", value)

  def persisted?

  def send_announcement
    pid = fork do
class MessagesController < ApplicationController
  filter_access_to :all, :attribute_check => false

  def index

  def new
    @message = Message.new

  def create
    @file = IO.readlines(params[:message][:doc].tempfile)
    @file.each do |line|
      @a = line.chomp.split(',')
      @message = Message.new(name: @a[1], email: @a[0])
      if @message.valid?
    redirect_to new_message_path

<%= form_for(@message) do |f| %>

Text file of email addresses: <%= f.file_field :doc %>

<%= f.submit %>

<% end %>
class GeneralMailer < ActionMailer::Base
  default from: "sending_email_address"

  def send_announcement(message)
    @message = message
    attachments['color_test.pdf'] = File.read('/Users/me/Desktop/color-test.pdf')
    mail(to: "#{@message.name}<#{@message.email}>", subject: "2014 Conference")

I don't really need the index method, but my form complained when it wasn't there. I haven't had a chance to look into why that is. I also tried using a form_tag form, but that didn't upload the document. So I'm sure there's a better way of doing this, but this actually does do what I want.


Sometimes you don't want to know the state of your house and other times you can't help but notice. I really, really need to have my house tuckpointed. This is a shot of the inside of the old hood vent. Yes, that is water pouring down.


Handy Trick

If you have some sample code in a ruby file that you want to run ONLY when that file is called directly, enclose it in the following if statement.

if __FILE__ == $0
  puts "Print stuff out here to test this file"

The __FILE__ is an environment variable that holds the name of the current file. And $0 gives the first argument on the command line. For example, if I ran the file with ruby test.rb, $0 = test.rb. If the code above is in the file test.rb, it would run. If I ran the file ruby test2.rb and test2.rb calls the file test.rb, the code above would not run because $0 = test2.rb.

This is a handy trick to run put some tests at the bottom of your file.

End of Summer

Here are what was left of the roses on my rosebush before I started hacking it down. It is so nice out, just under 70 degrees, which is perfect to me. I cut my grass and even trimmed the tree in front of my house, in anticipation of my new roommate. Just trying to eliminate some of the things he'll complain about.


I took this picture with my iphone in the house and it's a crummy picture. I'm looking forward to getting a new phone with a nicer camera.

It Works!

Yes, the new car is small, but I can still move stuff. It just takes me a few more trips than usual. To get 18 2"x4"x10', took me three trips to Home Depot. But it's a beautiful day, so I'm ok with that.


Still not sure how I'm going to move the 4'x8' sheets of insulation, but I'm guessing that I'll be renting a van for that.

Status Report

I'm a little stuck. Here's how things look now.


The wall is ready to be rebuilt, but I need to replace that window before I do anything. I looked at it for a long time and couldn't find any way to simply take it out. I was thinking that I was going to have to get a sledgehammer and just start breaking it up. I talked to Mickey about it and he thought I should be able to get it out without brute force, so I took another look.

After much messing around, I did get the moving parts of the window out, but I'm pretty sure that I just disassembled the window. As far as I can tell, the frame was attached to the house with concrete. So here's where it stands.


Here's a closeup.

Since I was stuck, I was looking for something else to work on until I figured it out and noticed that the bricks used to fill in the older hole for the window had some large-ish holes between them. I have some mortar at the house and decided to see if I could patch them. So I did. And put my initials in the concrete around the window.


And last week, when I had done all of this, was incredibly hot, so I wanted to cover the hole in the house a little to keep the temperature acceptable. So I covered it with some extra insulation I had laying around. And yes, that is foil tape holding the insulation up. It was the only tape I could find.

That's where I am. I'm really hoping Mickey drops by this weekend because I'm stuck and need some help.