The Most Useful Thing

According to the Hitchhiker’s Guide to the Galaxy, a towel is “about the most massively useful thing an interstellar hitchhiker can have.” When was the last time you wished you had your towel with you?

I was sitting on the train reading. Suddenly, the woman sitting next to me said “Aw no! Aw no! Aw no!” Water was leaking from the backpack that was resting at her feet, forming a puddle on the floor. As she picked up the damp backpack and rifled through it I put my book away. I wished I had my towel with me.

She pulled a water bottle from her backpack. “It’s my mum. She put this in here.” She fumbled with the water bottle lid. “It’s my mum. It’s the wrong lid.”

I tried to be helpful. “Maybe you could put the it in one of these side pockets to keep it upright.”

She put down her bottle and grumbled as she rummaged through the rest of her bag. “At least my lunch isn’t wet.” She pulled a damp receipt from her bag. “Gah, that’s useless!”

She paused, as if taking a breath. “Maybe I’ll put it in one of the side pockets… Huh, it doesn’t fit there, I’ll have to carry the jolly thing!”

“Perhaps you could stand it up in the corner of the front pocket”, I offered.

“Nah, I’ve got other stuff in there.” She looked at the bottle lid. “Hmph, that’s the problem.”

“Is it the wrong lid?” I asked.

“Nah.”

I looked where she was pointing. “The lid’s broken?”

“Yeah.”

She muttered to herself until we came to her stop and she got off. I silently asked God to let the rest of her day run more smoothly.

Posted in midlength | Tagged , , , , , | Comments Off on The Most Useful Thing

Coming Soon in Trosnoth

I recently spent 14 hours hacking on Trosnoth with a friend, and I thought I’d give you a taster of two things that are coming in Trosnoth 1.7…

Neutral Zones

The rules are a-changin’. People have suggested variations of this over the past few years. Have a look at the minimap below.

How come there are neutral zones in the middle of the blue territory? That, my friends, is what became of red zones that were cut off from the main red territory. Playing the Runner is now more difficult to achieve, but the pay-offs are much greater!

Trosball

And in 1.7 we introduce a new game type. Witness the following screenshot.

Welcome to Trosball.

Why is this zone half owned by red team and half by blue team? All I’ll say is that’s not the mouse cursor that Hrodga is holding. Welcome to Trosball!

Posted in short | Tagged , | 1 Comment

A Whole New Language

I like to dream. Occasionally I dream about what the ideal programming language would look like. Yes, I know, writing a new programming language would involve all sorts of hurdles like convincing people to adopt it, building a community around it and building up a comprehensive set of libraries for it. But I still like to dream.

I’ve written before about making a language that departs from the model of traditional programming languages. Today I wanted to add my two recent thoughts on developing a new programming language.

  1. If a new programming language is designed to compile to standards-compliant JavaScript using a standardish module system like RequireJS or CommonJS, it will be able to (a) run on servers under Node.js as well as in people’s browsers; and (b) import third party libraries written in JavaScript or any other language that compiles to JavaScript.
  2. If a new programming language is to depart from the standard text-file-based disk layout, it seems to me that the most important tool it would need would be a three-way merge tool. This would allow it to integrate with your favourite revision control tool. It would also allow your editor to pick up and include changes made to a file by some external program (e.g. someone else editing the file, or your revision control tool updating it to a different version).

That is all for today.

Posted in short | Tagged , , , , , , , | Comments Off on A Whole New Language

Python in Your Browser

Over the past few weeks I’ve been playing around with some tools which compile Python code to JavaScript. If you’re writing a web app with a Python back-end, writing Python for the browser offers two things: (a) you no longer have to switch brainspace when moving between parts of your code base; and (b) you can share code between server and client. Yes, you could get the same advantages by using NodeJS server-side, but then you’d have to deal with all the idiosyncrasies of JavaScript

Here’s my quick review of three such tools:

  • pyjamas – a port of Google Web Toolkit to Python. The disadvantage is that in order to use GWT widgets you have to port them from Java to Python and this process is not 100% automatic.
  • skulpt – looks quite nice, but isn’t complete. The disadvantage is that it looks like a one-man project, and he may never have time to complete it.
  • pyjaco – also looks good, not yet complete, but getting there. This one seems to have a reasonably active community behind it.

The difference between pyjamas on the one hand and skulpt or pyjaco on the other is that if you choose pyjamas, you’re selecting an entire toolkit, whereas skulpt and pyjaco are geared much more towards writing code that takes the place of your normal JavaScript and works in with your existing framework.

Posted in short | Tagged , , , , , | 1 Comment

Don’t Beg the Question

Did you know: “begging the question” doesn’t mean what you* think it means.

* “You” applies to 90.1%** of living English-speaking people.

** This figure was plucked from the æther, so it must be true.

What Does It Mean?

Traditionally, if one’s argument begs the question, it assumes the initial point. That is, it’s a circular argument. I once heard that this term comes from “begetting the original question”. Examples of begging the question in this sense are:

I have chosen simplistic examples for clarity. Even if an argument is part of a much longer chain of reasoning, it begs the question if it assumes the very point that it sets out to prove.

In popular usage, to beg a question seems to mean to invite a question, as in “This latest political promise begs the question of where the government will get so much money.”

What If I Say It?

If you use the phrase “begs the question,” there are three distinct possibilities. Either:

  1. you have used it to mean “invites the question”, in which case you have used it incorrectly—those in the know (including you now!) will despise you for it;
  2. you have used it to mean “begets the original question”, in which case you will feel smug about yourself and 90.1%** of people won’t know what you’re talking about; or
  3. you have used it to mean something else entirely—congratulations, now you’re really in a class of your own!

I Dislike All Three Possibilities! What Should I Do?

In my opinion? Language is for communicating. If you mean “invites the question”, say “invites the question”. If you mean “begets the original question”, say “begets the original question”, or if you really want to feel smug, say “petitio principii”. At least that way your listeners will know that they don’t know what you’re talking about.

Posted in midlength | Tagged , , | 1 Comment