iOS 7 has ruined my life

I was looking forward to iOS 7 for a few reasons. I was glad to be rid of the skeumorphic design elements (stupid shit like the “Notes” app looking like a yellow notepad) but also glad to get the Control Center to turn off Wifi more easily – I only need Wifi to be on when I’m in my house or my office. It’s just a battery drain elsewhere. Ideally iPhone would just do this via geofencing, and the fact that it doesn’t is beyond retarded.

So I upgraded the night it was released. Two days later the novelty had worn off. I tried to roll back to iOS 5 (I never upgraded to 6 due to Maps). Failed with error 3194. I tried DFU mode. Failed with error 3194. I was stuck. They released 7.0.2 this past Friday or Saturday night and I hoped it would solve my problems but it didn’t. Here’s some of what’s happened:

  • Battery life is gone. I lose about 1% per minute at times, even with just 1-2 apps running and the phone in airplane mode. To go from 100% to 75% usually takes about 90 minutes.
  • Phone doesn’t show up on computer at all – not in iTunes, not as a camera, nothing. I’ve reinstalled iTunes several times.
  • It doesn’t check email any more. It tells me no new messages even when I login to Exchange and see new messages. Same for Gmail.
  • Audio is broken. The hardware toggle switch appears to be ignored randomly – it won’t make sound at times, and then other times makes tons of sound. On the train, when I unplugged my headphones while listening to a song, it kept playing the audio out the loudspeaker and the volume buttons were ignored.
  • The phone randomly powers off when it gets under 30% battery life. The behavior is what I used to see when it got around 3%, but now it happens at 30% or so. When I turn it back on, it says there’s ~25% left so I don’t know why it shut down.
  • iCloud backup does not work. It gets to “1% remaining” or something and then says “iCloud backup failed.” The last successful one was from the day I last ran iOS 5.

As of this moment, as I write this, my phone is completely wiped and I’m attempting to restore it from backup. But the phone won’t show up in iTunes for me to restore it. Last time
I went to the Apple Store in Grand Central the “genius” was useless, told me my phone was fine even though it was barely getting 8 hours battery life with no use – his advice was to power the phone off at night. It’s a 4S so not sure what recourse I have, it’s definitely not under warranty anymore. I have work tomorrow and as of right now a useless phone.

I guess my point is, don’t upgrade to iOS 7 if you have an iPhone 4S.

Update, Oct 21, 2013. I took my phone back to the Apple Store and they essentially confirmed that my phone was broken somehow – it wouldn’t even connect to their Macbooks, though it would charge. They offered me a new 4S for $199 (no contract extension) but I didn’t want to do that. Last week I took my phone to Best Buy and got $100 for it towards a new 5S. The 5S is great and IOS7 works fine on it, though it does still have quirks and bugs.

Upgrading ESX 4.0 to ESX 4.1 with Update Manager

This turned out to be so ridiculously easy I probably shouldn’t even mention it, but only because I remembered that Update Manager exists. I thought I was going to have to burn an ISO, go to the datacenter, pop the disc in, etc. But with Update Manager this is all handled remotely. Just download the files from and upload them to your vCenter server through the client. This YouTube video by VMware walks you through the procedure:

Continue reading “Upgrading ESX 4.0 to ESX 4.1 with Update Manager”

The bright side of Compellent

Since I was bemoaning Compellent’s pricing recently I figured it would be unfair of me not to highlight the upside. Their tagline is (or was when we purchased it) “The only SAN so sophisticated it’s simple.” While I can’t say whether they’re the ONLY one, the idea is definitely true. This is the first SAN I’ve ever used, and aside from the learning curve for iSCSI itself (targets, spinup delay, etc.) it’s totally simple and intuitive. Create LUNs, map them to servers. Don’t worry about things like RAID levels or hot disks. We’re into our second year with Compellent and it’s definitely lived up to its promise of simplicity.

I don’t know how much management the average SAN requires but our sales rep recently asked me how much time per week we spend managing the SAN. I crinkled my brow, because I don’t really spend any time managing the SAN. I’ve logged in to the web interface a lot more over the past few weeks than I normally do because the SAN filled up quickly due to our experimentation with Hadoop, and I wanted to make sure we didn’t get to 100% before I was able to order more disks. But aside from that incident I think the only times I’ve logged in to the management console have been to add a LUN or map a datastore to a new ESX host.

I was reminded about this simplicity when we finally added the disks last week. We went to the datacenter Wednesday to move some servers around in the racks to ensure there would be enough power in the SAN rack for the new enclosure (16x 2TB disks). We also updated a firmware update for the SAN (required so it would recognize the new 2TB drives). We have redundant controllers, so we were told there shouldn’t be any downtime. I don’t tend to trust those types of statements – if someone says something will be down for an hour I budget for 4. If it’s 8 hours I budget for a day. If it’s zero I just think they’re lying and it’s going to explode and kill people.

So all things considered I was rather impressed. We have dual controllers, so the update was installed on one controller first, and that controller rebooted. When it rebooted, the iSCSI traffic did actually fail over properly to the secondary controller. This wasn’t completely flawless – the console on some of the machines showed some iSCSI errors, but the machines seemed to be working fine (I rebooted them just to be safe). A couple of the VMs (whose data/swap drives are all on the SAN) barfed and had to be rebooted – I think our Jabber server was the only casualty, but that was back up in under a minute. When the second controller updated itself, its traffic failed back over to the first one. When it was all done (took about 30 mins total) there was a warning about the ports being unbalanced, which was rectified by clicking the “rebalance ports” button. So all in all, I’d say there was “pretty much” no downtime. After the update, we racked the new enclosure and called it a day.

This week a tech from Compellent came onsite to do the actual install for the enclosure (hooking up the fibre loops and installing the new license). This was really zero downtime. I got some alerts that one of the loops was down, but it didn’t affect anything. Pop the disks in, wire it up, install license, and we’ve got another 32 TB usable space. It’s been over a day and the data is in the process of moving from our tier 1 (32x 15krpm FC disks) down to tier 3 (SATA). All in all it was a pretty painless procedure. Sure, it would have been easier had we not had to do the firmware update, but I guess when a new type of drive is introduced that’s to be expected.

So in conclusion, I guess this just reinforces my theory that the only bad thing about Compellent is the price. And if that’s the worst thing someone can say about your product, that’s probably a pretty good place to be.

Exchange 2010 and Set-ActiveSyncVirtualDirectory Identity

I don’t really know why I put this blog up, but generally I write stuff here after I muddle through some ridiculous problem that may have ended up being easily resolved, but whose solution was hard to find. That’s definitely the case with this post. Currently I’m in the middle of moving my company’s email from Exchange 2003 to Exchange 2010. Microsoft has provided some pretty good documentation on how to do this, but they do assume a certain level of familiarity with the product. For example, I probably spent 30 minutes trying to run Exchange cmdlets in Powershell before I realized there’s a special shell just for Exchange, the Exchange Management Shell.

Anyway, I’m trying to setup a Client Access Server to replace our Exchange 2003 Outlook Web Access (webmail) system. Again, Microsoft’s walkthrough is pretty good, and everything seemed to be working until I got to section 4c of their instructions:

Exchange ActiveSync: Set-ActiveSyncVirtualDirectory -Identity \Microsoft-Server-ActiveSync -ExternalURL

For the other examples they provided, I had been replacing with the internal name of my new CAS, “EXCH2010FE1,” so that’s what I attempted to do here as well, however it threw this error:

[PS] C:\Windows\system32>Set-ActiveSyncVirtualDirectory -Identity EXCH2010FE1\Microsoft-Server-ActiveSync -ExternalURL
The operation couldn’t be performed because object
‘EXCH2010FE1\Microsoft-Server-ActiveSync’ couldn’t be found on ‘’.
+ CategoryInfo : NotSpecified: (0:Int32) [Set-ActiveSyncVirtualDirectory], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : B33731BE,Microsoft.Exchange.Management.SystemConfigurationTasks. SetMobileSyncVirtualDirectory

[PS] C:\Windows\system32>

I racked my brain on this for a while. I discovered the Get-ActiveSyncVirtualDirectory command, hoping it would magically solve the problem (telling me what the “Identity” was), but it didn’t – at least not at first:

[PS] C:\Windows\system32>Get-ActiveSyncVirtualDirectory -server exch2010fe1

Name Server InternalUrl
—- —— ———–
Microsoft-Server-ActiveSync (Default… EXCH2010FE1…

[PS] C:\Windows\system32>

It was showing me the server, but not the Identity, which is what I wanted. Having never used Powershell before, I figured there had to be a way to get that property out of the command, but I had no idea what it was. Some more Googling finally helped me resolve it:

[PS] C:\Windows\system32>Get-ActiveSyncVirtualDirectory -server exch2010fe1 | Select-Object Identity

EXCH2010FE1\Microsoft-Server-ActiveSync (Default Web Site)

[PS] C:\Windows\system32>

Once I supplied “EXCH2010FE1\Microsoft-Server-ActiveSync (Default Web Site)” for the Identity parameter the command completed correctly. I also tried piping the Get-ActiveSyncVirtualDirectory command directly to Set-ActiveSyncVirtualDirectory, like this:

[PS] C:\Windows\system32>Get-ActiveSyncVirtualDirectory -Server exch2010fe1 | Set-ActiveSyncVirtualDirectory -ExternalURL

This appeared to execute successfully, but I don’t know if it actually did what I intended, so I stuck with specifying the identity manually.

The Exchange 2010 CAS is properly redirecting users to, but ActiveSync isn’t working (I’m testing with my iPhone), so I guess the problem I was having above wasn’t the source of all my ills, sadly. The battle continues…