How to screw the auDA for fun and profit

Recently, the auDA (Australian Domain Administrator) updated their rules regarding the registration of names in *.au. Among them are some changes to the policies on domain monetisation.

But in the end, these rules don’t matter at all — because of the way that auDA policy works it is trivial to squat domains even when it violates auDA policy.

How it works is very simple — it is to do with the way the auDRP (Dispute Resolution Policy) is enacted.

In the policy, it requires the services of an independent arbitration panel. The complainant must pay a fee of 2000$ for a 1-member panel, or 4500$ for a 3-member panel. The complainant may ask for the domain license to be revoked, or transferred to them in the case that they are eligible. The worst that can happen for a defendant is that the domain is taken away from them.

As a result, a nefarious party may register large numbers of domain names hosting adverts on them (so as to satisfy that the use of the domain is “relevant”). They could use common types of businesses, or locations of businesses, things that people are likely to type into their web browser and add .com.au on the end of.

The extremely cunning will go a step further, scraping business names from sources like the Yellow and White Pages directories, or the Australian Business Register, and directly target businesses. There’s already people out there doing this with Adwords listings trying to target traffic from competitors.

They could then offer listings on the site or to buy the domain outright for several times the registration cost (say, 1000$ to have the domain transferred to the business), and it would be still cheaper than dealing with the auDRP, even though it is in clear violation of policies.

Basically, the auDRP is a huge joke when it comes to domain squatting of this nature. The only people who can afford to deal with it are big business (so registrations of micosoft.com.au or gogle.com.au will never be a problem), but small to medium businesses, often those that have a poor or non-existent internet presence get the short straw.

What’s more is some of these tactics are actively being exploited today. There exists a company who operates over 2,500 “business directory” sites using generic names, that are “Copyright 2011 example.com.au” who sell listings on these sites at 75$/yr — more than what it costs to register a .com.au domain for two years! This is being operated by Ollority Pty Ltd, who in turn seem to be owned by Online Marketing Group Pty Ltd, who are in turn owned by Fairfax (one of Australia’s largest media companies).

This kind of wholesale pollution of our country’s ccTLD needs to be stopped. Unfortunately there’s a lot of money in this industry, and I don’t think that those companies are going to go away quietly.

Google managed to establish themselves as a household name of the first place you go on the internet when looking for anything. They beat other search engines and directories by offering very good quality results in a lightweight, no-nonsense format that was accessible. They beat business directories like the Yellow Pages, who deliver printed directories every year to every person with a telephone line, who have been a household name for decades.

I have nothing against people starting up a business directory. You just shouldn’t resort to pollution of our country’s domain namespace in the process.

Posted in Rants | Comments Off

28-hour day experiments notes

I decided that I would experiment with a 28-hour day for a couple of weeks. Unfortunately it turned in to a week-and-a-half deal, as I had to fall off the wagon for some other commitments. I thought I’d write up some notes on it in case you decide to experiment with this yourself, because I couldn’t find a lot of literature on the subject (other than people theoretically positing things).

Basically the idea behind a 28-hour day is that instead of following a 24 hour circadian rhythm (16 hours awake, 8 hours sleep), you follow one that is 28 hours long (20 hours long, 8 hours asleep). This is inspired by the xkcd comic (which is always a bad idea to take things on it seriously)…

I made some adjustments to the plan, namely that my day is divided up into 18:40 of waking time, and 9:20 of sleep. This means that I ended up with the same amount of sleep as you would on a typical 16/8 24-hour cycle. I also shifted the days around slightly so that I would wake on Tuesdays at 00:20 (you can calculate the rest from there). The advantage is that it gave me some time on Monday mornings during business hours, at the cost of some loss of time on Friday afternoons in business hours.

The bonus for me, theoretically, is that I am always exhausted when going to bed. Which is great when you have sleeping problems.

The biggest problem you’d encounter with such a schedule is the rest of the world. I get around this by having a bit of flexibility in the hours of my employment (but not everyone has this). If you’ve got flextime, you can basically go nuts. Then if you’re living with anyone else, their schedules are a problem.

You also lose a day. Some people go crazy when they’ve realised a day has “gone missing”.

My eating habits were also a problem. I noticed I was a lot hungrier on this cycle. Typically I can get away with three meals a day with ease (sometimes two, by having a bigger dinner), but on this, I found I needed to eat four to five meals a day. This is because of the bigger energy demands of staying awake for longer.

My bowels caused trouble as well — they went absolutely haywire. I think if I stuck with the schedule for longer and setup artificial lighting in my room, I could trick them into working properly again. This could be diet related as well, YMMV.

I wrote a clock to help me monitor how my sleeping is supposed to be, and calculate it into something “normalised”. I also published the sources to this on github. I’ve got an updated version with a HTML5 canvas diagram in the works, I just haven’t finished it properly.

Posted in Life | Comments Off

Belated announcement: tollgate source released

Last weekend, tollgate’s source code was released. This is the project formerly known as portal2, which ran the captive portal system at StreetGeek and SAGAfest from January 2009 to September 2010. It’s a quota-managed captive portal system for Linux mainly aimed at LAN parties.

There’s a number of improvements in 2.8.4′s development branch already over 2.8.3:

  • Local sign-in and events management system.
  • Port forwarding system.
  • Migrating several systems over so they work with Django 1.2, and removing some older legacy code.
  • All the local authentication hacks have been eliminated.
  • Fixed XSS issue in captive landing page.

The code is released under the GNU Affero General Public License v3, and is available from my GitHub repository.

At some point in the future this’ll be pulled into a 2.8.4 release, after some further janitorial work is done. It’s been sitting around for a little while, may as well get it out there now. Eventually this will be migrated to become a part of the LanConnect project, with optional integration with it’s databases.

Posted in Coding, Projects | Comments Off

Vuzix Wrap 920 VGA on Linux

The Vuzix Wrap 920 are entry-level VR glasses. (Not to be confused with the 920VR, which has a USB interface that operates differently.)

There is a VGA adapter available for them, however I notice that the buttons on the controller and menus do not operate properly on Linux — after the first button press, the menu stops responding. This makes it impossible to select 3D mode or adjust any settings.

The controller works fine on Mac OSX and Windows in my tests, which left me scratching my head. It also works fine when you plug the VGA of a Linux box into it, and USB into another computer. I’ve also tried it with several other configurations, where I had a powered hub not connected to upstream USB, and plugging it into an iPhone USB wall charger, and still wouldn’t work.

Turns out, the controller presents in addition to a USB interface (1BAE:014B) for an internal sound card, a HID interface for the (optional) head tracking module. Linux doesn’t know how to handle it, so it presents it as a “hidraw” interface (typically /dev/hidraw0). You just need to read from the device, and suddenly it starts working! You can’t just ignore the device entirely (with a usbhid quirk or unloading the module), you must read from it otherwise events are blocked. This is probably due to a bug in the VGA adapter firmware, but was never found because Linux isn’t a supported platform.

This is simple to deal with. As root, run: dd if=/dev/hidraw0 of=/dev/null.

All the events will be read from the device, and simply discarded. If you watch it with hexdump, there’s some events that come up whenever you press a button on the controller. In the end, they don’t matter. I haven’t looked much in to it yet, but there’s probably a way that you could parse them, and possibly even reconfigure the device from software. This is needed regardless of whether you have the optional head-tracking sensors installed — I don’t have them.

I think that Mac OSX and Windows both do this in-kernel when it doesn’t know how to handle events, it’s probably just a quirk in how Linux handles these devices.

Posted in Toys | Comments Off

Side-by-side video in gst-launcher

This little snippit takes video from two V4L2 sources (like webcams), and displays them side by side. The script in question is setup for 320×240 MJPEG, tweak the numbers and you get different resolution from your video sources.

One important parameter if you’re adding more sources is border-alpha. This needs to be set to 0, so that the black border that is added around a video source is transparent so you can push it on top of another video frame.

This is handy if you have two webcams, you can use this to setup side-by-side stereo display to 3D glasses. Just make sure to point your cameras at the right angle, otherwise your convergence will be all messed up.

You need the gstreamer-tools package in order to use the script.

#!/bin/sh
gst-launch \
	v4l2src device=/dev/video1 ! "image/jpeg,width=320,height=240" ! jpegdec ! "video/x-raw-yuv" ! videobox right=-320 border-alpha=0 ! videomixer name=mix ! \
	ffmpegcolorspace ! xvimagesink \
	v4l2src device=/dev/video2 !  "image/jpeg,width=320,height=240" ! jpegdec ! "video/x-raw-yuv" ! videobox left=-320 ! mix.
Posted in Uncategorized | Comments Off