Thursday, July 23, 2015

Inaccessible accessibility

A few years ago the City of Cape Town spent some money upgrading the area next to the Plumstead railway station. A new parking area, prettier paving, a raised pedestrian crossing.

Also, ramps up and down the sidewalk to get onto the crossing. In theory this is good, providing better access for the wheelchair-bound to the station. But then I noticed something:

Wheelchair ramp with a lamppost right in the middle of it.

Someone had planned the ramps, apparently without regard to where the lampposts were. And now we have a wheelchair ramp with a lamppost right in the middle of it. That money spent on the ramp seems wasted now. I wonder if anyone thought anything of it during the construction?

Friday, May 22, 2015

#HandsOffOurInternet: My response to the Draft Online Regulation Policy

I am submitting the text below as public comment on South Africa's Draft Online Regulation Policy. Read more at the Electronic Frontier Foundation's Deep Links blog and at the Right2Know Campaign's website.

This is the first time I am submitting comment to draft law. Normally I consider myself too unimportant and too uninvolved in lawmaking for my commenting on draft law to be a good use of my time. But this draft policy is simply so bad that I feel compelled to comment, lest the FPB underestimate how offensive this draft is, by even one person's response.

My stake in this matter is both as an occasional content creator, and as an ordinary South African who feels offended at the idea of a supposed constitutional democracy's government insisting on inserting itself into every transaction between consenting humans (adult or not), where it is not wanted. Wherever government impinges on my life, I have stress, and by impinging itself onto every instance of sharing a creative work, it maximizes the harm its regulative efforts do.

I cannot respond to every element of the draft which I find problematic. There is simply too much. In almost every sentence I find an offensively obstructionist, parochial and regressive provision. This is the year 2015, and the draft harks back to PW Botha's 1986 government. It too seemed to have the view that every publication which is not explicitly allowed, must be forbidden (or at least classified).

What I want the FPB to do instead (although cynically I cannot expect this to occur) would be to repeal its empowering laws and then disband itself. The few shreds of law that I would like to see remain can easily be absorbed into other ministries' laws - but as for the vast bulk of it, I wish it were simply gone.

The first thing the FPB should, in my opinion, do is to toss the Draft Online Regulation Policy in the metaphorical bin where it belongs, and start again. It might start again by amending the Film and Publications Act. Ideally by replacing 90%+ of its content with blank space. Any concerns of platform-neutrality are immediately addressed if the FPB had the commitment to democratic principles to give up on its (false) ideal of classifying every publication. Mandatory classification of publications is a Soviet bureaucrat's lifeblood, not the sort of stuff that a modern democracy is made of.

The FPB must choose. It must choose whether it wishes to be an embarrassment to South Africa, Africa, and humanity as a whole, or if it wants to be a respected entity in a respected democracy. Sticking to this draft policy is the former, and abandoning it and trying again is a step in the direction of the latter. It must choose between regulatory capture, and meaningful civil liberty.

Tuesday, July 15, 2014

A mallet made from wood pruned from backyard trees

A year or two or three ago, I pruned one of my Australian brush cherry trees, and had a few forearm-sized logs lying around. Recently I saw an episode of The Woodwrights Shop where Roy makes a mallet. It's a perfect match: the short piece of a random log becomes the head, and a slightly less short piece of cork oak (from a tree I planted in about 1987) becomes the handle.

Usually one wants longer, straight logs, but for a mallet, short pieces are good enough, so it doesn't matter if the logs aren't very straight.

The brush cherry is clearly a dense wood - one notices immediately that even a seasoned piece is rather heavy. Upon working it, it becomes clear that it's also quite hard. Mortising the hole took a lot of effort, especially lacking a mallet to drive the 1 inch chisel. (I simply used another random length of long I had lying around - again wood from the same tree that's the source of the mallet's head.)

I've left the handle slightly oversized, since it might not have finished doing all the shrinking it's ever going to do. Maybe in a year or 10 I'll bring it down to final size so that so much of it doesn't stand proud of the head:

The taper is quite visible on the handle, and when I make another mallet (a bigger one - this is just a baby) I might use a more acute angle. On the other hand, the rather strong taper makes it easy to knock down the mallet if I want to, yet is gentle enough that the mallet doesn't spontaneously disassemble in use:

This little mallet seems perfectly capable of doing its job. It's light enough to not be tiring to use, and the lightness permits better control than a more anvil-like model would. But I can foresee a need for a heavier, anvil-like mallet. Something to drive a 1 inch chisel to mortise some extra-hard wood. That would've come in handy while making this junior mallet.

Thursday, January 23, 2014

Biltong cabinet

A few days after Christmas I noticed silverside beef going for R50/kg at Pick n Pay, so I bought some, figuring that I'd make biltong out of it. Only one problem: I didn't have a biltong cabinet! What I do have is wood and tools with which to work it. So off to the garage I went and found two scraps that seemed just right to become the frame of my biltong cabinet-to-be. What became the top and bottom was an oak plank I bought for R10, and the side pillars came from a random piece of oak I think I found in my garage when I moved into my house. The random piece from the garage has come full circle; here I'm gluing it onto the cabinet top and bottom with some dowels for a better joint:

Gluing the biltong cabinet frame together

Gluing it up was a bit tricky at first, because the frame was so wobbly at first. But once the first pillar was glued and set, the others followed more easily. I use a loop of webbing tied loosely around the article I'm gluing, and then twist the loop with a stick to tighten it, finally locking the stick with another random piece of wood so the webbing doesn't untwist.

Because I was in a rush, I simply lined the inside of the frame with one contiguous piece of fabric. I want to redo the lining, and install a door in one of the side panels. The current access (through a hole sawn in the top, which also holds the ATX PSU fan) is very inconvenient. Also, the holes I drilled for installing the skewers from which the meat hangs are perpendicular to the pillar's face. Because the plan of the cabinet is not square, these skewer holes aren't collinear, which makes it difficult to impossible to install the loaded skewers into the cabinet. (I ended up poking holes through the fabric just to be able to install the skewers.)

Still, the cabinet does its job: it keeps insects out while allowing air movement past the drying meat, and despite several days of rain, my strips of silverside dried quite nicely. It took about a week for the meat to become recognizably biltong-ish.

A cross-eyed stereogram of the cabinet in operation
I ran the fan when I remembered to put the PV panel in the Sun; the panel is a bit too big for the little fan; its maximum-power output voltage is 15V (at 0.46A) while the fan only wants to draw 0.2A at 12V, to the fan gets overdriven somewhat. So far it has survived the abuse.

Monday, December 9, 2013


I'm out of runway. My freelancing stint never really took off the way it was supposed to. It's my failure: I simply didn't pursue work hard enough. So it's taken two and a half years to eat through my savings buffer that I was willing to sacrifice for this experiment, and now I'm at the end of the runway and the lift isn't there. Own damn fault.

Oh well, it was like a nice long holiday. I got a little certificate out of the inaugural 6.002x course that is now part of edX. I finally earned my amateur radio licence. Worked a lot on my gEDA fork. Wasted a bunch of time playing the mother of all Freeciv games with an eye to animating the replay of a minimap-like view. Spent a good bit of time with my niece over the 2011/2012 summer. Learned a lot about bitcoin, and refreshed my knowledge about cryptography in general in the process. Figured out how to take credit card payments for merchants through Payfast.

But it was too much fun and not enough work-work. Dull, boring, and frustrating work that yet pays the bills. The straw that breaks this camel's back is when I started noticing that Rocketseed (my ex employer and my anchor client over the duration of this freelancing experiment) started taking their time paying me. When Zanap was still in charge of accounts, I'd get my money within a few days of sending her the invoice. But the new regime was to pay me on the very last day of the month (or even missing that) even when my work for them was done, committed, and pushed by the first few days of the month.

I don't have the energy anymore, in this iteration of the experiment, to try and encourage more prompt payments. Besides, getting my invoices paid quicker only puts off the problem for a short while: my living expenses are slightly higher than what I'm earning. Unless a miracle happens and tomorrow my inbox is overflowing with people asking me to conjure up some C for them, I need to do the realistic thing and take the low-risk option now instead of doubling down on my bet like a gambler.

So I'm now on the job market. Let someone else figure out how to turn value into money, and just give me a regular payslip. What I've been doing hasn't been working, so it's time to try something else. At least for a while, so I can build a new runway and try again later.

Friday, December 6, 2013

Is bitcoin an ecological disaster in the making?

I've been thinking a lot about bitcoin mining lately, even considering building some mining equipment with Nasier. As exciting as it is, I have a new doubt over the enviro-ethical value of the bitcoin protocol as it exists today.

Right now, the total energy put into mining bitcoin is still small. The network hash rate is perhaps 7PH/s. If we take an average mining efficiency of 100MH/J (maybe generous, but I really only want an order-of-magnitude calculation here) then it means there must be 70MW dedicated to mining. It won't stay at just 70MW though.

The current block reward is 25BTC, or about 250000ZAR. Every 10 minutes in the long-term average.  That's the limit up to which mining costs can go before it becomes uneconomical - the point where miners decide to just switch off their machines. Right now capital costs are important, because average mining equipment efficiency is still increasing, which obsoletes current mining equipment in a matter of months. I don't think we can expect consistent increases in mining efficiency for much longer: Avalon's gen2 chips are made with a 55nm process, and I've seen talk of 28nm chips. Once we reach an efficiency wall, the only way to access a greater hash rate will be to consume more power.

Once we reach that point, there will be little incentive to replace older equipment with newer; the incentive for profitable miners will be simply to add more equipment to their operations. Capital costs then shrink as the economic lifetime of mining equipment increases to years instead of months, and electricity prices will become the dominant cost.

Domestic electricity costs no more than R2.50/kWh. 250kZAR per 10 minutes can fund the consumption of 100MWh every 10 minutes - that's 167kWh every second, or roughly half my monthly electricity consumption every second. In standard units, that's 600MW. Notice that this doesn't depend on average mining efficiency, but only on the block reward and on the price of electricity. Cheaper electricity only makes it worse!

Are you okay with that? I'm not sure if I am. Does the standard banking industry, whose death due to bitcoin we sometimes pine for, use that much? I doubt bitcoin would replace the banking industry's carbon footprint; it would rather add to it. Also, things get much, much worse if bitcoin rises to the $100000+ that some think is possible.

Block reward halves every 210000 blocks, or every 4 years. Next halving is in 2016. So we may see only two years of gigawatt-scale mining - if the price of electricity in bitcoin stays constant. What happens to the half of the exahash-scale mining network that would go offline due to being uncompetitive? Does it instantly turn into a 51% attack network, having to make ends meet by conspiring with double-spenders?

In the very long term, the block reward becomes insignificant or disappears completely. So I'm happy that bitcoin mining won't be an ecological travesty in eternity. But in the meantime, this looks like a serious problem to me.

Friday, October 4, 2013

Microwave steak

People react as if I'm proposing to put a baby in the microwave to keep it warm in the winter, when I speak of my microwave steak recipe. It really isn't a travesty; it works quite well in making a delicious steak ready to eat!

Here's what I don't like about conventional methods of steak preparation:

You end up with an incinerated outside, and a rare inside, and this gradient gets worse the thicker the steak is. The underlying problem with all fry-only methods is that they all involve heating the inside by transferring heat through the outside. This process inevitably results in an outside that is significantly more cooked than the inside. Some (but not all) cooking methods call for using lower heat. Maybe that works, but even if it does, I like my method better even if it's just for the way it hacks the laws of physics.

The crucial feature of microwave heating that my method exploits is that microwaves can penetrate the interior of the steak. If one were to simply nuke the steak for a minute or two, the steak would cook from the inside out, rather than from the outside in as when one fries it. Mixing the two methods gives me the ideal steak:

Medium rare throughout the whole thickness. Sometimes I've been lucky and there's been no perceptible gradient, other than having a very thin (<1mm) outer edge.

I've found these numbers to work well for me, assuming a single, modest steak (around 150g, just right for breakfast):

1. Heat a saucepan, using maximum heat on my "small" stove plate. Wait until the bottom reaches the Leidenfrost point. (Drip some water into the saucepan to see if it beads up without flash-boiling.)
2. Nuke the steak at 100% power for about 30 seconds. While it's nuking, wipe the bottom of the heated saucepan with an oiled piece of paper.
3. Fry each side for a minute - which is just about how long it takes for the steak to stop sticking to the saucepan.
4. Thick cuts may justify another 30 seconds on each side.

Update: It seems there are other people who use the same technique, although I should point out that "sear to seal the meat" is BS.