This is a page describing the things I have done with my iBook. I hoped to find something like this on the net when I got my iBook. My main difficulty was that I had no history in the mac software community and had no clue about what was useful. For example, I know that there are plenty of reasonable graphical FTP clients for Windows like WSFTP, Bulletproof and FlashFXP but had no idea what to use on the Mac platform.
I like to think that I was fairly enlightened regarding the mac vs. pc debate. The facts, as I saw them, were that most machines before the G3 and MacOS X were underpowered and very expensive. These days, I still think they are very expensive, but the MacOS X operating system is great. I would like to be able to contemplate a Mac other than the cheapest portable, but I cant imagine a circumstance in which a student would find more price/performance from a mac desktop. Sure, I would love a G5 but there is NO way I could afford one, it is quite sad really.
This guide is mostly from a developers perspective as I intended to purchase the laptop for development. I am a uni student and I develop 3D software under Linux so my main requirements were low price and capable (if not blazingly fast) 3D support. It was also important that the development platform be linux-like as I don't want to learn Visual C development unless it is absolutely necessary. This is also the reason I choose to use gcc and make for development over Project Builder/XCode. I would like to have one set of source and Makefiles that work on all platforms. IDE's frustrate me quite a lot. I hate the whole create-a-project idea that leaves you with half a dozen files with no clear purpose.
I had been looking for my first laptop for about 6 months on and off and had almost decided upon a Dell Inspiron 8500 until I discovered the difficlties people had encountered installing Linux on it. From memory, people had no trouble getting most things to work but had difficulty with a few small but important things like Bluetooth, WiFi and Power Management. MacOSX is very appealing in that respect, it is *nix matched very well to Apple hardware.
The 12 inch iBook G4 is modestly powered (800Mhz) but at least it is a modern G4 with Altivec. The 3D subsystem is a ATI Radeon 9200, a capable 3D card. I filled my particular laptop with 640Mb of RAM and a WiFi card. If I had the opportunity again, I might get a machine built-to-order with a larger hard drive. 30Gb is adequate and even the AU$40 for a 40Gb instead not really cost effective in $/GB so I put the money toward a large 200Gb drive for my PC. But of course none of that storage is immediately available when I am away from home.
A bluetooth adapter might also have been handy. At the time I had a irrational philosphical objection to mobile phones that is slowly eroding. Using iSync to synchronise with a bluetooth phone would be fun the first time it happened. I guess the novelty would probably wear off. I'm not really interested in wireless mouse or keyboard.
The auto-sensing ethernet port is very cool. If you plug straight into another computer instead of a switch, the port knows about it and adjusts itself so that it will work over a regular CAT5 cable and not just a crossover cable. Very useful.
I understand that the SMB support has been much improved for OSX 10.3. Still, it seems too slow to stream a video from a Windows server using SMB. For example, if I mount a server from the finder (go menu) then drag a remote file onto the VLC icon, VLC will start playing the file but will quickly complain that it is short of data. If I first copy the file to the local disk and again play the file with VLC, all is well. The network is fully switched and 100Mbps so I think it must be slow SMB on the mac end. Update: I have since found that other software, such as mplayer is better able to stream movies via smb. It doesnt have the problems of VLC.
I have had a few complications with the power management unit. For example, running on battery, the laptop (rightfully) turns the screen off after a user-defined period. The machine hasnt actually gone to sleep, it has just stopped powering the display. To turn it on, you just fiddle with the trackpad. However, if you then plug the laptop into mains, the computer forgets that it had turned off the screen, if you fiddle with the trackpad, nothing happens. You have to actually touch the brightness conntrols to make it remember that it is supposed to be on. No big deal though, not even annoying, just funny.
The other thing that was strange about the power management stuff was when I let it sleep until it ran out of battery. When in sleep mode it looses about 1% battery every hour. Unforunately, if you leave it to sleep for a long time, it won't turn off before it runs out of battery completely. Once this happens, it is quite hard to get it to turn on again. Just chanrging the battery and turning it on doesn't work. The way to do it seems to be to charge the battery inside the machine. Then take the battery out and leave it to sit for a while (5 minutes or so). While the battery is out, the iBook forgets it is asleep. When you put the battery back in and turn it on, it should work properly.
It is possible to hack the firmware of the iBook to enable display spanning in addition to mirroring. I used the a program to do this rather than do it myself, the program was called Screen Spanning Doctor. It worked like a charm.
Like most computer based dvd drives, the drive region may only be changed a set number of times. I think it is 5 (five) times for the iBook. There is hacked firware for many current and previous mac dvd drives but none for the iBook G4 yet. This website adds that hacked firmware is not likely in the foreseeable future.
It was recommended to me by a mac-savvy friend that I immediately re-install the operating system on the new machine. I guess the install on the iBook as it shipped is probably the result of a disk clone from a master copy rather than a proper install. I dont know what practical difference exists.
If you are used to using a Linux system, then you should have no troubles compiling stuff for MacOSX. I guess some of the differences between the two come from MacOSX's BSD basis and some come from general Apple weirdness. In any case, compiling simple C programs is exactly the same as Linux, just use gcc. When it comes to linking with libraries it gets a little different. Instead of using -L as you would under Linux, you use -framework. For example, compiling a simple OpenGL program:
gcc -o gltest gltest.c -framework GLUT -framework OpenGL -framework Cocoa
As you can see, you need to link with Cocoa. As I understand it, Cocoa provides MacOSX native windowing. I guess OpenGL depends on it.
The code that I work on, the Clean Library, is just a large collection of structs and functions compiled together into a library. Originally we compiled the object files into an archive file (.a) but have since modified the makefiles to create shared objects (.so). Where we use a line like:
gcc -shared -o libCL.so cl.o
We use this for MacOSX:
gcc -dynamiclib -framework OpenGL -o libCL.dylib cl.o
We are able to handle this stuff transparently in Makefiles and #ifdef's within the source.