Archive for the ‘Technology’ Category

Final Cut X – Exactly as I thought

Posted on Sunday, July 3rd, 2011

Apple caused a fair bit of controversy when they released their new Final Cut X non-linear editing software a few weeks ago – it had very little third party support, no XML, AAF or OMF file exports (those are files for taking your edit from the editing software, into other software like Pro Tools or Logic for grading, and BlackMagic Resolve or similar for grading and finishing). There was also limited support for tape and several video file formats, like RED’s R3D files and Sony XDCAM files, and no multi-cam editing.

There is a whole lot about Final Cut X that is really good (like its new 64 bit architecture built on Core Video and other modern APIs instead of the old, crufty QuickTime and so much more), but for some reason everybody writing reviews on the internet seemed to have decided that Final Cut X was never going to be updated, and it was as fully featured as it was ever going to be. This was the end. Apple wasn’t going to add any more features. Apple hates the pros! They’ve abandoned us!

That idea, though, is completely wrong, and just plain silly. Apple has released a set of frequently asked questions about FCX that addresses almost all of the concerns I’ve seen, and is pretty much exactly the same as what I had been saying about it. For instance: multicam support – not there but it’s coming in an update. AAF, XML, OMF will be available via an API for third party developers soon. Monitoring through cards like AJA’s KONA 3 card will be possible when drivers are updated. More import formats are coming.

There are some people saying that Apple should have communicated better from the start, but I thought it was all fairly obvious…

Vodafone – possibly the worst mobile carrier in Australia

Posted on Tuesday, February 15th, 2011

I can’t say this enough – Vodafone is simply the worst mobile phone carrier I have ever experienced. I have had an iPhone 4 with Vodafone for about six months now and while the iPhone 4 is an amazing phone, being on Vodafone has been nothing but a painful experience. I’ve had nothing but problems with the service itself, their billing, their customer support (where “within five working days” seems to mean “in ten working days”), and outages with their MyVodafone website (where you check what your data usage is, although it seems to be several days out of date when you check the bill).

But apart from the customer service and all that, the biggest problem is that the 3G is just terrible. Unreliable is probably being too kind – most of the time it just downright doesn’t work. I’m in Brisbane, and on most towers, 3G requests will frequently just time out. You often have to repeatedly stop and refresh the page loading, sometimes for several minutes before anything will load. Sometimes, this will not work at all, and you have to either reboot the phone or switch to aeroplane mode and back, and then try repeatedly refreshing to get it to work. An example of this was when I was in the middle of Brisbane’s central business district one night (if your carrier has good coverage somewhere, you would expect it to be in the CBD!), trying to transfer some money between my accounts using the Commonwealth Bank’s NetBank online banking site. It took about ten minutes before I could get any part of the login window to appear, and in the end it took about twenty minutes to do a transaction that would have taken two minutes on WiFi.

In Sydney, the 3G was somewhat reliable, but still slow. But it’s certianly nowhere near the good reliability that my brother’s iPhone on Optus or other relative’s phones on Optus and Telstra have.

I am looking through the contract to see if there’s any way to get out of it without paying exit fees – certianly common sense would suggest that by not providing an adequate level of service that I’m paying them for, they are in breech of their contract, but given my experience with their customer service, I don’t know if they really care.

If I am unable to leave, there’s no way that I am staying with Vodafone Australia after my contract expires, and I expect that I will never purchase any product or service from them in the future. I only went with Vodafone because it was slightly cheaper than Optus, but given my experience and the far superior service my brother (who is on Optus) gets, Vodafone was just not worth the saving at all.

Web Development in C++

Posted on Tuesday, February 1st, 2011

If you have a look around the ‘net, there really aren’t many frameworks or libraries that are intended for developing web applications in good old compiled C++. I’m sure that this does not surprise most people – these days all the cool kids are using fancy languages and frameworks like Ruby on Rails, Python, and so on. In the enterprise, it’s all Java (ugh…) and ASP.Net. But hardly anything is said about any compiled languages, and the thought of writing web apps in C++ draws looks as if you just said you were going to use Perl!

I, though, think that writing web applications using C++ really has a lot of benefits. First of all is the speed of compiled code – interpreted languages like Ruby, Python and PHP really are pretty rubbish when compared to the performance of an application written in C++, and this is especially important when creating web applications. This is mainly all about scalability – for a large site, the more requests you can handle per second on a single server, the less servers you need (of course, scaling the data store and using caching is also important to this). This is one thing that Facebook found out very quickly. It prompted them to write a compiler that converts PHP code into C++ and compiles it into a binary along with a built-in, threaded web server.

I’m sure that the biggest problem most people have with using C++ for web development is that it is hard. This was one of Facebook’s concerns too – since PHP is easier to learn, they are able to hire more people to work on their code, and can write code faster. I find this quite concerning though. One thing that my experience in software development has taught me is that bad coders can write bad code in any language – and the easier the language, the more bad coders there tends to be. Now, of course I’m not trying to say that PHP is a bad language, and that you shouldn’t be using it (in fact, I like and use it for small projects and prototyping), but choosing it for Facebook’s reasons makes it more likely that they hire more substandard programmers than they would otherwise. And as for being faster to develop in – well, a good C++ web framework should help here, and to be honest, often what happens is the faster you code, the less care you take and the more bugs you write into it.

I’m writing my own framework to make development faster and easier, called Corpus. It runs in a normal web server (my preference is the extremely fast Cherokee web server, but you can use Apache, nginx or lighthttpd if you wish), and is based around the FastCGI++ library, which is excellent and provides a far superior C++ API than other FastCGI libraries I’ve looked at.

Why I switched back to Ubuntu

Posted on Monday, January 31st, 2011

I’ve been using Fedora for almost a year now, and there are a lot of things I like about it. But today I’m wiping Fedora and moving back to Ubuntu.

Now, there are a lot of things I don’t like about Ubuntu – like the fact that they’re using their netbook-intended Unity shell for the desktop instead of Gnome Shell, but really, the fact is that Ubuntu just works better than other distros I’ve tried.

The biggest thing is graphics drivers. I think it’s good that the Fedora guys are standing up for free software and not shipping the binary Nvidia drivers, and I reckon that Nouveau is really great for being so young, but right now I want to use graphics drivers that can actually run games… It was not the most difficult thing in the world to install the drivers (I used the RPMFusion repo, if I remember correctly) but it was far harder than it needed to be. The worst problem though was that every time there was a kernel update, the Nvidia package would not come in for another few hours (even sometimes up to a day or two). So if I accidentally didn’t notice and hit update, my system would break (because you had to disable the Nouveau drivers to use the Nvidia ones, so you’d have all sorts of graphics problems).

I love tinkering with Linux and everything, but Fedora was just a bit too maintenance heavy in things like that… I still use it as a server OS, but as a desktop, I far prefer Ubuntu’s integration.

HTML5 is looking good

Posted on Wednesday, November 24th, 2010

Google’s created a great demo, 20 Things I Learned About Browsers and the Web, which shows off a lot of great new features, if your browser supports them.

I don’t care much about backwards compatibility or rubbish browsers, so I didn’t look to see how it degrades in IE or anything.

Everybody knows about HTML5 features like video and canvas and so on, but I think that the coolest feature on show here is a little known feature which really helps make web apps viable for me – being able to push history states. Before, ugly hacks had to be used like using a hash symbol to be able to change parts of the URL, but that still didn’t work with the back button and created ugly URLs. Now, using the history.pushState function lets you change the entire URL (apart from the domain name, of course), and each state shows up in the history. You can then catch the event triggered when the user hits the back and forward button, and act accordingly. Now you can have proper history, proper back/forward action, and nice URLs, all without any page reloads! It may seem like a pretty minor feature, but it’s the little things like this that are actually making web apps viable.

The reason Apple stands out in the computer industry

Posted on Monday, November 15th, 2010

It’s all about the attention to the little details. Even from the development of the original Macintosh:

Another goal of ours was to make the back of the computer (which we realized could, in fact, be facing a visitor to user’s office) as aesthetically pleasing as the front.

From Folklore.org – Invasion of Texaco Towers

Playing with NXP’s Cortex-M3 Microcontrollers

Posted on Thursday, June 10th, 2010

I just recently bought a new NXP LPC1764 microcontroller (MCU), which is based on the ARM Cortex M3 processor. Being used to little 8bit Atmel AVR micros that run around 8MHz, the idea of a controller that is full 32 bit and runs at 100MHz is pretty exciting. It also has a lot of cool features, such as USB and Ethernet, which usually require extra 3rd party chips when you’re using AVRs. It’s surprisingly cost effective too when compared to the Atmel chips – the LPX17xx series are all between $12 and $18, only about twice the price of AVRs that are far less powerful.

I’m still trying to design a board for this controller. The first problem that I’ve encountered is that since this chip is quite new, there are no Altium libraries or footprints for it. The version of Altium I have does have the older Cortex-M0 chips in its library, and some of them use the same package as the 1764. I plan therefore to use the footprint from that (a 100 pin LQFP package) and create my own schematic for it. I’ll have to go through the datasheet and specify all the pins on the chip, which will take ages (since there are so many of them). It could be worse though – at least I don’t need to design the footprint.

The chip is a little unusual coming from a background of working with AVRs. The LPC requires 3.3V, as opposed to AVR chips that can be powered at 5V, so there’s a bit more work involved in power management. Since the chip runs at a lot faster clock rate that the AVRs, good board design becomes more critical. I’m thinking of making it as a four layer board, having a top and bottom layer as well as two planes (voltage and ground). This will reduce noise, with the benefit of making it a lot easier to route!

In-system programming of the chip should also be pretty easy, as apparently the LPC17xx series comes flashed with a bootloader that sets the USB port up as a mass storage device, so you can just drag and drop applications onto it. I still have to verify how this works. I will put a JTAG header on the board as well, as if I can’t get the USB ISP working, I can at least get an LCPXpresso board which can program the chip over JTAG.

I’m going to get the board manufactured with BatchPCB, and will post back with some more info if I can get it working. At this stage, I am just planning to have USB, a serial port or two, Ethernet and a lot of headers for IO on my first board. The LPC1764 doesn’t support external RAM, but hopefully I will be able to hook it up to some external flash memory (like a Compact Flash or SD card socket) to be able to load programs on even easier! The MCU doesn’t actually support these out of the box but there are lots of articles online about how to interface microcontrollers to those devices so it shouldn’t be too hard.

So far these ARM based microcontrollers look really awesome. I’ve been taking a look at Texas Instrument’s OMAP3 processors too – which are proper, discrete processors. Although they are more expensive and require a lot more supporting circuits and chips (such as external memory), they are far more powerful – running at speeds of around 600 to 800 MHz. I don’t know if I’d want to risk soldering a $60 processor onto a board I made though, so I’ll have to get some experience with the Cortex microcontrollers first! NXP have also announced the LPC177x microcontroller series too, which will feature a memory controller so I’ll hopefully be able to rig up something like 32 MB of RAM to it, which would give me far more headroom for dealing with graphics, multitasking, Ethernet transfers, and so on.

New TVs and frame interpolation

Posted on Wednesday, May 5th, 2010

It’s strange how quickly new TVs have adopted fancy new frame interpolation systems, with the promise of a beautiful, smooth image as opposed to the nasty, jittery 24p image that we never realised we didn’t like in the last century of cinema. Now that pretty much all new TVs have the same resolution (1080p), it seems that the manufacturers need another number that that can wow consumers with. Yes, suddenly we’re being made to feel that we need a 100Hz, 200Hz, or even 500Hz TV. And it must be good, since it has a big number, right?

The reality is that these frame interpolation features make the image look terrible, at least in my opinion. Now, instead of an almost unnoticeable jitter, we have horrible motion artefacts whenever a character moves more than a slow walk. The motion looks wrong, taking an almost sped up appearance. And the noise and grain found in different films or videos interferes with the interpolation, taking on a far more noticeable look. I think that really these features dramatically reduce the quality of the media, and are generally a bad idea.

But apart from the aesthetic reasons, I think a very good reason not to use these features is that it’s an insult to the craft of filmmaking. With new digital cinema cameras, it’s now possible to shoot 48 or 96 frames per second if the director wants to. But the vast majority of the time, they don’t. The thing is that the choice to shoot 24 frames per second is an artistic choice by the director and the director of photography. The film is meant to have that aesthetic, and not have extra frames in between generated in the TV. Imagine if somebody took a Monet and added sharpening to give it “150% better definition!”. I’m sure most would agree that doing so would just be ridiculous – it’s taking an artistic choice away from the artist, and really doesn’t offer any improvement.

Although some might prefer the motion of an interpolated image, I think most people use this simply because their TV had a bigger number than the other ones (600 Hz!). I don’t have a problem with giving people the option to destroy the image they’re watching, but having it on by default and advertising it as if it is a good thing is just wrong.

Why Internet Filtering Can’t Work

Posted on Saturday, December 19th, 2009

I’ve seen some renewed interest in the Australian Government’s terrible idea to try and filter the internet, and there’s even a protest planned for people to black out their websites and profile images soon like what was done in New Zealand to protest against the ‘guilt upon accusation’ plan to block people’s internet if somebody just accused them of copyright infringement three times. The No Clean Feed group have some pretty good reasons as to why an attempt to filter the internet would have absolutely no beneficial effects and be a general disaster. Here’s my take:

There are too many protocols which can’t be filtered

The government plans to filter exactly one (1) protocol on the internet, which is HTTP. Think about that for a second – it’s essentially like banning particular subjects from bookstores, and expecting that now the public can’t access them, which is utter rubbish. In this situation, people could still mail the information to each other. They could share the books around. They could put the information up on noticeboards and other public places. The internet is exactly the same. The vast majority of the content that the program aims to filter out is not using the protocol they are going to filter. There’s FTP, bittorrent, email services, and many other peer to peer protocols that not only won’t be filtered, but really can’t. This first point essentially renders the whole scheme useless, but wait, there’s more!

There’s too much content to filter

Just on the HTTP protocol, which the government is going to attempt to filter, there are literally billions of pages of information. How can anybody really expect that they could even attempt to find all the illegal or adult content on it? There is just too much information to filter, and even if it was possible to find every illegal site on it, hundreds of new sites will inevitably pop up within weeks to replace those blocked ones. This is just the way the internet is – it’s not provided from just a few sources like most other forms of media. Anyone can create content on it, good or bad, and new content appears so quickly that any effort to filter it is quickly rendered futile. It’s not like trying to find a needle in a haystack – it’s like trying to find one in a field of millions of haystacks that’s rapidly expanding!

It’s too easy to bypass

There’s one other massive problem that renders the internet filtering plan completely ineffective, and that is encryption. It’s fairly simple to open up an encrypted connection to a network in another country, which gives anybody the ability to completely bypass the whole filtering system – because they can’t see the information that is passing through it. Now, in an environment like a school, the ports that are required to do this can be simply blocked, but in the real world any action like that would cripple many Australian businesses by removing the channels they use to do business with other countries, and cost billions to the economy.

But at least these virtual private networks are too complex for a child to set up, right? Surely we are still protecting them with the scheme? Turns out that the answer is a resounding no, given that there are thousands of (completely legal) websites that make bypassing the filtering even easier. They use secure socket layer (SSL) encryption, which is used to secure bank websites and credit card payments, to anonymously and securely view websites without having them filtered at all. It’s as simple as going to a website and typing a web address in the box. Seriously, this is like locking the front door but leaving all the windows open – there’s simply no way the internet filtering can be effective. Again, they could try to block these sites, but given that they’re legal and have a vast range of legitimate uses, this wouldn’t be possible at all.

There will be many sites incorrectly blocked

A report summing up the results of a trial undertaken by some ISPs showed that the internet filtering technology would incorrectly block 10,000 completely legal web sites out of every million sites blocked. Really, that error rate is unacceptable. Many of these incorrectly blocked sites may be reputable companies, for whom the internet is their only point of business. Is it fair that we eliminate all their Australian customers in the sake of a filtering scheme that is ineffective? And how will these people apply to get their sites unblocked? Given that the people creating the blocklist are going to be trying to search through billions of sites

It will slow down the internet

Let’s face it – here in Australia, our internet is already slow enough. Given that all the internet companies in the country have to use a telecommunications network (mis)managed by a single monopoly, we don’t have the luxury of fast, cheap internet that many other countries like Japan, Sweden and even South Korea have. So why is the government not only chasing after a plan that can’t possibly work, but one that also reduces the speed of our internet by up to 80 percent? This is exactly the kind of speed reduction that the report linked in the above predicts this filtering will cause.

Where’s the accountability?

Having a small, government controlled group deciding what information people should and shouldn’t be able to see is worrying, to say the least. Sure, the line right now is that they’re only going to block illegal material, but how can we know this is the case as time goes on? Perhaps now this is all about “protecting children and families”, but how do we know if eventually they start to increase the range of subjects being blocked? The “Great Firewall of China” has been widely criticised for essentially removing free speech on the internet by blocking thing like Google searches for ‘freedom’, information about subjects such as capitalism and blogs and websites that criticise their government. Given that our government refuses to release the blocklist proposed for this new filter in Australia, how can we be sure that they aren’t going to start doing the same thing and just pull the plug on websites they don’t agree with for us? At least with the review board that classifies films and so on, we know when something’s banned. With the new Internet filtering, the government can restrict access to any site they want, without the public having a clue. I’m sure that they’ll insist that it’s all in our best interest, and ask us to trust them, but with absolutely no accountability, I know I don’t.

It’s a waste of money

So the government wants to bring in a scheme that can’t possibly work. How much is this debacle going to cost? Turns out that they’ve budgeted more than $44 million dollars to this scheme. That kind of money could easily have gone into our hospital system, or creating jobs, or any other number of worthy causes. But instead they choose to burn it in this useless mess.

The only people who support it have no idea about the how the internet works

I think these points are pretty compelling as to why it’s a stupid idea to attempt the impossible task of filtering the internet. Really, the only people who want this filtering installed are the ones who have no idea how the internet works. Unfortunately it seems that these are exactly the same people who are making the legislation that we have to adhere to – which is about as effective as having somebody who’s never held a scalpel try to perform open heart surgery on you. It’s very important that everyone who understands the futility of the internet filtering plan to take action. The No Clean Feed group have some petitions you can sign and other suggestions for ways to speak out against this terrible plan.

In the end…

The government says that the scheme is all about protecting children from inappropriate content on the internet, but it is so horribly broken that it will be completely and utterly ineffective. All it really does is bring Australia down to China’s level (who censor search terms like ‘freedom’) in the eyes of the rest of the world. It won’t make a difference at all to internet safety, except perhaps by slowing the internet down so much that nobody can stand to use it.

‘The Cloud’ is a stupid, redundant buzzword

Posted on Sunday, December 6th, 2009

I’m sure everyone has noticed that ‘the Cloud’ has suddenly become the flavour of the month, just like ‘Web 2.0’ did last year. But just like Web 2.0, the Cloud is a stupid, redundant buzzword that really means nothing. I mean, let’s just take a look at what Wikipedia says about Cloud computing

The term cloud is used as a metaphor for the Internet

What’s that? You mean that ‘cloud storage’ is really just internet storage? Yes it is – it’s exactly the same as what I’ve been doing for several year with some web-space and an FTP client. The Cloud is the kind of buzzword that marketing departments come up with to make things that we’ve had for years sound new and interesting again, and it really annoys me that it has crept into the vernacular of many computer users as well. I’m all for having backups on the internet, and using web applications (of course, most of the applications I use won’t be able to be run over the internet for a very long time, but that’s a different story). But calling these ‘cloud services’ or ‘cloud computing’ is just stupid.