Hi everyone,
I know there are 2billion iPhone 4 reviews out there already, but I know some of my friends want to know what my take on it is. I’ve had my 32GB iPhone 4 on Fido for a few days now.
Build Quality
It feels solid in your hands, and feels quite dense. As it is thinner and slimmer than the 3g(s), it really does feel heavier even though it is but by only 2 grams. It doesn’t twist, and looks great. The Micro SIM card is probably the most impressive thing about it. As you eject it, and see the precision work that went into it, you instantly realize that the iPhone has industrial design that is far better than most consumer electronics. However, the ergonomics are not so good. First of all, when it is in your pocket, you have to touch either the volume buttons or the home button in order to know what side is where. It also gets rather slippery if it’s hot and you have moist hands, and considering it won’t survive a drop on concrete, I’m going to watch out..
The buttons also feel pretty good. The home button clicks well, which is a nice change from my old 3g, but I don’t know how it compares how the 3g was when it was brand new.
Screen
Impressive is the only word to describe it. I read a PDF of normal text on a 8.5×11 sheet without zooming in. You’ll need to be wearing your glasses because the text can go so small but it is incredibly clear and easy to read. The pixels are closer to the surface, so it looks like you’re reading on the glass and not through it. It is so good that I now find my laptop screen completely ridiculous.
Cameras
The main camera is a lot better than the camera in the 3g, that is for sure. Back then, we didn’t even have tap to focus. The video filming is very smooth. It is a bit hard not to shake while holding it though, so maybe some videos will need to be stabilized after the fact. Pictures look OK, but don’t expect it to outclass a good point and shoot. The flash is lame, but is better than no flash. For me, it is good enough, which means I can ditch the point and shoot for most occasions, and when I need to take real pictures, I can bring the DSLR.
The main camera seems to be pretty good for its main purpose which is facetime. Framerate looks smooth, resolution is good enough for a face !
Reception
Reception is hard to judge for now. I was running 4.0 on my 3g and I have 4.0.1 on the new one, which means bar levels are considerably lower on the new phone. I got a call in an area where I’ve always had major issues speaking on the phone, and the call was clear even though I only had 1 bar. Death gripping it resulted in “skipping”. 3g download speeds also seem impressive, though lately Rogers/Fido has been slower than ever, so I don’t have any numbers to back that up. But I did download some stuff on MxTube once at a very great speed (close to 5mbps) which is something I hadn’t seen on the iPhone 3g before.
OS/Experience
The OS is exactly the same as what I had on my 3g, so no big surprises there. I had enabled multitasking on my old one, and I can say that on the iPhone 4 with 512megs of RAM, application switching is absolutely great. Sbsettings pops up so fast now, and Cydia is actually usable ! Running trapster in the background also seems to work nicely. Browsing sites with Safari is a charm with the great resolution and faster CPU. Make sure you keep it on 4.0.1 so you can jailbreak it !
Battery life
I managed a bit over 4hours of usage (reading in safari, playing Galcon Labs, watching a few videos in mxtube, shooting a few test videos) and a day and a half of standby on my first full charge. The battery should be good enough to avoid having to recharge during the day even if you use it quite a bit.
Facetime
Are you kidding? With the current shortage, I’ve heard that there isn’t a single person in this city that owns an iPhone 4 and knows someone else who does ! Short of giving out my number in a forum, there’s no way I’ll get to try Facetime soon. Anyways, I don’t really care. Why can’t we initiate calls on Facetime? I’d like to be able to call people in Europe over facetime but I don’t want to pay long distance for the first minute or so..
Bottom line
Buy it, unless you hate really high pixel density screens and a fast phone which responds in a very snappy manner. Then, Jailbreak it and install Sbsettings, 3g unrestrictor, lockinfo, etc..

When installing vCenter update manager in a lab, I got this :
“Error 25005.Setup failed to generate the SSL keys”
It appears that since I have installed vCenter Server, vSphere client, and tried to install the update manager all in one sitting without rebooting, there has been some path confusion and it could not find openssl.exe (or the right version of it). Allowing it to roll back, rebooting, and trying again fixed the issue for me.
As many companies have skipped Vista and may be starting to migrate to Windows 7, the need for servers running KMS (Key Management Services) is going to be felt for many of them.
KMS allows you to do the authorization/activation of Windows in-house, and allows you to get stats about what is going on. However, running this on a full blown Windows installation could be too expensive, overkill.
This article explains the steps to get KMS working in your domain, using a Windows 2008 R2 server in Server Core mode, virtualized. Yes, it is possible to run a KMS in a VM, unlike a few years ago when the EULA explicitly stated you were not allowed to.
Another good reason to go with Windows 2008 R2 is that it supports being a KMS for Windows 7 as well as 2008 servers. If you had a Windows 7 KMS, not only could you not run it in core mode but it would only be able to authorize workstations. And Windows 2008 first release is simply not supported.
Create a Virtual Machine
This VM can be in a Hyper-V environment or a VMware environment.
As we will be running Core, the requirements are lower. I suggest starting with:
- 1 vCPU
- 512MB of RAM
- 10GB of Hard drive (single drive)
- Low resource shares relative to your other VMs
Install Windows Server
Select your Windows 2008 R2 ISO from your data stores. Obviously, this article is not about that, I assume people interested in KMS know how to install Windows.
Select the core mode.
Windows is up – now what?
Log into the server’s console through VMware or hyper-v (well this guide mostly works for physical servers too – I just find it’s a waste of metal !). You will be greeted by the minimal UI of Core.
Configure the networking
Run the sconfig command. Chose option 8.
Select your NIC (normally number 0 if you only have one).
Configure it with a static IP , and make sure you configure the DNS settings properly for your domain.
KMS relies on DNS a lot so having a static IP will save you trouble in the future. Alternately depending on your setup, how you manage VLANs and IPs etc, have a reservation for it. ipconfig /all will show you the MAC address of the card, as on the standard Windows install.
Once you’re done configuring the network, go back to the main menu of sconfig.
Configure your Windows Update Settings
Set it to obtain updates from Microsoft for now. Later on you will surely manage this by GPO so it does not really matter. Back to the main menu, chose option 6 to download the updates that are required right now. (As core has no Internet explorer or Windows update UI that’s the way of getting them manually).
Configure date and time (option 9)
Configure the hostname (option 2)
I recommend rebooting after you changed it and before you join the domain – if the computer account is pre-staged in AD it will use the old name instead of the pre-staged one if you don’t.
Join the domain (option 1)
You can also use the typical netdom commands if you want to join it and force a specific OU.
Reboot
Add a local administrator
Once the server reboots, on the domain, log in with your local admin account. Run sconfig, and use option 3 (or use net localgroup – faster!) and add a domain account to your local admins, so you can login with an AD account and manage the server. While you are there, you may want to change the local admin password (the ctrl-alt-del screen does have that option).
Remote management
Once the server is fully patched up, and your local admin account is secured and you can now login using a domain account, consider enabling remote management. Option 4 in sconfig allows you to enable remote powershell, remote MMC, WinRM, etc. An interesting thing you can do once this is open is open the event log remotely easily, which may be useful. Be aware that KMS is very low maintenance and that keeping everything locked down may prove more secure, but be sure your operational teams will have a way to get into the server, either through the virtualized console, powershell, or RDP (enabled in the sconfig main menu – with two options, one to allow only secure RDP clients like Vista and Win 7 or one to allow any clients, useful if you still use XP workstation).
Enable KMS
Enabling KMS is very simple. The only thing you will need is your “KMS Key”, which can be found on the Microsoft licensing website.
Run this command:
slmgr.vbs /ipk KmsKey
You should then see a small window pop up and confirm the product has been activated.
Now, we should activate our server, while we’re at it.
slmgr.vbs /ato
There we go. KMS is enabled, the server is activated. What else needs to be done?
Well first of all, clients rely on DNS to locate the KMS. So if you do not have dynamic updates enabled, start by disabling the automated registration by running:
slmgr.vbs /cdns
The command to enable automatic updates (default but try it if you run into issues or change your mind) is :
slmgr.vbs /sdns
After running these, make sure to restart sppsvc by using net stop and net start or by using the services MMC, if you enabled remote MMC.
If using manual DNS, create an entry with the following settings:
|
Service
|
_VLMCS
|
|
Protocol
|
_TCP
|
|
Port number
|
1688
|
|
Host offering the service
|
Fully qualified domain name (FQDN) of the KMS host
|
Verify the DNS entry
Manual or automated, let’s check if it worked.
nslookup -type=srv _vlmcs._tcp.<your DNS domain>
If this command returns the SRV record pointing to your KMS server on port 1688, it means clients will now find the KMS.
Open the firewall
As you noticed while creating or verifying the SRV record, the KMS, by default, is listening on port 1688. This can be changed with the slmgr.vbs command. However, no matter what port you do, you will need to open it up in the firewall. You can use netsh…
netsh firewall set portopening tcp 1688 KMS enable
However, the beauty of Server core is that you should never have to connect to it. For this, I highly recommend that you apply your standard Windows 2008 security baseline GPOs, and create a KMS Specific one. In this GPO, you should ensure that the KMS service is set to automated, and that this TCP port is opened.
You can then apply further hardening to the machine, and configure Windows updates by GPO as well. As server core is not a service that is very visible to the users, this server could easily be patched and rebooted at almost any time, but you can patch it like any server that you use. Less patches will be required, as Server core does not include a lot of software that comes with the full install.
Troubleshooting
Read the slmgr.vbs documentation for more information. slmgr.vbs /dli will show you some information, and there will be an Event Log created just for KMS where you can get useful information about activations. If you have any issues, remember to check the DNS record from the workstation you’re trying to activate, as well as test connectivity to port 1688.
The error you receive on a workstation may seem cryptic but most of them have a good explanation, so Google them ! Remember you need at least 25 workstation licenses or 5 server licenses to use KMS, and have fun !
update: After 24hours, I’m pretty sure it helped quite a bit. My phone did not slow down to a crawl today nor did iOS start killing my fast app switching backgrounded apps. Will it last? Will it blend? Of course not, it’s VIRTUAL memory!
With the latest iOS 4 supporting multitasking or with any other version of iOS that has been set free from its jail, I’ve noticed that my old, slow iPhone 3g has been having memory issues.
With iOS 3 and multitasking applications such as backgrounder, I could at least manage what app I wanted to leave open in the background. Sure, it took more CPU but at least I could manage it.
With iOS 4 (multitasking enabled using the latest pwnagetools) – many apps will keep using RAM in the background if they support Fast App Switching. As more and more apps get recompiled with iOS 4 and fast app switching enabled, I noticed I needed to reboot my iPhone from time to time or manually close these apps. And as we know, task managers, blowing it, etc…
Here is how I enabled swapping on my iPhone – sorry for not quoting any definite source, the knowledge I found was spread out through many forums and no clear source could be found. In any case, I’m certainly not the one who thought about this.
iOS is a stripped down version of OS X, which supports swapping, obviously. However, the flash in your iPhone is not made to handle thousands of writes and this is why Apple doesn’t do swapping on it. Be warned, this will probably end up killing it. How fast? Hard to say. Considering my 3g is 2 years old and I’m eligible for an upgrade soon, I just don’t really care. Please inspect the file before you upload it and understand what it means – I’m not responsible for you nuking your phone. Back it up in iTunes first, too, just in case you have to restore using DFU Mode.
- Jailbreak your iPhone ( I recommend pwnagetools )
- Install OpenSSH From cydia
- Connect to your iPhone using an SCP client (Cyberduck, WinSCP, Filezilla..)
- Download this file and rename it from .txt to .plist com.apple.dynamic_pager
- Upload this file to /System/Library/LaunchDaemons
- Reboot
You will now notice that even after opening a few apps, available memory reported by SBSettings will remain close to 30-35Mb.
On top of that, if you browse to /var/vm , you will see that it created a swap file.
Before the news strike tomorrow..
Here’s an iPhone 4.0 wish list. In bold are the items I think we may see tomorrow..
Multitasking
Multi-user (or at least a guest mode) for at least the iPad
A filesystem to store files and share them between apps, at least for the iPad
Better push notifications
Ability to set a schedule for ringtones (don’t ring at 3am for Viagra spam please)
File synching for iPhone