Posts Tagged ‘software’

Why We Have Bad Software

July 25, 2016 Leave a comment

Many people get extremely frustrated with their interactions with technology, especially computers. I notice this a lot because I work with IT where I am a Mac generalist: I do general support, programming, a bit of server management, and a bunch of other stuff as well.

And when I say “many people” get frustrated I should add myself to that list as well because, either directly or indirectly (by trying to help frustrated users) I am also exposed to this phenomenon.

The strange thing is that generally the problems don’t happen because people are trying to do something unusual, or using some virtually unknown piece of software, or trying to do things in an overly complex way. Most of the frustration happens just trying to get the basics working. By that I mean things like simple word processing in Microsoft Word, simple file access on servers, and simple synchronisation of calendars.

None of these things should be hard, but they often are. In comparison doing complex stuff like creating web apps, or doing complicated graphics manipulations, or completing advanced maths or stats processing often works without a single problem.

Why is this? Well I guess I need to concede (before I offer my own theory) that one reason is that there are far more people doing the simple things and they’re doing them far more often, so if there was a certain failure rate with any process it would show up more for the stuff that is done a lot.

But those simple tasks, like word processing, have been with us on computers for several decades now so it might be reasonable to ask why haven’t they been refined to a greater degree than they have. Is it really so hard to create a word processor which works in a more intuitive, reliable, and responsive way than what he have now? (yes, I’m talking to you, Microsoft)

Well there is. But it involves doing something a lot of people don’t want to do. It involves staying away from the big, dominant companies in IT, especially Microsoft. Well not entirely, because realistically you need to run either Windows or macOS (Linux just doesn’t really work on the desktop) and you need to buy some hardware from Dell, Apple, etc. But what about after that?

Recently I have tried to keep away from the dominant companies in software. For example, I operate a zero-Microsoft policy and am progressing well on my zero-Adobe policy as well. In addition I avoid all the big corporates’ products (Oracle, Cisco, etc) wherever possible.

I don’t think it’s healthy to take this to extremes or to where it becomes more a political thing than a practical one, because then I might end up like the open source fanatics whose decisions are based more on ideology than pragmatism. But it is still a useful guideline.

And I am pragmatic because I do have Microsoft Office and Adobe Creative Suite (all fully licensed) on my machine, I just almost never use them. And, of course, I do use a Mac and therefore use the hardware and operating system made by Apple, the biggest computer corporation in the world.

Although I readily admit to being an Apple “fanboy” I do have to say that, considering the huge resources they have available, they do often fail to perform as well as they should. For example, software is often released with fairly obvious bugs. How much does it cost to hire a few really good bug checkers?

And sometimes Apple products take too long to properly implement some features. With all the programmers they could hire why is this?

I don’t want to pick on Apple and I really have to ask the following question: Microsoft, why is Office 2016 for Mac such a pile of junk? Why is it so slow? Why is it so ugly? Why is it so lacking in functionality (that is one area where Microsoft usually does well: their software is crap in almost every way except it has an impressive feature set).

And just to complete bashing the big three, what’s happening at Adobe? Why does In Design take a week to launch on anything except the latest hardware? Why are there so many poor user interface design choices in Adobe software? And why is the licensing so annoying?

I think the failure of the big companies to create products as good as they should be able to comes back to several factors…

First, large teams of programmers (and probably teams of anything else too) will always be less efficient than smaller teams simply because more time will have to spend trying to coordinate the team rather than actually doing the core work.

Second, in large teams there will be inevitable “disconnections” between the components of a major project that different individuals make. This might result in an inconsistent user experience or maybe even bugs when the components don’t work together properly.

Third, it is likely that many decisions in a large team will be made by managers and that is almost always a bad thing, because managers are generally technically ignorant and have different priorities such as meeting time constraints, fitting in with non-technical corporate aims, or cutting corners in various ways, rather than producing the best technical result.

Fourth, large companies often have too many rules and policies which are presumably formulated to solve a particular problem but more often can be applied without any real thought for any specific situation.

Many software projects are too large for a single programmer or a small team so some of the issues I have listed cannot be fully avoided. But at least if computer users all understand that big companies usually don’t produce the best products they won’t be surprised the next time they have a horrible experience using Microsoft Word.

And maybe they might just look at alternatives.

The Apps I Use

April 2, 2016 Leave a comment

I work in IT doing general computer support and web programming (and anything else to do with Macs and other Apple stuff). Sometimes when looking at problems my clients are having it is suggested I am a bit negative about the programs they are using and have been asked: well if you don’t like (whatever program is under discussion, usually Microsoft Word) what do you use instead?

That’s a good question and I thought I might answer it here. My main computer is a 15 inch i7 MacBook Pro with a high resolution screen, an SSD, and 16G of RAM, so it’s a moderately high-spec machine but not outrageously so. The programs I use could be used by almost anyone else with a fairly modern computer – as long as it’s a Mac, of course.

The programs I use most are in my Dock so to answer the question of what my alternative apps are I’ll just list all the stuff in the Dock and briefly say why they’re there…

General System Tools

Finder. This is Apple’s program which creates the desktop environment for file management. It is a standard part of the system so it might seem pointless listing it here, but there was a long period of time when I did use an alternative called “Path Finder”. That is a great app (like the Finder on steroids) but in the end it just didn’t offer enough extra to replace the good old Finder.

Helium. This is a small app which displays a web page in a floating window. On my Mac I have the Dock and menu bar hidden so I created a small web based app (using PHP) to display the information which would normally be in those two locations (plus a bit more) such as battery level, wifi signal strength, my public IP address, etc.

Astrill. This is a VPN service I use when I want to maintain privacy or make it look like I am actually in another country. I won’t say anything more about this!

Cisco Secure Client. This is the VPN service I use at work.

Server. This is Apple’s server suite which includes services such as web serving, file sharing, and many others.

Parallels. Sometimes I need to run Windows apps (I estimate about 10 minutes per month) just to check that my web-based programs work OK on Windows. Apart from this I have no need for Windows at all. In fact I spend about 10 times as much time maintaining it as I do using it!

Remote Desktop. This is Apple’s remote management service which allows me to take control of other computers screens, install new software, get status reports, etc. I use it a lot to do remote control of other people’s Macs to help with problems and to monitor and maintain remote servers.

Productivity Apps

Notes. This is Apple’s notebook app which automatically syncs with my iPhone and iPad. I keep all sorts of temporary information here which needs to be accessible from all the Apple devices I use. For example, I might write a note here on the iPad about a wine I am trying and copy the synced version into the main database on my laptop later.

Maps. I use Apple’s map program more than Google Maps, although I do use the Google street-view feature sometimes so I do have both installed.

Reminders. I use this to keep track of my list of things to do. It syncs across all of my devices.

Calendar. I have several calendars, mostly on Apple’s iCloud service, where I keep track of my tasks for the day. These also sync across all devices so I get reminders on my iPhone for appointments entered on the laptop.

Contacts. I use Apple’s address book program synced to other devices through iCloud for keeping all my contact information. I have photos for most of the people in the list so I see a picture of the person calling, emailing, or messaging me on all my devices.

Programming Apps

Skim. This is a nice PDF viewing program which I use to read documentation files. It has some useful features but the main reason I use it as an alternative to Apple’s Preview program is just to keep the documentation in a separate place from all the other PDFs I work with.

Script Editor. I use AppleScript (Apple’s scripting language) quite a lot of small tasks on my computer (connecting to servers, launching apps, etc) as well as for more sophisticated applications I have created to automate processes on servers.

XCode. This is Apple’s program development environment. I’m not doing any “real” programming at the moment but I have used this in the past, and it has useful utility tools as well.

FileMaker Pro 11. I have to maintain this older version of FileMaker to open older databases I have created and not moved to the newer version yet.

FileMaker Pro 14. If I am creating a serious database I prefer the MySQL/PHP/Apache environment but I quite like FileMaker for creating simpler desktop databases.

BBEdit. This is my main text editor for programming. It has excellent syntax colouring, keyword autocomplete, multiple file handling, and search and replace facilities. I also use the GREP system in this program to do complicated text processing.

Safari. Apple’s web browser is the one I use for testing and debugging my web sites and apps. It has good analysis tools and follows standards well so it is well suited to this.

Terminal. My favourite app! The command line is the “killer app” for the Mac. I love the Mac’s graphical user interface but I also like getting behind the scenes and using all the power of Unix, including Apache, MySQL, PHP, and shell scripts.

Internet Apps

NetNewsWire. This is an RSS viewer. I don’t tend to use RSS feeds as a source of information much, but I use this to check that the feeds I create for my blog, etc all work OK.

Chrome. I use Google’s browser for most of my web browsing. I like it because it is fast and reliable and handles lots of tabs open simultaneously (I just checked and I currently have 33 tabs).

Messages. This is Apple’s messaging app which syncs with my iPhone and iPad so I can send and receive text messages from my computer (also phone calls and iMessages).

Mail. Apple’s Mail program has a few faults but overall it is very clean and fast. I check 8 email accounts which I use for different reasons here: my main Apple account on iCloud, my work Exchange account, and 6 GMail accounts I use for special purposes. I do have a few sync problems with some of my Google accounts but just quitting Mail and restarting it (a few seconds) usually clears them.

Skype. I don’t use Skype much but occasionally people want to communicate with me this way so I keep it ready. BTW, I don’t count this as a real Microsoft program (see below).

Media Apps

iTunes. I think we all admit that iTunes has its faults but once you get over the confusing user interface it can do a lot and there really isn’t a realistic alternative for managing iPhones, etc.

Photos. Apple’s photo storage app is simple but fast, reliable and efficient. I just use it to store and display photos because I do my photo processing in more powerful apps before adding the photo to my library. Photos also syncs my photos between my computer, iPad, and iPhone through iCloud.

General Purpose Apps

Dictionary. Apple’s dictionary program looks up multiple dictionaries as well as Wikipedia. I have over 30 dictionaries installed but usually only have about 6 active. It also integrates automatically with most programs to allow word lookup from anywhere.

TextWrangler. This is a free, slightly scaled down version of the BBEdit text editor I mentioned above. I use it to open general text files separately from my programming files.

Preview. Apple’s PDF app is surprisingly capable and I use it instead of Adobe’s clunky Adobe Reader and Acrobat. It does almost everything most users need and is really reliable and easy to use.

Pixelmator. I am a big photography fan do I need a good photo editing program. I have used Photoshop since the first version was released, but I now find Adobe apps clumsy and slow, and I don’t like their licensing. So I use Pixelmator instead. It does most of what Photoshop can do, but because it is designed specifically for the Mac it is much nicer to use.

Pages. I use Apple’s Pages for word processing. It is so nice to use a word processor which works reliably, and quickly, and fits in with the rest of the system. I would never go back to Microsoft Word which I believe is probably the single worst program ever written (because of the frustration it causes for so many users).

Numbers. Of all the Microsoft programs I have used Excel is probably the one I find most useful. But, while it is quite powerful, it is still horrible from a user interface perspective so I usually use Apple’s Numbers app instead.

Keynote. Using Apple’s Keynote instead of PowerPoint is such a luxury. I know it will work reliably, that movies will play, and that graphics will always display. Plus it has a much nicer user interface and works better with the rest of the system.

So that’s it. Notice that I am Microsoft free (apart from Skype) and Adobe free. I do still have Office and Creative Suite installed but I almost never use them (really only to help other people who use them and have problems). This is partly political (I don’t like big corporations) and partly practical (I like elegant, well designed software). And yes, I do know that Apple is a big (evil?) corporation but I can’t really work in IT without teaming up with one corporation (Microsoft, Adobe, Apple, Google, Oracle, etc) so I guess at least Apple is the best choice out of all of them.

Amazing Grace

October 6, 2015 Leave a comment

There is no doubt that in the past (and to a lesser extent in the present) women have been treated unfairly in many situations, such as when they want to become scientists. There are some obvious cases where a Nobel Prize should have been awarded to a woman but that didn’t happen or it was awarded to a man who made a lesser contribution. At one time it was virtually impossible for a woman to get an advanced education. And there are cases where they couldn’t contribute to science or were only allowed to with disadvantageous conditions, such as no pay!

On the other hand I am a bit offended by some of the attempts at redressing this imbalance. Many people produce lists of female scientists who were ignored or who have been forgotten but fail to acknowledge that a similar number of men who made a similar level of contribution have also been forgotten. Unfortunately, except in areas where the person worked, it is all too common to forget about pioneering scientists of either gender.

So there is a bit of political correctness involved in this phenomenon and I don’t like political correctness. However, I’ll put that aside and discuss one of my favourite women scientists, from my area of work (computing), Grace Hopper.

Rear Admiral Grace Murray Hopper (how cool is that) lived from 9 December 1906 to 1 January 1992 and not only made some important contributions to the early development of computer software but also sounded like she was a really interesting character.

She was one of the first programmers of the Harvard Mark I computer, and she developed the first compiler for a computer programming language. Compilers are fiendishly complex programs which convert a program written in a “high level” language to the code a computer can execute.

The instructions computers execute are very simple and do very specific things, such as adding two numbers together. But to add two numbers the computer first has to retrieve them from memory, add them, check for overflow and other conditions, then put the result back into another part of memory. So a simple operation might involve a sequence of obscure instructions such as “MOV AL, NUM1” and “ADD AL, BL”. Remember that these are human readable words for individual machine code instructions.

Humans tend to like to use more sensible instructions like “total = price + tax” which might translate to 10 or 20 machine code instructions like those above.

So a compiler is simply a program which takes the human readable code (which itself can be obscure to non-programmers) and turns it into (even more obscure) instructions which the computer can execute. It sounds simple but it’s not. The compiler has to take potentially complex strings of instructions, check that they make sense, and turn them into machine instructions (possibly hundreds just for one line of high level code) and do it perfectly. Every time.

The high level language COBOL (COmmon Business Oriented Language) was developed from an earlier language called FLOW-MATIC created by Hopper. Back in the day I programmed in COBOL – amongst a lot of other languages – and I hated it because it was too inflexible and awkward. But at least it was a lot easier than programming in assembly language (a slightly simplified version of machine code) which I also did in the past.

So in my opinion that was Hopper’s greatest contribution but there are other details and anecdotes about her I would like to share here.

In 1969 she won the first “man of the year” award from the Data Processing Management Association. Yes, I believe it was called “man” of the year. Sort of ironic, I think.

Attribution of the famous quotation “It’s easier to ask forgiveness than it is to get permission” is often given to her. This is one of my favourite quotes and a principle I often live by too! Like many quotes it’s not certain if she really used it first but it did reveal a certain rebellious part of her personality.

She also allegedly said she would com back to haunt anyone who said “we have always done in that way” in reference to why something was done a certain way. Sure, sometimes there’s a good reason why something has been done a particular way in the past but I think there’s also room to ask why and explore alternatives. That’s how she achieved what she did.

Finally there is the “bug” anecdote. Even non-specialists know that a problem with a computer, especially in software, is often known as a bug, but why? In 1947, while working on the Mark II computer at Harvard University, an associate discovered a moth stuck in a relay which stopped the computer running (yes, mechanical relays were used back then). Hopper remarked that they were “debugging” the system.

Yes, moths aren’t bugs in the technical sense, although they are insects which some people refer to as bugs. Also the term cannot be definitively attributed to Hopper, but she did at least make it popular. We don’t need to worry about that kind of bug (an insect) much any more but we sure still have plenty of the computer type!

So yes, I think “Amazing” Grace Hopper (as she became known) was pretty cool, and I hesitate to say this, but the fact that she was a woman made her even cooler!

IT Support 101

July 12, 2015 Leave a comment

As many of the followers of this blog will know, I do IT support and programming for a New Zealand university. After just spending 4 days away from “home base ” doing some quite intense and varied work I thought I might list a few hints for aspiring IT support people and anyone else who might have a passing interest. I have worked in IT since the days of the Apple II and have learned a few things in that time!

OK, here’s some of my best hints…

Hint 1: passwords.

It has been shown to be psychologically impossible for users to remember their passwords, and in the unlikely event that they do remember a password it will be even worse because it will be the wrong one, they will enter 10 times in a row, and they will lock themselves out of their own accounts.

Many users also “don’t have a password” for their email and other services. When you hear this you know you are in trouble because, of course, they do have a password which is provided automatically by the software. Generally on a Mac this can be retrieved from the system keychain – if you can get the master password for that!

Next, if a user has a password and they can remember it then it will most likely be something incredibly secure like “password” or “123” and the clue for these will naturally be “password” or “123”. Also, when you visit the same person several years later it will still be the same.

My solution to this is to give the user a reasonably secure password and record it somewhere safe for them (only with their permission, of course). I would recommend an encrypted document (with a really secure master password) and this will be stored on your hard disk which is also automatically encrypted, right? Bonus hint: get a Mac and use Apple’s built-in system, FileVault 2, which is secure enough for most situations.

Hint 2: help.

It is extremely rare to find a help system in any software which is particularly helpful. In fact I would say that all built-in help systems are basically useless. Luckily there is an alternative: our old friend Google! Yes, google the question or problem (google is now a valid verb meaning to search the web using Google) and you will generally get a much better answer much more quickly than you can get from any help system.

You do have to be aware of one effect though. That is that every new program, computer, or anything else will have many people complaining about its basic deficiencies whether these issues really exist or not. So don’t take too much notice of general comments that a certain system simply doesn’t work, especially when there is a trendy meme on that topic.

Sometimes the problem with googling (a noun derived from the verb google) is finding an answer which is specific enough. I like to include error numbers or unusual words which are more likely to give more specific information. Don’t google “Microsoft Word crash” because you’ll get millions of answers (that particular query might even overload Google!). Try “word mac hangs at launch” or something like that. Even better, use the Console app (on Mac) to check error logs and find more specific error information.

Hint 3: generic solutions.

Have you ever contacted a helpdesk and been told to reset your modem, restart your computer, rebuild a database, re-install your software, or just to “try it again?” Of course you have! These are what I call “generic solutions” and they are usually (but not always) given when the person has no idea what is going on.

That’s not to say that they won’t work or that you shouldn’t use them, but by using them you do lose something. Specifically you lose the chance to really know what went wrong, because the information needed to diagnose the source of the problem might be lost after a reboot, etc.

So I recommend trying to actually solve the issue unless you specifically know of a problem which cannot be fixed realistically any other way. In some cases I use this solution myself, usually when I want a particularly nasty problem to just go away. For example Microsoft Outlook is a horrendous mess which often corrupts its master database. I’ve never figured out why and would prefer it if people just didn’t use the program, but if they do use it and when (not if) the database becomes corrupted a rebuild is an easy solution.

Hint 4: burning bridges.

Some functions we perform on computers cannot be undone, or if they can be it might involve a huge effort. For example, deleting a settings file, because you think it is corrupt, might fix a problem. But on the other hand it might not fix it, and it might create more problems because valuable settings are lost.

So just move it to a new location or rename it instead. Remember that if you just move it some programs will continue to use it, even in the new location, even if that location is the trash! Relaunching the program, including any background processes, will usually persuade it to relinquish control of the file. And yes, reboot if you must!

If the process above doesn’t fix the problem you can just reverse the steps to get back to where you were. Don’t forget that any file re-created when the app launches will be in use and won’t be able to be replaced unless you quit the app first.

Hint 5: everyone is different.

Every user, every job, every computer, and every situation is different. Don’t get too hung up on policies, rules and regulations. These can be useful as general guidelines but I prefer to evaluate every case on its own merits and come up with an optimal solution for the user. Of course, many bureaucrats don’t like this but I always feel I am there for the users, not the bureaucrats.

Naturally this idea is a bit contentious so use it sensibly. If there are corporate requirements which aren’t too onerous it makes sense to follow them rather than risk problems later. Choose which battles are worth fighting!

Hint 6: don’t panic, and be nice.

This is the ultimate hint really and one that can be very difficult to always follow. I do have to say that on occasions I get frustrated with poor infrastructure, substandard programs some people are forced to use, and outdated hardware which really should be replaced, and might launch into a rant regarding the unfairness of it all.

I generally regret these and a simple statement like: “Unfortunately our network is very unreliable so we can’t give a perfect solution to this problem”, or “Yes, Microsoft PowerPoint often does that and I’m sorry but it can’t be fixed by anyone except Microsoft” is more effective anyway.

Also, don’t try to force people into working in a way which doesn’t suit them. When I was a beginner computer support person I tried to persuade people to adopt a zero desktop clutter policy, or to use PDFs instead of printing, but I now realize that is the wrong approach.

Many people just like throwing junk on their desktop even though I believe it is better to reserve it for stuff which is currently being used or awaiting being filed in a permanent location. By the way, the ability to find files amongst the clutter by just typing the first few letters of their name is a revelation to some users!

And most people still really like paper and I can see why because it has a lot of benefits, so let them use paper if they must. Maybe creating a preset to print double-sided might be a more valuable contribution to saving the trees than trying to eliminate paper completely.

Sometimes people have such hideous computer habits that it is worth trying to correct them. For example I once had a user who stored her documents in the trash because then they “wouldn’t use space on her disk”! That was an accident waiting to happen. And if people store so many items on their desktop that they overflow and pile up on top of each other at the top-right of the screen it is worth encouraging them to use an alternative strategy.

A secret stealth weapon I often use is to be nice. Many people get stressed when their computer is misbehaving and they might not treat you as well as they should. But being nice back to them – even if they are being a real ass – is something they might not expect and often works really well.

I once had a senior manager call me and rant about something I had done and when he threatened to never let me work in his department again I said “That’s unfortunate because apart from this I thought we had a really good working relationship”. I then went on to explain why I had done what I had done and he agreed that he had over-reacted. In the end he apologized to me!

So those are my IT support 101 hints. I hope you find them useful. Now I just need to take my own advice and eliminate those rants!

In Defence of Pirates

December 26, 2013 1 comment

Because I work with computers I know a lot of people who download material from the internet which might technically be copyrighted – in which case you might call those people pirates. The most common material I have seen downloaded this way is music, movies and computer software.

Of course the big corporations who make a lot of money out of distributing this sort of material don’t like it and there are various schemes, which have varying levels of effectiveness, to try to stop it. Depending on who you listen to the “problem” might be getting better or worse, but I want to ignore that and talk about whether it is a good or bad thing, and if it is a bad thing, how bad.

I heard a podcast recently which presented some arguments against piracy and I want to respond to them here, because I don’t think most of them are valid. Note that I’m not encouraging people to go out and break copyright laws, but I’m not condemning anyone who does either!

The first argument I hear is what is the difference between taking a music track for free from the internet and taking an item, such as an iPod, from a retail store?

People who condemn piracy will say the two are the same but clearly they aren’t. Anyone who steals a physical object has taken something with a real value, and when it is gone that value is also gone. By copying a song no real value has gone because the “owner” of the song has physically lost nothing.

You might say that a value can be placed on each copy of the song, or each time it is played, or using some other criteria, but that is an artificial and arbitrary value with little relevance to the actual objective value of the object (and in fact there is no object because it is only information which has been copied).

Another argument is that musicians, film makers, software developers, etc rely on income from their material to survive and by taking that income less material will be produced.

Well I see no sign of that. I don’t see a lot of musicians changing their career to accountancy because they can’t make money from songs, for example. And companies with little copy protection in place (such as Apple on their operating system) are doing as well or better than those with silly protection schemes which inconvenience real customers (such as Microsoft).

Sometimes the point is made that pirates justify their illegal actions by using convoluted rationalisations such as “musicians want their music to be heard” or “music corporations are evil” or “I am just liberating the music”.

Actually, although the actual words might not be the best, the sentiment behind these is absolutely true. Many musicians actually do want their music heard by as many people as possible. Big music corporations are evil. And making an important part of our culture free is a form of liberation in some sense. So maybe those are rationalisations, but that doesn’t mean they aren’t true.

Here’s another rationalisation (which may or may not be true): music (or movies or software) is far too expensive and if it cost a bit less people would be prepared to pay for it.

You might say that just because something costs too much that doesn’t give you the right to take it for free, but maybe it does. Prices will only come down if they are forced down by some new model. Since the big corporations won’t play fair maybe the consumer has to force them to change by being “unfair”.

And there is good anecdotal evidence that reducing pricing does encourage more people to actually pay. Software stores, like Apple’s app store, provide software very cheaply and I know many people now who just buy stuff there instead of going to the trouble of pirating it. If a program costs $20 many people will just buy it when at $200 they might not.

Another point often made is this: when you pay for music most of the money goes to useless parasites. One estimate gave the following break down for the cost of a US$12 CD: $2 to record company profits and executive salaries, $1.10 for manufacturing, $0.80 to the performer (some estimates are as low as $0.41), $0.65 to the songwriter, and the rest to managers, lawyers, accountants, distribution, etc.

In fact the return on music sales is so little to the artist that many rely on live performances and related products to make money. If they do this then getting as much music as possible to the public (even if it’s free) is surely a good thing.

Here’s something which actually makes me want to pirate movies: when I play a DVD or Blu-Ray which I have bought I often have to watch a tedious advertisement on the evils of piracy. The person who has pirated the movie has this stripped out and doesn’t see it! So only legitimate buyers are lectured about piracy! This more than anything else shows the absolute stupidity of the music companies.

And another similar issue: purchased movies on disk can only be played by players with the correct region. This is a constant problem on computers. Pirated movies have this region stuff stripped out. Again, only the legitimate buyer is inconvenienced.

Finally there’s this ultimate argument: if you don’t like the distribution model you don’t have to listen to the music, watch the movie, or use the software. Again I think this is a false argument. These things are important parts of our culture which have been hijacked by big corporations. They have no right to control them and I don’t think that argument holds as a result.

So piracy is still illegal, but laws are made by politicians being pressured by big companies, so that’s not necessarily important. All I will say is that maybe those pirates aren’t as bad as many people think!

A New iPad

November 25, 2013 Leave a comment

I was one of the first people in New Zealand to get an iPad because I bought one from Australia before they were even available here. It was the original iPad with 64G of storage and the 3G cell function. I have used it for many years and it has been very reliable and useful but recently it has become obvious that the older devices just can’t do everything I want anymore.

For example my old iPad won’t run the latest version of iOS, or even the version before that! It doesn’t run a lot of the latest software and some of the newer software which it does run is a bit slow. And it doesn’t even have a camera.

So it was clearly time to get a new iPad and I considered the iPad Mini which I decided I really do like after using one for a day. But it has a smaller screen and I already have an iPhone 5 with a small screen so the iPad Air seemed to make more sense, and that’s what I now have.

So what are my initial impressions after using it for about 12 hours?

Well, it’s light and compact. It’s not as light as a Mini but definitely easier to hold than the original iPad which starts feeling rather heavy after a while. The screen is the same size as other full-size iPads but the device itself is not as wide and a lot thinner.

The screen is very nice. It’s a high-resolution retina display and it’s very detailed and has plenty of brightness. The brightness changes slightly when viewed off-center but it’s really hardly noticeable.

And it’s fast. Everything launches quickly, the graphics in games is super fast, and it seems that nothing takes any time at all.

I haven’t had much of a chance to evaluate the camera but I would most likely use the iPhone camera or my SLR anyway so just the fact that it has one at all is useful.

It’s taking me a long time to get this device set up the way I like because instead of just moving everything from the old device I’m setting this one up again from scratch. This should give me a chance to throw out old stuff I don’t use any more.

So I have a couple of hundred apps to sort through, a whole pile of on-line services to configure, and lots of media to shift across. It will take a few days to get things fully operational and a few more to get a real idea of how useful this new device is.

So maybe in a week I might post a full review. But what’s the point really? I know I’m going to love this thing. It’s brilliant!

Art and Science

October 4, 2013 Leave a comment

You might have noticed that it has been a while (about a week, I think) since I last wrote a blog entry. That is mainly because I have been quite busy with work and haven’t had much free time. As a result I thought I might write a blog entry about work, but not just the mundane day to day trivia of a lot of my work, more the fun of doing cool geeky computer things, especially programming.

The thing I like about programming (including “lightweight” programming like building websites and databases) is that it is such an interesting combination of art and science. I don’t mean art and science in the most correct, technical sense so maybe the words “design” and “engineering” might be more accurate, but not quite as catchy!

The design/art aspect isn’t just the visual appearance of a program, website, etc. It’s the way the program interacts with the user, the dynamics, the consistency and intuitiveness, and many other subtle elements.

And the engineering/science part isn’t just knowing how to put programming instructions together in a way which achieves a particular outcome. It’s about building algorithms which are elegant in terms of being reliable, fault-tolerant, efficient, easy to extend and maintain, and easy to understand.

Let me give an example of design. This is a very simple, visual thing so it is easy to understand, but it is subtle enough that users might not even notice that it exists. One of my web apps needed an indicator to show that a particular function was active. The user clicked a button and chose some options in a dialog window which then was dismissed. I could have shown the option was active with a check mark next to it, or it could have changed colour, or many other possibilities, but I decided to use a flashing border. Except, of course, it didn’t flash, it pulsed using a non-linear animation from black through white. I spent at least an hour fine tuning the timing of that animation yet many people don’t even notice. But if it had been a simple border it would have been too subtle and if it had simply flashed on and off it would have been too garish. I make hundreds of design decisions like that in every project.

Now let me give an example of engineering. Actually this is more a policy or philosophy rather than a specific example. Many of my projects have database “back-ends” which feed the web page or application with data. Often these databases contain hundreds of thousands or even millions of records so quick access, sorting, and searching is sometimes not trivial (even though I use MySQL, a database with a reputation for speed). So I use integer keys and fixed length records wherever possible even though that often involves complex inter-relationships with variable length record tables. It’s a technique which is well known but probably isn’t used in many cases where it should be simply through lack of attention to detail.

I know that it is all worth it when I watch people use different systems. Using my systems (and yes, I know they aren’t perfect and there are no doubt areas where things could be better) people don’t wait because almost every operation is instant. I have seen users log-in retrieve the information they want, and disconnect again from my system in less time than it takes to just log-in to many grossly overpriced corporate systems running on expensive hardware.

But why do they “big guys” get it wrong so often? They just don’t care about quality. The big companies only care about making money with minimum effort and risk. See my rant about one of the most incompetent of all, Talent2, in a previous post titled “Corporate Newspeak” from 2013-03-21. I’m sure there are programmers working for these companies who would like to do things properly, but their efforts will be crushed by bureaucratic, incompetent, and corrupt management.

And it extends beyond corporate databases. Many of the big software companies create pretty average products (I’m sure I don’t need to mention Microsoft by name here). Some of them create quite good software but over-price it or spoil the experience with unworkable licensing and copy protection schemes (yes, obviously I’m talking about Adobe). While others have captured a particular market (more through their customers’ habits and fear of change than anything related to quality) and produce very poor software products (Cisco for example).

Few of the big companies have any art. They do have some science I admit, but mostly they are about that third category of human endeavour: commerce, and that rarely produces anything worthwhile.