Fight for the Internet 1!

Wednesday, April 29, 2009

Ubuntu Jaunty - No Ctrl+Alt+BackSpace for You!

So Ubuntu 9.04 Jaunty has by default disabled the Ctrl+Alt+Backspace keysequence for restarting the X Server. For some advanced Linux users, this might be completely offensive. But let's remember that Ubuntu us targeting both existing Linux users in addition to newbies.

To Reverse / Fix

KDE 3.5
If you are using KDE 3.5 in Jaunty, you reverse this change to normal behavior by adding this code to your xorg.conf:
Section "ServerFlags"
Option "DontZap" "off"
EndSection
KDE 4
1) Install the “dontzap” package (hopefully this step can be skipped in the future):
sudo apt-get install dontzap

2) Launch “systemsettings” and select the “Display” module

3) Click on the checkbox labeled “Ctrl+Alt+Backspace restarts the xserver” and press the apply button.
After that, type in your password. You know the drill.

Thoughts
Sometimes I wonder about things like this begin cropping up in future releases. But honestly, as far as I am concerned, so long as I have the power to re-enable whatever feature was taken away, I don't see a problem here. Others may disagree, but overall I feel confident that this will be a non-issue.

Sunday, April 26, 2009

Kubuntu 9.04 with KDE3.5 released!

Kubuntu 9.04 with KDE3.5 has been released! Get your ISO images here.

For some reason, the torrent never worked for me, despite fiddling with my settings quite a bit. I had to download the ISO file in the end, but that was very fast.

For more details on the release, go here.

Thursday, April 23, 2009

Kubuntu 9.04 with KDE 3.5 slightly delayed

So according to the Kubuntu download pages, the release of Kubuntu 9.04 with KDE 3.5 packaged by default is slightly delayed. I will personally be watching for this attentively myself, but for those who want to watch themselves, check kubuntu.org, and https://wiki.kubuntu.org/Kubuntu/Kde3/Jaunty for updates.

Wednesday, April 22, 2009

Text to Speech in Linux

After using my friend's Amazon Kindle 2 and its Text-to-Speech (TTS) feature to read something I had written, I became interested in getting a TTS program for my own use. The best solution I have found was a combination of KDE's Text-to-Speech manager and an external TTS program.

KDE's readily available TTS system integration makes me proud of how the open-source and Linux communities attempt to help people for free.

Part 1 Choosing a TTS Program
Most TTS software in Linux does not seem to provide a graphical user interface for control, just a command line utility. This utility can be tied to a graphical controller, but first you must choose which TTS program option is right for you.

Option #1: For the Free of Charge or Open-Source only People
For the people not willing to pay for any TTS software (and yes, there is some good stuff available for Linux), or for those who will only use completely Open-Source material, Festival + some other voices is probably your best option.

Festival
Festival is a general multi-lingual speech synthesis system and it is probably the first thing one will encounter when researching TTS in Linux. It is well supported in Linux and I personally was able to get it to read a text file within minutes.

To get it to work with kttsmgr, there was no editing of configuration files necessary, but to use it directly from command line I had to add this /etc/festival.scm for ALSA sound support:
(Parameter.set 'Audio_Command "aplay -D plug:dmix -q -c 1 -t raw -f s16 -r $SR $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Format 'snd)
In festival, the voice synthesis is pretty good, though I found it sometimes too fast, particularly over some punctuation, and the voice is obviously synthetic. If you are hoping for something a little different, read about solution #2.

This is a really great tutorial on how to get Festival working with a variety of other voices that are available.

If you are interested in using Festival, but want different voices, Option #2's voices can be made to work with Festival as well.

MBROLA
MBROLA will frequently pop up on Google during TTS searches, or at least it did for me. Wikipedia explains this project better than I, but simply put: It is a free system for enhancing the quality of TTS systems, but it is not itself a full TTS system. MBROLA can be used along with Festival, as the tutorial link above will show.

Linux-Sound.org/Speech
This webpage is a great resource for the many numerous TTS systems and projects in Linux and the open-source world. If you want additionally information about TTS and other related projects, I suggest you go there.

Option #2: Purchased voiced & Closed source
For those willing to pay a little to buy a TTS voice and are willing to use a closed source TTS project, I suggest Cepstral. Their product is very high quality and is available for Linux (32 and 64 bit), Windows and Mac OS. Take a look at their demos and you can tell fairly quickly if their product is right for you.

Their Windows version comes with a nice and simply GUI program to read text, and provides graphical configuration of the programs voice, which is fairly customizable. Their Linux version(s), as far as I can tell, comes with only a command line utility, but they product documention on their website FAQs about using their program with KDE's TTS manager.

Part 2 Configuring a Frontend Graphical Controller
While there may be other controllers, I used KDE's program: kttsmgr. This is their Text-To-Speech manager and it supports a great variety of TTS command line programs.

There are plenty of tutorials on getting Festival to work with kttsmgr.

Update: Besides making sure you install a festival voice, I am not even sure any additional configuration is necessary beyond going through the kttsmgr and adding a talker.

Option #2 Cepstral with kttsmgr
[Taken from Cepstral's own FAQ docs]
To integrate Cepstral voices into the KTTS text-to-speech system (present in KDE 3.4 or later), first select KTTS from the KDE menu or run kttsmgr from the command line to open the configuration manager.

In the Talkers tab, click the Add button to add a new voice. Now, select the "Show All" option for synthesizers, choose the Command synthesizer, and click OK. You'll now be asked to choose a language. Select anything here, as it will be ignored. Finally, it's time to specify the swift command to run. To speak using the default voice, use:

swift %t -o %w

If you want a specific voice, use the -n switch like this:

swift %t -o %w -n Isabelle

You'll also want to select Latin1 as the character set. Click OK, then Apply to set the current voice. Your voice should now work in any KDE app that uses KTTS.
I found that selecting UTF-8 instead of Latin1 caused no problems, but I am also not using any sort of foreign language texts.

Update: When using Cepstral's swift on the command line, you may encounter OSS sound compatibility errors. Install the package alsa-oss and use the program it provides 'aoss' to act as a sound wrapping layer for ALSA. For example:
aoss swift -f file.txt
Recommendations
Try Festival and if it meets your needs, great. Personally I needed something like Cepstral and I was happy to pay for the voice. It worked great with my software.

Amazon Kindle's Text to Speech legal thoughts

Just a quick post: I found an article with a lawyer discussing the implications of the Authors Guild's resistance to Amazon's Text to Speech feature in their Kindle. He makes some great points.

http://www.guardian.co.uk/technology/2009/mar/31/cory-doctorow-kindle

Monday, April 20, 2009

Swiftfox (AMD/Intel optimized Firefox)

Overview
"Swiftfox is an optimized build of Mozilla Firefox. Swiftfox has builds for both AMD and Intel processors and is based on the most cutting edge Firefox source code available."

I learned about Swiftfox while investigating some slow performance I have been experiencing in my normal Firefox. When trying Swiftfox, even after only a few minutes, I noticed some improved "snappiness" in my browsing. That is to say, I noticed switching between tabs was faster, graphics and pages both loaded and refreshed more quickly, and Gmail was significantly faster and more responsive.

Optimizations
Here is some information from the Wikipedia page on Swiftfox. It is interesting to note that the compiled binaries were made using GCC version 4.0.x, while I know for a fact that later version of the 4.x GCC compiler have improved optimizations. Under different circumstances, I might assume this would result in lesser performance, but since the Swiftfox creator has a knowledge of assembly instructions for several architectures, I am willing to give him the benefit of the doubt for knowing what he is doing by using an older compiler.

The Swiftfox build is optimized using the following methods:

Binary code optimization

Increased Security

  • Better protection from Buffer overflow attacks[6] (Swiftfox 2.0 uses -D_FORTIFY_SOURCE=2; Firefox 2.0 uses gcc 3.x, which does not support this).[2]

Simplify

Changed default preference values


Conclusion
It is a bit early for a conclusion yet. I'm going to keep trying to use it and see how it continues to performs. The next few days will give me a good idea of how fast it really works compared to regular Firefox.

For more information on Swiftfox, go to: http://getswiftfox.com/

Currently there is no PGP apt-package signing available for the Swiftfox repositories. If anyone learns of some, please let me know.

Update
Ironically, no sooner do I start investigating some benchmark tests for Swiftfox, than I discover an alternative to Swiftfox named SwiftWeasel. I am going to be investigating both of these browsers in time and I will bring you reports of what I discover.

Sunday, April 19, 2009

GCC does everything MSVC does, and more

I came across a very encouraging report on compiler optimizations. I am bringing you some of the selected comparision results between GCC and MSVC. Source for this information is Software optimization resources published by Agner Fog. In particular, I used this PDF, which was last updated January 23, 2009.

The table in the PDF source states these results were from GCC 4.1 and MSVC 2005 which are probably from his original publication in late 2008. However I do not know what updates occured since, so these could be taken from later versions of either compiler. I do not know about MSVC, but I know for sure that GCC 4.2 and 4.3 are just getting faster and faster, and that is not counting LLVM.

One thing this evidence shows is clear: Saying MSVC produces faster binaries than GCC is simply not true, especially if they don't specify compiler versions and platforms and computing task. The next time you hear someone rip on the GCC compiler for being slow without specifics, just laugh in their face.