How to write a tiny python app (less than 50 lines) that reacts to events on the DBUS buses. For example, displaying a notification when you press one of your keyboards' special keys.
I will be doing a brand-new never seen introduction to PyQt programming at the "Jornadas de Software Libre y Open Source" in Mar del Plata tomorrow or the next day.
More info at http://softwarelibre.mdp.utn.edu.ar/
If you mention this blog and ask nicely, you get a can of cheap national beer tomorrow night (limit: 2 cans ;-)
Most people nowadays have more than one computer. Often, you are using one, and would like to do something in another. In this video, I will explain how trivial it is to do that without leaving your seat in a modern Linux using KDE.
We will use the following:
Avahi, a zeroconf implementation to let you find your computers in your network without worrying about IP addresses, DNS, etc.
krfb, the KDE Remote Frame Buffer. This is a program to share your desktop over the network.
krdc, the KDE Remote Desktop Client, a VNC, RDP client, which is what you use to see a desktop shared via krfb.
I am sure users of other operating systems or desktop environments will say they can do it just as easily. In that case, feel free to do your own videos ;-)
Keep in mind that accessing remote desktops over the internet is a whole different beast, and this solution is not meant for that case.
As usual, this video was recorded using qt-recordmydesktop. There was minor editing using mencoder.
The computer used is the original Asus eee PC 701 4G, so you can see this is not exactly a hardware-intensive operation. I find the eee's small screen is great for this kind of full-screen demo, because it's not big enough to drown the important parts.
While randomly clicking today I saw this article with the fun title of "2009: software installation in GNU/Linux is still broken -- and a path to fixing it" by Tony Mobily.
As I don't have an account at FSM and don't intend to open one today, I will post a response here, where noone will ever notice it. Because that's how self-confident I am. I warn you, this response is full of proof-by-assertion and invalid generalizations, but hey, it's opinion.
It starts with an interesting claim:
And yet, software installation in GNU/Linux is broken. No, not broken… it’s terribly broken. Why is that, and what can be done to fix it?
I intend to show how there is one little problem with that statement: reality. As in "what's the most successful software delivery platform for 'normal' users in 2009, and why that matters here" reality (hint: it's not windows, it's nothing on a Mac).
I mean the iphone, and its App Store. And what he is proposing is abandoning something that works a lot like it, and go back to the cave-age "download this from the app's site" model windows uses.
He describes the usual installation procedure, be it apt, yum or pacman, almost all distros do the same thing nowadays, then starts describing the problems.
Users need to have root access in order to install a piece of software; no per-user installation is allowed
This would have been a problem in the old days of shared computers. Nowadays, you are root, or (in some cases) root's mom. All modern distros use sudo so you don't need root access, you just use your own password (or no password at all).
So, this is a non-issue.
It’s very tricky to install several versions of the same piece of software. Just think of the poor graphic designer who needs to install several versions of Opera and Firefox; Users are stuck with the piece of software installed system-wide;
How do you install iFart 1.0 and 2.0 in an iphone? Can you? Special users (like graphics designers) should be provided by special solutions, like portable firefox. Think there's a need for it? Go ahead, it's maybe one day of work.
The software needs to be downloaded from the official repositories. Well, it doesn’t need to, but an average user wants to stay well away from unofficial repositories for technical reasons;
The iphone software needs to be downloaded from the app store. That has not hurt anyone (other than app developers, I mean)
In some cases (especially when the user adds repositories or installs packages directly), the dependency-checking mechanism often fails and users end up with circular dependencies. They are nasty;
I have not seen a circular dependency since 2003. But hey, maybe they do exist. In that case, don't do that.
A piece of software is bound to a specific distribution, and — what’s worse — to a specific version of that distribution too. It’s not trivial to install Openoffice 3.1 on Ubuntu 8.10. You can argue that you can install the bunch of .deb packages from OpenOffice’s web site. Tell that to your grandmother or your average inexperienced computer user.
Some iphone apps will not work without the 3.0 firmware. Solution? Upgrade your firmware. How's that different in Linux?
It’s not trivial to “give” a program to a friend. To the end user, giving a program to a friend should be as simple as dragging an icon onto a memory stick; instead, files are scattered all over the system.
It'seven simpler than that: here, let me give you rst2pdf for ubuntu: "Tony, install rst2pdf, it's in 'universe'". I don't even need to give you a floppy disk or whatever kids use these days.
Oh, and "how do you give someone an iphone app?"
Then, he proposes solutions, which I think are worse than the status quo:
Users should be able to install software even without being root
Users are root, or root's mom. This is not a problem.
Users should be able to install different versions of the same software immensely easily
The only way to do this is to make everything static or freeze the systems libraries.
Do this for "portable" versions of specific apps if you want. Don't make the system suck, please.
Users should be able to run either their own version of the software, or the one installed on the system (if any)
Fine by me. OTOH, how do you do that on an iphone? You don't. Please, stop diverging from what is working in 2009.
It should be possible to download and install software even though it doesn’t come from an official repository
Again, the iphone doesn't, and noone cares. If you care, you are not the normal user you claim to advocate.
Software just needs to work — unchanged — even if it’s a bit old and it’s run on a newer distribution
Yes, I want Quick Shot for iphones with 3.0 firmware!. Again, almost noone cares, except app developers.
You are acting like a Linux user, dude!
It should be possible to “give” a piece of software to a friend by simply dragging an icon onto a memory stick
Just tell the guy the name of the app already!
All this is true with Apple’s OS X. They got software installation just right — although a few programs, lately, seem to come with an ugly installation process.
Noone chooses a mac for this. They choose it because it's pretty, or because they are told they are better, or whatever, but anyone actually saying "hey, on a mac I can give you Office by sharing this 800MB dmg!"? Not only noone does it, it's freaking illegal.
Besides, you give the dmg to your friend, and 92% of the time, your friend has windows or Linux and can't use it. So your chance of success is about 8%.
Imagine if it only worked if your friend's computer was an Acer? There you would have a 10.5% chance! (see here) Noone would say that's good!
No, sharin apps like that is not the problem.
Please, dear linux distro developers, look around you, and see what works in 2009.
Amazingly, what works looks an awful lot like what we have been enjoying since 1998 or whatever, so let's enjoy it and make it better, instead of trying to become like a mac, or like windows, old style platforms in the age of the smartphone and the netbook.
I can't reply at the site because:
It requires login.
I can't find a place to get an account.
It has freaking google ads popups
So I reply here because:
Hey, it's my own blog, so I can do whatever I want.
Here's the comment by hussam with my (admittedly ranty) response:
I've been using ArchLinux as my only distribution/operating system since early 2006. It is really a good distribution but lately there have been a lot of really bad choices which I call bad compromises:
1. Too many ArchLinux users think gnome/kde are bloat and instead install some half developed window manager and some terminal emulator and call it a "minimalist" desktop.
Why is that any of your business? And what "compromise" is there?
2. Optional dependencies are the worst idea ever. If a package is linked against libsomething.so then libsomething should be a dependency not an optional dependency. Making libsomething an optional dependency just because "minimalist" users don't want to install dependencies is plain stupid.
That's not what optional dependencies are for. For example, consider the example I mentioned, rst2pdf. It can use pythonmagick. It can also not use it. You will lose one small feature that AFAIK only one person ever used. If you need that feature, the manual tells you what to do: install pythonmagick.
Maybe there should be a pacman option "install optdepends" which turns optional dependencies into regular ones. That would make you happy and keep others happy too.
3. Bad leadership. Aaron is fantastic guy but I know at least two ArchLinux developers who can do a much better job.
That's just stupid and mean.
4. Too many ArchLinux users now like badly automation scripts like yaourt or whatever it is called.
Parse error. And then again: yaourt is great. You don't like it? Act as if it doesn't exist and be happy. You seem to have a big problem ignoring people who disagree with you. That's a really, really serious personal flaw. I suggest you grow up.
5. Too many noobs who do dumb things like people adding their users to hal, disk and dbus groups.
Sure, they should add themselves to optical and storage. So what? It's a simple problem and it has a simple solution.
Then again, the adduser scripts probably should do that for regular user accounts. After all, who wants to create a regular user that can't use removable storage? And if said use case exists, that should be doable by removing the user, and not viceversa!
On the other hand, I don't give a damn, because I can fix it trivially.
The main reason why I don't think I will switch to another distribution soon is that creating Archlinux packages from scratch is very easy and the initscript system is really fantastic.
All in all, ArchLinux is a really strong distribution now and it's constantly growing.
I expect you, like most elitist poseurs, will run away when you feel Arch is too popular and accessible to "too many noobs" or some similar nonsense.
Which, like the title says, is why you are a big part of what's wrong with Linux users.