Programming and general geekiness.

Archive for April, 2011

Ubuntu 11.04

At some point today, the team at Ubuntu are going to put up the image for Ubuntu 11.04 onto their FTP server. That means you’re going to be able to download it advance. All that needs to happen is to watch the FTP server: ftp.ubuntu.com.

Hint: How to get Ubuntu 11.04 quickly when it is released

I know that I am going to be one of those geeks that downloads Ubuntu 11.04 the day it comes out (or the day after, when I have the day off because of the Royal Wedding) however, I have a variety of options on how to download it. The first is to just update my current installation, and whilst this could be a very sensible approach for most people, I am choosing not to take this because I have three computers that need updating, and I don’t want to have to follow through the procedure three times. Therefore I am going to need to get the ISO.

Because the site will be ludicrously slow, you are going to need a better approach, and there are two. The first is to use a torrent, which could be a very sensible approach because you may end up getting the download from somewhere very nearby – you may even be getting it from someone across your street. I don’t like torrents that much because I’ve had slow experiences with them in the past, however I know that they can be very useful, so I shall still recommend it.

The second, and probably less know approach is to go to the Alternate Download page and then find the ‘location near me’ link. This will bring you through to a download server that is closest to you, meaning that you’ll be able to get it quicker. I strongly advise many people to take this approach, because whilst the Ubuntu servers are generally very good at coping with large amounts of traffic, if people use nearby downloads it will take the strain off all the other servers, so everyone gets it quicker. Lets all be sensible and open about this, and download Ubuntu from different servers…

Everyone’s making a browswer (really often)

In the past couple of days Microsoft has started to announce platform previews for Internet Explorer 10. There had already been rumors about IE10 following the release of some suspected Windows 8 screenshots, and it is thought that the browser will be designed with touch/tablet support – though that is hardly a surprise.

I think it could be said as a surprise that Microsoft is already releasing platform previews of IE10, considering that IE9 was barely released a few weeks ago and most of us haven’t even got round to installing it (I have managed to some how get away with the fact I have the latest versions of Firefox, Safari, Chrome and Opera on my computer, but no IE). The current IE10 test drive is just a platform preview and doesn’t show what the browser will be like in the future, it just shows what kind of features it will have. It seems to come with a very similar array of HTML5 capabilities to Firefox 4, which is fantastic, however it is the first browser to drop any support for Windows Vista, it only runs on Windows 7 at the moment.

Perhaps this is the first stage of Microsoft saying goodbye to Windows Vista, the devil OS. IE9 was not released for XP purely because XP doesn’t have support for some of the hardware requirements that IE9 has like DirectX 10 and Aero, however I find it a little non-nonsensical that Microsoft aren’t giving Vista support considering it is based on exactly the same architecture. I am not complaining of course, however I find it a very unusual decision by Microsoft, I get the feeling Microsoft are finally giving up on Vista at last.

I am not actually particularly worried about Microsoft releasing the IE10 preview, because they aren’t the only browser developers to be moving towards more frequent updates, and if Microsoft releases IE10 within about six months (which is what it took IE9 from platform preview to release) it will be one of the fasted IE releases ever. However, Firefox and Chrome both take this model. Chrome is now released about every month and a half, and the beta seems to updated every couple of weeks – though I can’t remember exactly how long it is. Mozilla is also considering a similar model, with Firefox 5, 6 and 7 potentially being released this year.

The advantage of frequent updates is that you are always guaranteed to get a secure product, but the only other benefit that I can see is that you are getting the best HTML5 support possible – which is useful from a competition point of view. I think that, ultimately, competition is at the heart of it because it is what has left Microsoft behind, IE simply doesn’t have the best support whereas Chrome does and it is released the most often. I think that once HTML5 is standardized, whenever that time comes, the frequent updates may slow slightly, but another situation could arise in which there is no standard specification, however there is an open – perhaps wiki based – standard that developers can contribute to, like the model W3C is using at the moment. The risk of this is having another Internet Explorer like browser where the developers just add more and more unnecessary features that are only supported in one browser.

Windows 8

This past week Microsoft began to release beta versions of Windows 8 to partners to help test it and, as always, at this point the first Windows 8 screenshots began to get leaked. There had, of course, been ‘screenshots’ of Windows 8 before this point, however these were generally Photoshopped versions of Windows 7. Windows 8 is going to be different from Windows 7, with a slightly modified UI, more features coming into play and ‘apps’ however it will remain with the same major build number as Windows 7 (6.x series, same as Vista). The internet has largely agreed that Windows 8 should be expected to be released in late 2012, three years after Windows 7 – which is a fairly average release cycle for Microsoft, but release cycles have been leaked from internal Power Points that show that Microsoft are planning on releasing it then. Finally, the name is something to also consider, and whilst it is pretty much respected to be codenamed Windows 8 at the moment, and that is also what Microsoft are calling it, I would not be surprised if Microsoft change the name at some point.

Microsoft seems to have a rather peculiar habit of turning the basic UI of Windows on its head with every new release. Windows XP brought Teletubbie land in, Windows Vista brought Gothic Aero and Windows 7 made Aero nice. Windows 8 seems to use a relatively similar sort of Aero design to Windows 7 and there are few major changes to note. The taskbar is remaining relatively similar, however the User icon has been placed next to the clock in the bottom right, and this is thought to use the standard User menu and will probably provide options to Switch User, Log Off, Change Picture, etc. The Aero Basic theme is also changing too, which was previously quite flat and boring, however it now seems to be better focused for the devices it is most commonly found on, such as netbooks and other low-power PCs.

Windows 8 is also going to be more aimed at tablets, with Windows being built for standard desktop architecture – also known as Intel Compatible or i386 – and also ARM, the chip set that is widely found in mobile phones, are more importantly, tablets. Microsoft is making suggestions that Windows 8 will be the first ‘tablet’ version of Windows, however in some way or another they have been aiming for this since XP, and in my mind there are technically enough features in Windows 7 to handle the touch requirements and interactivity of a tablet. There are appears to be another hardware change in Windows 7 in that the Desktop Window Manager, which handles all running applications and renders them, will be able to take advantage of hardware (GPU) and software (CPU) rendering, so that devices that have less powerful GPUs that normally wouldn’t be able to handle the Aero effect, such as netbooks and potentially tablets, would be able to handle it thanks to the CPU. This is a very relevant change, if true, because both AMD and Intel are looking at building CPUs that are essentially bridged CPUs and GPUs – AMD are dubbing these APUs, and AMD seem very keen to move towards this model after having rebranded all their GPUs from ATI to AMD.

The interface is also being geared towards tablets, with a new style of interface called Immersive, and the idea behind it is that an application may look like a desktop application on the desktop, however on a tablet it would have mobile app style controls. Microsoft seem quite keen to mimic many of Windows Phone 7′s features like this, and it is a very sensible thing to do. Apple are already doing some similar with OSX 10.7 Lion, which takes the principles behind OSX and iOS to create a more usable and interactive environment, and probably more familiar environment considering there are probably a lot more iOS users than OSX users. The interface is also further inspired by Windows Phone 7, with a similar ‘Lock Screen’ having been produced, and the ‘WP7 Font’ being used across the OS.

One of the core interface changes isn’t so much a change, more an idealistic move of progress by Microsoft. Previously the Ribbon had been used by many of the Microsoft applications, and it can now be used in 3rd party applications, though I haven’t seen many good examples. The Ribbon was created because there were too many problems with the older Drop-Down menus and toolbars, as people messed around with settings, lost buttons and essentially got confused. The principle behind the Ribbon was to create something that was ‘as-is’, so people could easily understand where everything was. At first, when it was emerged in Office 2007, the Ribbon was a little confusing to some people, and it frequently took a long time to adjust to the new interface, and even to this day I am trying to find buttons and options in Office that weren’t quite so hidden away in Office 2003. Microsoft is making a very radical move with the Ribbon and beginning to put it everywhere. It has already done this with Office and Windows Live, however the Ribbon appears to be included into everything down to Windows Explorer. The use in Windows Explorer worries me slightly, because at the end of the day Windows Explorer isn’t a particularly difficult piece of software to navigate. You have the core folders on the left, the current folder name at the top and the files and folders in that folder list in the area below – and there are bonus features like Copy and Paste. For most people, including myself, that really is all Windows Explorer is. Most people don’t even realize that ‘My Computer’ and ‘My Documents’ are in reality the same application.

Another change, that I am not certain about, is how the title bar in applications is going to be displayed. When the Ribbon is used, the title is centered (like in Word 2007) or gradually moved to the right of the Window by tabs on the Ribbon (like in Word 2010). However, when the Ribbon is not used the title is placed stubbornly next to the logo on the left hand side. On some, but not all, of the screen shots of Windows 8, it appears that the title is now centered. I will be quite pleased if Microsoft does go through with this, because it would be nice to have, and more importantly, would increase continuity with just about every other OS I have ever used.

The final thing that emerged today, and what inspired this article, is the Windows App Store. A screenshot shows an interface that seems to be a vague mix between Windows Live and the Mac App Store, and it appears that it will include an online store where apps can be downloaded and managed, which appears to be quite useful. I really hope that if Microsoft goes through with this, Windows installers will die. It will be nice to be able to install an application without having to worry where it is being installed, where shortcuts are going to be displayed, and which bit of endless license agreement I need to agree to. It will be nice to be able to click once on a link and instantly have the application downloaded and installed, just like on Mac or Ubuntu, which it itself has a very nice app management tool called the Ubuntu Software Center. I also hope that it will allow me to remove my applications with a click of a button too, because it is a nightmare trying to find the correct folder in the Start Menu, or having to go to the Control Panel.

I do have concerns about Microsoft making an App Store though. The first is whether it would be a commercial success or not. I am sure that many people would use it as a way of quickly downloading free applications, or finding them, but very few people actually pay for new software once they have bought a computer. They will generally buy a computer that comes with Office and Security software pre-installed, and then not worry about it afterwards. Another problem that may occur is an unwillingness to have to type in all the banking credentials into their Windows Live account, which is presumably what it will use, just to download something that costs about a dollar. Apple, of course, did not have this problem because the Mac App Store uses people’s iTunes accounts. Another concern of commercial success would be whether they make it backwards compatible, they are unlikely to make much profit if it is just targeted at one version of Windows, and I suggest that backwards compatibility to at least Windows Vista is required.

Overall, I am not entirely sure whether I am excited about Windows 8 or not. I am sure that, when the time comes, I will buy it, however at the moment I don’t think I need it, because Windows 7 is a perfectly good Operating System. If it was going to come out as soon as this Fall, I don’t think I would buy it, and I don’t think many other people would either. As of now, Windows 8 just doesn’t have enough (leaked) features to make it a viable purchase, however I think Microsoft could release it tomorrow as a Service Pack, and I would get it.

This slideshow requires JavaScript.

How to write a program/website that works

When a programmer writes a program, there are various stages generally starting with research and planning, coding, debugging and then going through the last two stages for a bit to get everything working fine. This is a good way of coding, and most programs work like this. Many commercial programs will also invite beta testers in either via a download on the internet or by an invitation. Beta testers are able to test more features in a larger program, and also let the programmer see how the program might be used.

Programmers don’t always think when the write programs though. They’ll fix one bug, but that might lead to another bug, and another, and another. Therefore, to ensure that the program is stable, the developer should go through checking every last bug, every last scenario.

Another method that is surprisingly useful for getting a program to work is to invite hackers to hack it. Later this week (Wednesday, if anyone’s interested) I am going to launch the beta of Friend+, a social network that I have coded in my spare time. Rather than invite people to test it out, I am going to send an e-mail to best hacker-friends and ask them to have a go at PHP/MySQL injection because I want to thoroughly test the site to destruction – though hopefully the security should prevent this.

Whilst it is all very good coding an application that works with no problems, it is still no use programming something that people don’t understand how to use. Therefore I recommend doing something that Mark Shuttleworth (the guy that came up with Ubuntu) recommended, and that is to have the development team sit in a room where they are not allowed to do anything but watch a group of people use their program. Because they are not able to help the users, it is therefore challenging them to create a complex but usable program. Programs should be interactive and appealing, so it is nice to have a little animation when there needs to be a little animation, but it should not tax the user or their computer in anyway.

The final thing to consider that really is vital is the system requirements for the program. It is no fun having to use a program that has a page long list of system requirements when all I really need to know is whether it will work, or not. A good example of this would be Google Chrome, because the requirement is simply Windows XP, Vista or 7. It doesn’t say that I need a Windows compatible pointing device – a very long winded of saying that I need a mouse, and I haven’t used a computer in years that doesn’t have a mouse. It also shouldn’t say I need a sound card, because that adds confusion. Every motherboard on the planet, almost, has some sort of in built sound card and frankly this can be assumed. Not everyone knows this, so may avoid your software because they don’t have a dedicated sound card. You should really only put the operating system as a requirement, and use the base requirement for that as your hardware requirement, though this need not be listed.

When the user is installing your program, they should be able to do the following:

  1. Continue to use their computer, hassle free
  2. Understand the process and not have to worry about where the program is going to install itself
  3. Not worry about the installer crashing as a result of software not being installed – the installer should install any software it, or the finished program, needs

Another niggle that I have about installing programs is when they decide to add a background to the process, covering up the rest of my screen. This is horribly nineties, and I frankly prefer the modern, Aero based designs that we have today.

Another consideration you may want to make about your program is how and whether you continue to support it. It really annoys me that when I go online and find a program that I have seen recommended somewhere that the most recent version was released five years ago and isn’t entirely compatiable with Windows 7. When a program is popular, it should be updated and supported if people want to use it. It is no fun using a program on a brand new computer that was designed ten years ago.

Ultimately, I suppose that I am getting at the fact that it would be nice if those kind programmers of ours would start making some decent programs that, quite simply, work. A bit like Apple products, I suppose.

The iPad 2

Right now I am standing in an Apple Store in front of an iPad 2. I’m even blogging from it. Last week there was talk of people queuing outside over twelve hours early just to get their hands on it – today I walked in half an hour after the store opened and I was the only person using an iPad. Not what you would expect from the hottest gadget of about the month, seen as Apple will almost certainly bring out something newer and shinier for nerds (and the ‘normal’ members of the population) to get excited about.

Despite all of the hype, the iPad 2 really isn’t particularly stunning. It is noticeably faster, but it is isn’t really fast. The screen isn’t very different either and frankly the only major difference is that it is a little bit smaller, it comes in two colors and it has a couple of cameras like the other current generation iOS devices.

Of course it was slightly inevitable that there would be some difference in what it was like as a device, however I don’t think that it will be used particularly different to the last iPad, FaceTime is simply a bonus that you can use, because ultimately you can use the iPad for the same old stuff, browsing the net, watching movies and messing around on apps. There are new apps, but most will run on the ‘old’ iPad.

Quite simply, buy the iPad 2 if you want one and don’t have iPad 1. If you have an iPad 1 but ‘need’ (I say need because a webcam that costs thirty bucks can do an equally good job plugged into your PC) FaceTime then just buy the Mac app, or an iPod Touch 4G. Just remember, iPad 2 is just a big ol’ iPod Touch.

Follow

Get every new post delivered to your Inbox.