this is getting more and more real, but not quite how you expect.
a lot of innovation in terms of aggregating and selling not just apps, but services. see these two beautifully designed "appstores" for talent. you can now choose your design studio or app developer based on an image, description and price.
theymakeapps.com is a "store" for advertising iphone developers.
If you have a mixture of US, Hong Kong and European Apple 802.11n (5GHz) equipment in your home, then it is likely you'll not be able to use 5GHz because the overlap in channels is small between the 3 regions. To make matters worse, Apple's Airport Extreme or Time Capsule doesn't allow you to manually select the channels when in 5GHz mode.
More over, UK computers are not workable with the "Use wide channel" option on Airport Extremes.
Channels 1-11, 36-48, and 149-165 approved for use in the United States and Canada.
Channels 1-14, 36-64 approved for use in Japan
Channels 1-13, 36-140 approved for use in Europe
Channels 1-13, 36-64 approved for use in Australia, Hong Kong and New Zealand
So that means the overlap for US and Europe for 5GHz is only 36-48. That is barely 12 channels out of 100+ channels. Because you cannot set the channels manually on the Time Capsule, 5 times out of 6 your Time Capsule will not work with any 5GHz devices bought in Europe.
i've been doing some web development targetting iphone, and one of the things you have to learn to support is rotation.
one thing that has annoyed me recently is that when you rotate, the font size changes. google didn't reveal anything, so i thought i'd blog here about it.
if you set:
html { -webkit-text-size-adjust: none; }
then it will not automatically adjust the fonts of the page when it rotates. the downside of this is that the font size also does not adjust in a regular webkit browser. but if you're targetting iphone specifically, then it is not such a big deal.
If you've done some text layout on iPhone, you'll know that the documentation isn't really the greatest and clearest. The most frequently annoying thing about text layout is that there are these NSString UIStringDrawing additions that you would think can help you determine the size required to render a piece of text with a given font.
Only one of the four above gives you sizes with multi-line text. Worse still, even if you choose the right one, you probably will end up passing the wrong thing into the size parameter.
In order to get the height of a piece of multi line text constrained by a given width, you must do this:
You must pass in CGFLOAT_MAX (or a big number) for the height, otherwise your text will never flow outside of the boundingSize. This is the bit I always get wrong.
All the other sizeWithFont methods do not work with multi-line text. It says so in the documentation, even though it is not easy to spot.
You must use UILineBreakModeWordWrap for the lineBreakMode
After WWDC 2009, I was torn. I wanted to buy a MacBook Air with SSD as my travel laptop since every time I go on a trip, there's always a struggle to bring along my 5 lbs laptop. The price drop announced was very attractive, US$700 less for the MacBook Air, but still it would cost $1700.
While I was in the US, I came across the HP Mini 1000. It cost only US$329 (a quarter of the MacBook Air) and reportedly would be able to run Mac OS X. So on impulse (well, after a fair amount of research), I ran into Best Buy to pick up one.
Various Models of HP Mini 1000.
HP Mini 1000 is a series designation for a wide range of differently configured netbooks. Mine was a 1030NR which sported a 1.6 GHz Atom processor, 1GB RAM and most importantly a 16GB solid state hard drive. The chassis also has a built in SDHC card slot so I could technically expand my storage to a second volume if necessary.
There are other models of the 1000, such as one called the HP Mini with Mi which comes with Linux instead of Windows XP. I couldn't find those for sale in a regular brick and mortar store. One odd note, the XP version which I got says it is only expandable to 1GB of RAM, however the Linux version says 2GB. They are technically the same, so I was puzzled why the spec sheet said that. Turns out that the reason HP reports the XP one can only have 1GB of RAM is because of licensing agreements when it comes to getting XP on a netbook. I can reportedly upgrade to 2GB without any problems. I have yet to try this.
In the UK, they do not sell the HP Mini 1000. Instead, they sell it as the Compaq Mini 700, which is the same as the HP Mini 1000 except it has a 60GB hard disk rather than a 16GB solid state drive. I would definitely prefer the solid state drive over the hard disk as it clearly is much faster and the lack of RAM doesn't hurt the performance as much.
Mac OS X Installation
The installation was not easy, but there are some very good instructions on the net. I won't go into the detailed instructions but will cover some interesting things you should note.
First up, all instructions say you need a 8GB SD Card or USB drive, or an external DVD drive. I had neither of those. I only had a 4GB USB drive. The reason why it specifies a 8GB requirement is because the installation DVD image is 4.7GB, so you cannot fit it on to a 4GB USB drive.
Since I was using the USB drive installation method, you can get around this restriction by mounting the DVD install image and deleting files and packages that you don't need. For instance, I deleted all the third party programs that were included in the hacked install image and also removed a large portion of the language packs that come with OSX.
Once you do that, you can restore the image on to your partitioned USB drive, and then run the UInstaller program (from the "Essential Tools" archive on the instuctions) to patch your USB partition with the PC EFI boot sequence. Once you do that, your USB drive will be bootable and not have the same size restrictions of a DVD.
Secondly, because the screen on the HP Mini 1000 is only 1024x576, most of the installation screens are too tall. Most of the time, the buttons are placed off the bottom of the screen, so there was a lot of guessing which buttons were where. Most often I would have to tab two times and then press space bar to select the "Continue" option.
Thirdly, once you've installed Mac OS X on to the HP Mini, the resolution would revert to 640x480 (even worse than 1024x576). One of the final steps in the installation is to do a System Update to 10.5.7. However, in order to accept the EULA, you must manually press the Accept button with a mouse, and that doesn't work! One solution I found was to turn on "VoiceOver" in the "Universal Access" of the "System Preferences". Once you have that turned on, you can actually use your arrow keys to focus on controls that you would otherwise have to focus on with your mouse.
Finally, if you update to 10.5.7, you must use the newer AppleIntelGMA950 drivers to get back the native resolution (1024x576). To do that, there's a separate bundle of Kernel Extensions you need to install attached to this forum post.
After all is said and done, the installation for me took around 3 hours, 2 of which was downloading the 10.5.7 update off the net, and 30 minutes of which was copying the installation image to a USB drive.
The installation itself will take around 8GB on the hard disk, which left me with around 7.5GB storage on the main partition. Which is actually fine as I don't intend to store much on this machine. But if you're planning to store more, you'd probably want to get a large SD card as a second "hard disk".
Compatibility-wise, I am shocked that the Hackintosh version of OS X manages to get the sound, graphics, wifi, sleep/suspend, screen brightness buttons, volume buttons and the camera are all working. The only odd issue is the power management. When using the default Apple battery monitor, it would randomly warn about low battery even though the battery is fully charged. The solution is to not use the Apple battery monitor on the menu bar and use a third party called "Slim Battery" which gives a more accurate charge indicator.
Performance
The biggest reservation I had when I bought this was "how well will it run Mac OS X?" The answer was that it runs very well. The graphics with the patched drivers were seemingly accelerated with Quartz Extreme.
One surprising thing is that this machine works pretty well with only 1GB RAM. Maybe it is because when when it goes to swap it is still fairly fast because of the SSD. I'll try to upgrade to 2GB RAM to see if it is any better.
I did a side by side with my MacBook Pro comparing how fast it would boot up and how fast it launches Safari from a cold boot. Boot up time is around 10-20 seconds slower on the HP Mini.
Safari shockingly launches a couple seconds faster on the HP Mini compared to the MacBook Pro. I'm guessing the reason is that it is way faster loading Safari from flash compared to loading it from a regular HDD.
Flash videos (like YouTube) do not play at full frame rate, but are otherwise viewable. Oddly enough, when you use Vimeo, it stutters even more than YouTube. I think maybe the Vimeo player is doing more compared to the YouTube player. I managed to watch an hour of Wimbledon tennis on this using the BBC Flash player and it worked well full screen.
The battery reportedly lasts for two hours, but I've not stressed it enough to know. The battery meter right now says it has 2:30hrs remaining fully charged, but its probably not accurate.
Usability
This is my first weekend of using this machine, and already I've not bothered to turn on my MacBook Pro unless I'm doing some Xcode work. For web browsing and tweeting, this has been a fine machine. I'm even drafting this post using it through Google Docs and I barely notice the difference. I guess the only thing that is problematic is the lack of vertical screen real estate. That means I'm particularly sensitive to how much chrome there is at the top of websites and applications.
The keyboard is a 92% full size keyboard, so the keys are slightly squished. Once you get a hang of it, it isn't too bad. My hands are pretty small so it's fairly comfortable.
I can't say the same about the trackpad though. Although the trackpad supports two finger drag, because it is so short, it isn't very effective. There is an area on the right hand side where you can drag to scroll like regular Windows machines and it actually works on OS X. I tend to use that more than two finger scroll. The tap-to-click mechanism also works, but has a noticable lag compared to the MacBook Pro. I'm not sure whether that is because of the different drivers or the hardware. Note that the trackpad and keyboard uses an alternative Voodoo driver.
At night, the extra light between the keyboard and the trackpad is very distracting. So distracting that I am considering sticking a piece of electrical tape over it. One interesting touch is that there the breathing light when a Mac is suspended. The same thing happens with the power light on the HP Mini, but it only blinks on and off because it is a binary light.
The SD card slot is a little hard to get access to. It is receded with the curve of the device, and that is difficult to feel without looking. Finally, the fan is sometimes a little noisy, but it is no where near as noisy as my MacBook Pro's fan.
Overall
I'm really happy with the HP Mini 1000. It is very light and fast. I love having a solid state drive because I don't have to worry about bumping this thing and the hard drive failing. The installation was a little tedious, but once I've done it I know how to do it in the future. Compared to the MacBook Air, it doesn't have such good build quality, the keyboard flexes a little and the touchpad is too small with the odd button placement. However, at a quarter of the price, I'm willing to give up those luxuries.
Leopard
I own a licensed copy of Leopard which I bought the day it came out. So I'm not feeling particularly bad about installing it on this non-Apple hardware.
i've hacked my appletv using the ATV PatchStick so that i can use xbmc (xbox media center) and boxee (kinda like last.fm for video). one of the things i wanted to do was to watch bbc iplayer on the appletv that someone wrote. however, it isn't able to run on the appletv because python is not installed.
there is already a guide on how to install python on appletv, but it is quite manual, so i tried my own way which worked just as well:
download the latest python (link) and open up the dmg.
download and install pacifist. this allows you to inspect installer pacakges.
open "Disk Utility", click on "New Image" and create an image of around 100M and name it "PythonInstall":
use pacifist to open up the MacPython.mpkg in the dmg above.
right click on the "Contents of MacPython.mpkg" and choose "Install to Other Disk" and then choose the disk image you just created:
unmount the "PythonInstall" partition.
now copy this image to your appletv via scp. the command will probably be:
$ ssh frontrow@appletv.local Welcome to the AppleTV (via atv-usbcreator) frontrow@appletv.local's password:
then mount the image:
sudo hdiutil mount PythonInstall.dmg
then copy the contents of the image on to your AppleTV:
tar cvf - -C/Volumes/PythonInstall/* | tar xvf - -C/
then to test, type "python" and you should get:
Python 2.5 (r25:51918, Sep 19 2006, 08:49:13) [GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwin Type "help", "copyright", "credits" or "license" for more information.
once that is done, you can follow the instructions for installing bbc iplayer plugin for boxee/xbmc and get all the awesomeness of iplayer on your appletv.
most of my open source code had been hosted on my personal svn repository and trac instance. the problem with this set up was that i could not invite others to join and contribute to projects without creating accounts for them on my web server. moreover, i was wasting resources on my webserver hosting a wiki and source browser.
so instead, i've decided to move all my opensource code to code.google.com and retire my trac and svn instances. this way it will be much easier to invite contributions from others and also relieve me of spamcop responsibilities on trac instances.
Simon Haertel sent me a fix for this problem in the current EyeTunes framework trunk. this patch is now committed.
another important eyetunes.framework related news is the project is moving from my personal server to its own googlecode repository. so if you have an svn checkout of eyetunes, please change it to point to:
david chang is a chef/owner of a 'chain' of restaurants in nyc called momofuku (noodle bar, ssäm bar, ko). his approach is eclectic, unconventional and inspirational. charlie rose interviews him for an hour.
he is shy about his success -- but his philosophy is great about how to approach life.
* "be daring in your decision making." * "if you really want to do something, then go for broke." * "you have to make mistakes ... but just make sure you don't make them the second and third time around."