When looking for articles about switching operating systems, most describe the Windows to Mac OS X change. Rarely there's a recent article that describes the opposite. This blog post is the first in a series of posts telling the adventures and challenges of a hardcore Mac OS X user who is forced to do the opposite. I'm not going into the rationale behind the switch, nor the reason, but rather focus on the user experience of hardware, operating system and software.
Some background: the source system is a 15 inch mid-2010 Macbook Pro (manufacture date 2010-05-24 as shown by the excellent CoconutBattery) running MacOS X Yosemite 10.10.5 with 8 GB of RAM, a dual core i5 @ 2,4 GHz, a 500 GB SATA drive and a 15,4 inch 1680x1050 display. If it wasn't for the failing NVidia GeForce GT 330M, which causes random spontaneous reboots, replacing the SATA drive with a 500 GB SSD drive would easily extend the life of this laptop with 4 years. Professionally I use productivity tools like MS Office, OmniGraffle, FileMaker Pro and all Apps that come with Mac OS X. The systems is Active Directory integrated and talks to our company MS Exchange environment. As a power user in an Internet organisation, I tend to heavily rely on Mac OS X's Terminal and love the Unix system under the hood. Since security is my primary activity, the laptop does have some other tools installed like "zenmap", "wireshark", "gpgtools" and Parallels. My user account allows me to elevate permissions when needed but only when the machine is connected to the office network and "sees" the AD severs.
The target system is a Dell XPS 9343 running Windows 8.1 Professional with 8 GB RAM, a dual core, dual threaded core i7 @ 2,6 GHz, a 250 GB SSD, and a 13 inch 3200x1800 Infinity touchscreen display. It is obviously Acitve Directory integrated and I have a normal user account. Traditional productivity suites are installed and some replacements for the software I used on the Mac.
I do have experience with pre-Windows 8 systems, unfortunately the Metro interface is brand new to me as is Windows 8.1, but as the interface has been built for tablets and ease of use I assumed it wouldn't be too hard to get used to it.
Before diving into the Operating System and the User Experience, let's first have a look at how the hardware performs and presents itself. The Dell XPS 9343 is comparable to a MacBook Pro 13 inch Retina. The MacBook will still be more expensive, but it has better hardware when doing a side by side comparison.
The first thing I noticed when using the laptop, was the apparent lack of a camera. The Infinity screen reaches out to all sides of the display and as a result, there is seemingly no room for a camera. Well not in the conventional location that is. There is a camera, in the lower left corner, which results in an extremely odd and unnatural perspective that feels like you're being watched by a bug.
The Infinity screen has a resolution of 3200x1800, which is a 16:9 ratio. 16:9 is acceptable for viewing media like one would do on a television, but makes no sense on a laptop. With a 16:10 ratio one has more screen estate on the Y-axis. Especially when using productivity apps like Excel and Word, this lack of screen estate becomes quickly annoying.
The Infinity display is Dell's answer to Apples Retina display. Unfortunately Retina is a bit more than a high resolution panel. Windows 8.1 insists that the optimal resolution is 3200x1600, but this results in dialog boxes and icons that are barely readable, text that is disproportionately fine, anti-aliasing that is simply wrong and the inability to handle high density and normal density screens at the same time. Some examples of this odd and disturbing behavior are illustrated in the picture gallery below.
As a result I need to lock my laptop resolution to 1600x900 and refrain from using an external monitor as the anti-aliasing simply makes most applications hard to read.
The display is a touchscreen, which is in my opinion a completely useless gadget on a laptop. Especially with a high glare display, the only thing a touchscreen does is getting a smudged screen. I had it disabled after I had adjusted the glaring screen for the umpteenth time and had all kinds of silly things happening.
As a security conscious person I don't like wireless connections to be active without any purpose. To my surprise the Dell XPS laptop has its Bluetooth on by default. No problem, I'll just click or right click the icon in the task tray and disable the thing. Huh? Nope... no possibility to disable the radio and even worse, there is no hard switch either to do it. That is until I pressed the Windows key and started to type Blue... and tadaah, there's a different Bluetooth settings app, which not only looks completely different with its Metro look and feel, but had the switch I was looking for.
And then there are some minor annoyances like a laptop that goes to sleep and doesn't wake up unless I actually close and open the display, or a pop-up headset selector whenever I insert my headphones and which make me go "WTF?! really???", or a touchpad that is completely ignorant of the extensive gestures I use(d) on the MacBook Pro.
First impressions and conclusions?
Remember my "happy eyeballs" post? Well, it looks like it's causing issues with YouTube clips both on MacOS X (Mountain Lion) as IOS (6). The symptoms? Clips that refuse to launch and result in a black screen filled with pseudo static and a "An error has occurred. Please try again later." Even worse, some clips actually start to play and stop after a while. BTW, the error message is very helpful Google, thanks. The issue exists on Safari and Firefox; Chrome seems to immune.
I was quite sure it had to do something with the dual stacked IPv4/IPv6 set-up we use at home as disabling IPv6 on my MBP made the issue disappear. But what is causing the problem? And is there a fix?
Googling quickly pointed to "happy eyeballs", which confirmed my findings after some observations and a good deal of TCPdumping. But why would this happen as "happy eyeballs" was created to prevent bad user experience on IPv6 in the first place.
To understand what happens while viewing a YouTube clip, I used HTTPfox on Firefox. HTTPfox is basically a local proxy which shows all the requests generated by the page you're visiting. The following screenshot shows a clip I was viewing and that stopped halfway...
Digging into the output of HTTPfox one can easily retrieve the URLs that deliver the actual video stream. Google has its own Content Delivery Network (CDN), which presumably tries to deliver data as close as possible to the end user.
In the above example the content cache was:
And now it becomes interesting as this host resolves to:
How and where the actual caching node is defined in the HTTP exchange is not really clear to me, but typically this is "somewhere" defined through geoIP lookups of the source IP of the requester. The obvious issue here is that my geo-location is completely different over IPv4 and IPv6 as I use a Hurricane Electric tunnel for my IPv6 connectivity. And even if my provider would deliver native IPv6 connectivity, it will still show a very different routing path.
While one is looking at a YouTube clip, multiple HTTP GETs are send out to the content cache to retrieve gradually the content. And here lives the culprit! As "happy eyeballs" kicks in and tries to deliver connectivity over the "best path", it might actually change its decision during the session. In other words, one HTTP GET can go out over IPv4 but seconds later, the next HTTP GET would go over IPv6. In theory this shouldn't be a problem if all caches are equal, but it depends heavily on how the caches actually operate and the application works. If sessions are involved i.e., are we sure that the IPv4 and IPv6 are actually the same machine(s); if not how is the system supposed to stitch the IPv4 and IPv6 session together? I believe this is exactly what happens with Safari and Firefox on YouTube. The fact that my IPv4 and IPv6 routing is completely different and the likelihood that the IPv4 and IPv6 infrastructure is not the same on the CDN side, might very well result in lost, unknown and zombie sessions.
For a pseudo streaming application like HTTP-based QuickTime streams or YouTube clips, "happy eyeballs" is very dangerous. Pseudo streaming applications send chunks of media data and rely on the fact that the network is faster than the realtime stream. For this specific clip it sends packets of 1,6 MB according to the HTTPfox output.
Conclusion: the browser should not only rely on the OS implementation of "happy eyeballs" as it could change IP stacks during a session or HTTP conversation with potential undesired side effects. It should stick to one IP stack after the initial decision handler to preserve session integrity.
As to view YouTube clips, I think I'll stick with Chrome until Apple and Mozilla engineers have figured out a way to fix this issue.
No no, this is not about a broken iPad, it's about the end of the first generation iPad. Shown to the world on January 27th, 2010, it's now barely two and a half years, but in this fast changing world of tech, that's a life time. Being the first of a new generation in technology comes with a price; one day you wake up to find that you can't keep up with the shining new kids on the block anymore.
The end doesn't come with IOS6, it's already here. If you use a first generation iPad with IOS5, you will have noticed that typing has become a serious challenge. Cursors run behind, input fields are sluggish and although it's not really tampering the functionality, it becomes a nuisance after a while. Actually I discovered that using a bluetooth keyboard improves things since the machine doesn't need to waste resources at pretending being a keyboard. Obviously carrying around an iPad with a BT keyboard doesn't make a lot of sense, but it shows a significant difference between iPad generations. Fiddling around with certain Keyboard Settings like Auto-Correction and Check Spelling will certainly improve your user experience but at the expense of functionality. People who use the second and third generation iPad will have noticed that everything feels smoother when interacting with the machine. It's dual core architecture is the obvious reason for this. But even with a single core CPU, the first generation iPad is fast enough, even for 3D games like Infinity Blade. So with some tweaking, one can still use the first Generation iPad for many years to come.
What really started to bother me are more and more applications that crash suddenly and jump back to the Springboard. Lately I downloaded a free little game called Catapult King for iPad which sometimes is practically unplayable because of this phenomenon. LinkedIn for iPad suffers of this same problem. Digging deep into Settings, General, About, Diagnostics & Usage, Diagnostics & Usage Data finally showed me the reason:
Low Memory. Two words that say it all. And as applications start to require more memory for a nicer user experience, the 256 MB RAM of the first generation iPad is its real Achilles' Heel. Unfortunately in this time and age, memory bounderies are seldomly considered, which is really sad. Programmers ought to take memory usage into consideration and optimize their applications so that the first generation iPad can serve some more years even if it can't run IOS6.
Apple creates products with excellent build quality meant to be used for years. So why should its lifespan be shortened by sloppy programming?
When looking for information on IPv6 support in Apple's iDevices, one finds very little information regarding the subject. Does the iPhone or iPad support IPv6 and if so how well is implemented?
The short answer on this question is: YES, Apple's iDevices support IPv6; but it will default over IPv4 unlike most desktop and server Operating Systems.
The iPad used in the following screenshots is an iPad 2 running IOS 5.01 as shown below.
If you have an IPv6 enabled network, with an IPv6 router that does router advertisements, an IOS devices will perfectly auto configure itself as expected. Yet oddly enough it will prefer IPv4 over IPv6. To find your IPv6 settings, look under Settings and Wi-Fi. You will not see its IPv6 address nor the IPv6 gateway, but the fact that it has an IPv6 name server address, that appeared automagically, says enough.
I was rather surprised to find 2001:470:1f13:75c::1 as the IP address for a NS since this is actually the router address of my IPv6 router. It's an Apple Time Capsule I use for its IPv6 tunneling capabilities. It must contain an implementation of RFC 6106 which describes DNS Configuration Options for IPv6 Router Advertisements.
The name server behaves like a caching name server.
From the IP configuration one can only guess the IPv6 address of the iPad. Why Apple shows the IPv6 address of the name server, but omits the iPad's address is a mystery.
To prove the iPad can actually function over IPv6, I downloaded and installed zatelnet, a telnet and ssh client for iPad. It might not be the fanciest telnet/ssh client on the market, but for this purpose it did what it was supposed to do.
I could connect without any problem to tripple6, a Linux machine on my IPv6 network, which shows the iPad is perfectly capable of functioning correctly over IPv6, if forced to do so. Once connected to a linux machine, it's child's play to figure out what the actual IP address is of the iPad.
So what does this prove?
Conclusion: you will only benefit of an iPad's IPv6 features if and when you are on a IPv6-only network. The device will auto-configure and work as expected. In a dual-stacked environment, it will stick to old school IPv4.
Apple, oh Apple, now you've really done it. I get the message from Software Updater that there's a new Airport Utility, version 6.0. Great, let's do the download in blind faith and run the new utility. And behold...
I get something extremely familiar... where did I see this before, oh yes, on my iPad!
OK... let's be open minded about this. Surely I'll find all the nifty features of the old Airport Utility (like IPv6) under some option/button. CLICK AWAY, you brave mouse handler. Alas, besides some straightforward, off-the-mill functions like IPv4 Internet settings, Wireless parameters, Network mode and Disks, all the advanced features are gone. What's this, a release that reduces functionality? Unfortunately you need the damn thing to upgrade your wireless device to 7.6.1. In return, gone are printer settings, gone is the entire IPv6 implementation on which I rely for my IPv6 tryouts, gone are the logs and the statistics.
After checking the support forums, it became clear that 6.0 is a new branch required for the latest 802.11n access points. The 5-branch is still supported and can be downloaded separately to manage 802.11g base stations. 5.6 still has the old look and feel and is required if you want to manage the lost features on 6.0.
Your Mac will upgrade automatically to the 6-branch, but you can download 5.6 separately and run it as long as the 6-branch does not contain all the features you want and need. Don't try to remove 6.0, it won't work as it is considered a system component.
If you want to download 6.0, here's the support page. For 5.6, follow this link.
A quick look at the 6.0 application from the command line doesn't reveal anything on first sight. It looks like Apple scratched the application and started all over again. Hopefully it becomes clear in a couple of weeks when missing functionality is added. Maybe we'll even learn the reason for this very odd upgrade.
About this Blog
IT Technology, networking, Apple, iDevices, Android, IPv6, DNS.