Zak Mandhro

technology = evolution; open source = punctuated equilibrium

  • Home

26

Jun

8 things Mac OS could do better

Posted by Zak Mandhro  Published in apple, linux

Mac OS TigerAfter 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

Synaptic on UbuntuMacPorts 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:

  • Ubuntu vs. OSX – Where Ubuntu Wins
8 comments

11

Jan

Edgy on Rails? Get compiling!

Posted by Zak Mandhro  Published in linux, rails, ruby

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
  • Pound
  • Memcached

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:

PLAIN TEXT
CODE:
  1. 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:

PLAIN TEXT
CODE:
  1. ./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

PLAIN TEXT
CODE:
  1. make ; sudo make install

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.

PLAIN TEXT
CODE:
  1. sudo apt-get install libpcre3 libpcre3-dev
  2. ./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:

PLAIN TEXT
CODE:
  1. sudo apt-get install libevent-dev
  2. ./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.

4 comments

20

Oct

Making Firefox work with Dual Screen on Linux

Posted by Zak Mandhro  Published in linux

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:

  1. Close all Firefox windows and run the following on your terminal:
    firefox -ProfileManager
  2. Create a new profile, say "Second Screen." Keep the checkbox "Don't ask on startup" selected and click "Exit".
  3. 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
  4. That's it. Enjoy indepently configurable Firefox on both screens now!
3 comments

Zak Mandhro
View Zak Mandhro's profile on LinkedIn

My Products

  • BabyBook.me Twitter + Facebook powered memory book and live journal
  • Famiva.com Social Network for Families
  • ROXML Ruby Objects for XML
  • uddi4r UDDI for Ruby

RSS Zak's Twitter Feed

  • @kevinrose kindle is a device for reading books.. Why does it give up real state to keyboard? 11:03:10 PM July 28, 2010 from Flipboard in reply to kevinrose
  • Power.com awarded AlwaysOn 250 at Summit at Stanford. Kudos to Steve Vachani and Eric Santos. #sas10 09:05:50 AM July 28, 2010 from Twitter for iPhone
  • Verdict: TextMate with Rails + Git + Shoulda bundles is usable. But RubyMine does it all better. http://bit.ly/AsOhL 09:26:36 PM July 25, 2010 from Tweetie for Mac
  • Learning TextMate after ignoring it for years. http://bit.ly/94NhkC 11:31:50 AM July 24, 2010 from Tweetie for Mac
  • MailChimp design and UX is sensational! 11:23:50 PM July 23, 2010 from twitgether
  • Waiting for next @rubymine EAP. 96.552 is quite buggy. But then, it is EAP. http://bit.ly/dkKg3Q 06:13:03 PM July 23, 2010 from Twitter for iPhone
  • {LESS} rocks! CSS with variables, mixins, operations and nested rules http://www.lesscss.org 09:23:09 PM July 10, 2010 from web
  • Infinityward: you guys are f'ing amazing! Thank you for MW2. 12:37:51 AM July 10, 2010 from Twitter for iPhone

RSS Famiva Blog

  • Bug fix with invitation acceptance
  • Back Online
  • You’re In Control - Give Us Feedback!
  • Sampa Migration Now Available
  • Migrate from Sampa to Famiva - automatically!
  • Happy Father’s Day Gift - BabyBook.me
  • We’re Back
  • Introducing GEDCOM Import
  • What’s new with Famiva.com
  • New feature: Universal member search

Recent Entries

  • BabyBook.me – My Latest Project
  • Sign-up for Firefox Download Day
  • SOA with Ruby
  • 8 things Mac OS could do better
  • Leopard delayed. Time to get a Mac.
  • Family2.0 Famiva is live, FINALLY!
  • Edgy on Rails? Get compiling!
  • SD Times – Rails for Tactical Business Applications
  • Using MySQL Full Text Search with Rails
  • Making Firefox work with Dual Screen on Linux

Recent Comments

  • Aaron Gough in Using MySQL Full Text Search with Rails
  • Ben in Family2.0 Famiva is live, FINALLY…
  • Zak Mandhro in 8 things Mac OS could do better
  • Zak Mandhro in 8 things Mac OS could do better
  • Zak Mandhro in 8 things Mac OS could do better
  • Carl Williams in 8 things Mac OS could do better
  • Mysql Download in Using MySQL Full Text Search with Rails
  • shaiton in Making Firefox work with Dual Screen on Linux
  • Tom in 8 things Mac OS could do better
  • coolpositive in Using MySQL Full Text Search with Rails
  • Random Selection of Posts

    • Java will learn from and adopt to Rails
    • Sign-up for Firefox Download Day
    • BabyBook.me – My Latest Project
    • My Projects
    • Family2.0 Famiva is live, FINALLY!
    • Setting up Intel Mac for Rails development
    • Making Firefox work with Dual Screen on Linux
© 2008 Zak Mandhro is proudly powered by WordPress
Theme designed by Roam2Rome