tag:blogger.com,1999:blog-92122172398004789432024-02-19T12:07:23.897+05:30Software Focus: Focus on SoftwareThe life of a Software Engineer revolves around coding. Here at this blog we will be discussing various aspects of coding i.e. coding techniques, coding standards & Best practices.Unknownnoreply@blogger.comBlogger10125tag:blogger.com,1999:blog-9212217239800478943.post-79384198161870398822007-06-08T18:36:00.000+05:302007-06-08T18:38:04.438+05:30Hijack file in Clearcase<p style="font-family: verdana; color: rgb(51, 51, 51);"><span style="font-size:100%;"><span style="font-size: 12pt;"><span style="color: rgb(255, 102, 0);">The Hijack command</span> (Team|Hijack) is only available for use with files in snapshot views. Hijacking a file makes the file editable (changes from read-only to a read-write state) without checking the file out. This command lets you work on files when the ClearCase server is not accessible, such as when you are disconnected from the network. <o:p></o:p></span></span></p> <p style="font-family: verdana; color: rgb(51, 51, 51);"><span style="font-size:100%;"><span style="font-size: 12pt;">Use ClearCase's Update View wizard (Team|ClearCase Tools|Update View Wizard) to convert the file's ClearCase status from Hijacked to checked out (Reserved checkout or Unreserved checkout) when the server does become available. <o:p></o:p></span></span></p> <p style="font-family: verdana; color: rgb(51, 51, 51);"><span style="font-size:100%;"><span style="font-size: 12pt;">To hijack the active file from the Team menu, choose Team|Hijack "<filename>".<o:p></o:p></span></span></p> <p style="font-family: verdana; color: rgb(51, 51, 51);"><span style="font-size:100%;"><span style="font-size: 12pt;">To use the context menu to hijack one or more files,<o:p></o:p></span></span></p> <ol style="font-family: verdana; color: rgb(51, 51, 51);" type="1"><li class="MsoNormal" style=""><span style="font-size:100%;"><span style="font-size: 12pt;">Select the file or files in the project pane. <o:p></o:p></span></span></li></ol> <p style="margin-left: 0.5in; font-family: verdana; color: rgb(51, 51, 51);"><span style="font-size:100%;"><span style="font-size: 12pt;">Use the </span><kbd><span style="font-size: 10pt;">Ctrl</span></kbd> key or the <kbd><span style="font-size: 10pt;">Shift</span></kbd> key to select more than one file.<o:p></o:p></span></p> <ol style="font-family: verdana; color: rgb(51, 51, 51);" start="2" type="1"><li class="MsoNormal" style=""><span style="font-size:100%;"><span style="font-size: 12pt;">Right-click the selection, and choose ClearCase|Hijack Files from the context menu. <o:p></o:p></span></span> </li><li class="MsoNormal" style=""><span style="font-size:100%;"><span style="font-size: 12pt;">Click OK to hijack the files.<o:p></o:p></span></span> </li><li class="MsoNormal" style=""><span style="font-size:100%;"><span style="font-size: 12pt;">Click OK to close the dialog box.<o:p></o:p></span></span> </li></ol> <p style="font-family: verdana; color: rgb(51, 51, 51);" class="bscan"><span style="font-size:100%;"><span style="color: rgb(255, 102, 0);" class="bscanwarn"><b><span style="font-weight: bold; font-size: 12pt;">Important:</span></b> </span>To convert a hijacked file to a checked out file (under ClearCase control), choose Team|ClearCase Tools|Update View to open ClearCase's Start Update dialog box. When you select the Leave Hijacked Files In Place option on the Advanced page of the dialog box, and click OK to update the view, the hijacked files will be treated as checked out files. </span></p>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-9212217239800478943.post-17767303057887692582007-05-17T19:21:00.000+05:302007-05-17T19:24:13.013+05:30Apache 2.2 client denied by server configuration<span style="font-family:verdana;">Setting up and starting apache 2.2 went smoothly. The first hiccup occured when a virtual host was added. The site cannot be browsed. The log file says:<br />client denied by server configuration<br />Kind of like the problem that I ran into with the 2.0.54 installation<br />(13)Permission denied: access to /index.php denied</span><br /><br /><span style="font-family:verdana;">I thought it would be a user/group problem. Apache 2 had a wierd group set by default (#-1). With 2.2 it's not so wierd but a more orthodox 'daemon'. Why it wasn't set to nobody as it used to be with 1.3 is a mystery. Changing it to nobody didn't solve the problem.<br />Digging deeper, I found the problem in is actually in the root directory configuration section.</span><br /><span style="font-family:verdana;">In 2.0 it's<br /><span style="color:#ff6600;"><directory> Options FollowSymLinks AllowOverride None </directory></span><br />In 2.20 it's<br /><span style="color:#ff6600;"><directory> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </directory></span><br />The added bit of extra security in 2.20 causes the docroot for the vhost been inaccessible. Just commenting out the access configuration stuff does the trick. A better solution is to add the following with the in the vhost block.<br /><span style="color:#ff6600;">Order deny,allow Deny from all</span> </span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-9212217239800478943.post-78249894000224693682007-04-13T20:27:00.000+05:302008-11-07T09:13:37.833+05:30Time Setting in Mediawiki<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVKpF-rE579oro_Mhg_yWxbmwFxfHjefKXq89lT91Edrsmz_iZBlsZwTBwnEWcd-GDw1vCbo1WPYEHjWPY3XPuWe7KllZaCeqIRBjMRz55Ih18Dp5lSlYlItQ1h9Re-fi4yRhIYCNk_go/s1600-h/success.jpg"><img id="BLOGGER_PHOTO_ID_" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVKpF-rE579oro_Mhg_yWxbmwFxfHjefKXq89lT91Edrsmz_iZBlsZwTBwnEWcd-GDw1vCbo1WPYEHjWPY3XPuWe7KllZaCeqIRBjMRz55Ih18Dp5lSlYlItQ1h9Re-fi4yRhIYCNk_go/s320/success.jpg" border="0" /></a> </div><br /><span style="color: rgb(102, 102, 102);">If you ever wondered about the wrong time shown in the wiki when you look at recent changes, then please take a note of the following.<br />By default wiki comes with Coordinated Universal Time (UTC) time setting.<br /><br />Please change your preferences in our wiki by the following procedure if you have not done yet-<br />Login to your wiki.<br />Click on my preference at the top right corner.<br />Click on Date and Time settings.<br />Under Time Zone, enter 05:30 in the offset text box. (05:30 is the time difference between IST & UTC). This setting is for India. According to your country, you can change this setting.<br />Click Save.<br /><br />It will really make some sense while tracking the changes made to any of the wiki pages.<br />This time preference will show the local time in the following pages-<br />Recent changes<br />Related changes<br />Page history, Image history<br />User contributions<br />Special:Newpages<br />"This page was last modified" at the bottom of pages<br />Special:Imagelist</span><div style="clear: both; text-align: center;"><a href="http://picasa.google.com/blogger/" target="ext"><img src="http://photos1.blogger.com/pbp.gif" alt="Posted by Picasa" style="border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="middle" border="0" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-9212217239800478943.post-91089401441842398542007-04-12T17:54:00.000+05:302008-11-07T09:13:38.266+05:30PC-BSD: A unix family OS<strong><span style="color:#ff6600;">Introduction:</span></strong><br /><br /><div>Now and then a new wind comes along in the ebb and flow of Linux distributions. OK, so I know <a title="http://www.pcbsd.org/" href="http://www.pcbsd.org/">PC-BSD</a> is not Linux, but it's close enough. It's fair to say without going into technicalities and politics that BSD and Linux are cousins in the operating system world. It is also true that there is some cross-pollination between the two. I'm sure some BSD users have ogled at Linux distributions. Many a Linux user has flirted with the BSDs and or even fantasized about OS X. I know I have. This is exactly why I found PC-BSD attractive. At any rate, let's get to the review.<br />PC-BSD Vision (bullet points):<br />The software must be easy to install.<br />The operating system must be minimalist.<br />Software must be available, and easily installed.<br />The system must be dynamic, yet backwards compatible.<br />You can read the entire PC-BSD Vision <a title="http://www.pcbsd.org/?p=" href="http://www.pcbsd.org/?p=project">here</a>.</div><br /><div><span style="color:#ff6600;"><strong>The Installation:</strong></span><br />The installation is a simple, graphical one. I'’m not sure what toolkit they use for the installation but it looks fairly nice. The installation does just that and not much else. A minimal set of questions is asked. You don'’t even get to select the packages. From the vision, we can see that PC-BSD is targeted at desktop users and the functional and simple installation is appropriate for this purpose. Version 0.7.5 adds the ability to define a custom partitioning scheme. </div><div></div><div><br /></div><img id="BLOGGER_PHOTO_ID_5052518055969645554" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsqnfBF928YFmvbaVhKzR1U8H8iGzo76PheetZfjcQ4ysyKEO9TcqqKx5KUc1tiPZJlhSx8W41ZPOK7QGrf0qMkpEnibDJr9MiKE9rkDTOImtN-iQaFX-3vSZlrcqkCrKOpzUbcXIh8cA/s320/2.bmp" border="0" /><span style="color:#ff6600;"><strong> PC-BSD partition editor</strong></span><br /><br /><div></div><div></div><br /><div><img id="BLOGGER_PHOTO_ID_5052517579228275682" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj17QKUXVVMnQytJNe0O3YUI4lMq_Q_pJ55cJEuBGJfmRBKA6T8K2bLOGCWHqrUov9Eg9K-Gj48mgd4YHfqPYMj5_jjcP75YJWMtmy9pgI0jTjWhD0fueznklAz6_bdVTWYnx7GrhJIW8g/s320/1.bmp" border="0" /></div><span style="color:#ff6600;"><strong> Installer progress</strong></span><br /><br /><br /><p><strong><span style="color:#ff6600;">The Desktop:</span></strong><br />Since I wasn't given a package list, I had to wait till the installation finished to find out what the default desktop is. After the usual post-installation reboot, the system automatically logged me into a nice KDE 3.4 desktop. Most desktop oriented distributions use KDE so this wasn't a surprise.</p>I was a bit disappointed with the complete lack of GNOME. More than that, Firefox, OpenOffice, Thunderbird and other popular applications were missing in action. The desktop looks like a standard KDE desktop with a few modifications. There are no unneeded packages or extra bloat. PC-BSD fulfills its goal of being a minimalist distribution (Pt. #2, Vision) quite well.<br />As you will notice from the screenshot, there is a familiar "My Computer" icon which gives you quick access to hard drives, CD-ROM drives, local network, and settings. In my daily use of PC-BSD, the "My Computer" icon has been very handy. It is also convenient for new users as it functions as a gateway to commonly accessed places. The PC-BSD developer'schoice to place this prominently on the desktop is a good move.<br /><br /><br /><p></p><p><img id="BLOGGER_PHOTO_ID_5052519215610815490" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4V6x0Dgm6dEGB_SShlBQizfuZVK2Zxe-RRjVOp29JjImhhJma-kuzT9s9HLie-e06yPKUFcncMKEJ_rQVeIk-p9GAHYwVZrOEbTZdBrH31lQq-6JjcMt0PDueOIFn83_if6vkb06LTI0/s320/3.bmp" border="0" /><strong><span style="color:#ff6600;"> Default Desktop</span></strong></p><p><strong><span style="color:#ff6600;">Package Manager:</span></strong></p><p>While fiddling around with the menu, I ran across an entry for "PC-BSD Program Manager (Remove Programs)" but clicking this only gave me a empty list. What I really wanted to do was to learn how to install programs. I'd heard about <a title="http://www.freebsd.org/ports" href="http://www.freebsd.org/ports">FreeBSD's ports</a> system, but I had a feeling that if the system had a remove programs component, an install component was also likely to be present. I headed over to the PC-BSD website which, sure enough, had a list of <a title="http://www.pcbsd.org/packages.php" href="http://www.pcbsd.org/packages.php">downloadable packages</a>.</p><p>Let me explain the package installation procedure. After you download, unzip, and double click the downloaded PBI file, the PC-BSD installer launches. Security is honored by asking for the root password. A wizard guides the user through installing the package. The user is also asked whether to install desktop or KMenu shortcuts. A slick progress bar is displayed while the actual installation takes place.</p><p>I followed this procedure with Firefox and it worked like a charm. Desktop and menu icons were installed as promised. Then I ran the Remove Programs utility again. Now instead of a empty list, it listed Firefox and gave me the option to remove it. I did so just to test the uninstall procedure which worked well. I went ahead and installed some other packages that I required for my day-to-day computing.</p><p>In my experimentation with the package manager, it works very well. Any Windows or Mac user will easily follow the procedure. In fact, since all PC-BSD packages use the same installer so adding packages is a more consistent process than Windows.</p><p>Another point worth noting is that PC-BSD packages are as self contained as possible. Each package is installed in its own separate directory. For example, Firefox is installed under "/usr/local/MyPrograms/Firefox1.0.4/". This directory contains the executable as well as any libraries it needs. This is a different approach from the majority of distributions that use global libraries.</p><p>This method of installing packages has these advantages:<br />1. Changes to system libraries don't break individual packages. Since all the libraries Firefox needs are in it's own neat directory, any changes to the system libraries doesn't affect Firefox.<br />2. While this method deviates from tradition, to the user it is transparent. The package installer takes care of all the messy details and the end result is a system that is less likely to break. It's a win-win situation.<br />The end result of all this work the PC-BSD team has done is that Joe User can download and install software the same way that he does on a Windows machine. And that's a big deal.<br /><strong><span style="color:#ff6600;"></span></strong></p><p><strong><span style="color:#ff6600;">Package Creator:</span></strong></p><p>I ran across the third component of the packaging system called the "<a title="http://www.pcbsd.org/packages.php?software=" href="http://www.pcbsd.org/packages.php?software=Package%20Creator">Package Creator</a>" on the package database. I was expecting it to be a hacker utility to created those pesky PBI packages but it was actually a graphical one. While I didn't create any packages of my own, there is a <a title="http://www.pcbsd.org/forums/viewtopic.php?t=" href="http://www.pcbsd.org/forums/viewtopic.php?t=345">good tutorial </a>on the subject. Package creation is a complicated by dependencies on every UNIX-like system. The separate libraries solution that I discussed earlier simplifies this problem. This means it's easier for more technically inclined users to create and upload packages and that's always a good thing. I'll have to play out with package creation under PC-BSD a bit more until I give my final verdict.</p><p><strong><span style="color:#ff6600;">The Fine Print:</span></strong></p><p>While the project is off to a solid start, there are a few components that need catching up. Like most projects, PC-BSD's documentation lags the development process. At this moment, the only resources users have is the <a title="http://www.pcbsd.org/faqs/" href="http://www.pcbsd.org/faqs/">FAQ</a> and the <a title="http://www.pcbsd.org/forums/" href="http://www.pcbsd.org/forums/">forum.</a> There is a <a title="http://www.pcbsd.org/?p=" href="http://www.pcbsd.org/?p=handbook">handbook</a> that is planned, but is under construction.</p><p>I'm not saying that the developer team is lazy. It's only natural for a system to be developed before documentation gets written for it. Quite to the contrary, PC-BSD's development has been progressing at a furious rate. The lack of formal documentation is made up by a burgeoning community of eager users on the forums. The developers have a good level of interaction with the users on the forums. This collaboration will hopefully iron out some of the smaller issues with PC-BSD.</p><p>Speaking of issues, I ran across a few things I'd like to forward to the PC-BSD crew. Since PC-BSD is a desktop operating system, a Windows user should be able to install and use it. At this point, after the installation, there is no "Getting Started" screen or anything of that sort. This could be as simple as implementing Konqueror to the PC-BSD website on the first boot. The user should be shown how to use the system, install and uninstall packages etc. Without a Getting Started document, a less experienced user will get stuck.</p><p>Similarly, it would be nice to see a document that lists key differences between Linux and FreeBSD. As someone who runs Linux as well as PC-BSD, I'm aware of the many technical differences pertaining to device names, commands, and runlevels. I've been educated well by the <a title="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/" href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/">FreeBSD Handbook</a>, but for users who are just starting out with FreeBSD, a less thorough guide is needed.</p><p>Another issue is the lack of packages such as Flash, Java, and other such plugins. I understand that inclusion of these packages is legally questionable but it may be something that needs looked into. The developers haven't completely ignored this problem, though. <a title="http://www.pcbsd.org/packages.php?software=" href="http://www.pcbsd.org/packages.php?software=JavaWizard">JavaWizard</a>is a PC-BSD package that downloads and configures Java for your system. Hopefully something similar will be implemented for Flash. The presence of JavaWizard is a clear indication that unlike some other developers the PC-BSD team actually use their software. They are aware of the problem and are addressing it. Moreover, you can still use the <a title="http://www.freebsd.org/ports" href="http://www.freebsd.org/ports">FreeBSD ports</a> to install some of the above packages but that involves hacking at the command prompt.</p><p><strong><span style="color:#ff6600;">Conclusion:</span></strong></p><p>It's easy to see that PC-BSD has a lot of potential. Note that PC-BSD is beta software. Version 0.7.5 is stable enough in my experience, but your mileage may vary. When it comes to the basics of installing the operating system and applications, PC-BSD wins hands-down. It is backed up by the solid and slick KDE 3.4. It is a welcome change to the mundane and ordinary. As I was wondering what lies ahead for PC-BSD, I found a <a title="http://www.pcbsd.org/?p=" href="http://www.pcbsd.org/?p=wishlist">Wishlist page</a> that shows a roadmap. With further improvements, PC-BSD will be the next big thing. I recommend you try out PC-BSD today!</p><p>Source & Help: <a href="http://www.pcbsd.org">www.pcbsd.org</a></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-9212217239800478943.post-11960805623184209522007-04-10T20:09:00.000+05:302007-04-10T20:11:14.049+05:30Configuring system to run an application on startup<span style="font-family:verdana;"><span style="color:#ff6600;">How to configure your system to run an application automatically whenever you boot your system?<br /></span><br /><span style="color:#666666;">First create a shortcut of the application you want to run & put this shortcut to the following location-<br /><br />D:\Documents and Settings\rtomar\Start Menu\Programs\Startup<br /><br />Please remember to change “rtomar” with your username. You can put that application directly to this location if you don’t want to put the shortcut.<br />Following are some typical examples one would like to start automatically whenever he starts system-<br /><br />Microsoft Office<br />Web Browser<br />Your mostly used IDE<br />Any exe file (In my case, I have an AutoIT script welcoming me on startup)</span></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-9212217239800478943.post-52206429967283560342007-04-09T20:08:00.000+05:302008-11-07T09:13:38.457+05:30Deadlock Concept in Computing<span style="font-family:verdana;">Deadlock refers to a specific condition when two or more processes are each waiting for another to release a resource, or more than two processes are waiting for resources in a circular chain.<br /></span><div><span style="font-family:verdana;">Deadlock is a common problem in multiprocessing where many processes share a specific type of mutually exclusive resource known as a software, or soft, lock. Computers intended for the time-sharing and/or real-time markets are often equipped with a hardware lock (or hard lock) which guarantees exclusive access to processes, forcing serialization. </span></div><div><span style="font-family:verdana;">Deadlocks are particularly troubling because there is no general solution to avoid (soft) deadlocks.</span></div><div><span style="font-family:verdana;"></span></div><br /><div><span style="font-family:verdana;">Deadlock concept can be described by the following picture.</span></div><div><span style="font-family:verdana;"></span></div><div><span style="font-family:verdana;"><img id="BLOGGER_PHOTO_ID_5051438985974143442" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXy-XBOjesRy8tW1WH7bLB7UzrByl40eb7CohE9SsypS1ocsp4Hib-MAY4CfrXApaz4zKQ4riSZS3P_bcJFDnYliw-0tD9NEiDD6Awk5AD4cDkenED20DKAmdCY2l7eI0f5catpDGc4ao/s320/Deadlock.bmp" border="0" /></span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-9212217239800478943.post-35060307729352867372007-03-09T19:17:00.001+05:302007-04-09T20:36:53.576+05:30Package management system<p><span style="font-family:verdana;">A package management system is a collection of tools to automate the process of installing, upgrading, configuring, and removing software packages from a computer. The term is most commonly used with regards to Unix-like systems, particularly Linux, as these systems rely heavily on it, with thousands of discrete packages on a typical installation being common.</span></p><br /><p><span style="font-family:verdana;">In such a system, software is distributed in packages, usually encapsulated into a single file. As well as the software itself, packages often include other important information, such as the full name, a description of its purpose, the version number, vendor of the software, checksum information, and a list of other packages, known as dependencies, that are required for the software to run properly. This meta-information is typically entered into a local package database. </span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-9212217239800478943.post-81990831471369140072007-02-27T20:19:00.000+05:302008-11-07T09:13:38.862+05:30Difference between Offshore & Onsite<div align="center"><strong><span style="font-family:verdana;font-size:180%;color:#ff6600;">Difference between Offshore & Onsite</span></strong></div><div align="center"><strong><span style="font-family:Verdana;font-size:180%;color:#ff6600;"></span></strong> </div><div align="center"><strong><span style="font-family:Verdana;font-size:180%;color:#ff6600;">Offshore Posting</span></strong></div><div align="center"><strong><span style="font-family:Verdana;font-size:180%;color:#ff6600;"></span></strong> </div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP9l-6PVVw4crU1xrkMO-OWXOlQSE87QhzDkFURiBsJrwcI_R1-gcqsnO36GygEnd92EzbsQpffd1xtjCn47ac1_TcunGsHKGE14S4ZMBozDdbkmPN4aF3YkPKJEsHSvqnkXqB9s2_h1g/s1600-h/Onsite.bmp"><img id="BLOGGER_PHOTO_ID_5036227527989024130" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP9l-6PVVw4crU1xrkMO-OWXOlQSE87QhzDkFURiBsJrwcI_R1-gcqsnO36GygEnd92EzbsQpffd1xtjCn47ac1_TcunGsHKGE14S4ZMBozDdbkmPN4aF3YkPKJEsHSvqnkXqB9s2_h1g/s320/Onsite.bmp" border="0" /></a><br /><br /><div align="center"><br /><span style="font-family:verdana;font-size:180%;color:#ff6600;"><strong>Onsite Posting</strong></span></div><div align="center"><strong><span style="font-family:Verdana;font-size:180%;color:#ff6600;"></span></strong><br /> </div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNrRQ8GduAAwDp1Bt3Q-tOQ7GsL7JA0XHW8JygRxHqg8qWzr2wK5Lv3JEEPbSZJvI9wkuyeKHekVybgqhi4luaubdRPIQ5rZevmjVNLFSMkcMZn3DRO0b_D6w9C8gjZUIG93nURYipfJk/s1600-h/Offshore.bmp"><img id="BLOGGER_PHOTO_ID_5036226780664714610" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNrRQ8GduAAwDp1Bt3Q-tOQ7GsL7JA0XHW8JygRxHqg8qWzr2wK5Lv3JEEPbSZJvI9wkuyeKHekVybgqhi4luaubdRPIQ5rZevmjVNLFSMkcMZn3DRO0b_D6w9C8gjZUIG93nURYipfJk/s320/Offshore.bmp" border="0" /></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-9212217239800478943.post-89953982078878547222007-02-22T11:54:00.000+05:302007-02-22T12:31:49.711+05:30A myth called the Indian programmer<div class="Section1"><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><?xml:namespace prefix = o /><o:p></o:p></span></span> </p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;color:#ff6600;"><span style="font-family:Verdana;font-size:10;color:#ff6600;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;color:#ff6600;"><span style="font-family:Verdana;font-size:11;color:#ff6600;">A myth called the Indian programmer:<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;">They are the poster boys of matrimonial classifieds. They are paid handsomely, perceived to be intelligent and travel abroad frequently. Single-handedly, they brought purpose to the otherwise sleepy city of <?xml:namespace prefix = st1 /><st1:city st="on"><st1:place st="on">Bangalore</st1:place></st1:city>. Indian software engineers are today the face of a third-world rebellion. But what exactly do they do? That's a disturbing question.<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;">Last week, during the annual fair of the software industry's apex body Nasscom, no one uttered a word about <st1:country-region st="on"><st1:place st="on">India</st1:place></st1:country-region>'s programmers. The event, which brought together software professionals from around the world, used up all its 29 sessions to discuss prospects to improve the performance of software companies. But there was nothing on programmers, who you would imagine are the driving force behind the success of the software firms. Perhaps you imagined wrong. "It is an explosive truth that local software companies won't accept. Most IT professionals in <st1:country-region st="on"><st1:place st="on">India</st1:place></st1:country-region> are not programmers, they are mere coders," says a senior executive from a global consultancy firm, who has helped Nasscom in researching its industry reports.<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"> In industry parlance, coders are akin to smart assembly line workers as opposed to programmers who are plant engineers. Programmers are the brains, the glorious visionaries who create things. Large software programmes that often run into billions of lines are designed and developed by a handful of programmers. Coders follow instructions to write, evaluate and test small components of the large program. As a computer science student in IIT Mumbai puts it - if programming requires a post graduate level of knowledge of complex algorithms and programming methods, coding requires only high school knowledge of the subject. Coding is also the grime job. It is repetitive and monotonous. Coders know that. They feel stuck in their jobs. They have fallen into the trap of the software hype and now realize that though their status is glorified in the society, intellectually they are stranded. Companies do not offer them stock options anymore and their salaries are not growing at the spectacular rates at which they did a few years ago.<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"> A Microsoft analyst says, "Like our manufacturing industry, the Indian software industry is largely process driven. That should speak for the fact that we still don't have a domestic software product like Yahoo or Google."<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"> IIT graduates have consciously shunned <st1:country-region st="on"><st1:place st="on">India</st1:place></st1:country-region>'s best known companies, though they offered very attractive salaries. Last year, from IIT Powai, the top three Indian IT companies got just 10 students out of the 574. The best students prefer to join companies like Google and Trilogy. Krishna Prasad from the <st1:place st="on"><st1:placetype st="on">College</st1:placetype> of <st1:placename st="on">Engineering</st1:placename></st1:place>, Guindy, Chennai, who did not bite the Infosys offer, says, "The entrance test to join TCS is a joke compared to the one in Trilogy. That speaks of what the Indian firms are looking for."<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;">senior TCS executive, who requested anonymity, admitted that the perception of coders is changing even within the company. He believes it has a lot to do with business dynamics. The executive, a programmer for two decades, says in the late '70s and early '80s, software drew a motley set of professionals from all kinds of fields. In the mid-'90s, as onsite projects increased dramatically, software companies started picking all the engineers they could as the US authorities granted visas only to graduates who had four years of education after high school. "After Y2K, as American companies discovered <st1:country-region st="on"><st1:place st="on">India</st1:place></st1:country-region>'s cheap software professionals, the demand for engineers shot up," the executive says. Most of these engineers were coders. They were almost identical workers who sat long hours to write codes, or test a fraction of a programme. They did not complain because their pay was good. Now, the demand for coding has diminished, and there is a churning."<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"> Over the years, due to the improved communication networks and increased reliability of Indian firms, projects that required a worker to be at a client's site, say in <st1:country-region st="on"><st1:place st="on">America</st1:place></st1:country-region>, are dwindling. And with it the need for engineers who have four years of education after high school. Graduates from non-professional courses, companies know, can do the engineer's job equally well. Also, over the years, as Indian companies have already coded for many applications like banking, insurance and accounting, they have created libraries which they reuse.<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"> Top companies have now started recruiting science graduates who will be trained alongside engineers and deployed in the same projects. The CEO of TCS, <st1:place st="on">S Ramadorai</st1:place>, had earlier said, "The core programming still requires technical skills. But, there are other jobs we found that can be done by graduates." NIIT's Arvind Thakur says, "We've always maintained it is the aptitude and not qualifications that is vital for programming. In fact, there are cases where graduates have done better than the ones from the engineering stream."<o:p></o:p></span></span></p><p class="MsoPlainText"><span style="font-family:Verdana;font-size:85%;"><span style="font-family:Verdana;font-size:10;"><o:p> </o:p></span></span></p></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-9212217239800478943.post-14946861667509471812007-01-30T11:26:00.000+05:302008-11-07T09:13:38.992+05:30Java Coding Standards<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgapql8ir_mlTHk8uCkNQIzDHL4Gx6gMYUAsfc1ArXH7z4H38xwJq3J2-ScMwJcG0Z0LlfILdRlP4wH4YrQL8nidxK4Bo9urW8bzekXHDpB9XF2nBq7R9mmqW68-oM900x6ugQ72NeDL34/s1600-h/sittingman.jpg"><img id="BLOGGER_PHOTO_ID_5028363799688402738" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgapql8ir_mlTHk8uCkNQIzDHL4Gx6gMYUAsfc1ArXH7z4H38xwJq3J2-ScMwJcG0Z0LlfILdRlP4wH4YrQL8nidxK4Bo9urW8bzekXHDpB9XF2nBq7R9mmqW68-oM900x6ugQ72NeDL34/s320/sittingman.jpg" border="0" /></a><br /><div>Here I am writing some of the best practices & standards of java coding. These are some of the key points to be noted while writing a good java code.<br /></div><br /><div><div><span style="color:#ff6600;"><strong>STD-1 Package naming.</strong><br /></span>Package names contain only lower case letters. Never create a package which<br />uses a package prefix already being used by another entity, for example “javax”. </div><div><br /><strong><span style="color:#ff6600;">STD-2 Class and Interface naming.</span></strong><br />Class names should be nouns using mixed<br />case with embedded words capitalized. Do not use embedded underscores within names.<br />Avoid acronyms and abbreviations unless they are already more widely used than their long<br />form (e.g. HTML). When using acronyms do not capitalize the whole acronym. Instead<br />treat it as a word and only capitalize the first letter.<br />Interface naming follows class naming exactly.<br />Proper class name examples:<br />MyDriver<br />MyClass<br />HtmlConverter </div><br /><div><strong><span style="color:#ff6600;">STD-3 Method naming and formatting.</span><br /></strong>Methods are active and, therefore, should be named using verbs. As with class names, use<br />mixed case except the initial letter is always lower case.<br />No spaces should exist between a method name and the opening parenthesis of a parameter<br />list.<br />Proper method name examples:<br />getX()<br />createX(x)<br />updateMyTable() </div><div><br /><strong><span style="color:#ff6600;">STD-4 Variable naming.</span></strong><br />Variable names should follow those of methods. Do not begin variable names with dollar<br />signs ($) although the compiler will permit this.<br />Proper variable name examples:<br />myVariable </div><div><br /><strong><span style="color:#ff6600;">STD-5 Constant naming.</span></strong><br />In order to make constants stand out in the code they are named with all capital letters. In<br />order in increase the readability of the names, separate embedded words with a single<br />underscore.<br />Proper constant name examples:<br />MY_CONSTANT_A<br />INCHES_TO_CENTIMETERS_FACTOR </div><div><br /><strong><span style="color:#ff6600;">STD-6 Use of JavaDoc comments is required.</span><br /></strong>Because the public interface to a class is key to being able to use the class effectively,<br />JavaDoc comments are not optional for public classes and methods. The specific formatting<br />and minimum content may be open for discussion but the presence of JavaDoc comments is<br />not.<br />JavaDoc comments are important in that they provide documentation which is external to the<br />source code and which can be easily maintained. </div><div><br /><strong><span style="color:#ff6600;">STD-7 Use of implementation comments is required.<br /></span></strong>JavaDoc comments are intended to define and describe the public interface of a class or<br />method. Implementation comments are for describing the internal implementation. </div><div><br /><strong><span style="color:#ff6600;">STD-8 Consistency of formatting is required within a source file.<br /></span></strong>Sometimes you acquire source code which differs from the accepted format you usually<br />employ, including your choices for indentation, use of white space, etc. When this happens<br />resist the impulse to mix your personal adopted format with the existing one. Respect the<br />existing code and format your additions consistent with the existing format. Then pursue the<br />option to reformat the entire source file as a separate task. </div><div><br /><strong><span style="color:#ff6600;">STD-9 Avoid local declarations which obscure declarations at higher levels.<br /></span></strong>Do not declare a block variable with the same name as a method or class variable. Doing so<br />unnecessarily obscures the code.</div><div> </div><div> </div></div>Unknownnoreply@blogger.com1