Go, Vala, and benchmarks

When posting benchmarks comparisons, it’s pretty important to ensure that you’re testing the same amount of work.  For example, if you’re comparing the ability to construct objects and index them, you should make sure that you’re generating the same indexes.  Similarly, when you’re comparing languages and are benchmarking the costs of things, you really should make sure that your programs are doing the same amount of work. For example, consider Serge Hulne’s posting to the Vala newsgroup, whereby he shows that Go is 2x slower than Vala.

Read More

VirWox is a rip-off

Say you want to buy some bitcoins.  It turns out that it’s a major pain in the ass, but one route is VirWox.  Here’s what you’re looking at when you go this route: Deposit money with PayPal.  VirWox takes EUR 0.35 + 3.4%Convert dollars to SLL.  VirWox takes 3.5%Convert SLL to BTC (bitcoins).  VirWox takes 3.5%Withdraw bitcoins.  VirWox takes 0.02 BTC (currently, about 40ยข) as a fee, and holds the transfer for 48 hours.It’s a lot like the old company towns: once you get your money in, they charge you for everything that you do with it.

Read More

Parallels between Aikido and Wing Chun

The seminar is going well, but is frustrating.  We spent the entire four hours yesterday looking at daan chi sao: fook sao, tan sao, and bon sao.  There are so many details in the smallest things! I want to preface this by saying that I make a lot of gross generalizations here.  These are nothing more than observations of an amateur. I’m continually struck by the similarities between Aikido and Wing Chun, even though they’re totally different.

Read More
|

Never trust your wife's martinis

Sure, they look ordinary martinis, but they’re mostly gin, and three times as large as a normal martini. I’ve always lived by the Dorothy Parker rule of thumb: I like to have a martini Two at the very most Three, I’m under the table; Four, I’m under the host. Do not trust this rule-of-thumb when your wife is mixing the martinis!

Read More
|

Kung Fu seminars

Sifu Dana Wong is back in town for a seminar at the MAF.  As I was digging around to find the link to Sifu Wong’s blog, I came across this photo from last year’s seminar: I’m really looking forward to this year’s seminar! Dana’s a pretty good author, by the way.  His blog is worth reading.

Read More
|

I'm a Slidy convert

HTML Slidy is a way of putting slide shows (presentations) on the web.  Think of it like OpenOffice Impress or MicroSoft PowerPoint, but more convenient and with less lock-in.  Your viewers only need a web browser to view the presentation, and everybody has a web browser.  Not everybody has MS PowerPoint.  Not everybody has OO Impress.  Furthermore, if you’re on a conference call, it’s much safer to use a web presentation than, say, NetMeeting, LiveMeeting, or whatever.

Read More
|

Erlang's limitations in module encapsulation

I was recently looking at mocking frameworks for Erlang, to facilitate unit testing.  Mocking is a mechanism for easily producing objects and functionality to limit the scope of your tests.  For example: -module(a). -export([a/1). a(X) ->     b(X) * X. b(X) ->     X * 5.Pretend that b/1 does something like go to a database, or connect to some other remote service, or read from a file… something that may either take a long time, or might not be available in a test environment.

Read More
|

The superiority of base-12

It should be evident that, all other factors being equal, base-12 is a superior number base for humans than base-10.  I won’t go into too many details why this is true; there are many resources that discuss these details in length, but it’s main strength is that it has more prime factors than base-10.  12 is divisible by 1,2,3,4 and 6; 10 is divisible only by 1,2, and 5.  As to it’s suitability over other systems, the next step up occurs at sexagesimal (base-60), which is divisible by 1,2,3,4,5 and 6, and that’s an inconveniently large set of base numbers for humans.

Read More
|

My shocking Erlang discovery

Sending messages to PIDs is really, really slow (comparatively). Consider the following code, containing two tests that do almost the same thing.  I say “almost” because there’s a small bug causing the totals to be off-by-one, but they’re performing the same amount of functional work.  One uses PID message passing to increment a value; the other uses lambda expressions. -module(test).-export([test/2]).-export([one/1, two/1]). test(F, N) ->    A = F(init),    {T,R} = timer:tc( lists,foldl, [ fun( _, Acc) -> F(Acc) end, A, lists:seq(1, N) ]),     F({stop,R}),    io:format(”\n~ps~n”,[T/1000000]).

Read More

I hate Yahoo!

It’s buggy and irritating (I’m talking about the Groups web site).  Joining is totally borked if you don’t already have a Yahoo! account, and the “tell the moderator why you want to join” has a 200-character limit on the message you send.  Only, the Yahoo! web devs are so stupid that they didn’t put a live character count on the text box, so it’s a guessing game to figure out if your text is short enough – or you have to manually count the letters yourself.

Read More
|