First Snow


We woke this morning to a winter wonderland. The forecast yesterday said we were going to get a bit of rain. The temperature is hovering around freezing. Combined with the snowfall it makes for a pretty landscape.

Well, well, well

Our summer was derailed one Sunday night in the middle of August. I was in the kitchen getting a snack or drink & I heard the water pump shut off in the basement. Unless things are really quiet and you listen carefully, you don’t hear the pump running. The loudest noise it makes is the pressure switch turning on or off. Since it was quiet, I heard it shut off. About 5 minutes later, I heard it click back on. The thing was that everyone else was in bed & I hadn’t used any water.

I went down to the basement and shut the pump off for the night. A few minutes later, I turned on the tap in the upstairs bathroom and only got air. I thought, “Well, this isn’t good.” On Monday, I took the cap off the well and checked for water with a flashlight and was somewhat relieved to see light reflecting back. I spent the entire day Monday trying to get the pump primed. I succeeded in getting about 15 gallons of quite dirty water but had no luck on getting the pump to hold it’s prime.

On Tuesday I checked out the local rental places to see if I could rent a video camera to lower into the well to see what I was up against. The population is low enough here that there isn’t enough people to rent one on a frequent basis, so none of the rental shops had one. After a couple phone calls I found a plumber/well-drill company that had one.

On Wednesday afternoon, the well/plumbing guys came by and lowered the camera into the well. The good thing that we saw was that we found there were several feet of water in the well. The not so good part was that the bottom of the well didn’t look like the bottom of a well. It looked like a pile of mud & rubble. Just below the bottom of the well casing there was a fair sized pocket that was quite a bit wider than the rest of the well. The casing only went about 10-12 feet into the ground. The guys said it looked like the well had collapsed. That sounded like what I saw.

Since there was water in the well, we moved on to trying to get the pump primed. The guys did get it primed a couple times but as soon as the pump shut off, it was back to square one. Either something had happened to the line between the house and well, or something had happened to the line in the well. My guess was that the last collapse had damaged the foot valve. At that point the alternatives we had were

  • Dig out and replace the line between the house & well (and hope for the best).
  • Drill a new well.

The catch was that the old well is inside a carriage house converted into a garage and the water line goes under about 30 feet of asphalt driveway. Even though it might be less expensive than drilling a new well, it wasn’t going to be pocket change. Andrea & I didn’t have much trouble opting for a new well. The prospect of doing the repair and then having the well collapse again in a year or two wasn’t worth whatever price difference there might be.

Since we didn’t have a few thousand lying around in the middle of August, I set up a temporary water system. I moved the pump to the garage & ran new pipe down the well and too the house. You can see the water line in this picture (in front of the car):

I should emphasize temporary. Winter comes early in Canada. We’ve already had a couple nights where the temperatures have hovered around the freezing mark. We have had the pellet stove on a few times. Once I had the temporary water system hooked up, I scheduled having the well drilled this week.

Today was that day. I’d never been up close on a well being drilled before so I wandered out a few times to check on how things were going & watch the whole process. Once the well casing was in, I was surprised at how fast the the drill went down and how much water came up. This particular drill was one that pounded (like a jackhammer but slower) while constantly spinning. It blew steam and compressed air through the bottom of the drill to blow the broken rock out the top of the well. Here’s a pic from the first hour before hitting bedrock .

I also keep a rough track of the time. The first 30 feet of well & installing the well casing took about an hour & cost about $1500. After that, drilling ran at about $1700/hour (if you don’t include setup and take down time). The actual cost is based on the length of the casing needed & well depth vs time, so that’s just an interesting comparison.

When the drill hits water, they don’t immediately stop. They drill down a bit further to ensure that there is a bit of a reservoir there. On my last trip out, there was a lot more water coming out of the top of the well than there had been in my previous trips. I took that as a good sign. The guy who owns the rig said he’d found water. Then, “I don’t think you’ll be able to pump this one dry.” Later he estimated the flow to be in the range of 12-15 (imperial) gallons per minute. I looked up pumps tonight and they seem to be in the range of 4-6 gallons per minute (so even if the pump ran constantly it couldn’t keep up).

Even though this was an expensive day for us, it was memorable in another way. Well drilling is probably not a popular career choice. There isn’t a lot of fame or fortune in it. I could tell that he was really pleased with the result. Pleased in the sense that he had nailed it. If you’re going to work, you should want to do good work. And, rightly so, should be pleased when you do do good work.

Yard Work

When we bought this house 4 years ago it had been empty for more than two years. During the first summer, I was spending all of my available time getting the house in Miramichi ready to put on the market. So, the yard had suffered three years of neglect. When I started working on it, I found that the previous occupying owner had put down landscape and sheets of plastic, cut holes to plant a few things and then mulched. While that may work for a garden that’s being cared for, left to itself, it makes for a complete mess when neglected.

The mulch had decomposed and was full of twitch grass and other weed roots. The side garden had several shrubs and only one of them even looked halfway decent. In the spring two years ago, I ripped all but two of them out. One of the ones I removed was only about 3 feet away from one of the ones I kept. That summer the remaining one grew and looked healthy. Last summer, it blossomed. this year, you can hardly see the leaves for the blossoms:


When I was doing the final prep work on the house in Miramichi I brought two rugosa and two antique rose bushes here. Both are strains are old enough that they have no copyrighted/trademark to restrict natural propagation. Both grow suckers of the same type of rose from the roots, so they are not a product of grafting. Last year I moved a couple of the sucker plants to the side garden. Here’s one getting ready to blossom:


There are a couple other pics in Andrea’s photo stream which you can get to by clicking on either of the images above.

Financial Planning

Every financial planner (Canadian) I’ve talked to or read has recommended investing in RRSPs. This advice still applies even if you owe money on a mortgage, line of credit and/or credit cards. We do have two RRSPs: one with the locked in amounts from when I was contributing to employer plans and another where the money can be withdrawn at any time. The employer plans were not optional and the funds will not be accessible to us until I reach age 60. The reason we have the second plan is it’s a convenient way to have a fund set aside for a significant financial emergency.

The thing with this financial planning advice is that it isn’t the best use of your money. The Canadian tax system even has incentives built in which make it advantageous in the short term to invest in RRSPs while you have a mortgage. Depending on one’s tax bracket, the short term tax incentive ranges from a one time credit of 25-40% of the funds deposited in a RRSP. That sounds like a really great deal in a financial market where savings interest rates are less than 5%.

Essentially, you are giving the RRSP holder money which is lent back to you as a mortgage at a higher interest rate. The interest rate spread between mortgages & RRSPs over the last few years has been about 3.5%. For the life of a mortgage & RRSP, the mortgage is collecting 3.5% more interest than the RRSP is paying.

When we bought this house, we still had the house (and mortgage) in Miramichi. The only choice we had for a mortgage was 25 years. While we were paying both mortgages, there wasn’t much room for contributing to an RRSP. Once we sold the house in Miramichi and did a bit of planning we switched our mortgage here to bi-weekly payments. Our mortgage allows up to double payments without penalty.

For the last 3 years, we have been paying an extra $42 in each bi-weekly payment. Yesterday, I did the math & those 78 payments of $42 has saved us over $10,000 in interest on the mortgage. The first $42 saved us 24 years of interest at the mortgage rate. In terms of retirement savings, we have gained the 3.5% for 24 years. The next $42 we pay will save us 21 years of mortgage interest and gain 3.5% for 21 years.

There will be a point where the tax incentive makes the RRSP truly more advantageous. In another 5 years or so I’ll probably run some formulas to figure out when we should switch. At a guess, though, I would say the tax incentive only become the best choice in the last 5 years of the mortgage.

Forty-Six

When I was in college, I thought about where I wanted to be when I was 45. Three years ago, I was already working on passing off projects so I could part with my corporate job. Using vacation time I switched to working part time. At WordCamp San Francisco, two years ago, Matt announced that the WordPress lead team had decided to merge the WordPress and WordPress MU code bases.

One of the things I’ve been thinking about this weekend is how those are all tied together.

Andrea & I had been working at the WordPress MU consulting thing about a year prior to the merge announcement. For about a month after what we spent a quite a bit of time discussing was, “what were we going to do?” There was always the option for me to go back to corporate development, so we never felt that we were out of options.

With all of the time Andrea had put into the WordPress MU support forums, she had interacted with thousands of other people with a wide range of technical skills who were also using MU. So, the second question we pondered was, “what were the other users of MU going to do?”

The third question we discussed was, “what do we want to do?”. This question is what ties together the three disparate things in the first paragraph. Whether we would have discussed this at some point, it was the merge announcement that precipitated that discussion.

Once we were fairly sure of what we wanted to do, we started to work toward those goals by doing three things:

  • I volunteered to work on the merge. The worst that could happen was I might have been turned down. You don’t get anywhere if you don’t try or in this case offer. In addition to offering, I went ahead and did some preliminary prototyping work on a merged codebase using the 2.7.1. versions.
  • We chose and registered the WP eBooks domain. We had this domain for more than a year before we started developing the site but our goal for the site was established before we chose the domain name.
  • I started looking into developing a theme framework for BuddyPress. That work eventually turned into GenesisConnect which currently supports 34 themes.

All of these are done and/or established. This year we’ve been moving toward the other things that we discussed two years ago. Hopefully, we’ll be able to talk about those plans over the next few months.

At the beginning of the post I wrote about three separate things. The way that they are tied together is that twenty-some years ago what I wanted to be doing when I was 45 was working at something *I* wanted to do vs working at something because it paid the bills. When I turned 45, I was primarily working on the merge, a project that I had volunteered for.

Since then I’ve had a year to reflect a bit on that. Without a doubt I was fairly naive back in college. But it’s pretty amazing that I ended up where I wanted to be anyway. If there is a moral to this story, I would say that it’s true that life is 10% what happens to you and 90% what you do about it :)

2010 in Review

Family

Izzy

This year our family grew by one. Andrea & I have our first grandchild. If you click on the thumbnail, it takes you to Andrea’s flickr set. That picture is from Christmas morning. She is a delight (of course) and having her here for her first Christmas was very special for both Andrea & I. Without anything else, Izzy would have made our year :)

WordPress

In the summer of 2009, I sent off an email volunteering to work on the merge of the WordPress and WordPress MU code bases. A few weeks before Christmas 2009 I received an email from one of the WordPress leads asking if I was still interested in working on the merge. On Jan 5th I was temporarily given commit access to WordPress trunk. The temporary access lasted considerably longer than what I was initially expecting.

In 2009 I had spent quite a bit of time doing some exploratory prototyping and had a fairly solid feel for what was needed to support existing WP installs, existing MU installs and allow WP installs to be converted to the equivalent of a MU install. My estimate for getting a functional but rudimentary merge completed was 1-2 weeks. We landed somewhere in the range of 11-12 days. I was kept on the WP commit team until a few days before WP 3.0 was released in June.

Working on the merge & WordPress was a huge amount of fun. Nearly all the development work I’ve done over the last 20+ years has been working alone. One of the things I really enjoy about the WordPress community is that there are many opportunities for collaboration. The core platform is collaboration in a major way and, in addition to the success of WordPress 3.0 dev cycle, I got to know quite a few of the people who contribute to WP core.

The main challenges I had while working on WordPress 3.0 were the time commitment, IRC & trac. Time commitment I’ll discuss later. I didn’t really know what IRC was until I started using it in January. Essentially, it is a dedicated group chat channel. When we had dialup Internet and a single phone line, Andrea & I sometimes used gchat (or yahoo messenger before gchat existed) to communicate while she was connected (because I couldn’t call her). But I’ve hardly used chat programs out side of that. Ironically, building a TCP based group chat server and client was part of the curriculum in one of the programming courses I taught.

Getting a 45 year old brain used to having something like IRC running all the time is a real challenge. Even after more than 5 months, I only connected up to the IRC channel for part of the day. Most weekends I checked the IRC logs a few times a day to see if there was urgent that I needed to address.

WordPress trac is the site where people report and discuss bug reports and enhancement requests. Every one who has a wordpress.org username also has access to create or comment on trac tickets. Keeping up with all the trac activity requires several hours a day. The folks who do keep up with trac on an ongoing basis gained a whole new level of respect from me within a couple days of starting on the merge. It requires more than a little dedication.

StudioPress

Andrea & I have partnered with Copyblogger Media and StudioPress to provide BuddyPress support for the Genesis Theme Framework and most of the official StudioPress child themes. Our first iteration of BuddyPress support for Genesis and Genesis child themes consisted of a Genesis child theme that supported a psuedo-grandchild theme. The biggest issue with supporting the BuddyPress theme components this way was that it involved an integration process. The integration process had to be repeated with each update to our child theme.

In mid August after I had had a chance to catch my breath from working on WordPress 3.0, I looked at the possibility of converting our child theme to a plugin. By the tail end of summer I had most of the functionality ported over to a plugin and we began a beta. While it was in beta, I continued development and by the end of September all of the functionality had been ported over. BuddyPress 1.2.6 required updating the theme support, so our beta was extended until about a month ago when we officially launched.

Ron & Andrea

2010 was our second full year as a WordPress based business. In our first year and a half we had learned quite a bit about what it was we liked to do, the work we didn’t enjoy and the type work we should avoid. Our goal last year was to re-orient our business toward those things we enjoyed more and gave us better revenue stability.

Two of the critical things on the list were to switch from a WordPress MU focused business to one focused on WordPress and shifting the type of work we did so that less of our revenue was dependent on me. Although we had quite a bit of work to do once WordPress 3.0 was released, the time I invested in core development definitely addressed the shift from MU to WP.

In 2009, about 90% of our revenue came from development projects. Nearly all the development work fell to me. In several projects Andrea handled all of the implementation but her work schedule for that was dependent on when I had the development work done so she could implement. A year later, we are somewhere in the range of about a 50/50 split between project revenue and educational & commercial revenue.

2010 was the year where we wanted to arrive at a final decision as to whether we would continue with the WP based business or I would go back to doing corporate project management. Over the last few months business has stabilized to the point where we are comfortable that we will be able to sustain a reasonable revenue long term. So, we are definitely going to continue working within the WP community.

However, we are not in the place where we could sustain me making the kind of time commitment to the WordPress project that was required while I was a core committer for WP 3.0 (which was well over 50% of my time). Between Andrea & I we are planning on contributing 25% of our combined time to WP core, BP core, forum support & free plugins and themes. We are fairly comfortable that that level is sustainable long term.

This fall we discussed the pros and cons of incorporating a business and have decided that is the route we will be taking over the next 2-3 months. We have already decided on the business name and had initial discussions with our lawyer. So, hopefully we will have something to announce on that soon.

Summary

In 2010 we were extremely busy & sometimes fairly stressed. Other than Christmas, the only breaks I took from work were WordCamps which I really enjoy. Even though they are still focused on WordPress, WordCamps are a really good break for both of us. In September, we lost the engine in our 10 year old car. I had really been hoping the car would make it to at least next summer. Replacing it set us back quite a bit on our financial goals for the year. However, overall, we had good progress on those goals and we are really looking forward to our plans for 2011.

22 years and counting

Today, Andrea & I celebrate the 22nd anniversary of officially meeting. Technically, we had had a few conversations before that. But those were the “Is this seat taken?” type conversations. It was at the college Christmas party for the program we were both attending. I was in second year and she was in first. Witty repartee ensued & it was pretty much a done deal from the get go.

Of those 22 years, I’ve spent about half my career working from home. A little over 2 1/2 years ago, we decided that we would have a go at doing WordPress consulting & services full time at home. It took about five months to get things sorted and shifted from a full time corporate income to a more volatile freelancing income.

We set out on this part of our adventure with the goal of being captains of our own ship at least until I was ready to retire from information technology based work. During the 5 1/2 months I was working on the merge of WordPress and WordPress MU, Andrea & I a good chance to assess our experience over the previous year and draw some conclusions & plans from that experience.

Once WordPress 3.0 was released and my commitment to WordPress core was over, we dug in full steam toward developing a stable revenue base doing the things we both enjoy doing the most. While we haven’t quite reached the level of income I had as a corporate lead developer, we are getting into that range and can see it on the horizon.

Our goal from 2 1/2 years ago is still our goal now. I’m looking forward to another great year with Andrea who is a great partner both in business and in life :)

New York, New York

On Friday morning, Andrea & I will be driving to Bangor, Maine to get on a plane bound for NYC. We will both be speaking at WordCamp NYC (WCNYC) on Saturday morning. (If you click through the link you’ll see our sessions are listed under the BuddyPress/MU track.) Most of our blogs and Homeschool Journal run on WordPress MU.

This will be our first overnight trip away together from all the children in about six years and it’s only the second time in 10 years. While it is technically a business trip we will get to have some time together.

Planning for WordCamps usually start a few months in advance. If I remember correctly, in the early planning, WCNYC was expecting 200-300 attendees. The registered list topped 500 over the weekend and is 530+ now. Many of the people attending are people that we know online. So, we are both excited to have the chance to get to meet them. It’s a bonus that no one will look at us strange when talk extensively about techy stuff :D

We each have 3 sessions/presentations to prepare for. It is going to be a busy week for us, but a good busy.

Skipped a month

For the last long while I had been posting once or twice a month. On checking the date of my last post, I see it’s been almost 2 months. Today was Meaghan’s birthday and she turned 17. Wow, it’s been an amazing 17 years :)

Today is also the start of National Blog Writing Month. A note of thanks to the blogs I read that mentioned it. I won’t promise to write every day because I know that won’t happen. I will try to write though.

Most of our business revenue comes from or through the US and US currency. In March we were averaging about 25% exchange ($100US = $125CDN). The average over the last 6 months has been somewhere in the range of 5-7%. For most of our projects we’ve been quoting 2-3 months in advance which meant that we had a 3 month period with a 15-20% shortfall in revenue.

The only recourse was to take on more work. Other things had to be put on the back burner and this blog was one of them. I do have lots of things to talk about and I’ll see if I can cover some of that in small chunks over the next month.

Facebook review

I’m currently working on a couple projects that involve connecting the site we are working on with Facebook (FB). Even though we have looked at FB over one of the girls’ shoulders, neither Andrea nor I had signed up.

For the most part it seems FB has taken functionality that exists elsewhere on the Internet and bundled that functionality together into a single site. On FB, you can share pictures like flickr or photobucket, you can post & comment like a blog and you can have friends and privacy filters like LiveJournal based sites.

As far as the privacy and filters part of it goes, if you put it on the Internet, it isn’t private. If it’s a picture it gets downloaded to every computer that shows it in a browser. So, I would not put anything on FB that I would not put either on my blog or flickr. If I wanted to say something to you privately, I’d send you an email or call you on the phone.

Now for the review:

I did sign up earlier this week so that I would have an account to test with. The signup went around in circles and kept coming back to the same screens until I clicked skip on all of them. Poking around my profile after I signed up, I found that it had collected all of the info I had provided. So, I had to delete all of the duplicate information. Strictly from a programmer’s perspective, a site reputed to have in excess of 100 million users ought to be able to get a simple signup process in place that works.

By about a day after I had signed up, I had received somewhere in the range of 30 to 50 email from FB. After the second batch of them showed up, I created a mail filter to dump the FB email into a folder so that it didn’t take over my inbox. When I had a few minutes, I went back and poked around some more to see if there was someplace where I could turn notices off. I was blown away to see that there were two screens worth of types of notices that FB sends. If you haven’t guessed already, I turned them all off.

The other annoyance I found with FB is the ads. Not that FB has ads, but the type of ads that I get. When I first noticed that I was getting dating site ads, I went through my profile to see where I could change the setting to say I was married (I did learn something about FB looking over the girls’ shoulders). Despite the fact that I’ve indicated I’m married, nearly every page view has at least one singles and/or dating site ad. Folks, it isn’t that hard to add a little logic to show people ads that reflect what they’ve told you about themselves.

The one positive note I have on the experience is that I did get to catch up with some folks that I haven’t seen in a few years.

A bit on the technology:

I haven’t used FB on dialup, but I expect that once you were actually in the site, it would work fairly well for you and be reasonably responsive. In fact, I suspect that they have put a fair amount of effort into making it so that it does work decently on dialup since a fair chunk of the world’s population doesn’t have ultra high speed connections.

One of the methods typically used to make sites more dynamic is called AJAX. The way AJAX increases the dynamic/interactive nature of a site is to send requests to the server and bring back small portions of updates to the screen that you are currently using. As long as it is done carefully, AJAX gets the most bang for the buck over dialup. The reason for that is that the main limiting factor in dialup is the volume of data. So, for small blocks of data, dialup is not that much slower than your typical high speed internet connection.

The place where AJAX kind of sucks is over satellite (which is what we have). Communicating over satellite involves a delay (called latency). The way that satellite technology compensates for that delay is by delivering data in large volume which works with most applications. If AJAX breaks updates to the page into several low volume requests, updating the page takes roughly the number of requests time longer to update than if you just requested a whole new page. Although I haven’t investigated to verify it, based on how painfully slow it is when using it, I suspect FB uses a lot of AJAX calls. So, FB isn’t going to get on my frequent use list.