2008-12-30

Comux 000001

maybe next i should pick on the openSUSE color scheme so i don't get crucified by the Ubuntu fans

2008-12-28

Fedora and the WizardPen Tablet of Genius

A few days on from some OS experimentation, and Fedora 10 on the eee is still running strong. Since then i have experimented with several tasks that i normally attempt on a new OS. One of these tasks is to get my tablet ( Genius MousePen 8x6 ) working. Other than being really good ( enough for me to stop using openSUSE on my eee ), it seems that Fedora has a few other surprises.

Downloading the wizardpen driver from the usual place, and performing the usual configure and make on the extracted source, the wizardpen_drv.so file is located in src/.libs. Once this is copied to the Xorg input modules directory ( /usr/lib/xorg/modules/input/ ), the next step involves editing the x.org config file, usually located at /etc/X11/xorg.conf.

So, as i have done for the last 8 years, i opened up a terminal and cd to /etc/X11, and vi xorg.conf. Momentarily i assumed that i had made a mistake, since "new file" was printed at the bottom of the screen. After triple checking the directory and filenames, i realised that there was no xorg.conf in this directory. My first reaction was that ( being a Fedora newbie ) it must have been in a different directory, so after searching through all the obvious directories and finding nothing, i decided to check online. The first relevant forum post states that Fedora does not have an xorg.conf file anymore. Once i had recovered from this news that had just shattered my view of the XServer, i read on. Turns out that it's all auto configured, since X can now dynamically load input drivers instead of having a single fixed config file. After a few minutes of thought and a considerably strong drink to calm the nerves, i looked up some more details on getting the tablet to work. ( Note: it is possible to have an xorg.conf, but it needs to be generated by installing system-config-display and saving those settings, thereafter X will use the newly generated xorg.conf )

With some decent Google search terms, i located a suitable forum post about using the wizardpen tablet under Fedora. Reading down to an entry by user Vikswd, i followed his/her simple instructions, logged out, plugged in the tablet, and it was working. Besides the initial recovery time after seeing no xorg.conf, this was the shortest time that it has taken to get my tablet working under any OS. I suspect that this setup might work for any Linux using the new Xorg with hot pluggable input ( 1.5 i believe ), but i have not tested it and will the moment i have a chance.  This is how it's done:

  1.  Make sure you have built and installed wizardpen_drv.so into the /usr/lib/xorg/modules/input directory. If you don't know how to do this there are many forum posts on the subject and it is really simple.
  2. Find the hardware name of your device by performing either:
    cat /proc/bus/input/devices
    or
    grep -i name /proc/bus/input/devices
    In the output will most likely be something like UC-LOGIC Tablet WP8060U... remember this.
  3.  Create a new file: /usr/share/hal/fdi/policy/20thirdparty/99-x11-wizardpen.fdi
  4.  Edit this new file as root user, and put in the following content:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <deviceinfo version="0.2">
     <device>
     <!-- This MUST match with the name of your tablet -->
     <match key="info.product" contains="NAME OBTAINED FROM STEP 2">
      <merge key="input.x11_driver" type="string">wizardpen</merge>
      <merge key="input.x11_options.SendCoreEvents" type="string">true</merge>
      <merge key="input.x11_options.TopX" type="string">10</merge>
      <merge key="input.x11_options.TopY" type="string">10</merge>
      <merge key="input.x11_options.BottomX" type="string">32747</merge>
      <merge key="input.x11_options.BottomY" type="string">32762</merge>
      <merge key="input.x11_options.MaxX" type="string">32747</merge>
      <merge key="input.x11_options.MaxY" type="string">32762</merge>
     </match>
     </device>
    </deviceinfo>
  5.  Plug in the tablet, and log out. This should do it. If not, hit Ctrl+Alt+Backspace for good measure ( twice if openSUSE 11 or above ) and that's it. Pressure sensitivity will work in Gimp by activating it under input devices in Gimp Preferences.
  6. As noted in the forum post, if something did go wrong, check your /var/log/Xorg.0.log for a (EE) line, possibly by doing something like grep EE /var/log/Xorg.0.log 

That is really quick and easy, took me less time to do than running the tablet driver installer on Windows! Since then, i have been thoroughly enjoying having my tablet working again, since it has been roughly a year since i actually tried to draw anything. Some 800x480 KDE/eee backgrounds that i have done can be found here. The XML posted above is very similar to the traditional config, and modifying it would be a simple matter of adapting your usual settings ( based on the output of the wizardpen-calibrate app that gets built with the driver ). As always with my posts ( especially the How-To style ones ), any extra notes or different methods are appreciated in the comments. The more we can help the community, the better.

2008-12-24

Ubuntu and Back Again, a Scenic Journey

Following my blog entry on the unetbootin application, it was only logical that i review what exactly i did with the app. Since many people who have read my blog see me as a hater of freedom and an exclusively openSUSE user, i thought its about time i gave the free software community's little darling, Ubuntu, another shot. It's been a while since i've installed an OS other than openSUSE, mostly due to moving across the world and not really having a spare PC to mess around with ( since the EEE was also my wife's work PC, and the scene isn't pretty if i break it for a day ). Last time i tried a different OS must be about the same time last year ( Christmas cheer and all ), and it was Ubuntu. This time, i've experimented a bit and went through several OSes, and my results are not what some readers might expect. Even i didn't expect what happened...

I'm a software enthusiast, always looking to try something that looks interesting, free or not. As a programmer i prefer seeing source code, and my intrigue in different software often stems from wondering how it works. When people insist that something is good, then i must try it. Discovering unetbootin was an indirect result of this. People keep telling me how good Ubuntu is, so i thought i should try it on the EEE.

ubuntu-eee:

Knowing that there is a large EEE community, i figured that i'd try out the first EEE distro that i found, ubuntu-eee. Turns out that this uses unetbootin to get it onto a flash drive and boot ubuntu-eee. And hence my discovery of this awesome application. So i did the deed, and fired up ubuntu-eee. As you'd expect from a EEE distro, everything worked out of the box. It even had a "cute" netbook interface which made me feel like i was operating a mobile phone, but knowing that it was easy to get rid of, i proceeded to install the os ( which is really simple with Ubuntu as always ). Install was easy, everything went as expected, and i booted to the netbook interface. A few terminal lines later ( i felt right at home because apt's terminal interface isn't so different from zypper - i know apt came first don't crucify me for that ), and i had a sort of traditional Ubuntu interface. Gnome menu bar and desktop. Now i'm a KDE user, and my reasons for not using Gnome could be an entire blog post, so i need KDE installed. And not just any KDE, i want to be using at least 4.1.2 or ( preferably ) 4.2 Beta 2. Then i discovered that ubuntu-eee was based on 8.04LTS, and i needed to upgrade to 8.10 to get any decent KDE 4 support ( as per a forum post i found ). Sadly upgrading Ubuntu works only half of the time ( heard too many complaints from Ubuntu users ) and requires 1.2GB of harddrive space, which my EEE 701 can't handle. So without being able to upgrade i couldn't find a way of getting KDE 4. So i figured i'd move on to more familiar ground, and decided to check out what unetbootin could do.

openSUSE Factory:

As a normal openSUSE user who likes to have the latest software ( even unstable versions sometimes ), openSUSE Factory is a logical choice. I finally discovered the flexibility of the SUSE installer, the fact that a 20MB image can install from anywhere! A network connection is all that is required, so after using unetbootin to get the image onto the USB stick, i noted down the Factory url and rebooted. The installer started up in an old school NCurses environment and asked me for CDROM 1. Hitting cancel, i was given the option to perform a network install and all was needed was to enter the URL, and the usual graphical openSUSE installer popped up. As much as this was more complicated that from a live disk, it's rather flexible so i wasn't unimpressed. 3GB of rpm downloads later, and i had what appeared to be openSUSE 11.1. Interestingly it was labeled as openSUSE 11.2 Alpha, but at first i took no heed to this. Only when i attempted to use the great 1-Click install mechanism, did that become a problem. For some reason, it refused to register me as openSUSE Factory, and YaST wouldn't install anything from the 1-Click install site. This is a big piece of why i like openSUSE so much, and i figured that without this, i might as well be using Mandriva or Fedora ( for want of another RPM distro ). Gladly, all EEE features were working as expected. Other than that, it was kind of slow, considerably more so than the openSUSE 10.3 install i had left just 3 days before. I figured some of that was to do with KDE 4 running ( as opposed to XFCE which i had ) but none-the-less it was too slow for my daily use. I figured after a day or so, that i didn't give an Ubuntu based distro a decent chance, and since a colleague was saying that my experience of Ubuntu was poor because it was ubuntu-eee, i thought i should keep up the experiment.

Kubuntu 8.10:

So i got the next distro and booted it up. As per usual, Kubuntu came as a live distro, with option to install, so i jumped right in. After the painless install process, i booted into a clean Kubuntu install for the first time. There were two things that i noticed instantly. Firstly, there were updates available. Secondly, my wifi driver wasn't working and i had no internet access. So how exactly did it know about the updates? I'm still debating the ways in which this might have occured but haven't yet thought up a reasonable answer. Maybe it should have been called Omnipotent Ibex. So i pulled out a lan cable, fired up konqueror and did some browsing. It turns out that even though 8.10 claims that the EEE 701 wifi card is in the driver list ( in use and working ), it isn't. Many posts are in forums about this, and there is no official kernel support for this card. There is however a EEE kernel which i proceeded to install following a few command line tricks. It was at this point i really missed the 1-Click install, since i prefer as little command line interaction as possible. So after a reboot, everything was working ( and i put that lan cable away ). So now to get some software. The Adept software manager was the only software installer available, so i played around for a while and wasn't too impressed. I needed finer control of the packages i wanted, and i remembered that Synaptic package manager should be here somewhere. Oddly i had to install it! This is really odd for me, because even OpenOffice was installed, which should never be on the EEE 701. Given that, i installed Synaptic and removed Oo, and then continued setting up all my usual stuff, gimp, abiword and others. One thing that did impress me was that since the install, compositing had been running perfectly ( thanks KWin ), and really smoothly too. Being somewhat impressed i kept playing around for a while, but couldn't help feeling that it was still not much faster than openSUSE, even without Compositing. Boot time was still long, and as with every distro i've tried on either of the ( widescreen ) laptops, boot process still spams text ( in Kubuntu's case, it starts with a graphical logo and then returns to a full text boot ). Feeling somehwat ok with Kubuntu, i only have a few complaints. Firstly, there is no centralized system admin tools, and knowing that only Mandriva and SUSE focus on this, i'm ok to accept it if decent admin tools are provided. With Kubuntu this was borderline, but still ok. It's enough for most users, and i could see why people would be more than happy to accept this given that their hardware all worked perfectly with the OS. I really dislike the Synaptic package manager, as it it somewhat difficult to tweak the installed packages to a point where there is minimal disk usage, but everything still works. Some packages won't deselect no matter what, and i feel that i need more control over my system. Overall though it felt good, if not a little to slow. Yes, i am giving Kubuntu an thumbs up! There is also something about Ubuntu, which is my main reason for not using it, that it feels very raw. It's hard to describe, but i've always thought of Ubuntu as feeling like someone might imagine a community distro. There's something rough about it, like a bunch of people hacked together some tools and gave it a name. Maybe it's because i have very little Debian experience, and that is just the feel of Debian, but i like things to feel like they are products, not progressions. This aside, i could live with Kubuntu, and so, i decided to download some Live ISO's ( onto an external HDD ) and try out unetbootin's set up from ISO feature. And then i met Fedora 10.

Fedora 10:

At first booting the live distro with no intention to install, something struck me. There was no streaming text on boot. It seems that if Fedora cannot find a resolution for boot, it does an NCurses style loading bar which still looks impressive given i've been staring at scrolling text for the last year. A small thing, but still a nice little bit of polish. KDE 4.1.3 starts up, and i notice immediately that it feels just like what i'm used to, on the other laptop! The speed was incredible. Granted, the compositing was disabled, it felt ridiculously fast. I also realised that the wireless networking was working perfectly and somehow seemed to connect quicker than i've ever seen network manager connect. This wasn't just perception, and i think there is some preloading trick somewhere, or maybe i'm just used to bad drivers. It seems like a Fedora KDE live cd, is really a KDE cd! There was no OpenOffice ( for that i'm grateful ), and KOffice was installed by default. There was almost nothing non-KDE or non-Fedora, which was interesting, because even ubuntu using some Gnome stuff on Kubuntu. I also noticed that they had backported panel hiding to plasma, which was a pleasant surprise ( given on Kubuntu i was used to having the panel on the left ). Menu icon was themed ( unlike Kubuntu ) and overall it felt really well put together. The Fedora themes are also beautiful, and i must admit that i've always disliked the default color scheme of Ubuntu and openSUSE always overdoes the green, so the blue of Fedora 10 is a rather nice change. Given that i was rather taken aback by a distro i've never given more than 20 minutes to, i figured i'd install it knowing that i could always go back to Kubuntu. The install was the simplest yet, even  easier than Kubuntu's which really impressed me. Simple process, done, and after a reboot, i had a Fedora 10 EEE. Again the boot process was covered up by the nice loading bar. Desktop speed was even faster installed, to be expected, and overall a great feel. Trying to install software wasn't as simple as on Kubuntu, given that the software installer is the rather new KPackageKit, but once i was used to it, it was relatively impressive. It still needs some work, but i have a lot of faith in the KDE team, so i'm willing to keep using it. One issue, for example, was that it wouldn't install a non-trusted RPM, so i was forced to do a command line install. Seems this is a known issue and i think it has to do with PolicyKit. On that note, Fedora has a really nice Authorizations dialog, allowing you to set things like that and grant the user whatever permissions are needed Generally the tools were just enough for my EEE, and the OS was the fastest so far. As far as KDE use goes, they did really well, by far better than Kubuntu and openSUSE. Although i miss YaST, Fedora makes me feel comfortable enough to not need it. I decided to try one more Live distro, Mandriva 2009.0, but that failed on boot, although i won't deny being slightly relieved that i didn't have to relinquish Fedora.

The result really surprised me in the end, but i have to say that Fedora is the best distro i've put on the EEE so far! The perfect tradeoff between speed and beauty ( with KDE 4.1 ), they have really done a fantastic job of making sure that the core elements are provided without losing any performance. I still need to retry Mandriva and openSUSE 11.1 ( not that factory nonsense ) to be fair, but i'm not convinced that they will be able to dethrone Fedora.

 

2008-12-23

Get Your Fresh OS on a Stick!

Recently i discovered an application that falls into a class of applications that stick in my mind for a long time. This includes apps like the SysInternals process manager for Windows ( because sometimes i like end task to end a task ). This application is called unetbootin and can be found here.

It is an app that allows you to install one of many listed operating systems onto a flash drive or potentially any disk. It makes the disk bootable, and comes with a list of most of the decently known Linux distros. And i say decently known, because distros such as Mint, CentOS, DSL, Puppy and others are included. It also allows you to download an iso image of your favourite distro and let unetbootin use the iso to create a bootable USB stick for you. It has a really simple interface and very seldom fails to do what you expect of it.

So why would i want something like this. Other than not caring to have lots of dvd's to burn, i also have an Asus EEE 701 with no external dvd drive, all i have is an old 1GB USB stick. So OS installation is not easy. Unetbootin allows me to change my OS as often as i want, which is exactly what i have done. The article following this will cover my adventures in switching OS... a few times.

2008-12-17

Making Games and Stuff

Since i am a game developer, it might be nice for any readers that i might have to see what i have done. I work for a dutch game developer Codeglue, and our first iPhone game hit the App Store yesterday. The game is on special at $2.99 until 5 Jan. Myself and Harald Maasen were the two lead developers on the project, with my main focus being on the graphics engine ( or at least that's what i'm most proud of ). The game is called HydroTilt, and its basically a 3D puzzle game based on rolling a water droplet around a level, collecting a "cool" block that turns you into ice, and carrying it to the finish. The levels become progressively harder with more puzzles to solve, and a skill based challenge in getting the elusive crystal to unlock a special treat. On the surface it sounds like a great idea, but it really needs to video to show how awesome this game is:

As you can see, the graphics are really easy on the eyes and the gameplay is intuitive. We at Codeglue are really proud of this game ( especially the game's lead designer Tom Rutjens ) and hope to see it do well in the App Store. The game is produced by Peter de Jong, and published by Publisher X. A review was done by Touch Arcade here, and i will probably post many more links to reviews of the game. if any reader does download it, i would greatly appreciate it if you could post a video of the credits on youtube, veoh or any other video site and send me a link. Other than having my name in it, there is something special about the credits ;)

2008-12-13

Lancelot, and the Knights of the Plasma Widget

As controversial as it has been, i've been a supporter of KDE 3's Kickoff menu ( as introduced by openSUSE Linux ), and hence a supporter of the new KDE 4 default menu. There are some vocal protesters, but i feel that this sort of menu is a huge leap forward in general, and something with the ability to type instead of searching through tonnes of submenus is a great relief to me. Adding a few tabs for useful items adds more usability and helps with the overall feel of the menu. While i have heard of the Lancelot menu/application launcher, i had never used it until today. So what is Lancelot? I think the best description requires some images. So i opened up KSnapshot and used some of its great features to just snap a picture the KDE default menu and then Lancelot.



KDE 4 default menu has the text entry bar at the top, allowing me to type just a few letters to find the application i am looking for. The tabs at the bottom allow me to select applications and browse the menu in a simple, yet sophisticated manner. Instead of cascading submenus all over, the menu that you browse to scrolls into the pane as the previous one scrolls out, keeping things small and ordered. The biggest disadvantage is that it is difficult to navigate up the tree of this menu quickly, as there is only a button to take you back up one level. The concept of breadcrumbs ( as with Dolphin or Finder's path bars ) would be great.

Lancelot has some similarities with overall appearance and feel. Also having several tabs for different things, although it does put the Shutdown/Logout items on the main canvas of the menu. Again, it has a text entry bar, allowing me to locate applications within seconds instead of browsing the whole menu. Another brilliant feature is that Lancelot has not only breadcrumbs, but also shows the previous menu in a compressed space next to your current ( you can configure the number of parent menus visible ). Here you have the option to select the menu you would like to be in from the breadcrumbs or the previous menus on the side.

As someone who is a stickler for usability and efficiency, this sort of project is really brilliant. The fact that there is competition between different menu systems is part of what gives open-source operating systems an edge over the commercial ones. The lack of alternatives in Windows and Mac limit their drive to improve the existing one, and result in the lack of efficiency in operating your desktop. While the days of Linux playing catchup to proprietary systems are gone, i feel that the KDE project is now the leader in innovation over all the platforms. Plasma is ever so controversial, but many great innovations have been, and the ideas in Plasma are going to be copied and change the desktop forever. Widgets like Lancelot are proof thereof, congrats to Ivan Čukić and the other guys working on it. The main issues people have with Plasma are to do with stability, and i still find the occasional issue ( normally because i still have old libraries ), but 4.2 is looking to be a release that might lead to mainstream uptake of the KDE 4 series. On another note, well done to the openSUSE team, the openSUSE Plasma theme is really looking great!

2008-12-11

More Pre-installs, More Market Share

On the continued note of discussion about Linux and what it's main source of expansion is, it seems that HP have made a deal with Novell. The intention is to deliver HP computers with SUSE Linux Enterprise Desktop ( SLED ) to schools and businesses. This is the first time that HP plans to sell pre-installed Linux since 2005, which is a long time in the Linux world. HP Software Product Marketing Manager, Lance Stevens, cites this decision being based on low uptake of Windows Vista and Netbook popularity. The company plans to offer the Compaq dc5850 at $519. This news comes from a link shared to me via Google Reader, the article is in dutch.

This comes just a month after the news that the Windows market share has dropped below 90%, i might wonder if this news might encourage other manufacturers to do the same. So what does this mean for the Linux community. Truth is that most Linux users won't buy this particular PC, but it is targeted at businesses and schools anyway. What it does mean is that, in my opinion, Linux market share is about to hit the 1% mark. And it will continue to head up, as long as hardware manufacturers do this. The advantages of this knock back onto the causes. As more hardware manufacturers decide to pre-install Linux, drivers for Linux will improve and more applications that are important to people will become available ( or better ), and so more hardware manufacturers will pre-install Linux. This is exactly the sort of effect that has been created by Netbooks and their ongoing growth. Linux drivers are at their most compatible, i was greatly surprised a few months back when i installed openSUSE 11.0 Linux onto an Acer Travelmate laptop and didn't need any drivers, special installs or hacks to get anything working. Everything was perfect out of the box, and that is really impressive considering the usual issues with laptop WiFi, Lan and function keys. Added to this, i haven't had any issues with Linux ( openSUSE and Mandriva at least, Ubuntu had some issues with two network cards back then ) on a desktop for years. Now with MadWifi available under GPL v2, it can be integrated into the mainstream kernel, adding more network support. Add to this a whole list of out of tree drivers being cleaned up and new ones being added by the Linux Driver Project, and things are looking great for the future of pre-installed Linux.

So where do these market share stats come from? Here! It's interesting to note that Apple's market share also jumped a percentage point in correlation with the iPhone sales boosts. Interesting considering that you need a Mac to develop for an iPhone huh? I wonder how many Mac minis are going to start gathering dust after the iPhone fad dies down?

EDIT: There are also stats available here ( thanks L4Linux ) which put Linux market share at 2.11%. This stats site has a smaller sampling area than the other one i listed ( 50 million p/m vs 160 million p/m ), but it is still interesting to see.

2008-12-08

Linux is NOT a Crusade!

After my article about Novell, i received at least one comment ( and more always come in ) which makes me really annoyed. Although i replied in a lengthy fashion, i feel it deserves its own article. It's something that gets to me, and i just don't understand the mentality behind it:

Why do so many people treat Linux as a crusade?!?

I really don't get it. I have stated my reasons for using Linux, none of which come down to some arbitrary ( almost religious ) crusade against Microsoft. I've been part of the free software community for a while, and have noticed that it seems to be more against Microsoft than Apple, which honestly i find really odd. I see free software as something that i don't pay for and that i can do whatever i want with. But i also need to be practical.

I don't hate NVidia because i have to install a binary blob if i want some decent 3D Graphics, nor do i blame the kernel developers, because what they do isn't easy, even with hardware specs.

I don't hate Opera because i can't see their source code. Sure, it'd be really nice, but the software costs nothing, and in my opinion, is better than the alternatives. Browsing is really high on my priority list, so i want the best experience i can get.

I don't hate Microsoft because they were early to the desktop OS market and Apple made some silly business decisions ( which they still stick to oddly enough ). I'm referring to their insistence of bundling the OS with the hardware. Had they decided to put in the effort and build a kernel to support anything, they'd probably be number one and Microsoft might be known for something else.

What i do hate is people who think it is their task ( or maybe righteous calling ) to hate Microsoft for having built a business out of their OS market, such that it is hard for anyone else to enter the market. That's capitalism people. Microsoft just conduct business in the way that almost any other company in a capitalist industrialized society does. I'm not so much into big business, i dislike all the trickery and deceit, but that's just how it is. If something else that is better than Windows ( in cost or features ) comes along, it will slowly gain market share, but for that to happen, people need to have a reason to switch. Cost and features is part of it, but so is community interaction.

Years ago i installed Mandrake ( now Mandriva ) Linux on my mothers home PC, and she loved it. But there were problems. She couldn't walk into a shop and buy any hardware, she needed to call me first to see if it would work. She also had issues receiving and sending certain files to friends via email, such as Microsoft Word documents. Your normal non-tech member of society finds these things to be an issue. It's not Microsoft's fault. But so many people in the Linux community love to blame them for it. As Linux grows in popularity, which it clearly is, more hardware manufacturers will strive to support Linux. And with forward thinking companies like Novell, document, service and protocol compatibility will slowly fall into place. The Wine project is another great idea, and allows people to run Microsoft Office and Adobe Photoshop on Linux. Personally, i have no need for either of those, but not one of the professional artists that i have worked with would replace Photoshop with Gimp ( even tho i prefer Gimp ). Samba allows for protocol compatibility, again making life easier to integrate a network of mixed OS. And there are some zealots out there saying, "But why mix them, you don't need Windows and Mac, just use Linux", but that's not the way it works in big business.

So why should i care if some people are getting a bit overzealous?

Firstly, it gives me a bad name. When i say i'm a Linux user, some people actually say, "Oh, one of those" or "Ok, i won't mention Microsoft" or even hide an XBox behind a curtain and put away their Windows Mobile phone. And honestly, i don't like that. If i were to buy a gaming console ( other than my Wii ), i'd probably buy an XBox. Shock, Gasp, Horror, Linux guy wants XBox. My reasoning is that out of the 3 big current generation consoles, Microsoft have the best community support. If i have access to a Windows PC, i can make a game and sell it on the XBox. Sony and Nintendo don't allow that.

Secondly, what might rise if some Tux Crusade destroys Microsoft? Linux doesn't have the market share yet, so it'd probably be Apple. I'm very convinced that on the scale of proprietariness, Apple rank higher than Microsoft. One OS, only Apple hardware, no attempts to disassemble anything, we can't try and install the OS anywhere, their EULA even prevented users from using their own boot camp ( no other OS on the hardware ), and i'm not allowed to talk about the rest. And in my opinion, i'd rather use the Windows desktop to the Mac desktop. Kernel, not so much, Mac is much more stable and less issues with malware and viruses, but the coming from a Linux background where i feel Windows isn't configurable enough, OS X doesn't even have a task manager/bar/window list. I can't even change the shortcuts, so after a day of work i come home and have to get used to Alt+Tab again, and Home and End actually doing what i expect. So i'd rather have Microsoft, who seem a little willing to bend to pressure, up there than Apple.

Thirdly, it maintains the general view of Linux as a geek OS. Bearing in mind that the people who shout loudest are most frequently recognized, i don't like the thought of the Linux user base of consisting only of a bunch over overzealous nerds. I've heard of shop assistants say, "Use Linux if you want to write your own drivers", which is the rubbish that prevents adoption. If it's not for everyone, then the free software movement has failed. Anyone should feel comfortable using it in the way they want, and as a Linux contributor, it's part of my job to assist people in feeling good about using Linux, not complaining that things don't work as they should ( like myself and my colleagues do when using Mac OS X ).

And finally, it scares people. I've seen articles where people refer to Linux as a cult. People warn of getting in the community, saying that its like a secret organization that you need a special handshake ( or maybe some driver code ) to join. This is not good for Linux as a product. Maintaining a cult status will always scare people ( you may think the Jedi cloak is cool too, but the girl next door is really afraid of you ), so at some stage someone well known needs to come in and dispel these myths. And when Microsoft become the biggest seller of SUSE Linux, these myths move away quickly.

This rampant crusade does nothing but tarnish the image of the Linux community and really prevents people from moving forward. Maybe i'll get zealous about it when i can visit a Flash heavy site in any Linux browser and not fear the consequences, or walk into a shop and just buy some hardware knowing that it'll plug and play, or when i can buy a game that'll just run. 

And for that i'm very thankful that Novell have a Silverlight port, because it means that i don't fear visiting some Silverlight sites. I'm thankful for the Linux Driver Project, because maybe soon i won't have to look up hardware details online before buying something. I'm thankful for Wine, because i can play Red Alert 1, Starcraft, Diablo 2, and many other games. I'm thankful for Mono, because the .NET framework doesn't suck, and if i do need to write something that it is suited for, i can without buying Windows. I'm thankful for Canonical for making the community that develops for Linux bigger. I'm thankful for Trolltech, because they helped make KDE the next gen desktop that it is becoming. And all of the people behind these things deserve credit. Because they don't just sit at home and complain about the unfairness of business in a capitalist society, and they accept that it is merely the way it works. And maybe all the Microsoft haters should stop trolling the internet for porn and places to spread their word, and actually get involved. Make an icon, put up a banner, write an unbiased article, anything to make a difference to the community, and invite new users. Make Linux more friendly. Help a new user. Because at some stage, we were all n00bs, and it sucked. The constant banter about how evil Microsoft is doesn't benefit anyone, so stop wasting time on it and do something productive!

2008-12-07

Novell and what they bring to the party

It's almost time for another openSUSE release, and i'm sure there will be many articles written about it in the near future. openSUSE 11.1 plans to bring a whole bunch of new features to the desktop. But what about the company behind the SUSE logo? Novell get a lot of bad press, but do they really deserve it? Not that many people know about some of the projects Novell are behind, so i thought i'd give it a bit of research and find some of the forward thinking things that Novell is doing. This is just a small list of the projects that i thought to be important, any additions are welcome. Some of these are well known, but i do hope to surprise you...

  1.  Mono. "is a cross platform, open source .NET development framework". Simply put, ASP.NET, C#, and Winforms can all be run on Mac/Linux/Windows with Mono. They can also be developed ( using Monodevelop ), allowing for more people to use Linux to develop server applications and all the other stuff that people buy Windows licenses for. If i was head of a software team ( maybe one day :) and i had to do something in .NET, i'd probably opt to use Mono. Most of the Mono work has come out of the infamous Microsoft deal, but how can this project be a bad thing?
  2.  Moonlight. "is an open source implementation of Microsoft Silverlight for Unix systems". Based on Mono, Moonlight 1.0 is a Silverlight 1.0 compatible plugin, finally bringing a decent Flash competitor to the Linux desktop. Why is this a good thing, encouraging use of a Microsoft standard? Because Flash for Linux sucks. And without competition why should Adobe make it better? Silverlight is based on .NET and much better technology than Flash. I'm not a C# fan, but it's so much better than ActionScript. And since Novell have access to some of Microsoft's inner workings, Moonlight is actually really good.
  3.  Go-OO. Basically Novell's spin of Open Office. It's an attempt to take Open Office from the proprietay grip of Sun and give it to the community. Sun have a very bad history with community projects, and while they are pro open source, they don't normally give the community freedom to contribute to the projects. It goes without saying the Go-OO has better Microsoft compatibility. It also features SVG, VBA ( Visual Basic ), rich fields, and multimedia support, 3D transitions, and an optimized Calc solver. Most of these are community add-ins that Sun rejected.
  4.  Linux Driver Project. Technically it was started by GregKH, a kernel developer, who wanted to do this in his free time. Novell ( his employer ) thought it was a great idea, so they decided that he should do this as part of his job. The aim of this project is to create Linux Kernel Drivers ( under GPL v2 ) for different devices. Hardware manufacturers can contact this group, and request that a driver is made. The group is willing to sign non-disclosure agreements, as long as the final driver is GPL v2.
All of these things are of great long term benefit to the Linux platform. Whether it's just more compatibility with Microsoft or making products for Linux better, they do more than their share of work. The idea of having .NET available on Linux is fantastic, and while some people are against it, it's very much like Wine in a sense. Businesses and individuals are far more likely to adopt a Linux distro if there are more applications that they are comfortable with. I know many people who would use Linux if they could play their games, and many businesses who would if they could run their software or use their hardware, so any steps to making this happen are welcome. And what's more, is that this compatibility is free.

2008-12-04

Opera 10 Alpha 1 and testing the Acid

Opera 10 alpha 1 is out... and guess what??

It really is an awesome release!

2008-12-01

Opera 10, another great update, another cheesy name

Opera, my favorite browser, is heading toward another release. Opera 10 is due sometime next year, but word has it that the first alpha will be out in the next 2 weeks!! Of course there are many reasons why people use Opera above another browser, Speed Dial, Mouse Gestures ( seriously, i can't live without them anymore ), Opera Link ( sync of all the important stuff ), Custom searches and a pretty decent mail client and feed reader. So what are they adding this time?

Of course there is always a bit of an interface upgrade with Opera, as is expected for every major release. We saw this for 9.5 and i get the feeling that it is a taste of what 10 will look like. The are also throwing in an upgrade of their layout engine, Presto. This means faster rendering, and as always, more compatibility. Always more widget enhancements, and that little bit more security that they always give you in Opera. Two of the big new features that are expected are the inline spell check ( useful for people who still suck at typing like myself ), and an auto update feature!

Oh, and the name... Peregrine.

UPDATE: As confirmed by Opera on twitter first alpha comes tomorrow! I was guess next week, but i'm glad i was wrong!

2008-11-27

Linux, a habbit or a cult?

It's no secret that i'm a Linux user. Most of my blog traffic is to Linux related pages. But what makes someone prefer Linux over Windows or Mac? I've debated this with colleagues on many occasions, and there is no clear answer, but there are many outcomes of these debates. Most people i know are Windows users, their main reason being for gaming. Since i work in the gaming industry, this should be no surprise, but with the mass movement toward consoles and away from pc as a gaming platform, the reasons for sticking with Windows are slowly falling. Projects like Wine assist gamers who prefer a free OS, and are only getting better. Why do people who use Linux daily struggle to work on another OS? What is it about Linux systems that make people prefer them. Here's what i've come up with:

  1. Responsiveness: It's hard to describe. At work we started using Macs as we have had a Mac based project to work on. After about a month of not using a single PC running Windows, i booted onto the Windows partition on my laptop ( to check something ) and was swearing within seconds. Desktop was loaded, but i couldn't do anything. Everything i clicked on had to wait for some other process to complete. Everytime i loaded something new i was forced to wait for my application to become responsive. Mac and Linux don't suffer from this. On several occasions that i have had an unresponsive application, i will just often leave it to run in the background while it recovers/dies, and continue work. Unless it's a core process, it doesn't bother me if an app slows down.
  2. Kill: It works. In Windows XP, the End Task is a horrible failure. Yes, there are applications which are a must, like SysInternals Process Manager, that allow an instant kill, but i like an OS that does it without addons. Mac is almost as bad, with its persistent applications, it's sometimes impossible to to kill something properly, and the Kill Application window is still something that needs to be launched. Which brings me to my next point...
  3.  Command Line: I'm far from a hardcore command line user. In fact, if there is a graphical tool for something i'd much rather use it than the command line version. I've written less than 10 bash scripts in 10 years of Linux usage. But i can't live without it. As a programmer and "technical" user of any device, i need that immediate control. In Linux i can kill an application from the command line. This is useful when i've run a buggy fullscreen opengl application ( normally my own ). Just hit Ctrl + Alt + F1 and i have a terminal with which i can kill my rogue app. And almost every core Linux app has command line options, which makes it an OS that doesn't need a graphical server, so if you know what you're doing, you can fix almost any problem without reinstall. Leading me to number 4...
  4. Modularity: I can add and remove almost any part of the OS, excepting the Kernel. A common mistake which has become daily lingo, is what Linux means. Linux is the Kernel. Nothing more. And that's all it needs to be. I can add and remove features as i please. I can change my desktop manager ( KDE, Gnome, XFCE, etc ). I can decide to write my own display manager to use instead of X.org. Almost all of the components above the kernel level can be changed, making it the much more flexible and giving immense choice. This also raises awareness about different products, and allows users to experiment with what they think is best.
  5. Freedom: Beer and Speech. I've never actually bought Windows. I've got it with PCs, or used it at work on licensed PCs, but not once have i walked into a shop and payed for it. And nor would i. The benefits of a commercial OS don't warrant the cost. The only thing that i can do extra, is play some games that don't work on my consoles or through Wine. There are no killer apps for me. In my opinion ( merely speculation ), most people use Windows for 2 reasons. They don't pay for it directly and they don't install it themselves. If people had to walk into a shop and buy a copy of Windows to install on their new PC, there would be a lot more complaints about how complicated it is. The biggest hurdle for Linux, is getting it onto PCs, and so the installation process is greatly simplified, much more so than Windows. Apple have completely thrown this issue out of the door by making the hardware they run the OS on, so you will never have to install the OS. Downloading and installing Linux is one of the freedoms of using it. I'm not tied to anything, i can change distribution and still keep my app settings. I can download and install a new distro every 4 hours if i want. I don't have to consider cost, and i'm not infringing on any intellectual property. I can also change my software without thinking about what it means. Everything i have on my install is free, so i don't have to think about getting that image editor at the store, or paying for that expensive office suite. Furthermore, as a technical user, i can see all the configuration files, and source code, and change it to my liking. There is no EULA or restrictive license holding me back from doing this, and no matter what i do on my OS, i don't have to worry about breaking the law. That's freedom.

Yes, Linux has its disadvantages. Driver support is a real conundrum, since the kernel supports more devices than any other OS, however the devices it doesn't support are big sellers. With more preinstalled Linux distros and more big companies like Novell and Canonical pumping money into driver development, this problem is slowly going away. There are also apps which people class as killer apps, mostly games. With Wine, Photoshop and Microsoft Office will work, so those are no longer issues, and in my opinion, the free alternatives such as Gimp are just as good if not better in some ways. Slowly these killer apps are falling away, and preinstalled Linux on netbooks is showing that Linux is desktop ready.

2008-11-23

Android, the next generation

I have not written this week as work has had its toll on me. The week has however ended on a great note, first snow of the winter here in Rotterdam. I will upload some photos to my public picasa album ( accessable from the right ). Although most of my current development has been iPhone/iPod touch ( and i will highly publicise the games i have worked on when they arrive in the appstore ), the Android platform interests me a lot. Since Google have opened the Android Market for developers, there is clearly a lot to be done! From a professional level, i can't say much, but on a personal level i do have something in the works for Android... just waiting for the G1 to reach Netherlands!

On that subject, the G1 really is a bad show of Android. So, is it really worth the wait. Being an open source supporter, i want an Android based phone. As much as the iPhone is amazing ( and the performance you can squeeze out of it in a 3D game is ridiculous!!! ), it's about as commercial as it gets: NDA's, closed source engines, talks i can't talk about, , etc, etc. So if the G1 sucks, and i want Android, what is there to look forward too?

After doing a little research, this is what i've found:

  • Samsung: Q3 2009 Been in the Android party for a while now, with not much to show. My guess would be that the QWERTY laid out keyboard in the android emulator is something close to the Samsung concept for an Android phone, but i'm very sad to see no "leaked" images.
  • LG: Q3 2009 They have said by early 2009, but my expectation is that they'll release about the same time as Samsung. Again, late to the party considering they were first up with Samsung and HTC.
  • Asus: Q2/3 2009 This is a shocker ( for me at least ). Yes, they have announced a phone based on Android. And, they will probably beat the two manufacturers above to the chase. As i type this from my trusty EEE, i can say i'd get one!
  • Motorla: Q4 2009 ( yes that means Christmas ) Seems that they have just thrown 300+ people onto their Android project. No one has a clue what it looks like, and although they are speculating that it will be ready for Christmas, at this rate it might be early, maybe trying to compete with the LG/Samsung crowd.

So will any of these dethrone the iPhone? I doubt it. Why? Because currently ( sadly? ) an iPhone is the cool thing to have, and good marketing and design is what sells phones, not open source. From a developer perspective, the iPhone is a monster. All i can say is that we've pushed the openGL so far in our games, it's pretty incredible. Again, when some screenshots are legally publishable, this may be the first place you can see them. My biggest gripe about Android is that the apps have to be written in Java, and that makes it inherently slow. The video on the Android developers blog showing off a bouncing ball at 40 fps is kind of pathetic when you get a feel for what the iPhone can do. But that's just part of what makes the G1 a disappointment. Of course there is the proprietary headphone port and the useless 1GB memory card. This really isn't 2004 guys!

2008-11-14

Widgety goodness

If there are readers out there that follow my blog, you may have noticed the Widgetize button on the side, and potentially wondered what the frack that is. If you're using the Opera browser, you'll also get a little cog icon in the address bar. These are both links to an Opera widget for this blog!

So here's the details. I'm an Opera user, and love a lot of features. One of my new favorites is the user friendly RSS feed viewer, where when you click on a feed, instead of auto trying to add it somewhere, it gives you a really nice layed out version and asks whether you want to subscribe. Another feature that is growing on me, is their widgets. Specifically, the Opera Twitter Widget. Since i'm a twitter user i think it's great, and unlike desktop twitter gadgets, this is more easily accessible ( being another window ). Then i found this, a simple online wizard to widgetize your site! You can set up a wdget for many blogs or even your youtube gallery. So i followed their instructions, and now Opera users can get my blog as a widget.

Well i thought it was cool. What would be awesome is further intergration of widgets into Plasma ( KDE 4 ), by adding Opera widget support... wonder how easy that is.

2008-11-13

Web Series, a new Frontier

Streaming media is not even close to a new trend, but amidst the mess that is copyright law in the USA, and the continued annoyance of geeks like myself and my wife at shows aimed at the sub 100 IQ population, a somewhat new trend of free web series is growing. Sometimes they're professionally done, with Hollywood actors, and sometimes not. Some of them have great production quality, and others look like awkward home videos. In general, their market is geeky and tech savvy, which makes great viewing for some of us. I'm a bit fussy about what i watch, and the production quality must be up to a certain level, so these are my top picks:
  •  Captain Blasto: My wife found this yesterday, and what a classic. The idea is simple, but great. He's a lonely comic book geek who lives at home with his mom. One day he decides that he should become a super hero, so he gets his friend to steal something, and he, Captain Blasto, comes to the rescue. A great idea, good production quality, and decent acting!
  •  Sanctuary: Its Amanda friggin Tapping!!! What, you don't know??? Ok maybe i'm a bit of a Stargate fan, but she's Major Samantha Carter from Stargate SG1. Great concept, great production quality, and great acting ( not just Tapping, the others are great too ), an all round winner. Basically, she ( Amanda Tapping ) runs a Sanctuary for mutants and monsters. Great fantasy/sci-fi mashup.
  •  Galacticast: I love satire and parody. I love sci-fi. Combine these two things, and i'm pretty happy. That's exactly what Galacticast does! A lot of the production quality is good ( definitely doesn't annoy me ), and most of the actors are really talented even though Rudy Jahchan tries a little too hard in my opinion. Their spoofs are awesome, and some amazing sci-fi references. This is a must!
  •  Legend of Neil: Ever played/seen/heard of Legend of Zelda? Legend of Neil might be for you. Neil is playing Zelda, and decides to perform auto erotic asphyxiation ( not kidding ) on himself with the game controller cord. Suddenly he wakes up in the world of Zelda. Although there is some "gross humour" in the show, most of it is classic to any one who enjoyed Super Nintendo and Nintendo games. Good production quality, and acting is great, especially with Felicia Day. It's probably second on my recommendation list, closely following a related series. Namely:
  •  The Guild: Felicia day heads up a really talented cast, with amazing production quality. It's about a Guild from some unnamed ( *cough*WoW ) MMORPG. It follows there real lives, and interactions outside of the game. The show is just brilliant in general, and i'd recommend it to anyone who plays or has played games. Top stuff, and we can only hope to see more like this.
  • A few notes: There are some that i didn't mention but know about ( Nocturnal, Tiny Chicken Machine Show, Afterworld ), and i'd appreciate people adding comments with some that they know about and i haven't listed. This is an industry where we are it's primary market, and without our support, it might collapse, as Eddie Izzard says, like a flan in a cupboard. I did NOT mention Dr Horrible. I have seen it, and enjoyed it, but after the initial preview, it was not available outside of USA. This disgusts me, and the creators should be ashamed. Yes, it was good, but in my opinion it falls under that same copyright mess as most Hollywood stuff.

    2008-11-10

    Free as in beer, but what about the liver transplant?

    When it comes to business, it's all about cost. Software is certainly no exception. From a business point of view, what does free software mean? If it's just free, and i'll maintain the simile of free beer, why isn't every art department using Blender or Gimp? Clearly because in their eyes, the actual cost of using free software is more than purchasing Photoshop or Max/Maya/XSI. So what are the pro's and con's of free software, and how do we calculate the actual cost of software ( off the shelf or from the web ).

    What often isn't counted in the calculation of software costs is support. Big commercial companies love to slander open-source community projects in this regard, especially when it comes to operating systems and database servers. Their main point is, if it breaks, who's gonna fix it? And it's an important point, how does a large business justify getting software when there isn't a way of making sure that when it does break on them, that there is someone to shout at. And in my experience, commercial support doesn't get things fixed quickly.

    In the open source and free software ( as in beer ) world, there are many options. You ( as a business ) can go it alone, just download free software and if it doesn't work, try another alternative or submit bug reports. These often have slow turn around time, and none of the management pressure is lifted since there really isn't anyone to shout at for the buggy program, it is after all free. You can buy paid support from a free software vendor, for example Canonical or Novell. This is normally expensive, and often the cost doesn't justify migrating to a new platform ( all the training costs because most end users actually need to be told by a $200 per hour professional that the menu looks different ). Or you can branch. If the software is under an open source permissive license such as GPL, LGPL, MIT, BSD, or many other licenses, you can modify the source and use the new product. It really surprises me that more companies don't opt for this. Maybe the fear of actually having to work on it is high, but hiring a freelancer is really easy to do these days, and giving them a week to fix a software bug is definitely viable.

    Deciding which of these options depends on the software that we're talking about. For something like Wine, i'd be more likely to pay CodeWeavers to add support for <insert app name>. For something like libpng, i'd probably take the fix it yourself option, since the code base isn't so large and the feature set is pretty complete, so anything i want to add is probably specific to my task. It's also important to take into account that if i'm using libpng, then i'm probably in a development department where people have the ability to fix it. For software such as Gimp, the first option would be the most likely, since the code base is huge, and the feature request list is also somewhat high, although the features that are there are very complete and work well.

    But how do we give businesses a price to attach to these models? If the sales pitch is "Hire someone to fix it because we won't", i can't see big companies who need reliable systems making that choice. No matter what, they will always want to know where the long term benefit of any purchase is. Saving money on free beer might cause more problems in the long term.

    After giving it a little thought i propose an equation to define the actual cost of software. If one already does exist, i'd be interested to know, but this is what i came up with. Some refinement might be needed ( especially since it's purely linear relationships and i might have forgotten something ). So here goes:

    Total Cost = Sum over all features( Need for feature * (1 - Usefulness of software's implementation of feature ) * ( Support Cost of feature + Base Cost of feature ) )

    A bit clearer when replaced with symbols:

    Total Cost = sum( N * ( 1 - E ) * ( Cs + Cb ) )

    Where:

    N is the Need for that feature between 0 and 1 ( 1 being highest )

    E is the effectiveness of that feature ( where 1 is the most complete implementation )

    Cs is the support cost of the feature over a given time period

    Cb is the base cost of the features ( as part of a complete product ). This is also over the given time period.

    So here is an example:

    Some commercial package

    $3.59 = 1*( 1- 0.9 )*( $5 + $10 ) + 0.8*( 1- 0.9 )*( $5 + $10 ) + 0.6*( 1- 0.9 )*( $5 + $10 )

    Free package

    $2.88 = 1*( 1- 0.6 )*( $3 + $0 ) + 0.8*( 1- 0.6 )*( $3 + $0 ) + 0.6*( 1- 0.6 )*( $3 + $0 )

    In the above example i have given the general business opinion of free software. Lower feature effectiveness with no layout costs, but slightly lower support costs. In my experience, free software's biggest problem is that the interface isn't the same, or as easy to use as their commercial competitors. I have generally found that the features that you find in software such as Gimp or Blender are on par with their commercial counterparts, but the artists i have worked with claim they have no clue how to use Blender ( although i found it pretty intuitive, i guess the programmer mentality came out in the UI ).

    I'd appreciate suggestions on improving my equation, as i do intend to try and put it to use in my own life and work.

    2008-11-08

    PolicyKit, keeping you in check

    On my default KDE 4.1.x ( unstable ) install, mounting DVDs or CDs has never worked. Tonight i decided to find out why. The problem that occurs is that when i insert a DVD, CD or any other removable media, i can't access it ( without doing an old school mount from command line ). When i click on the media in Dolphin, i get and error along the lines of "org.freedesktop.hal.storage.mount-removable no <-- (action, result)". Turns out this is a PolicyKit issue, so i decided to actually find out more... first here is the fix:

    Open up a file editor as root and edit this file: /etc/PolicyKit/PolicyKit.conf

    My file had not much other than a nice little header and the basic xml:

    <config version="0.1">
    </config>
    Adding the following lines inside of this config tag fixes the problem:
    <match action="org.freedesktop.hal.storage.mount-removable">

    <return result="yes" />

    </match>

    Another thing that i had to do ( you might too ) is launch an instance of a ConsoleKit session. I did this by running from krunner:

    ck-launch-session

    And that was it, thereafter i could install my newly purchased Command & Conquer - The First Decades DVD ( thanks Wine!!! ). As my wife took control of the other laptop to play the games that i just installed, i decided to find out what exactly this PolicyKit does, and why it is needed.

    What was always my understanding of how Linux systems allow users to access certain devices/services, was by pushing users into a group containing those services. I might be way behind the times on this, since i am an openSUSE user, and the PolicyKit page maintains that Debian systems rely on group membership, while RedHat systems provide a mechanism where a local user can enter a root password to access these services. There are many problems with both of these methods, namely:
    • Group membership is set no matter what. If you are in CDROM group, you have access to everything to do with CDROM, there is no deeper level of control.
    •  Using sudo to access an application means ( sadly ) that all the libraries linked to that application are run as root. Other than needing to store preferences for these libraries as root user, this also might open up some seriously large security holes. Imagine we need to sudo our dvd writing app, and it turns out that its written in GTK using pnglib. Now some issue is found in pnglib or GTK that, if run as root, can really allow malicious code to be executed remotely. You get the point.
    • There are different ways of doing this policy management. Say you're writing a new window manager like, and you need access to certain privileges. But you want your window manager to work on all distributions. How do you deal with the differences, case based programming sucks.

    Enter PolicyKit. It basically defines a way for applications to request access to different services, devices, etc. PolicyKit defines the existence of Mechanisms and Policy Agents. A typical user will interact with the agent. The Agent might request access, through some form of Inter-Process Communication ( IPC ) - now days D-Bus, to a system Mechanism, for example HAL or NetworkManager. The action requested might be something like requesting to mount a removable media. PolicyKit lets the Mechanism know whether the Agent should be allowed this access.

    Another great thing about PolicyKit, is that the policies are defined in XML, something completely underrated and underused. It's simple to read and understand, and very simple to add your own policies. And of course, with libraries like TinyXML, it's really simple to code. You can find more details about PolicyKit here. As systems like Windows start their venture on User Account Control ( and screw it up the first time ), Linux is making a huge move forward to develop a long term, extensible manner of dealing with these problems. The innovation never stops!

    2008-11-04

    Save the Developer, Save the World Wide Web

    The developers are not saved! Tonight i thought i'd look into adding some more style to my blog, check up some of the code and make sure i still have an "If you're using IE 6, upgrade now to save there developers". A while back, this campaign was launched, an organisation called Save The Developers. They hosted a small javascript file on their server which anyone could link to their site to pop up a warning to users with IE 6. Fantastic idea. As someone who has done some commercial web development, i know the pain and suffering web developers go through to get a site working in Firefox, Opera and IE 6 & 7. I am a firm believer of standards and maintaining a set of global rules for formats and protocols. ISO and W3C don't exist for nothing, and if anyone Microsoft have a reputation for ignoring them. So on my blog had a link to their site, so i thought i'd check it out, maybe they have updates since i was last there, 8 months ago. I was redirected to Microsoft's IE 7 Download Page. Try it here.

    I could speculate that they just stopped paying for their hosting and just shoved in a URL redirect, or the conspiracy theorist in me could say that Microsoft shut the down, but i don't know. There is no trace of them. Google searching seems to reveal nothing. Just gone. Obviously something happened, but i'd like to know what. If anyone knows, or if any of the people involved in the campaign are still out there, please let the internet community know what happened.

    A question that i have is, why does it link to Microsoft's IE 7 page and not a Firefox or Opera or <insert other browser that was around when they vanished>? If the campaign was about "Saving the Developers", then why IE 7? It's not as bad as IE 6, granted, but it's far from Konqueror, Firefox, Chrome or my favourite, Opera. I'm also going to put in some effort to publicize the fact that the campaign is gone, and i will make a plan to host a javascript file on my site that behaves in a similar way to the one that they had.

    Maybe concerned people should start a "Find the Developers" campaign, if for no other reason than to ask... Why IE 7?!?

    PS: Found a similar project, and this time i'm going to make sure that i host the code too, just in case they vanish. Just insert one of the following snippets of code in between your <head></head> tag in the required HTML page

    For the code that warns IE 6 users but still lets them browse:

    <!--[if lte IE 6]> <script src="http://sites.google.com/site/dgoemans/no-more-ie/StopIE6_Tolerant.jscript" type="text/javascript"></script> <![endif]-->

    For the code that completely prevents IE 6 users from viewing your site:

    <!--[if lte IE 6]> <script src="http://sites.google.com/site/dgoemans/no-more-ie/StopIE6_NoMercy.jscript" type="text/javascript"></script> <![endif]-->
    I'm using the no mercy script, since i'm sick of being turned away by sites because they don't like Opera.

    2008-11-03

    The Linux Four and the heat they pack

    It seems that Linux distribution releases are getting closer together, or maybe i'm just noticing it now. Remembering, my compatriot, Mr Shuttleworth's call for coordinated releases, it might be an obvious question to see the differences in packages and their versions. So after doing some research, this is my roundup of the current latest releases or the soon to be released distros. I've decided to target what i consider the big 4. I'm sorry if some other distro you feel should be in there is left off, but these are, in my opinion, the big trend setters, the releases that seem to have the most impact on what everyone else does.

    Ubuntu 8.10

    Mandriva 2009

    Fedora 10

    openSUSE 11.1

    Kernel version

    2.6.27

    2.6.27

    2.6.27

    2.6.27

    KDE

    4.1.2

    4.1.2

    4.1.x

    4.1.2

    Gnome

    2.24

    2.24

    2.24

    2.24

    Open Office

    2.4.1

    3.0

    3.0

    3.0

    Wine

    1.0.1

    N/A

    N/A

    1.16

    Mono

    1.9.1

    N/A

    N/A

    2.0.1

    Gimp

    2.6.1

    2.4.7

    2.6.x

    2.6.1

    Firefox

    3.0.3

    3.0.3

    3.0.x

    3.0.3

    X.org

    7.4

    7.3

    7.4

    7.4

    N/A: Not available. Sadly neither Mandriva, Ubuntu nor Fedora have a detailed list of all major apps so without actually booting or installing them, i don't have any way of finding the missing details. Web searches tend to reveal more community discussion about people having problems with different app versions than any decent info. So if anyone has the exact versions at release, please do let me know so that i can make my list more complete.

    I'm not going to make any inferences from this data, or shout slander about the lame Ibex, or too much green in the Novell distro, but the data is interesting nonetheless. What i will say is that Fedora has peaked my interest for the first time ever with their improved startup system. Another big appeal for me, is Mandriva's publicized out-of-the-box Asus EEE support, which might be worth a check out ( being my first Linux distro, Mandrake, now Mandriva, will always have a special place in my heart, probably between belgian beer and dutch cheese ). Ubuntu is packing a BBC compatible Totem, which is pretty nice considering that i sometimes listen to BBC Radio 7 online ( it's great british comedy, free to listen to ).

    openSUSE will probably remain my primary distro though, partially because the pull of One-Click install is actually hard to move away from. With a new beta due to be released today, anyone who is interested should check it out. 

    Overall i can see a lot of innovation, all with a move toward smoother booting, and much better end user app integration. It's pretty clear with this round of releases that Linux is far from playing the end user catch up game it used to, Apple and Microsoft really need to start keeping up with the amazing work coming from these pack leaders.

    PS: I'm sorry if the table is broken, but it took me an hour to get it to just appear in blogger's ridiculously pathetic editors. You'd think that pasting valid HTML code that displays correctly in a browser into a raw HTML editor would just work. Blogger really is a bit fail.

    2008-11-02

    RSS and your daily news

    I was going to post the next in my programming series tonight, but i haven't had time or access to the laptop with CodeBlocks on it. I'm also off to an iPhone developer conference with work tomorrow, so i can't stay up too late blogging. It will be posted sometime during the week provided work doesn't take up too much time. So instead today i pose a question to an y readers that might follow my blog. And if you do follow my blog then i'm certain we share some interests, so the question is this:

    What RSS feeds do you read?

    This is my list:

    1.  Slashdot: almost every geek reads it. General news about science, computing and sometimes other big world news. Lately i find they are a bit slow on the up take, and the community tends to be like reddit or digg, but with geeks. All pushy and don't let any external news get in. But, still good enough news to warrant an RSS.
    2.  OSNews: simple site with a focus on latest operating system news. Often has the latest tech stuff a day before Slashdot. The continued updates about a lot of interesting OSes is always good, since i'm always looking for new stuff to try.
    3.  A few of my favourite things: A great blog about sci fi and science in general. Often has the latest Stargate and Lost updates. Also has some really interesting links and stories.
    4.  Worldly Weasel: A good world news blog, with good humour.
    5.  xkcd: An awesome web comic. I love geeky jokes, and as someone who majored in math i really enjoy some of the hardcore math humour.
    6.  Indexed: Another geeky comic, but very different to xkcd. Always graphs or ven diagrams, often making great social comment.
    7.  Boy on a stick and slither: yet another web comic. Somewhat cynical and dark, just my kind of thing
    8.  Explosm: A really disturbing web comic. Sometimes i ask myself why i read it, and that day will be a really great hilarious strip.
    9.  The Daily Mash: fantastic satire site, mostly making direct comment on stories published that day by the BBC. Some stories are really hilarious, but some required more knowledge of Britain than i have.
    10.  Wine Project: being a big fan of the Wine Project, i like to know when a new release is out so that i can download and install.
    11.  Digsby Blog: Updates from the Digsby project. An awesome free IM client, which i only use at work until the Linux version comes out. But it's more feature packed than any im client i have used, and doesn't feel bloated in any way.

    Thats it. I didn't realise i read so many feeds, but its great to catch up with what's happening out there over my first morning coffee. Please do post a comment with any feeds you might get, or check out ones that i read to see if you like them. If you're using Google Reader to check out RSS feeds, it's great to share feeds if you just want interesting info from feeds your friends read.

    2008-11-01

    Cloud Computing, drifting back to the future

    Cloud Computing is a buzz word at the moment. It's a method of the future, and the past. What a lot of big trendy "tech" news sites and even more mainstream news media don't realise is that Cloud Computing is Mainframe computing on a larger scale. And the only reason they're making a big deal out of it now is because Microsoft, Apple and Google are making a big deal out of it.

    Online services have been around for a long time, but the main stream of internet users haven't paid any attention to the inevitable wave of modern centralised computing. I could list a large group of people that i have worked with directly in the programming industry who don't use RSS Feeds, have never synchronized browser bookmarks or never use online apps such as Google Docs. And those are tech savvy people, who have just chosen to ignore web services. But what is new about the concept of online services? Surely it's similar to the old concepts of a mainframe, but on a larger scale? All "Cloud Computing" does is shift our applications from our computers to the web, when back in the 70/80's the applications were on an application server.

    It's an old concept, yet now it's becoming a buzz word ( i hate buzz words ). The cause of this? Mostly due to Microsoft making a Windows Azure announcement, and the continued hype of MS Live services. Of course Google and Apple have a play in this too, Google's App suite has been around for a while, and due to Microsofts pricing structures, it hasn't been doing to badly. Apple have been launching more online services, iTunes is heavily web integrated and they also have an iDisk in OSX 10.5. So what's the big deal? Why can't people just start using RSS feeds, Web Widgets and online services? Why does it have to be formalized with closed platforms that are not that exciting. 

    Of course maybe they just don't excite me. Maybe its because services like eyeos have been around for a few years now and you can even try out their online trial here. This interests me. It's a full operating system platform where you have access to an entire application suite from your web browser. You can use it online, or download it and deploy it to your local webserver. Imagine a company run where the pc's booted only into a web browser ( from bios, splashtop style ),  and offered you a login within 2 seconds to your OS. An OS that remembers your settings, saves your files and even allows you to play a game or two if the system admin allows. This is what excites me about Cloud computing. It's the freedom to do stuff like this, not to have locked down commercial platforms. The move to online services is about consumer freedom. It's because we don't like paying for MS Word, and Google  docs allows me to continue writing my document on my netbook from a Cafe in town. It's because i might want to know what my friends back in South Africa are doing ( especially the <insert slander here> that never email me ) and Twitter is great for that.

    So what are my "Cloud" picks? Well this is what i use and why:

    1.  Google Reader: RSS is amazing. i no longer waste time browsing sites for stuff i want to see, i can now just get info from where i want it. it's also brings you new stuff so you don't have to check for new stuff. Comics like XKCD appeal to me, so instead of remembering to look at it every other day, i just get a feed. Why Google reader then? Because its a social app. I share feeds with friends, and they share with me. It means that i get new info from my friends and its always good to see what they read. I also follow feeds from my wife's blogs, and if any of my friends had, i'd do that too. The fact that its online means, i can get it everywhere, instead of having to have new app installs on every device. If Opera added a sync feature to it's RSS reader, i might just use it, although the lack of "share" support might be a deal breaker.
    2.  Twitter: although i stated above that i might use it so i can see what those "we don't keep in touch" friends are doing back in SA, thats not why i use it. None of them use Twitter. But, i do use it to keep up with the Opera community, KDE community, follow one or two interesting people, and my wife and some of her friends. It also introduces me to new concepts ( something i love ) and i find out so much from Twitter.
    3.  Google Sites: it's not a really well known one, but with your Google account you can create a wiki style web page. I use this mostly for sharing files and info and if i have something to upload, i'll put it here so that i can download it in a different location. It's easier that mailing it to myself.
    4.  GMail: i almost sound like an add for Google, but i only use their stuff because its good. When the first android phone becomes available here in the Netherlands, i'll definitely be inline to get it! GMail is, in my opinion, better than most other web based mail services. Yahoo! and Hotmail are atrociously interfaced with adds everywhere. Fastmail was great in South Africa because of the useless internet speeds, but no longer appeals to me, due to the lack of online space. I don't have my own server so there is no option for local mail, and i like to have access to the same mailbox everywhere, so when Opera's mail client offers account sync under Opera Link, i might just consider it.
    5.  Opera: why specify a browser? The browser is the portal into which you have access to all the online services, so why not! Opera is my personal preference as a browser because it's quick, and has the most up to date features. On install i have mouse gestures, trash can, history indexing and speed dial. I never need to search for plugins to do what my browser should. Furthermore, it offers some services. The Opera Link allows my bookmarks, speed dial, typed history and notes to be sync'd wherever i use Opera ( mobiles included ). I use this on a daily basis, moving from home laptops ( 2 running openSUSE ) to work ( Mac and Windows computers ). Imagine having to manage bookmarks, notes, speeddials all manually?

    If there are any more online services that any of the readers use, please let me know, because i'm always interested to find more information. I'm especially interested in finding more open online services that might be competition to the big friendly search giant.

    Note that i didn't mention Google docs on purpose. Don't get me wrong, its great, in fact the entire Google app suite rocks, but the only reason i ever would use Google Docs is where it sucks the most. Posting to this blog. The formatting is killed instantly, and i blame it on Blogger, but i'm disgusted that Google can't integrate 2 of their own services properly. So instead i installed AbiWord on my Asus EEE, and am going to start saving it in HTML format and pasting that into my Blogger HTML editor and hope like hell i don't have to work for an hour fixing it.

    2008-10-30

    C++0x and the final features!

    C++0x is now feature complete! My OSNews feeds have notified me that the C++0x specification has been finalized! What does this mean for us? Well here's a quick run down of C++0x changes from Wikipedia
    1. Extern Templates: using the extern keyword in front of template to prevent a template from being initialized in that translation unit.
    2. Initializer Lists: a new structure std::initializer_list<T> which can be used in a similar manner to C style struct initialization. This allows for syntax like: vector<int> v = { 1, 3, 5 };
    3. Range Based For: Say you have an array, and want to iterate through it all. A new usage of the for loop allows for this. for( int& x: myArray ) will iterate through the entire range of myArray and refer x to the current range element.
    4. Lambda Functions: This gets pretty cool! I'm not exactly sure how to explain it without a code sample, so here it is: std::for_each(someList.begin(), someList.end(), [&total](int x) {total += x}); What it basically does is create an anonymous ( excuse the Java lingo ) function where within the [] you can set the variable where the result of the function is to be stored. It just allows for exactly this sort of thing to be done, it's a great accompaniment to the STL algorithms. These lambda functions behave like friends to the class in which they are declared, so you have access to the member variables and functions.
    5. Constructor improvements: Ever had many constructors and needed to add a member variable to the class? You're liable to make mistakes and skip initialization lists for every var, and end up with an unitialized variable somewhere. Of course you could have a seperate init function, but thats obviously less efficient than using initilization lists ( since default constructors must be called anyway ). So, how about being able to call a constructor from another: SomeType(int newNumber) : number(newNumber) {} SomeType() : SomeType(42) {} Awesome!
    6. A Standard NULL: We've all been using NULL for a while. Now it's time to get used to nullptr. The great thing about nullptr is that it will work with overloading. Take for example two methods: doSomething( int bob ); doSomething( char* bob ); if i call doSomething( NULL ), what will get called? We'd hope the char* version of it gets called, but thats wrong, since NULL == 0, so the int version actually gets called. nullptr changes this.
    7. UTF-8,16 and 32 support for chars: char32_t* myUTFString = U"This is a UTF-32 string."
    And many more changes, consult the Wiki page for more detail. Am glad to see that the C++ language is improving and trying to keep up with the times. Languages like Java and C# are growing greatly in popularity and preventing programmers from having full control over their applications performance. Keep up the good work to all the people keeping the standards alive!