Tuesday, 13 February 2007

Buy two O'Reilly books and get another book free

O'Reilly is celebrating February 2007 as the Web Design and Development month. And they have put together a special resource page dedicated to web development essentials including books, PDF Short Cuts, articles, and author events.

The highlight of the event is the above average discounts they are providing for all these web development titles which includes a massive 35% off for each title you buy (use the code 'DSUG' on their site) and if you buy two titles, you get a third one free (use the discount code 'opc10'). It is one option or the other. You cannot obviously get 35% off and a free book simultaneously as the discount codes are different. But seeing the line up of books, I can only say that this is a good opportunity to pick up a couple of web development books. I especially find the "Cascading Style Sheets: The Definitive Guide" book rather tempting. Explore more web titles on the special resource page. There's also free ground shipping in the US on orders over $29.95.

Free device driver development for Linux - courtesy of Linux kernel community

Here is an interesting news fresh out of the oven ... The Linux kernel community is offering all companies free Linux driver development. The modus operandi is perceived to be as follows :

Suppose company A has a device which it needs to work in Linux...

The company sends the specification of the device to the kernel development team. If they do not have the specifications, they may also send the contact mail of their engineer who knows about the device and is willing to answer an occasional question about the device.

Once the device driver has been developed, it is incorporated into the main Linux kernel source tree so that all Linux users who own the device will benefit from it. This driver will work with all of the different CPU types supported by Linux.

This is what the article has to say about non disclosure agreements (NDAs) and I quote :
If your company is worried about NDA issues surrounding your device's specifications, we have arranged a program with OSDL/TLF's Tech Board to provide the legal framework where a company can interact with a member of the kernel community in order to properly assure that all needed NDA requirements are fulfilled.
Apart from the original article, you can also read an FAQ about the declaration here.

Monday, 12 February 2007

A collection of specialized Linux links

Here I have listed some of the popular websites related to Linux which concentrate on providing support for a specialized set of functions in GNU/Linux such as sound/audio, printing and so on. And these are the first sites to visit when you are faced with problems related to these functions.
  • Open Printing - Formerly known as linuxprinting.org, this site is a one stop resource for all your printer related problems in GNU/Linux. Does your newly bought printer refuse to cooperate with Linux , are you looking to buy a printer but want to make sure that the one you buy should fully support Linux, then this site is for you. It contains a database of all the printer models categorized into different groups depending upon the degree of support they provide for GNU/Linux as well as the relevant drivers for the printers if you need them.

  • ALSA Project (Sound drivers) - Alsa is synonymous with sound. There was a time when you had to slog it out to get sound to work correctly in GNU/Linux. In those early years, Linux made use of the OSS sound drivers which showed many shortcomings. ALSA project was born specifically to provide more modular sound drivers and also to address the shortcomings of OSS. Any time you are faced with some sound problems such as say GNU/Linux doesn't support your sound card (a rarity these days), then this is the site to visit to find a solution to these issues.

  • Linux-USB.org - This website serves as a central point of information for USB support under Linux. There are a growing number of devices from digital cameras, to mobile phones, music players, network devices and so on which have USB support. This website documents which all devices have USB drivers in Linux as well as the degree of support provided. Also check out this site which complements the linux-usb.org site in listing the different USB devices which are supported in Linux

  • TLDP.org - short for "The Linux Documentation Project" consists of a loosely knit team of volunteers who provide documentation for many aspects of Linux. On this site, you will find several forms of documentation such as Guides, HOWTOs, man pages, and FAQs related to all facets of GNU/Linux.

  • NetKit.org - This is a site which caters to that section of Linux enthusiasts who are more inclined to learn and pick up skills in networking in Linux. NetKit allows one to set up ones own virtual networking lab which can be used to study complex networks all on ones personal computer. To make it possible, Netkit heavily relies on User Mode Linux. NetKit offer the users an easy-to-use-and-install package, which at the same time implements effective network emulation.

  • Qmailrocks.org - This site is a comprehensive qmail installation resource. Qmail by the way is a mail transport agent similar to the ubiquitous sendmail. But unlike sendmail, qmail is famed for its ease of configuration. Qmailrocks.org was put together to provide a free and open resource for anyone needing help with the installation and configuration of qmail.

  • Netfilter.org - Anybody who is used to running a firewall on GNU/Linux would be aware of iptables which form the work horse of the concept called a firewall in Linux. And iptables is developed and maintained by the netfilter development team. Here you will find lots of howtos, documentation, tutorials and tips on making full use of the numerous features of iptables firewall.

  • Ndiswrapper List - This page contain a list of cards known to work with ndiswrapper.

  • Hardware compatibility list (HCL) - This is a Linux hardware compatibility list maintained at Linuxquestions.org.

  • Linux Laptop.net - This site has a detailed list of all the makes of laptops categorized according to the manufacturer and containing different user's experiences in running Linux on them. A must visit site if you are interested in buying a laptop.

  • HCL list @ Ubuntu - This is the official Ubuntu HCL for Linux.

  • Intel Linux Wireless.org - This is an official Intel site where you can learn about and download the latest development versions of the Linux-based wireless drivers for Intel adapters.
Note to readers: When ever I come across interesting websites related to Linux, I usually bookmark them for future reference. Over a period of time, I have built up an eclectic collection of links related to GNU/Linux or Unix which provide good information. Earlier, I had featured a slice of those links on the right hand column of this blog. I couldn't feature all the links there due to lack of space. Now, with a revamp of this site design, I decided to move them to their own individual pages. This post is the continuation of a series of such posts.

This article will be updated as and when I come across specialized websites related to GNU/Linux.

Sunday, 11 February 2007

links2 - a cross platform console based web browser which also renders images

Recently, while I was browsing a website in Firefox, I found that it took forever to load the concerned web page. Blame it on my internet connection or on the condition of the web server hosting the web page, I was literally fed up with the wait and closed the window with disgust. It was during this time that I wondered whether it will make my browsing experience a bit more pleasant if I switched to a console web browser such as lynx.

I am aware of a number of web browsers which have a very low memory foot print and also which discard plenty of fluff - which you find increasingly in websites being built now a days - while displaying web pages. Some of these web browsers being Dillo, Lynx and Links. Dillo is a web browser which require an X server to run. But the other two are console web browsers which display only text.

Links2 is a web browser which is based on 'links' and can be run in two modes. It will display web pages only in text when run in console mode and renders images in a variety of graphics formats such as PNG, Jpeg, Gif, Tiff and Xbm when run in graphics mode from within a X window system.

You have to see it in action to actually fathom how it renders the web pages. I have included a couple of screenshots of web pages as viewed in links2 below.

Fig: All about Linux blog rendered in links2.

Fig: Google News page rendered in links2

Fig: Links2 homepage viewed from links2

As you can see from the screenshots, websites which are built using tables are rendered properly where as those which use CSS lose their layout but are still equally readable. This is because links2 does not yet support CSS.

You can install links2 in Debian based Linux distributions by executing the following command :
# apt-get install links2
One of the good things I like about links2 apart from it rendering web pages in the blink of the eye are the number of keyboard shortcuts it supports. Considering that this web browser is also designed to be run in console mode, each and every function can be accessed entirely using the keyboard. Some of the shortcuts I found really convenient are as follows :
  • '\' - toggle between viewing the web page and its source code.
  • '/' - used to search for a word or term in the website that is displayed.
  • [Esc] key - Shows a menu at the top of the browser from which you can also make choices.
  • '=' - Provides further information about the web page such as its size, the web server serving the web page and its url.
  • '|' - Pipe displays the header information.
  • '<- ' - left arrow will take you to the previous view. '->' - right arrow will take you forward to the latest view.
  • [Page up] and [Page down] - these keys can be used to navigate through the web page one page at a time. But you can also use [Space bar] and 'b' key combination for the same.
  • 'g' - will pop-up a dialog box where you can enter the url of the website you want to view. To open this dialog box with the url of the current page already entered, press 'G'.
  • Move the mouse pointer over an image and press 'i' to see only the image.
Features of links2 are varied and many. Some of them being support for javascript, background downloading of files, built in image display for Gif, Jpeg, Xbm, Tiff and Png file formats and built-in fonts in the executable without reliance on any fonts installed in the system just to name a few. You can read the entire list of features at the links2 features page.

Starting links2 in graphics mode
To start links2 in graphics mode which is the mode which displays the images, use the '-g' option with the links2 command :
$links2 -g
The above command will probe all the installed graphics drivers and run on the first found. The drivers that are supported in links2 are x, svgalib, fb, directfb, pmshell and atheos. But if you want to start links2 with a specific driver say driver 'x', pass the value to the '-driver' option as follows :
$ links2 -driver x
links2 also has a lot of other options such as say, you want to save the contents of a webpage to your hard disk. This is easily achieved by using the -dump option as follows :
$ links2 -dump http://news.google.com > news.txt
... which will save the contents of the news.google.com page into the 'news.txt' text file. Which means, using this method you can literally strip all the html elements and save only the text into file. There are a whole lot of command line switches available for links2 from those for changing the foreground and background of the webpage that is viewed to conducting a name lookup of a web address. Check the man page of links2 for more options.

Configuring Links2
As with all things related to Linux and Unix, links2 web browser also stores all its configuration parameters in a text file. If you look into your home directory, you will find a hidden directory called .links2/ which contain all the files pertaining to the user's configuration. It is in the '.links2' directory that links2 web browser stores details such as your bookmarks, the browsing history and the per user configuration details.

The configuration details are stored in the links.cfg text file which is also created in the same location. This file is automatically created by links2 when you make changes to the configuration of the web browser and need not be edited manually by the user. But it is interesting to see the data that is entered in this file. My links.cfg file shows the following details :
# FILE: ~/.links2/links.cfg
# This file is automatically generated by Links -- please do not edit.
async_dns 1
download_utime 0
max_connections 10
max_connections_to_host 8
retries 3
receive_timeout 120
unrestartable_receive_timeout 600
format_cache_size 5
memory_cache_size 1M
image_cache_size 1M
http_proxy ""
ftp_proxy ""
download_dir ""
language "English"
http_bugs.http10 0
http_bugs.allow_blacklist 1
http_bugs.bug_302_redirect 1
http_bugs.bug_post_no_keepalive 0
http_bugs.no_accept_charset 0
http_bugs.retry_internal_errors 0
http_bugs.aggressive_cache 1
http_referer 0
fake_useragent ""
fake_referer ""
ftp.anonymous_password "somebody@host.domain"
ftp.use_passive 0
ftp.fast 0
ftp.set_iptos 1
menu_font_size 16
background_color 14540253
foreground_color 0
scroll_bar_area_color 11184810
scroll_bar_bar_color 0
scroll_bar_frame_color 0
display_red_gamma 2.2000
display_green_gamma 2.2000
display_blue_gamma 2.2000
user_gamma 1.0000
bfu_aspect 1.0000
aspect_on 1
dither_letters 1
dither_images 1
display_optimize 0
gamma_correction 2
enable_javascript 1
verbose_javascript_errors 0
verbose_javascript_warnings 0
enable_all_conversions 1
enable_global_resolution 1
javascript_manual_confirmation 1
js_recursion_depth 100
js_memory_limit 5k
bookmarks_codepage us-ascii
bookmarks_file "/home/octoedge/.links2/bookmarks.html"
extension "aif,aiff,aifc" "audio/x-aiff"
extension "au,snd" "audio/basic"
extension "avi" "video/x-msvideo"
extension "deb" "application/x-debian-package"
extension "dl" "video/dl"
extension "dxf" "application/dxf"
extension "dvi" "application/x-dvi"
extension "fli" "video/fli"
extension "g" "application/brlcad"
extension "gbr" "application/gerber"
extension "gif" "image/gif"
extension "gl" "video/gl"
extension "grb" "application/gerber"
extension "jpg,jpeg,jpe" "image/jpeg"
extension "mid,midi" "audio/midi"
extension "mpeg,mpg,mpe" "video/mpeg"
extension "pbm" "image/x-portable-bitmap"
extension "pcb" "application/pcb"
extension "pdf" "application/pdf"
extension "pgm" "image/x-portable-graymap"
extension "pgp" "application/pgp-signature"
extension "png" "image/png"
extension "pnm" "image/x-portable-anymap"
extension "ppm" "image/x-portable-pixmap"
extension "ppt" "application/powerpoint"
extension "ps,eps,ai" "application/postscript"
extension "qt,mov" "video/quicktime"
extension "ra,rm,ram" "audio/x-pn-realaudio"
extension "rtf" "application/rtf"
extension "sch" "application/gschem"
extension "svg" "image/svg"
extension "swf" "application/x-shockwave-flash"
extension "sxw" "application/x-openoffice"
extension "tga" "image/targa"
extension "tiff,tif" "image/tiff"
extension "wav" "audio/x-wav"
extension "xbm" "image/x-xbitmap"
extension "xls" "application/excel"
extension "xpm" "image/x-xpixmap"
video_driver "x" "1024x675" "" ISO-8859-1
I found this web browser really sleek and easy to use. Considering that it renders graphic images without any problem when run in X windows, this could easily be a good replacement for the mainstream web browsers where one is concerned only in reading the content of a website without the usual distractions such as flash based websites and fancy CSS. Oh yeah, you can also say good bye to most ads you see cluttering websites these days when you use links2.

Friday, 9 February 2007

Introducing the new design of the 'All about Linux' blog

I am sure the regular readers of this blog have noticed the change. This Linux blog has had a make over. Even though it would seem sudden to the regular readers of this blog , I had long perceived this change to be inevitable. Not that I found anything wrong with the old design but when Google upgraded the blogger blog engine to include a flood of features, it also made drastic changes to the template.

As with all things related to Google, quality plays a very important role. And at least with blogs hosted on blogger.com, backward compatibility also rates quite high. What does backward compatibility mean as far as this blog is concerned, you ask ? Well, there are over 360 articles on this 2 year old blog, many of them quite popular. When I decided to eventually make the switch from the old blogger engine to the new blogger engine, the entire switch completed in less than 2 minutes. And to underline the google trademark, all the page addresses, as well as the old template was preserved intact across the switch. So as far as the visitors of this blog need concern, so long as you did not visit during the actual time of the switch, you won't have noticed the change-over at all.

So the question in your minds must be why did I tinker with the design of the site, right ? With the old template, I wouldn't have been able to make use of a number of new features that Google has incorporated in the new blogger.com the most visible of them being 'categories' - the exact terminology used by Google is 'labels'. The blogger developers have also made it much easier to edit the style and color of the blogs by incorporating - believe it or not - drag and drop placement. So even a non-techie guy will now be able to put together his own personalized blog with out tinkering with any HTML code. I will explain the new features of blogger.com in a succeeding post.

As you can see, now instead of a two column layout, this blog features a three column layout. The blog is much more wider and is quite viewable in 800x600 and above resolutions. There is lots more white space which will allow the readers better clarity of thought while reading the articles. And the individual pages of this blog loads faster than it were before the switch. I hope all of you find the new design of this blog quite refreshing. However, this is not the final version of the design, I will be tweaking it bit-by-bit in the coming days or weeks and hopefully will be able to work out something even better. Though I concede, I do not have the stamina to do it in one go ;-).

Wednesday, 7 February 2007

Book Review: Beginning SuSE Linux - 2nd Edition

SuSE Linux, one of the oldest Linux distribution was originally developed by a German company. Not many people will know that SuSE is an acronym in the German language for "Software und System-Entwicklung" which translates as software and system development. Over time, SuSE has gained a reputation as a robust, secure and easy to use Linux distribution both on the server and desktop front.

The book "Beginning SuSE Linux" is authored by Kier Thomas and published by APress. As the name of the book indicates, it is geared towards beginners in GNU/Linux who have set their eyes on trying out the SuSE Linux distribution. The book is divided into 7 different parts with the first part of the book discussing the pros and cons of using Linux as a part of ones daily routine. In this part, the author gives a well balanced view of what Linux is all about and the history behind its formation.

The second part of this book contain chapters which hand hold a person in installing SuSE Linux on ones machine. The author starts by explaining the concept of partitions, backing up your data and the benefits of dual booting between diverse OSes. The 5th chapter titled "Installing SUSE Linux" gives a thorough introduction to installing this Linux distribution on ones machine. And the steps are accompanied by screen-shots which makes it rather intuitive to follow. SuSE provides a number of installation modes and one gets to know the best way of installing it. One thing worth noting is that SuSE allows the user to shrink his Windows partition from within its Installer and this book explains it in a clear way in the section on partitioning the disk. In fact the manner in which the author has explained the steps leaves no room for doubts while installing SuSE. The succeeding chapter lists the possible problems one might face and the solutions for these problems. Most Linux users would be aware of one or more of these problems but to a new Linux user, these could be a real time saver and will save their sanity when they face these problems.

Part 3 of this book is titled "The No-Nonsense getting started guide" and has a collection of 6 chapters. These chapters give a good introduction to the SuSE Desktop - more specifically to the Gnome desktop which is the default one in SuSE. In the 8th chapter titled "Getting everything up and running", the author explains how to setup and configure the diverse hardware which form a part and parcel of a computer. For instance, this chapter deals with configuring the sound card, setting up and managing the printer including a printer on the network which is connected to a Windows machine, importing photos from a digital camera and more. But what is worth noting is that SuSE has its own unique methods and GUI tools to accomplish these tasks and the author explains these via the SuSE specific tools where ever applicable.

There is a separate chapter on securing the machine running SuSE Linux where the author impresses upon the readers the necessity of securing ones machine. He further goes on to explain the different ways of securing SuSE which includes steps to update the software. This chapter also dwells deeply on using Aparmor - SUSE's industrial grade security system.

It is really thoughtful of the author to include a chapter detailing the various commonly used Windows software and their possible Free replacements.

The 4th part of the book titled "Shell and beyond" comprises of 5 chapters deals with educating the new Linux user on the usage of command line to accomplish ones tasks. The author starts by providing a gentle introduction to the shell, the different terminals available in Linux and then gradually moves on to explain the usage of different commands which provide the true power to Linux. In the chapter titled "Understanding Linux files and users", he gives a detailed explanation of the concept of files, their permissions and how they relate in the Linux as well as explain the concept of mounting. Even though I was conversant with most of what the author was explaining, reading the book, I couldn't help feel that this book is an excellent resource for a Linux neophyte who is looking forward to taking his first baby steps in learning to be productive in Linux, more specifically SuSE Linux.

The next three chapters deal with getting SuSE Linux to play all the proprietary music and video file formats. One of the inherent disadvantages of Linux owed mostly due to the ideological stance of GPL is that it cannot play music and video encoded in a proprietary file format out of the box. But with a little effort, it is possible to provide support for these proprietary file formats in Linux. In these chapters, the author gives a good run down on the various music and video codecs and ways of getting support for them in SuSE Linux. He introduces different software which allow one to not only just play music but also to categorize, burn music onto removable media and even rip music from audio CDs and save them on to ones hard disk. Surprisingly, I found this book much more than a mere how-to-do-it sort of book as the author provides details of related facts from a lay man's perspective where ever applicable. For instance, in the chapter titled "Movies and Multimedia", while explaining how to enable media players to play the files encoded in these formats, he impresses upon the readers the ethical issues surrounding the DRM and patents.

There is a whole chapter dedicated to image manipulation where many features of the GIMP software has been explained. The author has done a splendid job of explaining this image manipulation editor within the constrains of this chapter.

The next 8 chapters deal with using SuSE in an office setup. SuSE Linux comes bundled with a plethora of applications which form a part and parcel of any office setup. This includes word processors, spreadsheets, a database, presentation software and email client just to name a few of them. This book has dedicated a chapter each in explaining how to put these software to productive use in an office setup. Catering to those die hard MS Word enthusiasts, there is also a chapter on making MS Office to work natively in SuSE Linux if at all you have a licensed copy of it lying around.

The seventh and final part of the book titled "Keeping your System Running" provides details on the vagaries of system administration such as installing, removing and updating software binaries, compiling software from source and installing it, managing users and groups optimizing your system, backing up data and scheduling tasks.

The final chapter which is the 34th chapter of this book deals with explaining various ways of connecting to the SuSE Linux machine remotely where the author explains about SSH and related tools.

This book contain three appendices with a glossary of Linux terms being one of them where the newbies among us gets to understand the meaning of Linux related geek terms. There is also an appendix containing a Bash command index which - embracing authors own words - provides a whistle stop tour of commands that can be used at the Bash Shell.

Book Specifications
Name : Beginning SuSE Linux - From Novice to Professional (2nd Edition)
ISBN No : 1-59059-674-9
Author : Kier Thomas
Publisher : APress
No of Pages : 728
Price : Check the latest price at Amazon.com
Rating : A comprehensive book, ideal for newbies who wish to learn to be well versed in installing and using SuSE Linux.

I have always maintained that writing a good book is an art. It is not just enough if the person is well versed in his area of expertise. Rather, he should also be a good communicator and should be able to sustain the reader's interest in the subject through out the book. Kier Thomas shines through in his narration of the concepts quite well. He explains in a simple, lucid and entertaining way different ways of configuring things in SuSE Linux from a users perspective. This is definitely a good book for those of us who look forward to installing and becoming productive in using SuSE Linux.

Saturday, 3 February 2007

A step by step tutorial on creating a 3D effect of a photograph using Gimp

Gimp is a versatile image editor. I have been using Gimp exclusively for editing images and photos targeted for the web. Over and above its usefulness, it is also a Free software. But when it comes to finding tutorials in creating special effects of photographs, you find a whole lot of them for Adobe's Photoshop but not that many for Gimp. This could be because there is a whole industry that has been spawned by Photoshop and which depends on it for its survival.

For instance, there are a plethora of books on Photoshop, professional videos, exclusive Photoshop training institutes and even Photoshop magazines. Compared to that, Gimp lacks any of these baring a couple of books which can be counted with your fingers. But one thing which Gimp has as much as Photoshop is a very strong community backing it, a community which understands the true strengths of this Free graphics suite and use it exclusively for creating and editing images targeted for the web.

In recent times, with GNU/Linux and Free software getting increasing exposure among the masses, some of it has also rubbed off Gimp and now you find more tutorials on accomplishing special tasks using Gimp than you found earlier.

Andrew of 'Instructables' fame has written an excellent tutorial which shows how to create a 3D effect from a photo of a car which is really informative. But what is even better is that for a change, he explains how to do it using the Free software Gimp.