What if we just give the bikes away?

Recyclistas is a bike shop that takes donated bikes and salvages them into cheap commuters. It’s located at the junction of three major cycling routes and has an open-plan workshop where people come for classes and shop time. It was originally instituted as a co-op, but as many of the founding members have dropped away, it’s now simply a bike shop with a recycling focus. However, this past winter the techs have been very busy, and have almost filled a huge steel box with bikes in preparation for the upcoming summer. This is big, because last year in September we were down to about 11 bikes and couldn’t keep up with the demand. This year we will meet demand and maybe even increase it.What if we just gave the bikes away?

A start: get a grant for $1000, enough for 4 bikes. Advertise that if you need a bike to get around and you can’t afford one, you can have one with a catch. You have to take a maintenance course after getting the bike. We take down their number and bug them about it. Get them to sign up. The maintenance course is free as well. We have a non-profit, the Bike Lab Society, that could be used to get grants.

It’s important to note that currently, our maintenance courses are packed every session, 3 times a week, even in the dead of winter.

If it works, repeat.

What could happen?

  1. They go about their lives, waste the bike, we never hear from them or make a dime. 
  2. They treat the bike well, appreciate it, it makes them healthier and wealthier so they come back for parts, a new bike when they outgrow the first one, shop time… 
  3. They tell their friends to come. Not much use if the friends just take another bike and don’t give us any money. But good if they like what we’re doing and buy something while they’re in. 
  4. We get government grants to cover everything. 
  5. We get away with paying basically no taxes at all and save a bit of cash that way.
  6. We increase our focus on classes and shop time, instead of on sales, double/triple the number of class hours and hire more teachers.

I’m betting kind of a lot that people will save (bus/car) money by riding a bike, therefore spend it on us. Maybe I’m wrong.The long range vision is for EVERYONE in Victoria to be riding bikes. Fill the city up so completely with bikers that they take over the roads from cars. Everyone saves money, our customer base expands. Our customers aren’t the spandex roadies, just commuters. Hundreds of them use the path everyday, rain or not. The crowd I see is distinctly upperclass – MEC rain gear, De Vinci hybrids, 9-5. Poor folks ought to be riding as well. They are, but they don’t seem as visible (maybe it’s just that I’m on the path at 8:30 and 5pm, show me data). I personally believe that hard work and a bicycle can turn a poor person into a rich one. But anyway, there are usually more poor people than rich ones, so it’s usually possible to make money by making their lives better, if you don’t mind a low profit margin. We currently are not the cheapest shop in town for repairs or parts, it’s just that we happen to have a lot of generic and used stuff so if you’re smart you can do well. I don’t think it’s a good idea to undercut the cost of bicycle repairs in Vic, because that could hurt other shops. We could instead include a really good warranty with each bike we sell, which will justify the used-ness of them.

This idea comes from Paul Graham’s essay Be Good. He has noticed that a lot of successful startups’ business plans resemble charities when they start out. Free webmail without spam (gmail), free classified ads (craigslist), like that. So they’ve got this big user base, traction, authority, good engineers and a loud voice, that they can use as they will. Revenue becomes a downhill battle, with stability being the bigger prize.

There are some factors that aren’t fully formed and there are some parts that aren’t quite correct, but please don’t waste your time and mine by saying it’s a dumb idea. Put more thought into your criticism. It has to look dumb from here or someone would have done it already, but I have faith that there’s a good idea in it.

Has anyone heard of something like this? I know there’s a way to make it work without undercutting the core philosophy of it, which is 1) do no harm 2) do only good 3) make money. How can it work?

What exactly is a polo bike, anyway?

… as young men often ask me, as they struggle to maintain interest while I spin off on a bike related tangent.

Well, I’ll tell you. A polo bike is a rough looking, scratched up, bomb proof, 90’s style rigid mountain bike with a few modifications that make it easier to beat around on a basketball court while trying to smack an orange hockey ball with a mallet made out of ABS pipe and a ski pole.

Jackie Kanyuck recently let me have her old one, and it is seriously the bomb. Just gonna take a sec to brag here, but I used to score maybe once in three games if I was lucky. These days I’m scoring usually once or twice in every game, and doing a much better job of preventing Ryan, Ryan and Greg from scoring on me.

And I’ll show it to you.

Drive side
Drive side

Non drive side
Non drive side

We’ll go through this bit by bit. The frame is a Surly 1×1, a modern design, but a throwback to the old 90’s mountain bikes, you know the ones with the absurdly long stems and the gently curved forks, as ridden by nerds like this.

Fork

First, notice the fork and headtube. See how straight that line is? So straight. That’s so you can turn in tiny, tiny circles at very low speeds. Kona forks in particular are well known for being relatively common as salvage (i.e., cheap), but also tough and decent quality. And straight as straight can be. Queer people are welcome, but queer forks are not. We call that “zero offset fork” and “no rake”.

The wheel covers are to prevent balls and mallets from getting stuck in your spokes, and preventing damage to the spokes. Balls make a very satisfying *smack* as they bounce off the corrugated plastic. I am always surprised when I see people playing without them – they’re essential, in my opinion.

4 item(s)

Brakes are the most important polo mod. You have to brake with your non-dominant hand so you can swing with the other. These days all the big deals in polo seem to be using either dual brakes or just a front brake. In the past I just had a single rear, rim brake, with the lever moved to the left side of the bars. Back brakes give you less stopping power, but you’re also less likely to flip yourself over, as our man Greg does frequently.

But, Jackie had some awesome BB7 disc brakes on the Surly, and who am I to argue? They are amazing. It’s my first experience with disc brakes and I can confirm that they stop me on a dime regardless of how wet they get.

Jackie also hacked up this dual brake lever, for double the stopping power. It helps with the flipping-over problem.

3 item(s)

For the drive train, we want a nice loooow gear ratio, for quick accelerating. 32-22 is perfect, anyone who says otherwise is lying and wrong. In the past I used a cassette cog from some Shimano 10 speed sprocket, which worked okay, except for how it skipped all the time. This bike came with roughly the same deal. First thing I did upon receiving it was replace the entire drive train. The chain and front chain ring were direct replacements, but I put this beautiful Surly single-speed cog on instead of the cassette mess. As long as I replace the chain often enough, it should never skip again.

SeatNot much to say about the seat; it’s cheap and comfy. The seatpost is more interesting. It’s like, the longest seatpost ever. With my old bike I needed the whole thing. This frame is a bit more reasonably sized. Fully half the seatpost is inside the frame. More stability? Sure.

Stickers

 

Stickers are important, obv, they add 5hp each.

2 item(s)

Pedal straps are perfect for attaching your mallet to the bike.

Tire with flashAnd finally, the shoes. See that yellow? That’s the inside of the tire. Jackie says she’s giving me a new one, but honestly, we ride old tires as long as they hold air. This is the one place where I’m a cheapskate. (Ha! I’m always a cheapskate! But especially on tires.)

Ultimately, the player is more important than the bike. But hey, I’m a bike nerd, I love this stuff. I could write an essay on each individual part. In fact I might do so. I also rode a cheap, old, flexy, badly-handling polo bike for quite a long time, and I got good on it. Now that I’m a good enough player to justify the decent bike, it makes a huge difference, and I feel that I’ve earned it. And I feel like a rockstar when I’m riding it, and that’s the most you can ask of any vehicle.

You can use recursion in real life!

They make you learn recursion during first-year intro to programming courses. Some people get fed up at that point and drop out to become car salesmen or Liberal Arts majors instead. Some people never quite get it, but bodge their way through another four years of school anyway. For those who do get it, there’s a neat “aha!” moment where the entire world suddenly makes perfect sense, and it feels like the future of your brilliant programming career, and all the wealth that goes with it, is spread out before you. “The function calls itself! Of course! That’s what they were saying all along!”

My pseudocode
My pseudocode

Then they pile another dumptruck of homework on you and you forget about it for a while. Because honestly, you don’t use recursion that often in everyday programming. It’s a neat trick, but very rarely the most efficient solution to a problem. It’s also very easy to write a recursive function that goes out of control and brings down your entire office’s network and causes your boss to come your desk and raise his eyebrows at you.

So this week when I found a legitimate excuse to use recursion at work, I was pretty excited.

The Goal

We have a mailing list about real estate. Real estate agents write down some stuff about a property listing, give the date of an open house, upload some pics, and pay 70 bucks for us to send the email to everyone who is subscribed to the list. If you want to buy real estate in Victoria, it comes in handy, I guess.

The only thing is, each email has to be approved by our secretary before it goes out. Also, since we don’t want to spam the mailing list, we have to space them out a little, so the system isn’t fully automated. Nevertheless, when a customer asks for an email to be sent out on Monday morning, they expect it to be done or get an explanation.

The secretary needs some time in the morning to approve the scheduled emails and request changes if needed, so the following rules exist for the datepicker:

  • If it’s a weekend, the date is unavailable.
  • If it’s a holiday, the date is unavailable.
  • Today is unavailable.
  • If it’s after 1pm, tomorrow is unavailable.
  • If it’s after 1pm and tomorrow is a holiday or a weekend, the first business day following the holiday or weekend is unavailable.

Stop here and code up your own solution according to the following spec.

Okay, you ready? I look forward to being made a fool of by all the people who came up with better solutions than mine. Nevertheless, here’s my answer, which took a full work day to hammer out but made me very happy.

First, I’ve got three helper functions: one returns weekend dates. One returns holiday dates. And one returns the day after a given date.

Here’s the code.

Solution

I only brought down our office network once in the writing of this class.

The function is called like this:

You pass nextAvail() the current timestamp. It checks whether that time falls on an unavailable day. If it does, the time is incremented by one day by calling $this->tomorrow($today); then nextAvail() is called again with the incremented timestamp.

And so on, until we find a day that works.

 

***Edit: Since this is somehow one of my highest ranking posts, I might as well plug my company: Radar Hill Web Design in Victoria, BC.