Archive

Posts Tagged ‘software’

Random Clicking

January 14, 2018 Leave a comment

Nowadays, most people need to access information through computers, especially through web sites. Many people find the process involved with this quite challenging, and this isn’t necessarily restricted to older people who aren’t “digital natives”, or to people with no interest in, or predisposition towards technology.

In fact, I have found that many young people find some web interfaces bizarre and unintuitive. For example, my daughter (in her early 20s) thinks Facebook is badly designed and often navigates using “random clicking”. And I am a computer programmer with decades of experience but even I find some programs and some web sites completely devoid of any logical design, and I sometimes revert to the good old “random clicking” too!

For example, I received an email notification from Inland Revenue last week and was asked to look at a document on their web site. It should have taken 30 seconds but it took closer to 30 minutes and I only found the document using RC (random clicking).

Before I go further, let me describe RC. You might be presented with a web site or program/app interface and you want to do something. There might be no obvious way to get to where you want to go, or you might take the obvious route only to find it doesn’t go where you expected. Or, of course, you might get random error message like “page not available” or “internal server error” or even the dreaded “this app has quit unexpectedly” or the blue screen of death or spinning activity wheel.

So to make progress it is necessary just to do some RC on different elements, even if they make no sense, until you find what you are looking for. Or in more extreme cases you might even need to “hack” the system by entering deliberately fake information, changing a URL, etc.

What’s going on here? Surely the people involved with creating major web sites and widely used apps know what they are doing, don’t they? After all, many of these are the creations of large corporations with virtually unlimited resources and budgets. Why are there so many problems?

Well, there are two explanations: first, that errors do happen occasionally, no matter how competent the organisation involved is, and because we use these major sites and apps so often we will tend to see the errors more often too; and second, large corporations create stuff through a highly bureaucratic and obscure process and consistency and attention to detail is difficult to attain under such a scheme.

When I encounter errors, especially on web sites, I like to keep a record of it by taking a screenshot. I keep this in a folder to make me feel better if I make an error on any of my own projects, because it reminds me that sites created by organisations with a hundred programmers and huge budgets often have more problems those created by a single programmer with no budget.

So here are some of the sites I currently have in my errors folder…

APN (couldn’t complete your request due to an unexpected error – they’re the worst type!)
Apple (oops! an error occurred – helpful)
Audible (we see you are going to x, would you rather go to x?)
Aurora (trying to get an aurora prediction, just got a “cannot connect to database”)
BankLink (page not found, oh well I didn’t really want to do my tax return anyway)
BBC (the world’s most trusted news source, but not the most trusted site)
CNet (one of the leading computer news sources, until it fails)
DCC (local body sites can be useful – when they work)
Facebook (a diabolical nightmare of bad design, slowness, and bugginess)
Herald (NZ’s major newspaper, but their site generates lots of errors)
InternetNZ (even Internet NZ has errors on their site)
IRD (Inland Revenue has a few good features, but their web site is terrible overall)
Medtech (yeah, good luck getting essential medical information from here)
Mercury (the messenger of the gods dropped his message)
Microsoft (I get errors here too many times to mention)
Fast Net (not so fast when it doesn’t work)
Origin (not sure what the origin of this error was)
Porsche (great cars, web site not so great)
State Insurance (state, the obvious choice for a buggy web site)
Ticketmaster (I don’t have permission for the section of the site needed to buy tickets)
TradeMe (NZ’s equivalent of eBay is poorly designed and quite buggy)
Vodafone (another ISP with web site errors)
WordPress (the world’s leading blogging platform, really?)
YesThereIsAGod (well if there is a god, he needs to hire better web designers)

Note that I also have a huge pile of errors generated by sites at my workplace. Also, I haven’t even bothered storing examples of bad design, or of problems with apps.

As I said, there are two types of errors, and those caused by temporary outages are annoying but not disastrous. The much bigger problem is the sites and apps which are just inherently bad. The two most prominent examples are Facebook and Microsoft Word. Yes, those are probably the most widely used web site and most widely used app in the world. If they are so bad why are they so popular?

Well, popularity can mean two things: first, something is very widely used, even if it is not necessarily very well appreciated; and second, something which is well-liked by users and is utilised because people like it. So you could say tax or work is popular because almost everyone participates in them, but that drinking alcohol, or smoking dope, or sex, or eating burgers is popular because everyone likes them!

Facebook and Word are popular but most people think they could be made so much better. Also many people realise there are far better alternatives but they just cannot be used because of reasons not associated with quality. For example, people use Facebook because everyone else does, and if you want to interact with other people you all need to use the same site. And Word is widely used because that is what many workplaces demand, and many people aren’t even aware there are alternatives.

The whole thing is a bit grim, isn’t it? But there is one small thing I would suggest which could make things better: if you are a developer with a product which has a bad interface, and you can’t be almost certain that you can improve it significantly, don’t bother trying. People can get used to badly designed software, but coping with changes to an equally bad but different interface in a new version is annoying.

The classic example is how Microsoft has changed the interface between Office 2011 and Office 2016 (these are the Mac versions, but the same issue exists on Windows). The older version has a terrible, primitive user interface but after many years people have learned to cope with it. The newer version has an equally bad interface (maybe worse) and users have to re-learn it for no benefit at all.

So, Microsoft, please just stop trying. You have a captive audience for your horrible software so just leave it there. Bring out a new version so you can steal more money from the suckers who use it, but don’t try to improve the user interface. Your users will thank you for it.

Advertisements

Is Apple Doomed?

December 20, 2017 5 comments

I’m a big Apple fanboy. As I sit here writing this blog post (flying at 10,000 meters on my way to Auckland, because I always write blog posts when I fly) I am actively using 4 Apple products: a MacBook Pro computer, an iPad Pro tablet, an iPhone 6S Plus smartphone, and an Apple Watch. At home I have many Apple computers, phones, and other devices. I also have one Windows PC but I very rarely use that.

So the general state of Apple’s “empire” is pretty important to me. Many of the skills I have (such as general trouble-shooting, web programming, scripting, configuration, and general software use) could be transferred to Windows, but I just don’t want to. I really like the elegance of Apple’s devices on the surface, combined with the power of Unix in the background.

But despite my enthusiasm for their products I have developed an increasing air of concern with Apple’s direction. There is the indistinct idea that they have stopped innovating to the extent they did in the past. Then there is the observation that the quality control of both hardware and software isn’t what it was. Then there is just a general perception that Apple are getting too greedy by selling products at too high a price and not offering adequate support for the users of their products.

These opinions are nothing new, but what is new is that people who both know a lot about the subject, and would normally be more positive about Apple, are starting to join in the criticism. Sometimes this is through a slight sense of general concern, and other times through quite strident direct criticism.

I would belong to the former class of critics. I think I have noticed an increase in the number of errors Apple is making, at the same time as I notice an apparent general decrease in the overall reliability of their products, and to make matters worse, these are accompanied by what seems to be higher prices.

You will notice I used a lot of qualifiers in the sentence above. I did this deliberately because I have no real data or objective statistics to demonstrate any of these trends. They might not be real because it is very easy to start seeing problems when you look for them, and negative events often “clump” into groups. Sometimes there might be a series of bad things which happen after a long period with no problems, but that doesn’t mean there is any general trend involved.

But now is the time for anecdotes! These don’t mean much, of course, but I want to list a few just to give an idea of where my concern is coming from.

Recently I set up two new Mac laptop computers in a department where there was a certain amount of pressure from management to switch to Microsoft Surface laptops. The Surface has a really poor reputation for reliability and is quite expensive, so it shouldn’t be difficult to demonstrate the superiority of Apple products in this area, right?

Well, no. Wrong, actually. At least in this case. Both laptops had to go for service twice within the first few weeks. I have worked with Apple hardware for decades and have never seen anything remotely as bad as this. And the fact that it was in a situation where Apple was under increased scrutiny didn’t help!

In addition, the laptops had inadequate storage, because even though these are marketed as “pro” devices the basic model still has only 128G of SSD storage. That wasn’t Apple’s fault, because the person doing the purchasing should have got it right, but it didn’t help!

Also recently Apple has suffered from some really embarrassing security flaws. One allowed root access to a Mac without a password, and the other allowed malicious control of automated home-control devices. There were also a few other lesser issues in the same time period. As far as I now none of these were exploited to any great extent, but it is still a bad look.

Another issue which seems to be becoming more prominent recently is their repair and replacement service. In general I have had fairly good service from Apple repair centers, but I have heard of several people who aren’t as happy.

When you buy a premium device at the premium price Apple demands I don’t think it is unreasonable to expect a little bit of extra help if things go wrong. So unless there is clear evidence of fraud, repairs and replacements should be done without the customer having to resort to threats and demands for the intervention of higher levels of staff.

And even if a device only has one year of official warranty (which seems ridiculous to begin with), Apple should offer a similar level of support for a reasonable period without the customer having to resort to quoting consumer law.

Even if Apple wasn’t interested in doing what was morally right they should be able to see that providing superior service for what they claim is a superior product at a superior price is just good business because it maintains a positive relationship with the customer.

My final complaint regards Apple’s design direction. This is critical because whatever else they stand for, surely good design is their primary advantage over the opposition. But some Apple software recently has been obscure at best and incomprehensibly bizarre at worst, and iTunes has become a “gold standard” for cluttered, confusing user interfaces.

When I started programming Macs in the 1980s there was a large section in the programming documentation about user interface design. The rules were really strict, but resulted in consistent and clear software which came from many different developers, including Apple. I don’t do that sort of programming any more but if a similar section exists in current programming manuals there is little sign that people – even Apple themselves – are taking much notice!

So is Apple doomed? Well probably not. They are (by some measures) the world’s biggest, richest, and most innovative company. They are vying with a few others to become the first trillion dollar company. And, in many ways they still define the standard against which all others are judged. For example, every new smart phone which appears on the market is framed by some people as an “iPhone killer”. They never are, but the fact that products aspire to be that, instead of a Samsung or Huawei killer says a lot about the iPhone.

But despite the fact that Apple isn’t likely to disappear in the immediate future, I still think they need to be more aware of their real and perceived weaknesses. If they aren’t there is likely to be an extended period of slow decline and reduced relevance. And a slow slide into mediocrity is, in many ways, worse than a sudden collapse.

So, Tim Cook, if you are reading this blog post (and why wouldn’t you), please take notice. Here’s just one suggestion: when your company releases a new laptop with connections that are unusable without dongles, throw a few in with the computer, and keep the price the same as the model it replaces, and please, try to make them reliable, and if they aren’t, make sure the service and replacement process is quick and easy.

It’s really not that hard to avoid doom.

Blog Posts and Podcasts

October 26, 2017 Leave a comment

It has been a while since I created a new blog post, but if you are feeling neglected, never fear! I have not given up writing them, and still have many ideas I want to discuss. I’m sure the world is relieved to hear this news!

The reason I haven’t posted anything for 10 days is that I have been concentrating on podcasts.

Just in case you haven’t caught up, a podcast is an audio recording (usually a spoken discussion or reading) which can be downloaded from the internet and listened to at any time, usually on a smart phone, but also possibly on a computer, tablet, or similar device. There will be a feed which allows you to “subscribe” and be notified of new podcasts, which are usually created regularly as a series. Alternatively individual programs can be accessed through a normal web page.

My podcasts are at http://ojb.nz/owen/XuPodcasts/Podcasts.html
and the RSS feed is http://ojb.nz/owen/XuRSS/RSS2.xml

At one point in the past I was creating these fairly regularly, but have gone through a period where I neglected them a bit. Recently I got back into the fine art of podcasting, which is quite involved. My podcasts are usually between 5 and 10 minutes in length but most require about an hour to create.

First I need to record the program. I find a quiet space and read the material into my computer. Including errors, phone calls and other interruptions, re-reads, etc this usually ends up being twice as long as it should be!

Then I edit the audio file I recorded using an audio program. I currently use the quite powerful, free program, Audacity. I remove the errors and repeats, fix the spacing by adding and removing gaps, improve the overall tempo, standardise the volume level, and improve the pitch dependent on the room I did the reading in. On a few podcasts I also add music or sound effects. Finally, I export the file as an MP3.

The last step is to write the XML and HTML (don’t worry if you don’t know what these are) so that the files can be accessed through a news aggregator program (I use NetNewsWire), a podcasting app (I use Downcast on my iPhone), or a web browser (such as Safari or Chrome). And I put all of those components on my web server (ojb.nz), of course.

So what is in these podcasts? Well mostly they are just audio versions of my favourite blog posts and web pages. There’s nothing new in them and the podcast just provides an alternative way to get my valuable thoughts!

So if you are already bored with reading this stuff then now there is a new way for you to get bored. Now you can also achieve this by listening!

If you want some recommendations from the (currently) 74 podcasts on my site, try these…

2012-04-27 – Its Five Day Mission
2014-04-25 – The Libertarian Dream
2017-05-23 – A Ticket to Heaven
2014-02-19 – All My Macs
2016-03-16 – Sadness and Beauty
2017-10-16 – Child or Picasso?
2015-09-21 – Insulting Sir Pita

Remember, these are all available at http://ojb.nz/owen/XuPodcasts/Podcasts.html

There’s a combination of stuff there which I hope most people would find interesting. If you do listen and have any thoughts, let me know in the comments for this blog post.

1K of RAM

July 25, 2017 Leave a comment

One of my first computers had just 1K of RAM. That’s enough to store… well, almost nothing. It could store 0.01% of a (JPEG compressed) digital photo I now take on my dSLR or 0.02% of a short (MP3 compressed) music track. In other words, I would need 10 thousand of these devices (in this case a Sinclair ZX80) to store one digital photo!

I know the comparison above is somewhat open to criticism in that I am comparing RAM with storage and that early computers could have their memory upgraded (to a huge 16K in the case of the ZX80) but the point remains the same: even the most basic computer today is massively superior to what we had in the “early days” of computers.

It should be noted that, despite these limitations, you could still do stuff with those early computers. For example, I wrote a fully functioning “Breakout” game in machine code on the ZX80 (admittedly with the memory expansion) and it was so fast I had to put a massive loop in the code to slow it down. That was despite the fact that the ZX80 had a single 8 bit processor running at 3.25 MHz which is somewhat inferior to my current laptop (now a few years out of date) which has four 64 bit cores (8 threads) running at 2.5 GHz.

The reason I am discussing this point here is that I read an article recently titled “The technology struggles every 90s child can relate to”. I wasn’t exactly a child in the 90s but I still struggled with this stuff!

So here’s the list of struggles in the article…

1. Modems

Today I “know everything” because in the middle of a discussion on any topic I can search the internet for any information I need and have it within a few seconds. There are four components to this which weren’t available in the 90s. First, I always have at least one device with me. It’s usually my iPhone but I often have an iPad or laptop too. Second, I am always connected to the internet no matter where I am (except for rare exceptions). Third, the internet is full of useful (and not useful) information on any topic you can image. And finally, Google makes finding that information easy (most of the time).

None of that was available in the 90s. To find a piece of information I would need to walk to the room where my desktop computer lived, boot it, launch a program (usually an early web browser), hope no one else was already using the phone line, wait for the connection to start, and laboriously look for what I needed (possibly using an early search engine) allowing for the distinct possibly that it didn’t exist.

In reality, although that information retrieval was possible both then and now, it was so impractical and slow in the 90s that it might as well have not existed at all.

2. Photography

I bought a camera attachment for one of my early cell phones and thought how great it was going to be taking photos anywhere without the need to take an SLR or compact (film) camera with me. So how may photos did I take with that camera? Almost none, because it was so slow, the quality was so bad, and because it was an attachment to an existing phone it tended to get detached and left behind.

Today my iPhone has a really good camera built-in. Sure it’s not as good as my dSLR but it is good enough, especially for wide-angle shots where there is plenty of light. And because my iPhone is so compact and easy to take everywhere (despite its astonishing list of capabilities) I really do have it with me always. Now I take photos every day and they are good enough to keep permanently.

3. Input devices

The original item here was mice, but I have extended it to mean all input devices. Mice haven’t changed much superficially but modern, wireless mice with no moving parts are certainly a lot better than their predecessors. More importantly, alternative input devices are also available now, most notably touch interfaces and voice input.

Before the iPhone no one really knew how to create a good UI on a phone but after that everything changed, and multi-touch interfaces are now ubiquitous and (in general, with a few unfortunate exceptions) are very intuitive and easy to use.

4. Ringtones

This was an item in the article but I don’t think things have changed that much now so I won’t bother discussing this one.

5. Downloads

Back in the day we used to wait hours (or days) for stuff to download from on-line services. Some of the less “official” services were extremely well used back then and that seems to have reduced a bit now, although downloading music and movies is still popular, and a lot faster now.

The big change here is maybe the change from downloads to streaming. And the other difference might be that now material can be acquired legally for a reasonable price rather than risking the dodgy and possibly virus infected downloads of the past.

6. Clunky Devices

In the 90s I would have needed many large, heavy, expensive devices just to do what my iPhone does now. I would need a gaming console, a music player with about 100 CDs to play in it, a hand-held movie player (if they even existed), a radio, a portable TV, an advanced calculator, a GPS unit, a compass, a barometer, an altimeter, a torch, a note pad, a book of maps, a small library of fiction and reference books, several newspapers, and a computer with functions such as email, messaging, etc.

Not only does one iPhone replace all of those functions, saving thousands of dollars and about a cubic meter of space, but it actually does things better than a lot of the dedicated devices. For example, I would rather use my iPhone as a GPS unit than a “real” GPS device.

7. Software

Software was a pain, but it is till often a pain today so maybe this isn’t such a big deal! At least it’s now easy to update software (it often happens with no user intervention at all) and installing over the internet is a lot easier than from 25 floppy disks!

Also, all software is installed in one place and doesn’t involve running from disk or CD. In fact, optical media (CDs and DVDs) are practically obsolete now which isn’t a bad thing because they never were particularly suitable for data storage.

8. Multi-User, Multi-Player

The article here talks about the problem of having multiple players on a PlayStation, but I think the whole issue of multiple player games (and multi-user software in general) is now taken for granted. I play against other people on my iPhone and iPad every day. There’s no real extra effort at all, and playing against other people is just so much more rewarding, especially when smashing a friend in a “friendly” race in a game like Real Racing 3!

So, obviously things have improved greatly. Some people might be tempted to get nostalgic and ask if things are really that much better today. My current laptop has 16 million times as much memory, hundreds of thousands times as much CPU power, and 3000 times as many pixels as my ZX80 but does it really do that much more? Hell, yes!

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!