Linux For You-Aug-2009
Linux For You-Aug-2009
ISSN 0974-1054
V D
e D 5.3
reCentOS
F
Registered Office & Corporate Training Centre LLC Satellite Centre - Bangalore
# 635, 6th Main Road, (Adj.. Bank of India) Hanumanthnagar, Bangalore 560019 # 1291, 24th Cross, 30th Main,
Tel: +91.80.22428538 / 26600839 / 26610999 TelFax: +91.80.26600839 BSK II Stage, Bangalore 560070
Cell: 9845057731 / 9343780054 Email: [email protected] Tel: +91.80.26712928
www.linuxlearningcentre.com
Contents AUGUST 2009 • Vol. 07 No. 6 • ISSN 0974-1054
developers
40 Usher in a New Era of Web
with HTML 5
47 Portlet Development With Liferay
50 Introducing JQuery Selectors
89 Linux Network Stack Administra-
tion: A Developer’s Approach
92 VBA Macro Interoperability in
OpenOffice.org
Admin
61 CentOS: A Blue Feather In Your
Red Hat
64 SAFENTRIX: It’s Time to Kill E-
mail Spam,
for Free!
Editorial, Subscriptions
& Advertising
Delhi (HQ)
D-87/1, Okhla Industrial Area,
Phase I, New Delhi 110020
Phone: (011) 26810602, 26810603
Geeks Fax: 26817563
E-mail: [email protected]
CHENNAI
84 make My Day! M. Nackeeran
DBS House, 31-A, Cathedral Garden Road
Near Palmgroove Hotel, Chennai 600034
86 Programming in Python for Friends Ph: 044-28275191; Mobile: 09962502404
E-mail: [email protected]
and Relations—Part 16: Creating a
Screencast Customer Care
e-mail: [email protected]
PUNE
108 FOSS Yellow Pages Zakir Shaikh
Mobile: 09372407753
E-mail: [email protected]
HYDERABAD
P.S. Muralidharan
Ph: 09849962660
E-mail: [email protected]
LFY CD: NetBeans 6.7 explicitly mentioned, will be released under under Creative
Commons Attribution-Share Alike 3.0 Unported License
a month after the date of publication. Refer to http://
NetBeans is a free and open source IDE (integrated development creativecommons.org/licenses/by-sa/3.0 for a copy of the
licence. Although every effort is made to ensure accuracy,
environment) for software developers. You get all the tools you need to create no responsibility whatsoever is taken for any loss due to
publishing errors. Articles that cannot be used are returned
professional desktop, enterprise, Web and mobile applications with Java, C/ to the authors if accompanied by a self-addressed and
sufficiently stamped envelope. But no responsibility is taken
C++, and even dynamic languages such as PHP, JavaScript, Groovy and Ruby. for any loss or delay in returning the material. Disputes, if
any, will be settled in a New Delhi court only.
Note: All articles in this issue, except for interviews, verbatim quotes, or unless otherwise explicitly mentioned, will be released under Creative Commons Attribution-Share Alike 3.0 Unported
Licence a month after the date of publication. Refer to http://creativecommons.org/licenses/by-sa/3.0/ for a copy of the licence.
Installs in 15 minutes
Quick to Deploy. Easy to Manage.
Completely automated and integrated OS deepOfix Support Services
Web-based Email Powered by LDAP Deployment Planning Services
Pre-integrated Spam Control and Anti-Virus User & data migration services
Intelligent and Flexible SSL / TLS for all protocols Product Installation & Integration
Account Management Email Archival Software / OS upgrades & updates
Customisations & Extensions
SMTP / POP3 / IMAP Services
Warranty for Free Software
Web-based calendar and contact management
Web & DNS hosting Backup MX hosting
Email policy framework
and quarantine manager Network & Service monitoring
fix
s
d ow n load
Ove r 60,000
ep YOU.
deeprootlinux
Pure & Exclusive Free Software Business. We believe in: sharing, compassion and plain action. Backed by full-time hackers.
We provide: airtight solutions, solid support and Freedom. Quick deployment, easy management. Guaranteed.
http://start.deeproot.in | +91.80.40890000 | [email protected]
Organiser
www.convergenceindia.org
Technology News
Launchpad source code released
PHP 5.3.0 released Canonical, the entity behind the Ubuntu project, has open-sourced the code
The PHP development team that runs Launchpad under version 3 of the GNU Affero General Public
has released PHP 5.3.0, a major License (AGPLv3). Launchpad is used to build Ubuntu and thousands of
improvement in the 5.X series, other projects, and its users can now participate directly in the development
which includes a large number of Launchpad itself.
of new features and bug fixes. Launchpad allows developers to host and share code from many different
Some of these include: support sources using the Bazaar version control system, which is integrated into it.
for namespaces; late static Translators can collaborate
binding; Lambda Functions on translations across many
and Closures; syntax additions; different projects. End-
performance improvements and users identify bugs affecting
optional garbage collection for one or more projects so
cyclic references. Other additions that developers can then
are: optional mysqlnd PHP triage and resolve those
native replacement for libmysql; bugs. Contributors can
more consistent float rounding; write, propose, and manage
deprecation notices now handled software specifications. In
via E_DEPRECATED (part of addition, Launchpad erases
E_ALL) instead of the E_STRICT barriers to collaboration by
error level; several enhancements enabling people to support
to enable more flexibility in php. each other’s efforts across different project hosting services, both through its
ini (and ini parsing in general); new Web interface and its APIs. Launchpad has everything software projects, open
bundled extensions like ext/phar, source or not, need to be successful.
ext/intl, ext/fileinfo, ext/sqlite3, ext/ Canonical founder and CEO, Mark Shuttleworth, said: “Projects that are
enchant; and over 140 bug fixes and hosted on Launchpad are immediately connected to every other project hosted
improvements to PHP, in particular there in a way that makes it easy to collaborate on code, translations, bug fixes
to: ext/openssl, ext/spl and ext/ and feature design, across project boundaries. Rather than hosting individual
date. For users upgrading from PHP projects, we host a massive and connected community that collaborates
5.2, consult the migration guide together across many projects. Making Launchpad itself open source gives
available at php.net/migration53. users the ability to improve the service they use every day.”
Technical details about the open sourcing of Launchpad can be found on
Python 3.1 enhancements the Launchpad development wiki at dev.launchpad.net.
June 27 saw the release of a
new version of the backwards- Airtel and HTC introduce Android-powered
incompatible series of Python phone in India
3. Improvements in Python 3.1 Bharti Airtel and HTC Corporation have launched India’s
include: an ordered dictionary first Android-powered mobile phone, the HTC Magic. (Turn
type; various optimisations to Page ___ to read a review of Magic.)
to the int type; new unit-test For Airtel customers, HTC Magic allows free data
features including test skipping download of 100 MB per month for a period of six months.
and new assert methods; a much The HTC Magic will be available at a market price of
faster io module; tile support for Rs 29,900 at Airtel relationship centres and authorised
Tkinter; a pure Python reference HTC resellers across 17 cities. The cities include Delhi,
implementation of the import Mumbai, Bengaluru, Chennai, Hyderabad, Kolkata, Pune,
statement; new syntax for nested Ahmedabad, Chandigarh, Jaipur, Coimbatore, Cochin,
with statements. For more Ludhiana, Jalandhar, Lucknow, Bhubaneswar and Patna.
details check out the What’s new To begin with, Airtel customers can avail utility-based
document at docs.python.org/3.1/ applications such as Portfolio Manager, Hello Tunes
whatsnew/3.1.html. Manager, Weather Channel, Mobshare, In-mobile Search
and City Search on the HTC Magic.
Google’s OS
Just A Chrome Polish or Is
There Some Metal Inside Too?
Google has announced the development of the Chrome OS. For the first time,
this search engine giant has taken its archrival Microsoft head-on. But the
emergence of Google as an omnipresent player could also have a flip side.
H
ow can you be the lord of would ever give Google an easy ride on the
the sea without your own Internet Highway.
ship? This is what Google, Google did make friends with Firefox
a company that started out and others, but for how long can you take
with a search engine, then entered domain a ride on rented cars? So Google launched
after domain, before becoming the tallest its very own Chrome browser, which like
giant of the Internet Age, has realised. most Google services is still in the beta
All of Google’s businesses are in the stage and not very efficient on the GNU/
online world—if there were no Internet Linux platform. But the next problem
or access to Google services, it would Google faced was how to entice users of
mean no business for the Mountain View Windows or a Mac to the world of Chrome.
company. The only interface to Google So it decided to develop its own operating
services has always been a browser. system as well.
Microsoft saw Google as its biggest threat While analysts are busy studying the
on this turf, so there was little chance impact this OS will have on the market,
that Microsoft’s IE (Instant Exploiter) industry and FOSS leaders have refused to
comment on the Google Chrome OS. When I asked him has touched MS’s pain point.
for his opinion, leading Linux kernel developer, Greg Typically, the netbook players will now be working
Kroah-Hartman said, “There’s nothing to comment on closer with Google than with Microsoft, because they
regarding a press-release. I prefer to see actual code.” will have a free version of an OS with much more
The timing could not have been better. Netbooks are control for customisation as compared to Microsoft’s
now the preferred choice of more and more advanced product, since Chrome follows the Free Software policy.
on-the-move users. The trend is catching up in India as Also, since it is based on the Linux kernel, it is secure
well. Last week I was travelling from Delhi to Lucknow by design—which addresses one of the major concerns
on the Shatabdi, and from among the five laptop users of netbook users.
in my compartment, two were using netbooks. What we expect to happen is that more and more
Now, what are you going to run on a netbook? Vista netbook players will install the Chrome OS on their
has been a huge disaster and PC makers have had to go machines, which will give Google a strategic advantage
back to a Flintstone Age Windows-XP. (Microsoft, on to drive users to use its services and make money for
its part, is still trying to harvest that old crop, as it has itself as well as its partners. This seems to be the best
nothing more efficient in its barn.) GNU/Linux players like deal for GNU/Linux as well as for OEMs.
Novell and Red Hat have little interest in home users. The But, there are bigger dangers with using Google,
only commercial player that is giving Microsoft and Apple compared to Apple or Microsoft. Everything you do
a tough fight is Canonical’s Ubuntu. today, using any of the Google services, gives Google
Microsoft’s polished and rechristened Vista (under access to all your data and information. Honestly, today
the name of Windows 7), which is around the corner, Google knows more about you than the government
is supposed to run well on netbooks. Well, Microsoft does.
committed the blunder of claiming Vista and IE7 to be RMS has already warned us all against going in
the best OS and browsers ever, which only helped it in blindly for such services. If successful, the Chrome OS
losing its credibility further. Besides, the price tag that will put Google in a monopolistic position—and it’s
Windows comes with has also upset the OEMs. Now, no news that monopolies tend to exploit users and
what better position than this, for OEMs to not only kill competitors. One of the biggest examples is Intel,
bargain with Microsoft but also delay deals with the which now seems to have forgotten the foundations
Redmond giant as the Chrome OS will offer a ‘free’ (as laid by Moore, and is now getting into the same sinful
in cost and customisation) alternative. practices as its brother-in-arms, Microsoft.
Google is already working with Acer, Adobe, ASUS, I guess it is fine to support the Chrome OS in the
Freescale, Hewlett-Packard, Lenovo, Qualcomm, Texas beginning, because it is very important to continue
Instruments and Toshiba—a very impressive partner creating and strengthening free alternatives of any
list indeed. On the other side, Google has its Android software that people would depend on. But what I
OS for the mobile segment; thus the company has would like to add is, “Welcome Chrome, but Ubuntu
just started to stretch its boundaries—the full extent and others… pull up your socks! We might need your
of which is still unclear. The announcement of the help soon.”
Chrome OS has definitely put Microsoft in a sorry
state. The company is now not in a position to further
By Swapnil Bhartiya
re-work on its already reworked ‘Vista as Windows 7’ to
A Free Software fund-a-mental-ist and Charles Bukowski
make it better. fan, Swapnil also writes fiction and tries to find cracks in a
Google, on the other hand, now has more muscle proprietary company’s ‘paper armours’. He is a big movie
to influence hardware players than ever before. It is buff, and prefers listening to music at such loud volumes that
already driving the Open Handset Alliance, which he's gone partially deaf when it comes to identifying anything
positive about proprietary companies. Oh, and he is also the
brought the company closer to the hardware players. assistant editor of EFYTimes.com.
And now with the Chrome OS, the search engine giant
W
hen Google announced that it was working on an
open source OS for cell phones in 2007, the world
promptly sat up and took notice. It was not that
open source mobile operating systems had not been
developed before, but the involvement of a company like Google
made many see this venture in a whole new light. In November 2007,
Google not only unveiled Android but also announced the formation
of the Open Handset Alliance (OHA) to develop open standards for
mobile devices with the likes of Google, LG, Samsung, Intel and HTC
on board. The open source mobile ball was well and truly rolling,
powered by Android.
Needless to say, there was immense curiosity about the new
operating system. Would it finally herald the arrival of open source
software in a big way in the world of cell phones? Would it strike
a blow against the hegemony of Nokia, Microsoft and RIM in the
mobile OS space by offering powerful devices at a relatively lower
price? The first Android device, the HTC G1, was released last
year and while there were some mutterings about the device’s
less-than-designer looks, no one could deny that the phone’s OS
was a formidable one. Most significantly, Android represented
one of the first times in tech history that the OS of a mobile
phone had grabbed the headlines. At the time of writing this
article, no fewer than three phones running Android have been
released and in each case, it has been Android rather than the
phone’s specifications that have made the headlines.
And it’s no different in India. When HTC unveiled Magic
with Airtel, it was not the phone’s processor, camera or
touchscreen that dominated the launch but what was under
its hood—Android. Needless to say, we promptly stood in
line for a device and when we got one, put it through its
paces quite thoroughly.
The interface is based on version 1.5 of Android, also ...but no Android Market!
known as Cupcake. The homescreen seems pretty stark However, what is missing, catches the eye. The version of
to start off, with the huge clock at the top and four icons HTC Magic released in India does not come with Android
below, but there is a whole lot of magic (pun intended) Market, that vast reservoir of applications and software
lying beneath it. You can customise the home screen for Android phones. And this is because the version of
(which spans three screens that slide to either side) by Android running on the device has been tweaked by HTC
simply dragging and dropping items from the menu. You and is not the official one made by Google—and that is the
can place an item just about anywhere (and we mean reason why the back of the device has ‘HTC’ rather than
anywhere) on the homescreen—there are no restrictions ‘Google’ written on it.
at all. And if you don’t like an item, just keep it pressed and The absence of Market is a huge blow to the device as
then drag it into the handy rubbish bin that appears on it totally restricts what users can download on to it. Right
the bottom of the screen. Incidentally, you can access the now, HTC and Airtel have placed five free applications
menu by either hitting the Menu button or sliding up the such as weather and stock monitors on the device, but
bar at the bottom of the homescreen—we found the latter if you are looking for new software, the door is, alas,
to be much more fun. You can get back to the homescreen closed. Even a number of Google’s own applications—the
at any time by hitting the Home button or to the previous Gmail app and Google Maps - are not pre-installed and
screen by pressing (you guessed it) the Back button. worse, cannot be installed on the phone. Unlike versions
All of which makes the HTC Magic perhaps one of the of the device in others markets that also lacked access
most intuitive touchscreen devices we have come across. to Android Market but had other application download
The icons in the menu are large enough to be pressed by websites, the Indian device is largely restricted to what
your finger, while texting and e-mailing addicts will be comes on it. Ironically, the phone comes with no mapping
delighted to know that the onscreen QWERTY keypad solution on it, so the GPS in it is largely restricted to
is a treat in landscape as well as portrait mode, with an spotting your location for other apps and generating
excellent predictive text facility to boot. appropriate content. A sad waste!
Revive the
Multimedia
XPerience
with
Let’s take XBMC for a test drive to discover its media-playing as well as media
centre capabilities.
T
he dropping prices of @ 4GHz
computer hardware are a Motherboard: AMD 790GX with ATI
definite help in building HD 3300 IGP | ATI Radeon HD4770
decent home-theatre systems dedicated
with ease. Media centre computer software RAM: 4GB DDR2 800 MHz RAM
helps to enhance the viewing experience, running @ 1090MHz
as they employ features with great eye Monitor: Samsung S2233SW with
candy. Also, there is a range of media centre 1920x1080, 16:9 ( full high definition)
solutions and software that we can choose resolution
from today. Sound card: Realtek ALC888 8 channel
Here, we’ll take a look at one of the audio
most prominent open source media centre Speakers: Klipsch Promedia GMX 2.1 |
applications—XBMC. Altec Lansing MX5021
I tested XBMC on the following set-up: Operating systems: Ubuntu 9.04 64 bit,
Processor: AMD Phenom X4 9950 BE Mandriva 2009.1 KDE 32 bit, Sabayon
@ 3.1GHz | AMD Phenom II X2 550 BE 4.2 KDE 64 bit and Dreamlinux 3.5
Installation notes
• You can get the latest Ubuntu builds from the Ubuntu
PPA at http://launchpad.net/~team-xbmc/+archive/
ppa. In order to install, first select the Ubuntu version
you have and generate the repository from the
above link. Navigate to GNOME menu→System→
Administration→Software Sources. Under the
‘Third Party Software’ tab, add the main and source
repositories. Once done, you need to add the security
keyring for XBMC—copy everything from http://
keyserver.ubuntu.com:11371/pks/lookup?op=get&se
Figure 1: The XBMC interface
arch=0x6D975C4791E7EE5E and save it as a normal
text file. Back to the Software Sources window, under
the ‘Authenticate’ tab, add the text file and reload
repositories. Now, search for xbmc using Synaptic and
install it.
• Mandriva users need to add a new repository: Mandriva
Italian Backports (MIB). You can install MIB repositories
from http://mib.pianetalinux.org/mib/repository.html.
Select the Mandriva version and CPU architecture,
copy-paste the commands in a terminal as the root
and you are good to go. Search for XBMC and install it.
Note that you will have to install some extra packages
Figure 2: XBMC playing an HD movie in order to make XBMC run without throwing fits or
aborting automatically. Open a terminal and type the
Driver: ATI Catalyst 9.6 used in all OSs following commands as the super user: urpmi -a curl
The XBMC Media Centre, formerly the Xbox Media curl-devel.
Centre, started as a two-man army under the name
of Xbox Media Player. Initially restrained to Xbox • openSUSE users need to enable Packman repositories.
consoles, the project came to an end on December Add the repositories from http://en.opensuse.org/
13, 2003 and was succeeded by the highly acclaimed Additional_YaST_Package_Repositories#Packman
XBMC Media Centre, which had a team of almost 200 or you can directly download xbmc packages from
developers and translators working on it. packman website http://packman.links2linux.org/
XBMC is built on the high-quality and complex package/XBMC.
OpenGL interface written in C++. Despite being a • If you have the latest versions of Sabayon and
media centre application, XBMC lacks rudimentary Dreamlinux, XBMC will come pre-installed. Dreamlinux
media centre features like support for PVR recording XFCE users need to install XBMC from a binary file
and TV guides, which is a serious let down for any located at www.dreamlinux.com.br/download.html.
media centre application. Although it offers similar
features with the help of third-party plug-ins, this is Once installed, XBMC should launch without a problem.
never a very reliable solution.
With the system resources out of the way, it’s time to
Prerequisites figure out the installation source. Unlike the Xbox media
XBMC is a very resource-demanding application due player (its previous version), XBMC is available for almost
to the highly complex OpenGL implementation it all operating systems. It is available for Xbox consoles,
comes with. The website doesn’t provide the system Linux, Windows, MacOS, Apple TV and as a live CD. You
requirements for the application but it is advisable to can also grab the latest build from SVN and compile it if
have a 2 GHz or above CPU, 2GB RAM and a decent packages are not available for your distro.
graphics card with Open GL support. Though in my Although it lists Linux as a supported OS, it only
rig, I had no problem with the player except for some provides packages for Ubuntu. I will try to cover the
annoying bugs that hindered executing the program. installation in brief, but if packages are not available
Make sure you install all the proprietary graphics for your OS, then you will have to resort to compiling
drivers before using it. Users planning to run Blue-ray from source. Fortunately, many distros provide
or HD movies should have a 3 GHz multi-core CPU or a packages for XBMC or they ship it as the main media
GPU capable of hardware acceleration. centre application. Here are some of the distros that
have pre-compiled binaries for XBMC: The player has very unique display options. You
1. Ubuntu: https://launchpad.net/~team-xbmc/ can navigate through your collection with small or
+archive/ppa big icons, and these come with a variety of exquisite
2. Mandriva: http://mib.pianetalinux.org/mib/ effects and some gorgeous cover flow effects. Pretty
repository.html much everything is available for you to make the
3. openSUSE: http://en.opensuse.org/Additional_ most out of your well-managed collection.
YaST_Package_Repositories#Packman The music player is very good, but I find the
4. Sabayon: http://www.sabayonlinux.org/ volume not as loud as it could be. Even cranking the
5. Dreamlinux: http://www.dreamlinux.com.br/ volume to full from the XBMC settings does not have
download.html much effect on the overall volume output. However,
For notes on installation, see the sidebox. the beauty of the player is that you can resume
doing your work, like goofing around with the player,
Rock n’ roll in eye candy viewing photographs and inspecting the collection,
Post installation, the application launches in while a small display of the currently playing track/
windowed mode—only Sabayon opens it in full movie runs at the bottom left of the application.
screen, or ‘Party Mode’ as I like to call it. Clicking on Moving on to the movies, I tried my Blue-ray, full
the maximise button, maximises the window. After high-definition content and was blown away with
pondering over various possible shortcut keys, I the output. Although the movies play as they do in
finally got the solution—you need to hit the \ (back a normal player, here you can even watch the movie
slash) key for a full-screen media centre view. in the main menu while continuing your work, as
The XBMC interface is quite lucid with very you can see in Figure 1. And you can bookmark the
well laid out categories. The player menu has been movie at a particular time interval, which allows you
segregated into videos, music, photos, weather, scripts to resume watching it from where you had left it.
and settings. The first three options will ask you to The player supports a plethora of audio/video
add media sources while it auto detects any externally and image formats. It picks up the subtitles
attached medium. On the downside, it cannot read correctly, although in some videos I have had to
Flash drives above 4GB because it still follows USB 1.1 enable them from the settings. The only let down
standards, and that too, only FAT-formatted drives. So, is not being able to play DRM-restricted media
if you’re in the habit of using EXT3/NTFS formatted files, besides the inability of XBMC to read multi-
Flash drives, you’re out of luck. session discs.
The good thing is, you can resource hungry. It uses 50 per should include much more media
extend its capabilities from the cent of the CPU cycles of my quad centre capabilities, but they are
third-party plug-ins available core system, besides eating up a nowhere to be found; also, there
on its website. It offers media whopping 1.8 GB of RAM. On the are no proper alternatives to these
streaming from YouTube, Hulu other hand, SMplayer/VLC only missing capabilities.
and Veoh with the help of plug- uses 25-30 per cent of the CPU Overall, although XBMC does try
ins, besides other expandability and ~750MB of RAM. to steal the limelight, there are more
options that you can add. There’s In addition, coming with negatives than positives. Because of
even a weather applet that can a ‘Media Centre’ tag, XBMC its resource hogging nature and lack
fetch weather forecasts for your of media centre capabilities, it comes
city [if available] from the Web, across as a mediocre media centre.
and display it on the main screen. XBMC 9.04.1 So if you plan to build a HTPC, look
for an alternative.
And the party’s over
I find XBMC’s interface and media Resources
streaming capabilities quite
Pros: Easy to use, eye catching
interface, media streaming • Home Page: xbmc.org
impressive. No matter what codec capabilities, lots of navigation • Wikipedia: en.wikipedia.org/wiki/
a file needs, the player is capable options, expandability. XBMC
of playing it smoothly. Playing Cons: Resource hungry, no Media
Center capabilities, no
a full HD 1080p movie on it is
support for USB 2.0 and By: Shashwat Pant
an unmatched experience—the multisession medium. No The author is a FOSS/hardware
surroundings are drenched with support for DRM files.
enthusiast who likes to review software
divine acoustics, and my family Platform: Linux, MS Windows, MacOS, and tweak his hardware for optimum
and friends are mesmerised by Apple TV, Xbox performance. He is interested in
the stunning experience the Price: Free (as in beer) Python/Qt programming and fond of
benchmarking the latest distros and
media player offers. Website: www.xbmc.org applications.
However, the player is very
Video Editing on
GNU/Linux
Did I Hear
You Say It’s
Non-existent?
If you are an amateur filmmaker with a high-definition camera, you don’t have
to worry about the secretive and suppressive world of Windows and Macs—
Kdenlive has finally arrived. It’s not perfect yet, but it’s steadily getting there.
Here is a sneak preview of all that this application has in its magic box...
A
s an amateur filmmaker, I an amateur would want. It may not be as
have always felt the lack of a perfect as its proprietary counterparts, but
powerful and trusted alternative the current release tells us much more about
to Final Cut Pro or Sony Vegas the current attitude within the GNU/Linux
on the GNU/Linux platform. There are world. Ubuntu is almost an equivalent to
many solutions, including Cinelerra, Kino, Windows and Mac for the average user;
OpenMovie, Kdenlive, etc, but none are Firefox is beating IE and Safari badly; Amarok
mature enough to match their non-free is the best music player around; VLC has no
counterparts. Also, they tend to crash competition whatsoever; then there’s the
frequently, which is unacceptable after GIMP, PidGin, Gyachee, and much more.
you’ve edited a 30-minute clip on the time GNU/Linux is like a magician’s hat—it will
line. I had stayed away from the slave world offer you whatever you ask for. Now, with
of Apple’s Mac and the monopolistic world Kdenlive, one of the missing links is being
of Microsoft Windows, but for how long? addressed too.
Then, finally, a few days back I chanced I tried creating some clips using the
up on Kdenlive again, version 0.7.5, since new version, and except for a few niceties
someone forwarded me a link. of its proprietary counterparts (which are a
This new version has made me realise must for any professional), Kdenlive did not
that Kdenlive has almost everything that disappoint at all. In fact, it impressed me
Figure 1: Timeline
FOSJAM ’09
Ignites the Fire of Freedom in Jaipur
An introduction to Fedora, an all night hack-fest, getting to know Emacs and
developing a website within just a few minutes – the newly formed Jaipur LUG
had it all, with their very first FOSS event, FOSJAM 2009.
I
t’s just been about three months The D-Day
since the inception of the FOSJAM received more than 347 registrations
Jaipur LUG in March 2009. Yet and around 280 turned up.
the activities and workshops The event started with the ‘free software
organised by LUG-J have taken the town by song’ performed by Kapil Acharya, a LUG-J
storm. Install fests and workshops arranged member, followed by Winblows, an activity that
by the LUG members have introduced the involved bursting balloons printed with the
city to mainstream open source communities logos of you-know-what. This was a rocking
and spread the word of libre. And with its start to the event and all students soon felt the
many active members from communities like freedom wave sweeping them off their feet as
Fedora, Mozilla and WordPress, it wasn’t long they joined in the singing.
before LUG-J’s major all-India event, FOSJAM There was a brief introduction of all
(Free and Open Source Software, Jaipur Meet) the speakers at the gathering, followed by
was organised. a few words from Shakthi Kannan and a
Since it was the first FOSS-related event in vote of thanks by Jai Pandya. Then, Kannan
Rajasthan targeted at an audience still new to (shaktimaan.com) started with his talk,
the Open Source ethos, the workshops were interestingly titled, “i-want-to-do-a-project-tell-
more inclined towards hands-on sessions; me-how-2-do-it-fedora” which covered various
JECRC (Jaipur Engg College & Research Centre) aspects of netiquette (mailing lists, IRC, forum
lent a helping hand by offering their computer etiquette) and how to choose a Free and Open
labs, with Fedora running on over 90 machines. Source project.
Understanding Layers
Welcome to the second installation of The GIMP tutorials. In this issue, we will
try to understand the most crucial part of image editing—layers. Describing
layers in words is pretty arduous.
I
nitially, working with layers combination of images forming a single
can be a bit intimidating and a image. The combination of images can either
newbie will try to avoid it. But be opaque, transparent or both, depending
once you get used to working upon the type of effects you implement.
with it, layers make editing images child’s In layman’s terms, consider an opaque
play. Of course, you need to know a few background with multiple transparent
editing tools and techniques. or opaque sheets, one over the other,
What is a layer? In general, it is a combined to form an image.
combination of materials stacked over each Figure 1 illustrates how different layer
other. But when we talk stacks combine together to form an image.
about image editing, I have created only a three-layered image,
a layer can be making it easier for you to understand.
best described The top layer is Johnny Bravo, followed by
as a a wooden border in the second and the
background in the last layer. Notice how it
looks when they are combined together.
Now, you must be wondering about
the need for all the fuss, especially when
all of this can be achieved with a single
layer itself. Well, yes, you can create
similar effects with basic editors like
KolourPaint, but when you create
an image that way, you don’t have
control over the different aspects of
it. For instance, a similar image created
using KolourPaint will not allow you
to just move Johnny Bravo’s image to any
place else. You simply cannot do it! Once
you create an image just by pasting on non-
layered parts, all the sections pasted will
be merged in the background itself, leaving
no way to edit it. So if you try to move the
‘Bravo’ part, the whole image will move
along with the background and border.
While when working with layers, you have
the mask, so make sure you delete it before applying. Flatten Image: It’s a unique case of the merge layer.
Show Layer Mask: Lists the changes done in the It merges all the visible parts of the layer, deletes
mask applied. all the non-visible parts of the layers, removes the
Edit Layer Mask: This option is selected by default transparency and fills it with background colour,
if you have added a layer mask. It’s nothing but a turning all the layers into one single image leaving
selection to the mask preview. You can easily switch no alpha channel behind. This is usually done when
between the layer and its mask by either using this saving an image with a JPEG extension.
option or clicking on the preview. That’s it for now. I have tried to cover almost every
Mask to Selection: Makes an active selection to all aspect of layers —hope they’re now a bit easier to work
the editing/painting done on the mask layer. with. You don’t need to grasp these things—just go
Add Alpha Channel: This option makes a non- through them once, fiddle around a bit and you are
transparent layer capable of handling transparency, ready to get started. The dull days are about to end, as
though it does not make it transparent. It is a very we will learn to work with tools in our next assignment.
handy tool for creating quick animation with the So stay tuned for the next tutorial and till then, happy
GIMP. GIMPin’!.
Alpha to Selection: This option makes an active
selection on the drawing done on layers. It makes By: Shashwat Pant
the drawing active—not the layer. So if you want to The author is a FOSS/hardware enthusiast who likes to review
edit things later on, this tool comes as a saviour. software and tweak his hardware for optimum performance.
He is interested in Python/Qt programming and fond of
Merge Visible Layer: Merges all the active visible benchmarking the latest distros and applications.
parts of a layer, in the image.
LinuxForU.com
Follow us on Twitter @LinuxForYou
Q How did you come into contact with Q What does Greg K-H do when he is not
coding :-)
the FOSS folks, and how did that Play with my kids, pull weeds from my garden,
journey start? snowboard in the winter. Normal family stuff :-)
Q What was the idea behind LDP (Linux Driver Q Although binary-only drivers make life easy for the
end user, in your opinion, how good are they?
Project)? How many of its goals have been They do not make life easy for end users; they make
achieved? life harder. My opinion, as well as those of a very large
You can see my longer response for this at www. number of Linux kernel contributors, was published
kroah.com/log/linux/linux_driver_project_status-2009- last year and can be seen at www.linuxfoundation.org/
06.html [reproduced as as sidebox titled “linux kernel en/Kernel_Driver_Statement.
Google Wave, Opera Unite, Firefox 3.5 and then Gazelle, everyone
seems to be racing to dominate the Web. What empowers them
all the more in today’s world of cloud computing and AJAX-
crazy netizens, are the latest specs of HTML 5. If you are a Web
developer worth your salt, you would not wish to miss out on
anything while the Web gets revolutionised.
Usher in a
New Era of Web with
T
he Internet and its more than just a mark-up syntax for However, you can consult Table
usage are constantly documents. The very name of the 1 to figure out which of the elements
evolving. Every single language’s specifications working are already supported by today’s
day marks the launch group, Web Hypertext Application browsers.
of new and interesting ways of Technology Working Group, suggests
accessing data and interacting with how much HTML means to the Web. The latest HTML mark-up
people, pushing the boundaries of The original goal for HTML 5 was We’ll start by thinking about marking
HTML in every vertical. The current to make it easier to develop Web up a typical blog. Like the vast
version of HTML, 4.01, has been in applications. There’s evidence of this majority of sites on the Web, blogs
use for almost a decade now. Yet, the in the rash of new JavaScript APIs comprise a header, some navigation
publishers are constantly looking and support for offline development, (often a sidebar or two), a main
out for more evolved techniques to some of which are already available in content area, and a footer.
provide enhanced functionalities that a browser near you. Currently, there are no ways in
have, till now, been restrained by the HTML 4 to mark up these elements
programming languages as well as the The elements in a semantic fashion—i.e., HTML 4
browsers. So, what is this set of new ‘elements’ offers no footer or header elements
To give authors more flexibility of HTML 5 that’s making waves on of its own. Instead, they’re usually
and interoperability, and enable more the Web and elsewhere? wrapped in a generic div element,
interactive websites and applications, While there is a beautiful article a technique that is described in
HTML 5 introduces and enhances a on the Web [www.ibm.com/ the HTML 4 specification [www.
wide range of features, including form developerworks/library/x-html5], by w3.org/TR/html4/struct/global.
controls, APIs, multimedia, structure Elliotte Rusty Harold, that I would html#h-7.5.4]: “The DIV and SPAN
and semantics. strongly recommend you read for elements, in conjunction with the id
HTML 5 will be the first major a complete overview on the new and class attributes, offer a generic
change to our lingua franca since elements of HTML 5, some of the mechanism for adding structure to
XHTML 1.0 in 2000 (the latest being more important aspects that I plan to documents. These elements define
XHTML 2.0, released in 2002). You discuss in this article are: content to be inline (SPAN) or block-
must have already seen the ‘HTML Canvas—inline SVG and MathML level (DIV), but impose no other
5 Working Draft’ [www.w3.org/ Audio interface presentational idioms on the content.
TR/html5] at the start of this year. Video elements Thus, authors may use these elements
The W3C HTML Working Group Offline Web applications in conjunction with style sheets, the
and WHATWG (Web Hypertext Drag and drop lang attribute, etc, to tailor HTML to
Application Technology Working getElementsByClassName their own needs and tastes.”
Group) have been working extra time, Web Forms 2.0 When developing the HTML 5
trying to satisfy everyone in an open
process. Not an easy task. Sometimes,
amongst the concerns and the Compatibility structure of HTML 5 elements with today’s browsers
questions, it’s easy to forget that fact. Chrome Firefox Internet Opera Safari
A lot of us believe that the Explorer
introduction of the new specifications contentEditable Yes Yes Yes Yes Yes
is just another preposterous attempt Stylable Elements (new) Yes Yes No Yes Yes
by the bigwigs in the browser arena getElementsByClassName Yes Yes No Yes Yes
to foist what they want, onto the Cross-Document Messaging Yes Yes Yes Yes Yes
developers. But then again, there are
Web Forms 2.0 Partial No No Yes Partial
others who see it as the way forward
Drag and Drop Yes Yes Yes No Yes
to develop powerful multimedia Web
apps on an open architecture, without <audio> No 3.5 No No Yes
Flash, Silverlight or similar proprietary <video> 3.0 3.5 No Labs Yes
technologies. As Doug Schepers, the release,
W3C’s Team Contact for the SVG and partial
Web Apps Working Group says, “HTML <canvas> Yes Yes No Yes Yes
5 is not a technical achievement, it’s a Server-sent DOM Events No No No Partial No
social movement.” Client-side Storage (name/ 2.x Yes Yes No Yes
The varied opinions regarding value)
HTML 5 are because it is much Table 1 (Source: http://molly.com/html5/html5-0709.html)
<div class=”header”>
<h1>Page Title</h1>
</div>
the new elements of <audio> and you can use a ‘context’ (think about
<video>. It also contains an optional a page on a drawing pad), into which
<legend> element performing the you can issue JavaScript commands
function of a caption. Our semantic to draw anything you want. Browsers
class name version could be like can implement multiple canvas
what follows: contexts and the different APIs
provide the drawing functionality.
<div class=”figure”> Most of the major browsers
<img src=”#” alt=”*”> include the 2D canvas context
<p class=”legend”>[…]</p> capabilities—Opera, Firefox,
</div> Konqueror and Safari. In addition,
there are experimental builds of
Extensible semantics Opera that include support for a 3D
Many pages around the Web use canvas context.
micro-formats to add more structured
semantics than what’s available in The baby steps
HTML’s impoverished set of elements Creating a canvas context on your
and attributes. In this case, the values page is as simple as adding the
used for the class attribute come from <canvas> element to your HTML
agreed-upon vocabularies, sometimes document. Here’s an example:
adopted from other standards, such
as vCard, and sometimes from newly <canvas id=”CanvasID” height=”300"
minted vocabularies where no solid width=”500">
pre-existing standard exists. Show this text if the browser is not Canvas
This is a real problem that compatible
needs to be solved here. We </canvas>
need mechanisms in HTML that
clearly and unambiguously enable It is advisable to define an
developers to add richer, more element ID. This will be helpful later
meaningful semantics—not pseudo in referencing the element in the JS
semantics—to their mark-up. This is code. Moreover, the height and width
perhaps the single most pressing goal of the canvas also needs to be defined.
for the HTML 5 project. Now that you have managed
But it’s not as simple as coming to create your very first canvas,
up with a mechanism to create richer let’s shake things up a bit. To draw
semantics in HTML content: there inside your canvas, you need to use
are significant constraints on any JavaScript. First find your canvas
solution. Perhaps the biggest one is element using getElementById, then
backward compatibility. The solution initialise the context you want. Once
can’t break the millions of browsing you do that, you can start drawing
devices in use today, which will into the canvas using the available
continue to be used for years to come. commands in the context API. Let us
Any solution that isn’t backward now learn to draw a little rectangle
compatible won’t be widely adopted inside the canvas we just created.
by developers for fear of excluding
readers. // Referencing the ‘CanvasID’ element
var elem = document.getElementById(‘Canvas
Canvas—inline SVG and ID’);
MathML
The <canvas> element is another // Checking for browsers
exciting addition to the HTML 5 if (elem && elem.getContext) {
specifications, second only to <video> // You can only initialize one context per
(which will be discussed later in the element.
article). HTML 5 Canvas gives you an var context = elem.getContext(‘2d’);
easy and powerful way to draw using if (context) {
JavaScript. For each canvas element // Here comes the rectangle, now. Remember
to mention the X and Y co-ordinates — then the Exciting opportunities with HTML standard. Although HTML
width and height Canvas 5 is still in the draft stage, several of
context.fillRect(0, 0, 3000, 250); The drawImage method allows you to its features have already been widely
} insert other images (img and Canvas adopted by browsers like Firefox,
} elements) into your Canvas context. Safari and Chrome. Among the most
In Opera you can also draw SVG compelling is the ‘video’ element,
Borders and key-strokes images inside your canvas. <canvas> which has the potential to free Web
Now, the rectangle can be made allows pixel-based manipulation as video from its plug-in prison and
a bit more exciting by using the well. The 2D Context API provides make video content a native first-
fillStyle and strokeStyle properties. you three methods that help you class citizen on the Web—if codec
The rectangle can also be filled with draw pixel-by-pixel: createImageData, disagreements don’t stand in the way.
a certain colour using the fillrect getImageData, and putImageData. Video is one of the most
element. Here’s an example: Moreover, the fillStyle and significant areas where this trend will
strokeStyle properties can also have have a major impact. Some of the
context.fillStyle = ‘#00f’; CanvasGradient objects assigned giants of Internet video are exploring
context.strokeStyle = ‘#f00’; to them, instead of CSS ‘colour’ standards-based solutions as means
context.lineWidth = 4; strings—these allow you to use colour to break free from the constraints
gradients to colour your lines and fills imposed by proprietary browser plug-
// a few more rectangles instead of solid colours. ins. During the Google I/O conference
context.fillRect (0, 0, 150, 50); For a few demonstrations of the in the middle of July, the search giant
context.strokeRect(0, 60, 150, 50); capabilities of the canvas element, demonstrated a YouTube mock-up
context.clearRect (30, 25, 90, 60); you can visit the following URLs: built with HTML 5. In addition to
context.strokeRect(30, 25, 90, 60); http://code.google.com/p/ using the HTML 5 video element,
paintweb it also uses new HTML structural
http://www.blobsallad.se/ elements and other features
http://www.benjoffe.com/code/ introduced in the upcoming version
demos/canvascape/ of the standard. The demonstration
illustrates how open technologies can
Video elements be used to deliver a high-quality user
The increasingly competitive experience to stream video playback.
browser market has at last created For content providers like
an environment in which emerging YouTube and DailyMotion, the HTML
Web standards can flourish. One 5 video element offers numerous
of the harbingers of the open Web advantages. It integrates seamlessly
renaissance is HTML 5, the next with conventional HTML content and
Figure 2: A demo of HTML 5 Canvas major version of the W3C’s ubiquitous can be manipulated with JavaScript
of the Web page, the extensive API drag – The mouse has moved, return false;
provides several methods and events with the dragged element as the })
to let scripts control the playback of event target. .bind(‘dragleave’, function(ev) {
the media. The simplest methods to dragenter – The dragged element $(ev.target).removeClass(‘dragover’);
use are the play(), pause(), and setting has been moved into a drop return false;
currentTime to rewind to the beginning. listener, with the drop listener })
element as the event target. .bind(‘dragover’, function(ev) {
Drag and drop dragover – The dragged element return false;
Drag and drop is one of the most has been moved over a drop })
fundamental interactions afforded listener, with the drop listener .bind(‘drop’, function(ev) {
by graphical user interfaces. In element as the event target. Since var dt = ev.originalEvent.
one gesture, it allows users to pair the default behaviour is to cancel dataTransfer;
the selection of an object with drops, returning false or calling alert(dt.getData(‘Text’));
the execution of an action, often preventDefault() in the event return false;
including a second object in the handler indicates that a drop is });
operation. It’s a simple yet powerful allowed here. });
UI concept used to support copying, dragleave – The dragged element </script>
list reordering, deletion (a la the has been moved out of a drop
Trash/Wastebin), and even the listener, with the drop listener Since a detailed explanation of
creation of link relationships. element as the event target. the features and demonstrations is
Since it’s so fundamental, offering drop – The dragged element has out of the scope of this article, you
drag-and-drop in Web applications been successfully dropped on can always refer to a lot of interesting
has been a no-brainer ever since a drop listener, with the drop content on:
browsers first offered mouse events listener element as the event https://developer.mozilla.org/En/
in DHTML (Dynamic HTML). But, target. DragDrop/Drag_and_Drop
although mousedown, mousemove, dragend – A drag has been ended, http://decafbad.com/
and mouseup made it possible, the successfully or not, with the blog/2009/07/15/html5-drag-and-
implementation has been limited to dragged element as the event drop
the bounds of the browser window. target. http://ljouanneau.com/lab/html5/
Additionally, since these events refer For a detailed list and for demodragdrop.html
only to the object being dragged, explanations, read www.whatwg.org/
there’s a challenge to find the subject specs/web-apps/current-work/#dnd. Last, but definitely not
of the drop when the interaction is Consider the following example of the least
completed. jQuery: If you fancy getting more involved,
Of course, that doesn’t prevent there’s still time—try using HTML
most modern JavaScript frameworks <div id=”newschool”> 5 and give your feedback to
from abstracting away most of the <div class=”dragme”>Drag me!</div> the specification group via the
problems and throwing in some <div class=”drophere”>Drop here!</div> WHATWG mailing lists [www.
flourishes while they’re at it. But, </div> whatwg.org/mailing-list]. The editor,
wouldn’t it be nice if browsers offered Ian Hickson, has put out a call
first-class support for drag-and-drop, <script type=”text/javascript”> for people to review the specs—
and maybe even extended it beyond $(document).ready(function() { looking for confusing items, typos,
the window sandbox? $(‘#newschool .dragme’) and other small problems. If you
As it turns out, this very .attr(‘draggable’, ‘true’) find one, you’ll be mentioned in the
wish is answered by the HTML .bind(‘dragstart’, function(ev) { acknowledgements. There’s plenty
5 specification section on new var dt = ev.originalEvent. to do, so dive in!
drag-and-drop events, and Firefox dataTransfer;
3.5 includes an implementation of dt.setData(“Text”, “Dropped in zone!”);
those events. return true; By: Sayantan Pal
}) An avid Twitter user and a social media
enthusiast, the author is a passionate
The latest events .bind(‘dragend’, function(ev) {
blogger and a professional gamer
The latest drag and drop events return false; too. He also feels compelled to be
specified for HTML 5 are: }); opinionated about anything that comes
dragstart – A drag has been $(‘#newschool .drophere’) his way, be it Linux distributions, our
marketing strategies, table etiquettes or
initiated, with the dragged .bind(‘dragenter’, function(ev) {
even the fabled Ramsay movies!
element as the event target. $(ev.target).addClass(‘dragover’);
Portlet
Development
With Liferay
Here’s a tutorial on developing JSR-286 portlets for the Liferay platform.
P
ortlets are small applications that Liferay
are rendered in the larger context After a small evaluation of different Portal
of a portal. When you view any of servers, I shortlisted Liferay. Here is a list of
the popular portals like Yahoo! or the winning points:
Rediff, you see the home page organised into Support for the latest standards and
small boxes displaying mail, news, photos, specifications
advertisements and other details. These Various innovations in the UI layer
boxes are called portlets. To develop portlets, An extensive set of pre-build ready-to-
there are various competing (and sometimes deploy portlets
cooperating) technologies: Google Gadgets; A good community
Microsoft Sharepoint Portal; and in the Open development
world of Java, we have two specifications
-- JSR-286 and JSR-168 -- that govern Liferay installation
Portlet development. JSR-286 supersedes The only prerequisite to install Liferay is
JSR-168, and is mostly compatible with its that you should have the Java Development
predecessor. JSR-286 is sometimes called Kit in your system. Liferay downloads
the Portlet 2.0 specification. The are conveniently packaged with various
portlet specification is similar to application servers and servlet containers.
the Java Servlet specification. Download the one that you are comfortable
Understanding the servlet API with, and extract it. The installation is then
would shorten the process of complete. The extracted directory will be
learning Portlet technology. called LIFERAY_DIR hereafter.
Portlet containers
Portlet containers house the Prerequisites
deployed portlets and render them in Software prerequisites
the context of the portal. There are various 1. JDK 1.6
portlet containers in the market. WebLogic 2. Maven 2.1
Portal and WebSphere Portal are popular 3. Liferay 5.2
proprietary portal servers. In the
Knowledge prerequisites
open source space, we have Liferay
A working knowledge of the following technologies will
[www.liferay.com], JBoss Portal
be helpful:
[www.jboss.org/jbossportal],
1. Servlets
OpenPortal [portal.dev.java.
2. JSP
net], Pluto [portals.apache.
3. JSTL and EL
org/pluto] and others.
Introducing
JQuery
Selectors
Rich Internet Applications (RIA) are created by manipulating the Document
Object Model (DOM) elements in various ways. Before working on DOM
elements we need to have an efficient and easy way to identify and select the
elements required. The JQuery library provides different options to identify an
element. The power of JQuery is that it allows us, users of the library, to write
our own selectors.
A
ll selectors will start with a $ look and feel for an element, it should be
symbol and the selector string associated with a class. JQuery provides ways
is placed within (“). Note that to select elements based on this class. For
$ is just a short form of JQuery. example, when we need to associate a click
All selectors will return an array of elements operation with all the elements that have a
that satisfy the condition. An element in the class .button, then…
array can be indexed as a JavaScript array or
by using “get”, the JQuery utility method. For $(‘.button’).click(function() {
example, to get the first DOM element in the console.log(“Element with class button is
page, we can use both $(‘*’)[0] and $(‘*’).get(0). clicked”);
});
Basic selectors
The most efficient way of selecting an $(‘*’) is used to select all the DOM
element is by using the ID of that element. elements in a page.
JQuery, in turn, uses the native method, We can combine different selectors
getElementById(). For example, to get an together using the comma. The resulting
element with the ID msg, the selector should array will contain all the elements that
be $(‘#msg’). satisfy any of the condition(s) passed. For the
An element can be selected using its following selector query:
type. To select the entire span element in a
page, we can use $(‘span’). For an appealing $(‘#msgdiv , .msgdiv’)
$(‘#msgdiv’).add(‘.msgdiv’)
Form selectors
Form selectors help us to select an element based on its
type. Though the same result could be achieved using
Figure 1: Hierarchy selectors
an attribute selector (as we will see), the form selector
provides a shorter way. As an example, :button will select
all the <input type=”button”> elements. Table 1 lists all form checked’) will select the radio buttons that are selected by
selectors. the user.
$(‘:image’).add(‘:text’).addClass(‘inputandtextclass’).end().
add(‘imageclass’)
Not selectors In the above HTML snippet, to select the button using:
We have looked at a good number of selectors till find, use $(‘div’).find(‘:button’). This will search for
now. In certain scenarios, when we need a function buttons under div element.
that will negate the available functionality, the :not filter, use $(‘div :button’).filter(‘:button’). This will
selector comes to the rescue. As we know, we can use search for the button element in the first wrapped
$(‘checkbox:checked’) to get all the check boxes that set, which has both div and button.
are selected. But how about getting the check boxes Although we have equivalent selectors $(‘div
that are not selected by the user? It’s simple! We need button’) and $(‘:button’,$(‘div’)), respectively, find and
to use :not in front as $(‘checkbox:not(‘checked’)). filter will be more useful in chaining.
JQuery selectors and filters have made the selection
Selector commands of a DOM element easier. It is always better to use the ID
There are a set of JQuery commands/functions that selector since JQuery uses the browser native method
can be used to select an element. We know that every getElementByID(). So in any case, the ID selector is much
JQuery selector will return an array of elements. To faster than other selectors. Moreover, it’s always better to
get a particular element out of the array, we can use cache the result of selectors. The cached results can be
get(number). So $(‘:button’).get(0) is equivalent to $(‘: used (if the DOM element is not updated dynamically) for
button:first’). The inverse of get is index, which is used to future purposes, thereby making the response faster. To
find the position of an element in an array of elements. practice the above concepts, click on the following link:
Considering a page that has only one submit, element codylindley.com/jqueryselectors.
$(‘*’).index($(‘:submit’)[0]) will return the position of the
submit button in the complete DOM. When we need to By: Lakshmi Narayanan N and Veerabahu
select all input elements that are either of type radio or Subramanian C
check box then we can use any one of the following: $(‘: The authors work at HCL Technologies Ltd, Chennai. Lakshmi
radio,:checkbox’) or $(‘:radio’).add(‘:checkbox’). Following blogs at grabyourfreedom.blogspot.com and you can contact
which, the add(JQuery expression) will add the result to him at [email protected]. Veerabahu blogs
at veechand.wordpress.com and you can contact him at
the wrapped set.
[email protected].
When we need to remove the element that is
No Money
in the FOSS Business
Strange… because we’ve captured the story of DeepRoot Linux, which speaks otherwise.
H
e is a developer like you, loves Taking off
GNU/Linux, but his passion Initially, DeepRoot Linux focused on
didn’t stop there. He decided providing network-attached storage
to work full-time on free and solutions that were approximately 25 times
open source software. He scouted around cheaper than its competitors. Later, they
for like-minded people and translated shifted focus to DeepOfix, DeepRoot’s
their combined passion into developing office server product, which was shipped
products and services around open source. along with the hardware and fulfilled office
Meet Abhas Abhinav, who, in August 2000, requirements.
founded DeepRoot Linux, a Bangalore-
based GNU/Linux free software business, Stormy weather
to quench his passion to work on free Like any other start-up, DeepRoot Linux
and open source software (FOSS) and to too faced a lot of initial turbulence. There
develop an entire ecosystem of products, were problems in getting funds for product
solutions and support around FOSS. development, in forming the team, and in
“When we were about to start, although striking the first few deals.
a whole ecosystem of open source software
was available, good software alone didn’t Financial hiccups: A story of wrong
result in people adopting FOSS in their daily priorities
lives. We saw a gap between existing great Initially, DeepRoot Linux had poor sales
software and people being able to use it. and cash flows, too, weren’t positive.
There was a need for products, solutions and The firm had no venture capital funding.
support around FOSS, for people to adopt it. Further, the team made the mistake
This need became the purpose of DeepRoot’s of focusing on product development
existence,” says Abhas. With a small team of over services around Linux. Product
three employees, Abhas started DeepRoot development demanded more funds and
right after his graduation, as he already had time; besides, the product was dependant
some part-time experience in consulting for on support services for its success. This
ISPs and Web service providers. added to the firm’s financial woes, as
costs incurred were high with little or no returns. “We systems. We integrated LCD modules in it like the ones
spent a lot of time and money developing our products, you see in PCO machines with keypads, etc. This caught
but didn’t spend enough time developing the services the eye of the Hyderabad-based company, which wanted
around Linux essential for returns from the products we the same for their products. We built the entire software
developed,” says Abhas, with regret. and hardware for their product. Alongside, we released
the software developed as FOSS,” says Abhas.
Team building. An early hurdle The first services client was a company specialising
Apart from financial obstacles, DeepRoot had other in developing embedded software, called software for
problems. “Developing a team of product developers ‘controller area network’ (CANs), for cars. “The firm
was a challenge, as very few had the vision to develop used Linux in its office. We provided file services,
products, nor could they dedicate themselves full-time domain authentication, BNP, e-mail, a firewall, and
towards developing FOSS solutions,” says Abhas. proxy services,” reports Abhas.
CentOS
A Blue Feather In Your Red Hat
While everyone else seems to be in a race for the latest and the greatest,
CentOS 5.3 still bundles pretty old and tested software. Well, this is not your
typical desktop OS; besides, the stability makes it a must-have for your server
deployments.
W
hat do you do when you Now what if I were to tell you that you
want to run an enterprise can get a copy of RHEL, with community
grade server but don’t have support, for use on unlimited servers for an
any money to spare for the unlimited amount of time — all for free! Yes,
software? You use free software. Not free as in it’s called CentOS, and it’s supposed to be the
freedom (Windows Servers cannot be called best free Enterprise Linux out there.
enterprise grade, so all available enterprise This is what Wikipedia has to say:
grade server operating systems are freedom “Red Hat Enterprise Linux is a commercial
software), but free, as in cost. product, available only through a paid
Let’s take the money out of this. If money subscription service that provides access
were no issue, you’d buy a subscription for to software updates and varying levels of
Red Hat Enterprise Linux. You’d get a copy of technical support. The product is largely
RHEL 5.3 and some technical support, and composed of software packages distributed
you’d be entitled to upgrades to RHEL. under open source licenses, and the source
Bring money back into the equation code for those packages is made public by
and you’ll think again. A basic subscription Red Hat.”
for RHEL with two server sockets will set It’s this source code that makes
you back about Rs 23,380 per year. That’s a Community Enterprise Operating System
basic subscription, meant for SMEs and it’s possible. CentOS builds this source code in
expensive. The most expensive subscription such a way that the final product is an almost
is about Rs 1,67,140 per year. exact clone of RHEL. It’s binary compatible
with RHEL, to the extent that updates for RHEL can be Installation
used in CentOS and vice versa. If you’re running CentOS,
you’re running RHEL. CentOS installs using Anaconda, one of the most modular Linux
There are a few key differences between RHEL and installers out there. It has a GUI mode as well as a text mode.
CentOS. Red Hat uses proprietary software for systems At the boot prompt, type in the following:
management, including the infamous up2date, which • linux text vga=792 for a 1024x768 text mode installer
is used to download system updates from the Red Hat • linux resolution=1024x768 for a 1024x768 GUI installer
Update Network. CentOS replaces all the proprietary The choice you make here reverberates throughout the
parts of the OS with open source components. Up2date installation. A text mode installation will disable automatic X start-
is replaced with YUM (YellowDog Updater, Modified), up at system start, will not provide a graphical boot with RHGB, and
the same tool used in Fedora, and CentOS uses YUM all system config tools installed (including the firstboot manager)
repositories for updates and software installation. will be CLI-based. On the other hand, a GUI installation will make X
So what features does CentOS offer? run at start-up, install GUI versions of system config tools and will
1. It’s free of cost, and has community support. It’s binary enable RHGB for a graphical boot.
compatible with Red Hat Enterprise Linux.
2. It’s rock solid — suitable for use in servers, clusters and
workstations, as well as desktops and laptops.
3. It has integrated virtualisation support with a Xen
kernel.
4. Included are tools for clustering and storage clustering.
5. The ability to run as just another desktop OS with all
standard desktop features.
So let’s get started with the review.
Test bed
A copy of Sun xVM VirtualBox 3.0.2 runs on Fedora 11’s
PAE kernel on an Intel Core2Duo E7200 processor (2.53
GHz and without VT). The VM has 1 GB of RAM.
First impressions
Figure 1: Anaconda installer
Before version 5.3, I’d used a customised version of CentOS
5.1. The first thing that struck me, from the installer itself,
was the new Artwork stack. The CentOS developers have The server within
outdone themselves in this sphere, where it’s normally Jokes apart, let’s come in to what CentOS actually is
accepted that all servers should look ugly. Speaking — a server operating system. Right from installation,
of installation, it’s the same old Anaconda at version CentOS is optimised for server functions. The
11.1.2.168, with all the usual options. Check the installation ‘Recommended Partitioning Scheme’ involves creating
box for details. a separate /boot partition, and puts all the other
partitions into an LVM. Pretty cool, because ‘Dynamic
The desktop Storage Scalability’ (whatever that may be) is a big
In CentOS, you can choose between KDE 3.5.4 and GNOME thing in servers.
2.16.0. Though I prefer neither, for stability and familiarity’s At the Web stable, Apache version 2.2.3-22 heads
sake, I chose GNOME for the review. Visually, nothing has the stack, with PHP at version 5.1.6. I have had bad
changed; it’s the same old icons, the same old pointers and experiences with that PHP version; it would not
the same old GNOME. Something that could have been done let me run RoundCube Webmail on it. MySQL and
was to add more shortcuts to administration tools. The new PostgreSQL are at versions 5.0.45 and 8.1.11. There
wallpaper, however, is refreshing. you have it, your LAMP or LAPP stack. Personally,
The kernel version stands at 2.6.18-125.2.1.el5. I’ve got nothing against this except the old PHP. PHP
Throughout a major version of CentOS and RHEL (such as 5.2.10 and 5.3 SRPMs (Source RPMs) for CentOS are
5.x), the versions of software cannot change. So, because available at http://www.clfsrpm.net/php/. You’ll need
CentOS 5.0 came out with KDE 3.5.4 (and kernel 2.6.18), all to build them. You’ll also need to have the EPEL
minor versions of CentOS 5 have to carry those versions repositories added.
of software. No cosmetic fixes are provided. Updates When it comes to FTP, VSFTPD 2.0.5 just doesn’t cut
are necessary bug fixes or security fixes only. Therefore, it. It isn’t as popular as ProFTPD, and people say it’s not
OpenOffice stands at version 2.3, The GIMP at version 2.2, as easy to configure. I say, ditch it and install ProFTPD,
GCC at version 4.1.2, etc. So laugh out loud. which is available in the RPMForge repos.
It’s Time to
Kill E-mail Spam, for Free!
While there are numerous proprietary e-mail security solutions around, how
many actually manage to live up to their claims? And who says that customer
service and satisfaction never come free? LFY tries its best to search out a
solution that addresses these concerns.
W
ith the ever-increasing checks, selective grey-listing, sender address/
popularity of the Internet and domain validation, recipient address/domain
electronic messaging systems, validation, in-house proprietary blacklist
there has been an increase checks, content checks to achieve efficiency.
in the need for e-mail security systems too. It can support up to 20,000 users per domain
Whether you are a small organisation or and also supports the same number of users
have thousands of employees and have an for a sub-domain.
e-mail server for your domain, you always
need to spend a lot on fighting spam and Easy to set up
viruses. SAFENTRIX provides a hosted and Setting up the solution is very simple and
free e-mail security solution that keeps spam, does not require too much of technical
virus and malware off your network, while expertise. It can be configured by anyone
ensuring that genuine e-mails always get who has some knowledge of DNS, MX and A
through. SAFENTRIX achieves its goal by records. Neither does it require any changes
using a combination of popular open source in your current infrastructure and integrates
tools, other than the anti-spam database. seamlessly with the existing system. Also, it
SAFENTRIX, while claiming 100 per cent is compatible with all modern e-mail servers,
virus protection and over 99 per cent spam including (but not limited to):
protection, can save up to 40 per cent of your 1. Microsoft Exchange Server
e-mail bandwidth costs. And it’s available 2. Lotus Notes
in two flavours. The standard service is 3. Qmail
absolutely free, for any number of users, 4. Postfix
with no compromise on e-mail security. The 5. Sendmail
premium service offers additional peace of Apart from this, it supports all hosted
mind through compliance with industry e-mail services like Yahoo!, Gmail and others
standards (HIPAA, GLB) and a 100 per cent that provide POP/IMAP services.
service level agreement warranty. SAFENTRIX can be installed and
SAFENTRIX uses seven different layers configured in three simple steps:
of spam protection to give you a spam and 1. Register and create accounts using an
virus-free inbox. It uses IP checks, HELO automated process at http://safentrix.com.
Figure 1: Login screen for SAFENTRIX control panel Figure 2: Panel to add all the e-mail IDs that need to be filtered
2. Add domains, corresponding delivery records and SAFENTRIX, the response showed a maximum of one or
user names. two spams per e-mail account. We also tried to send an
3. Change MX records for domains. e-mail with a virus infected file attached but the system
The configuration is simple, yet has live chat support that rejected the mail. We felt it passed all the tests.
can be accessed even if you are configuring it as a free service.
Where is the ‘Spam’ folder?
Security and reliability Yes, this is what sets SAFENTRIX apart from other e-mail
SAFENTRIX has secured communications with its high security software. There is no spam/quarantine folder to
grade encryption (AES 256 bit) CAPTCHA check at keep a constant watch on. This is the result of the product
every step: it thwarts automated attacks; sends e-mail team’s efforts to reduce the responsibilities of the systems
notifications on password attacks; and ensures account administrator. The idea is that every time an e-mail gets
access is tied to the IP address for additional protection, blocked by the software, the senders get a bounce-back
besides other multiple layers of security. These include e-mail informing them about the rejection, along with a
host-based firewalls, application security layer and strong unique white-list key that can later be used to white-list
encryption that protect e-mails while in transit. that particular sender’s e-mail ID.
Having the system always up is achieved through
multiple redundant e-mail servers that ensure your Our verdict
e-mails are always received and delivered. SAFENTRIX There aren’t many e-mail security solutions around that
uses cloud computing to ensure that server problems can provide such efficient spam and virus filtering, along with
be overridden in 10 minutes or less. The system always live chat with the support team, for absolutely no cost. The
sends a bounce message when it rejects an e-mail (even if only downside seems to be that every time someone sends
it contains a virus). This allows senders to take corrective you an e-mail, two lines of their text advertisement get
action as and when required and resend the e-mail. It can appended at the end of the e-mail, which one always has
store your e-mails for up to six hours in case the e-mail the option to delete, while replying back, in case one isn’t
server MX is down. Over all, the use of SAFENTRIX can be too keen to ‘spread the love’.
considered secure and reliable. However, not everybody might be comfortable with the
idea of not having a spam folder to check up if any genuine
A mock set-up e-mails got mistakenly trashed. But then, everyone had
We tried SAFENTRIX on one of our domains. It took us wanted to kill Google too, when it introduced labels and
around 15 minutes to configure the entire system. The did away with folders.
configuration is really simple and instructions on the So, all in all, SAFENTRIX actually looks like a useful
screen are easy enough to understand. Though it provides product to get your hands on. How it will manage to start
live chat support to configure your domain, we do not earning the moolah despite dishing out so many freebies is
think that would be required, at least during the initial what remains to be seen.
configuration. Our test domain has 50 users that used to
get around 125 spams per user per day after deactivating By: Niraj Sahay
our existing anti-spam solution. When we checked up with The author is a Sys Admin at EFY Group and part of LFY team.
all the users a day after implementing the free solution of
E
verybody likes to use, test and hack numbered sections. Follow Phase I through to
with mini distros, but no one likes Phase IV; then to make a live CD, follow Phase
to burn a separate CD for each V. Alternately, to create a live USB drive, follow
since a distro only takes up a small Phase VI, then continue serially.
fraction of the CD space. This results in low At all times keep two terminals open—one
resource utilisation and increases junk. What if as the normal user, and another with super-
we could keep all the distros on one single CD user privileges. In both the terminals, always
or even all the distros on one USB drive, and remain fixed inside a working directory, the
boot the distros directly from there through work_dir/. We will either point directories/
an interactive menu system? Yes, that’s what files relative to ‘word_dir’ or in an absolute
we are going to do! We are going to pack seven path. If some source packages are required
mini distros into one CD/DVD or USB drive to be compiled, launch a new terminal in the
that’s ready-to-boot, so that we can carry them source directory, carry on the compilation and
around and boot any distro anywhere, anytime, terminate it.
and at any place. When you see the ‘#’ symbol beside a
This guide is written with primarily a CD/ command, switch to the root console and
DVD as the target medium, but we will also execute; and when you see ‘$’, run it in
show you how this can be done with a Flash normal user terminal.
drive. We will pack PuppyLinux, GeexBox, If there are not enough permissions when
Slitaz, Goblinx (mini), Austrumi, CDlinux trying to modify/remove some file, then chmod
(standard) and DSL into a CD and USB drive. it with the appropriate permissions first.
The whole process is divided into seven When describing the USB booting, we will
phases. Each phase is further sub-divided into call the USB partition ‘/dev/sdXy’, where ‘X’ is
the disk alphabet (number) and ‘y’ is the partition number. # mount goblinx*.iso /mnt/tmp7 -o loop,uid=<id>,gid=<group>
Replace ‘X’ and ‘y’ as per your drive’s values. In my case it
was ‘/dev/sdb1’ (X=b, y=1) Change the distro ISO file names as per the downloaded file.
In this guide the OS versions are: Austrumi 1.7.2,
PuppyLinux 4.0, Slitaz 1.0, CDlinux 0.9.1, DSL 4.2.2, GeexBox
Warning: Always be extra careful when executing 1.2.2, and GoblinX Micro 2.7.
commands in super-user mode. Double check which
device you are operating on when setting boot flags,
bootloaders, etc, or you may render your system Note: If you decide to mount the images as the
unbootable. root user (without UID, GID options) then do the copy
operations as the root. After you have done all the
copying, ‘chown’ the copied files to the normal user.
Phase I: Preparation
Create the work_dir/ directory into which we will dump all
the resources. Create mbcd/ and boot/ directories in chains
inside work_dir/. We’ll use mbcd/ to hold the compiled Shortcut: You can skip Steps 3 and 4 of this phase,
image files, while boot/ will hold the boot files for the if you plan to use isomaster or file-roller and extract the
image. Then change directory to word_dir/ and be sure to required files in the subsequent phases.
remain fixed in this location.
Some files might have read-only permission to the Then make a directory called CDlinux inside mbcd and
owner, in which case we’ll need to do a chmod u+w before copy the directories extra and settings into it.
modifying, deleting and overwriting it.
$ mkdir mbcd/CDlinux
[1] Austrumi $ cp -r /mnt/tmp4/CDlinux/extra \
Copy austrumi.fs and austrumi.tgz from /mnt/tmp1/boot/ /mnt/tmp4/CDlinux/settings mbcd/CDlinux
into mbcd/boot/
After this, copy the lang directory into CDlinux/ if
$ cp /mnt/tmp1/boot/austrumi.* mbcd/boot/ required. When writing the config file in Phase IV, you can
pass your language as the kernel parameter. CDlinux allows
Copy bzImage and initrd.gz from /mnt/tmp1/isolinux to you to place customised packages inside the CDlinux/local,
mbcd/boot/austrumi. which gets automatically detected when booting—so you
can use it if needed.
$ mkdir mbcd/boot/austrumi
$ cp /mnt/tmp1/isolinux/initrd.gz \ [5] DSL
/mnt/tmp1/isolinux/bzImage mbcd/boot/austrumi Now it’s time for DSL, mounted on /mnt/tmp5. Copy
linux24 and minirt24.gz files from /mnt/tmp5/boot/isolinux
Austrumi searches for its files in the boot directory, so to mbcd/boot/dsl.
you need to keep it in there. From version 1.8.x of Austrumi,
the kernel and the initial ramdisk files are located in the $ mkdir mbcd/boot/dsl
austrumi/ directory in the image. $ cp /mnt/tmp5/boot/isolinux/linux24 \
/mnt/tmp5/boot/isolinux/minirt24.gz mbcd/boot/dsl
[2] Puppy Linux
Puppy Linux does not need any specific location for the DSL searches the cloop file (the Knoppix compressed
files to be kept; it finds its files from any attached media. loopback filesystem) in the KNOPPIX/KNOPPIX path, by
We will place the Puppy files in a directory. Copy initrd.gz default. We will relocate it and keep it in the directory dsl/
and vmlinuz into mbcd/boot/puppy. Then copy pup_400.sfs instead, because if you decide to keep multiple Knoppix-
and zdrv_400.sfs to mbcd/Puppy. based distros, which have the same cloop file name and
path, you need to keep the cloops in different directories
$ mkdir mbcd/boot/puppy mbcd/Puppy with different distro names. If the cloop path is altered,
$ cp /mnt/tmp2/initrd.gz \ information about this change must be conveyed by
/mnt/tmp2/vmlinuz mbcd/boot/puppy passing a boot parameter while booting (discussed later).
$ cp /mnt/tmp2/pup_400.sfs \ Copy the Knoppix cloop file from /mnt/tmp5/KNOPPIX/
/mnt/tmp2/zdrv_400.sfs mbcd/Puppy KNOPPIX and place it into mbcd/dsl.
You can download and add additional Puppy .sfs $ mkdir mbcd/dsl
modules and keep them here. $ cp -r /mnt/tmp5/KNOPPIX/KNOPPIX mbcd/dsl
Then copy the /mnt/tmp7/goblinx directory into mbcd/. $ rpm -ql syslinux | grep vesamenu.c32 && rpm -ql syslinux | grep isolinux.bin
the man page for more details. apm=power-off vga=791 knoppix_dir=dsl nomce noapic fromhd quiet
Everyone would like to add a cool boot screen to the BOOT_IMAGE=knoppix
‘Multi-boot CD’. Make an image with the GIMP or download initrd /boot/dsl/minirt24.gz
one and name it splash.jpg. To make it ready for Grub, keep it
inside work_dir/; then execute the following: title GeeXboX
#uncomment the below line for liveCD
$ convert -colors 14 -depth 8 -resize 640x480! splash.jpg splash.xpm.gz kernel /boot/geexbox/vmlinuz root=/dev/ram0 rw rdinit=linuxrc
boot=cdrom lang=en remote=atiusb receiver=atiusb keymap=qwerty
The above command transforms the image into 640 splash=silent vga=789 video=vesafb:ywrap,mtrr hdtv quiet
x 480 pixels, 14 colours XPM, and compresses it in a gzip #uncomment the below line for liveUSB and replace the UUID value with your
file—splash.xpm.gz—so that Grub can display it. Move this device UUID
into mbcd/boot/grub. # kernel /boot/geexbox/vmlinuz root=/dev/ram0 rw rdinit=linuxrc
boot=UUID=0196-F5B5 lang=en remote=atiusb receiver=atiusb
$ cp splash.xpm.gz mbcd/boot/grub keymap=qwerty splash=silent vga=789 video=vesafb:ywrap,mtrr hdtv quiet
initrd /boot/geexbox/initrd.gz
LABEL slitaz
MENU LABEL Slitaz
KERNEL /boot/slitaz/bzImage rw root/dev/null vga=normal
APPEND initrd=/boot/slitaz/rootfs.gz
LABEL dsl
MENU LABEL Damn Small Linux
#uncomment the below line for liveCD
KERNEL /boot/dsl/linux24 ramdisk_size=100000 init=/etc/init lang=us
apm=power-off vga=791 knoppix_dir=dsl nomce noapic quiet BOOT_
IMAGE=knoppix
#uncomment the below line for liveUSB
# KERNEL /boot/dsl/linux24 ramdisk_size=100000 init=/etc/init lang=us A screenshot of the boot screen of our multi-boot CD
apm=power-off vga=791 knoppix_dir=dsl nomce noapic fromhd quiet
BOOT_IMAGE=knoppix save it inside mbcd/boot/isolinux/ as list.msg. It is printed on
APPEND initrd=/boot/dsl/minirt24.gz the screen at boot time by DISPLAY list.msg. The line ‘F1 list.
msg’ displays the ‘list.msg’ file whenever you press F1.
LABEL geexbox An example of list.msg follows:
MENU LABEL GeeXBoX
#uncomment the below line for liveCD To boot the Operating System type in the keyword
KERNEL /boot/geexbox/vmlinuz root=/dev/ram0 rw rdinit=linuxrc in the prompt and press enter
boot=cdrom lang=en remote=atiusb receiver=atiusb keymap=qwerty ===============================
splash=silent vga=789 video=vesafb:ywrap,mtrr hdtv quiet Operating System Name Keyword
#uncomment the below line for liveUSB and replace the UUID value with your ———————————————
device UUID Austrumi Linux austrumi
# KERNEL /boot/geexbox/vmlinuz root=/dev/ram0 rw rdinit=linuxrc Puppy Linux puppy
boot=UUID=0196-F5B5 lang=en remote=atiusb receiver=atiusb CDlinux cdlinux
keymap=qwerty splash=silent vga=789 video=vesafb:ywrap,mtrr hdtv quiet Slitaz slitaz
APPEND initrd=/boot/geexbox/initrd.gz Damn Small Linux dsl
GeeXboX geexbox
LABEL goblinx GoblinX goblinx
MENU LABEL GoblinX Linux ————————————————
KERNEL /boot/goblinx/vmlinuz vga=791 ramdisk_size=6666 root=/dev/
ram0 rw load=Muser locale=english splash=silent changes=/goblinx/ run.f
APPEND initrd=/boot/goblinx/initrd.gz [2] Configuration changes for the live USB
In Phase VI we will describe how to make a bootable live
Now copy the JPEG image, say splash.jpg, to mbcd/ USB with SYSLINUX and Grub. If you are creating a multi-
boot/isolinux/. SYSLINUX can load JPEG images directly boot live USB, only then make the following changes to the
without any modification (with the help of the vesamenu. configuration file (Grub or SYSLINUX).
c32 module). For Austrumi: replace ‘dolivecd’ with ‘dousb’ and for
Puppy, replace ‘pmedia=cd’ with ‘pmedia=usbflash’. For DSL,
$ cp splash.jpg mbcd/boot/isolinux append the ‘fromhd’ boot parameter in the kernel line. For
GeeXBox, you need to specify the UUID of your USB device.
If you decide not to include the vesamenu.c32 module, To get the UUID of your USB partition, execute the following:
you can always have a text menu. Without this vesamenu.
c32 module, the ‘MENU’ keywords will not be recognised and # blkid /dev/sdXy
therefore no graphical menu will be displayed. It will show
an error and fall back to text mode showing a boot: prompt ...after replacing /dev/sdXy with the appropriate device
asking for an OS label. Enter the label of the OS (beside the name in your case, and noting down the value of the UUID
‘LABEL’ field) that you want to boot and press Enter. To avoid field. In my case, the command was blkid /dev/sdb1 and the
memorising the label names, write a plain text file containing UUID was 0196-F5B5. Now pass the UUID by appending
the OS name list and their corresponding label names and the following to the kernel line:
$ mkisofs -iso-level 3 -R -J —input-charset=utf8 \ This will alter the MBR (Master Boot Record) by
-b boot/grub/stage2_eltorito -c boot/boot.catalog \ installing the boot code and installing ldlinux.sys in the
-no-emul-boot -boot-load-size 4 -boot-info-table -o mbcd.iso mbcd partition.
If you want to make the ISO image boot with ISOLINUX [2] Installing Grub
instead, point to the isolinux.bin boot image: The grub-install shell script will be used to do this job. The
following command installs Grub in both the MBR and the
$ mkisofs -iso-level 3 -R -J —input-charset=utf8 \ partition.
-b boot/isolinux/isolinux.bin -c boot/boot.catalog \
-no-emul-boot -boot-load-size 4 -boot-info-table -o mbcd.iso mbcd # grub-install --root-directory=/media/disk /dev/sdX
Now burn it into a CD-R. The /media/disk/ directory should point to the mount
point of your USB partition. This will install the boot
code in the MBR and install Stage1.5 and Stage 2 into the
Tip: Test the ISO file in a virtual machine before partition and set the configuration file.
you burn a CD.
$ mv mbcd.iso .. Note that we didn't clear the whole 446 bytes here.
$ cd .. This is because byte number 441 to 444 are used to store
# rm -rI work_dir disk signatures, and the remaining two bytes are kept
# umount /mnt/tmp? empty. For more information visit en.wikipedia.org/wiki/
# rmdir /mnt/tmp? Master_boot_record.
It is recommended to back up your boot sector along
To add, modify or change the mbcd image, you do not with your files before making the USB bootable. To back up
need to mount all those distros again; just extract ‘mbcd.iso’, the boot sector, execute the following:
make edits, and repack it to an ISO, or use ISOmaster.
# dd if=/dev/sdX of=usb_mbr_bak bs=512 count=1
Adding more than one Knoppix-based distro
All Knoppix-based live distros have a compressed To restore the MBR, execute:
filesystem, the cloop file, in the same location
— KNOPPIX/KNOPPIX. So no more than one Knoppix- # dd if=usb_mbr_bak of=/dev/sdX
based distro can reside in a media. To keep more
than one of these, the cloop files of the second A multi-booting media is always intriguing, especially
distro should be kept in different directories or have when it has a collection of great mini distros. Now that we have
different names. After you change the cloop file’s booted a CD/DVD and a USB drive, why don’t we do the same
path, you need to pass it with the boot parameters with an internal HDD. This can be done exactly as we did for
shown below: the USB drive. Keep the OS files in the root of a drive and make
sure all the locations are correct in the config file; then make the
knoppix_dir=<path to dir containing the cloop file with leading “/”> HDD bootable with Grub or SYSLINUX. Next, load the config
knoppix_name=<name of the cloop file> file from the menu; if Grub or SYSLINUX is already installed,
then this is done—you just need to call the configuration file
For example, we have kept the DSL cloop file in the dsl/ with the configfile command from the Grub shell.
directory, so we have passed knoppix_dir=dsl/. If the name
of the cloop file is changed, then you also need to append
“knoppix_name=newname” as the kernel parameter. An Note: Please play safe, because sometimes you
example for Grub is shown below. It’s recommended to only come to know you’ve lost something important
change only directories. when you restart your system the next morning.
My Own
Streaming Radio
Looking for a way to stream your music over the home network? MPD (Music
Player Daemon) with the Icecast server could be a viable option.
I
cecast? Don’t worry, I am not “My own radio? Wow! Where do I
going to talk about chiselling begin?”
sculptures out of ice here. Icecast It’s fairly simple actually. We will cover
is a server—an audio streaming the basics about creating and using a
server to be precise. It can broadcast both basic MPD set-up, which can be used as a
MP3 and Ogg Vorbis format audio in the local streaming service on your machine.
form of streams. What I wanted was to be Personally, I find it better than most players
able to access my music library on my iPod out there. This will, in turn, help us with the
Touch while at home. So, I was looking for streaming application in the backend. Then,
a way to stream my music over the home we will explore setting up Icecast. Take a look
network. After a little search and review, at Figures 1 and 2 to get a more holistic view.
MPD (Music Player Daemon) with the Icecast
server seemed to be the best option. Music Player Daemon
With this set-up, you can run even MPD (Music Player Daemon) is a daemon
your own Internet radio. You can select (a piece of software that runs in the
the bit rate of the stream, the number of background) that manages your music for
channels to stream, and the quality of the you. It’s a client-server architecture. MPD
Ogg streams…there are numerous options acts as a server; and when you install a client,
to choose from. you can use it to interact with MPD and play
audio_output { Then make sure that the directory is owned by the mpd
type “alsa” user, as well as the mpd group, by issuing the following
name “My ALSA Device” command:
device “hw:0,0” # optional
format “44100:16:2” # optional chown mpd:mpd /var/lib/mpd -R
}
Moving along, we now have to create the files
# We assume that you use ALSA in this config. mentioned earlier, and then transfer ownership of some
# If you are using any other driver, please visit the files and directories to mpd:mpd. Execute the following
# official docs at http://mpd.wikia.com/wiki/Configuration commands.
http://<IP-Address>:8000/stream.ogg
Then add the following lines in case you are NOT using
Alsa as the second audio out, to make sure MPD does not
crash when Icecast is not running:
Netkit
The Networking Sandbox
Networking is very interesting and I’m sure many of us would like to experiment
with it, but the unavailability of laboratories with sufficient computers is
a stumbling block. What if I tell you that you can turn any computer into a
network device at no extra cost?
N
etkit is a virtualised environment They will be displayed as terminals. Each
on the top of User Mode Linux of the terminals can be programmed using
that gives wings to your network different *nix tools to make them work as
experimentation dreams. This different network devices such as routers, a
article focuses on how to get started with gateway, etc.
Netkit, including modelling and testing
complex networks with it. What can Netkit do?
In order to master networking we need It is never advisable to conduct experiments
to hack on real-time network devices such on the primary network of an entity, since
as routers, gateways and other costlier it hosts services that are critical for its
devices that are not always readily available. operations. On the other hand, network
It is a physical strain plugging in the cables, equipment could be expensive, and even for
switching on the devices, logging in to simple experiments, sufficient equipment
routers, etc, apart from the logical exercise should be available in the same test bed.
of designing and setting up the network. Under the circumstances, Netkit—a
Anyone attempting all this has to be hands- system to emulate computer networks by
on with several devices, several interfaces, creating a real-time environment—comes
protocols, physical interconnections, etc. to the rescue. The one-line description
Netkit, on the other hand, is the laziest of Netkit is: “The poor man’s system for
and easiest way to learn, understand and test experimenting.” It has been developed and
a network on a virtual environment. It is also maintained by the Network Research Group
a great teaching aid. of the Roma Tre University (in Rome, Italy).
Using the Netkit toolkit, we can create The virtualised environment for the
as many virtual machines as we need. Netkit toolkit is based on UML (User Mode
You can now check your Netkit installation by opening A console terminal corresponding to pc1 will pop up.
a new terminal running the following check_configuration. You can create any number of virtual hosts using the vstart
sh bash script. command. We will use options like—eth0,—eth1 to specify
the network interface and its connection. For example:
slynux@gnubox:~$ cd $NETKIT_HOME
slynux@gnubox:~$ ./check_configuration.sh slynux@gnubox:~$ vstart pc1 --eth0=A
An introduction to Netkit commands Here we have two machines pc1 and pc2. The—eth0
We will now look into some of the Netkit commands used argument corresponds to the network interface, while ‘A’
to start, configure and monitor Netkit virtual machines in the—eth0=A argument specifies the collision domain
and the virtual labs. of the network—i.e., in the above example, pc1 and pc2
vstart starts a new virtual machine are connected on the same network family as if they are
vlist lists the currently running virtual machines interconnected through a network hub.
vconfig attaches network interfaces to running VMs If there is a pc3—vstart pc3—eth0=B—it means pc3
vhalt gracefully halts a virtual machine is connected to a different network hub and pc3 is not
vcrash causes a virtual machine to crash reachable from pc1 or pc2. In order to bridge both hubs, we
vclean is the “panic command” to clean up all Netkit require a router in between.
slynux@gnubox:~$ vlist
USER VHOST PID SIZE INTERFACES
slynux pc1 4485 22852
Figure 2: A network with a router to bridge two families of networks slynux pc2 4944 22852
slynux pc3 5503 22852
We can shut down the machine from outside the
virtual terminal using the command vhalt [virtual host Total virtual machines: 3 (you), 3 (all users).
name]. If something goes wrong and needs the virtual Total consumed memory: 68556 KB (you), 68556 KB (all users).
machine to be forcefully shut down, use the command slynux@gnubox:~$
vcrash [hostname].
The—con0 argument for the vstart command will Now we can set IP addresses for each of the machines
help you in specifying the terminal to be used for a VM. using ifconfig:
To use the same terminal in which commands are typed,
use—con0=this or if you want Konsole as the terminal, pc1# ifconfig eth0 192.168.0.1
use—con0=konsole. pc2# ifconfig eth0 192.168.0.2
pc3# ifconfig eth0 192.168.0.3
Some network manipulation/config commands
The ping command is to check connectivity. We Try to ping between these machines—for example,
can ping another machine on a network using its IP from pc1 (with IP address 192.168.0.1), ping 192.168.0.2.
address/hostname and check the connectivity by A router is a network device used to bridge two
Execute the following commands in the virtual Figure 3: A network with two routers for advanced routing of different addresses
machines.
advanced routing of different addresses.
On R1: This experiment is more interesting, since we
will use two routers and a bunch of route command
router# ifconfig eth0 192.168.0.1 executions to specify more address routes.
router# ifconfig eth1 192.168.1.1 Let’s start two VMs with interfaces belonging to
collision domains A and C, and two routers R1 and R2
On PC1: with collision domains of the interfaces A, B and B, C.
Execute the following commands:
pc1# ifconfig eth0 192.168.0.2
pc1# route add default gw 192.168.0.1 // Setting default gateway slynux@gnubox:~$ vstart pc1 --eth0=A
slynux@gnubox:~$ vstart pc2 --eth0=C
On PC2: slynux@gnubox:~$ vstart r1 --eth0=A --eth1=B
slynux@gnubox:~$ vstart r2 --eth0=B --eth1=C
pc1# ifconfig eth0 192.168.1.2
pc1# route add default gw 192.168.1.1 // Setting default gateway On PC1:
Run the following ping tests to check if things are in pc1# ifconfig eth0 192.168.0.5
place: pc2# ifconfig eth0 192.168.3.5
Now execute the traceroute command to find out r1# route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.1 dev
the path of the network packet transfer. eth0
r2# route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.2.3 dev
On PC1: eth1
pc1# echo nameserver 192.168.0.1 > /etc/resolv.conf // 192.168.0.1 is slynux@gnubox:~/netkit_testlab$ vim pc2.startup
the nameserver here. ifconfig eth0 192.168.1.2
pc1# apt-get update route add default gw 192.168.1.1
You can now install additional applications to the slynux@gnubox:~/netkit_testlab$ vim r1.startup
virtual machine by using apt-get. ifconfig eth0 192.168.0.1
ifconfig eth1 192.168.1.1
pc1# apt-get install <package name>
Now let’s start the Netkit Lab using the lstart
Netkit Lab command:
Manually running vstart and a series of commands like
route, ifconfig, etc, becomes very difficult and complex slynux@gnubox:~$ cd netkit_testlab // change current directory to
in the case of emulating comparatively large networks. the lab directory
It also requires doing the same thing again and again slynux@gnubox:~/netkit_testlab$ lstart
if we are to emulate the same network topology. Netkit
Lab, an add-on script, is an exciting feature of the In order to shut down all the machines, use the lhalt
Netkit toolkit. You can write Netkit Lab configuration command from the Netkit Lab directory:
files such that by simply executing Netkit Lab, we
can configure emulation on the network. Numerous slynux@gnubox:~/netkit_testlab$ lhalt
virtual machines can be initialised from Netkit Lab
configuration files. Try writing the lab config for more complex network
Let us see how to make Netkit Lab work. topologies.
Create a directory (say, netkit_testlab) and include Netkit is arguably the best way to start
the following files in the netkit_testlab directory. experimenting with networking. Some universities are
lab.conf – this file consists of configuration details already using Netkit as a teaching aid. Through the
about the virtual machines like interfaces and UML-supported backbone, Netkit provides a real-time
collision domains. experience on emulation on network topologies. Find
<virtual_machine>.startup – this file consists of more bytes from www.netkit.org. Happy hacking till we
commands to be executed initially while the virtual meet again!
machine starts.
<virtual_machine> – a blank directory with the By: Sarath Lakshman
same name as that of the virtual machine. The author is a Hacktivist of Free and Open Source
Let us set up a Netkit Lab to bridge two machines Software from Kerala. He loves working on the GNU/Linux
through a router with different IP address families: environment and contributes to the PiTiVi video editor
project. He is also the developer of SLYNUX, a distro for
newbies. He blogs at www.sarathlakshman.info
slynux@gnubox:~$ mkdir netkit_testlab
S.G. Ganesh
O
ne of my favourite interview questions for novice disastrous: the loop will never terminate because neither
programmers is: “What is the use of the ‘volatile’ is curr_time updated nor is the timer de-referenced
keyword?” For experienced programmers, I ask: repeatedly to get new (updated time) values.
“Can we qualify a variable as both ‘const’ and ‘volatile’—if What we need is a way to tell the compiler not to
so, what is its meaning?” I bet most of you don’t know the ‘play around’ with such variables by declaring them
answer, right? volatile, as in:
The keyword ‘volatile’ is to do with compiler
optimisation. Consider the following code: volatile long * timer = 0x0000ABCD;
volatile curr_time = *timer;
long *timer = 0x0000ABCD;
// assume that at location 0x0000ABCD the current time is available Now, the compiler will not do any optimisation
long curr_time = *timer; on these variables. This, essentially, is the meaning
// initialize curr_time to value from ‘timer’ of the ‘volatile’ keyword: It declares the variables as
// wait in while for 1 sec (i.e. 1000 millisec) ‘asynchronous’ variables, i.e., variables that are ‘not-
while( (curr_time - *timer) < 1000 ) modified-sequentially’. Implicitly, all variables that are not
{ declared volatile are ‘synchronous variables’.
curr_time = *timer; // update current time How about qualifying a variable as both const and
} volatile? As we know, when we declare a variable as const,
print_time(curr_time); we mean it’s a ‘read-only’ variable—once we initialise it, we
// this function prints the current time from the will not change it again, and will only read its value. Here is
// passed long variable a modified version of the example:
Usually, hardware has a timer that can be accessed long * const timer = 0x0000ABCD;
from a memory location. Here, assume that it’s // rest of the code as it was before..
0x0000ABCD and is accessed using a long * variable ‘timer’
(in the UNIX tradition, time can be represented as a long We will never change the address of a timer, so we can
variable and increments are done in milliseconds). The put it as a const variable. Now, remember what we did to
loop is meant to wait one second (or 1,000 milliseconds) declare the timer as volatile:
by repeatedly updating curr_time with the new value from
the timer. After a one second delay, the program prints the volatile long * timer = 0x0000ABCD;
new time. Looks fine, right?
However, from the compiler point of view, what the We can now combine const and volatile together:
loop does is stupid—it repeatedly assigns curr_time with
*timer, which is equivalent to doing it once outside the volatile long * const timer = 0x0000ABCD;
loop. Also, the variable ‘timer’ is de-referenced repeatedly
in the loop—when it is enough to do it once. So, to make It reads as follows: the timer is a const pointer to a
the code more efficient (i.e., to optimise it), it may modify long volatile variable. In plain English, it means that the
loop code as follows: timer is a variable that I will not change; it points to a
value that can be changed without the knowledge of the
curr_time = *timer; // update current time compiler!
long temp_time = *timer;
while( (curr_time - temp_timer) < 1000 ) About the author:
{ /* do nothing here */ S G Ganesh is a research engineer in Siemens (Corporate
Technology). His latest book is “60 Tips on Object Oriented
}
Programming”, published by Tata McGraw-Hill. You can reach
him at [email protected].
As you can see, the result of this transformation is
make My Day!
The ‘make’ utility is one of the cleverest tools in the world of open source. It can
be used in a variety of situations that are not just limited to programming. This
article explores a little-known feature of ‘make’.
T
o begin with, here’s the exists and is newer than its prerequisites.
disclaimer: this article is not The commands are executed only if the
a tutorial or manual for make. target is not up-to-date. The commands
Please read and understand may end up updating the target. Each of
the documentation for make before you try the prerequisites can be the target in other
the experiment mentioned in this article. make rules. Thus we have a whole tree of
There are literally thousands of sources from targets and prerequisites.
where you can learn about make. The tutorial make is a very clever program. It works
at www.wlug.org.nz/MakefileHowto is a neat backwards, starting with the target of
and crisp one. The one at www.makelinux. the first rule in the file. It walks down the
net/make3/make3-PART-1.html is longer and recursion chain of target-prerequisite-
more in depth. target, until it finds a target that has no
With that out of our way, let’s get prerequisites, or whose prerequisites
started, shall we? A make rule is composed have no rules. Once it hits one of those,
of the following: it walks back up its recursion chain and
runs commands as necessary. It creates
target: prerequisites a recursion chain for every prerequisite it
commands encounters that has a rule, and resolves
it. It can also detect vicious circles of the
A target is considered ‘up to date’ if it following kind: A depends on B, B depends
on C, C depends on A.
In the simplest of cases, the prerequisites are all files.
But there may be situations in which you would like to
use a directory as one of the prerequisites. make enables
you a way to handle this too.
Imagine the following scenario: you have a directory
lfy/ where you have files lfy1, lfy2, lfy3. You usually zip all
the files of lfy/ and keep it as a fallback copy. Every time
a new file is added to lfy/, or when any of the existing
files in lfy/ is updated, you would like to zip lfy/ again,
and store all files in a single zip file lfy.zip.
You can write a simple rule with the target as lfy.
zip, and prerequisites as lfy1, lfy2, lfy3. But if you have
1000 files in lfy/, you cannot obviously list each of them
by name. Or, if files keep getting added or removed
from lfy/ frequently, you don’t want to keep rewriting
the rules each time. You would like to use a wildcard
expansion of lfy/ and let the wildcard do all the book-
keeping. Try the following experiment:
1. Create a directory lfy/ and add the dummy files lfy1,
lfy2 and lfy3 in it using touch. In fact, you can fill up
the directory with a 1000 files, if you want.
2. Create a blank file testmake and enter the following in it:
# testmake start
# Calling sequence “make -f testmake”
objects := $(wildcard lfy/*)
lfy.zip : $(objects)
echo lfy is more recent
zip lfy.zip lfy/*
#end testmake
3. Run make, using make -f testmake. It will create lfy.
zip.
4. Run make using make -f testmake. Nothing happens,
since lfy.zip is up-to-date.
5. Now run touch lfy/lfy1 and run make -f testmake.
It will update lfy.zip. In fact, lfy.zip will get updated
every time any file in the lfy/ directory is touched
(updated).
6. Remember, lfy.zip should not be in the lfy/ directory,
since it will cause an endless loop in the above
script.
You can get all the files of the above experiment along
with documentation, as a single zip/tar bundle by sending a
mail to [email protected]. In fact, this is a more elegant
solution than the one I proposed in an earlier article in LFY
(‘Treasure Hunt with Find’, July 2008).
By Dr. S Parthasarathy
Dr Partha is an aggressive supporter of FOSS. He teaches
discrete mathematics, and preaches LaTeX and Linux to
students of computer science. His website at http:\\algolog.
tripod.com\nupartha.htm gives more details about him. Contact
him at drpartha[at]gmail[dot]com.
Creating a
Screencast
Create screencasts to demonstrate your products.
S
creencasts are an increasingly Defining the screencast
common way of explaining In this tutorial, start with taking a sequence
software products—I probably of screenshots you wish to elaborate
prefer Turbogears to Django on. Then write a script for each of the
because of the 20-minute wiki screencast by screenshots. The application—Festival or
Kevin Dangoor [files.turbogears.org/video/ eSpeak—will be the ‘actor’ that converts
20MinuteWiki2nd.mov]. So, this month, let the dialogue in the script into a voice. Each
us create a movie. A programmed slide show scene will comprise the screenshot being
has been chosen as a simple illustration. The displayed for as long as it takes to speak the
ideas can be expanded to create effective and corresponding dialogue.
compelling screencasts. The same concept Create a set of screenshots for the
can transform your digital images into an product you wish to talk about in a
exciting audio/video treat for your parents. directory, numbering them sequentially—for
A movie is really a sequence of images example, PhotoApp00.png, PhotoApp02.png,
displayed at a predefined rate. The images are … PhotoApp05.png.
synchronised with the soundtrack. A group of You can either write the script in a
images along with the corresponding audio is separate text file for each screenshot or in
regarded as a ‘scene’ in a movie. Independently a single file. In this tutorial, we will look
created scenes can be pieced together to create at writing it in a single file—a header line
the illusion of a longer movie. followed by the script and a blank line for
each of the slides in order. The first two characters of the needed for the duration of the speech file.
header will be the image number. The speech file and the images (using the mf://xx*.
jpg URL) are combined and converted into an AVI file by
00 using Mencoder. The sound file is converted to an MP3. If
Start the python application my_photos from the terminal you are familiar with FFmpeg, you may use that instead
of Mencoder.
01 Finally, all the AVI files are combined into a single AVI file.
A new image will be displayed to you. The code for the generator to fetch the image and the
text file will be as follows:
02
Type the text you would like to appear as a caption in the text box. def scene_data(script_file):
while True:
03 # the first two characters in the script are the scene id
Once you press enter, the text will be displayed on the image as you can scene_id = script_file.readline()[:2]
see. # readline will return an empty string after EOF
if scene_id.strip() == ‘’:
04 break
Now, click on the save and next button. The image will be saved. # the images are png files in screencast subdirectory
im_file = ‘screencast/PhotoApp’ + scene_id + ‘.png’
05 image = Image.open(im_file)
And you will be shown the next picture. frame = image.resize((640,480))
Repeat the steps until all the photographs are processed. # read lines until an empty line
Note, that if you do not wish to put a caption on a picture text = ‘’
and save it, you can press the next button. while True:
line = script_file.readline()
The implementation if line.strip() == ‘’:
The core logic of your application will be as follows: break
# Append replacing new line by a space
#!/usr/bin/env python text += line.replace(‘\n’, ‘ ‘)
import os, sys yield scene_id, frame, text
import wave
import Image, ImageTk, ImageDraw The script file structure was explained above. The
code keeps reading the script file until there is no more
script_file = open(‘Script.txt’) data. The first two characters of the header line are
# iterate over each scene the scene ID. The images must be named as per a fixed
for scene_id, image, text in scene_data(script_file): format with two characters being the scene ID.
duration = text_to_speech(text) The image is resized to a fixed size. The generator
# create frames assuming 25 frames per sec yields the values of the scene ID, the resized image and
for frame_no in range(25*duration): the text associated with that image.
image.save(scene_id + “%03d”%frame_no +”.jpg”) The next step is the code to convert the text to speech.
# convert the frames into a scene
os.system(‘mencoder -audiofile ‘ + scene_id + ‘text.wav -oac mp3lame def text_to_speech(text):
“mf://’ \ # uncomment ESPEAK or FESTIVAL command and system call
+ scene_id +’*.jpg” -mf fps=25 -o out_’ \ #ESPEAK = ‘espeak -w text.wav -s120 “%s”’
+ scene_id + ‘.avi -ovc lavc -lavcopts vcodec=mpeg4’) #os.system(ESPEAK % (text))
# Create an animated scene to end using the last image FESTIVAL = ‘echo %s | text2wave -o text.wav -F 44100 -scale 2.0’
animated_scene(image) os.system(FESTIVAL % (text))
# combine the scenes into a single film win = wave.open(‘text.wav’)
os.system(‘mencoder -ovc copy -oac mp3lame -o output.avi out_*.avi’) # modify the wave file to add a short silence
# before the start and at the end
The script file is opened. It’s best for the scene ID to wout = wave.open(scene_id + ‘text.wav’,’w’)
be a numeric string of a fixed number of digits. That will # create the wave file with same parameters in the input file
ensure the order of scenes is easily maintained. wout.setnchannels(win.getnchannels())
An image and the corresponding text are selected. wout.setsampwidth(win.getsampwidth())
The text is converted to a speech file. The image is copied wout.setframerate(win.getframerate())
as many times as the number of frames that will be # half a second of silence
O
f late, Linux has been gaining programs, the proc filesystem, etc.
popularity in IT-enabled industries. proc is a virtual filesystem that can be
Linux networking has grown side by located under the /proc mount point. This is
side with the operating system, and really not a filesystem, but a window to look
it’s very common to see Linux-enabled devices into the Linux kernel. The files inside /proc are
in the networking domain. not really files but can be termed as calls to
Linux provides a very versatile, efficient kernel functions. Therefore, reading or writing
and well-organised network stack. The TCP/IP a proc file results in a function call invoked in
implementation of Linux could be considered kernel space, which can be used to read/write
one of the best amongst operating systems. kernel parameters and therefore monitor
While packet processing through TCP/IP is and/or control the Linux networking stack. The
a very interesting topic, this article will cover Linux networking stack also provides many
monitoring and managing the Linux TCP/IP virtual files inside /proc, which can be used to
stack. Although there are many tools that can monitor and/or control the networking stack.
be used for the same purpose, this article aims This article is divided into three sections—
to explore administration of the networking monitoring, management/control and security,
stack without using external tools. This is more though sometimes it is difficult to make a clear
useful, especially for developers while working distinction between these three aspects.
on embedded or remote systems where such
‘external’ tools are not available. Monitoring
This article attempts to cover the various Here, we will cover some of the methods to
methods of managing the networking stack, i.e., monitor the TCP/IP networking stack.
by application-level C programs, kernel-level C Packet monitoring: The primary
broadcast ARP can be specified in the file /proc/sys/net/ipv4/ Linux provides gratuitous ARP message processing
neigh/<device_name>/mcast_solicit. control by editing the file /proc/sys/net/ipv4/conf/<device_
Local port range: If a networking application does not name>/arp_accept.
specify the transport port (i.e., binds to port 0), the kernel For example, the command “echo 0 > /proc/sys/net/ipv4/
assigns one local port to the application. The port is chosen conf/<device_name>/arp_accept” forces the system to drop all
from a range that can be controlled by file /proc/sys/net/ipv4/ gratuitous ARP messages on the given device.
ip_local_port_range. Note: ARP gratuitous messages can be useful for
networking systems that provide IP address
Security redundancy over multiple interfaces. In such cases, for
The Linux networking stack provides many ways to perform example, eth0 and eth1 having the same IP address but
stack hardening. This helps in making the system more secure different MAC addresses, only one of the interfaces remains
and less vulnerable to external attacks. active. As soon as an active interface goes down for some
Capabilities: The Linux kernel provides an API, “int reason, the standby interface becomes active and sends a
capable(int cap)”, which can be used to verify the credentials gratuitous ARP message with the same IP address but a
of a running application, and if the application does not have different MAC address. Therefore, all the hosts in the network
sufficient privileges, the process can be terminated. Linux update their ARP cache and start sending traffic to the eth1
defines several capabilities like CAP_NET_ADMIN, CAP_ interface, thereby providing IP address redundancy.
NET_RAW, etc. Details for all the capabilities can be looked Cache thrashing: Since the Linux kernel accepts ARP
up in the include/linux/capability.h file. The following code responses (including gratuitous ARP responses) to update the
snippet shows how to verify whether the application holds ARP cache, it is possible to mount an ARP cache thrashing
privileges to open raw sockets: attack where continuous ARP responses are flooded to the
victim system. To prevent such attacks, the Linux kernel
if (!capable(CAP_NET_RAW)) provides a way to specify the minimum time interval between
return –EPERM; /* application does not have privileges to open raw sockets */ two consecutive ARP responses to be accepted. The time
interval can be specified in the file /proc/sys/net/ipv4/neigh/
ICMP Redirect: ICMP Redirect is sent by gateways to <device_name>/locktime.
a host if it, due to a wrong assumption, sends a packet to ICMP flood: The ICMP echo request and echo reply
the gateway destined for the local host in the same subnet. messages are used to verify network connectivity
However, an attacker can forge and send an ICMP Redirect between two hosts. These messages do not carry any
packet to a host, to divert packets for certain destinations user data or useful data, and are only used to check
through the attacker’s host. network connectivity. However, it is possible to flood
Therefore, sometimes it is necessary to control ICMP a system with ICMP echo messages causing the target
Redirect messages. This can be done by editing /proc/sys/net/ system to do unnecessary processing and making the
ipv4/conf/<device_name>/accept_redirects. Writing 0 in this system slow down.
file forces the system to ignore all ICMP Redirect messages. Linux provides a way to control such ICMP echo
Secure redirect: To combat a forged ICMP redirect messages by editing the following files:
message and still accept a valid ICMP redirect message, Linux /proc/sys/net/ipv4/icmp_echo_ignore_all
provides a secure redirect mechanism, which is accessed /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
by editing the file /proc/sys/net/ipv4/conf/<device_name>/ As the names suggest, the above files can be used to
secure_redirect. selectively drop either all or broadcast ICMP echo messages.
Writing 0 to this file forces Linux to accept the ICMP Therefore, it is possible to prevent any ICMP flood attacks
redirect message from any host, while 1 means Linux will using the above mentioned files.
accept the ICMP redirect message only from gateways Although this article covers some of the features of
present in the default gateway list. This prevents most of administering the Linux networking stack, Linux is much
the malicious ICMP redirects and accepts only legitimate richer and more flexible than indicated here, in terms of
redirects. management and control.
Cache poisoning: The ARP protocol provisions for This flexibility makes Linux one of the most sought after
gratuitous ARP messages, by which a host itself can announce operating systems in the networking industry. Linux will go a
the IP and MAC address. All the hosts receiving gratuitous long way in the years to come.
ARP messages update their ARP cache with the new MAC
address announced. By: Mohan Lal Jangir
However, this feature can be exploited by malicious hosts The author works as a development lead in Samsung India’s
that announce some other host’s IP address as their MAC software operations at Bangalore. He has a master’s degree in
Computer Technology from IIT Delhi, and is very interested in
address. Thereby, the attacker causes all other hosts in the Linux, networking and network security. He can be reached at
network to forward packets destined to a legitimate host, to [email protected].
the attacker.
VBA Macro
Interoperability in
OpenOffice.org
T
he ABC Auditing Company OOo that could handle VBA also. Thankfully,
decides to migrate to this is not a dream and is possible with
OpenOffice.org. The firm gets a some versions of OOo that support VBA.
copy of OOo installed on every ABC Auditing should have chosen the right
machine and trains its employees to work version when it decided to migrate to OOo.
with documents in ODF (Open Document
Format), as well as with older documents VBA macros
that were prepared in the MS Office format, Visual Basic for Applications (VBA) is an
in OOo. Everything seems to be going implementation of Microsoft’s Visual Basic
smoothly. integrated into Microsoft Office applications.
Suddenly, however, it’s noted that a few You may wonder about the need for
important Excel (spreadsheet) documents such a discussion in a FOSS article. Well,
with macros are not functioning properly in many organisations are migrating to OOo
OOo. They may need a developer to rewrite nowadays, but a lot of their old documents
VBA code in OOBasic. This may take some are in the MS Office format. When an MS
time and money, as going back to the old Office document is opened in OOo, the VBA
environment is not an option any longer. macros present in them are unusable under
The manager now wishes he had a copy of most circumstances. So VBA macros have to
files will tell you the time taken for the build. 4. make: This will start the build process, starting with
You can interrupt the build process in the middle if extracting source files, applying patches, and then
you’re running out of disk space. Free up some disk space going on to the actual build (configuring and compiling
and then run make again to resume the build process. If each module). Wait until the actual build starts, as
some missing packages are reported in the middle (which many missing packages will be reported at this phase.
happens very rarely), install them and run make again to For example, if an error like ‘cups.h not found’ appears,
resume. install the cups-devel package to fix it. Once a few
modules (boost, stlport, etc) start compiling, you can
Requirements take a break until the build completes.
A 1.5 GHz or higher processor 5. bin/ooinstall -l <path-to-install>: It installs OOo
512 MB RAM; 1 GB or higher recommended to with links from the built sources—that’s why it’s called
minimise build time a ‘linkoo’ build. You can also use the make install
10 GB free disk space (just for build, excluding OS command to install your OOo build. However, after
requirements), 5 GB or more space for further hacks every hack you have to run make install again in order
and if you plan to add debug support for some to reflect the changes. So the special script ooinstall can
modules. be used instead to reflect changes without a reinstall
A distro with a comfortable package manager every time.
Internet connectivity on Linux recommended
6. cd <path-to-install>/program
Step-by-step procedure
1. Check out ooo-build: You can check out the ooo-build 7. source ./ooenv: This will prepare a shell to run OOo.
repository through version controls like SVN, Git, etc:
svn co svn://svn.gnome.org/svn/ooo-build/trunk ooo-build 8. ./soffice.bin: You can also add options like -writer,
or: -calc, or -impress, to run specific components directly.
git clone git://anongit.freedesktop.org/git/ooo-build/ooo-build The soffice command takes the file name as the
You can also manually download the latest ooo- argument, which is loaded on start-up.
build tarball from download.go-oo.org. However, using a
version control is always advisable. Hacking Go-oo
2. Configure: Now that the soffice instance is running properly from the
./autogen.sh --with-distro=YOURDISTRO --with-gcc- built source, let’s do a small hack. Go to the vcl/ directory
speedup=ccache,icecream [ooo-build/build/ooo3??-m??/vcl/] and edit source/window/
Here you have to specify your distribution name menu.cxx by changing the following line (around line
with the --with-distro option. To see a list of supported number 1800):
distros, run the script once without this option. Use the
nearest match if a specific distro is not listed. pData->aText = rStr;
The ccache,icecream option helps to accelerate
the build process. The build time will substantially to:
reduce if you add those with the --with-gcc-speedup pData->aText = String(rStr).Reverse();
option. Use --with-icecream-bindir=/usr/bin if you get Run the following commands to build the vcl module:
an error like “icecream’s gcc not found”. If you haven’t
used version control and downloaded the tarball . ../LinuxX86Env.Set.sh ## dot space dot dot slash LinuxX86Env.Set.sh
directly, use the configure script instead of autogen.sh. build
./configure --with-distro=YOURDISTRO --with-gcc-
speedup=ccache,icecream You can use build debug=true instead to add debugging
support for a specific module.
3. ./download: This will download the required sources We’ll use the deliver command on completion of the
directly using wget. Please note that the resume option build to ensure changes are made when, by chance, make
is not available, as the download script won’t use wget install is run at a later time.
with resume option. If your Internet connection is slow Now, make sure no previous instance is running by
or not available you have to download the required closing OOo manually or with the command:
sources manually using a different machine and copy
to src/ directory. Apply your own logic to find out the killall -9 soffice.bin
required sources. Use the --with-tag option during
configuration to use different sources other than the Re-run soffice.bin from the program directory to see
default. the changes. Notice anything different? Yes, all the menu
item characters are now in the reverse order (Figure 2).
netcat -w 3 -z -vvn 64.233.187.99 79-81 The output will be saved in the <your_perlcode.pl.tdy> file.
(UNKNOWN) [64.233.187.99] 81 (?) : Connection timed out For C programs, use GNUIndent, as indicated below:
(UNKNOWN) [64.233.187.99] 80 (www) open
(UNKNOWN) [64.233.187.99] 79 (finger) : Connection timed out indent <your_c_code.c>
This example essentially runs a port scan on google. That’s all! Now <your_c_code.c> will be indented
com from Port 79 to 81, and waits for 3 seconds for a properly. There’s no ‘tidy’ for Python because you in any
port to time out. You can see that only port 80 is open. I case write tidy beautiful Python code.
use this constantly when troubleshooting connections
between application servers and databases, especially —Jaganadh G, [email protected]
when firewalls are involved.
This is much more meaningful than a simple
ping. Note that netcat only accepts IP addresses, not Is my file defragmented?
host names, so you can ping a host first to get its IP If we want to know how badly a file is fragmented
address first. Also note that port scans may violate in ext2/ext3 in Linux, there is a utility called filefrag. It
your own network policies and could be construed makes allowances for indirect blocks for ext2 and ext3
as a form of hacking, so use at your own risk and tell filesystems. Syntax: filefrag <filename>. For example:
someone what you’re going to do before you do it.
You can install netcat on Windows using Cygwin (the # filefrag list.sh
command is nc in Cygwin). list.sh: 1 extent found
# filefrag -v list.sh
—Ajeet Singh Raina, [email protected] filefrag -v list.sh
Checking list.sh
Filesystem type is: ef53
Sort folders by size Filesystem cylinder groups is approximately 237
To sort folders by size, use the following command: Blocksize of file list.sh is 4096
File size of list.sh is 15275 (4 blocks)
du --max-depth=1 /home/ | sort -n -r First block: 143526
Last block: 143529
—Ajeet Singh Raina, [email protected] list.sh: 1 extent found
—Rajesh Battala, [email protected] You can list the contents of a .tar file, as follows:
3 /usr/bin/vim.tiny :sh
*+ 4 /usr/bin/vim.gnome Now you can use a shell. After finishing the task with
the shell, press ^D to return to the file.
5 /usr/bin/mcedit-debian
—Jaganadh G, [email protected]
6 /usr/bin/emacs21
—Remin Raphael, [email protected] To check the remote system, issue the command
given below:
Copy files to and from archives
cpio is a tool to copy files from one place to # nmap <ip>
another, and to create archives (like tar), or extract files —Sivakumar E, [email protected]
from an archive file.
The good thing is that cpio takes its input from
other commands like ls or find. So you can archive all
Share Your Linux Recipes!
.mp3 in your home directory by entering the following
The joy of using Linux is in finding ways to get around
command: problems—take them head on, defeat them! We invite you
to share your tips and tricks with us for publication in LFY
ls *.mp3 | cpio -o --format=tar -F mymp3.tar so that they can reach a wider audience. Your tips could be
related to administration, programming, troubleshooting or
general tweaking. Submit them at www.linuxforu.com. The
Or, if you want to include sub-folders, use the sender of each published tip will get an LFY T-shirt.
code:
T
hanks to all the readers who mutex_lock(&count_var_lock);
sent in their responses to the printf( “count value is = %d\n”, count_var);
problems we discussed in the mutex_unlock(&count_var_lock);
previous issue. In last month’s
takeaway problem, I had given a small pthread_continue(child_thread_id);
snippet of multi-threaded code and asked }
you to find out what could have been the
potential bug hiding in it. Congratulations return(0);
to our readers Nilesh Govande, Vivek Goel, }
Arivendu Bhardwaj, Abel Sajaykumar and
Mrigendra Nagar for getting the correct void *counter_func(void *arg)
answer. As pointed out by these readers, {
the code snippet had a potential deadlock int i;
situation. Here is the buggy code snippet
from the takeaway problem: while (1)
{
void *counter_func(void *); Printf(“incrementing the counter value\n”);
mutex_lock(&count_var_lock);
int count_var; count_var++;
mutex_t count_var_lock;
//do nothing
main() for (int i=0; i<MAXCNT; i++);
{
char str[80]; mutex_unlock(&count_var_lock);
pthread_t child_thread_id;
//do nothing
pthread_create(&child_thread_id, NULL, counter_func); for (int j=0; j<MAXCNT; j++);
}
while(1)
{ return((void *)0);
}
//read the next string
Scanf (“%s”, str); As these readers correctly pointed out,
pthread_suspend(child_thread_id); the following is the deadlock condition: child
thread(counter_func) has locked the count_
var_lock and the main thread sets the child thread to Given below is a small code snippet containing two
suspend. In this case, the main thread will wait indefinitely concurrent transactions. Can you determine what will
for count_var_lock and the child thread will be in suspend happen in a wait-die scheme and in a wound-wait scheme,
mode forever. respectively, for this code snippet?
she suggested that since the total_num_tickets is only num_tickets_per_thread[thread_id] by each thread.
printed when the application exits at the end of the day, Assuming a cache line of size 64 bytes, we see that 16
you can parallelise this counter so that the contention elements of the array can fit in the same cache line.
on the single shared counter is removed. You then came Now, whenever any of these threads updates an array
up with the following version of code: element, it will invalidate the copies present in all other
processors’ cache. This will result in that particular
int num_tickets_per_thread [N]; //N is the number of threads in your cache line ping-ponging across all caches of the
application processors that access this array. This problem is known
as false sharing. A processor updating the array element
incrementTicketCounter() it owns, ends up invalidating the other processor’s
{ cache copies because of their co-location in the same
int thread_id = pthread_self(); cache line.
num_total_tickets[thread_id] ++; Unlike true sharing where the same datum is
accessed by multiple threads, in this case, different
} threads access different data items. Because of their co-
location in the same cache line, the line gets migrated
void PrintTotalTickets() across the different processor caches. This phenomenon
{ is known as false sharing. This will result in an
//only the main thread calls this function, so no locking needed increased number of cache misses and will show up as
for (int i = 0; i < N; i++) an increase in the execution time of the application.
num_total_tickets += Num_tickets_per_thread[i]; Also, as the number of threads in the application
printf (“%d”, num_total_tickets); increases, the performance becomes poorer as the
} cache line now ping-pongs to more processor caches,
causing a severe scalability issue.
Note that the API pthread_self gets the ID of the
thread calling this function. Does this code have any Takeaway problem for this month
performance problems? At first glance, it does not Now how can we work around the false cache line-
appear so. All the threads update their own array sharing problem in our example code snippet? We
element. Hence no synchronisation is needed between need to pad each array element so that each element
them. PrintTotalTickets is called only by the main is present in a separate cache line. This will avoid the
thread to print the total number of tickets when the cache line false sharing, but will come at the expense of
program finishes. So this function also does not need an increased space allotted to the array. Our takeaway
any synchronisation to access the num_tickets_per_ problem this month is to modify our sample code so
thread array. Therefore, where is the performance as to eliminate false sharing. Please do send me your
bottleneck? solutions to this.
Remember that your multi-threaded application If you have any favourite programming puzzles that
runs on a multi-processor system. Each processor has you would like to discuss on this forum, please send
its own cache and the cache coherence is enforced them to me at sandyasm_AT_yahoo_DOT_com. Till we
through hardware. Cache coherence ensures that meet again next month, happy programming!
different copies of the same memory location kept in
each of the processor’s local caches are consistent with
each other. When a processor needs to modify data in About the author:
its cache that is also present in other processors’ caches, Sandya Mannarswamy. The author is a specialist in compiler
it first needs to invalidate the copies present in other optimisation and works at Hewlett-Packard India. She has a number
caches. This is known as cache line invalidation. of publications and patents to her credit, and her areas of interest
include virtualisation technologies and software development tools.
Now consider the update of each array element
LinuxForU.com
Follow us on Twitter @LinuxForYou
W
elcome to another segment of struct thermal_cooling_device *cdev = to_cooling_
our voyage! In this article, we’ll device(dev);
talk about device drivers.
Device drivers are important return cdev->ops->get_max_state(cdev, buf);
when it comes to topics closely related to }
kernel-level programming. The device driver
layer is required to have an interface to all static ssize_t
physical devices. There are three types of device thermal_cooling_device_cur_state_show(struct device *dev,
drivers—character, block and network. The struct device_attribute *attr, char *buf)
character and block devices are specific to the file {
subsystem—for example, in the case of tape drives struct thermal_cooling_device *cdev = to_cooling_
and modems we meddle with character devices device(dev);
(which are to be accessed sequentially), while
block devices can be accessed in any order. return cdev->ops->get_cur_state(cdev, buf);
Here is a sample piece of code that shows a }
‘cooling operation’ (please refer to thermal_sys.
c, in your kernel source, for more details and for static ssize_t
all the steps). thermal_cooling_device_cur_state_store(struct device *dev,
struct device_attribute *attr,
/* sys I/F for cooling device */ const char *buf, size_t count)
#define to_cooling_device(_dev) \ {
container_of(_dev, struct thermal_cooling_device, device) struct thermal_cooling_device *cdev = to_cooling_
device(dev);
static ssize_t int state;
thermal_cooling_device_type_show(struct device *dev, int result;
struct device_attribute *attr, char *buf)
{ if (!sscanf(buf, “%d\n”, &state))
struct thermal_cooling_device *cdev = to_cooling_ return -EINVAL;
device(dev);
if (state < 0)
return sprintf(buf, “%s\n”, cdev->type); return -EINVAL;
}
result = cdev->ops->set_cur_state(cdev, state);
static ssize_t if (result)
thermal_cooling_device_max_state_show(struct device *dev, return result;
struct device_attribute *attr, char *buf) return count;
{ }
char block
instance = loop cdrom
ftape keyboard random real-time
clock
container_of(attr, struct thermal_cooling_device_instance, attr); floppy ide
sound mouse mem printers
/.
/usr
/usr/src
/usr/src/linux-source-2.6.27.tar.bz2
/usr/share
/usr/share/doc
/usr/share/doc/linux-source-2.6.27
/usr/share/doc/linux-source-2.6.27/copyright
/usr/share/doc/linux-source-2.6.27/changelog.Debian.gz
cd /usr/src
Figure 2: Using dpkg to list the kernel source files bunzip2 linux-source-2.6.27.tar.bz2
tar xvf linux-source-2.6.27.tar
ln -s linux-source-2.6.27 linux
root@GNU-BOX:/usr/src# cd /usr/src/linux-headers-2.6.27-7
root@GNU-BOX:/usr/src/linux-headers-2.6.27-7#
root@GNU-BOX:/usr/src/linux-headers-2.6.27-7# make menuconfig
HOSTCC scripts/basic/fixdep
The best place for you to buy and sell FOSS products and services
HIGHLIGHTS
A cost-effective marketing tool
A user-friendly format for customers to contact you
A dedicated section with yellow back-ground, and hence will stand out
Reaches to tech-savvy IT implementers and software developers
80% of LFY readers are either decision influencers or decision takers
Discounts for listing under multiple categories
Discounts for booking multiple issues
FEATURES
Listing is categorised on the basis of products and services
Complete contact details plus 30-word description of organisation
Option to print the LOGO of the organisation too (extra cost)
Option to change the organisation description for listings under different categories
TARIFF
Category Listing Value-add Options
ONE Category......................................................... Rs 2,000 LOGO-plus-Entry....................................................... Rs 500
TWO Categories...................................................... Rs 3,500 Highlight Entry (white background)............................. Rs 1,000
THREE Categories................................................... Rs 4,750 Per EXTRA word (beyond 30 words).......................... Rs 50
ADDITIONAL Category............................................ Rs 1,000
Categories
Consultants High Performance Computing Software Development
Consultant (Firm) IT Infrastructure Solutions Training for Professionals
Embedded Solutions Linux-based Web-hosting Training for Corporate
Enterprise Communication Solutions Mobile Solutions Thin Client Solutions
Please find enclosed a sum of Rs. ___________ by DD/ MO//crossed cheque* bearing the No. _________________________________________ dt. _ ________________ in favour of
EFY Enterprises Pvt Ltd, payable at Delhi. (*Please add Rs. 50 on non-metro cheque) towards the cost of ___________________ FOSS Yellow Pages advertisement(s)
or charge my credit card VISA Master Card Please charge Rs. _________________
against my credit card No. C V V No. ___________ (Mandatory)
Date of Birth _____ / _____ / _________ (dd/mm/yy) Card Expiry Date _______ / _______ (mm/yy)
EFY Enterprises Pvt Ltd., D-87/1, Okhla Industrial Area, Phase 1, New Delhi 110 020
Ph: 011-26810601-03, Fax: 011-26817565, Email: [email protected]; Website: www.efyindia.com Signature (as on the card)
To Book Your Listing, Call: Dhiraj (Delhi: 09811206582), Somaiah (B’lore: 09986075717)
www.LinuxForU.com | LINUX For You | AUGUST 2009 | 107
FOSS Yellow Pages
The best place for you to buy and sell FOSS products and services
To advertise in this section, please contact:
Dhiraj (Delhi) 09811206582, Somaiah (Bangalore) 09986075717
Consultant (Firm) Mobile: 09968756177, Fax: 011-26187551 product cyn.in. cyn.in is a web 2.0
Email: [email protected] group collaboration software created
IB Services Web: www.compteki.com by Cynapse, that inter-connects your
Free Installation of GNU/Linux on or www.compteki.in people with each other and their Netcore Solutions Pvt Ltd
Laptops and Desktops. Thin client collective knowledge, seamlessly. No.1 company for providing Linux
solutions based on Debian and It combines the capabilities of Based Enterprise Mailing solution
Ubuntu. Laptops and Desktops Education & Training collaboration tools like wikis, blogs, file with around 1500+ Customer all over
pre-installed with Debian and Ubuntu. repositories, micro blogs, discussions, India. Key Solutions:
Migration to GNU/Linux. Data Aptech Limited audio, videos, and other social •Enterprise Mailing and Collaboration
Recovery.Navi Mumbai IT, Multimedia and Animation applications into a seamless platform. Solution •Hosted Email Security •Mail
Kerala Education and Training cyn.in helps teams to build collaborative Archiving Solution •Push Mail on
Mobile: 09847446918 Mumbai knowledge by sharing and discussing Mobile •Clustering Solution
Email: [email protected] Tel: 022-28272300, 66462300 various forms of digital content within Mumbai
Web : www.ibservices.in Fax: 022-28272399 a secure, unified application that is Tel: 022-66628000
Email: [email protected] accessible using a web based interface Mobile: 09322985222
OS3 Infotech Web: www.aptech-education.com, or a rich desktop client. Email: [email protected]
•Silver Solutions Partner for Novell •High www.arena-multimedia.com Mumbai Web: www.netcore.co.in
Availability Computing Solutions •End- Tel: 022-28445858, 28445629
to-end Open Source Solutions Provider IT-Campus: Academy of Information Email: [email protected]
•Certified Red Hat Training Partner Technology Web: www.cynapse.com
•Corporate and Institutional Training IT training and solution company with
Navi Mumbai over 12 years of experience. - RHCE DeepRoot Linux Pvt Ltd
Mobile: 09324113579 •Software Training •Hardware Training Pure & Exclusive Free Software
Email: [email protected] •Multimedia And Animation •Web Business. Creators of the deepOfix Red Hat India Pvt Ltd
Web: www.os3infotech.com Designing •Financial Accounting Mail Server. We provide: airtight Red Hat is the world's leading
Kota (Raj.) solutions, solid support and Freedom open source solutions provider.
Taashee Linux Services Tel: 0744-2503155, Mobile: 09828503155 We believe in: sharing, compassion Red Hat provides high-quality,
100% Support on LINUX ,OSS Fax: 0744-2505105 and plain action. Backed by full-time affordable technology with its
& JBOSS related projects. We Email: [email protected] hackers. Quick deployment, easy operating system platform, Red
specialize in high-availability and Web: www.doeacc4u.com management. Guaranteed. Hat Enterprise Linux, together with
high-performance clusters,remote Bangalore applications, management and
and onsite system management, Mahan Computer Services (I) Limited Tel: 080-40890000 Services Oriented Architecture (SOA)
maintenance services,systems Established in 1990, the organization Email: [email protected] solutions, including JBoss Enterprise
planning, Linux & JBOSS consulting is primarily engaged in Education Web: www.deeproot.in Middleware. Red Hat also offers
& Support services. and Training through its own & support, training and consulting
Hyderabad Franchise centres in the areas of IT ESQUBE Communications Solutions services to its customers worldwide.
Mobile: 09392493753, Fax: 040-40131726 Software, Hardware, Networking, Pvt Ltd Mumbai
Email: [email protected] Retail Management and English. The Founders of ESQUBE are faculty Tel: 022-39878888
Web: www.taashee.com institute also provides customized at the Indian Institute of Science, Email: [email protected]
training for corporates. Bangalore and carry over eight Web: www.redhat.in
Torrid Networks Pvt Ltd New Delhi decades of experience and
Torrid is a leading provider of Tel: 011-25916832-33 fundamental knowledge in the field
information technology consulting Email: [email protected] of DSP and Telecommunication. Hardware & Networking
with focus on Information Security Web: www.mahanindia.com ESQUBE plays a dominant role in Institute
Services and Open Source Solutions. the creation of IP in the domain of
Noida Sensors, Signals and Systems. Xenitis Technolab Pvt Ltd
Tel: 0120-4545100, Mobile: 09015505583 Enterprise Comm. Solutions Bangalore Xenitis TechnoLab is the first of its
Fax: 0120-4235064 Tel: 080-23517063 kind, state-of-the-art infrastructure,
Email:[email protected] Aware Consultants Email: [email protected] Hardware, Networking and
Web: www.torridnetworks.com We specialize in building and Web: www.esqube.com I.T Security training institution
managing Ubuntu/Debian headquartered in Kolkata.
Linux servers and provide good Keen & Able Computers Pvt Ltd TechnoLab is the training division
Computer (UMPC) For Linux dependable system administration. Microsoft Outlook compatible open of Xenitis group of Companies. It
And Windows We install and maintain in-house source Enterprise Groupware is the proud owner of ‘Aamar PC’,
corporate servers. We also provide Mobile push, Email Syncing of the most popular Desktop brand
Comptek International dedicated and shared hosting as well Contacts/Calendar/Tasks with of Eastern India. These ranges of
World’s smallest computer comptek as reliable wireless/hybrid networking. mobiles PC’s are sold in the west under
wibrain B1 umpc with Linux,Touch Bangalore •Mail Archival •Mail Auditing •Instant the brand name of ‘Aamchi PC’, in
Screen, 1 gb ram 60gb, Wi-Fi, Tel: 080-26724324 Messaging the north as ‘Aapna PC’ and in the
Webcam, upto 6 hour battery Email: [email protected] New Delhi south as ‘Namma PC’.
(opt.), Usb Port, max 1600×1200 Web: www.aware.co.in Tel: 011-30880046, 30880047 Kolkata
resolution, screen 4.8”, 7.5”×3.25” Mobile: 09810477448, 09891074905 Tel: 033-22893280
Size, weight 526 gm. Cynapse India Private Limited Email: [email protected] Email: [email protected]
New Delhi We are the creators of open source Web: www.keenable.com Web: www.techonolabindia.com
IT Infrastructure Solutions Clover Infotech Private Limited Tel: 080-42823000, Fax: 080-42823003
Clover Infotech is a leading Email: [email protected]
Absolut Info Systems Pvt Ltd technology services and solutions Web: www.pacerautomation.com
Open Source Solutions Provider. provider. Our expertise lies in Ingres Corporation
Red Hat Ready Business Partner. supporting technology products Ingres Corporation is a leading
Mail Servers/Anti-spam/GUI related to Application, Database, provider of open source database
interface/Encryption, Clustering & Middleware and Infrastructure. We software and support services.
Load Balancing - SAP/Oracle/Web/ enable our clients to optimize their Ingres powers customer success
Thin Clients, Network and Host business through a combination of by reducing costs through highly Red Hat India Pvt Ltd
Monitoring, Security Consulting, best industry practices, standard innovative products that are hallmarks Red Hat is the world's leading
Solutions, Staffing and Support. processes and customized client of an open source deployment and open source solutions provider.
New Delhi engagement models. Our core uniquely designed for business critical Red Hat provides high-quality,
Tel: +91-11-26494549 services include Technology applications. Ingres supports its affordable technology with its
Fax: +91-11-4175 1823 Consulting, Managed Services and customers with a vibrant community operating system platform, Red
Mobile: +91-9873839960 Application Development Services. and world class support, globally. Hat Enterprise Linux, together with
Email: [email protected] Mumbai Based in Redwood City, California, applications, management and
Web: www.aisplglobal.com Tel: 022-2287 0659, Fax: 022-2288 1318 Ingres has major development, sales, Services Oriented Architecture (SOA)
Mobile: +91 99306 48405 and support centers throughout solutions, including JBoss Enterprise
Advent Infotech Pvt Ltd Email: [email protected] the world, and more than 10,000 Middleware. Red Hat also offers
Advent has an experienced techno- Web: www.cloverinfotech.com customers in the United States and support, training and consulting
marketing team with several years of internationally. services to its customers worldwide.
experience in Networking & Telecom DeepRoot Linux Pvt Ltd New Delhi Mumbai
business, and is already making Pure & Exclusive Free Software Tel: 011-40514199, Fax: +91 22 66459537 Tel: 022-39878888
difference in market place. ADVENT Business. Creators of the deepOfix Email: [email protected]; [email protected] Email: [email protected]
qualifies more as Value Added Mail Server. We provide: airtight Web: www.ingres.com Web: www.redhat.in
Networking Solution Company, we solutions, solid support and Freedom
offers much to customers than just We believe in: sharing, compassion Keen & Able Computers Pvt Ltd Srijan Technologies Pvt Ltd
Routers, Switches, VOIP, Network and plain action. Backed by full-time Open Source Solutions Provider. Srijan is an IT consulting company
Management Software, Wireless hackers. Quick deployment, easy Red Hat Ready Business Partner. engaged in designing and
Solutions, Media Conversion, etc. management. Guaranteed. Mail Servers/Anti-spam/GUI building web applications, and IT
New Delhi Bangalore interface/Encryption, Clustering & infrastructure systems using open
Tel: 46760000, 09311166412 Tel: 080-40890000 Load Balancing - SAP/Oracle/Web/ source software.
Fax: 011-46760050 Email: [email protected] Thin Clients, Network and Host New Delhi
Email: marketingsupport@ Web: www.deeproot.in Monitoring, Security Consulting, Tel: 011-26225926, Fax: 011-41608543
adventelectronics.com Solutions, Staffing and Support. Email: [email protected]
Web: www.adventelectronics.com Duckback Information Systems New Delhi-110019 Web: www.srijan.in
Pvt Ltd Tel: 011-30880046, 30880047
Asset Infotech Ltd A software house in Eastern India. Mobile: 09810477448, 09891074905
We are an IT solution and training Business partner of Microsoft, Email: [email protected]
company with an experience of 14 Oracle, IBM, Citrix , Adobe, Redhat, Web: www.keenable.com A company focussed on Enterprise
years, we are ISO 9001: 2000. We Novell, Symantec, Mcafee, Computer Solution using opensource software.
are partners for RedHat, Microsoft, Associates, Veritas , Sonic Wall LDS Infotech Pvt Ltd Key Solutions:
Oracle and all Major software Kolkata Is the authorised partner for RedHat • Enterprise Email Solution
companies. We expertise in legal Tel: 033-22835069, 9830048632 Linux, Microsoft, Adobe, Symantec, • Internet Security and Access
software ans solutions. Fax: 033-22906152 Oracle, IBM, Corel etc. Software Control
Dehradun Email: [email protected] Services Offered: •Collaborative • Managed Services for Email
Tel: 0135-2715965, Mobile: 09412052104 Web: www.duckback.co.in Solutions •Network Architecture Infrastructure.
Email: [email protected] •Security Solutions •Disaster Mumbai
Web: www.asset.net.in HBS System Pvt Ltd Recovery •Software Licensing Tel: 022-66338900; Extn. 324
System Integrators & Service •Antivirus Solutions. Email: [email protected]
BakBone Software Inc. Provider.Partner of IBM, DELL, HP, Mumbai Web: www. technoinfotech.com
BakBone Software Inc. delivers Sun, Microsoft, Redhat, Trend Micro, Tel: 022-26849192
complexity-reducing data protection Symentic Partners of SUN for their Email: [email protected]
Want to register your organisation in
technologies, including award- new startup E-commerce initiative Web: www.ldsinfotech.com
winning Linux solutions; proven Solution Provider on REDHAT, FOSS Yellow Pages
FREE
Solaris products; and application- SOLARIS & JAVA Pacer Automation Pvt Ltd
focused Windows offerings that New Delhi Pacer is leading providers of IT *
reliably protect MS SQL, Oracle, Tel: 011-25767117, 25826801/02/03 Infrastructure Solutions. We are
Exchange, MySQL and other partners of HP, Redhat, Cisco,
business critical applications.
Fax: 25861428
Email: [email protected] Vwmare, Microsoft and Symantec. For
New Delhi Our core expertise exists in, Call: Dhiraj (Delhi) 09811206582
Tel: 011-42235156 Consulting, building and Maintaining Somaiah (Bangalore) 09986075717
Email: [email protected] the Complete IT Infrastructure.
*Offer for limited period.
Web: www.bakbone.com Bangalore
Tetra Information Services Pvt Ltd Desktop for SME users. Its affordable and many other original software companies, Semiconductor and
One of the leading open source (Rs. 500 + tax as special scheme), licenses. Application development companies
provders. Our cost effective business Friendly (Graphical UserInterface) and Mumbai across the globe.
ready solutions caters of all kind of Secure (Virus free). Tel: 022-25001812, Mobile: 09821097238 Bangalore
industry verticles. New Delhi Email: [email protected] Tel: 080-28565801/05, Fax: 080-28565800
New Delhi Tel: 011-26014670-71, Fax: 26014672 Web: www.bluechip-india.com Email: [email protected]
Tel: 011-46571313, Fax: 011-41620171 Email: [email protected] Web: www.integramicroservices.com
Email: [email protected] Web: www.openlx.com
Web: www.tetrain.com Software Development iwebtune.com Pvt Ltd
iwebtune.com is your one-stop, total
Tux Technologies Linux Experts Carizen Software (P) Ltd web site support organisation. We
Tux Technologies provides consulting Carizen’s flagship product is Rainmail provide high-quality website services
and solutions based on Linux and Intaglio Solutions Intranet Server, a complete integrated and web based software support to
Open Source software. Focus areas We are the training and testing software product consisting modules any kind of websites, irrespective of
include migration, mail servers, partners of RedHat and the first to like mail sever, proxy server, gateway the domain or the industry segments.
virus and spam filtering, clustering, conduct RHCSS exam in delhi for the anti-virus scanner, anti-spam, Bangalore
firewalls, proxy servers, VPNs, server first time ever. groupware, bandwidth aggregator & Tel: 080-4115 2929
optimization. New Delhi manager, firewall, chat server and fax Email: [email protected]
New Delhi Tel: 011-41582917, 45515795 server. Infrastructure. Web: www.iwebtune.com
Tel: 011-27348104, Mobile: 09212098104 Email: [email protected] Chennai
Email: [email protected] Web: www.intaglio-solutions.com Tel: 044-24958222, 8228, 9296 Sarvasv Technologies Pvt Ltd
Web: www.tuxtechnologies.co.in Email: [email protected] Web OSX Windows Linux Mobile
Web: www.carizen.com LAMP W3C apps. Agile, BDD,
Veeras Infotek Private Limited Linux Vendor/Distributors TDD development. On-Demand,
An organization providing solutions DeepRoot Linux Pvt Ltd SaaS, ERP, CRM, HRM. Open
in the domains of Infrastructure GT Enterprises Pure & Exclusive Free Software Source integration. Online project
Integration, Information Integrity, Authorized distributors for Red Business. Creators of the deepOfix management. VCS (git, svn).
Business Applications and Hat and JBoss range of products. Mail Server. We provide: airtight automated deployment.
Professional Services. We also represent various OS’s solutions, solid support and Freedom Greater Noida
Chennai Applications and Developer Tools like We believe in: sharing, compassion Mobile: 09711472457, 09810270848
Tel: 044-42210000, Fax: 28144986 SUSE, VMWare, Nokia Qt, MySQL, and plain action. Backed by full-time Email: [email protected]
Email: [email protected] Codeweavers, Ingres, Sybase, hackers. Quick deployment, easy Website: www.sarvasv.in
Web: www.veeras.com Zimbra, Zend-A PHP Company, High management. Guaranteed.
Performance Computing Solutions Bangalore Unistal Systems Pvt Ltd
from The Portland Group, Absoft, Tel: 080-40890000 Unistal is pioneer in Data Recovery
Linux-Based Web-Hosting Pathscale/Qlogic and Intel Compilers, Email: [email protected] Software & Services. Also Unistal is
Scalix-Messaging solution on Linux Web: www.deeproot.in national sales & support partner for
Manas Hosting Platform. BitDefender Antivirus products.
ManasHosting is a Bangalore- Bangalore New Delhi
based company that is dedicated in Mobile: +91-9845009939, +91-9343861758 Tel: 011-26288583, Fax: 011-26219396
helping small and midsize business Email : [email protected] Email: [email protected]
companies to reach customers Web: www.gte-india.com Web: www.unistal.com
online. We believe that by creating InfoAxon Technologies Ltd
a website, all you have is just web Taurusoft InfoAxon designs, develops and
presence; but to get effective Contact us for any Linux Distribution supports enterprise solutions stacks Software and Web
traffic on your website, it is equally at reasonable rates. Members get leveraging open standards and open Development
important to have a well designed additional discounts and Free CD/ source technologies. InfoAxon’s
one. This is why we provide the best DVDs with each purchase. Visit our focus areas are Business Intelligence, Bean eArchitect Integrated Services
of Web Hosting and Web Designing website for product and membership CRM, Content & Knowledge Pvt Ltd
services. Also, our services are details Management and e-Learning. Application Development, Web
backed with exceptionally good Mumbai Noida Design, SEO, Web Marketing, Web
quality and low costs Mobile: 09869459928, 09892697824 Tel: 0120-4350040, Mobile: 09810425760 Development.
Bangalore Email: [email protected] Email: [email protected] Navi Mumbai
Tel: 080-42400300 Web: www.taurusoft.netfirms.com Web: http://opensource.infoaxon.com Tel: 022-27821617, Mobile: 9820156561
Email: [email protected] Fax: 022-27821617
Web: www.manashosting.com Integra Micro Software Services (P) Email: [email protected]
Software Subscriptions Ltd Web: www.beanarchitect.com
Integra focuses on providing
Linux Desktop Blue Chip Computers professional services for software Mr Site Takeaway Website Pvt Ltd
Available Red Hat Enterprise Linux, development and IP generation Our product is a unique concept in
Indserve Infotech Pvt Ltd Suse Linux Enterprise Server / to customers. Integra has a major India usingwhich a person without
OpenLx Linux with Kalcutate Desktop, JBoss, Oracle, ARCserve practice in offering Telecom Services having any technical knowledge can
(Financial Accounting & Inventory Backup, AntiVirus for Linux, Verisign/ and works for Telecom companies, create his website within 1 hour; we
on Linux) offers a complete Linux Thawte/GeoTrust SSL Certificates Device Manufacturers, Networking also have a Customer Care Center
in India for any kind ofafter sales Training for Corporate Cochin Chennai
help. We are already selling it world Tel: 0484-2335324 Tel: 044-45582525
over with over 65,000 copiessold. Bascom Bridge Email: [email protected] Email: [email protected]
It comes with FREE Domain Name, Bascom Bridge is Red Hat Certified Web: www.focuzinfotech.com Web: www.mazenetsolution.com
Web Hosting and Customer Care partner for Enterprise Linux 5 and also
Center forFree Support via Phone providing training to the individuals G-TEC Computer Education Netweb Technologies
and Email and features like PayPal and corporate on other open source ISO 9001:2000 certified IT Company, Simplified and scalable storage
Shopping Cart, Guestbook, Photo technologies like PHP, MySQL etc. International Testing Centre, solutions.
Gallery, Contact Form, Forums, Ahmedabad Specialised in Multimedia & Animation, Bangalore
Blogs and many more. The price Tel: 079-27545455—66 conduct MCP, MCSE 2000, MCDBA Tel: 080-41146565, 32719516
ofcomplete package is just Rs 2,999 Fax: 079-27545488 and MCSA certificates, CCNA, Email: [email protected]
per year. Email: [email protected] CCNP, the Only authorized centre by Web: www.netwebindia.com
Patiala Web: www.bascombridge.com INTERNATIONAL AND EUROPEAN
Mobile: 91-9780531682 COMPUTER UNION to conduct New Horizons India Ltd
Email: [email protected] Brainnet ICDL, Adobe Certifications, training New Horizons India Ltd, a joint
Web: www.mrsite.co.in Kolkata on Web Designing, Tally, Spoken venture of New Horizons Worldwide,
Tel: 033-40076450 English. Conducts Corporate and Inc. (NASDAQ: NEWH) and the
Salah Software Email: [email protected] institutional training. International Shriram group, is an Indian company
We are specialized in developing Web: www.brainware-india.com certifications issued. operational since 2002 with a global
custom strategic software solutions Bangalore foot print engaged in the business
using our solid foundation on focused Centre for Excellence in Telecom Tel: 080-43567000 of knowledge delivery through
industry domains and technologies. Technology and Management Email: [email protected] acquiring, creating, developing,
Also providing superior Solution Edge (CETTM), MTNL managing, lending and licensing
to our Clients to enable them to gain MTNL’s Centre for Excellence Gujarat Infotech Ltd knowledge in the areas of IT, Applied
a competitive edge and maximize in Telecom Technology and GIL is a IT compnay and 17 years of Learning. Technology Services and
their Return on Investments (ROI). Management (CETTM) is a state of expericence in computer training field. Supplementary Education. The
New Delhi the art facility to impart Technical, We have experience and certified company has pan India presence
Tel: 011-41648668, 66091565 Managerial and corporate training to faculty for the open Source courses with 15 offices and employs 750
Email: [email protected] Telecom; Management personnel. like Redhat, Ubantoo,and PHP, Mysql people.
Web: www.salahsoftware.com CETTM has AC lecture halls, Ahmedabad New Delhi
computer Labs and residential facility. Tel: 079-27452276, Fax: 27414250 Tel: 011-43612400
Mumbai Email: [email protected] Email: [email protected]
Thin Client Solutions Tel: 022-25714500, 25714586, 25714585, Web: www.gujaratinfotech.com Web: www.nhindia.com
25714586
Digital Waves Fax: 022-25706700 Lynus Academy Pvt Ltd Network NUTS
The ‘System Integration’ business Email: [email protected] India’s premier Linux and OSS India’s only Networking Institute
unit offers end-to-end Solutions on Web: http://cettm.mtnl.in/infra training institute. by Corporate Trainers. Providing
Desktops, Servers, Workstations, Chennai Corporate and Open classes
HPC Clusters, Render Farms, Complete Open Source Solutions Tel: 044-42171278, 9840880558 for RHCE / RHCSS training and
Networking, Security/Surveillance RHCT, RHCE and RHCSS training. Email: [email protected] certification. Conducted 250+ Red
& Enterprise Storage. With our Hyderabad Web: www.lynusacademy.com Hat exams with 95% result in last 9
own POWER-X branded range Tel: 040-66773365, 9849742065 months. The BEST in APAC.
of Products, we offer complete Email: [email protected] Linux Learning Centre Private Limited New Delhi
Solutions for Animation, HPC Web: www.cossindia.com Pioneers in training on Linux Tel: 46526980-2
Clusters, Storage & Thin-Client technologies. Mobile: 09310024503, 09312411592
Computing ElectroMech Bangalore Email: [email protected]
Mobile: 09880715253 Redhat Linux and open source Tel:080-22428538, 26600839 Web: www.networknuts.net
Email: [email protected] solution , RHCE, RHCSS training Email: [email protected]
Web: www.digitalwaves.in and exam center,Ahmedabad and Web: www.linuxlearningcentre.com STG International Ltd
Vadodara An IT Training and Solution
Enjay Network Solutions Ahmedabad Maze Net Solutions (P) Ltd Company,Over an experience of
Gujarat based ThinClient Solution Tel: 079-40027898 Maze Net Solution (P) Ltd, is a pioneer 14years.We are ISO 9001:2000
Provider. Providing Small Size Email: [email protected] in providing solutions through on Certified.Authorised Training Partners
ThinClient PCs & a Full Featured Web: www.electromech.info time, quality deliverables in the fields of Red Hat & IBM-CEIS. We cover all
ThinClient OS to perfectly suite of BPO, Software and Networking, Software Trainings.
needs of different working Focuz Infotech while providing outstanding training New Delhi
environment. Active Dealer Channel Focuz Infotech Advanced Education to aspiring IT Professionals and Call Tel: 011-40560941-42, Mobile:
all over India. is the quality symbol of high-end Center Executives. Backed by a team 09873108801
Gujarat Advanced Technology Education in of professional workforce and global Email: [email protected]
Tel.: 0260-3203400, 3241732, 3251732, the state. We are providing excellent alliances, our prime objective is to offer Web: www.stgonline.com
Mobile: 09377107650, 09898007650 services on Linux Technology the best blend of technologies in the www.stgglobal.com
Email: [email protected] Training, Certifications and live spheres of Information Technology (IT)
Web: www.enjayworld.com projects to students and corporates, and Information Technology Enabled
since 2000. Services (ITES).
TNS Institute of Information Love and Selfless Service. Bikaner Indian Institute of Job Oriented
Technology Pvt Ltd Mobile: 09393733174 Tel: 0151-2202105, Mobile: 09928173269 Training Centre
Join RedHat training and get Email: [email protected] Email: [email protected], Ahmedabad
100% job gaurantee. World's most Web: www.amritahyd.org [email protected] Tel: 079-40072244—2255—2266
respected Linux certification. After Mobile: 09898749595
RedHat training, you are ready to join Centre For Industrial Research and Disha Institute Email: [email protected]
as a Linux Administrator or Network Staff Performance A franchisee of Unisoft Technologies, Web: www.iijt.net
Engineer. A Unique Institute catering to the Providing IT Training & Computer
New Delhi need for industries as well as Hardware & Networking Institute of Advance Network
Tel: 011-3085100, Fax: 30851103 Students for trainings on IT, CISCO Dehradun Technology (IANT)
Email: [email protected] certification, PLC, VLSI, ACAD, Tel: 3208054, 09897168902 •Hardware Engg.•Networking
Web: www.tiit.co.in Pneumatics, Behavior Science and Email: [email protected] •Software Engg. •Multimedia
Handicraft. Web: www.unisofttechnologies.com Training.
Webel Informatics Ltd Bhopal Ahmedabad
Webel Informatics Ltd (WIL), a Tel: 0755-2661412, 2661559 EON Infotech Limited (TECHNOSchool) Tel: 079-32516577, 26607739
Government of West Bengal Fax: 0755-4220022 TechnoSchool is the most Fax: 079-26607739
Undertaking. WIL is Red Hat Training Email: [email protected] happening Training Centre for Red Email: contact @iantindia.com
Partner and CISCO Regional Web: www.crispindia.com Hat (Linux- Open Source) in the Web: www.iantindia.com
Networking Academy. WIL conducts Northern Region. We are fully aware
RHCE, RHCSS, CCNA, Hardware Center for Open Source Development of the Industry's requirement as our IPCC
and Software courses. And Research Consultants are from Linux industry. Bridging Gap with professionals.
Kolkata Linux, open source & embedded We are committed to make you a Lucknow
Tel: 033-22833568, Mobile: 09433111110 system training institute and total industry ready individual so that Tel: 0522-3919496
Email: [email protected] development. All trainings provided by your dreams of a professional career Email: [email protected]
Web: www.webelinformatics.com experienced exports & administrators are fulfilled. Web: www.ipcc.co.in
only. Quality training (corporate and Chandigarh
individual). We expertise in open Tel: 0172-5067566-67, 2609849 Koenig Solutions (P) Ltd
Training for Professionals source solution.Our cost effective Fax: 0172-2615465 A reputed training provider in India.
business ready solutions caters of all Email: [email protected] Authorised training partner of Red
AEM kind of industry verticals. Web: http://technoschool.net Hat, Novell and Linux Professional
AEM is the Best Certified Redhat New Delhi Institute. Offering training for RHCE,
Training Partner in Eastern India since Mobile: 09312506496 GT Computer Hardware Engineering RHCSS, CLP, CLE, LPI - 1 & 2.
last 3 years. AEM conducted more Email: [email protected] College (P) Ltd New Delhi
than 500 RHCE exams with 95- Web: www.cfosdr.com Imparting training on Computer Mobile: 09910710143, Fax: 011-25886909
100% pass rate. Other courses— Hardware Networking, Mobile Email: [email protected]
RHCSS,SCNA,MCSE,CCNA. Cisconet Infotech (P) Ltd Phone Maintenance & International Web: www.koenig-solutions.com
Kolkata Authorised Red Hat Study cum Exam Certifications
Tel: 033-25488736, Mobile: 09830075018 Centre. Courses Offered: RHCE, Jaipur NACS/CIT
Email: [email protected] RHCSS, CCNA, MCSE Tel: 0141-3213378 We are Providing Training of LINUX to
Web: www.aemk.org Kolkata Email: [email protected] Professional & Cooperate.
Tel: 033-25395508, Mobile: 09831705913 Web: www.gteducation.net Meerut
Agam Institute of Technology Email: [email protected] Tel: 0121-2420587, Mobile: 9997526668
In Agam Institute of Technology, we Web: www.cisconetinfo.com HCL Career Development Centre Email: [email protected]
provide hardware and networking Bhopal Web: www.nacsglobal.com
training since last 10 years. We CMS Computer Institute As the fountainhead of the most
specialise in open source operating Red Hat Training partner with 3 Red significant pursuit of human mind NACS Infosystems (P) Ltd
systems like Red Hat Linux since we Hat Certified Faculties, Cisco Certified (IT), HCL strongly believes, “Only NACS is a organization which is
are their preferred training partners. (CCNP) Faculty , 3 Microsoft Certified a Leader can transform you into a providing training for all international
Dehradun Faculties having state Of The Art IT Leader”. HCL CDC is a formalization certification, and also NACS is the
Tel: 0135-2673712, Mobile: 09760099050 Infrastructure Flexible Batch Timings of this experience and credo which authorized Training Partner of Redhat
Web: www.agamtecindia.com Available..Leading Networking has been perfected over three and also having testing centre
Institute in Marathwada decades. of THOMSON PROMETRIC and
Amritha Institute of Computer Aurangabad Bhopal PEARSON VUE.
Technology Tel: 0240-3299509, 6621775 Tel: 0755-4094852
Amrita Technologies provides Email: [email protected] Email: [email protected]
an extensive training in high Web: www.cmsaurangabad.com Web: www.hclcdc.in To advertise in this section,
end certification programs and
Networking Solutions like Redhat Cyber Max Technologies IINZTRIX E Technologies Pvt Ltd
please contact
Linux, Redhat Security Services, OSS Solution Provider, Red Hat No. 1 Training prvinder in this region. Somaiah (B’lore:
Cisco, Sun Solaris, Cyber Security Training Partners, Oracle,Web, Thin meerut 09986075717) Dhiraj (Delhi:
Program IBM AIX and so on with a Clients, Networking and Security Tel: 0121-4020111, 4020222 09811206582) on
strong focus on quality standards Consultancy. Also available CCNA Mobile: 09927666664
and proven technology processes and Oracle Training on Linux. Also Email: [email protected] 011-2681-0602 Extn. 222
with most profound principles of available Laptops & PCs Web: www.iintrix.com
REGISTER TODAY
MUMBAI | 7Ð9 OCTOBER for a Conference Pass
or Reserve Your
Bombay Exhibition Centre Free Expo Pass.
www.interop.com/mumbai
Get the information you need to build your competitive edge at IT’s most comprehensive
Conference and Expo. See all the latest innovations—including virtualization, mobility and
cloud computing—that will help you increase efficiency, drive revenue and reduce costs.
Register Today for a Conference Pass or Reserve Your Free Expo Pass.
www.interop.com/mumbai
For Exhibiting and Sponsorship opportunities Contact Pankaj Jain at + 91 98101 72077 or email: [email protected].
BadGE
www.LinuxForU.com | LINUX For You | AUGUST 2009 | 115
Opslag FS2
Tyrone Opslag FS2 is a all-in-one storage solution that aims to meet all your requirements for
storage virtualization. It is an extremely flexible solution with a wide choice of
interface/protocols/disk-subsystem and provides extremely high redundancy.
You can use it as a NAS or a SAN. For customers looking for extremely high-performance storage
solutions we offer SRP target support & NFSoRDMA (over Infiniband interface).
It is a highly scalable solution and can scale up to 384TB
Drives:
Supports up to 16-hot-swap SAS/SATAII HDDs in one box
Supports up to 80 HDDs by cascading multiple JBODs
Management:
LCD Control Panel for setup, alarm mute and configuration
Firmware-embedded web browser-based RAID manager -
access your RAID subsystem from any standard internet
browser via 10/100 Lan port
Enclosure:
3U rack-mountable with rail-kit
* The product picture is representative and the actual
Redundant Power supply product may differ in looks. Please contact us for complete information.