Category Archives: Apple

How to turn off shared calendar alerts in iOS 6 and above

iOS 6 has a new feature where if you are using a shared calendar and someone else makes any change – creates a new event, moves and event, changes length of event, etc – then you will get an alert on your iPhone or iPad. Personally, I find this very annoying as often the people I share calendars with add or edit tens of events at a time and my iPhone just keeps beeping away like crazy.

I eventually figured out how to turn this alert off. Just go to the Settings app, scroll down and select “Mail, Contacts, Calendars”, then scroll down again until you see the “Shared Calendar Alerts” setting and just flick it off. Now your phone won’t have a fit when other people add or edit calendars.

Shared calendar alerts off switch

How to spoof a MAC address on OS X Lion 10.7 (and probably Leopard)

It used to be a little easier to do before Leopard (10.5), but you can still spoof a MAC address rather easily in OS X Lion. If you don’t know why you’d want to spoof a MAC address then you probably don’t want to be doing it, but there are plenty valid reasons why you’d want to do so. Here are some steps on how to fake your address to the example MAC address of fa:ca:dd:fa:ca:dd, and there’s a more detailed description of each step below if you’re interested. Stuff marked like this should by typed into Terminal.

1. Decide which network interface you want to spoof, this is probably en0 or en1, remember which one you pick. I’ll assume you are using en1 for the remaining steps.
2. ifconfig Take a note of your current MAC address for your interface (en0 or en1) in case you want to revert later (but don’t worry if you forget, a reboot will always revert it to the real MAC address anyway).
3 (Wi-Fi only). sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
4 (Wi-Fi only). Wait about 10 seconds
5. sudo ifconfig en1 ether fa:ca:dd:fa:ca:dd

* Note if you want to know the MAC addresses of other devices already on the network you can view the arp table by doing…

arp -a

More detail on the steps for those who like to know what’s going on…

(1) Firstly, identify which network interface you want to change, the wired connection or the Wi-Fi. If you have both then they are most likely en0 for wired and en1 for Wi-Fi. If you only have one, such as the MacBook Air that only has Wi-Fi, then it’s probably en0. You can see a list of your network interfaces by typing ifconfig into Terminal. Alternatively, launch the Network Utility app in the Application/Utilities and you’ll see them in the drop-down list there.

(2) Regardless of whether you use ifconfig or Network Utility you’ll see the MAC address listed so take a note of it so that you can revert back later. By the way, if you forget it your machine will always revert to the true MAC address when you reboot anyway so don’t worry.

(3) The next step is to use the airport command to disassociate completely. This is necessary because if you try to set it to fake a MAC address and you are already connected to a network then the change probably won’t take affect. The command you use to do this is /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport. If you are going to be doing this a lot though then you may want to create a symbolic link to the command so you don’t have to keep typing the full path. To do that type in…

sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport /usr/sbin/airport

After that you you can just type ‘airport’ from then on instead of typing the full path. So now to disassociate you just type…

sudo airport -z

(4) Even if your Wi-Fi icon goes grey immediately you should still wait 5-10 seconds to make sure it is fully disconnected before proceeding.

(5) This command is the one that tells OS X to pretend that the interface has a different MAC address.  At this point you probably want to check that the change has actually worked.  The easiest way to do this is to type the following and check that one of the results is the fake MAC you just set…

ifconfig | grep ether

How to handle ‘No previous prototype for function’ warnings in Xcode

When compiling code in Xcode 4 you may be seeing warnings saying ‘No previous prototype for function…’.  This is probably happening if you are using a library that has at least some parts written in C/C++.  This warning may even be appearing in code that previously compiled fine in Xcode 3 without any warnings.  This is because Xcode 4’s default compiler warns about this when Xcode 3’s did not.

Anyway, the warning is simply saying that a function implementation exists but no matching function declaration was found.  If you are used to Objective-C only this is like saying that you have the implemented code in the .m file but you don’t have the function listed in the .h.  It’s easy to fix, just write the method declaration in anywhere before the actual method; you can write it in the .m or .h, it won’t matter as long as it’s before the actual function.

For example, if you have a method such as…

float doSimpleMaths(float a, float b) {
   return (a*a)*(b*b);
}

Then to get rid of the warning just add in the method declaration before the method…

float doSimpleMaths(float a, float b);
float doSimpleMaths(float a, float b) {
   return (a*a)*(b*b);
}

Is OS X Lion a bad operating system?

I’ve been using OS X Lion for a while now, and over half a year after its initial release, I continue to have a niggly feeling that it is a bit poor overall. Now, before I go any further I feel I have to preface this post with some clear points. Firstly, I think OS X is currently the best operating system on the market, and I personally love it. Secondly, whilst I appreciate that Windows 7 is a good OS, and that Linux is superb on servers, I believe OS X is far better than either of these when it comes to consumer OSs. Finally, whilst I have issues with OS X that I’m going to describe here, overall I think it is great and I’m not going to stop using it anytime soon. So, hopefully you know that I am writing this article as someone who does indeed love OS X.

So why do I have a bad feeling about Lion? There are several specific issues I have, and also some much larger overall points. Let’s start with some of the specifics, as they are easier to describe. I hope you don’t feel I am being overly picky as I list these issues. I believe they are symptomatic of the larger issues, and so they are useful illustrations.

 

Exposé

Exposé is undoubtedly one of the best features of any OS. When it was introduced I was blown away by how easily it made viewing and navigating all the open application windows at once. When Spaces (the ability to have multiple desktops) was introduced later in 10.5 (Leopard) Apple made sure that you could still view and navigate all application windows at once even if you had many spaces. You just activated Spaces, and then hit the Exposé key, and you could see all windows on all Spaces splay out. There were no overlapping windows so you could see the entirety of every single window. You could also navigate to any window you wanted using either the mouse or keys. Both in usability design and aesthetic appeal it was bliss; regardless if you were using one desktop or many. For me, Lion destroys the usability of Exposé. Firstly, if you have multiple Spaces there is now no way whatsoever to see all your open application windows. If you activate Exposé it only applies to the current Space/desktop, and although you can see the other Spaces the windows on them have not moved into the Exposé mode.

 

 

Windows are now also grouped by application, and each application’s windows are overlapped. For example, if you have five Safari windows open they will be grouped into one element in Exposé and overlap. In the first screenshot above I have five Safari sites with Wikipedia, Ars Technica, Engadget, Mac Rumors, and AppleInsider. However, in Exposé it is almost impossible to tell how many Safari windows there are nevermind the content of each. In the second screenshot, when activating Exposé from my second Space (Desktop 2), you can barely even tell that there are any Safari windows open at all.

Indeed, this grouping problem applies even if you only have one Space/desktop. The windows of each application group together and overlap, and often you can only see the content of the top window. Selecting a particular window in such a group using the mouse is challenging. Another big problem is that selecting using the keys doesn’t work at all. I believe since Exposé was first available right up until Lion you could always use the cursor keys to navigate the windows and then press space to pick one. In Lion you can’t use keys to navigate through Exposé at all. I actually filed this as a bug report with Apple some time ago, but they haven’t responded to it yet. I find the lack of keyboard navigation extremely vexing. I imagine that this could be a much more severe issue for disabled users.

 

Spaces

With Spaces itself there has also been some loss of functionality in Lion. Previously, Spaces allowed you to set up multiple desktops both horizontally or vertically. So you could, for example, have a 2×2 grid, or a single vertical row, or a single horizontal row. I preferred a grid (I used a 2×2 grid), and I found this very useful as every desktop was one switch away (you could move diagonally so you could quickly jump the diagonal on the grid). With Lion Spaces only supports a single horizontal row. By default it also changes the order of desktops based on when they were last used, which I find infuriating as I assign specific tasks to each desktop number (e.g., desktop 1 = web browsing, desktop 2 = mail, desktop 3 = music, etc). Since Lion moves these around by default it completely breaks this mental model. Luckily, you can disable that (it’s the ‘Automatically rearrange spaces…’ checkbox in the Mission Control Preferences).

 

Launchpad

Launchpad seems to be an attempt to use the iOS app layout for desktop applications. I honestly wonder if anyone uses this. I certainly don’t, and the many non-expert users I know don’t use it either. If anyone is actually using it I would love to hear about it. Interestingly, at some point during development Apple must have realised that nobody uses this feature either as in the early Lion betas its dock icon was locked in place and couldn’t be deleted but this was changed so that in the release version you can just drag it off your dock so that you never have to look at it again.

I don’t know why others don’t use Launchpad, but I certainly have a few reasons why I don’t. Firstly, there are much quicker ways to launch apps. If I use an app frequently then I put it in the dock so it is always on screen and I can quickly launch it from there. If it’s something I use intermittently then I find Spotlight is a far faster and more reliable way to find and launch apps. Spotlight will find the app no matter where it is… typing into and using Spotlight is much quicker for finding a rarely used app than Launchpad because with Launchpad you have to search through many app icons and often have to swipe between Launchpad screens to find the icon you are looking for.

I really do wonder who is using Launchpad… is it just people who haven’t figured out how to use the dock, Spotlight, or any of the many great 3rd-party app launchers (e.g. Quicksilver, Launchbar).

 

iCal and Address Book

Thanks to the way Lion has given both the iCal and Address Book apps a makeover, I’ve learned a new word… skeumorphic (http://en.wikipedia.org/wiki/Skeumorph). The Oxford English Dictionary defines this as ‘a derivative object that retains ornamental design cues to a structure that was necessary in the original’. For example, a physical calendar may have a page for each month and as the month passes you tear off the last month’s page. A computer calendar does not use pages, so if it gives the appearance of having pages when there is no longer a reason to then it can be said to be skeumorphic.

This may be a personal preference thing, but I detest how this has been applied to both iCal and Address Book to an insane degree. iCal has a horrendous fake leather effect, fake stitching and fake bits of torn pages that add absolutely nothing for me and take up space that could be better used for displaying actual content.

I especially dislike how iCal appears when it combines many elements at once. To me, it is a mishmash of modern digital elements and extremely dated physical ones.

 

Another awful point with all this skeumorphic stuff that Apple is doing is that because it doesn’t actually update its appearance with the activity in the app it actually gives me an uncomfortable, creepy feeling. For example, when you open Address Book it looks like an open book, with 5 pages on the left and 5 pages on the right. If you then scroll through your addresses from A to Z the book doesn’t move or change at all. When viewing the As it looks like you are bang in the middle of a 10 page book, then when viewing the Zs it still looks like you are in the middle of a 10 page book. Since the book never moves, this makes it feel like everything you are doing is sitting on a picture of a book… a static, dead book. It is creepy. If Apple are going to do this skeumorphic insanity then they should at least do it right and make the underlying book metaphor actually behave correctly. By the way, iBooks in iOS suffers this same problem, where it always seems like you are in the middle of the book, even when you are on the last page. Recently, Apple introduced an alternative mode in iBooks where you can now get rid of the underlying book aesthetic. I really hope this is the first signs of a rethink of their approach to skeumorphic stuff in general.

 

Usability

So, I feel the previous examples can be boiled down to one overall point… in Lion Apple seems to have missed expectations on usability. Apple is renowned for making software (and hardware) products that look and feel great. This means focusing on maintaining extremely functional and usable systems; and not compromising on either. Exposé is a great example of this. When it was introduced it looked amazing, was easy to navigate, and provided a lot of functionality. In Lion it is now much harder to navigate (smaller targets for mouse due to overlapping, no keyboard navigation at all), less functional (can’t view all windows at all if you have multiple spaces, and is much harder to view all even on a single space), and (perhaps arguably) less aesthetically appealing due to the grouping and overlapping of windows.

Launchpad is another good example where usability has, in my opinion, not been thought through. I feel this is particularly tragic. When Apple released the iPhone it was clear that they hadn’t simply taken OS X and ported it to a smaller screen. Indeed, in the keynotes they frequently boasted about how they had realised that it just wasn’t appropriate to do that, they said that what works on a large screen doesn’t work on a small screen, and they developed the user interface and all the widgets from the ground up, focusing on making a UI perfectly designed for finger-sized input. Now with Lion they seem to have literally taken the opposite approach. They have just taken the exact iOS homescreen and forced it into Lion as Launchpad, without making any changes whatsover for the larger screen and additional input hardware on laptops and desktops. Moreover, they don’t seem to have asked themselves if emulating the iOS homescreen on a desktop machine was actually a good idea in the first place.

There are many, many other instances of usability problems in Lion. For example, how whenever you open any new window in any app it zooms out from the centre of the screen, taking a short while but essentially wasting time. Previously, animations were only applied when they guided the user as to what was going. For example, when you minimise a window it slides into the dock, guiding the user to where they can later find; or when you double-click a folder in Finder the window zooms out from the folder’s icon, both quickly confirming the window is opening (useful for network folders) and showing where it came from. However, this animation does not contain any such information, it isn’t guiding the user in any way. Such truly superfluous UI niggles are numerous in Lion. However, my overall point is that it looks to me that with Lion Apple has somewhat dropped the ball with usability and functionality.

 

Quality

Lion also seems to be buggy, even after two updates (I’m on 10.7.2). Some of the things I have experienced include:

  • The network failing to reconnect on wake if the machine went to sleep whilst a time-machine backup was in progress (this was fixed in 10.7.2)
  • Wi-Fi spontaneously disconnecting (occurred frequently in 10.7.0, still happens but a lot less often in 10.7.2)
  • Battery life on the same machine is an hour or two less on average when compared to Snow Leopard (I know this isn’t a bug per se, but it is a point I feel should be worked on and improved in future updates)
  • Numerous Safari bugs, such as the Safari UI apparently locking up on a page, or the page randomly scrolling wildly
  • Stock widget not updating
  • Desktop icons overlapping when plugging/unplugging an external display

There are obviously many more. I know every OS has bugs, and every major update typically has a lot of bugs that get fixed over the course of the OS. However, I have used every version of OS X since 10.2 and it seems to me that Lion is suffering significantly more bugs than any release in a long time.

 

Why does Lion have these problems?

Assuming Lion does have some problems, can we determine why it does, at least at some high-level? I have no information at all to go on here, but I am going to make 3 guesses. Perhaps the answer is one of these, none of these, or a combination of these.

 

Steve Jobs wasn’t involved much or at all in developing Lion

Jobs was renowned for his laser-like focus on numerous aspects of OS X. I believe that over the years this greatly helped shape OS X into fantastic product. Perhaps Jobs was far less involved in Lion’s development than previous versions, and perhaps OS X suffered from a lack of his input. Although Lion was released whilst Jobs was still alive, he was effectively on medical leave for a year before Lion’s release, and perhaps longer. This may have meant that he just didn’t get the opportunity to contribute as much to the project as he normally would.

 

Focus on iOS

The iPhone and iPad have outperformed nearly all predictions and sales break expectations and records nearly every quarter. Apple’s iOS (iPhone, iPod, iPad) products have been generating more revenue than their Mac products (MacBooks, Mac Minis, iMacs, etc) for years now. It may be that Apple have pulled a large amount of resources from OS X development and instead focused on iOS and the App Store. Perhaps it is simply that Lion has benefitted from less of Apple’s effort than any previous version of OS X.

 

Attempt to make OS X like iOS

Jobs himself stated that one of the goals for Lion was about bringing a lot of what they had learned and created for iOS back to the Mac. This is clearly evident in things like Launchpad, which is a direct port, and the skeumorphic iCal and Address Book, which clearly take their UIs from iOS’s Calendar and Address Book apps. Perhaps this was a misdirected goal and Apple would have been better on building the best experience for the laptop/desktop hardware of the Mac, rather than attempting to port elements from an OS designed for finger input.

 

Is Lion Bad?

So is Lion a bad OS? Personally, I still think OS X is the best OS available today. I’d rather use Lion than the latest versions of Windows or Linux. However, it clearly has some major issues that concern me. Indeed, whilst in every previous update to OS X I felt there was clear and valuable improvements, with Lion I find myself often wishing that I was back using Snow Leopard.

I am still thinking about Lion a lot. I know a lot of what I wrote may come down to personal preference. If you have any thoughts on whether you think Lion is good or bad, and why you think that is the case, I’d love to hear them in the comments.

How to turn off repeat SMS notifications in iOS 5 and 6

At some point a long time ago I my iPhone started playing a sound multiple times for the same SMS text message. This got really annoying because my phone would make the SMS sound, I’d look at it and think I’ll deal with it later and put it down, then a minute or two later I’d get another SMS sound, think I had a second message and so look at it again only to find nothing new was there. I understand some people like this behaviour, but for me it was annoying. I was thankful when Apple added the option to change it in Sounds-Messages settings.

However, in iOS5 I found the multiple SMS notifications occurring again and I couldn’t find the setting in sounds anymore. Thankfully, after much searching I found it… so if you have iOS5 and want to have only one notification per SMS you will find the setting as follows…

How to turn off multiple SMS/text notifications in iOS 5

1. Go to the Settings app
2. Select Notifications
3. Select Messages
4. Scroll down and you’ll see the Repeat Alert setting… change it to whatever you prefer.

iPod

In reply to iPhone and iPod | Scott Sherwood, where he ponders why the iPod app in iOS is allegedly being renamed to Music in iOS 5.

The first PowerBook came to the market in 1991.  The last was sold in 2006.  Over the 15 years it was available the PowerBook became widely known for first its amazing durability, then its aesthetic design, and its usability.  When Jobs announced Apple were throwing away the PowerBook brand in favour of the new MacBook name I would say the majority of people familiar with the PowerBook thought it foolish to discard the extremely strong PowerBook name for something that sounded weaker and was completely unknown.  Similarly, the iBook name was discarded on the same day.

So, Apple clearly have no problem discarding names when embarking on a new product roadmap or strategy (in the above cases the name changes signified the switch to Intel CPUs).  More recently, Apple have changed the way they refer to the AirPort.  One day my MacBook has an inbuilt AirPort, the next day the same machine simply has Wi-Fi capability.

Returning to the iPhone, even from the beginning it never sat well with me that the iPhone had an app called iPod in the first place.  Having owned numerous iPods over the years I thought of an iPod as a piece of hardware, something that I could hold.  iPod was a piece of hardware, iTunes was an app I used to listen to music.  What on earth was this piece of software called iPod?  When I ran it why didn’t I see the round scroll wheel that was synonymous with the iPod?  This app wasn’t an iPod, when I opened it the software didn’t even look remotely like the iPod UI I was familiar with, why bastardise the iPod name in this way?  Perhaps you feel differently because you never owned an iPod, but I think you have to understand what iPod meant to people before the iPhone existed.  Obviously, the only reason that app is called iPod in every version of iOS up until 5 is because they were trying to leverage the brand name to encourage success of the new device.

For me, the fact that it never made any logical sense, and that as time goes on fewer people equate the name iPod with the physical hardware that they previously used and loved, are reasons enough to make the change.  Many people who own iPhones today have never owned a physical iPod with a scroll wheel, they may not even recognise one if it were shown to them.  Imagine that was you, and you pick up your brand new iPhone and look at the apps and see iPod.  Wouldn’t you think “hey, I bought an iPhone, not an iPod Touch, so why does it say iPod here when I paid for an iPhone?” or “what the hell is iPod?”.  At best it is confusing for this class of user.

So yeah, for me it is obvious that there are several reasons for changing the name of the app: logical, marketing and clarity.  That said, I do share your inquisitiveness as to why now?  Just as the switch from PowerBook to MacBook signified the change away from PowerPC to Intel, I wonder if this change is a side-effect of a larger change in strategy.  I have heard rumours that in the coming years Apple will be diversifying the range of iPhones they offer.  Just as their laptop range is split into three broad categories, so they will split the iPhone into three broad offerings.  When this happens they may drop the iPod Touch altogether, and if you want that functionality you simply buy the lower-end iPhone and ignore the phone capability.