Wednesday, August 29, 2012

First Thoughts on the Mac Mini

Size


The Mac mini is my first Mac computer.  I bought it so that I could get ebe working to support assembly development on OS X.  The most obvious feature of the mini is its small size.  It's roughly the size of a Wii, which is like a fairly thick book.

OS X


OS X Mountain Lion was installed and I had no problems getting it set up with a seyfarth account for first use.  I also rapidly stumbled (or was led) into performing an update to 10.8.1.

I got somewhat used to the dock and the system bar at the top of the screen without a lot of grief.  It felt like the system was not taking much advantage of the right mouse button.

Safari and everything else seems to scroll backwards with the mouse wheel.  I haven't considered if one way has some inherent virtue, but I do find it annoying when I forget and scroll the wrong way.

X Code


I managed to get X Code installed which provided me with a working gcc and gdb.  That was a step in the right direction for getting ebe on the Mac.

Fink


After a brief search I ran across the names Fink, Mac Ports and Home Brew as ways of installing some programs I wanted to use.   Since I had seen Fink in use years ago I thought it might be OK.  Wrong!  It would not install on 10.8.1.  I don't know if I had an old version or if this is a dead package.

Mac Ports


Mac Ports was second on my list.  It turned out to be acceptable, but slow.  It is designed like Gentoo Linux as a source code distribution system and compiles everything.  This has proven to be a bit slow.

I recall trying Gentoo many years ago on a much slower computer.  It compiled X Windows overnight and produced an X which would not work.  I had to reduce the optimization to get it to work.  The whole justification for Gentoo was that you could use programs optimized for your CPU.  That was not particularly true since I had to cut back on the optimization.  Worse yet the time saving from optimized programs would never equal the time lost compiling.

Python


I managed to get python 2.7.2 installed using Mac Ports, but I couldn't get Pmw for the recent version of python.  Instead I copied the Pmw tree from my Linux computer into /usr/lib/python2.7 which did the trick.  Pmw is all python, so there should be no problem with simply copying it.

Nasm and Yasm


I installed yasm with Mac Ports and it worked with some issues.  The worst was that there was no available debug format for the macho64 executable format.  After searching for a solution I decided that I needed to explore other options.

There was an older version of nasm on the computer which did not support 64 bit programming.  I installed a newer nasm and mv'ed the old nasm to be Nasm.   I probably need to plan on reordering my PATH directories.

Nasm was a little better.  It supported 64 bit programming and the -g option worked a little bit.  I could use a variable name in gdb though, as usual for assembly, gdb didn't know the type of the variable.  I could also set a breakpoint on main, though gdb was ignorant of line numbers.  Instead I found that you could set a breakpoint on an address as in "break 0x100006e8".  By finding the address of main in gdb and using the listing file to translate line numbers into offsets from main, I could compute the address of lines and set breakpoints.

Thus with a little trickery I could manage to use gdb adequately to get ebe to work on OS X.  It's a little ugly since the numbers in the listing file are not the line numbers from the assembly source file, but it is doable.

Tkinter issues


The first problem I solved with Tkinter was a problem with right clicks.  I found an internet site which explained that the right button is 2 for OS X and 3 for other systems.  Well, gee, why can't people count the same way?  I don't think there are any issues but my solution is to bind all the actions for button 3 clicks twice - once for button 3 and once for button 2.  This got the program working fairly well.

The Continue button in ebe would break the word into 2 lines depending on the font size.  I changed the width from 8 to 11 to solve the problem.  There remains an issue where the buttons stay the same height as the text increases.  After a handful on increases the text is too big for the buttons.  At this point I don't know how to solve that problem.

Kile


I tried installing kile with Mac Ports but ended up wasting a few hours.  There is some problem which I haven't the desire to investigate.  I can simply use kile from my Linux computer to handle my latex needs.

I tried Home Brew but it complained that there were packages installed by Mac Ports or Fink which might interfere with its operation.  I felt like I had tried hard enough by this time and decided to not use Home Brew.  Some people like it better than Mac Ports, but I have spent enough time on this issue and I doubt that Home Brew would make much difference to me.  Using my Linux box over the network should be sufficient.  In fact they are both plugged into the same wireless router which has about 6 switched ports at 100 Mbps.

Summary


I will have minor problems getting use out of the Mac mini.  I am relatively unimpressed with its compatibility with open source software.  It is miles ahead of Windows in this area, but a bit painful compared to Ubuntu.

The desktop experience is better than the latest Gnome, but not better than Gnome 2 or KDE.  I would prefer multiple desktops and tasks accessible with a task bar.  These issues don't matter a whole lot.  Like with Gnome 3 the lack of a nice hierarchical menu is an impediment to use of the computer.  It won't matter if your programs are always on the dock, but when trying to run something infrequently used, I prefer a menu system.

Stability is good on OS X.  Performance is adequate.  Neither of these will impact my use of the computer.  Here's my ranking

   Ubuntu     10
   Mac OS X    9
   Windows 7   7

No comments: