Skip to content

Calculating Downloads

I recently hit 70,000 downloads on Countdown Plugin, a small plugin I wrote for WordPress about five years ago. Actually, the timer is older than that. I’ve only been using WordPress since my freshman year of college (spring semester circa 2005), before that I had this crazy home brew content management system. Part of that system included the original source of Countdown Timer. When I made the move to WordPress, I forked the code and made it into a WordPress plugin. The basic and display of the timer has remained relatively similar, although the code has pretty much been rewritten.

Download stats with 10- and 40-day moving averages

I digress. Having 70,000 is a great accomplishment. However, it’s not a very telling metric. What I really want to know is how many people are using the plugin currently?

In order to get an idea of how many active users there are, I looked at two pieces of data:

  • Temporal downloads prior to my last release
  • Temporal downloads subsequent to my last release

The theory is that when a new update is released, an upgrade notice goes out to all users of the plugin. This is the cause of the massive spike in downloads. By eliminating the background noise downloads (i.e. people just trying it out), I can calculate the area under the curve and get a rough estimate of the number of users.

I fit a power regression line to the subsequent downloads with an R2 value of 0.83, which is a little lower than I would have liked, but still usable, described by the equation:615.16x^{-0.481}

The average downloads for the 24 days prior to the release were 81.375 downloads/day. Using WolframAlpha, I solved for the intersection of the two lines:
x = \frac{308915776 \cdot 26^{114/481}}{5405625 \cdot 5^{76/481} \cdot 93^{38/481}}\approx 67.0498

The bounds of my function are now 0 (the day that the plugin was released) and 67 (the day the plugin will again be at ~81 downloads). It’s just a mater of integrating the function and subtracting out the base downloads:

\left (\int_{0}^{67}615.16x^{-0.481}  \right ) - \left (81.375\cdot67  \right ) = 5056.675

5,000 seems to be about the base number of users at this point. It will be interesting to see how this number changes over time. Especially since I have the historical data and could analyze how long it takes downloads to return to normal.

5/11/2010: Here’s the data I used: downloads.csv

For the week of 2010-05-09 in Tweets

Powered by Twitter Tools

Passion: The Intersection of Communication and Intent

The PNC1 nominated Jason Santos as the next YMM2 Associate Pastor. Last Tuesday (a week ago yesterday), Session allowed the nominee to proceed for a vote. Session wanted to hold the vote last Sunday (i.e. three days ago) because UPC was already having a town meeting and it would be simple enough to vote on the position. However, the Book of Order states that the congregation must be given at least two weeks notice. Thus, May 16th was chosen as the date since that would be the first Sunday after the two week notice given from last Sunday.

It also happened to be the only weekend that Jason Santos could come back out to give a guest sermon (although he’s not required to give a sermon, nor is the sermon linked to the voting in any way, nor do prospective YMM Associate Youth Pastors typically give sermons to the congregation…voting is all that is required) within the next 6 weeks or so because of obligations he already had.

If Session had decided to postpone his visitation until after he calendar cleared, some of the staff would have already left (because they were leaving after the end of the school year) and it would be nice to have some interchange between the outgoing staff and Jason Santos.

So the decision was made to hold the vote on May 16th after the 11:30 am service, which would put voting at 12:45 pm, or so. On paper, this seems like a great plan. Except that The Edge3, of which I am a sponsor4, is going to be at camp. The Edge makes up roughly half the constituents of the YMM, the other half being The Rock (the middle school youth group).

This problem was first brought to my attention by my friend and fellow sponsor, Jesse, on Saturday on the way to a Mariners’ game. She briefly explain her disappointment in not being able to vote to me. I knew about the vote and I knew about the retreat, although I hadn’t connected the dots until now – the retreat started on May 14th, and that’s the day I had in my head. I called my local elder, who also happens to be my Mom, to see if she knew anything about this and to hear what her thoughts were (Mom happens to be very good in these regards). She pointed me in a couple directions and I continued to mull over what the best course of action was.

Later Saturday night, I also bounced the issue off my friend Tad, another great resource and future pastor (he’s starting seminary in the fall).

By Sunday evening, I decided to talk with our Senior Pastor, George Hinman. He was very patient in listening to my concerns and in pointing me to the appropriate people: Tim Snow and Juli Lorton.

I went to join my parents for dinner upstairs at church, and when I caught with them, they were already talking with Juli! How fantastic. I talked briefly with Juli who assured me that the point had been brought up and that a solution was in the works, possibly involving some sort of Skype or Justin.TV solution and a proxy vote of sorts where members who were on the retreat would be able to watch Santos’ sermon and then vote. I also told her what I thought to be a complete lack of communication from the PNC, Session, or YMM on this issue. I let her know that we had a Sponsor meeting on Monday (the next day) and perhaps she or someone else could attend to help explain what was actually going on, field questions, and report back to whomever needed to know.

I also talked with Jennie, the Interim YMM Associate Director, and mentioned to her that I thought it might good if Juli, Tim Snow, or someone else intimately involved with the process to be able to come to our Sponsor meeting, even for just a few minutes.

I emailed Juli later that night:

I believe that this would be a very good opportunity to address some of the people who have a very vested interest in what is going on, to be able to communicate what the scenario actually is (versus what the rumors are, and trust me there are still some rumors), and to be able to interact with the people, many of whom honestly have felt very left out of this important process.

As I’ve stated, and would like to reiterate, communication (and dialog) is key. Can we continue to keep in touch throughout this process?

My biggest frustration up to this point was that there was a HUGE disconnect between what the intent of the PNC/Session was and what they were communicating (or not communicating). The intent was along the lines of: We’ve found an amazing pastor! Let’s get this guy in and going! What was essentially communicated was: We don’t care about you as long as we get our guy.

Dave Hill, another elder (of the YMM, no less) and member of this PNC, was able to come to our sponsor meeting. He spent some time explaining the process and then turned the flow over to us. After a few beats of silence, I tried my best to gracefully lay out what my feelings were of the situation, the great work that the PNC had done so far (they’ve been at this for about a year now), and the seemingly utter failure in this last home stretch to reach out to some of the people who matter the most (i.e. the students, sponsors, and staff of The Edge).

Other people brought up some great points as well, including the fact that if you look at the demographics of the people who probably care the most (i.e. students, parents of students, sponsors, and staff), most of them trend toward going to the evening services, not the morning service. Dave held a belief that if people really cared about voting they would show up to the morning service, to which I paraphrased an interesting observation about organ donations:
From www.boingboing.net:

When organ donations are a check box on a form where you opt into it, the rates of opting in are 25-30%. There’s an asymmetry here. If you start where the default is to opt out, then the organ donor percentage is 85-90%. We’re not sure why, but it’s completely different. It’s opting in versus opting out; in-group out-group distinctions.

My point was this: yes, people do care about being able to vote. Will they care enough to change their schedules? Probably not as much as we’d want them to.

By this point, it seemed like the best option would be to hold a second vote after the 7pm service. The idea of having a remote broadcast and proxy vote seemed unviable and overly complex. The third idea of post postponing the vote until another week also seemed more like the first idea, but more complicated.

I asked Dave to keep us in the loop, wanting reemphasize that communication is key. We prayed and that was that.

As I write this, the official word is that a second vote is going to be held after the 7pm service:

Dear UPC Family,

As you know, our candidate for Pastor of Youth Mission & Ministry, Jason Santos, will preach at the 11:30 am and 7 pm services on May 16. The original plan to hold one congregational meeting after the 11:30 service to elect Jason would have left out UPC members–YMM staff, sponsors, and students–attending the Edge spring retreat that weekend. In order to welcome their participation, we are expanding the congregational meeting into two parts.

Apparently, this may not be the kosher solution. But I think it’s the best solution, and I think this is a great solution that works for everyone. I just wish it had started out this way.

I debated whether it was even worth posting this. I decided it was, because it’s a great example of how something that had great intentions had some poor execution. I want this to be an example of why communication is so important. I want this to be an example showing that if people have passion, things can change, but someone has to speak up. I want this to be an example of how we can do things better next time.

Finally, to be clear – since we’re talking about communication – this was never about whether I (or anyone else) thought Jason was a good candidate or not. From the cursory research I’ve done so far, I think Jason is an excellent candidate and when I vote, I will be voting to affirm him. This was about making sure that everyone had a chance to have their say in the matter, regardless of what their say was.

Pre-emptive snarky comment: If only wishes were horses.


  1. Pastor Nominating Committee ↩

  2. Youth Mission and Ministry ↩

  3. The high school youth group ↩

  4. basically a mentor/Bible Study Leader ↩

Art Show

Hey peoples! Remember that whole think about me working on my portfolio that ended with my Spring 2010 Portfolio Inductions? Well, it doesn’t actually end there. The entire point of updating my portfolio was so I could exhibit my latest photography, which is what I’m doing starting this Friday!

I have one 20″ x 30″ photo and one 20″ x 9″ photo, which looks something like this:

However, I’m going to make you show up to see which pictures I chose and how awesome they look! Consider this your official invitation:

From www.facebook.com:

Come to the Seattle Academy Arts Center (1100 12th Avenue) on May 7th for the first-ever Alumni Art Exhibit in conjunction with the annual current student Spring Art Show.

Open House-style, so drop in between dinner and going out for the night.

If you cannot make it that evening, you can still stop by the Arts Center during regular business hours through the month of May to see the alumni display in the Green Room.

Works by:
Nathan Bulmer ’00
Adrien Miller ’02
Andrew Ferguson ’04
Annie Brady ’99
Miriam Engel ’08
Nick DuPree ’08
…and more!

I’ll be there starting at 6pm, and will probably stay for at least an hour.

The First Two Years, Sort Of

Today marks, among other things, my two year company date at Boeing. I know what you’re thinking: It hasn’t even been a year since you graduated, how can you have two years at Boeing?

Behold, the power of the internship. I actually started at Boeing on May 26th, 2006 as a summer intern for the next three years. I started full time on August 14th, 2009. Anyway, my company start date is 5/5/2008, which makes today my two year anniversary.

I’m expecting my china plates in the mail any day now.

For the week of 2010-05-02 in Tweets

Powered by Twitter Tools

Race Results and Andrew Signs Up for a Sprint Triathlon

I ran my first ever race a month and a half ago, the St. Patrick’s Day Dash. Here’s me running the race:

Photo by Al Cruise. ©2010 FotoJack.com

My official stats are:
Bib number: 9885
Overall place: 2844 out of 7892
Division place (Males 22-25): 170 out of 267
Gender place: 1799 out of 3529
Time: 36:241
Pace: 9:35

Not to bad for my first go. I didn’t hit my target of 8 minute miles, but I think part of that was due to the vertical inclination of the race (which I created using this Path Profiler):

Ignore the 4.47 miles, that’s incorrect. It was closer to 3.7 miles.

I had one little rest towards the top of the climb, but other than that I felt really good about my time and I was amazingly consistent given the vertical nature of my climb. I’m pretty sure the path around Green Lake doesn’t vary in altitude by more than 10 feet. Also, my Nike+ needs to be calibrated again…it keeps over estimating my runs by about 20%, which I feel is ridiculous.

After my big race, I took a week off and then ran one day. Then took the next month off, mostly because I was lazy and didn’t have a reason to run (I don’t enjoy running for the sake of running).

I do like competition though, so I signed up for the Benaroya Research Institute Triathlon at Seafair Sprint Triathlon. Am I crazy?! Probably.

It’s a 0.5 miles swim, 12 mile bike ride, and 3.1 mile run. And it takes place on July 18th at 7am in the morning!

Source: http://www.seafair.com/events/triathlon/coursemap.asp

I’m not actually entirely sure how I’m going to train for this. I don’t even have a bicycle. I think the good news is that I can swim2.

My plan for now is to pick up running again, which I started yesterday with a run around the long loop of Green Lake, and then intermix bicycle and swim training. Lingering questions include:

  • Can I actually swim 0.5 miles in open water?
  • How do transitions works?
  • How long will this event take me? Early estimates are looking at close to two hours.

There are some training clinics I’m going to be going to, but I wonder if they will be enough for this endeavor. Anyway, expect future updates here. And if you’ve ever done something like this, I am now taking any and all suggestions.


  1. Average time: 40:48 ↩

  2. Back in the Day™ (circa 1995), I used to be on swim team. Most recently, I did a swim class in college, but that was four years ago (What?! How could that be four years ago?)  ↩

A Note On Internships

As the school year winds to a close, the summer intern season is getting ready to kick off. Having once been on that side of things as a college student and intern, it’s now a great experience to be on the other side of that fence, being a college graduate and helping to bring the future in. I feel very strongly about internships and about what makes a good intern.

I was talking to a student from the Colorado School of Mines the other day. He called me as part of the Digger Dial, which is a fundraising effort put on from Mines students to Mines Alumni. He’s a sophomore majoring in Geological Engineering. We got to talking about internships and if I thought there were valuable.

“Absolutely,” I told him.

Internships are not only a way to get experience, but to also help set up your career. In 2008, the National Association of Colleges and Employers found that 50 percent of graduating students had held internships, up from 17 percent in 1992.1 With 50% of students holding internships, you really can’t afford not to have such valuable experience.

And I think the earlier you can get an internship, the better of you’ll be. I started as an intern at Boeing after my sophomore year. I ended up interning for three summers (which is kind of unusual) before eventually being hired. But having that experience that early my college career was immensely helpful. It helped me understand what engineering really was (or wasn’t), it helped be understand why I was going to college, and it helped me make better decision while I was in college.

Here are my pointers for being an intern:

  • Apply early in your career. There’s no reason you can’t try and get an internship the summer after your freshman year. As a freshman, I talked with every company I was interested in apply to, even if they were only looking for juniors or higher. If you have what it takes to compete at that level, the company will find a way to get you hired as an intern.
  • Apply early in the year. Don’t wait until April to start apply to internships. They’re probably all gone. Start looking in October or November. January at the latest.
  • Be well rounded. Your education is worth less if you don’t know how to have a balanced life. What do you do for fun? Are you involved in the community? Are you consistent in your level of involvement? Do you take on projects outside of your curriculum and regular education that show your interest in the field? My sophomore year I worked on building up the Mines Internet Radio studio and web site. Amazingly, what I did there transfered quite well to my internship.
  • Have a good resume. There is no template for a perfect resume. Personally, I think my resume is pretty good; although it hasn’t been updated in a while. Here are some pointers: Keep it professional. Lead with your education and then experience. Don’t lie. One page only, please. Spell check. Date check. Fact check. And then spell check again.
  • Be yourself. If you think you’re hot shit, and you’re not hot shit. I will know.
  • Ask questions. We know you don’t know all the answers. We know you have questions. Just ask them! There really are no silly questions. And don’t feel like just because you took Circuits 2, Mechanics of Materials, or Fluid Dynamics that you should how things work. College will teach you some basics, work will teach you how to use those tools. Someone once told, “School is about learning how you learn.” That statement fundamentally changed how I looked at college.
  • Be aggressive. There are plenty of other people who want an internship. Trust me on this. You’re going to need to be a bit aggressive (ladies, I’m looking at you here) if you really want this internship. It’s a fine line to walk, but you’re going to have to walk it.

Finally, make sure you’re getting paid. Yes, some people will take exception to labor laws requiring interns to be paid. But since the law says you get paid, you should get paid. The New York Times recently ran an article in their business section, The Unpaid Intern, Legal or Not, stating that “some experts estimate that one-fourth to one-half are unpaid.”2

From www.nytimes.com:

“If you’re a for-profit employer or you want to pursue an internship with a for-profit employer, there aren’t going to be many circumstances where you can have an internship and not be paid and still be in compliance with the law,” said Nancy J. Leppink, the acting director of the department’s wage and hour division.

Ms. Leppink said many employers failed to pay even though their internships did not comply with the six federal legal criteria that must be satisfied for internships to be unpaid. Among those criteria are that the internship should be similar to the training given in a vocational school or academic institution, that the intern does not displace regular paid workers and that the employer “derives no immediate advantage” from the intern’s activities – in other words, it’s largely a benevolent contribution to the intern.


  1. Source: http://www.nytimes.com/2010/04/03/business/03intern.html ↩

  2. Source: http://www.nytimes.com/2010/04/03/business/03intern.html ↩

Spring 2010 Portfolio Inductions

Adding photos to my portfolio was a difficult process this time around. I think part of it was that I had such an enormous selection of photos to pick from. I think the other part is that I continue to become a better photographer and I need to raise the bar.

But I feel good about these additions and think they are very good representation of my photography.

Anyway, enjoy these new additions to my portfolio and look forward to two of them being on display in the near future!

[flickr]3440262035[/flickr]
[flickr]3440286349[/flickr]
[flickr]3472808200[/flickr]
[flickr]3529860729[/flickr]
[flickr]3529868487[/flickr]
[flickr]3922332718[/flickr]
[flickr]3921553087[/flickr]
[flickr]3611356720[/flickr]
[flickr]3641461398[/flickr]
[flickr]3719647733[/flickr]
[flickr]3741288314[/flickr]
[flickr]3741650330[/flickr]
[flickr]3746819765[/flickr]
[flickr]3760908219[/flickr]
[flickr]3761723690[/flickr]
[flickr]3786499097[/flickr]
[flickr]3792936051[/flickr]
[flickr]4176085444[/flickr]

Locations of Spring 2010 Portfolio Inductions