Today, Slashdot posted an entry about Window’s 89.6% market share. According to the real article:
Windows’ share shows no sign of stopping its slow slide; in the past 12 months, Microsoft’s market share has fallen from 91.79%, a decrease of more than 2 percentage points. During the same period, Apple has increased its operating system market share by 1.56 points, or a gain of 21.3%.
Windows market share dives below 90% for first time.
This is some pretty great news. Remember back in 2006 when firefox was gaining steam? Back then it was at about 13%, while it is at almost 45% today. In just two years, MSIE took huge hits in popularity. I think the same thing might be said for Linux/Mac, who’s combined 10% is fighting Window’s dominant share. I’ve got a little bit of evidence to support that Microsoft is losing ground, and its because of their stranglehold on the average joe’s desktop environment.
Its a little story, so bear with me. (more…)
I’ve succumbed to the disease. After watching @keylynn play MapleStory for hours on end, I realized that I wanted to play a MMORPG really badly. The last one I played was Final Fantasy XI, and that was years ago on Dialup. I couldn’t stand downloading the patches all the time over a small phone line, so I gave up.
But before FFXI, there was Earth and Beyond. Quite possibly the most awesome MMORPG ever created (that I’ve played at least). I played for months on end in junior high until I, for some reason, stopped. I can’t remember why I stopped playing, but every now and then I’ll have these pangs of nostalgia of cruising space as Sharptooth, the Terran Trader.
Good times, those were.
I borrowed a friend’s disks and I plan on using their 10-day guest pass. But right now I’m downloading the WoW patches over the university’s internet, which doesn’t agree too well with the bittorrent, so things are slow as heck. I haven’t created my character yet, but I already know I want to be a Gnome
Rogue.
Did I mention I’m playing it on Linux? Yep. Cedega FTW!
For my ASM and systems programming class, we occasionally write programs and need to upload them to the programmer board. Since my laptop only has USB ports, I was given a USB-to-Serial converter. In windows, there is device probing using AVR Studio that lets it find the device by itself. In linux, you only know which tty is the USB-to-Serial converter by looking at dmesg. Usually.
But this is the year 2008! Linux is a modern operating system! You should be able to do that probing through the command line, right?
Using HAL, you can easily find which device is the converter. It isn’t what AVR Studio does (sending magic packets) but it still works, and it doesn’t send any unwanted magic to my bluetooth radio or CDMA modem. I’ve written a small function for my zsh shell that automatically detects which USB tty is the serial converter and sets up the avrdude command as needed:
Of course, this script is written for that specific USB device, and tells avrdude to prepare for my ATMega16 (-p m16) on the STK500v2 programming board. YMMV.
Today marks the fedora project’s 5th year of existence! Hooray!
I myself started using Fedora back when it was “Fedora Core”, just after FC3 came out. I had converted my windows 98 “server” machine (back then called Earth) to the current beast that is Jupiter. The hardware has remained the same, but the software has improved. Why, I remember the days before D-Bus and Avahi. Rough times, those were.
At first, I used Jupiter to store a few samba shares for web development and download storage. Then I decided to install Fedora on my desktop computer, Pluto. I set it up to be dual boot with XP and Fedora 3, and things Just Worked.
Go forward a few years, and now I’ve got centralized LDAP user management, a distributed backup system, home directories over NFS, two MythTV servers, 3 laptops with Fedora 9, and a really slick KDE4 desktop. Life’s good.
First, I’ll show off the logo for Glovebox:
Second, Glovebox development has stalled a little bit over the last few weeks due to college starting up again for me. So, I’ll just give a quick overview over whats changed since I first announced the project.
Much like KDE’s libraries, Gloveui is the name for the base library I forsee all Glovebox components using. This will allow for super easy theming and other bits of consistency. As of now though, it only has an implementation of the Freedesktop icon and sound theme naming specifications, along with GIcon and GNotify classes.
A GIcon has a simple constructor. You pass it the fd.o icon name, and it uses the QIcon methods to load up images. Icons are still drawn using the basic QIconEngineV2, so it doesn’t always draw the proper size. Thats coming soon though.
The GNotify is a rough outline for a much more broad system. I soon home to have something similar to the galago-project implementation of the fd.o notification specification, where information bubbles can pop up on the display somehow. But for now, GNotify only does one thing: plays fd.o-named sounds. Since it is static, you just call GNotify::global()->sound("desktop-login"); to play the startup sound. GNotify uses Qt’s Phonon classes to accomplish this with minimal effort.
Over on the right is the current view of the Launchpad main window. Nothing too exciting to look at, I know, but there is now a fully-functional GPS data engine! And on the map page, I’ve implemented two handy widgets: A compass and a signal chart. The two widgets are independent of Glovebox, so any other Qt developer is welcome to use them. The only issue with them right now is the size hints aren’t working properly.
With a full school schedule (class and work from 9-6 on a good day), I don’t have a whole lot of free time. I try to hack on Glovebox when I get a chance, and I’ve got a quick list of things I’m working on from time to time:
That last item is a bit troublesome to me. A main feature of my Launchpad is to show a dashboard with widgets for the home page. Idealy, I’d like to implement this using Plasma. Unfortunately, that means I’d have to add KDELibs as a requirement. Right now, my plan of attack is to strip out all the KDE-specific code and replace it with Glovebox code.
Its bothering me though that I seem to be duplicating the efforts of KDELibs just to import one (awesome) feature (set). With all the recent work on getting Plasma to work great for embedded devices, it seems like I should just bite the bullet and link in KDELibs. I feel that goes against my biggest design goal for Glovebox, in that it should be small as possible and depend on as few libraries as possible.
So, lazyweb, any input on this problem?
For my network, I’ve got two Mythtv machines. One is Saturn, the main recording backend. The other is Neptune, the supercharged media workhorse who has a frontend in addition to running my distributed DVD ripping, being part of a compile farm, holding all my music, and mysql databases.
Neither of the two are on a battery backup because I’m cheap, so when things go down, they don’t always come right back up. And sometimes Saturn’s mythbackend crashes. It happens.
So to prevent this, I added my mythtv-frontend user account to Saturn’s sudo list. Then I generated a ssh key and put it into the authorized_hosts file. Since all my accounts are managed with LDAP and /home is mounted over NFS, its really easy to syncronize both machines.
The final step is to change the ‘WOLBackendCommand’ setting in the database. The only sudo command mythtv-frontend can execute on Saturn is /etc/init.d/mythbackend restart. So I changed that setting to ssh saturn sudo /etc/init.d/mythbackend restart;sleep 5. The extra sleep allows for startup lag.
Now, if both machines go down, there isn’t a race condition between saturn waiting for neptune’s database to start before starting mythbackend. Once Neptune’s mythfrontend starts up it notices there isn’t a backend connection available. So it ssh’s into saturn, (re)starts the backend (It might be hanging, so thats why it restarts it), and waits politely for it to start.
For most of the summer, I spent my limited idle time thinking up what kind of big project I wanted to accomplish next, now that my MythTV system was ticking along just fine. My Hiveminder list had a few notable things in it: a beowulf cluster of as many free, discarded computers as I can find, a dorm computer that acts as a link between my dorm and home network, a networked coffee maker, and a car computer. Just to name a few crazy ideas.
All of those others would take too much effort, or have already been done before hundreds of times. The linux car computer hasn’t though. Searching google yields one result, “The Coolest Car in the World“. Really, its nicely done. But it could use some improvements. At a quick glance, most of the package seems hacked together using bits of MythTV, Gentoo, various other programs, and shell scripts. Even though it works, it is still very much a huge hack.
So I started my own project. A car computing environment. Much like a desktop environment such as KDE, or Gnome, Glovebox is a ‘desktop’ environment of sorts. It is based in Qt/Embedded Linux, which unfortunately restricts all GUIs to use that, but I feel the benefit of the lightweightness far outweighs anything gained by using a heavy X server.
The project is currently hosted by GitHub, and can be found on it’s page there. More details about the project can be found on that page as well. But for now, how about some screenshots, eh?
This first shot here shows Marble from the KDE project. In Qt/Embedded. As I said in yesterday’s post, I was planning on using it for some big upcoming project. Here it is! Right now, all the map does is sit there and look pretty. More like pretty awesome, am I right? Oh ho ho ho…
Since the Services concept in Launchpad (the main menu program) is based off of plasma’s DataEngine system, I figured it’d be a good idea to continue the tradition of using a clock as the whipping boy. The first Service I wrote was the time service, and the first page to use a service was the clock page. Once I add themes to the system, the clock will look a lot nicer.
To add a few megs of space to my LiveDrive USB project, I repartitioned the drive in gparted, created some new LVM parititions, and then reinstalled the disk data by unpacking a tar archive I previously created. One crucial step I left out was telling my bootloader where everything went. Originally, my /boot partition was stored as the first partition. Somehow, I managed to make it the second partition (after my LVM), and now GRUB was all confuzzled.
To fix it, I tried running the command grub-install /dev/sdf. It failed saying it didn’t know which BIOS device corresponds to that linux device. The reason behind that is because on my host computer’s /boot partition, there is a file called /boot/grub/devices.map. In it is a cached mapping of BIOS devices to linux devices. Probing for devices takes a good bit of time, so it makes sense to cache it. This map file is only used by the command line version of GRUB, which recreates it when it doesn’t exist anyways. Renaming it let me progress a step further.
Now that GRUB sees the relation that /dev/sdf is my second BIOS disk (hd1), I tried messing around with grub-install again. It worked without complaint, but it still couldn’t boot. GRUB spit out a series of ‘GRUB’s to the console on boot, indicating some kind of horrible failure. Turns out, GRUB still thought my /boot was the first partition.
To finally fix this, I ran setup (hd1) (hd1,1). grub-install uses grub’s install command internally, but it uses it rather blindly. It assumes that the drive you give it is the same place where GRUB’s images are (those ’stage2′, ’stage1_5′, etc files). The setup command takes two arguments, and the second one is optional. The first argument indicates where you want to install the bootloader. I specified (hd1) to indicate I wanted it install in the MBR for my USB drive. The second argument indicates to grub where it can find its images and the menu.lst file. Remembering that partitions are 0-numbered, I told it to use the second disk and the second partition.
A few lines scroll by explaining exactly what commands it is running, then it should complete without failure. Once it did, my LiveDrive was bootable again.
I use the Gnome application Glom to maintain a personal database of things. I use it instead of KDE’s Kexi because it is more complete and doesn’t crash nearly as much. I created my Glom database before I upgraded to Fedora 9 to get my new KDE4, which means it used Postgres 8.2. Fedora 9 uses Postgres 8.3.1, which uses an incompatible database format. Upgrading it takes a bit of work, but it can be done very easily.
First, you need to get a copy of Postgres 8.2. I downloaded the source tarball from postgresql.org and unpacked it. In it, I created two directories, build and install. Since I will only need to run 8.2 very briefly, I’m installing and building it all in once place. After its all done, I can then just remove the tarball and the one directory it created.
Enter build and run ../configure --prefix=/absolute/path/to/install/dir with the correct prefix. Then make and make install. Now you’ve got a tiny temporary installation of postgresql. Set your PATH environment variable to the bin subdirectory where you installed it, then run glom. It should start normally and everything works. In another terminal, use pg_dumpall -h localhost -p 5434 >outfile.sql to get a dump of the glom database.
Once your database is neatly tucked away inside that file, you can kill the 8.2 server with ctrl-c or SIGINT. Now, rename the directory where the glom database is held. You’ll have to ‘recreate’ the database in glom, using the new 8.3 server. Just rerun glom and create a new database with the same name and folder as before. Keep it running while you run pgsql -f outfile.sql -h localhost -p 5434. After that finishes, exit glom.
After that, copy the .glom file you find in your backup over to replace the one glom just created. All properties of your database should now be upgraded to the 8.3 postgres format. Feel free to delete the temporary install now (after checking to make sure it works of course).
I can imagine that there are one or two people out there with these questions, so I’ll answer them right here:
Because 8.3 is a newer version. The frontends (pgsql, pg_dumpall) shouldn’t care what version the server uses. They contain bugfixes and are more (read: exactly) compatable with the 8.3 server, so it makes sense to use something that is both forwards and backwards compatible. 8.2 doesn’t know about 8.3, so there might be some unforseen confusion.
That file holds all your form layouts. Without it, you’d have to redesign all your data entry pages. That’d suck, huh?
TechCrunch has a post up about how the Data Portability group is using Fedora’s logo. TechCrunch agrees with Marc Canter who says, “Do NOT spend 0.001% of your mindshare – time – or energy – worrying about a LOGO! Get a different logo.â€
To me, that sounds quite childish. I’ve been an avid supporter of the Fedora Project since I started using Fedora Core 3 ever so long ago. The current fedora logo at the right has been in use since (if I recall correctly,) fedora 6 or 7. That was a very long time ago, and it took the Fedora project a very long time to come to the current logo. Now this good-intentioned portability group comes along and tells Fedora that they need a new logo because its stupid to fight over it.
Last I checked, things don’t work that way. Its called Copyright, and the Fedora project owns it over the logo. If Fedora has any hope at all to be popular, then they need to fight to keep their current logo. Before the artwork team devised this great and meaningful logo, it seemed like Fedora had a new design every release. An incredible amount of effort went into creating this logo that embodies everything the Fedora project stands for (see the notes here).
TechCrunch closes by saying “The ideas are what’s important – the logo is irrelevant. RedHat should have just let it go, but you guys can’t waste mindshare on this. Have a contest and let fans create a new logo for you.”
If they ideas are important, why does it make the Fedora logo any less important? You can’t just “have a contest” to create a new logo, when the current one means so much and has had so much thought put into it.