Saturday, December 29, 2007

Transform Linux into a Talking Companion

TTSText-to-speech is really convenient, especially when you are lazy like me. Festival enables us to achieve a TTS system with limitless possibilities thanks to our Linux bash shell. I will show you some ways that we can use Festival as an enabler to our laziness and also produce some really cool and useful effects when coupling this technology with common things like PHP, cron, dnotify, or login scripts.


Remember the movie 2001: A Space Odyssey? I’d like to think that I am Dave, I just hope that my PC doesn’t turn on me (Although, I think it has in the past).


Credit were credit is due - some ideas from xenocafe.com and linuxgazette.net.


image via link

 


Installation


You need to install Festival. su root if need be.


Ubuntu:


sudo apt-get install festival festvox-kallpc16k

festvox-kallpc16k is the male american voice. Ubuntu doesn’t install a voice unless you specify which will cause the program to crash. Look in synaptic for other voices and language support.


Fedora - CentOS - Redhat:


yum install festival

openSUSE:


yast -i festival


The Basics


Now that we have Festival installed, lets start with the basics.


Make Festival say something:


echo “My talking Linux PC efin rocks” | festival --tts

Make Festival read a text file:


cat -A file.txt | festival --tts

Make Festival say the time:


date ‘+%I, %M %p’ | festival --tts



Festival and PHP Programming


Combining the Power of PHP and Festival we can do some cool things. You need to have a PHP CLI installed.


Make Festival say a random quote:


Contents of rquote.php (minus the PHP tags):




$quotes[] = 'Nothing is faster than the speed of light...To prove this to yourself, try opening the refrigerator door before the light comes on.';
$quotes[] = 'The FBI is watching YOU.';
$quotes[] = 'Vote anarchist.';

srand ((double) microtime() * 1000000);
$random_number = rand(0,count($quotes)-1);

echo ($quotes[$random_number]);







  1. $quotes[] = ‘Nothing is faster than the speed of light…To prove this to yourself, try opening the refrigerator door before the light comes on.’;



  2. $quotes[] = ‘The FBI is watching YOU.’;



  3. $quotes[] = ‘Vote anarchist.’;



  4.  



  5. srand ((double) microtime() * 1000000);



  6. $random_number = rand(0,count($quotes)-1);



  7.  



  8. echo ($quotes[$random_number]);





php rquote.php | festival --tts


Back to the Real World


You might be thinking,”Well that is great and dandy, I can make my PC talk. Woopty friggin doo.”.


We can do any number of other things that could be useful with desktop shortcuts, cron, dnotify, reading man pages, and more.


Create a desktop shortcut. You can then drag files on top of it to have Festival read the file (Yah! No more command line):


Create a file with the following contents named readit.desktop:


[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Name[en_US]=festival
Exec=festival --tts
Name=festival

Remind yourself of the time on the hour with cron:


crontab -e

Enter the following into the file:


0 * * * * username ~/time.sh

Contents of time.sh:


#!/bin/bash
date '+%I, %M %p' | festival --tts

Make it executable chmod u+x ~/time.sh.


Make Festival talk when a file has been accessed or changed using dnotify (HINT: You might have to install dnotify):


dnotify -CD /home/shane/Desktop -e echo "A file has changed on the desktop" | festival --tts

Make Festival read man pages to you:


Lets face it, no one likes to read man pages:


man lsof | festival --tts

The possibilities are endless


I hope you see all the possible things that you can have your computer talking to you about. I am acually going to have Festival (It would have been cool if they would have named it HAL 9000) read this article to me to check for grammar and spelling. The voice isn’t the greatest, it just takes a little getting used to. Check your repos for more voices. Let me know if you come up with something interesting in the comments and I will add it to the list. Now you should feel a little bit more like Dave Bowman!

Tuesday, December 25, 2007

Boot Linux Faster With An Open BIOS

Linux device designers looking for faster boot/reset times should consider alternative BIOSes, suggests Peter Seebach in a technical introduction to open BIOSes published on IBM’s DeveloperWorks website. Among other benefits, open BIOSes can save the time wasted by proprietary BIOS legacy support for MS-DOS and other unnecessary functions, Seebach notes.

According to Seebach, the proprietary BIOSes typically found in off-the-shelf PCs and boards often account for more than half of total boot time. And, much of this time is spent loading drivers and compiling information useful to legacy OSes such as DOS, but largely useless and redundant when using a modern OS such as Linux, which tends to do its own hardware probing, and load its own hardware drivers.

The solution, according to Seebach, is to replace proprietary BIOSes with open BIOSes. Open implementations can be configured or customized to perform only those initiatialization tasks that really are required, before bootstrapping the OS.

Seebach begins with an overview of Open Firmware, which he says provides a much more hacker-friendly alternative to proprietary BIOSes. Although developed by Sun and Apple for PowerPC, Open Firmware also has a lot to offer other architectures, including x86, writes Seebach.

Another interesting approach involves using Linux itself to initialize the hardware. The LinuxBIOS takes the approach of loading a small Linux kernel directly into the boot ROM. This approach is increasingly practical now that boards have 1-2MB of flash ROM onboard, according to Seebach.

Seebach notes that reflashing a board’s BIOS carries risk, because if the new BIOS fails to bring the board up, there will be no way to further reflash the BIOS without expensive, specialized equipment.

To read more about open alternative BIOS projects, read Seebach’s introductory article, here.

Monday, December 24, 2007

Top 20 Linux Apps for 2007

It seems like every blog on the internet has one of these, so here’s my picks for the top 20 Linux applications. I’ll be covering programs from all different categories that I think stand out and shine as true wonders of Linux and will be presented in no particular order. I’ll even go over a few that I think could use some work but have potential to be something great.

Audio/Video

1.K3B

K3B is KDE’s cd burning application and it has nearly every feature you’d want. It has an interface similar to Nero and its capabilities are on par with Nero. I use this application for all my burning needs. It is a standard program and should be in all major distributions’ package managers.

2.Audacity

Audacity is an audio editing software that lets you edit audio tracks quickly and easily and gives you a nice selection of default effects to modify your tracks. This is an excellent program for beginners that need to edit some audio for a home movie. It is also excellent for bands with low budgets to get some experience mixing and mastering their own tracks, I’ve heard some excellent sounding cds come as a result of Audacity.

3.Amarok

Amarok is an advanced media player for KDE. It features playlists, an equalizer, iPod support, video support, the Magnatune music store, album art, Wikipedia information for the selected band, Lyrics, a file browser to open tracks not yet in your library, last.fm support, custom themes, and alot more. Amarok is a full-featured product and can stand toe to toe with Windows Media Player.

4.DeVeDe

DeVeDe is a DVD ripping application with one of the simplest interfaces I’ve ever seen. You can burn it to disc, to an iso, or convert your video files to MPEG files. Quick and easy way to rip DVDs.

File Sharing

5.Deluge

Deluge has become my default torrent application. It has a simple interface but respectable options under the hood including encryption, plugins, and torrent creation. The protocol implementation in Deluge is impressive and transfer speeds are fast. Azureus is a good client, it has nice features and a well-designed interface but it is a memory hog. Deluge is the best Linux torrent client I’ve found and runs much faster and consumes far less resources than Azureus.

6.Tribler

An interesting combination of file sharing and social networking. It exists as a network of people who share their torrents and files and you can search for torrents right in the client. It’s basically taking web trackers out of the equation and creating a decentralized tracker. Features are a bit lacking and its still fairly buggy but its an interesting concept and could work if the app is nurtured well.

VoIP

7.mumble

mumble and murmur are open source alternatives to Teamspeak and Ventrilo. mumble is the client and murmur is the server. The interface is simple and intuitive, user management is handled in the client as of the latest svn release, and the sound quality is fantastic. The major kicker for this one is its efficient use of bandwidth. mumble uses significantly less RAM and bandwidth than either Teamspeak or Ventrilo. It is built on QT4 so you’ll need to get those extra libraries. This program could quite conceivably dethrone the big boys in their gaming VoIP dominance. mumble is available for both Linux and Windows so no matter which OS you game on, you can communicate with the rest of your friends.

Graphics

8.GIMP

The venerable GIMP has been around for a long time and has evolved into a serious competitor to Photoshop. I personally prefer to work in GIMP rather than Photoshop as most of the functions that I do alot are more easily accessible and the Script-Fu scripting language makes for easy creations of additional plugins. The interface can be a nuisance for some but once you get used to it, it’s hard to go back to Photoshop. Available for Linux and Windows.

9.Blender

Blender is a 3d modeling program in the vein of 3D Studio Max and Maya but with a unique interface which is daunting at first glance but very intuitive and easy to use once you get the hang of it. Many game designers that have worked with commercial programs for years prefer Blender’s interface and the output is of the same quality as any of those expensive commercial offerings. Blender is a masterpeice of open source enginuity and really shines in its field. Available for Linux and Windows.

10.Inkscape

Inkscape is an open source illustration app that rivals Adobe Illustrator in terms of both functionality and features. Some of the best freelance vector artists on the net use Inkscape and their work is amazing.

11.Xara LX

Xara is another vector illustration program that some would say is even better than Inkscape. For most people, either will do but the hardcore vector artists have made their choice over either Inkscape or Xara. If you’re looking for an open source vector graphics program, you should try both to see which fits your needs better.

12.Scribus

Yet another illustration oriented application focusing on page layout. Many people swear by this app and for good reason. Its slough of features such as CMYK color make this a valid alternative for anyone, not only people who can’t afford Acrobat Pro.

Games

13.Alien Arena 2007

AA2k7 is a first person deathmatch shooter based off the Quake 2 derivative CRX engine. CRX is an advanced engine rivaling the Q3 and UT2.5 engines. It is set in a Sci-Fi world of Martians and Humans battling it out for control of the galaxy. AA2k7 features some of the fastest, most brutal deathmatch action ever created. It sports a large community of battle-hungry fraggers ready to take you down anytime. Tournaments and clan matches happen fairly often (Martian Mayhem Tournament is every Sunday at 6 PM EDT) but more clans are wanted. This community uses mumble for their in-game voice chat solution. This game is available for both Linux and Windows.

14.Nexuiz

Nexuiz is another deathmatch brawl but it stems from the Darkplaces engine, a Quake 1 derivative engine that features many of the same eye candy as more advanced engines. The developers have done a good job making the Q1 engine look so good and the game play so well. Gameplay is reminiscent of Quake 2 and the weapon selection is decent. The Nex community is also very skilled and very active.

15.Warsow

Warsow is a Quake 2 derivative but feels more like Quake 3. It sports cell shaded graphics, trick jumping, and lots of steady action on the servers. Gameplay is deathmatch speed and features nice weapons balance. This game is a member of the Esports Reality Gaming League and has received lots of attention from serious gamers. Most of the players are based in Europe and for Americans, it can be rather challenging to find suitable servers sometimes.

16.Neverball

Neverball is an open source Super Monkey Ball clone that will keep your attention for weeks. It takes a steady hand to maneuver your ball through the various levels and once you get to the harder levels, you’ll be gritting your teeth and sweating with suspense. There are some insanely difficult levels for Neverball called Mehdi’s levels that I cant even begin to get through but there are some raging fanatics out there that do speed runs through them! Neverball is pure fun and should accompany anyone’s game collection.

17.Neverputt

Neverball’s companion game, that concentrates on that oldest of family traditions, mini golf. It is simply a mini golf game set in the Neverball engine with some very fun and very challenging holes. This one is a great one for Dad if he’s a golfer and likewise should be a part of anyone’s gaming collection.

18.Unreal Tournament 2004

That’s right folks, Linux DOES have commercial game support! UT2k4 is one of the largest multiplayer games in existence and for good reason. Its fast deathmatch is classic and it sports lots of other very fun game modes. I won’t go into much detail about this one since it is such a big game and obviously well known. You can pick this sucker up on Amazon for less than $15 and comes with a Linux binary installer.

19.Quake 3 Arena

Another quality commercial game available for Linux that everyone knows. Q3A is arguably the best deathmatch game ever created. It set the standard for future deathmatch games and remains one of the most popular FPS games on the Internet. Whether it be an online game with a bunch of strangers, a clan party with your best buds, or arch rivals in a competition, Q3A is a timeless classic that will be played for years to come. You can pick this up for $10 if you look hard enough.

20.Cedega

Cedega is a fairly controversial application in the Linux community. It’s based off the open source Wine but charges a $5 monthly fee. While some think this is unfair to the Wine developers, Cedega contributes alot of code to their product and its not just a frontend. This is known to run many Windows games including Counterstrike, World of Warcraft, and Madden 07 along with hundreds of other games that I wont list here. Lots of gamers don’t realize that they have this option or are reluctant to pay the price but I assure you its worth it. For hardcore gamers, this is a great tool to have as it plays those Windows games better than Windows does much of the time because it doesn’t quite have support for some of the fancier things that DirectX can do so you get better framerates as a result.

I know this is only 20 apps and there are many more out there just waiting to work for you. Share your favorite Linux/OSS applications!

if you are interested check some more lists of linux games:
Top Ubuntu Linux Games

Top 21 Linux Games Of 2007

Thursday, December 20, 2007

300+ Easily Installed Free Fonts for Ubuntu

Ubuntu offers a lot of fonts, in addition to the defaults installed, and the MicroSoft msttcorefonts package, in its repositories. All these fonts mentioned here are provided as packages, which can easily installed using command line tools like apt-get or using Synaptic. These fonts will come in handy for designing flyers, or for designing headers and graphics for the web using the Gimp. Also, some of these fonts are pretty commonly used to render pages, like Lucida.


I will save the packages with the biggest collection of fonts for the end here. Since I have included screenshots of most of the fonts, and this article is sorta long, please read on by clicking the “More” link below.



Gentium


This is one of my favorite fonts. Gentium calls itself a “Typeface for the Nations”, and looks beautiful. You can install Gentium by doing a:

$sudo apt-get install ttf-gentium

Sample of Gentium Font


The design is intended to be highly readable, reasonably compact, and visually attractive. The additional ‘extended’ Latin letters are designed to naturally harmonize with the traditional 26 ones. Diacritics are treated with careful thought and attention to their use. Gentium also supports both polytonic and monotonic Greek, including a number of alternate forms. These fonts were originally the product of two years of research and study by the designer at the University of Reading, England, as part of an MA program in Typeface Design.


Fonts from Dustismo


These designer fonts were designed by Dustin Norlander of Dustismo. Here’s some sample of the fonts:


ttf-dustin font samples 1

ttf-dustin font samples 2


You can install all of Dustin’s fonts using:

$sudo apt-get install ttf-dustin


George Williams’ Fonts


George Williams is a font developer (with his own Wikipedia page, no less!) who provided the fonts Monospace, Caslon, Caliban and Cupola. Check out the samples below:

Preview of George Williams' Truetype fonts

You can install these fonts using:

$sudo apt-get install ttf-georgewilliams


Some Juicy Fonts


The ttf-sjfonts package provides the two fonts, Delphine and Steve Hand which are also available from sourceforge. These are two handwriting fonts, as seen below:

Preview of Steve Hand and Delphine fonts

You can install these two fonts using:

$sudo apt-get install ttf-sjfonts


Sun Java6 Fonts - Lucida


Installing the sun-java6-fonts package installs the Lucida fonts and also installs the java6 binary package - so if you install the font package you get Java6 for free! This seems to be weird, but this post is about fonts. The package install Lucida Sans, Lucida Bright and Lucida Typewriter:

Sun Java6 fonts - including Lucida Sans, Bright and Typewriter


You can install these three fonts using:

$sudo apt-get install sun-java6-fonts

Caution: This will also install sun-java6-bin etc - so you will have a working Sun Java 6 if you choose to install this. This is not a “bad” thing, but it can take some time to download and install.


Larabie Fonts


Ray Larabie has been “making fonts and giving them away since 1996″ on the popular font destination LarabieFonts.com. We have three packages in Ubuntu that provide the Larabie fonts, or at least the ones that are free. These three packages provide the “Deco”, “Straight” and “Uncommon” Larabie fonts. Since there are way too many of these fonts, 300+ ? I lost count after a hundred :-), I will link you to a pdf file with samples of all the fonts. Click on the preview below to see the Larabie Fonts Catalogue (Size: 2.5 MB):

Larabie Fonts Sample

You can install all of the Larabie fonts using:

$sudo apt-get install ttf-larabie-deco ttf-larabie-straight ttf-larabie-uncommon

Of course, you could just install one of these packs by removing the names of the other two packages.


Summary


If you want to get all the fonts in one go, use the following command:

$sudo apt-get install ttf-gentium ttf-dustin ttf-georgewilliams ttf-sjfonts sun-java6-fonts ttf-larabie-deco ttf-larabie-straight ttf-larabie-uncommon


These fonts should together provide enough gunpowder for the novice graphic designer in Ubuntu. If you are wondering how I took the sample screenshots, the answer is gnome-specimen, which provides an easy way to preview the fonts installed on your system. It can be installed using:

$sudo apt-get install gnome-specimen


To see more free fonts that are available for Linux systems, visit the Free Font Resources for Open Source OSes Page - it seems to be current since I can already find the Red Hat Liberation Font listed there.


If I missed any TrueType font packages in Ubuntu here, please let me know in the comments.


Update: If you add Seveas’ feisty-extras repository, you can get your hands on the ttf-fossfonts package.


ttf-fossfonts is a collection of 108 GPL/Public-Domain licenced .ttf fonts. Included are the Tuffy family with extended members, and the Open Bar Codes project fonts. The package suggests several other worthwhile font packages.