Did you know….
Ctrl+PgUp and Ctrl+PgDn, do the same job as Ctrl+Tab and Ctrl+Shift+Tab
Earlier on today my mind was turned to an interesting subject, again along the lines of communication. I’ll set the scene, shall I? I sent the message, Hey, to a good friend and waiting whilst they typed a very lengthly reply. Me being me, I found myself impatient. Tapping my fingers, getting a drink, waxing my chest hair. Ok so the last one was a lie, but you get the idea. It occurred to me that there are generically two types of messaging in an Instant Messaging environment. Multi-line and single-line. So what’s the difference and how does it affect people? Why do we write messages in these two distinctly different ways?
Looking through IRC logs, you’ll often find them littered with mostly single lines, and then occasionally blocks of about three lines or more. Which do you prefer? I can see advantages and disadvantages to both. So lets take a few theoretical conversations and dissect them to see which methods are being used, and why.
1 Jim: Hey dude, howz it going?
2 Sam: Yeh not too bad, yourself?
3 Jim: Yeh going good mate.
4 Jim: Did you get my mail?
5 Sam: Yeh, all looks good really. I think if we carry on with that method we’ll be laughing.
6 Jim: Good, good. I’ll catch you later on.
7 Sam: Ok. Awesome
Breaking this down we can see a really nice flowing conversation there are no periods of extended waiting, miscommunication or redundant conversation. The first stanza of the conversation is a greeting which is terminated at line 3. A new stanza is initiated at line 4, and this is completed at line 6, with the initiation of the final part of the conversation, the salutation, which is finished at line 7. So, this conversation, incorporated three distinct parts and was achieved entirely by using single line messages. Let’s take a look at another example.
1 Jim: Hey dude, howz it going?
2 Sam: Yeh, not too bad. Had a bit of trouble the other day when the HDD went down and took the code base, but my backups were sufficient. I’ve been looking at the data you sent me and trying to make sense of the initialisation code. Seems a lot more complicated than it needs to be. I can’t work out whether you mean to do the function call before, or after. If it’s before, then the new_call_break() function will need to be rewritten, otherwise, we need to think of a new way of calling baloon_chance()
3 Jim: No, it’s before, so there is no real problem there.
4 Sam: Apart from that, it all seems good.
5 Jim: Good. I’ll keep working on it then.
6 Sam: Ok. Awesome
Looking a little closer at this conversation we can notice a few things. To begin with, at line 2 Jim is going to be waiting for a considerable amount of time, not knowing if Sam is going ok or not. In my opinion, questions should be answered before initiating a new stanza of the conversation. Also, looking at line 2, we see redundant communication happening. Sam is wondering, though interestingly never asks Jim, if the function call is happening before or after. He works out scenarios for both, however if he had waited for a reply from Jim he could have saved himself time and saved Jim time too. Here, the multi line messages cost time for both parties. However this is not always the case.
So let’s take a a look at another conversation, this time using single line messages to try to convey the same information
1 Jim: Hey dude, howz it going?
2 Sam: Yeh not too bad mate. I was thinking about the initialisation process
3 Sam: And I’m having a bit of a problem understanding something.
4 Jim: Oh? Is it the two part verify?
5 Sam: No, It’s the function call right at the end.
6 Jim: Ahh…..Yes it’s a tricky process,
7 Jim: but I think we can manage things better that way.
8 Sam: No, I didn’t mean that, it was causing me some jitter issues.
9 Jim: Oh I’ve not experienced those before.
10 Sam: Well I wanted to know is the function call before or after that main process?
11 Jim: Before.
12 Sam: Ahh ok, so there’s no real problem there then.
13 Jim: Nope, I gotta catch the bus, see ya later.
14 Sam: Ok. Awesome.
So here we can see the same three part communication process is hampered by limiting ourselves to quick single line, sometimes even sub-single line messages. The greetings go ok, but the problem becomes in the data communication stanza. Not once, but twice the data is misinterpreted by Jim and Sam has to correct him. Lines 4-9 Inclusive are totally redundant, and waste time and energy. By using single lines in this way, it enables Jim to jump in early and get the wrong end of the stick twice. In fact 42% of the lines in this conversation are useless.
So perhaps the best method is a combination of these single and multiline messages, and an understand of this communication concept at both ends. To this end, lets take a look at a much more efficient conversation.
1 Jim: Hey dude, howz it going?
2 Sam: Hey there, pretty good thanks. Actually, I wanted to ask you a question about the init process, I’ll explain…
3 Sam: I was using it earlier and got some Jitter issues, so I wanted to check with you if the function call happened before or after the main process? I’ve been running compiles on the libs as they’ve been coming to me and this one is the only one which is still causing an issue.
4 Jim: Ahh..the function happens before.
5 Sam: Right, no problems there then.
6 Jim: Well, I gotta dash dude, catch ya later
7 Sam: Toodles!
Not only have we used half the number of lines to get the information across, but we even managed to add in an extra piece of information about running compiles on the library files. Formulating questions and responses in ways which imply characteristics of future communication helps people manage their IM time better. For instance, seeing the message, I’ll explain… immediately says this is going to be a longer response and would allow Jim to maybe check his email, click on a few more links in his web browser whilst waiting for the reply to come through.
Generally if I know the following message will be a long one, I’ll go and get on with something else whilst I wait. However if I am expecting short replies, I’ll generally sit there and communicate, so that the other person isn’t waiting on replies from me. I hope that I also imply longer reply periods to my chatees, when I communicate.
There are some people who take this to a whole new level, and simply answer with the shortest answer possible, even though others may write lines and lines to them. I find with people like this it’s best to distill your questions/comments down to the shortest length possible. If we all take into account our instant messaging etiquette, then we can make it a more efficient and communicative world.
I’m fed up, it doesn’t help that I seem to be having a bad day today anyway, but I think we’re all in for another angry post. Well moderately annoyed anyhow. Over the past few months I’ve had several people make a very similar comment about bad communication in FOSS projects.
Well, it’s a FOSS project, that’s just something you have to accept.
I’m not wanting to upset anyone with this post, really I’m not, but to be honest I have been thinking about this for a while. Why do we have this excuse that just because people volunteer, and even some who don’t, they are allowed to communicate badly. There have been many occasions where I have emailed people and received not a single reply. I just can’t understand it. Yes, I understand that some people are busy, and in some cases extremely busy, but I don’t think that’s an excuse to ignore the sender. How about sending out a templated reply, so that at least someone knows the email has been read. Sometimes I get real busy, but people will often get an email like this from me.
Hi, got your mail. I’m really really busy right now, but I’ll be sure to take a look as soon as I can. If I’m taking too long to reply, please send me another mail and up the use of capitol letters.
Hey, message received ACK. I’m so busy at the mo but I know that XXXXX has done some work here and will probably be able to help you out here, alternatively try sitting on channel YYYYY for a while, I know there are some ultra cool gurus there.
I’ve never experienced bad communication like this in my own mini projects. Granted I have really small dev teams. However, I know that if I mail one of my team mates I can expect a reply, of some form.
I guess I just feel that it’s hurting the OSS community in a big way. We produce some of the best software in the world, literally. Why do we have to be self absorbed geeks in the process? It’s just polite to reply. We can’t just hide behind this excuse anymore. I’m not perfect either, but it is something I really feel strongly about. It’s all to do with time management. I know that sometimes we get more mails than we know what to do with, but sometimes it’s frustrating when you ask someone, “Did you get my mail?”, only for the reply to be “Lemme check through my inbox……….Oh yeah I found it, you sent it three weeks ago right?”
So, what is katapult, and why would it be fun or profitable for me?!
Katapult is a KDE program that increases your productivity by giving you unlimited access to your programs, music, documents, a spellchecker, and a calculator, without ever reaching for the mouse! Now, some of you may like your mouse, and that’s cool, but nobody can deny that ALT+Space konq ENTER isn’t an easier way to fire off konqueror than reaching for the mouse and clicking the icon.
So, let’s go into the functionality that Katapult has. Katapult will let you run programs. Just hit ALT+Space and start typing the name of your favorite program. No, not the unix command, just the name of the program. So instead of typing “oocalc” you could type “o sp” (notice the space) and OpenOffice.org spreadsheet will fire off. Beautiful, no? This will also work with your konqueror bookmarks.
Then there’s your music. Katapult integrates with Amarok to give you access to your music at your finger tips. This functionality is a little flakey sometimes it seems, but it is there.
Then there’s the calculator. This is one of my favorite features. ALT+Space and then type in your math, and Katapult will do the math for you. This is very convenient for those of us who have to do tiny little bits of math regularly.
Now there’s the spellcheck… some of us aren’t gifted spellers, so this is a very useful feature. Just ALT+Space and then type “spell” followed by the word you want to spell. If you get it wrong, it’ll give you a comma-separated list of guesses.
So there’s Katapult, and I hope you find it as useful as I do. I know the folks who wrote it were really thinking of making lives easier when they wrote it, and man did they succeed. A round of applause for the Katapult hackers!
Vim is the greatest editor of all time. Let me tell you! Every week when I go to put together a new tip there is just so much to offer. I can keep this going for years! If you haven’t started using vim yet start!
Now vim has a really comprehensive search function using the ‘/[word]’, but maybe you just want to find the next word matching the one your cursor is on, in the fewest keystrokes possible. Well you can do that (of course). Use the ‘*’ key to jump from whatever word your cursor is on to the next match of that word. Give it a try.
Of course using the normal search option ‘/[word]’ followed by ‘n|N’ will jump to the next match as well. Keep these both in mind when you’re searching for words.
We decided to draw a graph of the relationship between the volume of the error noises that a PC makes on boot up and the amount of fear it instills into you. Quiet beeps give us a mild sense of curiosity, whereas loud noises lead to other less desirable consequences.
Well, it actually is pretty neat but fails in insuspected ways.
- It does not honor PUSH “dhcp-option DOMAIN”
- After a while it even reverts the nameservers in /etc/resolv.conf to the non-vpn values
- After losing vpn connection (if I restart the vpn server for example) it won’t attempt to reconnect
- There’s no way to say “only allow traffic if connected to vpn” or even “autoconnect to this vpn”
- It just dropped all routes after disconnecting the vpn
- It doesn’t make using RSA keyfobs easier (ideally it would remember the group password + static part of user password)
On the positive side, I now have a decent VPN connecting to all my desktop machines and all servers I administer. Allowing me to secure these servers just a tiny bit more (no SSH outside the tunnel etc.)
now I just need to work out how to move down south!
Read more of this story at Slashdot.
Read more of this story at Slashdot.
Jerome S. Gotangco: The 7th Thailand Open Source Software Festival in Bangkok, Thailand, Aug. 2 - 3, 2007
After my brief stay in Hanoi, Vietnam, I went straight to Bangkok, Thailand for 2 events: the 7th Thailand Open Source Software Festival (TOSSFEST) and the IOSN-ASEAN+3 sponsored CMS-DMS (Content Management System - Disaster Management System) technical and consultative meeting of Sahana, Drupal, Joomla and Plone developers.
Despite the funny acronym (seminal and otherwise), the event had 3,000+ registered attendees and the 3 meeting venues of the Bangkok Convention Center was packed, with delegates ranging from students new to open source and advanced users tinkering with Linux kernel-related tracks.
The CMS-DMS meeting requires a different blog post because of its BHAG, so I am posting some photos taken during the TOSSFEST first! Enjoy the pics!
I am off travelling for the next 4 weeks in South Africa, visiting family. If you need something from me during this time, expect a slow reply. I would love to meet as many South African Ubuntu, Linux and general Open Source people as possible, so if you want to meet up, mail me.
On the way, I am going to be visiting Frankfurt from the 13th through the 18th of August, so if you want to me up, drop me an email.
Jeff leaving and Ubuntu shipping on Dell computers in UK, France and Germany, there have been a few new positions opened in Canonical’s Montreal office (and elsewhere). Yes, we’re seeking German-speaking support analysts.
I went to Jeff’s this week and saw the mover’s packing after math - I am jealous! It’s always nice to get a new job, city and home all at once! Well, personally I hope I won’t be moving anytime soon but for the next week I am off to Cuba for some non-tech retreat and all-inclusive do-nothing time
I use webmail fairly frequently to supplement thunderbird for email. I run an imap server with squirrelmail as the front end. However, partly as a result of server-side loads and partly because of the software, webmail is a painfully slow process and my workflow is ridiculously impeded.
As a potential solution I’ve recently been tinkering with gmail. The speed with which I can access my email is vastly improved and with it my productivity. However, I’m going to have to test it quite a lot more to see if it’s compatible with my email workflow. I’ve already got a number of gripes, although (so far) none of them are prohibitive. Here are some comments on the experience: if anyone can help out with overcoming these problems, I’d be pretty grateful. On the other hand, I’m interested in hearing other people’s experiences with gmail, with both good and bad feedback.
Spam filtering: pretty good, seems to recognise most of my spam (doing a better job than the spamassassin installation I run) and due to the increase in speed it’s easier to mark spam. I’ve found one genuine email in the spam directory so far.
Mailing lists: the failure to automatically reply-to-mailing-list is annoying; the complete absence of Reply To List is a major problem.
Lack of IMAP support: is annoying because messages I’ve read in gmail still appear as unread in my mail client and I can’t share my draft and sent messages from thunderbird with gmail. It also means I can’t import mailing list archives (minor annoyance).
Filtering: another minor annoyance is the absence of being able to filter on precise message headers; however the labelling/tagging system (instead of folders) works well and it’s nice to have a workflow where messages which trigger more than one filter have multiple tags rather than being forced into a single folder. Because of the need to filter on the to: field, there doesn’t appear to be a way to separate out the approach to messages sent to a mailing list (which I want archived/tagged) from those sent to both a mailing list and me personally (which I want in my inbox).
Multiple accounts/identities: when responding to a message gmail fails to correctly preserve the identity that an email was sent to as the identity from whom I wish to respond.
Absence of GnuPG support
Space: I’m not sure that the 2800MB of space is going to be sufficient for handling large numbers of mailing lists, in the long term.
Look forward to hearing more experiences.
This is a message to all the young, beginning coders out there (including myself, of course).
You already know you should write nicely and consistently formatted, documented, beautiful code.
Please, try to also write as reusable code as possible.
If there is a part of your code that can be abstracted from the User Interface, please abstract it. That doesn’t mean just a frontend and a backend - if you can create an abstract class for all of the frontends, go for it. Additionally, if you can make use of an existing library or a built-in function/class instead of hacking your own solution (and you can in > 60% of the cases), use it. You can always improve the shared library if you feel your solution is faster.
If more projects were programmed with code reusability in mind, perhaps we could now benefit from a GIMP editor for KDE and an Amarok music player for GNOME. The use of multiple desktop environment libraries needed to be present for a complete user experience is consuming valuable system resources and we should try to avoid it, where possible. ( The last statement is based on my personal experience with multiple non-beginner GNU/Linux users. )
And a little disclaimer: Sure, some code has to be made UI-dependent, especially the code relying on other parts of the environment. It also depends on the programming language you use. GIMP and Amarok are just examples of applications whose frontend for KDE/GNOME would be very welcome.
Read more of this story at Slashdot.
As Christer Edwards reports, the 4th Alpha release of Ubuntu 7.10 is available for testing. Christer sums up everything quite nicely, but I’d just like to add one thing though. If you have restricted bandwidth, you can use rsync to update between builds, whether they are daily builds or new alpha builds. Rsync (mostly) only downloads the differences between CD images, saving you time and bandwidth.
If you have an Edubuntu alpha server ISO for example, and you’d want to update it, and the new ISO image is located at https://www.cdimage.ubuntu.com/edubuntu/releases/gutsy/tribe-4/gutsy-server-i386.iso, then you simply need to replace the ‘http’ with ‘rsync’, and add a ‘cdimage’ after the ‘cdimage.ubuntu.com’, then you can use it with the rsync command to sync it to the latest image:
$ rsync -avP rsync://cdimage.ubuntu.com/cdimage/edubuntu/releases/gutsy/tribe-4/gutsy-server-i386.iso gutsy-server-i386.iso
You need to do that in a directory that currently contains an older copy of the ISO image. I suggest you make a copy of the old ISO, just in case there is something wrong with a newer build that makes the image unusable!
While you’re at it, also try out the newest LTSP builds available for Gutsy. LTSP has made some important strides in this release. One of the most interesting changes, is that NFS has been dropped in favour of NBD, which currently provides increased performance, and will allow for better security in the future.
Always interesting to see what’s possible with “old” hardware (three years old intel i915 in this case), if you care to properly look into its capabilities and make use of it. Even if it’s hard and more work than on other platforms or GPUs. And there’s more in the pipe.
(click for full view)
Kristian Høgsberg and Dave Airlie at work doing mighty fine work with redirected direct rendering on free drivers.
So something like this…
(click for full view)
… which currently only works with nvidia and their proprietary driver, will finally be possible on a composited desktop with free drivers. Sweet and wicked times ahead!
I’ll leave it as an exercise to the reader to imagine what kind of “super-hideous” visuals we’ll be tossing around soon (er or later).
For those of you that want to help make Ubuntu the best it can be I would encourage you to help us test the latest alpha release, codename “Tribe 4″. I have been running since Tribe 2 on one of my machines and it has been surprisingly stable. There have been some bugs, as is to be expected, and they’re getting reported (from me anyway), but the more of us we can get testing the more bugs can get squashed before the final release.
One thing to think about is the longer you wait to help test the less time they have to fix bugs before the final release. Details below:
Welcome to Gutsy Gibbon Tribe 4, which will in time become Ubuntu 7.10.
Pre-releases of Gutsy are *not* encouraged for anyone needing a stable system or anyone who is not comfortable running into occasional, even frequent breakage. They are, however, recommended for Ubuntu developers and those who want to help in testing, reporting, and fixing bugs.
Tribe 4 is the fourth in a series of milestone CD images that will be released throughout the Gutsy development cycle. The Tribe images are known to be reasonably free of show-stopper CD build or installer bugs, while representing a very recent snapshot of Gutsy. You can download it here:
https://www.cdimage.ubuntu.com/releases/gutsy/tribe-4/ (Ubuntu desktop and Server)
See https://www.wiki.ubuntu.com/Mirrors for a list of mirrors.
Some new exciting features have landed which cannot wait to be tried and tested. Please refer to the following web pages for details:
This is quite an early set of images, so you should expect some bugs. Among these are the following (so you don’t need to bother reporting these if you encounter them):
* When starting the Ubuntu live CD, or on a freshly installed Ubuntu system, you will sometimes get a crash report for the Deskbar applet. Please ignore this crash.
* The desktop CD does not install translation support from network repositories. Please use System -> Administration -> Language Support to add translations after the installation.
* On Kubuntu, OpenOffice.org does not start. Please install the package “openoffice.org-gnome” for now to make it work.
* The “Check CD” CD menu option does not work on the Kubuntu desktop CD. Unfortunately there is no workaround.
* On Edubuntu server installs, the “Building LTSP root” step takes a very long time (in the order of 15 minutes) without visible progress. It will eventually finish, though.
If you’re interested in following the changes as we further develop Gutsy, have a look at the gutsy-changes mailing list:
Please be aware that this list usually has several dozen mails every day.
We also suggest that you subscribe to the ubuntu-devel-announce list if you’re interested in following Ubuntu development. This is a low-traffic list (a few posts a month) carrying announcements of
approved specifications, policy changes, alpha releases, and other interesting events.
Bug reports should go to the Ubuntu bug tracker:
I am sure you all saw that Dell machines are now available pre-installed with Ubuntu in the UK, France and Germany, as well as the USA. Well, one new customer who bought some Ubuntu-Dell goodness is my dad. Linux really is ready for the regular user.