Buy

Why the iPad sucks: a flame-war invitation

The iPad is a beautiful piece of kit, following in the Apple tradition of making beautifully designed hardware that also brings with it compelling unique selling points. But with the iPad, has the company got the balance wrong and does the popularity of this latest dreamware really have little to do with the function that the tablet serves?

First out of the box impressions are positive. The unit is every bit as attractive in the flesh as it looks in the advertisements – and feels solid. It is thinner than I had expected, perhaps an illusion created by the attractive bevelling. And once switched on, the brightness and clarity of the screen have me slowly buying into the concept.

I can see myself sat on the sofa at home using it to browse the web (an experience so much more pallatable than browsing on an iPhone or other smartphone – especially when it comes to entering text.) I can also see myself using it to browse YouTube with greater enjoyment (the screen size is more appealing for this than a smaller device) or for watching BBC iPlayer in bed. I love the idea that I would also find myself working with it when in Starbucks. But are any of these things a reality?

After a few days with the device, I find that I am rarely finding a use for it. The iPhone in my pocket is more mobile (in every sense of the word) and fulfils all my newsreading needs readily. When on the sofa, I’m finding that I’m drawn either to my iPhone or a “real” computer with a decent keyboard; I find the iPad awkward to hold and use at the same time – especially for more than a minute or so. But put it flat on a table and typing while viewing the screen seems clumsy – everything is at the wrong angle. (Typing on the virtual keyboard is impressive though – my four-finger typing is almost as quick as on a real keyboard – but it’s not as comfortable or natural as its non-virtual counterpart.)

Watching video on it lives up to expectations – but I soon realise that YouTube and iPlayer don’t have the appeal of Sky+ in the lounge. On the go, I can certainly see the appeal of catching episodes of Damages or Spiral on the tube an appealing prospect; my iPhone fulfils that function currently but the extra screen real estate (and lack of a keyboard that an ultraportable or netbook would bring with it) is certainly attractive.

Starbucks? When do I sit and work in Starbucks? No. It doesn’t and won’t ever happen. But even if the advertising images of such behaviour really do fit reality for some people, what would users do on the device? Respond to emails and do web-based research? Perhaps.

But this just brings me to the same conclusion that myriad other bloggers and critics have reached long before now – the iPad is neither one thing nor the other. It is not as mobile as a smartphone (in fact, it is no more portable than a laptop by the time you’ve added the necessary casing to protect the device) and it is not as practical as a laptop (with proper keyboard and correctly-angled screen.)

And then there’s the cost. Let me recommend instead that you get an iPhone (now from free on a pretty cheap tarriff) and take advantage of all the attractive goodness that brings, as well as the fantastic array of apps. And let me recommend you buy a small laptop – I’d suggest something like the Lenovo Touchpad X100e – with an 11.6″ HD screen, full size keyboard, much-better-than-a-netbook processor and graphics card, built-in wifi and 3G, excellent (and highly attractive) build – and all for around £450. Erm, cheaper than an iPad but offering so much more (including the ability to play Flash.) This route will also insure you against the impending envy (and wallet-bashing insult-to-injury) that will come when Apple soon bring out the next generation iPad – slightly more expensive, but sleeker and with more memory/storage/pixels (delete as applicable) – making your new toy seem ever so last-season.

Now I’m off to research which model of iPhone 4 to invest in…

Posted in Geek, Technologies | 1 Comment

Joel Spolsky on twitter…

It’s my cheap approach to blog-journalism, but I cannot resist repeating some of Joel Spolsky‘s thoughts on Twitter, declared during his penultimate blog post:

“Although I appreciate that many people find Twitter to be valuable, I find it a truly awful way to exchange thoughts and ideas. It creates a mentally stunted world in which the most complicated thought you can think is one sentence long. It’s a cacophony of people shouting their thoughts into the abyss without listening to what anyone else is saying. Logging on gives you a page full of little hand grenades: impossible-to-understand, context-free sentences that take five minutes of research to unravel and which then turn out to be stupid, irrelevant, or pertaining to the television series Battlestar Galactica. I would write an essay describing why Twitter gives me a headache and makes me fear for the future of humanity, but it doesn’t deserve more than 140 characters of explanation, and I’ve already spent 820.”

I could not agree with him more.  I’ll keep trying to “get” Twitter, but in the meantime I’m going to publicly be a nay-sayer!

Posted in Geek | Leave a comment

Bugzilla API: an example using PHP and Zend Framework

Bugzilla has a rudimentary API for driving it from code.  To do this from PHP is reasonably trivial, but using Zend Framework (for the cookie jar primarily) makes the task very simple.  Here is some example code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$oClient = new Zend_XmlRpc_Client('http://my.zilla.url/xmlrpc.cgi');
 
$oHttpClient = new Zend_Http_Client();
$oHttpClient->setCookieJar();
$oClient->setHttpClient($oHttpClient);
 
$aResponse = $oClient->call('User.login', array(array(
    'login'    => 'peterh@mydomain.com',
    'password' => 'mypassword',
    'remember' => 1
)));
 
$aResponse = $oClient->call('Bug.create', array(array(
    'product'     => "My Product",
    'component'   => "My Component",
    'summary'     => "This is the summary of the bug I'm creating",
    'version'     => "unspecified",
    'description' => "This is a description of the bug",
    'op_sys'      => "All",
    'platform'    => "---",
    'priority'    => "P5",
    'severity'    => "Trivial"
)));
$iBugId = $aResponse['id'];
 
$aResponse = $oClient->call('User.logout');
Posted in Geek, Technologies, Uncategorized | Tagged , , , | 1 Comment

Windows 7 for an Ubuntu devotee

There are three reasons I know of for spending money on an operating system at a time when free Ubuntu is now such a viable option. Those reasons are not Internet Explorer, the Microsoft Office paperclip and the excitement gained by placing your valuable data within an environment of questionable security. The reasons, for me, are:

  1. iTunes
  2. Adobe Photoshop
  3. Adobe Premiere

So long as these three pieces of software are unavailable for Linux, I have no option but to make a pact with Redmond’s finest. Sure, I could also choose to go the OS X route, but while that option is cheaper than Windows, the hardware to run it is expensive and is likely to be obsolete before my trusty, upgradable, PC which also runs Ubuntu Linux.

So this week, I took the plunge and bought Windows 7 Home Premium Upgrade as my XP installation has gradually been slowing down and the annual rebuild was due. Windows 7 has had overwhelmingly positive press – perhaps a consequence of releasing the slow, poorly supported and infuriating-to-use Vista previously. This time, it is reported that there is a return to the stability of Windows XP while bringing improved boot and shutdown timings and a whole array of UI improvements (which I openly admit I am a sucker for – hence my devotion to Ubuntu’s Compiz window management and Gnome Do’s Docky functionality.)

Before I talk about how the Windows 7 installation went, a quick word about my three reasons for adopting Windows. Many Linux advocates will suggest alternatives to iTunes, Photoshop and Premiere. While Songbird and the Gimp are without a doubt excellent developments, Songbird does not support iPhone syncing and the Gimp does not have the community and support that the Adobe products offer. (Nor, frankly, does it have the usability or reliability in my experience.)

So, Windows 7 it was. The box arrived (looking intriguingly smaller and neater than the Microsoft marketing images – how did they do that?) with a 32-bit and 64-bit DVD inside. I can see no reason to go 64-bit yet (with its diminished software support) unless I am looking to run a system with >4Gb RAM. I’m not. Even given Premiere Pro’s system demands, RAM is not an issue for me, and my current 2Gb does me fine. The 32-bit disk started booting; some of that promised eye-candy was already on display and then… what’s this… it appears to have stalled. No disk activity, the mouse pointer (which I can still move) is the only think on the wallpaper, but it’s spinning-circle (egg-timer replacement) has disappeared and it seems nothing is happening. Now I know that at this point in a OS install, drivers are being loaded and hardware is being detected – sometimes a lengthy process. So I give it a minute or two. Then give up and try booting again. Same result. A quick google suggests it may be some USB devices so I disconnect printers, webcams etc. Same result. Further research suggests it could be BIOS settings, so I tweak those. Same result.

Then I read an article suggesting another unlikely solution: patience. I give this ago. 5 minutes and 20 seconds’ worth of patience in fact. At which point the installation continues without apology. Having learnt the divine skill of patience, the rest of the installation went smoothly (though there was a need to “keep the faith” at various points during the install.) After not much more than 30 minutes, the PC booted into Windows 7 is record time and I’m liking what I see. Subsequent software installation has been effortless and the system continues to run well. I chose to move from Symantec antivirus to the free AVG offering, and for firewall, I’ve taken on Comodo instead of ZoneAlarm or Windows 7′s own blockers.

Finally, it was necessary to deal with Windows’ unforgiving abuse of the Master Boot Record by replacing it with something that will acknowledge the fact that I have Linux running on another partition. To do this, I followed these steps (which were new to me as I’m not so familiar with grub2).

Posted in Geek, Technologies, Ubuntu Linux | Tagged , , , , , , | 1 Comment

Bug Tracking in the Open

In the inspiring Google blog post The Meaning of Open, Jonathan Rosenberg sites the Google Web Toolkit as using “a public bug tracker”. And it is this small mention (in the midst of a post discussing much bigger themes) that I want to pursue.

I work for MediaTel Group and my focus is primarily on developing data analytics tools for the UK media industry. Among other uses, our products are used by media agencies to make advertising buy decisions. Our strengths are the data and customer service, not just the software. The product, in its web-based guise, has existed for nearly 10 years and in that time has travelled through some technology changes (starting as a ColdFusion site; now a PHP/Zend Framework system) and many functional overhauls. With a product of this age and heritage, it is perhaps not surprising that we currently have 412 tickets open in our internal Bugzilla issue tracker – a mixture of bug reports and enhancement requests.

All tickets have been raised by us. Not our customers. Sure, some tickets were instigated by customers (following discussion with our customer service or sales staff) but no MediaTel customer has ever been given a ticket number with which to refer back to their report, nor a formal SLA to set their expectation on delivery. As MediaTel staff work hard to replicate, fix, test and deploy changes, the customer has no way of getting an update on the progress of the issue other than to call up or be contacted by our teams.

And yet we are very strong procedurally within the organisation and use a variety of tools as part of our daily customer service and development workflows to ensure that internally we have excellent information about the state of a bug fix or feature implementation. We have a home-grown web-based CRM system and Bugzilla – which is integrated with our Subversion source code control system and a deployment process to ensure we know what code (and thus which bug fixes etc.) have been deployed to what environments and when.

We’re brimming with information and it seems just a small step to take to share that information with our clients and solicit their bug reports and feature requests directly. I suspect that some might recoil at the thought of revealing to our clients that we have hundreds of known bugs in our software – some of which we have known about for more than three years. Why own up? Some might consider it a backward step to rely on impersonal web-based tools to communicate updates rather than a more personal phone call or an email from a real person. There may be concerns about the amount of time it would take to manage all the new communication from customers.  Or that customers would be bombarded with too much confusing – sometimes technical – information.  But here is what I think:

  1. Our product exists in order to help our customers go about their business. For MediaTel, making sales and retaining clients has got to be made easier if the product does what they need it to do and does it well. Let’s make it easy for those clients to tell us what they want and need. Let them tell us how important a particular software change is to them. They can still pick up the phone to us, but having a direct route into our systems gives them more control and provides greater transparency;  it gives us more accurate (and more) information.
  2. A desire to be honest with customers is key.  If they ask for something and we don’t have the resources to do it, let’s tell them.  If they ask for something but it is contrary to our product strategy, or more customers are asking for the opposite, let’s tell them.  I have faith that our customers understand these realities. For this reason, I would not shy away from publishing our internal priority for a particular issue alongside the priority attributed by the client.
  3. If customers can raise their own tickets and view updates to those tickets, a natural extension of this is being able to view the tickets raised by other customers. By this means, they should be able to vote up or vote down a particular change. If they see a ticket that we are struggling to replicate, they may be able to share some insight. By doing this, we are beginning to create a community from our customers. This may lead to greater consensus on what our customer-base wants, and so enable us to focus our efforts where they will please the greatest number of customers most.
  4. One challenge is to identify the right tools for the job. A shrink-wrapped Bugzilla deployment is not going to fit the bill. We need a simple UI for our customers who will not wish the job of sharing information with us to be onerous. We do not wish customers to to have to grapple with the differences between “severity”, “priority” and “importance”. We need the ability to keep some updates and comments to ourselves (not because we wish to hide information, but because we do not want developers to become inefficient – or, worse, tongue-tied – as they consider how the wording of a comment might be perceived by a customer.)  We need to ensure that when a customer raises an issue, they are not repeating the details of a ticket that has already been raised.  (stackoverflow.com does an excellent job of this.)  When browsing a list of issues, we need to allow them to filter that list so that they are not overwhelmed.

Opening our ticket database to customers is not a move towards abandoning other forms of customer service or product management. But it is another tool to help us show how we value our customers and ensure we are directing our efforts where our customers most need them.  It should not lead to us having to take on more work but, rather, it should ensure that the work we do is always to the benefit of our customers and will therefore encourage both customer-retention and sales.

Posted in Development Process, Geek | Tagged , , , | Leave a comment

Picasa on Ubuntu

I’ve recently taken a shine to Picasa as an alternative to F-Spot on Linux.  Installing Picasa 3 Beta for Linux is straightforward on Ubuntu: download the .deb from Google’s site and then install it (sudo dpkg -i picasa_3.0-current_i386.deb).  Having done that, the only other bit of configuration I have found useful is to change the default application for photo-media handling in Nautilus.  To do so, launch Nautilus > Edit > Preferences > Media > Photos > Open with other application… and then choose /usr/bin/picasa.  Job done.

If you want a flamey discussion of the relative merits of F-Spot and Picasa (and gThumb, digiKam etc.), see this thread.

Posted in Geek, Technologies, Ubuntu Linux | Tagged , , , , , , | Leave a comment

Ubuntu Karmic – now better than Mac OS X

Ok. The subject of the post is deliberately provocative and the chances of me changing the allegiance of die-hard fans of Apple’s “beauty-in-a-box” are remote to say the least. But I think it right to encourage everyone (whether Windows, Mac or Linux desktop users) to look again at Ubuntu Linux following it’s most recent release, the Karmic Koala.

It was once the case that things just worked on a Mac (and even Windows) but were an unreasonable struggle with Ubuntu.  Wireless networking.  Display settings (especially dual-head display settings.)  VPN connections.  But having followed Ubuntu on the desktop for three years, I think it’s finally got there.  It is a real contender for running your desktop PC.

With the “compiz” window manager, beautiful display effects and functionality (similar to Mac’s Exposé) are possible with almost no setup required.  That coupled with the “Docky” theme for the gnome-do application, give you a user interface that is – well, not original, no – but a firm challenge to that provided by Apple (and latterly Microsoft.)

But, as a geek, it is not just the eye-candy which swings things in Ubuntu’s favour.  Mac OS X is of course just BSD Linux underneath.  To put things crudely though, it is like having a version of Linux which has a strange directory layout and a restrictive software package manager.  Couple that with the fact that the Ubuntu community is stronger for developers, and you have a more compelling proposition from the free option.

And if you really want it, you can get Apple’s keyboard, mouse and screen to complete your look!

Installation of Koala is quick and easy – and boot-up times are way ahead of anything that Windows offers.  I urge you to try it out.

What doesn’t it do?  Well, you won’t get Photoshop running effectively in Koala.  Poeple will talk about virtual machines or about using open-source alternatives such as Gimp – but these are not viable options for serious users.  Likewise Premiere Pro for your video editing is not an option.  The most frustrating omission which perhaps affects the greatest numbers of potential defectors is the lack of iTunes.  A great open-source alternative, Songbird, has it all… except for viable support for iPod and iPhone devices.  If you can live with these omissions, I believe you’ve got a new (free) friend.  Well, operating system of choice.

I’m a developer and the following is a guide to some of the setup I perform after the base installation: to get a desktop system up and running to my liking.  Excuse the apt-get syntax; it doesn’t matter how many different GUI package managers they throw at me… I’ll still find it easier to install software via the command line – but the GUIs are, (I’m told!) good if this looks alien to you: Continue reading

Posted in Geek, Ubuntu Linux | Tagged , , , , | 1 Comment

Claire’s website up and running

Claire has started a coaching business and her website is now up and running. You can take a look at http://www.clairehowecoaching.co.uk for more information. There are several excellent testimonials on there.  She does telephone coaching as well as face-to-face meetings, so geography isn’t an issue.

Posted in Uncategorized | Leave a comment

Stored Procedures: Good or Bad?

A project team rewriting one of our web products has made the decision to jump ship from SQL Server to the open-source MySQL database and, at the same time, to place a greater emphasis on the use of stored procedures. Since that decision, there have been various other projects where the choice of moving some business logic to the database server has had to be contemplated.

My initial reaction to the use of stored procedures was hesitant.  I work in a small company with no dedicated database programmers and a relatively small team of PHP experts. Due to this balance alone, I consider a greater reliance of stored procedures to be a risk.  But there is one very good reason to think the move may not be so risky after all: it takes load off the network – which might also result in a net performance gain.

But my initial wariness still stands – and continues for all the projects for which I’ve considered stored procedures recently.  The following disadvantages overwhelm that performance gain:

  • Language: the extended SQL language used in stored procedures is relatively immature and doesn’t lend itself to certain complex logic.
  • Tools: development tools for MySQL stored procedures (including debugging aids) are very limited.
  • Server load: increased processing on the database server is more difficult to accommodate (database servers are more difficult to scale than Apache/PHP web servers, for example.)
  • Deployment headaches: it can be hard enough to keep database and application code in sync without causing even a blip of downtime.  Introducing stored procedures introduces another element which needs careful management.  It’s not rocket science, but it’s just more to think about – and more to go wrong.
  • Portability is limited (DB2 has a similar language to that used by MySQL, but otherwise, you’re pretty much stuck if you want to move to another database platform.)  That said, it’s not exactly an everyday occurrence, is it?
  • Performance(!): the performance gain you may expect from stored procedures might often be a myth anyway. Stored procedure code executes slowly when compared with many application programming languages – so the benefits of reduced network traffic might soon be eaten into.

So, for the time being, while we have the skills to focus development of business logic in PHP, that’s just what we’ll do.

Posted in Geek, Technologies | Tagged , , | 3 Comments

Hailing Ubuntu 8.10 Intrepid Ibex (and the Eee PC 701)

(Updated: new steps needed for wireless on Eee PC)

Each release of Ubuntu just gets more and more, well, grown-up.  When I started using Ubuntu on the desktop, it was a brave man who would upgrade when a new release became available rather than install from scratch (and keep your fingers crossed with drivers.)  But things have improved significantly – even on hardware which is new and typically less well supported (see my Eee PC 701 setup guide later in this article.)

Things I like about Intrepid over previous versions: Continue reading

Posted in Geek, Ubuntu Linux | 1 Comment