Jump to Navigation

Chef Marcel at your service!Food, Wine, and Linux may seem like a strange combination, but combining three passions can be a wonderful thing. I'm Marcel Gagné. Those of you who read Cooking with Linux, the multi-award-winning column that appeared monthly in Linux Journal magazine for 10 years, likely agree. With the help of my faithful waiter, François, Restaurant Chez Marcel serves up the finest in Linux and open source software paired with exceptional wines.

In that same spirit, this site features great Linux and Open Source software, ongoing wine tasting reports, recipes, and the occasional restaurant review. If you came here looking to read past Cooking with Linux columns, you'll find newer releases on the front page, a comprehensive list here and under the "CWL, The Column" menu link to the left. A votre santé! Bon appétit!

Programming Silence OUT!

Voice-recognition software: one step closer to HAL.

Author's note: A blast from the past. My Cooking With Linux column from July 2001 issue of Linux Journal.

Is that not wonderful, François? Ever since I was a young boy, even before I thought of opening this restaurant, I have wanted something like this. I remember watching 2001: A Space Odyssey, listening to the voice of HAL 9000 and thinking, “That is what I need. A talking computer.” Years later, I suddenly realized that I still did not have my talking computer. Well, today, mon ami, we are going to change all that.

What? Our guests have arrived? Welcome, mes amis, to Chez Marcel. I am so happy you could come today. We have some wonderful items on our menu for the programmer who has programmed everything. Please, sit and François will bring you some wine. François, go to the cellar and fetch the 1996 Hill of Grace from Australia.

Get comfortable, mes amis. You are going to love this wine. Ah, merci, François. Please, pour for our guests.

I was telling François that we should have talking computers everywhere by now, but my Linux workstation spends its time in silence. For reasons that I cannot fathom, none of the software on my system seemed to be speech-enabled. So, for all of today's recipes, you will need a sound card in your system, properly configured, as well as a microphone.

The Center for Speech Technology Research (CSTR) at the University of Edinburgh in Scotland had just what I needed to start down the road to my own talking computer. By surfing over to this address, http://www.cstr.ed.ac.uk/projects/festival/, you'll find a fascinating project called Festival.

Festival is a multilingual speech synthesis system. It is capable of text-to-speech work with multiple voices. With its API design, it can be incorporated into numerous other programs and applications. You'll see what I mean as we explore this package.

Firefox Gestures

Firefox is default Web browser in many Linux distributions and one of the most popular browsers around. Firefox is an excellent browser on many counts, but one if its coolest features is its ability to add features and capabilities through a system of extensions. A good thing too, at least from the perspective of this discussion. You see, gestures aren't built in to Firefox, so we need to get them elsewhere and we do that by installing an extension. Extensions are program enhancements that can dramatically change how you work with your browser. This framework of extensions makes Firefox not just a great browser, but a superior browser; extension support is another idea that has legs. But I digress . . .

To experience Firefox gestures, we're going to find a suitable add-on (or extension) for gestures -- yes, there's more than just one. Click Tools on the menu bar and select Add-ons. A new tab will appear with a list of categories running down the left side from which you can manage your extensions, change the browser's appearance, and more. To see a list of the extensions already in your system, cilck Extensions. On a fresh install, there is usually only a handful of things here. To find ourselves an extension that does gestures, click on "Get Add-ons" then type the word "gestures" in the search bar. You'll see FireGestures listed there; to find out more about the extension, click the More link which is to the right of the Install button. You'll get a defailed description about the extension you're looking to install (see Figure 1).

Figure 1: The Firefox Add-on window lets also lets you search for extensions, like FireGestures.

Click "Install now" to finish the installation. And no, I won't repeat the joke about the user who is asked whether he read the End User License Agreement (his answer is, "Sure, it said click OK to continue") That's it. You must now restart Firefox to activate FireGestures; there's a link telling you to restart so go to it.

Using this extension, you can use your mouse to move forward or back in your history, open or close a new tab, and pretty much do anything you would with keystroke or by manually navigating the menu. There are many gestures pre-configured allowing you to work with FireGestures as is. Gestures are typically entered by clicking and holding the right mouse button and tracing out a path which is highlighted in green. The mouse trail color is of course configurable via the extensions preferences dialog which you can access with its own gesture (see Figure 2). Click and hold the right mouse button and trace left, then down, then right, then up, then left again (LDRUL) or click Tools, Add-ons, then select preferences from there.

Figure 2 : Open the FireGestures preferences with gestures; left, down, right, up, and left.

Once the preferences dialog appears, it provides you with three main sections via a top icon bar. These icons are labeled "Main", "Mapping", and "Advanced. (see Figure 3).

Figure 3 : FireGestures has a gesture activated preferences dialog.

Under the Main section, you may want to change the color of the mouse trails, change its size, or turn it off altogether. This is also where you can select the mouse button to use should you decide that the right mouse button doesn't work for you. One I find particularly useful is the gesture timeout. The idea here is that if you start a gesture and don't complete it in some defined period (a few seconds), the gesture is ignored.

To find out, change, or add to the list of gestures, click the Mapping button at the top. You'll see a huge list of common browser functions and the mouse movements needed to achieve them (see Figure 4). Each gesture is mapped using single letters to indicate direction. It's pretty easy to figure remember; up is "U" and down is "D", left is "L", and right is "R". Move forward with a right motion and back with left flick of your mouse. Zoom into the text by moving left, right, then up. Left, right, then down zooms out. It doesn't take long to get the hang of this and after a while, it all seems perfectly natural.

Figure 4 : Each gesture is mapped using single letters to indicate directions.

Down at the bottom of the mapping options, and on every tab, and on every tab actually, there's a blue link that says "Get Scripts". On the FireGestures site, there are a number of gesture sequences (or scripts) that do things not included in the extension's main package. Adding these scripts is pretty easy; make sure the mapping options are open, visit the site, then drag the script that interests you into the mapping window. It's that easy. If you'd rather create your own gesture, click the "Add Script" button.

I'll let you explore the advanced tab which gets into things like mapping the buttons, and using features like mouse wheels with left/right rocker buttons and so on. But for now, that's it. That is how you enable gestures in Firefox.

How Linux Is Built

You may not know it, but you use Linux every day. 

Why Android might just kill GNU/Linux. Quickly.

Interesting analysis by Tony Mobily over at Free Software Magazine. What do you think about this?

I write this article exactly 24 hours after receiving my Galaxy Tab 10.1. It's something I've been wanting for a long time. I had to wait for the dispute between Apple and Samsung to settle (Samsung actually lost on millions of dollars worth of sales thanks to software patents, but that's another story). After all that, I came to the realisation that we are in front of a forking path. On one side there is the death of GNU/Linux as we know it. On the other side, there is a new exciting world where free software is still relevant. I am not writing this just to be "sensational": here is why.

We have all seen the gadgetification of software: it started with Nokia phones that allowed you to install extra applications and games. It exploded with Apple, and the glorification of the "app market" (which is, excuse me, a generic term). It "inspired" the Android market, and -- let's not forget -- the Mac OS X app market. It also inspired Ubuntu's own "app market".

The world of software has changed. In the (recent) past, software was something to install and use. Today, with the "app markets", software is becoming a gadget to play with.

Source : Free Software Magazine : Read the full story here:

Linux: It's where the jobs are

Over at ZDNet, Steven J. Vaughan-Nichols provides some optimistic news for those of us who make our living in Linux and Open Source Software. From the article . . . 

The Linux Foundation’s most recent job survey reveals that eighty percent of IT companies that use Linux are making hiring Linux professionals a priority.

The Linux job market is ho and getting hotter.

The Linux job market is hot and getting hotter.

The job market is still only slowing shifting back into gear, but the IT job market is still doing better than the general market. And, guess which technology is doing especially well for would-be IT employees? If you said, “Linux,” you’d be right.

According to a survey by The Linux Foundation and Dice, the top technology job site of more than 2,000 hiring managers at corporations, small and medium Businesses (SMBs), government organizations, and staffing agencies from across the globe” slightly more than eighty percent of companies that use Linux are making hiring Linux professionals a priority.

The 2012 Linux Jobs Report(PDF link) found:

Eight in 10 (81%) survey respondents say that hiring Linux talent is a priority in 2012. This pressing matter is particularly evident when Linux demand is compared to hiring in other skill sets: 63 percent of hiring managers are increasing Linux hires relative to jobs created in other skill areas. The issue? A full 85 percent say finding Linux talent is somewhat to very difficult, making Linux professionals some of the most sought talent in 2012.

Source : ZDNet : Read the full article here:

Tags: 

Giving Your Computer The Finger

John Underkoffler explains the human-computer interface he first designed as part of the advisory work for the film Minority Report. The system, called "g-speak", is now real and working. Note the gloves Underkoffler is wearing. (Image from Wikipedia)For as long as we've had personal computers, we've been trying to decide how we interact with these things. The mouse and graphical display was a major improvement over text only input, though I know some of you out there will argue for the keyboard to this very day (you know who you are). Nevertheless, every time we come up with something we like in the way people and machine interact (what we call HMI or Human Machine Interface), we decide that while it's okay, it still isn't quite right. That's okay. As my wife likes to point out, if people like something, they've want to change it; it's when they don't use it that you know you've lost them.

So it is with the humble mouse and the graphical user interface (which came out of Xerox PARC back in the 70s. It seemed like an awfully good idea . . . and it still is. When Apple released its own version of the graphical desktop inspired by Xerox, personal computing changed forever. Point here, click there, and magical things happen. Right click and menus pop up into which we dig ever deeper to make other things happen. The advent of clicking and dragging brought a real-life cause and effect onto the desktop's two-dimensional space. Hold on to this virtual object and drag it to a new location, or deposit this virtual object into this virtual container, whether it be a trash can or a file folder. Introducing motion into an otherwise static environment enhanced human-machine interaction. 

In the movie adaptation of Phillip K. Dick's "Minority Report", Tom Cruise stands in front of a virtual screen, manipulating the computer system using hand gestures to manipulate visions of future crimes, pulling this image here, setting that one aside, zooming in, pushing that one back, and looking for information on the individuals concerned. For techie geeks like me, that user interface was the real star of the show and years later, what I remember most clearly about the film. However useful such a user interface might be, it was seriously cool.

The inspiration for that gesture-based interface was designed by John Underkoffler, an actual product called the "g-speak Spatial Operating Environment", developed by his company, "Oblong Industries". Underkoffler also did some work on other visualization and interface techniques including holography and animation while at MIT. For a really cool demonstration, and a fascinating talk by Underkoffler, visit ted.com and pop his name into the search field.

The idea of gesture-based systems is obviously an attractive one because we keep exploring it. If you're seen "Iron Man 2", Tony Stark interacts with his own supercomputer via gestures  without special gloves. In this natural environment, the idea behind the tech becomes downright sexy. But Stark doesn't just use gestures; he also talks to the system in an almost conversational way while issuing commands as thoughts pop into his head. The system reacts to his speech and actions in an almost organic way, as though the system is just an extension of himself, much like his iron man suit. Too fanciful for you? A German group of scientists at Fraunhofer FIT have developed what might be called the next generation of human gesture based systems. Unlike Oblong's system, this three-dimensional interface doesn't require any special gloves, just like Tony Stark's system.

Ever since computers started coming into the hands of everyday users, we have been trying to reinvent the way people interact with these things. From inputting code via jumpers and switches, to keyboards, to the graphical UI that made Apple a household word (the company, not the fruit), it seems we can't ever find an interface we like. At least not for long. All of us work happily (more or less) with a keyboard and mouse, but it is limiting, hence all these fascinating developments into human machine interface design (HMI). We want to touch, wave to, pinch, tap on, and talk to our machines. This is, I believe, part of the attraction to the latest computing marketplace increasingly dominated by ever-smarter smartphones, iPads, Android tablets, and the BlackBerry Playbook. What could be more direct than touching in order to make things happen? It's natural. Reach out and touch.

From the humble mouse to touch screens to science fiction ideas like artificial intelligences that respond naturally to our speech, to direct neural interfaces as seen in the nightmarish Matrix, we keep looking for other ways to interact with computers.

How about you, dear reader. Are you ready to just plug in? What's your favorite interface between human and machine?

ALICE and friends. Artificial Intelligence Reloaded

If you've been following my posts on artificial intelligence (or AI, if you prefer), you may have already spent some time playing with Eliza and consulting with the Emacs Doctor. I hope so because I'm going to take this one step further. Log in to your Linux system and let's get going . . . 

As much fun as the emacs doctor might be, you'll soon discover that it's not much different from our friend, Eliza. For a more credible machine intelligence, you'll soon run into something called AIML, or Artificial Intelligence Markup Language. Much of the energy that has gone into developing AI programs of late focuses on AIML interpreters and the A.L.I.C.E. system created by Dr. Richard Wallace (more on this shortly). Dr. Wallace won the 2000, 2001, and 2004 Loebner prize for the most 'human' program; that would be the bronze since no one has yet claimed the gold.

There are many AIML chatbots out there. Some masquerade as famous people like Captain Kirk, Elvis, or God. And yes, you can chat with them on their respective Websites. If, however, you'd like to get into the AIML action yourself, start with one of the projects built on this language. Like Howie.

Meet the Emacs Doctor

In my last article on the subject of artificial intelligence (or AI, if you prefer), I introduced you to Eliza, a computerized psychiatrist. Eliza may be simple, but she is patient and she's happy to let you talk.

Speaking of therapy, and at the risk of opening up old wounds and old battles, specifically the "vi vs emacs" conflict (the answer is vi, or vim), let's consider another form of AI therapy.

The original Eliza program was written using an early version of Lisp. It is not surprising then that one of the most famous examples of Lisp development included with your Linux system, the Emacs editor, should pay homage to the good doctor. When talking about Emacs, it becomes almost difficult to classify it as strictly an editor. The brainchild of Richard M. Stallman (founder of the Free Software Foundation), GNU Emacs is more than just a nice, powerful, if somewhat complex, editor. It's a mail reader, news reader, web browser, program development environment, Lisp interpreter and psychotherapist. No, really! I kid you not.

Try this. Start Emacs by typing emacs. You do not have to specify a filename for this. Now, press Esc-X, then type doctor and press Enter. The doctor is in. More so, the doctor lives! Note my conversation with the Emacs doctor in Figure 1.

Figure 1: The Emacs doctor IS in!

As much fun as the emacs doctor might be, you'll soon discover that it's not much different from our friend, Eliza. The advantage here is that, the doctor is always in, assuming, of course, that you have emacs installed. So next time you find yourself contemplating the meaning of life while you are in the middle of some stubborn Python code, save your work and just call up the doctor. It's free software so you can keep the 5 cents.

Need A Psychiatrist? Meet Eliza

For some of us, our original exposure to AI, or artificial intelligence, goes back to an old program called Eliza. Eliza was a kind of computerized psychiatrist written in the 1960s by Professor Joseph Weizenbaum at the Massachusetts Institute of Technology. Eliza (named after the character in George Bernard Shaw's "Pygmalion") was an exercise in human response and natural language communication with so-called machine intelligence. The version I played with all those years ago was a DOS program running on a TRS-80. Ah, nostalgia. Eliza may not have been a great doctor, but it was a fun and fascinating program, a kind of whimsical promise of the future of AI.

Over forty years have passed since Eliza made her debut in 1966. You can still find incarnations of her everywhere on the Internet. Eliza's ghost is represented in many of the bots and chatterbots you'll find on IRC channels and MUDs. In fact, you can download Eliza as a Perl module and experiment with the creation of your own bots using your own Linux system. The code is available at the CPAN repository or the Comprehensive Perl Archive Network. You can find the latest incarnation at http://search.cpan.org/dist/Chatbot-Eliza/ .

The file is called Chatbot-Eliza. When I picked up my copy, it was version 1.04 and I installed it in the following way.

tar -xzvf Chatbot-Eliza-1.04.tar.gz
cd Chatbot-Eliza-1.04
perl Makefile.PL
make
sudo make install

In the installation directory, you'll notice a file called simple. You can use this as the basis for creating your own AI, or you can simply execute the script by typing ./simple as I did in the following example:

$ ./simple
Welcome to your therapy session.
Your therapist's name is Liz.

Liz:    Is something troubling you?
you:    I'm concerned about artificial intelligence.
Liz:    Do you know anyone else who is concerned about artificial intelligence?
you:    Several people I know have different concerns regarding the subject.
Liz:    What differences do you see?
you:    Some are excited about computer intelligence and others are frightened.
Liz:    Do computers worry you?
you:    Not particularly.
Liz:    Tell me more about that.
you:    I've always had a fondness for computers, real or fictional.
Liz:    What about machines worries you?
you:    That they might actually understand what i am talking about.
Liz:    Are such questions much on your mind?
you:    Are they on yours?
Liz:    Possibly they are they on mine.
you:    Do you have anything else to offer?
Liz:    We were discussing you -- not me.
you:    I see. I should probably go.
Liz:    That's quite interesting.
you:    Goodbye.
Liz:    Goodbye.  It was nice talking to you.

The script that calls the chatbot can be extremely simple, hence its name. If you don't like the name Liz or the introductory text, edit the file and change it here.

use Chatbot::Eliza;
$chatbot = new Chatbot::Eliza 'Sigmund';
$chatbot->command_interface();

Make the script executable and run it. In this case, I have renamed my chatbot Sigmund. The default name is actually Liz. In the distribution directory, you will also find a file called doctor.txt that can be used as the basis for your own bot. I created one called mywords.txt from the doctor.txt file and modified my startup script slightly:

#!/usr/bin/perl -w
use Chatbot::Eliza;
$chatbot = new Chatbot::Eliza {
        name => 'Turing',
        scriptfile => 'mywords.txt',
        };
$chatbot->command_interface();

Now I start my script with the command ./myai, and this is the result:

$ ./my-ai

Turing: Well, well. Another person trying to see if machines can think.
you: There's no doubt that I am curious.

Particularly interesting in this distribution is an included script called twobots that lets two Eliza bots talk to each other. The resulting discussions can be quite interesting. You'll also find a script called simple.cgi so that you may add your own Eliza chatbot to your web site and share your therapist, or whatever you want Eliza to be, with the world. 

Artificial? Definitely. Intelligence? Depends on who you ask, I suppose.

Have fun!

Who cares about your dang Desktop Environment?!

Well, actually . . . I do.

If you are into such things, and you place your faith on those distro popularity numbers over on DistroWatch, you'll see that Ubuntu has dropped from its number one position, a position now held by Linux Mint. Heavens, no! Surely the universe is about to implode! And isn't even 2012 yet! 

Sorry about that. The reason for Ubuntu's decline from that venerated number one position has been speculated on by tea leaf readers everywhere (i.e. my fellow tech journalists). Much has been made about the Canonical's embrace of Unity over traditional GNOME and I am among the guilty when it comes to that. I happen to dislike Unity but I do like GNOME 3. This, oddly enough, puts me at odds with the majority of people who runs GNOME in one way or another though more people seem to hate Unity than GNOME 3 --  I could be wrong. The question, however, is this . . .  

Has Canonical shot itself in the foot, giving up its number one position, by adopting and sticking by Unity? Does the choice of desktop environment matter that much? Are Linux users, who traditionally just install and run whatever they want, regardless of what it presented to them, really that irked about Unity that they are abandoning Ubuntu? Okay, that's at least three questions.

Which brings me to my Ubuntu and Linux Mint experience.

You could say I've had a love/hate relationship with Ubuntu going back a long ways. Ubuntu, or in my case, Kubuntu, and I have parted ways several times (see my "Crisis of Kubuntu Faith" video), only to get back together a few months later. I got to loving Ubuntu and Kubuntu so much that I became senior editor of Ubuntu User Magazine. But even in that role, I was regularly drawn to Linux Mint, an Ubuntu-based distribution that was particularly friendly to Windows-refugees, mostly due to the fact that it came with all those lovely proprietary codecs and plugins that you always have to load whenever you install a new distribution. Linux Mint was, as I called it a couple of years ago, Ubuntu done right.

So when I blew away Windows and loaded up my new notebook, I naturally went and downloaded the latest Linux Mint. I did that partly because I've gotten into the habit of recommending it to my non-Linux friends who are looking to improve their desktop experience. That's my snarky way of saying "leaving Windows". But I digress . . . 

Three weeks pass and I start to get a little antsy. This Linux Mint is okay, but the KDE implementation, is way out of date. Mint has seemingly abandoned my favorite desktop interface. Seeing as I am particularly good at this Linux stuff, I figure it's no biggee. Besides, I like playing on the bleeding edge, despite having gotten bloodied more than once over the years, and so I add the apt repositories for Project Neon, the true bleeding edge of KDE.

Except that I do also like to have, at my disposal, the current stable version of my software, including my desktop environment. While there's some talk on the Linux Mint channels about a new KDE distribution coming some time soon(ish), I can no longer pretend. Linux Mint has let me down. Last night, I downloaded the latest Oneric-based Kubuntu and installed it on my computer. My OS is up to date and I've got a recent, and stable, KDE (and Project Neon too). 

The point of all this is that I have, more than once, abandoned a distribution for its desktop environment, or its support of a desktop environment. And, as I demonstrated last night, I'll do it again. And again. You can subtract one from those Linux Mint numbers and add one to Kubuntu because I'm back to Kubuntu, Baby!. You're dang right the desktop environment matters. It matters a lot. To me. And to others. Is this, however, what's hurting Ubuntu's numbers? Maybe not, but it's not that crazy an idea. 

So . . . are you a until recently happy Ubuntu user who has switched to Linux Mint? Was it Unity, or something else?

As for my opinion . . . I also loved Window Maker and used it for years. Read into that what you desire.

Pages

Subscribe to Cooking With Linux RSS


Main menu 2

by Dr. Radut.