• Mac OS X vs. Ubuntu: The environment

    I'm sure you are already familiar with the desktop environments of both operating systems so I'm just going to outline here the most interesting aspects of each one. Some details will be left for further posts as they are interesting enough on their own. Here we go:Ubuntu, being yet another GNU/Linux distribution, uses one of the desktop environments available for this operating system, namely GNOME. GNOME aims to be an environment that is easy to use and doesn't get in your way; they are achieving it. There are several details that remind us of Windows more than Mac OS X: for example, we have got a task bar on the bottom panel (that is, pardon me, a real mess due to its annoying behavior) and a menu bar that is tied to the window it belongs to.It is interesting to note that the panel is highly configurable and lets you reorganize its items, add new ones and even create new panels to keep things grouped. The same goes for the desktop look, which can be configured to your liking through themes that affect the window borders, widgets and icons.A feature I miss is the ability to configure screen hot corners to trigger some actions, but I guess that some third party application could allow me to do that. Oh, also note that the desktop does not have any fancy 3D effects by default such as drop shadows, transparencies nor anything like that. People is working in these features lately (Xgl), but they are not yet ready for the end user.Mac OS X, on the other hand, is quite unique in its interface. Applications have a single menu bar that sits on top of the screen; this makes it very easy to reach and also groups all windows that belong to a single application (you know how annoying The GIMP is in this aspect, don't you?). On the other hand, the Dock replaces the typical task bar and also implements the ability to launch applications. Some may not like this but I love the merging of the two concepts: it doesn't matter if a program is currently running or not; you simply click its Dock icon (or even drag a file over it!) and it pops up to the front.This desktop is also famous for its graphical effects. As a curiosity, the active window has a drop shadow that makes it outstand from all others (quite handy). But more importantly, it makes it possible to implement things such as Exposé, which is a great task switcher. This makes me think of the hot corners I mentioned above: it is very useful to be able to configure actions for each corner so that they are triggered when you move your mouse over them.At last, and as far as I know, the Mac OS X interface is not themeable by default. You can change some of its colours (from Aqua to Granite), but that's it. Oh, but I forgot to say that there are at least three different themes applications can use, and the one they show depends on them alone. This means that there are some inconsistencies all around as some applications use the brushed metal theme while others don't. Not a big problem for me, and there are rumors that this will be resolved in Leopard.Well... I guess this is not very enlightening, but the two interfaces have been compared countless of times. I even wrote some articles in the past about it: see this or that. So that's all for now. (And if I you want me to choose one, I go for the Mac OS X interface.) [Continue reading]

  • Mac OS X vs. Ubuntu: Hardware support

    Let's start our comparison by analizing the quality of hardware support under each OS. In order to be efficient, a desktop OS needs to handle most of the machine's hardware out of the box with no user intervention. It also has to deal with hotplug events transparently so that pen drives, cameras, MP3 players, etc. can be connected and start to work magically. We can't forget power management, which is getting more and more important lately even on desktop systems: being able to suspend the machine during short breaks instead of powering it down is extremely convenient.So far Ubuntu has behaved very well in all the machines I've installed it. As regards my desktop machine, it did the job just fine except for some minor glitches; if ignored, though, the machine was still perfectly usable. For example, the TV card does not work — but really no other OS is able to automatically configure it due to deficiencies in the hardware itself — nor does suspension. This last item is worrisome because it did work in the past, but I haven't found a solution to it yet.On the other hand, the GeForce 6600GT video card works flawlessly after manually installing the NVIDIA video drivers, which is a simple matter of installing the nvidia-glx package and running the nvidia-glx-config enable command as root. I can't say this is ready for the end user — a tiny GUI for the overall process wouldn't hurt — but I'm happy with it. Anyway, if I hadn't done this, the desktop would still be usable with the free nv driver, but it does not perform as well.Somewhat related to the video card, there were problems with the resolution configuration. For some reason the screen was configured to 1024x768 and there was no way to go higher from the Screen Resolution control panel. If I recall correctly this was possible under a previous Ubuntu version (before it had a graphical installer). To solve this I had to resort to dpkg-reconfigure xserver-xorg, go through all the annoying questions, select the appropriate resolution (1680x1050) and reenable the NVIDIA driver. This is definitely not for the end user.At last, hardware hotplugging works fine as far as I can tell. There is a lot of people working on HAL, the GNOME Volume Manager, the kernel and all other related components, so this feature works as expected. Even the photo camera is instantly recognized when plugged and a window pops up asking whether all the photos should be transferred to the computer or not.Mac OS X, on the other hand, behaves much better with the hardware provided with the machine: everything works as intended. Of course this is because the same people developing it are the same people that build the hardware, so they know exactly how to write the drivers. Simply put, it would not be acceptable if some pieces were not supported. I personally like the Apple hardware, so I don't mind getting their hardware if I feel the need to run this OS (as I did with the iBook G4!); many people won't agree here, though.Hotplugging also works in a similar way to every other desktop OS. I don't have much external hardware to try it with, though, but the basic things simply behave correctly. Now, conjecturing a bit: I bet Mac OS X will behave better than Ubuntu with more advanced multimedia hardware (MIDI keyboards, video cameras, webcams, etc.) but I don't have such things to try them.Summarizing: Mac OS X has got it right and Ubuntu is on the right track. For my purposes, both of them are in par. [Continue reading]

  • Mac OS X vs. Ubuntu: Introduction

    About a week ago, my desktop machine was driving me crazy because I couldn't comfortably work on anything other than NetBSD and pkgsrc themselves. With "other work" I'm referring to Boost.Process and, most importantly, university assignments. Given my painless experience with the iBook G4 laptop I've had for around a year, I was decided to replace the desktop machine with a Mac — most likely a brand-new iMac 20" — to run Mac OS X on top of it exclusively — OK, OK, alongside Windows XP to satisfy the eventual willingness to play some games.Before making a final decision, I installed Ubuntu 6.06 LTS a few days ago on the desktop machine — an Athlon XP 2600+ with 1 GB of RAM, a couple of hard disks (80 and 120 GBs) and a GeForce 6600GT — so that I could focus on my tasks in the meantime. I had already used Ubuntu it in the past but not as my primary system, and I must confess it has impressed me a lot. Given this, the fact that my machine can't be considered old yet, that I already own a 20" screen and, of course, the price, I'm reconsidering the decision to buy the iMac.Canonical is doing a good job at developing a desktop operating system that just works for most, if not all, of the common end-user needs; that should be the definition of a desktop OS, shouldn't it? Sure, they are using components available everywhere else (modulo some custom changes) such as Debian GNU/Linux, the GNOME Desktop and an assorted set of related utilities. This, alongside the huge package repositories of Debian, provides a system with a lot of ready-to-install software that is useful to lots of people. Even more, the system itself requires few maintenance as most of it is completely automated.That's enough for the introduction. I would like now to compare Mac OS X Tiger against Ubuntu 6.06 LTS to see how they stack up to each other. Given that there are several aspects I want to cover in detail, I'll be unleashing them in the following days instead of posting them all in a single message; that'll hopefully be easier to digest. Just keep in mind that I'm speaking based on my experiences so that some comments may be subjective. I also hope that these essays will make me take a final decision of what to do with the machine I currently have! ;-)Stay tuned! [Continue reading]

  • A letter to NetBSD

    Dear NetBSD,It is almost five years since we first met and I still remember how much I liked you at that time. Despite your 1.5 release had slow disk performance when compared to the other BSDs, I found in you an operating system that just felt right. You focused on clean and well designed code among many other goals; sincerely, I didn't come to you looking for portability because I never had anything else than i386 machines. All these feelings turned into love after installing and experimenting with you: the system was minimal, well documented and made sense. As you know, I soon left FreeBSD and migrated my machines to you.pkgsrc, one of your children projects, was also nice when compared to FreeBSD's ports. The buildlink concept was very interesting and in general it looked less clumsy than FreeBSD's ports: few build-time options resulting in consistent binary packages, no interactive installs, etc. It lacked many packages but that was a plus for me: I'd easily get involved into your development. I set myself the goal of porting GNOME 2.x to you and achieved it some years ago.At that time I had never contributed to any big free software project in the past, so you can imagine how excited I was some months later when one of your developers invited me to join you. That boosted my pkgsrc contributions and I started looking at contributing more stuff to the base system. If I can tell you a secret, I had always wanted to write a simple operating system on my own but given the size of this task I preferred to join the development of an existing free one and help as much as possible. To some extent I achieved it and learned a lot along the way.As I said above, I love(d) you, but keep in mind that love and hate are not opposite feelings.As another developer recently reminded me, one of my first changes to the system after becoming a developer was the addition of the "beep on halt" feature to the i386 platform. I quickly wrote that feature and was eager to add it to the system, so I presented it to tech-kern. My excitement went away quickly. That tiny change generated a lengthy discussion where everybody exposed his preferred way to achieve that feature and bashed all other possibilities. Eventually, it was all bikeshed. However, as I was new I tried to please everybody and in the end committed the feature.If that had happened only once, you'd say I had had a bad day with you. But it turns out that this same situation was and is still too common in your mailing lists. Indeed, there are a lot of competent people in them but consensus can never be reached.The problem is that this situation scares off many new potential contributors. They come excited to you with new patches and functionality that could be valuable to the OS but you turn them down because you have no clear long-term goal, because the changes are not perfect and you insist on perfectly designed stuff on the first proposal or because there is no consensus. Oh, and that is without counting all those cases where you do not provide a single reply to proposals. Eventually the contributor gets tired of the discussion (or lack thereof) and runs away.I want to make clear that some developer groups within you are still kind to deal with such as the pkgsrc team or the www maintainers.And no, your "portability" goal is not interesting any more (and as I said above, it never was to me) to the general public. Your brother Linux runs on as many systems as you if not more; it was just amazing to see it working on a Linksys router just some days ago, while you cannot get close to it. NetBSD, you need to review your goals, make them clear and, if needed, generate some hype about them. Yes, even if you don't like it, hype will attract many new users. Some of them — possibly a tiny bit — will be potential new developers. And you need as much of them as you can to evolve or otherwise you'll be stalled in the past because you won't be able to keep up with new hardware.While I've had a very good time hacking your code and working in pkgsrc, it's not fun to me any more. It is frustrating to spend lots and lots of hours of my free time to later see that it was in vain. Furthermore, I'm extremely tired of having an unusable desktop system because of broken stuff — I know, not completely your fault — and the need to be constantly maintaining it. I need and want to be productive in other projects but you do not let me to.You know, contributing as a volunteer to free software projects is about having fun. I'm not having fun any more so I'll most likely be deinstalling you from my desktop machine and permanently shutting down my home server, both of which are running 4.0_BETA. This is not still a sure thing but, if things continue as usual, I sure will. And soon.This is not a good bye though. I still believe in your hidden goals: good design, standards compliance, etc. — these should replace the "portability" buzzword — so I'll install you on a spare machine and/or under a virtual machine to be able to do eventual hacking and maybe GNOME maintenance. Oh, and of course I'll keep using pkgsrc under other systems.Yours sincerely,jmmv [Continue reading]

  • Trying out DD-WRT

    Past Christmas I bought a Linksys WRT54GSv4 router to improve wireless access to my home network. Of course, I'd have bought an access point, but I also wanted to replace most of my home server/router functionality with this little device so that I could eventually remove the server box. Therefore it had to provide:NAT.Firewalling.Port redirection.A dynamic DHCP server.Ability to configure DHCP static entries (used for servers within the network).A local DNS server to resolve names for local machines.The first four items were all provided by the official firmware but unfortunately not the last two. However, if I chose that specific model was because it could easily be flashed using OpenWRT or DD-WRT, both of which allow to set up those services by using, e.g. Dnsmasq.However, due to lazyness and fear of breaking it, I didn't flash the router with these non-official firmwares until a couple of days ago. I finally decided to give DD-WRT a try given that it includes the same (but improved) nice web interface that came with the official software. I certainly did not want to configure it through the command line.For some reason the first flashing attempt failed in a strange way because I could access the router through telnet but not through the web. Trying to fix that through the command line resulted in much worse results rendering the router useless: it wouldn't boot at all because the firmware was corrupt. Panic!Fortunately, after playing a lot with TFTP I finally achieved to flash it again with the correct firmware. After that, I was greeted by the web interface waiting for me to configure everything again. At first everything looked as before (except for the visual theme change) with some minor additions, but then I discovered the "Services" tab which accomplished my initial goal: set up static DHCP entries for hosts and configure local DNS names. Simply wonderful.So now that the router provides DHCP and DNS as I needed, the only remaining tasks that the server does are file sharing, Monotone database serving (for the local network only), P2P management and daily NetBSD rebuilds. Note that in the past it also ran Apache, Courier IMAP, Spamassassin, FTP and probably something else. I'm now thinking how to best get rid of them all and shut down that annoying machine that continuously pollutes the living room with noise and wastes power unnecessarily. [Continue reading]

  • GNOME on NetBSD needs YOU!

    A few pkgsrc developers and I have been working hard for years to bring the GNOME Desktop to this packaging system and make it work under NetBSD. We are quite happy with the current results because the packages are updated very frequently and everything works. Well, almost. There are still several missing details that really hurt the end user experience and need fixing.If things continue as have gone until now, we will always be one step (or more!) behind other operating systems such as Linux and FreeBSD. Linux, of course, gets full support from the GNOME developers because they do their daily work on it. FreeBSD, on the other hand, has more people working on the port and therefore have more manpower to resolve all the portability problems; they are doing a nice work.In our case, it is clear that we do not have enough manpower to keep up with the huge task that porting GNOME is — we are very few people working on it. Just consider that GNOME is composed of around 100 packages and that there are new major releases every 6 months (minor ones coming much faster). This updating task imposes a lot of stress on us that prevents us from working on the remaining pending items.If we were able to work on all these issues, we could have a fully-functional GNOME Desktop on top of NetBSD. I belive this is a key area to improve NetBSD's visibility: if we had a complete desktop evnrionment, more users could come and use NetBSD for their daily tasks. Eventually, this could attract more developers who would start contributing to the system itself.So... I've prepared a list of GNOME-related projects that details the major items that need to be addressed to have a complete GNOME Desktop installation on top of NetBSD and pkgsrc. I've tried to detail each project as much as possible, explaining the current problem, why solving it could benefit NetBSD and how to get started.Should you need more information, I've also written some generic guidelines about GNOME packaging and porting. And, of course, you can contact me to get more details and take one of the projects! I'm willing to mentor you to make them success. You can certainly make a difference to the current status of things.Let me add that I've have learned a lot about many different areas from my contributions to pkgsrc and NetBSD. You can seize the opportunity to learn new exciting stuff too; don't be shy! Oh... and if GNOME on NetBSD is not of your preference, please see our complete list of proposed projects; I bet you will find something of your interest! [Continue reading]