After 4 years of Ubuntu Linux, I am finally getting comfortable with Mac OS. Here’s my list of things that I think will make Mac OS a better OS for me, a long-time Linux user.
Disclaimer: I not a Mac expert by any means. Please feel free to enlighten me.
1. Better X11 and GNOME support
X11 applications don’t look and feel anything like native OS X applications. Try Inkscape on Mac and you’ll know what I mean. Applications have to be refactored to use carbon, e.g. GIMP and NeoOffice, to make them look native (bad!). The fact that all X11 programs run under the master X11 application is really annoying and unnecessary. I’d like to see the GTK libraries and GNOME infrastructure be available for Mac by default, or at least part of the X11 distribution, so that developers can use tools like autoconf to build the application. I have no idea how difficult GNOME within Mac would be but I really like to see it happen. I want to be able download and compile my favorite GNOME application and have it look and feel like a native Mac OS application, as much as possible. Hey, if you can make GNOME look like Mac OS, why can’t Apple make GNOME look like Mac OS? Another advantage of adding GNOME infrastructure is the ability to run .NET applications through Mono.
2. Better out-of-the box personalization
Metacity is way more customizable than Carbon/Cocoa. Just look at gnome-look.org. I want to personalize my desktop and not have to pay extra. Tiger only comes with two color schemes, blue and gray. Weak! I would like to see real themes, out-of-the-box.
3. Consistent look and feel
For an OS that blazes the trail on UI design, it’s really disappointing to see the inconsistent look and feel. The first thing I noticed after booting up my Mac was that Safari, Finder, iTunes, they all look different, i.e. Brushed metal vs. not. This is being fixed in Leopard.
4. Software package management
MacPorts is a start but nothing like the Ubuntu repositories. I do like the .app format. All app related files in one place. I don’t like that Mac installation programs have to scan the harddrive for existing versions or dependencies. I would love to see something like Synaptic and be able to install my software using one-click or one command on a fresh Mac.
5. Make Darwin more Unix-like
I love the fact that bash, vim, grep, awk, ssh, etc. are installed by default. But I find the Mac file structure dis-orienting. For example, why is it so complicated to create a script to run during initialization? A subsystem that supports System V-style init scripts would be great, even if it runs after the core Mac OS-initialization. Better coherence with Linux directory structure will also be very helpful.
6. Make Firefox the default browser
Apple should stop wasting energy on Safari. Firefox runs everywhere. IE dominates the Windows world. We don’t need yet another browser with it’s own little quirks. Apple should embrace Firefox, improve it where it’s lacking and submit the code upstream. If Apple really wants their own browser, they should at least use the Gecko engine so we get consistent behavior. I really don’t think a minor performance improvement is worth all the compatibility trouble.
7. Install NeoOffice by default
Apple is all about giving you everything you need to get going. This is more true for Linux than it is for Mac. Where are my productivity tools on the Mac? Unless legally bound by Microsoft’s investment, Apple should just include NeoOffice. And hire those brilliant NeoOffice guys while they’re at it. Keynote and Pages are nice, they can remain options for paid upgrade.
8. Let Sun take care of Java
As of June 2007, there’s still no Java 6 for Mac. That’s a real shame, considering how important Apple claims Java is to them. My advice, give up and give it back to the experts. I know Apple and Sun work together on this to make Java integrate well with Apple. From what I can see, I don’t think the integration is that special and I see no reason why Sun couldn’t do it themselves. However they want to solve this problem, between Sun and Apple, please keep up with Java releases.
That said, Mac OS is a great OS for developers. Linux users will find more things in common with Mac as compared to Windows. I was planning to Bootcamp my Mac with Feisty but after a few days of OS X, I ended up staying. Keep up the good work guys. Leopard is looking good!
Related posts:
Jun 26 2007 04:33 pm |
apple and
linux |
8 Comments »
Love Ubuntu and want to run a Rails server on Edgy Eft (Ubuntu 6.10)? Roll-up your sleeves for some "compiling from source" fun.
Please note that Ubuntu Fiesty Fawn has been released. It comes with Apache 2.2. If you can, avoid all this compiling and just sudo apt-get dist-upgrade!
Rails development on Ubuntu is a breeze, you can apt-get all the stuff you need. From Ruby 1.8.4 and MySQL driver to ImageMagick, the official repositories have got you covered. Deployment is another story. The bad news is that stuff that comes with Edgy just doesn't work, the good news, compiling stuff in Ubuntu, and Debian in general, is really easy.
Where's what we need to compile:
Apache 2.2
Because you can't do serious Rails deployment without a Mongrel cluster, and Mongrel needs a Load Balancing Proxy so that browsers can connect to the standard port 80. Ubuntu comes with Apache 2.0, which is no good because mod_proxy_balancer was not introduced until Apache 2.2. We need to grab Apache 2.2.x from the source and compile it ourselves.
Note: You _can_ use lighttpd but I wouldn't use it's mod_proxy plug-in. Why? Because it's load balancing bit is buggy and Zed says so. If you must use lighty, use Pound to do the load balancing (see below).
No point re-inventing the wheel, the good folks at Starman will show you how to build Apache 2.2. Don't have time to read? Simply get the latest Unix source from the Apache download site. Get some stuff from Ubuntu universe:
CODE:
-
sudo apt-get install build-essential libpcre3-dev libssl-dev libdb4.3-dev libneon25-dev
Remove existing Apache package, untar the Apache source and run:
CODE:
-
./configure --enable-deflate --enable-proxy --enable-proxy-html --enable-proxy-balancer --enable-rewrite --enable-cache --enable-mem-cache --enable-ssl --enable-headers --enable-logio
Followed by
This will install Apache 2.2.3 in /usr/local, which is where I like it because it doesn't get confused with Ubuntu maintained stuff. You will have to point your /etc/init.d/apache to the new apachectl.
Pound
Pound is a decent standalone load balancer. You can learn more about using Pound with Mongrel here. One advantage here is that you can use lighttpd as a web server + proxy and let Pound do the balancing. It is quite configurable and comes standard with Ubuntu. Well, sort of. The Ubuntu Edgy package doesn't work very well. In my case, it kept crashing without any warnings. If you do want Pound, you will have to compile from source. Rob Orsini explains how to setup lighty, Pound and Mongrel here. Long story short, download Pound and untar (tar xfz) it.
CODE:
-
sudo apt-get install libpcre3 libpcre3-dev
-
./configure; make ; sudo make install
Memcached
Memcached is an in-memory cache that can help take the load off your database. I was attempting to use memcache as my Rails session store but the standard Edgy package refused to work for me. Rails would complain that my session was expiring within a few navigations. This would only occur under a Mongrel cluster; a single Mongrel or Webrick would have no problems. Strange.
So I got the latest memcached source and repeated the compile drill:
CODE:
-
sudo apt-get install libevent-dev
-
./configure; make; sudo make install
This fixed the problem but for some reason memcached would occasionally halt for several seconds, making my site slower rather than faster. I finally gave up on memcached and decided to settle for SqlSessionStore, which works like a champ! If any of you have insight or experience with this issue, please let me know.
All this compiling, albeit easy, should not be needed. The biggest downside of compiling is that you don't get to apt-get upgrade things. You could be missing out on a critical patch. If only the Ubuntu package maintainers would stay current, or someone (like you and me) would just take some time to build DEBs and publish a "Ubuntu on Rails" repository.
Jan 11 2007 10:58 pm |
linux and
rails and
ruby |
4 Comments »
While attemping to use Firefox in dual screen mode on my Ubuntu Linux, I encountered this annoying problem: If you launch Firefox on one screen, you can't launch it on the second screen (unless you are using Clone to Big mode). When you launch Firefox on the second screen, it complains about the profile being in use.
Here's quick solution:
- Close all Firefox windows and run the following on your terminal:
firefox -ProfileManager
- Create a new profile, say "Second Screen." Keep the checkbox "Don't ask on startup" selected and click "Exit".
- On your secondary monitor, modify the Firefox launcher by right clicking on the icon on your Panel and selecting "Properties". Change the "Command" to:
firefox %u -p SecondScreen
- That's it. Enjoy indepently configurable Firefox on both screens now!
Oct 20 2006 01:57 pm |
linux |
3 Comments »