Next Week I’m In Eilat

Next week I’m in Eilat on vacation, so this blog will probably not be updated at least until February 3rd. All six readers of this blog are welcome to check for updates after that time.

Happy Birthday To Me. I’m 31

Today I’m 31 years old. It feels weird. The day I turned 30 was like “I don’t feel much different than twenty-something”, but turning 31 makes me feel very much closer to 40, and that’s scary.

The previous year was mainly characterized with routine – mostly work and workouts. Both are very satisfying, but together take up most of my time. In general, time seems to fly lately, especially weekends. I think it’s a good sign that means I enjoy them. However, I wish I could have some more free time to work on my own ideas and even just to have some more “me” time. I didn’t take a vacation longer than a day over the past year and it is starting to show. To compensate, I’ll be having next week off in Eilat :)

Having a routine life is both a blessing and a curse. A blessing because it’s predictable, easy to manage and allows for a calm, unstressful being. A curse because anything out of the ordinary seems like a big issue. Go out late when tomorrow there’s an early workout? No way. An invitation from a friend to visit New York for a few days over the weekend? Seems impossible (eventually I was sick that weekend, so no dilemma after all.)

For this year I would like to feel that I have enough time to accomplish some out-of-routine goals. Phone in your happy birthday wishes and have a great day.

Free vs. Free

In a recent post I wrote that I installed the non-free driver for my video card on my new Ubuntu Linux installation. A friend asked me why I had to pay for the driver. I didn’t.

The word “free” has two main meanings in the software world:

  • Costs nothing (also known as “Free as in beer”)
  • Liberty (or freedom)

The first meaning is easy to understand, but what does it mean that a piece of software has freedom? Wikipedia explains free software as follows:

Free software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions only to ensure that further recipients can also do these things. To make these acts possible, the human readable form of the program (called the source code) must be made available. The source code may be either accompanied by a software license saying that the copyright holder permits these acts (a free software licence), or be released into public domain, so that these rights automatically hold.

Here’s an example of software that is not free: Microsoft Word may just be the most used office productivity application in the world. To read and write a Word document perfectly you have to use Microsoft Word (*). Using Microsoft Word binds you to a format that is not free (unpublished) and forces you to use a specific program. By using Microsoft Word you have given up on your freedom to choose a document editing program. So because the file format isn’t free (as in freedom) you are not free.

As an opposing example, consider another document file format like ODF. ODF is a published Word-like file format that is available to all and so when you edit an ODF file you may choose out of a bunch of applications that are equivalently good at editing the file.

So my choice of a non-free driver for the graphics card was pretty much like choosing Microsoft Word over a different application and file format (with the exception that it was at zero cost). The non-free driver may have given me extra effects on my computer screen but I gave up some freedoms as I made the choice. I start wondering, even though I didn’t complete the move to my new (freedom-free) Linux installation, whether this freedom is something that needs to be protected even if the software is available at no cost forever, just like we should champion privacy even when we have nothing to hide (again a link to the excellent Coding Horror blog)

For more information about free software, visit the Free Software Foundation website.

* There are other programs that read and write Word documents, but they reverse engineer the Word file format. The reverse engineering is never perfect and can be targeted specifically by the Microsoft to be nearly impossible.

An Apology To One Of This Blog’s Readers

Two days ago I was at a party. Even before I went I was informed by the party’s organizer that her friend, who reads my blog, will be there. I always think of the readers of this blog as a collection of people I know, so learning about this “unknown” reader was exciting.

At the party I was introduced to this girl (who also played the guitar during the party. Very cool) and she said “I’m a fan of your blog.” I should have just said “thanks” but I was completely out of words. After running the options through my head I said something I thought about that day. I said: “Now I know all the readers of the blog.” That thought made me smile when I thought about it during the day, but I think maybe I came out a cocky asshole by saying what I said.

So this is an apology to this very nice reader. I’m sorry and thanks a lot. You gave me a great compliment, which made me very happy.

p.s.

From now on I will refer to you as “all 6 readers of this blog”

Ubuntu Linux – First Impressions

Yesterday I installed Ubuntu Linux 7.10 on my new computer. The installation was as easy as an installation can be – no annoying questions, no tough and unexplainable choices. Just some simple steps (like setting the correct time zone) and it’s done. The nice thing about the Ubuntu Linux installation CD is that it’s also a Live CD, which means you can actually play around with the operating system and see that it works fine even before you decide to install it. However, this may be confusing to some people at first because when you first boot from the CD, immediately everything seems like it’s installed (even though it’s just running from the CD).

I wanted to partition the hard drive manually, however I was met with two questions that I didn’t know the answer for:

  1. Which partition should be primary and which should be logical?
  2. What does it mean to put a partition at the beginning or at the end?

So I decided to let the installation do whatever it wanted to do, and it just created one partition and put everything on it. Shouldn’t be a problem.

The installation also tried to access the Internet to get updates, which is a good thing. However, expecting a home user to be constantly connected to the Internet at installation time is not so realistic (specifically here in Israel, but I think this is the common case). After the installation failed to access the Internet it told me something like “I added commented out lines to /etc/apt/sources.list”, which is really not a very nice thing to tell a new user. Later on, when I had the Internet connection working, I uncommented the lines.

During the installation I was asked to give a user name and a password, a normal thing for every installation, be it Linux or Windows. Later on, to do some changes from the command line (like editing the /etc/apt/sources.list file), you have to switch to being root. But my user’s password didn’t work for root, so I had to go to the user manager and set a root password (luckily, I was able to do that). I don’t know if that was the right thing to do, but it worked for me.

At the end of the installation, I got a message telling me that it’s time to restart the computer, but that I had to make sure there was no CD during the next startup, or otherwise Ubuntu will start from the CD again. I ejected the CD at the point where I got the message, but apparently it was a mistake because the computer wouldn’t shut down and I had to manually reboot it. Everything worked fine after that, as the installation correctly identified my hardware and so the computer was ready to work immediately after.

Ubuntu Linux is a great distribution. One of my pet peeves about Linux distributions was always the many choices of the same thing: multiple consoles, multiple office suites, multiple everything. Ubuntu has one choice for each function, making the menus small and easy to understand. Anything else can be installed using the “Add/Remove…” applet, which is very well organized and comprehensive.

Setting up my Internet connection wasn’t easy. Having a cable modem that uses PPTP, I tried to install the PPTP client as described in the PPTP client website. After I installed it (that required going back to my Windows computer and downloading the network-manager-pptp package) I couldn’t get it to work according to the instructions in the PPTP client website. So I tried to look for specific instructions for Israel and found Carmit Levi’s PPTP GUI installer for Israel (Carmit is a manager in the Nana Linux forum). After I followed the GUI’s instructions, the script it created was still missing my password so I added it and the connection worked.

All this was very frustrating – going back and forth from the new computer to the old one to download files, burn them on a CD and try and retry. I hope both Ubuntu Linux and the Israeli service providers (in my case, NetVision) will be better at this in the future.

With the Internet connection working I updated all the packages and also installed NVIDIA’s non-free driver for my video card, and now my desktop has some bling, too :) My efforts will now concentrate on moving my Windows installation and files from the old computer the Linux computer (as I said before, I intend to run Windows in a virtual machine. Hopefully I can move the entire thing intact without a problem)

I Bought A New Computer And I’m Switching To Linux

A few days ago I bought a new computer. As a survey I went straight to Ars Technica’s System Guide from August 2007. It’s the best guide I’ve seen, enumerating the pros and cons of every part. They always give three configurations: Budget Box, Hot Rod and God Box. I went for the Hot Rod for two reasons:

  • I don’t need a God Box, which is mostly for gamers.
  • While the retail prices here are about the same as in the US, we don’t have rebates so the prices are eventually higher.

Trying to follow the suggested configuration of the August 2007 Hot Rod, the configuration of my new computer is:

  • Motherboard: Gigabyte GA-P35-DS3R (142$)
  • Processor: Intel Core 2 Duo E6750 Retail (235$)
  • RAM: 2GB PC6400 DDR2-800 SDRAM (73$) – in two 1GB DIMM modules
  • Video: Gigabyte GV-NX86S256H (NVIDIA 8600GTS) (217$) – here I chose a cheaper model than the suggested one by Ars because the model they suggested was considerabely more expensive and I really don’t need that kind of graphics power.
  • Sound: on-board – I decided not to buy a sound card because the on-board one should be enough for me and I also have Sound Blaster Audigy at home, which I’m very happy with.
  • Network: on-board
  • Hard Drive: Western Digital Raptor 10000 RPM 74GB (203$) – I decided to follow Jeff Atwood’s advice and get a 10000 RPM hard drive, which costs more and has less space, but I have my old hard drive for the non-boot partitions and it should be enough. In any case, considering that the hard drive is the computer’s bottle neck these days, I think it will prove to be a good choice.
  • Optical Drive: Pioneer DVR-212 DVDยฑ/CD-RW (44$)
  • Case: Compucase HEC CI-6919B-NPS (61$) – when it comes to cases, I have no idea. I took something that is not the very high end but is supposed to be good, strong and quiet.
  • Power Supply: ThermalTake TR2 550W (101$) – power supply is also something I have no clue. I took a power supply that is quiet and has good support here in Israel in case something goes wrong. Again, this isn’t high end stuff, but probably good enough to last.

Like the title of this post says I decided to finally switch to Linux. I ran Linux a few years ago on a dual boot machine, but had no Internet connectivity back then (USB ADSL modem, not compatible with Linux) so I didn’t do much with it. This new machine should be completely Linux compatible, my cable modem should support Linux (I specifically asked for one) and following my experience with Linux at work I think it would be a better choice over Windows.

I’ve been a Windows user since Windows for Workgroups 3.11. I enjoyed playing with it, was excited about Windows 95, happily used Windows 98 until Windows XP arrived and currently I have Windows XP installed on my home computer. Windows Vista’s pricing is a big turn-off for me, and it offers no exciting feature for me both as a user and as a developer. While .NET is advancing and C# has exciting features, I am no longer on the Microsoft technologies path, which requires you to always remain updated even in terms of programming language (I’m not a Magpie developer, even though I do enjoy advances in computer languages). I think I’ll continue to run Windows XP in a virtual machine on my new Linux box, just for the “must have” stuff.

I plan to install Ubuntu Linux. I believe it’s the safest choice these days, considering that it’s a very popular distribution and has a vibrant community with a lot of support. It also has a strict release schedule that promises new, better versions with an upgrade path that guarantees I won’t be left behind with an old version of Linux.

Idea: Cellphone Call-Again-If-Urgent Mode

Cellphones are a necessary evil. That’s the position I adopted after reading it somewhere. I believe it’s true – these days you really can’t get along without a cellphone. Believe me, I tried. I went on as long as I could, which was until I got a car. One of the ways cellphones changed the way we behave is that today it’s nearly impossible to pre-set a time and a place to meet someone. Remember the time when, if you wanted to arrange to meet a friend, you had to decide together on a time and a place? Seems like ages ago. These days it’s always “call me to see if we can meet”.

While this may be considered a good effect of cellphone adoption (I’m not always sure it’s good, but I digress), cellphones can be very intrusive. If you’re in a meeting, watching a movie or sleeping – people can get to you any time. If you don’t want to be interrupted you can always silence the phone or turn it off. Still, I need a mode in between – a mode that, if someone calls once, doesn’t light up, vibrate or ring unless the same person calls again immediately – then the phone should come back to life and do whatever the current mode instructs it to do (ring, vibrate, whatever).

Currently I “emulate” this when I’m in meetings. If a call comes in and I think the person may need me right now I send back an SMS saying “call again if urgent”. This can be part of the implementation of the call-again-if-urgent mode. I wonder if current smartphone software allows such control and if it can be implemented today. The best thing would be if the network supported it and so, assuming you urgently need someone, your cellphone will tell you that the callee set the call-again-if-urgent mode and ask you if you would like to bother him/her.