I’m not going to lie.  I think OS X Lion 10.7.0 is a buggy release.  Is it buggier than some other releases of OS X?  Possibly.  Can Apple fix the bugs, most certainly.  But bugs aside, there a few design decisions Apple made that don’t seem fully baked.

First, lets touch on some of the bugs I’ve noticed so far.

Finder is one of those things in OS X that is almost universally disliked for one reason or another.  Finder in Lion has a new feature where it just stops doing things at all.  At times disk usage stops being updated and it won’t actually copy files.  While a restart of Finder resolves this issue, it’s odd that it is there at all.

Wi-Fi, formerly known as AirPort, has a strange tendency to just not connect after resuming from sleep.  That said, when it is connected I find it to be more reliable with more stable throughput.

Launchpad, the iOS like view of your installed applications has a tendency at times to lag heavily when launching an app.

There are a number of other smaller bugs that exist in Lion that are a bit grating but I have faith that Apple will fix them in short order.  Leopard was initially, at least in my opinion, unusable after the initial installation and I found myself going back to Tiger a couple of times.  Apple fixed those issues and then some.

But what really gets me are the things Apple will probably never fixed because they are working as designed and my real issue is that I don’t like the design.  Gestures for one are a cluster.  Many were changed from Snow Leopard and worse is that a good number of them contradict what a person would have learned.  Four finger swipe up now produces mission control rather than show desktop.  The show desktop gesture has now been replaced by a more awkward five finger gesture.  All in all, I spent the most time tweaking gesture settings on Lion than anything else after install.  Between the available options in System Preferences and BetterTouchTool I think I have things where I want them.

More annoying than the gestures is the addition of “natural scrolling.”  Natural scrolling reverses the scrolling direction when using the mouse wheel so that to scroll the page down you pull your fingers down on the trackpad or mouse.  The naming of this option is also interesting because unchecking the natural scrolling option says to the user they are about to enable something that is less natural.  I don’t think this could be further from the truth.  Like flying a plane, it’s natural for your body to want to push the stick forward to cause the plane to pitch down, but you push left or right to pitch left or right.  Natural scrolling makes complete sense on touch device where it is more like you are pushing a sheet of paper around.  At any rate, my issue comes in when you disable natural scrolling.  Not only does it reverse scrolling but it also reverses the direction used for changing spaces.  With natural scrolling off, using four fingers left causes you to go to the space on the left and four fingers right brings the space on the right into view.  In writing this makes sense, but in practice it feels awkward.

Lion also lacks the kind of polish I’ve come to expect from OS X.  Parts of it down right ugly.  Mail.app for example has a new layout which is great except for the hideous message count badging, shown below:

 

There is just something about the numbers that make them appear to be off in some fashion.

The boot process, at least what you see on screen, has been revamped some and I can’t help but feel that it all looks very clunky.  While the fading and moving the Apple logo from the center of the screen to above the list of users on the login screen is very clever, the steps required to move from boot splash to getting this animation setup is jarring.  The boot process basically boils down to showing the typical boot splash screen with the Apple logo which is then replaced with an image that looks the same and is ultimately used during the final animation that reveals the available users.  This transition just isn’t the kind of smooth and elegant thing a person would expect from Apple.  Couple that with the sometimes jarring color correction applied just prior to the animation effect and you have what is in my eyes a really poorly done boot sequence.  The shutdown process is also odd in that the desktop goes way and is covered with a plain gray screen.  The blue screen used in previous releases was much better and if it had to be replaced at all it should have been replaced with black.

All that said, there is a lot to like about Lion.  I find the autocorrect to be a fine addition.  I like Mission Control a lot, resume is a great feature, Mail.app’s new layout is superb and the refinements to iCal and Contacts are welcome.  I know Apple will fix the real bugs in the software but I can only hope they provide better System Preference options for customizing gestures.

I’m also surprised that none of the reviews I read seemed to point out the shortcomings of Lion and gave it glowing reviews.  As I said, there is a lot to like but it certainly isn’t perfect and I think Apple deserves to hear about it.  Lion isn’t Apple’s Vista by any means, but it’s obvious to me that Jobs had less input in this release than previous releases.

Ran into an issue while trying to get 64 bit Coldfusion running on Snow Leopard. Somehow Adobe’s installer can’t deal with the fact that the java binaries are symlinked in OS X so you have to manually remove the symlinks and then copy the binaries over. This page documents how to do it. The only thing I did differently is instead of simply deleting the symlinks I created a directory and moved them into that. This way I can restore the system back to normal.

Not so long ago I wrote about my experiences on getting Railo running on under OS X as a test. Along with just getting Railo running as well as a custom CMS I needed to be able to proxy requests through an Apache server to the Railo application server. One method is to use the simple mod_proxy module available as part of Apache. In my setup I wanted a bit more control than what mod_proxy could provide me. Enter mod_rewrite.

Mod_rewrite is used to manipulate URLs as they enter and pass through Apache. One way mod_rewrite is useful is that it allows you to rewrite incoming URLs so that what the user sees in their browser’s location bar is translated into what the application expects. You can also use it to manipulate the URL in the event that the location of an object has changed. In my setup I wanted to use mod_rewrite to rewrite certain URLs and then proxy them through the Railo application server.

Lets say my Railo application lives at http://localhost:8080/ and I want any URL that comes into Apache (on port 80) that starts with a keyword like ‘show’ to be rewritten and passed to Railo. Railo could just as easily be hosted on some other machine but for this example lets just say it is located on the same system as Apache.

In my example, I have a new vhost configured in Apache and it looks like this:

  <VirtualHost *:80>
    ServerName railo.dustinrue.com
    DocumentRoot "/Users/dustin/Sites/railo.dustinrue.com"
    <Directory "/Users/dustin/Sites/railo.dustinrue.com">
      RewriteEngine On
      RewriteRule ^show/(.+)$ http://localhost:8080/index.cfm?url=/show/$1} [P]
    </Directory>
  </VirtualHost>

Notice that I’ve told mod_rewite that I want to use an external command for rewriting the incoming URL. An external program basically accepts one argument, which is the URL portion that matches the rewrite rule, and then prints out the reformatted URL which Apache then uses from that time on and in this case, passes to Railo.

In this example, mod_rewrite will take a URL that might look like:

http://railo.dustinrue.com/show/article/id/123456/

And turn it into:

http://localhost:8080/index.cfm?url=/show/article/id/123456/

At the end of the mod_rewrite rule you see a flag telling mod_rewrite to proxy the request through the rewritten URL rather than giving than than telling the browser to visit the new URL (the default behavior). In turn, the request comes into Apache which sees the ‘show’ keyword. This keyword causes the request to be passed to the application server which responds with the appropriate output and this output is then sent to the browser.

In my example, the rewrite is very simple. You can do far more advanced stuff than this and it’s even possible to do some rewriting right within Railo and the server it is running under such as Jetty or Tomcat.

For some reason I decided to give Railo a try tonight. Railo is dubbed as “the fastest CFML OSS engine” available. The little bit that I’ve messed with it so far, I really can’t confirm that. What I can say however is that setting it up is fairly easy, particularly if you choose to download the express package.

One thing that hung me up though, and seems to hang up some others, is the configuration of virtual hosts when using Jetty. The OS X package is only available with Jetty and the documentation does a fine job of explaining how to setup virtual hosts. The only problem is they fail to mention that you actually need to uncomment some of the included config file to make virtual hosts work properly. Some people might see that right away, I glossed over it.

Documentation for setting up virtual hosts is provided by the Railo team at http://www.getrailo.org/index.cfm/documentation/installation/railo-express/. Note that in the virtual host definition section the documentation shows the option virtual host information already commented out, in the files distributed in Railo Express, they are not uncommented.

You can learn more about doing virtual hosts using Jetty at http://docs.codehaus.org/display/JETTY/Virtual+hosts.

There is a bit of buzz on the internet right now about Apple’s announcement of OS X Snow Leopard which is to replace Leopard sometime next year. Word on the street is that it won’t be luring people in with hundreds of new features but Apple is instead concentrating on stability of the OS. This is amazing to me for a couple of reasons. One, Apple seems to be admitting that it is out of ideas! Two, when is the last time you’ve heard of a big software company just going back and streamlining their OS? This is fantastic because as I wrote before, I’m liking Leopard more now than I did when it was initially released but compared to Tiger it’s just not as polished. Boot times for instance could be improved as Leopard takes nearly 50% to twice as long to boot compared to Tiger.

Along with the Snow Leopard client comes Snow Leopard Server and here is my prediction. Apple hasn’t told us everything (as usual) and based on the direction Apple is taking the iPhone, I believe Snow Leopard is going to be Apples biggest attack on the business/enterprise market yet. They have already admitted that ZFS will be included in Snow Leopard and they are talking about better Exchange support. Virtualization is a huge topic lately and I won’t be the least bit surprised to hear Apple announce virtualization support in Snow Leopard Server and maybe even in the client version. My guess is for the support of any OS including OS X itself..

What are your thoughts? Leave them in the comments area!