Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Friday, April 3, 2009

Deadwood snapshot update; On open source

I have just posted an update to Deadwood today. Lots of changes:
  • log file name changed from "log.txt" to "dwlog.txt" (so admins who forgot where they put Deadwood can more easily find dwlog.txt)
  • Date and time added to Windows dwlog.txt logfile
  • log file flushed (updated) whenever there is a second of inactivity (if the server is busy, the log file won't get flushed, but will get flushed when idle)
  • INSTALL file changed to use Win32 line breaks and renamed "INSTALL.txt"; file updated to have more comprehensive startup information for CentOS 5 and a note about dwlog.txt.
  • Fatal dwood2rc error now correctly noted as a dwood2rc error
  • Makefile renamed Makefile.centos5 in src/; Makefile.mingw renamed Makefile.mingw310 (I'm making it clear I only support CentOS 5 and MinGW 3.1.0)
  • Cleanup of Makefile for CentOS 5 duende helper
  • Some compile-time warnings when compiling in Windows removed

I feel empty and betrayed by Open Source.

For years I believed the big open source lie. I believed that a group of volunteers working together on the internet could make professional-quality end-user software. I was wrong. Flat-out wrong.

What BSD and later on Linux has shown is that a group of volunteers working during their free time can make a free computer operating system which is very powerful, but very difficult to learn.

This is what Linux was when I first used it in 1995. It was no Solaris, but it was a good deal more stable than Windows 3.11 and Windows 95. It would take me hours to get X configured and working, but once it was working, it was rock-solid stable. I wasn't getting any BSODs (messages Windows shows when the system crashes).

I remember I had Windows 95 [1] and Linux in early 1996, and wanted to set up PPP (the most common way of using a modem to access the internet) so I could use Netscape. It took make about half an hour to get Netscape and PPP going in Windows 95; it took me two or three days to get Netscape and PPP to work in Linux.

However, despite the difficulty of using Linux, I preferred it because of its stability. I had one friend with a driver in Windows 95 that was constantly giving him BSODs; I told him he should use Linux more. I remember another friend who tried getting Windows 95 working on an AMD motherboard he had and him reinstalling and re-reinstalling Windows 95 and never getting the system to quite work right.

I remember feeling Microsoft was an evil monopoly because you couldn't make a motherboard or other peripheral without getting Microsoft to support it. I remember Microsoft using their monopolistic practices in the 1990s to drive Netscape out of business and hating Microsoft for doing that.

At the same time, I was resenting all of the companies who wouldn't release hardware specs for their cards so we could use them in Linux, and resenting the companies (like Real networks) who made video players without Linux support. I felt like a second-class computer citizen. There was so much I couldn't do because I used Linux; I couldn't watch videos in Real player. I couldn't use Microsoft office (and spent a good deal of money buying WordPerfect and Applixware's office suite for Linux) or easily read .doc files.

I remember people using StarOffice (since its binary was a free download) and thinking these people were cheap bastards for not getting a real office suite for Linux (I had managed to get a good job in Silicon Valley at this time, so it was nothing to spend $200 or $300 here and there to get an office suite).

Solaris was still big and the issues I had with Microsoft Solaris admins had too. So I wasn't alone in my dislike of Microsoft.

Well, in the 2000s, a lot changed. The dot-com bubble burst and I no longer worked in the tech industry. Solaris basically died, with I got a degree in computational Linguistics and moved to Mexico to discover myself.

Netscape was killed by Microsoft's monopolistic practices; by 2002 everyone was using Internet Explorer. Windows XP came out in 2002 and the instability problems that always plagued Windows 95 were once and for all resolved by having people use a version of Microsoft's server-class code on the desktop.

Linux, however, did not improve their desktop experience.

In the mid-1990s, the big distro to use was Slackware; in 1997 I went from Slackware to RedHat because it was easier to apply security patches in RedHat. RedHat was the dominant distro to use when the dot-com bubble burst in 2001.

RedHat never made a serious effort to make Linux a desktop OS; their bread and butter was selling servers.

In 2003, RedHat realized they couldn't sustain their business model giving their flagship product away, so they did the RHEL/Fedora core split. I used Fedora core for a while, then moved from Fedora Core to CentOS when this free RHEL clone became available.

To fill the vacuum for a desktop-oriented Linux, their was first Mandrake (originally a fork of RedHat 5) then later on, Mark Shuttleworth made a few billion dollars and decided to fund his own free Desktop Linux, Ubuntu.

Because of fragmentation in Linux (the eternal KDE-vs-Gnome battle), desktop development was divided between two different desktop projects (more if you count things like XFCE and Blackbox). Free software developers are more interested in "scratching their own itch" than in adding features that don't benefit themselves but benefit users of the software; this makes it more difficult to motivate people to help with end-user Desktop software.

Linux, simply put, did not have a usable end-user desktop when Windows XP came out in 2002. Microsoft won the race: Microsoft was able to make their high-quality desktop use server-class code for the underlying operating system before Linux could make their server-class operating system an end-user desktop.

Linux still does not have a usable end-user desktop today. Issues that don't matter when making a *NIX server matter a lot when making a desktop computer. It matters on the desktop that the underlying libraries and kernel change so much it's hard to make a binary-only desktop program that will continue to work for the foreseeable future. It matters on the desktop that binary-only drivers are not welcome, and that the kernel developers go out of their way to not allow these kinds of drivers.

I have looked at Linux for years, and have been using Linux since 1995, and as my only real desktop OS from 1995 until 2003. It hasn't changed. It's always been fragmented with strange bugs and a lack of discipline to give users the things they expect a desktop desktop to have. I thought in 2000 we would have the year of the Linux desktop. I realize, in 2009, that we're never going to have the year of the Linux desktop.

Firefox shows that people can make open-source professional-quality desktop software that people will use. About 30% of people surf the internet using Firefox and it didn't come out until 2004 or so. 1%, maybe 2% of people surf the internet using Linux, even though Linux has been around since 1991. In little over four years, Firefox was able to get desktop adoption Linux can only dream of.

It's sad that Linux is too fragmented to do the same thing. Ubuntu's instability (because they have to use unstable versions of software to support new hardware) is on par with Windows 3.11. I'm glad that Linux has become a viable server OS; I'm sad that Linux will never become a viable desktop OS.

- Sam

[1] I didn't use Windows 95 very much back then; Linux was my primary desktop OS and Windows 95 was on my old 486 so I could keep my skills up to date.

Thursday, April 2, 2009

Linux sucks: CentOS 5 doesn't support my laptop

OK, I've tried Ubuntu. It was nothing but crash after crash after crash. I finally threw out Ubuntu, repartitioned my hard disk, and used only Windows XP, with CentOS 5 in a virtual machine.

Last night, I tried to install CentOS 5 on my laptop. I wasted most of a day worth of work on this project.

It didn't work.

The base install was pretty quick and took maybe 40 minutes.

First of all, the wireless card didn't work. I followed the directions on the CentOS wiki and it still didn't work. I was able to see wireless networks, but was unable to connect to my home network. I wasted about an hour of my life trying to get this to work.

This morning, I tried getting the touchpad driver working so the touchpad doesn't click the mouse button every time I tap the touchpad. After installing the synaptics driver, I had to figure out how to configure xorg.conf to use the driver. Well over an hour of my life wasted doing that.

Once I did all that, it still didn't work. It would seem my touchpad isn't supported with the touchpad driver in CentOS 5. I tried newer drivers; either the newer driver wouldn't compile or the driver wouldn't work.

So far, I had wasted four hours of my life. In Windows, the same amount of work would have given me a working computer at this point. Actually, in Windows, it would have taken about an hour to install the base system, under an hour to get all the drivers up and going, and I could have played video games or spent time with my girlfriend the other two hours.

I did buy Linux hardware. I specifically got a Linux-compatible Dell. And, yes, the hardware does work in Ubuntu, but, unfortunately, the system is too unstable for me to use.

I pointed out the issue here:
Linux's problem is this: Drivers for CentOS 3 do NOT work in CentOS 5. Why is that? Why do the Linux developers need to constantly change the driver model while Microsoft is able to keep the driver model stable? Constantly changing driver models is fine in the server back room, but is not OK for an OS that wants to be on the desktop.

This is why Windows XP, not Linux, is on my desktop right now; Ubuntu is far too unstable for me and I shouldn't be forced to use an unstable OS just to have drivers. I mean, there are drivers for all my hardware in Windows XP. And there are drivers for all of my hardware in Ubuntu 7. So why aren't there drivers for all of my hardware in CentOS 3?

(I may move back to Linux on the desktop if all my hardware works with CentOS 5.3; we'll see)
Here is how one freetard replied to me:
your [sic] being technically handicapped and/or grossly uninformed about Linux kernel development. However, if you keep sticking your foot into your mouth, you will at least add some mild entertainment to the thread while we wait.
I replied to this idiot:
YoureAnIdiotForNotLikingLinux(TM)

A lot of people here have been using Linux for a long time, or used to be freetards (I myself am a recovering freetard). We probably know Linux a good deal better than you do. Note also that Ken Thompson doesn't like Linux, and Dennis Ritchie uses Microsoft Outlook to read email these days.

Anyway, could you care to explain where I am wrong and how I'm wrong. Please back up your assertions with facts.
He never replied to me.

Linux sucks on the desktop. I'm back to using Windows XP. Even at $5 an hour, the $100 that Windows XP home edition costs [1] is 20 hours of labor; it would take me about that long to get everything working in CentOS 5.3.

OK, since I wasted my time with Linux (again), I didn't get a chance to work on Deadwood. I will continue working on it tomorrow.

- Sam

[1] As an aside, cdsfu.com sells pirated software and Google needs to stop letting them advertise.

Tuesday, March 31, 2009

CentOS 5.3 (mostly) released

CentOS 5.3 has been mostly released; mirrors are synced, the .iso images can be downloaded, and I'm currently over 50% done downloading both the 32-bit and 64-bit CentOS DVD image torrents:

32-bit DVD image torrent

64-bit DVD image torrent

(Note that are issues getting these torrent files, but the file is well-seeded, with about 500 seeds and peers for both torrents right now)

I should have both files downloaded this afternoon.

yum update doesn't update to CentOS 5.3 yet, but should by tomorrow this time.

Friday, March 6, 2009

Deadwood snapshot; I've wiped Linux from my hard disk

I have uploaded a new snapshot of Deadwood today; this snapshot has a working test for the resurrections parameter and resurrections appear to be working without problem.

The hash_magic_number has some issues with being automated; I will work on revising the test so we can have this be one of the automated tests; it's stopping all of the automated tests from working.

It looks like Deadwood 2.1.01 will be released next week sometime. In the meantime, snapshots can be downloaded at maradns.org/deadwood
Last night, I installed the Alpha-test version Fedora 11. Like Ubuntu, it has a Gnome interface; the only thing different is the artwork and the terminal is hidden under "system tools". The first thing I did was try and install VMware player; it was not possible to install it.

So, this morning I reformatted both my Ubuntu and Fedora 11 partitions and used my Windows XP install disk to wipe GRUB from the bootloader. It's a relief, since things now just work and it's not one bug after another bug. The only Linux I have right now is CentOS 5.2 in a VMware virtual machine for MaraDNS/Deadwood development.

Now, I don't know how many of the bugs were caused by VMware and how many were caused by Linux. My issue is this: The Linux developers need to stop fussing around and make a stable API. Or as another Linux developer put it: Please stop wasting everyone's time with your API changes. Until the Kernel developers can get some discipline and settle down on a stable driver ABI and API, I don't see much point using any version of Linux besides RHEL/CentOS (which is stable but often lacks drivers; thankfully it appears all the drivers for my hardware will be supported whenever CentOS 5.3 comes out).

Sunday, February 15, 2009

Deadwood roadmap; On Ubuntu

I have looked at the Deadwood code in CentOS 5.2, and I'm seeing the same problem I saw in Cygwin a couple of weeks ago: DwTcp (the TCP half of Deadwood) doesn't work. Strange, because the code did work back in late 2007. So, I'm going to have to work on this code before releasing another stable release of Deadwood.




You know, my issue is not with Linux. My issue is with Ubuntu Linux, which is trying to make a desktop OS to compete with Windows. Linux has made a lot of progress for the end-user ever since the mid-1990s, when FVWM was the state of the art for end-user usability.

But, Linux as an end-user desktop is beta-quality at best. There's a number of reasons for this. One is that it's impossible to give Linux programmers the kind of discipline needed to make a stable end-user desktop. People constantly want to branch out in new directions and develop new software instead of making stable the software they have already developed. Since people, by and large, aren't getting paid, people aren't very motivated to the the boring, uninteresting programming that users want.

Linux kernel developers don't want to make a stable API or ABI for drivers; this results in people forced to use unstable and untested kernels to have a system that works with their hardware. Instead of continuing development on KDE3, it has been replaced with KDE4. Unfortunately, KDE4 doesn't even have a GUI-based network configuration program; so a perfectly good desktop environment has been abandoned and replaced by one without basic functionality.

Ubuntu essentially forces me to use Gnome; I tried to use it with FVWM in 2007 and 2008 and found that I couldn't do things like configure my network card with "ifconfig" and what not without some daemon erasing my configuration or making my configuration not work.

So, yes, with Ubuntu Linux I'm forced to use unstable software that crashes. This is very different from the situation in the 1990s, where, while not friendly and needing a lot of training to master, Linux had a lot more stability than the not-protected versions of Windows (Windows 3.11, Windows 95, etc.)

Friday, February 13, 2009

MaraDNS 1.3.13 released

I have released MaraDNS 1.3.13 today; I actually released it in the middle of the night but went to sleep before announcing it. I did the DNS stress test in the middle of the night when no roommates were online and MaraDNS did not crash nor exhibit any other problems. As an aside, newer Linux kernels handle threading much better and the level of resources used (memory, etc.) are a lot less than they were using older Linux kernels.

This release has the XeroBank-sponsored ability to give a bogus IP when a remote server gives a "this host does not exist" reply (which people have been requesting for years now; I would like to thank XeroBank for making it possible for the MaraDNS community to have this feature) via the new notthere_ip feature.

This release also has a test with a "borked zone" which we talked about on the list back in January; sometimes clueless DNS admins have poorly made zone files where NS records for subdomains point back to the parent NS servers instead of being their own nameservers. The test I made tests one possible configuration like this; the result was that MaraDNS was able to, after a bit of prodding, resolve the domain.

I have also updated the internal copy of the web page inside the MaraDNS tarball and the script that updates the download page.

There is no Windows binary of this release of MaraDNS; I am putting Windows support on the back burner. If people want better native Windows support, this is a sponsorship possibility.


One thing that people may observe is that I'm moving towards a sponsorship model of MaraDNS. I've been working on MaraDNS for years and have given away the majority of my hard work. That said, with a job and a girl in my life, I just don't have the time to answer support requests by private email, and getting the same feature requests over and over started to annoy me.

So now, I've finally got a sponsorship model in place that makes it so I can reply to feature requests and private support email in a professional manner; people who ask me for a new feature or for private email support will be told they have a chance to sponsor MaraDNS.

My prices are currently incredibly reasonable; sponsors will also get mentioned on MaraDNS' webpage and their donations make continued MaraDNS development possible.


I have fixed the problem with Ubuntu crashing. I made sure that my VMware images normally don't have poll the CDROM drive to see if it has been attached, and removed the offending gnome-screensaver package which looks to be unstable and to cause the crashes. I now use the xlock command in the xlockmore package to lock the screen; it's not glamorous, using mid-1990s technology to lock the screen, but works and it rock-stable.

I've also disabled all of the Compiz effects; they appeared to also be contributing to the instability I saw the other day.

One issue open-source software has is that there often times isn't a real SQA process in place; people develop and add new features because it's fun to do so, but don't do the boring stuff like fixing bugs. I have seen countless open source projects have a flurry of development, make some interesting but unstable software, then abandon the project before ironing the bugs out or developing a SQA process.

I will not post here tomorrow; it's February 14th, and yes I have a girlfriend in my life today.

Next week, I will post about, among other things, my adventures making a from-scratch image of CentOS 5.2 and adding the VMware tools to this image, about tricks to make VMware images compress better when being backed up, among other things.

Tuesday, February 10, 2009

Linux sucks: My system has crashed three times today

Linux sucks: My Ubuntu 8.10 system has crashed three times today.

Three times.

All three times when I password protected the system. Twice, the system crashed when I inserted a blank CD or DVD while the password protected screen saver was activated. This might have been caused by VMware (which tries to make mounted CDs visible to the guest OS), so I told VMware to not look for a CD and the system didn't crash while the screensaver was active.

The third time, my boss called me in to his office to help him with an email. When I came back out again, my system had rebooted, with messages like this in the logs:

Feb 10 12:24:09 Merequetengue kernel: [ 5852.179340] compiz.real[7047] trap stack segment ip:41024e sp:7fff605b93b0 error:0
Feb 10 12:24:16 Merequetengue kernel: [ 5859.014131] metacity[6971]: segfault at 0 ip 000000000046441e sp 00007fff05278c70 error 4 in metacity[400000+88000]


Needless to say, I'm giving Ubuntu one last chance. I'm going to get rid of Gnome, which makes Windows 3.11 look positively stable, and try using the KDE desktop. Yeah, this means I have to reconfigure all of my wireless network connections again. What a pain.

I can hear the bullshit from the freetards:
  • Oh, my system doesn't crash like this so it must be a hardware problem (No, because my system most assuredly does not crash like this when running Windows XP, or CentOS for that matter)
  • Well, it crashes because you're a clueless Linux newbie (No, I've been using Linux since June 19, 1995, back when you were playing with GI Joe dolls)
  • Maybe you should try harder to make your system not crash (No, maybe Canonical should distribute stable operating systems that don't crash three times a day)
  • You must be a paid Microsoft shill (No, please take your medication when you have paranoid fantasies like this)
  • You really should buy Linux-compatible hardware (Guess what, idiot freetard, I did. I bought a Dell 1420 Linux-compatible computer)
Linux sucks. No operating system worth its salt crashes three times in one day.

I'm happy the Linux haters blog is back again. Linux needs less zealots who think the three crashes I had today were hallucinations, and more people willing to look at and resolve the serious desktop usability problems Linux currently has.

Update: the third crash was not, to be pedantic, a crash; while the screen saver was running, something happened to kill the X process. It was, for all intents and purposes, a crash: I had to reboot my two VMware virtual machines and restart all applications before working again.

Kde4 is crap; no GUI network manager (and no way of installing KDE3, which does have a network manager, instead with Ubuntu); XFCE is also crap, with a very confusing menu on right click and no apparent GUI network manager.

My current workaround is to use Gnome, but to turn off all cutesy effects (right click on root window, change desktop background, then click on the "effects" tab) and to use "xlock" instead of Gnome's stupid screen locker (sudo apt-get install xlockmore then run the command as xlock). I also have detached the optical drives in the VMware guests. I'll let people know whether or not this stops the crashes.

Saturday, February 7, 2009

MaraDNS snapshot update: Webpage updated

After finally getting VMware player to work in Linux, I am able to get back to finishing up the XeroBank-sponsored MaraDNS development. I have updated a new version of MaraDNS, which simply updates the MaraDNS.org webpage. I no longer have a roadmap page, since the page is outdated and the most current information about MaraDNS is right here on the blog. I have added a list of sponsors whose generosity make continued MaraDNS development and improvements possible.

The only work I have to do before releasing MaraDNS 1.3.13 is to re-verify that all of the regressions pass, and to perform a standard stress test I like to do before making a new MaraDNS release. The release should be done next week sometime.

The snapshot can be downloaded by clicking on this link



The reason for the delay in making a new snapshot of MaraDNS is because I decided to use Linux again. Ubuntu Linux, even. It took me the last three days to make the appropriate backups, install Ubuntu, and then struggle with getting VMplayer to work in Ubuntu 8.10.

I had a number of problems with VMware player, which I have touched on in previous blog entries. One is that the CentOS 5.2 guest was not correctly set up to handle key repeat speed in a consistent manner. I fixed this by adding divider=10 clocksource=acpi_pm to all of the kernel entries in /etc/grub.conf (in the guest operating system); here is what my grub.conf looks like:


default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.18-92.1.22.el5)

root (hd0,0)

kernel /vmlinuz-2.6.18-92.1.22.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet divider=10 clocksource=acpi_pm

initrd /initrd-2.6.18-92.1.22.el5.img

title CentOS (2.6.18-92.1.1.el5)

root (hd0,0)

kernel /vmlinuz-2.6.18-92.1.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet divider=10 clocksource=acpi_pm

initrd /initrd-2.6.18-92.1.1.el5.img

title CentOS (2.6.18-92.el5)

root (hd0,0)

kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet divider=10 clocksource=acpi_pm

initrd /initrd-2.6.18-92.el5.img


Note that this solution is CentOS-specific; search on vmware.com's web site for the "magic recipe" to add to other distributions' kernels.

Another is that the arrow keys and a bunch of other keys do not work. There are two solutions posted various places on the internet; the one that works best for me is the one where we just define all of the keys that don't work with VMware player. I added the following lines to /etc/vmware/config (in the host operating system):


xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu
xkeymap.keycode.107 = 0x137 # Print Scrn


Finally, I had serious problems with sound playback stuttering, making it impossible for me to play back all of a single .mp3 file in my Windows XP guest operating systems. I fixed this problem by adding the following lines to the .vmx file for my Windows XP guest operating systems (this is a modification to the relevant .vmx file on the host operating system):


sound.virtualDev = "es1371"
sound.highPriority = TRUE
sound.buffering = "10000000000.0"
sound.copyDelayFactor = "1000000.0"
sound.directSound = "false"
sound.ignoreOverflows = "true"
sound.maxLength = "2048"
sound.smallBlockSize = "1024"
sound.virtualrealcorrection = "10000000000.0"
pciSound.priorityBoost = "true"


I also have these lines describing sound in the /etc/vmware/config file:


sound.Autodetect = true
sound.fileName = "-1"
sound.maxLength = 64
sound.smallBlockSize = 32


But I don't think this second batch of lines help; I had problems until adding the first batch of sound-related lines to my .vmx files.

And, oh, it's only possible to play sound on one VMware guest at a time, and not while playing sounds from other sources. I only use one VMware guest at a time that needs sound (my CentOS 5.2 guest doesn't), and have disabled all sounds in my host's Gnome user interface.

Now, observe that all of these issues are Linux-specific issues. I tested; the Windows XP 32-bit host doesn't have any of these issues (except for the CentOS one, which is caused by the Linux kernel). This is my annoyance with Linux: Things just work on Windows. Things don't work on Linux without spending days tweaking things, for a variety of reasons, mainly serious problems with Linux's sound architecture.

This is why I'm going to use a minimum of applications in Linux; the only real application I will use is VMware, and just do all my work from inside virtual machines I set up. This way, I only have the headache of configuring a minimum of applications:
  • The VMware player
  • The firewall (I will describe how I set up ufw to protect my system in a future blog entry)
  • The core operating system (including things like the sound card, the networking, the video card, etc.)
To be fair, each release of Ubuntu results in more and more things just working; there used to be issues with getting wireless networking to work that are now as simple as configuring wireless in the GUI to resolve. The video card and sound (except inside VMware) also just worked without any hassle, complete with the default resolution being the resolution of my LCD monitor (As I recall, this was an issue in earlier versions of Ubuntu).

So, yeah, progress is being made in Linux. It might even be ready for the end-user desktop one of these years.

Friday, February 6, 2009

VMware update: Keyboard repeat problem solved

Well, playing around with VMware some more, I have discovered some issues which I have been working on fixing.

One is that the CentOS 5.2 guest had some issues with the keyboard repeat rate being inconsistent. This problem made the system nay-to-impossible to be productive on. After much struggle, and extensive Google searching, and trial and error, I found the solution was to add some parameters to the guest kernel:

divider=10 clocksource=acpi_pm

Edit /etc/grub.conf and add these two parameters to all of the lines marked kernel. Next, reboot the guest OS.

Once I did this, the issue seems to have gone away (knock on wood).

The other issue is with stuttering sound when playing a mp3 in the Windows guest OS. This issue does not appear to affect all applications; I was able to talk to my girlfriend over SkyPE in a Windows guest OS for an hour last night without any stuttering.

I haven't found a solution to this issue yet; some people indicate that VMware player 2.0 doesn't have this issue, so I will see if I get get better results from VMware player 2.0.5 instead of 2.5. I will let people know if I can resolve the Windows sound issue; my gut instinct is that this is caused by Linux, since sound in Linux is a bloody mess.

Update: The sound problem doesn't exist when using Windows XP as a host. So, this is a Linux-specific problem. Did I mention that the sound is a lot quieter in Linux than it is in Windows on the same machine? Linux sound is a disaster; until basic desktop functionality like sound works, Linux will stay in the server back room.

Second update: OK, after much prodding around on the internet, I found some useful information over at Sanbarrow.com. I added the following to the .vmx file for my Windows XP virtual machine, and it appears to resolve the issue:

sound.virtualDev = "es1371"
sound.highPriority = TRUE
sound.buffering = "10000000000.0"
sound.copyDelayFactor = "1000000.0"
sound.directSound = "false"
sound.ignoreOverflows = "true"
sound.maxLength = "2048"
sound.smallBlockSize = "1024"
sound.virtualrealcorrection = "10000000000.0"
pciSound.priorityBoost = "true"

As a related issue, adding this to /etc/vmware/config resolves the keyboard issue, and appears to be the best fix:

xkeymap.nokeycodeMap = true

Final update: The reason why I didn't have any problems with Skype last night is because I was using a USB headset. When a USB headset is connected to a guest OS, the guest OS talks directly to the USB headset and doesn't use the host's sound card, so the stuttering problems don't exist when using a headset.

Indeed, it's possible to have one guest play a song or what not while another guest plays sound through the USB headset at the same time.

Thursday, February 5, 2009

I'm using Linux again!

I'm using Linux again. Now, in light of my numerous rants of Linux's problems, what motivated me to use it again.

VMware.

Basically, instead of having to struggle to make every single half-baked Linux app or Linux port to work, the only things that need to work are the sound card, the networking card, and the VMware client. I don't have to worry about things like, say, Flash working in Firefox (I can just use my VMware Windows XP image and install Flash there where it will simply work), or trying to figure out how to back up my Nokia phone in Linux (I can just do it in VMware with the tools that came with my phone).

The stuff generally just worked, with only a little more bother to get everything going than it would have in Windows; Ubuntu is making progress. There's a bug that bites VMware player for Linux, but the fix has been plastered all over the web. Skype doesn't work, since I'm using the 64-bit Ubuntu and Skype is only available as a 32-bit binary, but it works just fine in the VMware image (the XP version) and I was able to talk over an hour without too many problems with the sound dropping out, which was probably caused by problems with our internet connections.

I have the 64-bit Linux host and a few 32-bit virtual machines. This keeps entropy and bitrot to an absolute minimum; I can have multiple virtual machines for different tasks; I already have two XP virtual machines: One for work (with Microsoft Office) and one for personal use (with SkyPE and a couple of video games). I'll probably set up another one just for transferring files to and from my phone and setting up my phone; it's only about 4 gigs of hard disk space for me to add another VM to use, and a little over 512 megs of ram to run a VM instance.

So, I get the best of both worlds: I get the ease of setup of Windows XP, and I get the stability and security of Linux. Since I'm using VMs, instead of installing all applications on a single real instance of Windows XP, the bitrot that makes Windows slower to start up and run programs is almost non-existent. It's a very nice setup.

I also have updated the VMware image I use for MaraDNS development to use another CentOS 5.2 image that includes the VMware tools (albeit in an outdated form with some annoyances), making it more convenient to use X with the image. Indeed, instead of trying to make the outdated Fvwm1 window manager (that is great for my software development workflow) work with all of the new tools that need Gnome hints and what not, I just use Fvwm1 in the CentOS image and Gnome when I'm in the non-virtual Ubuntu system.

VMplayer has a full screen mode where the only hint I'm not in a virtual machine is when I touch the top of the screen, causing the VMware toolbar to appear (which lets me close, minimize, or make the virtual machine again). With the tools installed on the guest OS (the OS running on VMware's simulated computer), I can seamlessly resize the VMware window, and move the mouse in and out of the window.

It's a very slick setup. Yes, it takes more memory and hard disk space, but I have enough of both. It lets me keep things cleaner and with less bitrot, and lets me work in the environment that is best for the task at hand, instead of hacks trying to fit a square peg in a round hole, such as Cygwin's X server, or trying to use modern Linux applications with Fvwm1.

Sunday, January 18, 2009

MaraDNS support boundaries; Linux rocks as a server

To clarify the boundaries of support for MaraDNS, a memory leak has to be something where one can show that MaraDNS is allocating memory while running that is never freed, and results in MaraDNS using more and more memory while running. Memory allocated but not freed during startup doesn't count; while I cleaned most of those in 2006, there is one that I couldn't clean up because the recursive code depends on it.

Did I mention that I'll happily do other things for MaraDNS if paid? These boundaries of support only cover what I'll do for fun and for free.
Let me clarify something: I think Linux is an excellent server operating system. While not quite as nice as FreeBSD, if one uses a stable distribution, such as Debian stable or RHEL/CentOS on supported hardware, one has an excellent server. According to some reports I have heard, a Linux server can handle about four times the traffic as the same machine running a server version of Windows.

Indeed, just this last week there was some problem with our internet connection at work making it difficult to keep TCP connections open. What was interesting was that the problem only seemed to be happening with Windows servers; I had no problem downloading files from Linux and other servers but couldn't download a simple 100 kilobyte email from our email provider who runs Windows as a server.

However, Linux doesn't work as a desktop OS yet:
  • Binary compatibility. The Linux Kernel developers do not care as much as they should about binary compatibility. I can no longer play these video games for Linux I bought a few years ago in modern releases of Linux (the sound no longer works). The ABI (and hell, the API) for kernel modules changes from version to version; forget about getting new hardware to work with an older kernel (LWN tries to justify this practice by implying it's not OK to want to run new hardware on an older, stable kernel; my response is simple: Windows has no problem with having a stable driver model allowing new drivers to be made for older OSes yet working without problem on newer OSes. Why can't Linux do this?)
  • Because of this issue with drivers, I have two choices. I can have an unstable distribution of Linux (Ubuntu) that works with my hardware but has basic functionality, such as using wireless with static IPs, broken (not to mention a bug that damages hard disks and makes them not last nearly as long as they do in Windows), or I can have a stable distribution of Linux (RHEL/CentOS) that doesn't fully work with my hardware (The wireless driver has issues with crashing and sound doesn't work)
  • Fragmentation. I don't like the fact that, with my open source programs, it is difficult to resolve issues like my program not starting up correctly in Linux at boot time. Different distributions of Linux have different ways of doing this and issues like this make supporting Linux applications more difficult. I actually just threw in the towel and no longer support my application except through the public list
  • The user community. I don't like people who treat Linux like a religion, being someone who was the that way about Linux a decade ago. I don't think it's appropriate to declare Jihads against people who don't think Linux is God's gift to the earth, and the actions of Linux zealots (which you can see on a number of bulletin boards, such as Slashdot and to a lesser degree Digg) are pretty annoying at times
  • Applications. Since Linux isn't a friendly environment for binary-only applications, a large number of quality applications are not ported to Linux. This even includes things like being able to transfer files to and from my cell phone from my computer--Nokia makes a nice software suite that lets me transfer files to and from its internal memory, send text messages using my computer's keyboard, make changes to my cell phone's addressbook, etc. Forget about doing any if this in Linux.
So yeah, Linux sucks...on the desktop. But yeah, Linux rocks (and kicks Windows' ass) in the server back room.

Friday, January 16, 2009

Invasion of the Linux fanboyz

Linux sucks.

It sucks because of its fanboyz. Let me give you one issue.

Some young lady ordered a computer from Dell. For whatever reason, the computer ended up being a computer with Linux instead of Windows. This lady tried using it, and ended up completely lost, unable to take her classes at college, and wants to have Windows on her computer again.

So, how to Linux users react to it? With extreme hostility. A comment calling her an "airhead" gets moderated as a positive, helpful comment on Slashdot.

Pathetic. Someone tries Linux, decides they don't like it, and wants Linux removed from their computer. Linux fanboyz react to this person by calling her every name in the book.

Disgusting.

There's a reason that Linux is a failure on the desktop. It's not because anyone who doesn't like Linux is an idiot. It's because Linux has some serious issues that they need to resolve before Linux is ready for the desktop.

In the meantime, I will continue to use Windows XP as my primary desktop operating system, and a VMware image of Linux for development work.

Sunday, January 4, 2009

You can still buy Windows XP

One little delusion Linux advocates like to spread is that Microsoft is somehow forcing people to upgrade to Windows Vista, that it is impossible to get Windows XP, that you have to buy Vista. If only it were true.

I just went over to shopping.google.com, did a search for "Windows XP home edition Spanish" and "Windows XP pro Spanish" and right away found a number of dealers selling legal copies of XP Home for about $100 and XP Pro for about $150. Amazon's software store also has it, albeit in a harder-to-find form: I had to ask for "Windows XP professional Spanish".

What was this about Windows XP being hard to get from Microsoft again?

Now, yeah, I will admit that Microsoft did phase out XP and replaced it with Vista on new computers a little more quickly than they should have; I know there has been a lot of consumer dissatisfaction with this (people have been grumbling about Vista, my mother doesn't like how Vista is really slow to boot up on her computer, my girlfriend doesn't like how it's difficult to have MSN and Skype open at the same time on her computer with 1 gig of ram, etc.). Vista was a mistake because, you know, your average user doesn't care for all of that eye candy, but they do care that their applications that ran fine under XP in their old computer are now dog slow under Vista.

That said, it still is possible to get XP, and, yeah, Microsoft and most OEMs still support XP. For example, Microsoft made one patch that gives XP SDHC support available; another to give XP WPA2 support. The only problem I have had getting new hardware to work with XP is with the sound driver; there is a bit of a song and dance one has to do to get sound to work.

Now, compare this to CentOS 3.x, the only Linux from the same era as the first release of Windows XP that is still supported. Support is very limited: Security patches only. Forget about getting new drivers. Forget getting your new computer to work with CentOS 3.

Linux is far worse when it comes to forced upgrades. I really wish CentOS 3 could run fine with full driver support on my 2007-era laptop, the way XP can. I really wish it was still possible to play the late 1990s/early 2000s Loki games for Linux on a version of Linux that fully supports my laptop from 2007.

But, no, Linux forces you to upgrade, whether you want to or not. I spent good money getting commercial games for Linux; those games no longer run in Linux. I finally broke down and bought the Windows version of a game I bought for Linux back in 1999 (Heroes of Might and Magic III) this last winter so I can continue to play this game. And, yes, the game runs fine in Windows.

Thursday, August 7, 2008

Linux (OK, Ubuntu) sucks: Updates

Linux's update handling was obviously designed by a bunch of kids in their mommy's basement who spend all day on the internet, and whose mommy pays for them to have a high-speed broadband connection.

Down here in Mexico, I don't have an ultra-fast broadband connection. I don't have internet at home either. I'm just a recovering Linux fanboy trying to develop a life beyond sitting around on Slashdot and Digg all day flaming anyone who doesn't think Linux is God's gift to earth.

So, this morning, I booted in the Ubuntu that I installed last weekend (I had some time to kill before dating a girl Saturday evening). Got on the network, then started seeing if I could download the updates to bring my system up to date.

Well, except the connection here at work was seriously lagging (it does that sometimes). The DNS broke down about halfway through the painfully slow process of seeing what packages were available to be updated.

Does the update manager bother to cache the IPs of the site it connected to to get updates? Nope. Is there a usable DNS server on the localhost port in the default install of Ubuntu? Nope. Does Ubuntu come with a usable compiler and development environment so I can compile my own DNS server on the localhost port? Nope, you have to apt-get it.

apt-get is another usability nightmare. You would think apt is smart enough to figure that anyone who wants a C compiler also wants to, you know, compile programs that run. But, no. Once you get gcc, you also have to hunt down and get the "libc-dev" package to compile anything.

So, anyway, this process of looking for updates failed halfway through. I had a list of packages to update, but I have no idea if some critical security update was missed. I had better things to do with my time than to restart the "look at the big huge package lists to see what updates I need" process.

So I booted back in to Windows.

Let's compare this to Microsoft. With Microsoft, the update process is one that is perfectly usable, even on a dialup connection. It will run the updates in the background, with a low priority given to the packets uses for downloading updates. This required something Linux isn't very good at: Coordination with the people responsible for making sure the operating system is up to date and the people who implement the TCP stack is as simple as getting a few people together in a meeting room somewhere in Redmond and talk about the need to have it so downloading updates can be done on a slow connection that is often offline without affecting the user's internet experience.

The update process is one where, if something fails, like DNS dying halfway through the process, the task is stopped where the failure happened, and can be painlessly started again without needing to go back to square one. It's one where downloads can be interrupted and resumed again at any time.

The closest Linux gets is with CentOS, where I can just go here and download the updates by hand. Should the download be interrupted, I only have to re-download one package instead of the whole spiel. Once I download the updates, I then have to, by hand, see which RPM files I have on my system and update them. OK, I can kinda-sorta automate this with something like for a in *rpm ; do if rpm -qa | grep $( echo $a | awk -F- '{print $1}' ) ; then rpm --upgrade --nodeps $a ; fi ; done but that's a little unreliable and buggy.

But even that doesn't hold a candle to Microsoft's update process. Don't get me started on the distributions where the distribution maker one day lost interest in keeping the distribution up to date, making it so the distribution has no security updates whatsoever.

Thursday, July 24, 2008

Linux sucks: Hardware drivers

Today, I'm going to talk about the sad state of Linux's hardware drivers.

Drivers are something you need to use a modern computer. Computer manufactures, in order to reduce the cost of computers, constantly change the hardware a computer uses. This isn't a problem normally; one simply downloads the drivers for the new hardware and everything works fine.

Well, it's not a problem in Windows. See, Microsoft has made it as easy as possible to make a driver in Windows. Once a driver is made, that driver is guaranteed to work for years. Indeed, most XP drivers work just fine in Vista; Microsoft went to a lot of effort to make sure, when you upgrade the OS, the hardware still works.

This level of stability goes both ways. Installing Windows XP on new hardware is possible; installing a version of Linux from the same era (RedHat Enterprise Linux 3 or CentOS 3) on a new computer is impossible.

The problem is that Linux doesn't have a unified driver model. Drivers frequently break between minor kernel versions and forget about having a new driver work with an older kernel.

This is a real-world problem. I bought a Linux compatible notebook. I very specifically chose hardware that would work with Linux with the minimum of hassle. When Ubuntu proved to be unusable (the wireless driver never worked with a static IP and one day just stopped working altogether), I put CentOS 5.2 on this computer.

The video card finally worked with CentOS; X, unlike the kernel, is pretty stable about their driver API. The sound card doesn't work. I only got the networking card to work by installing a third-party driver; it's an older driver version and has an issue with crashing if I don't send traffic over the wireless interface; I usually have a process ping the gateway router once a second, which causes the problem to not manifest itself.

I wish the core kernel developers would find something more productive to do with their time than constantly changing the kernel-level API and ABI for drivers, breaking drivers and making it nay-to-impossible to backport drivers for new hardware.

This is one area where Windows clearly kicks Linux's ass: Drivers. Drivers for a given version of Windows are pretty much guaranteed to work for at least five years. This laptop has no problem working in Windows XP, a seven-year-old OS; none of this laptop's hardware works with a circa-1991 era Linux kernel (yes, I tried this), since new drivers don't work with older kernels.

Wednesday, July 23, 2008

OK, I just didn't publish two poor arguments

OK, a couple of people tried publishing some rather pathetic arguments trying to argue that Linux is not a commercial failure. Pathetic argument number one:
If you're technically competent enough to use Linux, you're probably not buying Dell computers voluntarily
Bzzt. Argumentum ad hominem. Please play again. Let's see. I'm technically competent enough to use Linux. Hell, I'm technically competent enough to create my own Linux distribution. I use a Dell. They're fine computers.

And a couple of dumb arguments from another person:
However, calling Linux a "commercial failure" with "less than 1% marketshare" is wrong.
Ok, nice assertion. Does this person have any stats to back up their argument. Let's see:
The stats for the sites that I work with show between 5% and 7% Linux market share
Bzzt. Anecdotal evidence. I specifically asked the fanboys to not post that kind of evidence; I wish fanboys would, like, actually read my blog entries before trying to comment.

This particular person posted some other arguments:
You can't really point to Dell stats until the mainstream customization form has a radio button for Ubuntu for $50 less than Windows
Err, if a significant number of users wanted Linux on their computers, the Dell Linux program would have been successful enough for them to do that. The fact of the matter is that Dell doesn't want to deal with the support nightmare of average users finding this (to them) monstrosity called Linux on their computer because they clicked the wrong button. This is why Dell makes people go out of their way to get Linux.

It's difficult to buy a Toyota Prius. You have to get signed up and go on a waiting list to get one. The wait can sometimes be months. Despite this, the Prius is extremely popular. To get a Dell with Linux, all you have to do is go to go to this page and order your Dell from there. Much easier than getting a Prius, yet Linux computers aren't exactly selling like hotcakes.

This user also pointed out that Dell specials don't exist for Linux computers. Not true; a year ago there was a Dell special that existed for Windows, not Linux, on the 1420, and it even made it to the Slashdot front page. So much stink was raised about it, Dell recanted and made the special available for Linux users also.

Anyway, if you want to post your fanboy arguments, please do so in the Linux haters blog. Any other posts trying to argue that everyone is secretly using Linux instead of Windows on the desktop, or that more than 2% of desktop users use Linux will not be published. Save your rant for the Linux haters blog.

My next article will be about the reasons why Linux has failed on the desktop.

Sunday, July 13, 2008

Linux is a commercial failure

If you buy a Dell computer with Linux preinstalled, you get two benefits:
  • The computer is about $50 cheaper than the equivalent Windows computer
  • The computer's hardware is known to work with Linux
Despite this, for every Dell computer with Linux preinstalled sold, there are some 150 Windows computers sold. Yes, guys, less than 1 percent of people who purchase Dell computers chose to use Linux instead of Windows. [1]

What does this mean? It means no one wants to use Linux on the desktop.

Now, I am aware how Linux fanboys think. Before you try and post the usual "But those statistics are wrong" spiel, other statistics say pretty much the same thing; browser stats at web sites; Loki's failure; etc. If you want to question these statistics, do so with solid evidence showing that more than, oh, 5 percent of desktop users using Linux. And don't waste my time with "Me and my three buddies all use Linux" antecedents. [2]

So, in my next articles, I will talk about why it is, some 14 years after Linux 1.0 was released it has made no headway on the desktop.

- Sam

[1] The volume of Linux computers purchased is still some 40,000 computers purchased per month.

[2] Comments are moderated and regurgitations of these spiels will not be approved. Come up with something original, guys.

Thursday, July 10, 2008

Linux Sucks: Clarification

I noticed that my last Linux sucks article wasn't clear about how I borked my Linux install, so I will explain what happened more clearly:

I installed CentOS 5.2. I like a distribution that works and will continue to work, complete with security bugs being patched, without having to reinstall the OS every 6 months. You know, like Windows. Also, I used RedHat from 1997 until 2004, and a combination of Fedora and CentOS from 2004 until mid-2007, so I'm more comfortable with an RPM-based distribution than a .deb-based one, since, among other reasons, Debian packagers are known to add security bugs to programs.

I then went to atrpms to get drivers for my wireless card. These RPMS are designed to work with CentOS/RHEL, and I only installed the drivers for my wireless card.

Anyway, the atrpms wasn't what borked my system.

What borked my system was going to mirrors.kernel.org, downloading the CentOS updates, and starting to install them by hand. You know, like how one updated RPM-based distributions for years.

It would have been fine if I had RTFM and did "rpm -e --allmatches --nodeps"; however I thought fixing this with rpm was impossible because "rpm -e -f" doesn't do the right thing ("-f" here really ought to be treated like "--allmatches --nodeps". Maybe one day I'll submit a patch).

Once I had the xulrunner rpm corrupting my database making "yum update" impossible, I did a Google search on various terms ("Same RPM installed twice", "Corrupt RPM database", etc) and the answers I saw told me to edit files in /var/lib/rpm by hand. So I did that, which completely broke things and forced a reinstall of CentOS.

And, oh, I do have some things in /usr/local/bin. Among other things, version 1 of the FVWM window manager and version 3.96 of the Lame mp3 encoder (which I feel sounds better than Lame 3.97). And, no, that isn't what caused the problem.

- Sam

Monday, July 7, 2008

Linux sucks

Linux sucks.

I have had nothing but problems with Linux. I installed xUbuntu 8.04 (or so) 64-bit. It was OK for a while, but all of the network cards stopped working recently.

No big deal; I was in the process of trying out CentOS 5.2.

So, I installed CentOS 5.2. The video card worked; the sound card and wireless card didn't work. I was able to find some RPMs on the internet for the wireless card, installed the RPMs, then tried to run "yum upgrade".

It didn't work.

It would seem that, for some reason, the same rpm was installed twice. It's impossible to erase an rpm that's installed twice because rpm complains that you're referring to more than one rpm package. "rpm --rebuilddb" doesn't fix the problem either.

So, I tried editing /var/lib/rpm/Packages and renaming one of the two RPM packages. Unfortunately, the version of vi I was using decided to convert the character encoding of the file, and I didn't make a backup. So I lost my entire rpm database.

So now I have to reinstall the OS from the ground up.

Linux sucks.

Friday, June 13, 2008

avahi-autoipd is evil

There is a process in Ubuntu called "avahi-autoipd" that is absolutely evil. What this process does is go out of its way to sabotage any attempt to have a static IP in Ubuntu. I've configured /etc/network/interfaces to use a static IP. avahi-autoipd ignores this configuration. I then had to use "ifconfig" and "route" to manually give my computer a static IP. avahi-autoipd then, 90 seconds later decides I don't want a static ip, erases my static ip and tries to get a DHCP ip (which doesn't work, since there isn't a DHCP server).

I tried killing the avahi process. Some evil daemon then ressurects the avahi process so that it can remove my IP 90 seconds later.

I finally did a "sudo rm /usr/sbin/avahi-autoipd" and rebooted the computer; the monster that decides I can't have a static IP is finally dead.

I'm sure there's some exotic recipe to make avahi behave. I don't care. I have better things to do with my time than to configure some new fangled daemon that doesn't work. The daemon should not be disabling static IPs every 90 seconds, end of story.

Now, I'll see if dhcp works. If not, I'll compile the dhcp client that comes with Busybox, which is, at least simple and not prone to failure.

My other Ubuntu rant: Making backups to a DVD-RW with a UDF filesystem is dog slow. We're talking hours to copy 50 megabytes of data. On a DVD-RW that I could burn in 15 or 20 minutes. Why is this so dog slow?

Linux sucks.