Hooks are a fascinating bit of Ruby magic. They are methods you can define with actions to run when something happens. You can put triggers in your code.

This blog post explains them very well; and for more information, get “Metaprogramming Ruby”, which is a great book – not only about the callbacks, but about a host of information.

 

On February 28th, 2010, I took the test to become a second-degree black belt.

Here is a summary of what I had to do, besides the calisthenics:

  • All my empty-hand forms, opposite side. There are eight of them. This meant that if the first step was with the left foot, I had to do it with the right foot. I suppose you could also call that ‘mirror’. The names are : seisan, seiuchin, naihanchi, wonsu, chinto, kusanku, sunsu, and sanchin. I admit we did not do sanchin opposite side, but that’s not too surprising. It’s not a complex form, but there’s nothing to be gained from being able to do it regular and opposite side.
  • My first weapon form, opposite side. This is a bo (long staff) form. The name is tokumine no kun.
  • My third weapon form. This is a bo form. The name is urashi bo (sometimes called urashi no kun).
  • My fourth weapon form. This is a sai form. the name is chatan yara no sai.
  • The fifth weapon form. Note that I said “The” and not “My” … Because I hadn’t learned it. I was told to stay with the group and keep up. I did. That is my proud moment. :) It is a tonfa form. The name is hamahiga no tonfa.
  • Self-defense, including bunkai (analysis) from the various empty-hand forms.
  • Knife defenses
  • Sparring. This was actually rather fun, about thirty people in line and we (everyone testing for nidan) fought them one after another.

It was tough, but it was mostly a mind exercise. I must admit not remembering any thoughts or feelings during the test; I heard the instructions and executed them, and waited for the next instructions.

I passed.

Phew.

Alright, let’s work towards the next steps.

 

I will readily admit that I don’t know all that much about Github or Git for that matter. I use them, they’re handy, and that’s where it stops. I read about a git feature called “smart HTTP”, which would allow to communicate both ways with git (push and pull) with HTTP or HTTPS. So, I asked Github about it – it would be nice for them to have this feature, because I currently can’t push to Github from work. Here’s how the exchange went.
(this first message is from memory, as I used the web interface, so I don’t have a copy of it)
Me:
Hi, I just read about this: http://progit.org/2010/03/04/smart-http.html and I would like to know when Github plans on implementing this, because it would be very useful.
_______
From: Tekkub (Support staff)
Subject: [Contact] Upgrading git to support smart HTTP ?

You do know that Scott (the guy who wrote Pro Git) works for us, right? We’re well
aware of smart http…
_______
I tried to make light of the condescending tone and sent the following reply:
Me:
Nope.. Had no idea.
So when will it be implemented? ;)
_______
From: Tekkub (Support staff)
Subject: [Contact] Upgrading git to support smart HTTP ?

It will be implemented when it is…
_______

That’s when I just gave up. I don’t know if whoever handles the messages is paid or not, but I’m pretty sure Github pays its employees by now. I’m using a free account, so they wouldn’t lose anything by me leaving them, and they do provide a great service.
Am I just being picky when I expect the support staff to be polite? I say this as someone who has worked as support staff for over three years: no. The support staff SHOULD, nay, MUST be polite. I don’t care how flat your company hierarchy is, I don’t care how young or forward-thinking the company is, and I especially don’t care if your target audience is Asperger’s syndrome-suffering programmers who laugh at Star Trek jokes and read slash fiction. You’re the support, you’re polite. Especially over a medium like text, where you can’t easily place a slap on the shoulder, a grin and a wink.

This has left a bad taste in my mouth.

 

Last night, after some kicking drills and sparring, sensei entrusted the adult class to me and told us to work on kusanku. The ‘adult class’ yesterday consisted of three sankyu.
I looked at the clock, rubbed my hands together and said “Alright everyone, we have twenty-five minutes’ worth of kusanku. Let me know if you have questions or doubts.”
When we had finished walking through it, I looked at the clock. I’d spent twenty minutes on the form, and they all looked happy. I don’t think I really stood still for more than a few seconds at a time during those twenty minutes.
It reminded me of the first time I led the adult class, and I spent twenty-five minutes on seisan kata. I distinctly remember that it did not go quite as smoothly. It is usually hard to convince ranks under shodan that seisan is a very important, subtle kata, full of knowledge to be examined ;-) It’s a realization they must come to by themselves.

My favorite moment of those twenty minutes (besides the part where they all had a big smile, at the end), was one of the signature kusanku moves (koza dachi, right hand shuto to the throat, left hand behind your head like in seiuchin). I knelt by each one, adjusted the position of their rear foot with my hands, then stood up and watched their faces light up as the lesson sank in – in the proper stance, the legs and hips are looser, and thus the hips can turn more and still be more comfortable!

I _like_ teaching.

 

There are a few gotchas:
1) If you have a SSD drive, you need to modprobe pata_sch to see it.
2) when using GRUB, install it on whatever drive the hard drive is, even if it’s /dev/sdc — and let your FSTAB use /dev/sda. Chances are that /dev/sda is your liveUSB.
3) In the kernel, in the I2C options, don’t let it pick automatically – instead, select the algorithm options in the menu that appears (I don’t know it off-hand, will edit this post later to add the important information). This will allow you to install the kernel driver for the poulsbo card (kmod-psb, I believe).

For the rest, so far, it seems that the howto on the Gentoo wiki is good. I installed e17 very painlessly.

Wireless was a bit trickier.
I needed to use gentoo-sources-2.6.33, which at the time of this writing was masked as ~x86. A big advantage though is that it has support for the Atom processor (and the proper driver for the broadcom card!).
Enable the “B43″ driver in the kernel.
Then, follow the instructions given here:

git clone http://git.bu3sch.de/git/b43-tools.git
cd b43-tools/fwcutter
make
cd ..

Use version 4.174.64.19 of Broadcom’s proprietary driver. (The tarball is mislabeled as “4.178.10.4″, but it is actually 4.174.64.19.)
Download and extract the firmware from this driver tarball (Gentoo’s installation directory for this is /lib/firmware):

export FIRMWARE_INSTALL_DIR=”/lib/firmware”
wget http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2
tar xjf broadcom-wl-4.178.10.4.tar.bz2
cd broadcom-wl-4.178.10.4/linux
sudo ../../fwcutter/b43-fwcutter -w “$FIRMWARE_INSTALL_DIR” wl_apsta.o

At the time of this writing, although the b43-firmware is available and promises to give us what we need, the b43-fwcutter tool is only at version 12, and not 13, so it can’t be used. This is why we need to use git to download the latest version and correctly build the firmware by hand.

© 2011 Seven steps Suffusion theme by Sayontan Sinha