All posts tagged with Opinion

Response to "Homes to pay heavy price for internet from NBN"

In response to the article "Homes to pay heavy price for internet from NBN" in The Australian.

This article is absolutely full of rubbish.

Firstly, there's no need to rewire your house for the NBN - you can just string the cables next to the skirting board etc. - as many people do now for their phone lines.

Secondly, you may not need to put down ethernet cables at all - if you don't want to use all 100mbps right now, you can just use a wireless network, as you do now. You'll still get a massive speed improvement. The only scenario I can think of is in a multi storey house, you might want a wireless access point on the top floor with a 100mpbs connection to it - in that case, you'd only need one cable. And remember that 5 devices can onlyuse a maximum of 20mpbs each - so in that example, 2 wireless access points would allow you to max out your connection at 100mbps, with only 2 lengths of ethernet cable.

Thirdly, this article ignores advances in wireless technology - in 5 or 10 years from now, we might have wireless technology that's as fast or faster (in real world speeds) than 100mpbs - so you'll only need to plug the first access point into the wall, and no fitout of your house will be required.

Fourthly, say that you *do* want 100mbps in every corner of your house, and you don't want ethernet cables on the skirting boards. Fine, you'll have to pay for a fitout - but this is the biggest development in home communications tech in 50 years - i.e. how we transfer voice and data. This network will be around for the next 50 years; in the grand scheme of things, if you had to spend $4000 to fully wire a house, it's not that much over a 50 year span. Think about when people had to put in phone lines in the first place, so they could talk to each other - was the cost too expensive? Was it not worth it so that Barry in Sydney could talk to his mum Ruth in Adelaide?

Fifthly and lastly, all the talk about ferraris and commodores misses the point - this is the biggest speed increase we're likely to get for a long time - 100mbps might seem excessive now, but in 20, or 30 years, will it seem excessive then? Also, it's so shortsighted to only consider our current uses of the internet - who knows how we'll want to use it 20 years from now, and what data usage that will entail. 20 years ago, who could imagine what we use the internet for today? And even with only today's uses, we can run our foxtel over the net, and have video chats at the same time - no need for a foxtel satellite installation etc. - this will use up a fair bit of bandwidth, esp. if you watch 3 channels on 3 tvs in the same house. And what happens when extremely high definition TV comes in - how much bandwidth will that use?

So in summary, this article is terrible journalism - it scaremongers people into thinking they'll have to spend $4000 on their house, when they don't need to at all, and even if they do spend the $4000, this will be an investment for the next 50 years.

12:00 AM on Saturday, 21/08/2010

Moving to Linux

Recently I switched from OS X to Ubuntu Linux as my main OS; I wanted to share some tips for anyone else making the switch on what apps I am using.

I'm using Ubuntu Lucid Lynx 10.04, using Gnome (+ Compiz) as my display manager.

Applications

When picking applications to use, I generally tried to use the app that came with the OS (if any), and then if I had problems with it, looked for something else.

For web browsing, I use the dev channel of Google Chrome (and fall back to Firefox for a couple of extensions Rest Client and S3Fox); for e-mail, I've tried Evolution, the default client, but it doesn't work terribly well, so I just use GMail (if I want local access I'll probably switch to Thunderbird 3, which is a first-class app in Lucid Lynx).

For the terminal I use xfce4-terminal, because it's almost identical to gnome-terminal except that you can use Ctrl+C for terminating the current command as well as copying selected text; you can't do that with recent versions of gnome-terminal (all aboard the failtrain).

For my text editor (cf. TextMate), I'm using Geany, compiled off of svn and with all shipped plugins compiled; this adds the Tree Browser plugin, which is the closest thing to TextMate's project drawer (and which you don't get if you just download Geany off their site / install it with apt-get).

I'd like to point out how hard it was to find a GTK text editor with what I consider to be the most important parts of TextMate, the project drawer, and global autocomplete.

The GTK part is important, because I want a text editor that feels like all my other applications (I.e. Ctrl+C for copy and Ctrl+V for paste etc.) and I don't believe that any of the GUI vim/emacs packages really behave like proper GUI applications. I will try them out at some point though, so we'll see what happens then.

I tried Bluefish and jEdit, but they both had issues; from memory, I don't think Bluefish had autocomplete, and jEdit's text rendering was ugly, even with all the antialiasing etc. turned on.

I was astounded by the lack of linux text editors comparable to TextMate; I expected them to be a dime-a-dozen, but it seems the FOSS text editors need a bit of work before they will compare.

For music playing I use Rhythmbox, but with the Crossfading plugin activated; without this playback randomly fails. For video playing I use Gnome MPlayer; and sometimes the command-line mplayer application. I tried using the standard Totem player, but AFAIK it renders using XV, which my video card doesn't do very well at all (more on this in a future post).

I'm using wallpapoz to automatically change my desktop background once a minute; it works fairly well but it's a little tricky to use so here's how:

  • Right click on Default and click Add Wallpapers (Directory), then select your wallpapers directory; make sure you tick recursive.
  • Then once it's finished adding the wallpapers, click Preferences and tick "Pick wallpaper in random order", and choose the "Zoom" style; this will ensure wallpapers fill the full screen area (scaling) with out stretching them.
  • Then click "Save" in the main window, then "Restart" for the changes to take effect.

For reading manga I used to use Xee on the Mac (an excellent free application). On linux, I tried these apps:

All of them had issues of one sort or another which made me keep looking; finally I found what I wanted with Comix. I've patched it to do side-scrolling which works great with two-finger horizontal scrolling on my touchpad.

Using Acer Hardware

Those are the main application switches I've needed to make; I'll post some more information on my move soon, including hardware-specific information on using linux with an Acer Aspire 5470G.

12:00 AM on Wednesday, 02/06/2010

Of Butterflies and Bugs

At a fundamental level, the computer is a deterministic machine based entirely on pure logic – the machine does exactly what is asked of it by the software, no more, no less. In contrast, the human world consists of chaos. It is the software developer who must model the real world in the computer, an often difficult task.

Who among us has not been frustrated by a program that crashes and loses our work, is buggy and slow? Problems can occur on many levels throughout the complex process that is software development. In this series of articles I give a developer’s-eye-view of the sources of these everyday problems. This article introduces the gaps between the development environment and the end user’s environment; and between student experience and expectations on the professional developer.

There are two types of software: the application software you get on CD that you install on your computer (Microsoft Office), and the web applications you access through your web browser (e.g. Gmail, Facebook). The two types of software might seem quite similar at first – both run on your computer and operate in a similar manner – but from a software development perspective, they are different in a number of ways.

In application software, there are numerous ways for problems to occur, many of them outside the developer’s control:

• The environment that software is run in is a wildly diverse one; people use a massive variety of hardware and software configurations. Even if one application is well written, it can often be affected by other, badly written software. This is one of the reasons why Apple sells the Mac OS (Operating System) to only run on Apple hardware – since they control both the operating system and the hardware, they only have to make the OS work on one hardware platform, and develop the OS to be fully and perfectly compatible with that hardware (in theory at least).

• A program may have to support many operating systems (Windows, Mac OS X) and OS versions (Windows 2000, Windows XP, Windows Vista, OS X 10.3, 10.4, 10.5). Unless the software company devotes a lot of resources to testing the software on multiple OS versions, the program may receive little or no testing at all on anything but the most common OS and OS version (most probably Windows XP at this point in time). This compromises the detection of bugs including the potential consequences of changes in the operating system across versions.

The issues that web applications face, though fewer in number, can feel like solving riddles without all the clues. The primary issue web application developers face is that the developer has to support both new and older web browsers, such as Microsoft Internet Explorer 6. These older browsers, while impressive at their time of release and widely used, appear quite dated next to the current generation of browsers – including Mozilla Firefox, Apple’s Safari, and Opera. The older browsers have numerous bugs that have to be worked around; and because some of these bugs are still not widely known, it can take hours of frustration to fix them.

The act of programming in and of itself is fraught with problems that would seem ridiculous to an outsider; a simple example is that in nearly all programming languages, a simple typing error – such as writing a colon instead of a semicolon – will either stop your program from working entirely, or worse, your program will still work, but will only fail when a particular aspect of the application is tested – something that may take some time to discover.

The difficulty in programming is made even more challenging because the university education a software developer will receive can be lacking. According to Joel Spolsky, a noted technology blogger and author, many universities are ‘dumbing down’ their courses to increase the pass rate of students; thus the students receive insufficient levels of training. This carries through into the workplace, in that programmers who have graduated from these courses are put to work on complex systems for which their training is inadequate. This is through no real fault of their own, having completed their university course successfully. The fact remains, however, that they are working on things which they do not fully understand. In this environment, there is a high likelihood of introducing subtle bugs (in concurrent programming, for example) that may not show in development but only after the software is used by the masses.

The workplace itself can burden software development. Many organizations put programmers to work on old, patched-up systems with little or no documentation. Documentation is the description of how the program should behave and the details of any deviations from the norm in how it is implemented. One of my first jobs involved documenting code written by a previous employee prior to extending that software with code of my own. Soon after, the IT department was given instructions to stop writing documentation into code to speed things up. Despite not enjoying the task of documentation, I argued successfully against the removal of this step from the development process because I could see the longer term issues that would arise in an environment where staff turnover was on the rise.

Organisatons often place no emphasis on proper development and testing procedure, making the coder’s task all the more difficult. Programming is often rushed by management, most especially towards the release of an application. Programming is usually the last stage in a project, so delays in previous steps of a project can cause the time left for programming to be compressed. This adds stress to the people programming the application, increasing the likelihood of bugs.

Software applications and web applications are increasingly complex – the largest with millions of lines of code. This means that a developer can only be expert on a small part of the project. If the software is not designed well, this means that a developer might change something in one part of the application, and it can break other parts of the application.

All in all, programmers are set up for failure in numerous ways. In this context, it seems amazing that they can produce software that works the majority of the time. So the next time you get crash or a bug, spare a thought for the complexities of the process and observe the wonder of human endeavour that attempts to span the infinite diversity of humanity with an infrastructure built of zeroes and ones.

03:57 PM on Saturday, 22/08/2009

Internet Censorship: Australia Says No

My article below was featured in Slashdot on Dec 13, 2008 generating over 150 comments and mentioned in The Register.

A nationwide protest rally against the internet censorship filter proposed by the Australian Labor Government was held today. Over 9,000 people were slated to attend nationwide. I was fortunate enough to go to the rally on the steps of Parliament House in Adelaide, South Australia. I heard speeches from the Digital Liberty Coalition, the Green Left Weekly, and other concerned members of the public.

People NEED to pay attention and protest this issue, because the current Government is much more serious about the filter than governments have been in the past.

Some background on the internet filter, based on info at No Clean Feed:

The Australian Federal Government is pushing forward with a plan to force Internet Service Providers [ISPs] to censor the Internet for all Australians. This plan will waste tens of millions of taxpayer dollars and slow down Internet access. Despite being almost universally condemned by the public, ISPs, State Governments, Media and censorship experts, Communications Minister Stephen Conroy is determined to force this filter into your home. … Filtering will be mandatory in all homes and schools across the country. The clean feed will censor material that is “harmful and inappropriate” for children. … The filtering will target legal as well as illegal material. … The clean-feed for children will be opt-out, but a second filter will be mandatory for all Internet users.

While the clean feed for children will be opt-out for individual users, this filter will still slow the internet by an average of 30% for all users.

Even the most accurate software the Government has tested would incorrectly block 10,000 sites in every million. The ACMA would be overwhelmed with the task of maintaining a blacklist. Millions of web sites, with the list changing on a daily basis, would need to be monitored by Australian bureaucrats - an impossible task.

In addition, the filter only targets regular website traffic – completely ignoring content distribution networks like BitTorrent.

People NEED to take action to prevent Australian’s civil rights being taken away. You can do this through GetUp!’s Save the Net campaign – 86,021 people have already take action and it’ll only take you a couple of seconds.

03:54 PM on Saturday, 22/08/2009