More Pun Theory

I have a hypothesis regarding the comparison of the ability of punning folk.

Amongst those who pun actively, everybody is able to produce bad puns to a similar level of ability. It becomes instinctive enough to search for puns that you can come up with poor (often self-referential) puns virtually on demand.

This means that if you are to compare two people by how bad their puns are, the only observable criterion is the point of equilibrium each person chooses between high frequency of jokes and having any friends. The people who seem to not say the bad puns are just restraining themselves more effectively.

Truly good puns do require some level of skill in my opinion. Unfortunately I don't think of them very often.

Function Plotting in Inkscape

Today I found myself needing to draw both a sine wave and a triangle wave accurately for a diagram in Inkscape. It turns out that all the required functionality is included, but you have to do a little work yourself. Here are my findings...

The tool is called Function Plotter and can be found under Effects | Render | Function Plotter...

Sine Wave

The sinusoid is easy to do.

Sine Wave Function Plotter configuration

  • Draw a rectangle with the rectangle tool, select it, then open the Function Plotter.
  • Check the "Multiply x-range by 2*pi" box so the end x-value represents how many periods you want.
  • Adjust the y values of the top and bottom of your rectangle---if your sine wave has a peak value of 1 and you want it to take up the whole box, use +/- 1 here.
  • Make sure that "use polar coordinates" is unchecked.
  • Choose enough sample points to get a good looking sine wave. It evaluates your function at various points and makes an interpolating path. In this case I got a reasonable looking sine-wave with only 8 samples.
  • Put "sin(x)" into the Function area and click Apply.

Your rectangle will turn into a sine wave, like this:

Sine WaveTriangle Wave

You can't make a triangle wave directly, but it can be built up from simpler functions.

Triangle Wave Function Plotter configuration

  • Draw a rectangle which will contain the triangle wave.
  • Set the end x-value to the total number of peaks you want.
  • Set the bottom y-value to 0.0 and the top y-value to 1.0.
  • Choose a large-ish number of samples. You'll probably want at least 25 per peak. This is necessary to get tight corners on your triangle wave because Inkscape tries to smooth out lines between your points.
  • Make sure that both the "multiply by 2*pi" and "use polar coordinates" options are unchecked.
  • Put "-2*fabs(fmod(x,1)-0.5)+1" into the Function area and click Apply.

Your rectangle will become a triangle wave like this one:

Triangle WaveConclusion

Inkscape's function plotter is very powerful for drawing paths conforming to shapes which you can define mathematically. The "Functions" tab in the Function Plotter gives a list of the available functions. Have a play with it.

Now I’m Cool Again

So I bought a new mobile phone. The few months I spent without one have been excellent. For the first time since I first got a phone back in 2004 my electronic communications have been entirely on my terms. It is satisfying to know that you can go about your business doing exactly what you want, knowing that your email inbox and IRC logs are happily collecting everybody's calls for your attention for you to peruse in your own time.

As nice as independence from pestering is, I'm fully aware that phones are useful things so I'm back on the bandwagon. I wrote some time ago (while my old phone was still working) about why I didn't want an Apple iPhone, back when they were the revolutionary new toy and the cool widget to get. The same reasons hold true today---it's expensive, the contracts expect fairly extensive use, the phone comes locked and needs jailbreaking to do interesting things, you can only install applications from their sanctioned App Store, you can only run one app at a time, and there's the pervading sense that for things to work smoothly you ought to be using other Apple products too.

I bought a Nokia E63. It is the new baby brother to the E71, coming in a thicker plastic case instead of metal and lacking a GPS. I bought it for $AU320 delivered from eBay and it's working a treat.

nokia-e63

Clearly it has a fairly small screen for modern so-called "smartphones", and with all those buttons it doesn't have a touch screen. If you're thinking that this makes it not very useful for web browsing, you'd be right.

I like it anyway, because these are the reasons I chose this model:

  • QWERTY keyboard! Hell yes! It was only a matter of time before I had an aneurysm from trying to write SMSes with a numeric keypad. The physical keys feel nice and have a nice response too.
  • Great battery life
  • Easy to buy it not locked to any phone company
  • Installs apps from anywhere by URL, and runs several at the same time
  • It's very happy to talk to my IMAPS mail server
  • Lots of free software available for Symbian S60, its operating system
  • Reasonable price
  • Favourable reviews on the 'net
  • Played with one belonging to a friend, who also thought it was pretty good

Things like playing MP3s, web browsing, taking pictures on the built-in camera or using GPS software are not features that interest me in a phone. It's a good thing too, because this phone is not exceptional for any of those.

The thing I'm happy about here is that I actually took the time to evaluate my own values and needs before buying one of these fancy new phones. I highly recommend doing that.

If you want to you can contact me by phone or SMS again. I still reserve the right to ignore it for indeterminate periods of time if I feel like it though.

Starcraft II, LANs and FOSS

By now it's common knowledge amongst Starcraft fans awaiting the release of Starcraft II that offline LAN support has been officially dropped from the game, citing warm fuzzy reasons like better-integrated community interaction or something which equally fails to hide the fact that they're worried about things like Hamachi and piracy at LANs causing them to lose revenue. Nobody's been fooled, and reports would suggest that they're trying to make a sucky idea suck at little as possible while still being a pain in the arse.

But is it that sucky an idea? It sure is for me. I think it sucks for a couple of reasons:

  • I play Starcraft at LANs where there is no Internet connection. Battle.net authentication of any sort is simply going to be impossible.
  • In principle, as a paying customer I am having my flexibility in how I want to play the game restricted because they're worried about the people who don't pay for the game. I consider that counter-productive and immoral.

The game is a long way out yet so I'm not going to make any definitive statements yet, but I'll probably buy the game anyway. Despite the fact that I don't like some of the things they're doing the game should still be of high quality and I'll pay for that and play it under the restrictions imposed.

I even suspect that these measures will be fairly effective in reducing piracy. Emulating an entire authenticated battle.net server and convincing the game to use it is like making a fake Steam server---it's not a small task and will take a lot of time and effort from the cracking community. Hacking direct LAN support into a game specifically designed not to have it will probably take even more effort.

Unfortunately my only way of protesting these measures is to not buy the game. Yet I think I will anyway. I'm damn sure that hundreds of thousands of others will too, particularly in countries where Internet is ubiquitous (including the Starcraft capital of the world, South Korea).

So Blizzard is not going to change a damn thing. They still get rich and they reassure their stakeholders that they're taking measures to prevent piracy. Those measures might even work, at the risk of pissing off some fraction of their userbase.

Blizzard wants to make a buck out of its games. They're making the game so they make the rules. If you don't like that you have a choice. You can either not buy the game, or you can buy it and implicitly accept what you're getting yourself into. By extension, if you do choose to buy the game you don't have the right to complain about restrictions you knew were going to be there.

If you want a game to support features not motivated by commercial interests you have to build one without commercial constraints. That means free and open source software. Do any of the existing RTS projects measure up to Starcraft II? Almost certainly not. In the FPS area some are up there with the commercial guys (Nexuiz and Urban Terror, for example).

If you want to be more constructive, find, contribute to or make some free games.

Just remember: actions speak louder than words. A vocal minority is just that. Vocal.

On Doing It Wrong

I'm not one to give up on a bad idea if I think I have half a chance of making it work for a while. So it was that today I fixed my dipole with a new questionable strain relief design (click for larger version):

Dipole Strain-Relief for the Construction-Challenged

Yes indeedy. So far it hasn't broken. Reception on 80m isn't awesome but that's probably because it's more of a 10m or 20m dipole and that it's still not all that high. It may come down when it rains or when the wind blows around the branch to which it's attached. Not shown in the above diagram is the 10 loops of coax which form the air-core balun.

Sometime I'll make one properly. Honest. But for the meantime, I'm on HF again! \o/

RD Weekend 2009

A few hours ago I finished the Remembrance Day Contest for this year, working in the VHF phone section. Not that I knew that I would be until yesterday.

It started with a beautiful Saturday. The weather in Hobart was nicer than it has been for months and refusing to stay inside, I went outside to play with antennas. I wasn't certain about the health of my HF dipole, which is constructed largely from a broomstick and gaffer tape, so I took it down for a little TLC.

Some conductivity checks showed that there were still good connections to both of the legs of about 12 metres of 12 gauge, and a short hadn't developed either. Excellent. I put it back up, running the wire into a tree on one side and over some balcony on the other so that it was a bit higher than before. Unfortunately it was running against some metal structure, but when I fired it up it tuned up fine with the tuner and I was receiving VK2, VK3 and VK4 stations fine.

It was about 2PM by now, and listening to the lighthouse stations on 40m I heard mention of the RD Contest. I panicked briefly and checked the date---oops, it was starting in a few hours. I still hadn't learned CW as I'd hoped I would by this point, but I continued to monitor HF until I had the disconcerting experience of the noise floor dropping by about 20dB suddenly.

I wandered outside and sure enough the tree-tied half of my antenna had become well-grounded. By, er, falling onto the ground.

You're doing it wrong.

Oops. Something to work on when the weather improves. I plan to make a more solid mounting platform for both the dipole wires and the coax feed with some strain relief. Rather than, say, nails and tape.

I went on to participate in the contest using 2m and 70cm with my Yaesu VX-6R HT attached alternately to the 70cm yagi and 2m 5/8 vertical visible in the above picture.

Sadly it was fairly quiet on VHF this year. Overall I heard only 10 or so southern VK7 VHF stations, and through less than stellar effort I managed to make 54 contacts over the 24 hours. Those who pulled all nighters such as Danny VK7HDM and Justin VK7TW made approximately 160. With the low number of participating stations the spread of contacts was determined by how late you were willing to stay up and whether you had the hardware to manage all the different modes and bands. (I didn't hear about anyone doing CW, though I'd be willing to give it a shot with an appropriate rig.)

There may not have been many people, but it was fun all the same. I had some good chats with people I hadn't spoken to for a while between the not-so-frenzied number swapping. We agreed that we definitely need to get some F-calls in on the excitement for next year.

As for the commemorative side of the contest---remembering the radio operators who died serving in wartime---lest we forget.

Twitter And Politics Don’t Mix

Twitter received some major news coverage for its fanatical userbase following the recent Iran election. The tone of the media reports is more or less that of wonder. It seems to be a common theme to assume that social networking is completely useless, then make a news story about it when it is useful. Add to the mix the attempts of Iranians trying to inform the rest of the world against the Internet filtering put in place by the Government and there's a convenient David vs Goliath theme. How dramatic.

I think using Twitter to engage in political matters is a dumb idea. There's simply not enough scope in it for intelligent discussion. This evening I got caught in a little argument about free speech and gay rights. After about 4 maximum-size tweets back and forth we realised that we'd mostly missed each other's points. This is not an efficient way to do business.

If you have something intelligent to say about Iran or another political matter you're doing yourself a disservice by trying to express it on Twitter. Get yourself a blog or something---if you're really as interesting and intelligent as you think you are, people will read it and share it.

Political matters are complicated beasts and I believe that they are better served by a suitable length of prose so that your readers can under your context, your reasoning and your conclusions fully.

I suspect that a large proportion of the Twitter Iran enthusiasts would find themselves a lot less insightful than they thought about how to deal with the whole situation if they tried to string together a short piece of writing explaining what and why rather than sitting about all day retweeting URLs of things they found interesting.

You don't have to write to be a good thinker, but you do have to communicate your good thoughts effectively if they're going to be any use to anyone. Something more like a blog makes it easier for others to comment (again with a decent length of text) and get some intelligent debate happening.

Once we get some intelligent debate rather than token snippets of support for whichever side you like most, perhaps we can use the Internet to do some politics. And society will be better for it.

Gah, Fanboys

I would like to put an uncomfortable spotlight on those computer geeks who think that they're cool because they use some particular piece of software. I have some authority to talk about those kind of people because I've been one before, but I hope that I've since grown out of such trivial rubbish.

One common example of this in geek circles is LaTeX, the typesetting software distribution. There seems to be a gene in some people that gives them the warm fuzzies as soon as they find a cool piece of software which few others are using, especially if there's some slightly cryptic-looking syntax to prevent others from getting in on the action.

LaTeX is good, yes. It is not, however, a justification for the destruction of all word processors ever created and branding their users as people who work in dumb ways. Nor will it kill you to use a word processor if you have to, or if, heaven forbid, it's more convenient in a given situation. Your pathetic cries of inferiority only cause the attention you yearn for to be directed at somebody else.

Linux is a bigger example. If you like Linux, that's fine by me, whatever your reasons. I use it and love it too. But the moment you tell me that you cannot do your work on a Windows computer, it's not Windows' inferiority that's the problem. It's your inability to adjust, your lack of general technical expertise and your ego trying not to get crushed by the fact that your reputation for only using cool non-mainstream software will be sundered.

So what's acceptable here? I think it's pretty simple:

  • Don't associate yourself with your tools (conversely, don't judge others by their tools)
  • Use the right tool for the job!

We all like to poke fun at companies or their software which we don't like. I'm not complaining about that. A certain amount of banter and bitchiness is healthy and fun. But for goodness' sake, please don't get personal. It is the software which has strengths and weaknesses. Not you. What defines you as an effective computer person is being able to evaluate competing software products or technologies fairly and accurately, and being able to get the most of out each one.

Having done that you can use what you like, but don't come to me for help when you've hamstrung yourself with your own obsessions.

Signing My Way

If you receive an email from me the chances are good that it will have an attachment named signature.asc. This contains a PGP signature, which in combination with my public key can be used to verify that I wrote the email and that it hasn't been changed since I sent it on its way.

Why do I bother and why should you care?

Anyone can send email claiming to be anyone. It's fairly straightforward to write an email assuming somebody else's address and identity. If the recipient knows to only trust a message which has a cryptographic signature certifying that it is valid, fraudulent messages can be ignored or at least confirmed. This problem is reasonably widespread, more for sending spam from reputable-sounding email addresses in the cases that I've seen so far.

In addition, almost all email is sent in plain text. Anybody who runs any computers between you and the recipient of the email can read its entire contents if they want. If you're using a cryptographic system you can also encrypt your message so that only the exact people you want can read it.

It's reasonably obvious that this crytography business is quite a good idea, so why isn't it widely used by everyday internet users? Probably because it isn't yet widely used by everyday internet users. To get in on this, you need to generate a key of your own and run some extra software to do the cryptography for you.

  1. Generate a key. This will have two halves -- a public key and a private key. It will also have a password. You keep the private part and the password completely secret, but you need both of them to make it work.
  2. Publish the public key to the world. Give it to your friends. Upload it to a public keyserver. They can use this to send you encrypted mail or to verify your email signatures.
  3. Sign your friends' keys to indicate that you, the holder of your key, have decided that the person who owns the other key is who they say they are. Hopefully they'll do the same for you, and this builds the "web of trust" -- if you trust your friend's key, and they trust someone else's, you can probably trust it too. If ten of your friends trust another key you can be even more certain that it's trustworthy. (It's worth knowing that there are formal requirements set down for trusting someone's key -- don't sign a stranger's key!)

What you need is GnuPG, a free and open source PGP implementation. You can download it for Windows or for Mac. Installation on Linux is as normal with your package manager. Then you need some integration for your mail client. If you're using Thunderbird try Enigmail.

It's not that hard and it's probably the most trustworthy way of verifying communications on the 'net that we have. Let's solve this chicken-and-egg problem early so we have something to fall back on if and when identity theft, fraud and spam make the current situation untenable.

My key id: 0x6F3A5B84 <http://arctanx.id.au/tk-pub-key.txt> Please feel free to use it.

It’s All About The Keyboard

The reason I favour some console applications over their graphical equivalents is that they're designed to be easy to use with a keyboard. A little while ago I wrote about a day I spent trying to perform my usual online and music-listening tasks using console applications, just for fun. These days I spend my time in KDE4 and have my graphical web browser back so that I can keep up with xkcd. I'm still using cmus to play my music and irssi is going to remain my IRC client of choice for some time.

There are practical reasons why one might be restricted to console apps---connecting remotely with no X forwarding, or perhaps being on a romantic computing date with a hopelessly ancient terminal. There are also reasons why one might need a mouse. Graphics or audio editing, games, some website layouts and many other applications call for the more analogue-ish input of a mouse.

Where does this leave software in the middle? Mail clients, web browsers, chat clients, file/directory browsers, PIM and calendar software are all types of application which could feasibly have a keyboard or mouse-based interface. Increasingly, applications are adding features which specifically require you to use the mouse. I come up against this all the time but to pick an easy example (all platforms are guilty here), OS X Finder only lets you move files by dragging with the mouse. Cut and paste was evidently too complicated for their target audience.

I'm a keyboard nut, so having to reach for my three-buttoned friend annoys me when I know that a little more work in the software would allow me to do the same thing more quickly with a quick jump from the home keys.

In my opinion graphical applications should have good support for both keyboard and mouse. I today finally caught up with Vimperator which is an addon for Firefox to make virtually all browsing functionality available directly from the keyboard using vim-like syntax. Firefox provides a good opportunity to try out different interface types with its interface being so heavily customisable using Javascript. With Vimperator, Firefox behaves exactly how I would like. I can still use a mouse when needed, and I can also do things quickly from the keyboard when my hands are there.

It took a third-party effort to get this functionality in place. Sadly I doubt that many application developers are going to put this level of thought into the keyboard interface. It is worthwhile adding that a keyboard interface is required for proper accessibility for some physically-disabled users.

I like modern software. Really. Am I so backwards to prefer pressing buttons which remain stationary on my desk?