Wednesday, October 25, 2006

Lets know about orkut....


As we all know about orkut ,it is an Internet social network service run by Google .Launched officially in January 22 2004 by google itself.Orkut Buyukkokten a Turkish software Engineer developed it while working at google.It was an independent project for him.That is why named after Orkut Buyukkokten.As of October 18, 2006; there are 30,089,043 users on orkut.Orkut is vey much popular in Brazil and if we look at the facts we find the number of Brazilian orkut users has reached 63% of the total users, followed by india and United States with about 14% and 10.3% respectively (As of Octobar 23rd 2006).

To more information regarding orkut visit http://en.wikipedia.org/wiki/Orkut

Quotes from my side...

1. Users are divided into three types: novice, intermediate and expert.

Novice Users: people who are afraid that simply pressing a key might break their computer.

Intermediate Users
: people who don't know how to fix their computer after they've just pressed a key that broke it.

Expert Users
: people who break other people's computers.

2. "Some things Man was never meant to know. For everything else, there's Google."

Saturday, October 21, 2006

Friday, October 20, 2006

Happy Dipawali.....



Wishing U all a very Happy Dipawali from bottom of my heart.Its one of the special festival of INDIA.May almighty goddess lighten your life with joy and full of happiness.God bless u all.

Monday, October 16, 2006

Development Tool : MAKE

make is a utility for automatically building large applications. This utility determines which pieces of a large program need to be recompiled and issues commands to recompile them. To prepare to use 'make' we must write a file called "makefile" that describe the relationships among files and provide commands for updating each file.make is most commonly used in C/C++ projects, but in principle it can be used with almost any compiled language.

The basic tool for building an application from source code is the compiler. make is a separate, higher-level utility which tells the compiler which source code files to process. It tracks which ones have changed since the last time the project was built and invokes the compiler on only the components that depend on those files. Although in principle one could always just write a simple shell script to recompile everything at every build, in large projects this would consume a prohibitive amount of time. Thus, a makefile can be seen as a kind of advanced shell script which tracks dependencies instead of following a fixed sequence of steps.

Today, programmers increasingly rely on Integrated Development Environments and language-specific compiler features to manage the build process for them instead of manually specifying dependencies in makefiles. However, make remains widely used, especially in Unix-based platforms.


Modern versions

Make has gone through a number of rewrites, and a number of from-scratch variants which used the same file format and basic algorithmic principles, and also provided a number of their own non-standard enhancements, in the time that followed. Some of them are:

  • BSD make, which is derived from Adam de Boor's work on a version of make capable of building targets in parallel, and survives with varying degrees of modification in FreeBSD, NetBSD and OpenBSD. Most notably, it has conditionals and iterative loops which are applied at the parsing stage and may be used to conditionally, and programmatically, construct the makefile, including generation of targets at runtime.
  • GNU make, which is part of most GNU/Linux installations and is frequently used in conjunction with the GNU build system. Its notable departures from traditional make are most noticeable in pattern-matching in dependency graphs and build targets, as well as a number of functions which may be invoked to have the make utility do things like collect a list of all files in the current directory. Where BSD make has a rich set of internal macros at parse time, GNU make typically encourages the use of an external macro package like m4.
  • Microsoft nmake, commonly available on Windows. It is fairly basic, offering only a subset of the features of the two above makes. Note that there exists another, incompatible program also called nmake from AT&T for Unix.

POSIX includes standardization of the basic features and operation of the make utility, and is implemented with varying degrees of completeness in Unix-based versions of make. In general, simple makefiles may be used between various versions of make with reasonable success. Some versions of GNU make and BSD make will look first for files named "GNUmakefile" and "BSDmakefile" respectively, which allows one to put makefiles which use implementation-defined behaviour in separate locations.

Advantages

GNU Make has many powerful features for use in makefiles, beyond what other Make versions have. It can also regenerate, use, and then delete intermediate files which need not be saved.

GNU Make also has a few simple features that are very convenient. For example, the -o file option which says ``pretend that source file file has not changed, even though it has changed.'' This is extremely useful when you add a new macro to a header file. Most versions of Make will assume they must therefore recompile all the source files that use the header file; but GNU Make gives you a way to avoid the recompilation, in the case where you know your change to the header file does not require it.

However, the most important difference between GNU Make and most versions of Make is that GNU Make is free software.


Makefile structure

A makefile consists of lines of text which define a file (or set of files) or a rule name as depending on a set of files. Output files are marked as depending on their source files, for example, and source files are marked as depending on files which they include internally. After each dependency is listed, a series of lines of tab-indented text may follow which define how to transform the input into the output, if the former has been modified more recently than the latter. In the case where such definitions are present, they are referred to as "build scripts" and are passed to the shell to generate the target file. The basic structure is:

# Comments use the pound sign (aka hash)
target: dependencies
command 1
command 2
.
.
.
command n

A makefile also can contain definitions of variables and inclusion of other makefiles. Variables in makefiles may be overridden in the command line arguments passed to the make utility. This allows users to specify different behaviour for the build scripts and how to invoke programs, among other things. For example, the variable "CC" is frequently used in makefiles to refer to a C compiler, and the user may wish to provide an alternate compiler to use.


Example makefile

Below is a very simple makefile that would compile a source called "helloworld.c" using cc, a C compiler. The PHONY tag is a technicality that tells make that a particular target name does not produce an actual file. The $@ and $<>

Note that in the "clean" target, a minus prefixes the command, which tells make to ignore errors in running the command; make will normally exit if execution of a command fails at any point. In the case of a target to cleanup, typically called "clean", one wants to remove any files generated by the build process, without exiting if they don't exist. By tagging the clean target PHONY, we prevent make expecting a file to be produced by that target. Note that in this particular case, the minus prefixing the command is redundant in the common case, the -f or "force" flag to rm will prevent rm exiting due to files not existing. It may exit with an error on other, unintended errors which may be worth stopping the build for.

helloworld: helloworld.o
        cc -o $@ $<

helloworld.o: helloworld.c
cc -c -o $@ $<

.PHONY: clean
clean:
-rm -f helloworld helloworld.o
Link
----------------------------------------------------------------------------------------------------------------

Sunday, October 15, 2006

Linux in a Tea Spoon

Free s/w means freedom and Liberty. The free in Linux stands for freedom of choice, to redistribute, to install a feature, freedom to modify the source code. That’s the spirit of Linux being free. It does not have the restrictions imposed by the licenses from software from commercial and greedy businessmen. It gives one and all, an equal and fair opportiunity. No invisible handcuffs, fetters, and chains, to straitjacket you, and make you a helpless slave.
Linux came into being about 11 years ago- it was developed by Linus Torvalds of Finland along with a group of programmers from the open source software movement. Linux was mostly something only the geeks worked with. And yes, it was mostly about commands and programming. But over the years with so many Linux enthusiasts (about 50 million of them) working on it and sharing knowledge about it, quite a few versions have come up which are as easy to use as windows. And developers are still free to work with code and enhance it.
Linux is growing steadily year after year. With a passionate community backing it, with big companies Like IBM and HP pledging their support for it, it’s no wonder Linux- the wonder operating system for servers of the past, has also made it to the desktops of today. Not in a sweeping way yet, but in ways that will help you –the user. PC prices are already on their way down. And you get more choice with operating systems and applications. From being an OS only computer professionals had heard about, Linux, in a short time, has made a transition into the lucrative and high profile home PC segment. Most of the decision to switchover sounds very economical. From a measly base of a few thousand users, Linux now boasts of close to 50 million users, cracking the monolith of Microsoft’s monopoly. Companies like IBM, HP and Dell have also taken to Linux in a big way.
If you want to get comfortable with Linux, you don’t have to let go of windows. Get Linux installed on a seprate partition and you can switch between Windows and Linux. There are some Linux versions that run off CDs too-xandross and Knoppix.
You don’t have to be a geek to work with Linux. There are Desktop environments that let you work in Linux as you work in Linux as you would in Windows. Linux hand in decreasing PC prices. The PCs bundle the operating system. Linux being an open source operating system, means that the code that runs is open for everyone to see, work with, modify and develop their own innovative apps for it. The deal with this experimentation is that you have to share the knowledge you gained and the software you created with the public domain. So the operating system comes to you for free, or if there are some copyrighted application on it, you play up a bit. But this is nothing compared to the fortune people spend on OSs like windows. And a company bundles Linux and applications based on it with a computer, quite a bit of the software cost comes down.
Microsoft doesn’t agree with the free concept at all-the software is free but the support isn't Windows code to outsiders so they could build on to it. Very recently though, the company has allowed part of the code to be opened up to some US government are vying with each other to get tech-savvy and help the citizens through e-governance, the opening up of the OS code is important, countries like India need a variety of regional language fonts and content to be created which can’t done without Microsoft’s help, if the choice is Windows. Since this isn’t happening much, they have gone ahead with adopting Linux.
Linux is based on the commercial OS, UNIX. All the OSs tries to pack in command line management of systems. System administrators of companies use command lines all the times as their lifeline, but it’s not really meant for regulars users. But UNIX and Linux are not all about just command line stuff. UNIX has had a graphical user interface for 30 years. In its 11 years Linux has always had a GUI too-in fact a choice of GUIs.

Linux better than other OS :
Linux users won’t even bat an eyelid before they say an emphasis comes from a deep dislike of Microsoft’s practice of changing the earth for software. But a lot of it comes from the fact they are ready to swear upon-that Linux is more stable. There are no blue screens and no viruses to speak of. Linux has a better security support for multi-users, lets you set up a stable server, internet gateways etc, and still lets it-self to be used as a desktop workstation. Add to that it being free, and they argue that you don’t lose anything by giving it a try. You get free support on the Net quickly on any query you may have. And you don’t even have to wipe out your Windows. Just get Linux on a different hard disk partition and free to switch between the OSs as you please .
Myths about Linux

Installation
:
Linux is hard to install, isn’t it? Not really. Most people haven’t ever installed Windows on their computers either-since it comes preloaded. Linux is as easy-some say easier-to install compared to Windows. You can install it through a graphical user interface like Windows. But what really stumps most people in installing Linux on a second partition on their hard disk, when they want to be able to use both operating systems.
A partition is a way of organizing space on your hard disk by creating virtual sections that are separate from each other. Most computers that are running Windows or MS DOS have one large chunk of space holding the OS. This space is the C drive. If you have a large hard disk, it’s likely that it has been divided up into smaller bits called partitions to help you organize your data better. These partitions are usually called D:, E: etc. you could have Linux on any of these.
Windows 98 creates a file system called FAT32 on the entire hard disk, DOS and Win95 use FAT16. Linux has many file systems-on the most popular is ext3. But you could have Linux installed on Fat32 partitions also.
Linux is geeky and based on text command Linux has come a long way from being the system of geeks. It has an extremely advanced X Windows systems that has a complete graphical user interface-you know, like Windows. It also has a large number of window manager that let you work with different levels of customization of your desktop.
Linux has a robust character-cell interface where commands need to be typed in. x Windows is a free program that runs with Linux to provide a GUI where the mouse and keyboard can be used extensively. But the X system itself is quite primitive and needs a window manager, or a desktop environment- like GNOME or KDE- to be really usable. Window managers are programs that let you interact with the underlying X system and LinuxOS by relaying commands. The popular window managers are Sawfish, Enlightenment, Black box, after step and Window maker.
As for desktop managers, they have their own window manager and other tools that make you feel that you are working in Window! GNOME and KDE are the most popular of these. GNOME stands for GNU Network Model Environment and KDE for K desktop Environment. They have tools that allow drag and drop, have panels and taskbar- almost like clones of windows.
Hardware compatibility problem and few applications that run on Linux Well, most new distributions will detect and configure your hardware in a jiffy, unless you have some really old or exotic piece of hardware. Only Win modems (internal modems driven by Window drivers) face problems.
As for software, there’s plenty. And most of it comes free for you to use, modify and configure according to your needs. Other packages are commercial and you have to buy the software-but this is mostly for the software and training you need, and not for the support and training you need, and not for the software itself. Sometimes, if you have the Windows version (as a doom) you can download a small program that will allow you to play the game in Linux. Here what’s available?

Office suites: Star Office, Open Office, Applixware, Corel WordPerfect
Graphics: GIMP, Corel Photo paint
Music: XMMS, Free amp, Real Player
Video: MTV, Xine
Games: FreeCiv, Tux racer, Doom, Quake, Heretic, Unreal
And the list is growing.

Linux varieties
:

Debian : One of the oldest and still most popular distros is Debian. This Project is a voluntary effort of a team of programmers who developed the GNU system. Updating and installing new software is very easy. The applications bundled with Debian are great for even a power user.
RedHat: Probably the most popular and in many ways the leading distro. It’s currently in version 9. The installation and configuration is easy. A blue curve file manager and the default GNOME desktop make it look simply stunning. It comes with a host of tools that allow usage as a server and as a workstation. The Red Hat Package Manger(RPM) format developed by Red Hat has almost become the defector for software distribution in Linux world. Installing new software is a breeze. It also has an advanced and easy font management system that makes fonts in X Windows look cool. But being the leader comes at a price. Red Hat charges a little more than others.
Mandrake: Mandrake Linux is now in its 9 version. This distro can be installed on a native Windows Partition using the Lin4Win tool, but this may slow the machine down. It also lets you do a traditional Linux install into its own dedicated partition. Mandrake’s configuration and software installation is painless. It follows a slightly modified RPM architecture called mdk.rpm but most Red Hat software can also be used for Mandrake. The outstanding feature in this distro is the collection of window managers-eye-candy freaks will have a great time.
SUSE: From Germany comes the Chameleon Distro, SUSE. Now a part of Novell, it has one of the most extensive software packages compiled, and getting them installed is easy with yast (Yet another Software Tool) which gives a centralized interface from where you can pick and choose the software to be installed. Among other things, SUSE comes with some stunning 3D games that showcase Linux’s gamming prowess.
Corel/Xandross : Corel entered the Linux distro market with Corel Linux a few years ago. Now it has merged into Xandross OS, which is based on Corel Linux. This is a Debian-type distro, and can be installed without much fuss after resizing the Windows partition. Xandross contains Crossover office, which is a refined retail version of WINE that lets you install and run many Microsoft apps. Windows applications in Linux
Some applications have been ported over to Linux, other run with a program called WINE (Wine is Not an Emulator). Crossover, commercially available software also lets you use your Windows programs Linux. VMWare is another program that lets you run Windows under Linux.

Bottom Line:
The cool thing about Linux is that most software is free, and you can legitimately use them without worrying about piracy. If you’re worried that Linux won‘t look as pretty as windows can, all you have to do is check out some of the cool Linux interfaces and Window managers. But you don’t find a lot of multimedia titles for Linux. And if you’re into a lot of these, Windows in the way to go. So if you have a PC that runs both, you can easily switch between the two, and get the best of both worlds.


If you are qurious about Linux n interested in knowing abbout Open/Free Source S/Ws then follow the links inside this Blog.

Friday, October 06, 2006

Google launches search service for computer code


WOW a gr8 news for programmers...
Google is introducing a new search service -- strictly for computer programmers only.
Google says, Searchers can seek out specific programming terms or computer languages and dive deep into compressed code to locate specific features. Users also can narrow a search to find software code based on specific licensing requirements, which is a big deal in warding off future patent litigation.

Similar to how a consumer might type a few words into a standard Google search box to find an answer, programmers can seek out relevant lines of code at http://google.com/codesearch and find a range of search results that link them to answers.