Archive for May, 2010
HOWTO: Enabling multiple mouse pointers (MPX) and multiple keyboards to work simultaneously in Linux (Ubuntu/Fedora)
Soon I will be switching camps from Ubuntu to Fedora. I can’t say this will be permanent but it will be for around 5-6 months to give myself time to get over the few minor gripes I have with Fedora (mostly revolving around its package management) and try to embrace the things that are drawing me towards it. I’m going to be setting up a Fedora as my Dom0 with Xen Hypervisor and running other operating systems at the same time (no names being mentioned here).
But when I was downloading the Fedora ISO this morning I remembered a little project that I had religiously followed for a while and even compiled a highly unstable x server to try it out and that was Peter Hutterer’s MPX. This project was designed to allow multiple mouse pointers natively in the x server. I had forgotten about trying this out when I upgraded my system to Ubuntu 10.04 but this morning I went digging around for the info on how to do it and this is what I came up with after piecing things together.
To find out what crap you’ve got plugged into your computer that can be used type:
$ xinput list
and that should return something like:
Virtual core pointer id=2 [master pointer (3)]
Virtual core XTEST pointer id=4 [slave pointer (2)]
Logitech USB Receiver id=9 [slave pointer (2)]
Logitech USB Receiver id=10 [slave pointer (2)]
Logitech USB Receiver id=13 [slave pointer (2)]
SynPS/2 Synaptics TouchPad id=15 [slave pointer (2)]
Virtual core keyboard id=3 [master keyboard (2)]
Virtual core XTEST keyboard id=5 [slave keyboard (3)]
Video Bus id=6 [slave keyboard (3)]
Power Button id=7 [slave keyboard (3)]
Sleep Button id=8 [slave keyboard (3)]
zc3xx id=11 [slave keyboard (3)]
Logitech USB Receiver id=12 [slave keyboard (3)]
AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
Ok, so for this howto I want to move my laptops built-in keyboard (id 14) and touchpad (id 15) to their own group. First I have to create the new group like so:
$ xinput create-master laptop
$ xinput list
The second list you bring back will have the new groups there:
...
laptop pointer id=16 [master pointer (17)]
laptop XTEST pointer id=18 [slave pointer (16)]
laptop keyboard id=17 [master keyboard (16)]
laptop XTEST keyboard id=19 [slave keyboard (17)]
Then it is a simple matter of reattaching the mouse (id 15) and keyboard (id 14) to the new groups (ids 16 and 17 respectively):
$ xinput reattach 15 16
$ xinput reattach 14 17
Then simply start using them. There are still things that need to be enabled on a program level for this to be a truly user friendly experience and I myself do not have a practical use for multiple input devices like this yet. I can see how if you could constrain the range of motion of the devices to a single monitor and hook up multiple monitors, keyboards and mice you would have a cost effective classroom set up for students or even use this on a large touch surface for design, video editing and so on.
I am hacking your internets and you are paying me for it!
Posted by Danyul in General Posts, Nerd Talk on May 22, 2010
I’ve been looking around at various certifications that I would like to go for and the web being what it is, ….a web, lead me to finding some juicy information on the state of the IT industry in the US and Canada. I was given a copy of the 2010 IT Skill and Salary Report put out by TechRepublic and Global Knowledge. This report has a table (figure 10) where they list Salaries by Popular Certifications and there is a link under that that goes here where you can find an outline of the salaries for even more certifications. One that caught my eye because of the mean salary vs. what what the certification entailed was the CIW Web Developer. (side note: that certification has actually been retired)
CIW currently offers a range of certifications but there were 2 there that caught my eye and are things I will go for in the future (after my PR is finally sorted) and those were the Enterprise Developer and the Security Analyst. I looked over the requisites for the Enterprise Developer certification and it’s fairly straight forward, there is not really anything I need to learn extra to do the course and gain the certification since I do that anyway.
The Security Analyst has a prerequisite that you complete a 3rd party certification before going for their exam. When I looked at the 3rd party list there were the usual suspects MSCA, MCSE, CCNP etc. But there was one that I had not heard of before and that is the Certified Ethical Hacker (CEH). Having a strong interest and past hands on experience in this activity lead me to finding out everything I could about this course and the marketability of it in my career. I found myself thinking “hello……I can be incarcerated certified for this?!”.
It actually looks quite promising. The course is designed more to teach a person how to hack/crack by various methods and how to keep yourself up to date on the latest exploits and vulnerabilities. While at first glance training people to do these nefarious acts may seem irresponsible to the average person (even your employer). You have to realise that there are people out there finding end exploiting these vulnerabilities, creating tools and causing mischief without being trained. So what defence do you have against them? Hire one or hire a team of them! Get them to run attacks on your site, network and even staff members (read: not physical attacks on staff members even though they may deserve it, but things like social engineering, shoulder surfing and the like) and show you where you need to improve.
After reviewing all the info and previewing some course material I find that I am quite interested in getting CEH certification and will probably go for it later this year when the time and money are available.
As a further note I would also encourage people who are working in the IT industry to learn how to do their jobs correctly. I see so many people today passing themselves off as web developers, programmers and system administrators without knowing how the technologies they are using work, not knowing how to keep them secure and not doing a very good job at completing even the basic tasks involved in these positions. I think I will rant about this later and provide some more in depth information in that post.