Open Source is so inexpensive

Keeping with my 'money' theme from the last few posts, here we have something on the complete opposite side of the spectrum. Not including donations, I've paid $0 for all of the software on my other laptop, and it does everything.

Now, I've been thinking about doing something drastic. Since I installed Ubuntu Linux, my development time on that laptop has actually diminished about 100%. I haven't done any development on it. This is because it's so f@#$@#ing slow. I do a lot of ANT builds and they just take forever. The drastic thing I've been thinking of is upgrading my laptop to a new one. Preferably a Lenovo ThinkPad or something. Customizing one of those for a Linux installation (everything except picking Linux, since they only offer Vista Home Basic) is a lot cheaper than configuring it for even Vista Home Basic. All I need is 2GHz Core 2 Duo (the minimum CPU option), 1GB RAM (although I've been bumping it up to 2GB in the "Customize" section), 1Gbps LAN, and integrated graphics. I could opt to have Wireless, but that's extra. It's not that expensive, although I can't afford it now.

So, instead of getting a beefier laptop to run a slow operating system (Gentoo ran super fast on the same exact old crappy laptop), I was looking into some other operating system that's just as powerful and fast as Gentoo, but not the hardest thing to set up. In my search, I decided to go with something that I've been eyeing ever since I got into free software. FreeBSD.

Having this Mac, and having nothing to work on when I got a side job doing .NET with SQL Server for one of the local schools (Episcopal Academy, which isn't exactly 'one of the local schools'), and the Mac being Intel, I found out about that program called "Parallels", which can run virtual machines of multiple operating systems. I have a Windows one installed for all of that development I did for EA, and I have an Ubuntu Linux one for when I tried it out (much like now) before I installed it on my laptop. So, I did the same thing with FreeBSD. I think I'm going to give it a shot on the laptop.

It's a lot easier than Gentoo, that's a plus. It's as well documented as Gentoo (just visit freebsd.org and see for yourself), it's *almost* as fast as Gentoo, and it runs Gnome. The only thing that I was wondering was "Will it run everything?" Yes it will.

FreeBSD is Unix, not Linux. While they are similar in some areas, there's others where they are just very very different. Like, FreeBSD and Linux use different threading models, which Sun depends on in its Linux implementation of Java and Sun does not provide a native implementation of Java for FreeBSD, yet. However, you can get "Linux compatibility mode" running on FreeBSD which will make the Linux implementation work on FreeBSD. The down side of that is that FreeBSD has to build the source for Java to install it, and the source is released under an incompatible license. So, when you install it, it fails, and asks you to download certain files before it can continue. And still, after you do that, you're contractually obligated (through the license) to NOT distribute the resulting built Java binaries. It's weird. There is hope, though, as most believe that Java 7 (it's at 6 right now) will be released under the GPL, since Sun completely open sourced Java recently.

So, I'll give FreeBSD a shot, and if it doesn't work out, then I'll download and try out another one!

Interesting side story. FreeBSD offers its ISOs in "torrent" format. I've known what BitTorrent was since about 7 years ago, but never got into it. It's a giant legal mess since it's also used to distribute "pirated" material. But there are very legal, morally good ways of using BitTorrent. Anyway, I downloaded it through that (a BitTorrent client called "Transmission" for Mac, also free open source software), and it's just neat seeing all the people you're downloading the same file from simultaneously. It's really brilliant software, BitTorrent is.

Ubuntu After a Weekend

So, I've played around with Ubuntu a bit this weekend. Here is my brief rundown:

1. I have access to a lot more of my computer with it installed without having to do anything really, which rocks. Touch pad (the horizontal scroll thing I mentioned before), wireless networking, and sound mainly. I had a problem in Eclipse where if I tapped the touch pad it would paste whatever I had in my clipboard to whatever file I was viewing at the time. A lot of errant clips got into Java files, and I'd get errors on compile and was like "PC LOAD LETTER?!?!" I'd find it and wonder what it was doing there... eventually I found out the touch pad caused it. I downloaded qsynaptics (since all touch pads really use the Synaptics touch pad), and disabled tapping. qsynaptics is a program that basically modifies the touch pad part of your Xorg.conf file in Linux. It solved the problem. I don't use tapping anyway.

2. I've noticed it's a lot slower than Gentoo was running on the same exact machine. I looked up some speed hacks and tried them out. Most of them were for program loadup times and boot times, speeding up internet access by disabling IPv6, etc. It seems my hard drive is a lot slower. I took pride in Linux against Windows because when I ran Gentoo, the ANT script that would take 20-25 seconds to run on Windows now only took 4-9 seconds. I forget what file system I had on Gentoo, but I know the latest Ubuntu (Feisty Fawn) which I have installed, uses ext3. There's a lot of extra data, apparently, that gets written with each file, and my ANT script is all about copying files.

3. I am helplessly devoted and accustomed to my MacBook Pro. After using Ubuntu for two days, which is also supposed to be the most user friendly Linux (from my experience it is way easier than Gentoo), the Mac just blows it away still. I should try getting my development environment moved over to the Mac, but Java on the Mac is weird. I haven't delved down that road yet, whereas I know exactly what I'm doing when I get a development environment set up on Linux.

4. I tried getting a Windows share (SMB) set up on Ubuntu so I could occasionally log in an copy files or whatever. I set it up to where the Mac and my Windows PC could see the computer on the network, but they couldn't connect to the shared folder on Ubuntu. That kind of matters, actually, because I want to get a server set up with loads of HDD space so I can have all of my gobs of data on there instead of on a computer where I only view those files. I don't need to store every file I have distributed over all the computers I have. I'd like to have my music, movies, and a backup of code, maybe a webserver also, running on a server with a free and good operating system.

5. You learn a lot about Linux when you don't run it in root all the time. I had to set up Gentoo, like I said it was like building a house, compared to Ubuntu which is like a fully furnished modern house that you can just move in to. And there's this one part where you have to modify the script that runs when a new user is created, to copy files into their home directory for default settings and whatnot. I could just never get it right. So, I always ran as root. On Ubuntu though, it sets you up to have an account that's not root. You still have root access with the "su" or "sudo" commands when you need it. But you find out more about how security works in Linux. What folders you wouldn't normally have access to (basically, everything except your Home folder), what those other two numbers mean in "chmod 777 filename". All I know is if the first number is 7, and the other two aren't, and root owns the file.. you can't do shit with it. Actually, it's simple. 1 is read, 2 is write, 4 is execute. Or something like that. So if you have all of them, it's 7, or just read is 1, etc. And you notice that it probably took a lot of time to either a) make as many programs not require root or b) catalog which ones need root. Windows hasn't done this until Vista, which it doesn't even do a good job of from what I hear. I'm holding off on Vista until it's absolutely necessary or I can do without it until the next version. Depends what games require Vista, basically.

Probably the answer to my speed-up prayers is a new laptop. But I'd get another desktop before a new laptop, since I can build a desktop, and I can put all those hard drives in it and store all my data. Relatively cheaply too. Time for bed.

Development Environment Set up on Ubuntu


Wow, Ubuntu rules

It's funny to me, I've always downloaded the latest ISO of Ubuntu Linux, but have never installed it. Frankly because I don't have any blank CDs lying around. So, last night, I fired up Parallels and installed an ISO I had on my Mac, gave it a quick run through, and made the decision to install it on my other laptop which was currently running Gentoo Linux. Jared recently said he was digging Linux working alongside his Mac. He installed Ubuntu, so I figured I'd finally give it a shot. I was just afraid of losing work, but really I didn't get back into it, so it wasn't necessary that I switched operating systems.

Chances are you might not even have heard of Linux (a free open source operating system which competes with Windows, just in case you haven't heard of it), let alone Gentoo Linux, but if you were to install Gentoo Linux, it's like the super user's version of Linux. Say if you were buying a house, Gentoo would be a real fixer upper, and you could even use the analogy of it being all the raw materials and you have to put it together. Basically, I installed it on this laptop and the laptop was crippled for about 3 years (ever since I got the blasted Windows off of it). No sound, no wireless networking, my mouse pad wouldn't work right, and it took about a month to get a screen resolution that I was happy with. Ubuntu on the other hand is like a fully furnished, beautiful, modern house. You just move in and you can start living.

I installed it and fired up a game of Company of Heroes (against only 2 experts and a hard this time on Seine River). It was done before I finished the game in 41 minutes, which I would have hoped anyway. I whomped some ass in the game by the way.

When I backed up my Gentoo stuff, I have this script that I use that sets up a mount to my shared backup drive on my gaming PC with Windows XP SP 2. To do that, you have to use the smbmount command which, once you learn it, is very easy. Then you can browse to the folder that you mounted the Windows share on the gaming PC to, and just start copying files. The thing about Linux, though, is that it is easy once you learn it. But there is that learning curve, and lots of "man" pages that are pretty cryptic, and you have to figure out which options you need, how to format them, and all that other stuff. I don't mind it because I like a challenge.

Getting the files back after I installed Ubuntu, though, was as easy as going to "Places", selecting "Network", going through "Windows Network", opening up my work group, and opening up my Windows PC, "Voodoo2k7". I can then just copy files from there. If I want, which I probably will, I can use the smbmount command to set up a mount point, mount it to /mnt/voodoo, and go into the command line so I can copy stuff using "sudo" into protected directories, like "/usr/local/", since I haven't found a visual "sudo" program on it yet.

The other thing I noticed a short while ago... There's sort of a network button in the top right. I click on it, and it shows me all of the local wireless access points available! Wireless works with no setup on Ubuntu!! That's marvelous. I could have 5 wireless devices running now. In case you missed it, they are : MacBookPro, this Ubuntu laptop, PSP, PS3 (yup, I got one), and the Wii. It's a 802.11n router, so it can handle it. Ubuntu shows the signal strength of it as a sliver away from 100%, but definitely over 90%.

As soon as I restarted it from Gentoo with the Ubuntu disk in, I noticed that it instantly recognized the onboard sound and speakers. It played that nice little Ubuntu, African style introduction chime. I was like "F@#%@ YES!! UBUNTU ROCKS!!!" As soon as I got to a website that expanded beyond the visible bounds of the screen, I tried my mouse pad. It worked. I had spent MONTHS... maybe a couple of hours... trying to get this thing to work on Gentoo. I definitely spent a weekend, actually. Google "set up synaptics mouse pad on Gentoo Linux", and hit up any of the articles returned. You will see it's not easy. The "horizontal scroll" thing was what I couldn't get to work. The mouse pad worked fine otherwise.

I should have installed Ubuntu a long time ago. It wouldn't have ruled out getting a MacBook Pro, though (which is almost paid off, coincidentally), but I would have had a much better experience using Linux, and I might not have stopped using it hardcore in September. Gentoo was way beyond my capacity. I will miss "emerge" though :) Portage was nice, but Ubuntu has a whole graphical software update service. I say, if you're not using Windows for games, throw a Ubuntu disk in the drive and reboot. You won't be disappointed.

My favorite thing about having devices (weird side note... Firefox has a built in spell checker, and it underlined in dotted red, "favorite"... I switched it to "favourite" and it doesn't show any red line. I might have installed the wrong language! Although Ubuntu is maintained in South Africa or something).. oh yeah, so my favoUrite thing about having multiple devices is naming them. My PS3 is named "VoodooPS3", my PSP is similarly named "VoodooPSP", my Windows PC is named "Voodoo2k7" which was mentioned previously. My Mac doesn't have that naming appeal, and shows up on the network as "jasontconnell_s" or something. When I had Gentoo installed on this computer, I named it "gentoovoodoo". I bet you can probably guess what this computer is named... but I'll tell you anyway. "Voodoobuntu"!! Unfortunately, I've retired two computers, the original "Voodoo" computer, and my liquid cooled "LCVoodoo". Oh well.