Wednesday, December 16, 2009

Remote Desktop Services Using RDP

If you love the data on your desktop, and want it on the move, then this blog-post is for you. In this post, I will emphasize the Remote Desktop Protocol (RDP) of Microsoft using the Remote Desktop Services/Terminal Services.

Remote Desktop Protocol (RDP) is primarily a proprietary protocol developed by Microsoft, which focuses on providing user with a graphical interface to another computer.

Notable features of RDP include -

  • 32-bit color support
  • A 128-bit encryption algorithm and protection from vulnerabilities like the man-in-the-middle
  • Audio redirection
  • File System Redirection
  • Port Redirection
  • Support for Aero Glass Theme and ClearType font smoothing technology
  • Support for Transport Layer Security
  • Multiple monitor support

Remote Desktop Services, formerly known as Terminal Services, is one of the components of Microsoft Windows that allow a user to access applications and data on a remote computer over the network. It is built on the RDP protocol.

The RDP Desktop Services segregates the systems into two groups - the servers and the clients. RDP Servers and Clients exist for several versions of Microsoft Windows, Linux, UNIX, Mac OS X, etc.

This article will focus on configuring both, the RDP Servers and RDP Clients. The configuration steps mentioned here are restricted to the Windows line of Operating Systems - XP, Vista, etc; and for illustration purposes, I will be using Windows 7 as my server and Windows XP running on VirtualBox as my client.

Besides Windows, RDP servers are available for the UNIX Operating System in the form of several open-source projects. UNIX based RDP clients also exist, like the rdesktop.

Configuring RDP Servers

A RDP server is the heart of the RDP protocol. Once a system has been configured as a RDP server, any user with sufficient privileges can log into the system from any terminal and perform their tasks.

Configuring the RDP Server on Windows 7 involves the following steps -

  1. Right-click Computer and select Properties
  2. Click on Remote Settings link present in the left panel
  3. If you want to allow connections from any version of Remote Desktop, select the second option. This is a less secure configuration. However this will allow users from other versions of Windows and UNIX to connect to the system. For e.g. if a system with Windows 7 has been setup as a server, this option will allow older versions of Windows like XP and 2K to access it
  4. On the other hand if you are sure that you want users to connect from the same version of Remote Desktop, select the third option. This is a more secure configuration

Configuring RDP Clients

Once the server has been setup, any RDP Client can hook up to it from any system connected to it in the network.

Establishing a connection to a RDP Server from a system running Windows XP involves the following steps -

  1. Go to All Programs -> Accessories -> Remote Desktop Connection
  2. If the RDP Server has a computer name, enter the name. Else enter the IP address of the RDP Server
  3. Login with the proper username and password; and you are ready to work
  4. At the end, remember to log off and not shut down, because shutting the system down would require a physical startup the next time whereas logging in again can be done remotely

Remember - According the EULA of Microsoft Windows, only a single user can use the copy of Windows at a time. So there can be only one RDP Client active for a particular RDP Server. If another RDP Client logs in, the existing user will prompted to log off.

Facts and Features of RDP

  • RDP uses presentation virtualization to enable a much better end-user experience, scalability and bandwidth experience. RDP plugs into the Windows graphics system the same way a real display driver does, expect that, instead of being a driver for a physical video card, RDP is a virtual display driver
  • RDP usage of bandwidth is far less than expected. This is important as bandwidth is a very big constraint in networking. However, the bandwidth usage varies from the application to application being used. E.g. A slideshow in PowerPoint will drive more bandwidth than a simple movement of the mouse
  • RDP can be tuned as per the requirements of the user. Factors like user-experience can be compromised to reduce the usage of bandwidth. RDP can be configured to give better performance too
  • Color depths have no effect on the user-experience of RDP. Though the initial versions only supported 8bpp (bits per pixel), the newer versions support 32bpp, and in fact Aero needs 32bpp to function properly
  • RDP is highly secure as it supports strong encryption and uses Keberos or TLS/SSL for authentication
  • RDP is not only used in Remote Desktop Services, it is used in several applications like Windows Media Center Extenders (including Xbox 360), Windows Live Mesh, etc.
  • The RDP protocol is completely publicly documented. To understand the internal working of RDP, you can visit - http://msdn.microsoft.com/en-us/library/cc240445(PROT.10).aspx

Well that’s it for a simple RDP Server-Client setup. Do check back soon for my next article on Windows Meeting Space, which is another part of the Remote Desktop Services using the RDP.

Thursday, December 03, 2009

Reset Linux Root Password Using The GRUB

Before I start the central aspect of this article - resetting the Linux root password, let me quickly introduce you to boot loaders and the GRUB.

A boot sequence is the initial set of operations that the computer performs when the power of a computer is switched on. A boot loader typically loads the main Operating System for the computer.

A computer's central processor can only execute program code found in the Read-Only-Memory (ROM) and Random-Access-Memory (RAM). However, when the computer is switched on, it does not have an Operating System in its ROM or RAM. So a computer initially executes a small program stored in a ROM, which in-turn loads the required code and data into the RAM for execution.

This small program which performs this process is known as a bootstrap loader, bootstrap or a boot loader. This program is generally not the Operating System, but a miniature program which will load the required Operating System into the RAM from the non-volatile storage.

There are several popular boot loaders used today - GRUB, BOOTMGR, LILO and NTLDR. The GNU GRUB (GNU GRand Unified Bootloader) is a boot loader package from the GNU Project and is one of the most popular boot loaders available today. LILO (LInux LOader) is a generic boot loader for Linux. NTLDR (NT Loader) is the boot loader for all releases of Microsoft’s Windows NT Operating System. In later versions of Windows like Vista and Windows 7, NTLDR was replaced by the Windows Boot Manager (BOOTMGR).

In this article, we restrict ourselves to the GRUB loader. Typically, a few dual-boot environments and a few Linux based Operating Systems use the GRUB as their boot loader. Here is a screen-shot of the GRUB loader of Red Hat Enterprise Linux 5 -

There are many scenarios where we might need to reset the root password of our Linux system. Consider you have been assigned to a Linux system to work with and the previous owner forgot to give you the root password; maybe you are in the middle of an important project and you don’t have the root password of the system when you need it urgently and the worst part - the system administrator is not in sight; or maybe you just forgot it. The possibilities are limitless.

But remember, before you attempt to change or replace the password of any machine, make sure you have the necessary permissions from the management authorizing it. If not, it can be mistaken as an attempt to hack into the machine, which is not ethical.

  • Start the system, when the selection screen comes up, navigate to the line for Linux and press 'e'
  • Now, select the entry that begins with the word - 'kernel' and again press 'e'
  • Append 'single' to the end of the existing line. Make sure there is a space between the existing content and 'single'
  • Press 'b' to boot into Linux as the root

You are now in the special mode called the "Single-User Mode".

If prompted for the root password here, restart the system and in the previous step, append 'init=/bin/bash' after 'single'

  • Use 'passwd' to specify the new root password

I am sure that reading this procedure would have caused apprehensions in the minds of several readers about the security of their systems. Using this method, anybody can hack your system. So if you want to be careful and avoid such situations, you will need to restrict any modifications to the GRUB. This can be done by protecting the GRUB by using a password.

  • Open the shell prompt and login as the root
  • Use the 'grub-md5-crypt' command to get the MD5 hash of your GRUB password
  • Open '/boot/grub/grub.conf' and add 'password -md5 ' below the timeout field
  • Save and exit

From next time, if you want to edit the GRUB, you will have to press 'p' followed by the GRUB password. The downside of this is that there is an extra password for you to remember. Well, accessibility has always been a trade-off in security.

Note - Changing passwords of a system without proper permissions is unethical and illegal, which may lead to legal complications. So always follow a proper authorization channel before changing the passwords.

Thursday, November 05, 2009

Symbian Operating System

As a part of our Mobile Computing curriculum, we had case studies on several mobile Operating Systems like the Symbian Operating System, Windows CE and the Palm Operating System.

Our faculty encouraged us to explore these topics and present them to our other class-mates so that we get a lot more exposure to the subject.

Thrilled by the fact that the Symbian Operating System is an open-source mobile Operating System, I decided to take up the topic. I put a little effort into understanding the Symbian Operating System. It was exciting to find out my phone (Nokia N73) had the Symbian Operating system and I took an opportunity to tweak around with it.

I also planned a few live demos emphasizing application development on the Symbian Operating System with the help of programming languages like Java and Symbian C++.

With the support from the faculty of my college, a session covering the Symbian Operating System, along with J2ME development on it was presented on 27th October.

The presentation covered the following topics -

  • Introduction to Symbian Operating System
  • A Brief History of Symbian Operating System
  • Symbian Foundation
  • Features of Symbian Operating System
  • Operating System Architecture
  • Memory Management
  • Threading and Security
  • Application Development In Symbian OS

The presentation was followed by two live demos covering -

  • Symbian C++
  • Java 2 Micro Edition

The session concluded with a quick comparison of Symbian C++ and Java ME and how an application can leverage the benefits of the languages when developing an application.

As the target audience for the presentation was primarily the final year students, we had around 40 students participating in the presentation.

At the end we provided a link to the NetBeans website to encourage them to download the latest version of NetBeans along with the mobility pack so that they can go deeper into developing J2ME mobile applications.

Check out the photos at http://picasaweb.google.com/osum.source/SymbianOperatingSystem#

A Linux Workshop

Recently the faculty of my college along with the support of the students organized a Linux workshop. The workshop focused on the basics of the Linux operating system. The workshop was held for two consecutive days in which the students learnt a lot about the fundamentals of Linux.

The workshop was organized on 23rd and 24th October.

The workshop was conducted by Mr. Ahmad Jabas, a PhD scholar of our college. He emphasized various concepts of Linux with the help of the Debian Operating System.

Virtualization was also covered as a part of the workshop with the help of VirtualBox. There was a live demonstration where the Debian Operating System was installed on VirtualBox.

Here is a quick overview of the various activities that were covered in the two days -

Day 1

Topics covered -
  • Introduction to Linux
  • Origin of the Linux Operating System
  • History of the Linux Operating System
  • The GNU Project and Source Code Freedom
  • Linux Philosophy
  • Linux Installation
  • A comparison of the Linux Operating System and the Windows Operating System
  • UNIX/Linux commands

Day 2

Topics covered -
  • Virtualization
  • Virtual Machines
  • System Virtual Machines
  • Process Virtual Machines
  • Full Virtualization
  • Applications of VMs
  • VirtualBox
  • Linux Installation on VirtualBox
  • Shell Scripting

Various demonstrations were given which included several concepts like -
  • Stand-alone installation of Debian
  • VirtualBox installation of Debian
  • Linux commands
  • Shell Scripting

The workshop was very inspirational and several attendees installed the Linux Operating System on their computers and started working with it.

There were about 65 students who attended the workshop both the days.

Oracle Forms

I recently gave a presentation on "Oracle Forms" - a feature of the Oracle developer suite which helps GUI designers to quickly design screens to facilitate easy insertion, deletion, update and query of tables in a database.

The third years were asked to learn about Oracle forms for their final examination. I decided to take this opportunity to talk about it.

Oracle Forms runs on Java containers and the GUI is presented in the form of Java applets to the user. The Java container is known as "Oracle Container for Java (OC4J)" in the Oracle Forms architecture.

The presentation was given on 21st October which was followed by a live demo which emphasized how an Oracle form is created and how is it run with the help of Java containers.

The presentation covered the following topics -

  • Introduction to Oracle Forms
  • Oracle Forms Architecture
  • Single Block Forms
  • Master Detail Forms
  • List Of Values
  • Non-base table fields
  • Triggers
  • Troubleshooting

The presentation was followed by live demos covering -

  • Single Block Forms
  • Master Detail Forms
  • List Of Values

The session concluded with emphasize on technologies like JSPs, Servlets, JDBC, etc. which are swiftly replacing Oracle Forms because of their customizability.

As the target audience for the presentation was primarily the third year students, we had around 40 students participating in the presentation.

Check out the photos at http://picasaweb.google.com/osum.source/OracleForms#

Wednesday, September 30, 2009

SFD 2009 - Competitions & Presentations

This year, as a part of the Software Freedom celebrations, we hosted a few competitions and gave a few informative presentations. Here is a quick overview of them -

Essay Writing Competition

The competition was primarily to encourage participants to explore various Open Source topics - technical and non-technical, and come up with innovative articles. We had a huge response for this and had a tough time selecting the best entries. We had various topics covering different perspectives of the Open Source world. Below are a few of the articles which were really good.

Open Source - The article covered the basic philosophy of Open Source and gave an insight about the economic perspective of OSS. It also emphasized the innovation which drives Open Source products.

VirtualBox - The article covered the salient features of the VirtualBox OSE. It gave a bird's-eye view of VirtualBox, with a focus on the technical strongholds of the virtualization package. It also briefly described the advancements planned in the development of VirtualBox.

Open Source in the Cloud - This article merged the philosophy of Open Source with the innovative paradigm of Cloud Computing. It gave an overview of what Cloud Computing is and highlighted the contribution of Sun Microsystems Inc. to the cloud.

Google Chrome - The article was primarily about the Open Source web browser from Google, Chrome. It focused on the prominent features of the browser and gave a description of features like speed, stability, security, etc.

Top Ten Linux Distributions - The article was mainly a mash-up of the Operating Systems built on the Linux kernel. The author reviewed various Linux in the article. Several flavors like Debian, Slackware, Fedora, Mandriva, OpenSUSE, Ubuntu, Gentoo, LinuxMint, PCLinuxOS and the CentOS were covered in this.

Open Source Quiz

This was one of the most exciting events of Software Freedom Day this year. We wanted more participation of the audience this year, so as to achieve this and bring up the spirit of Open Source in the audience; we planned an Open Source Quiz.

To accommodate the entire audience, the quiz was conducted in two stages - there was a preliminary round which had a questionnaire of around 20 questions. Almost everybody in the audience was interested in the quiz and came forward for the prelims. After the prelims, the top 6 teams were invited for the final round. The round had an oral questionnaire and consisted of around 6 sub-rounds.

Finally at the end of the final sub-round the highest and second-highest scorers were declared the winners. There was a neck-to-neck competition between the teams till the end and had the pulse of the crowd running.

Overall, the quiz was the show-stopper of the day. Hats off to the quiz-masters! - Miss. Devika and Mr. Roopak Bhartee.

Software Freedom Day and Open Source

In order to convey the philosophy of Open Source and the importance of Software Freedom Day to the audience, Mr. Vishwak gave a presentation titled "Software Freedom Day and Open Source".

The presentation emphasized on various concepts like -

  • What is Open Source?
  • Free Software
  • Why the move to Open Source?
  • Perception and participation
  • Software Freedom Day
  • Contribution of Sun Microsystems Inc. to the Open Source world
  • Sun’s Open Source strategy
  • Overview of the Open Source technologies of Sun
  • The session was very informative and the audience had a through insight about the OSS world

Sun Academic Initiative

To help the audience realize the importance of certifications and inform them of the wonderful discounts available on various Sun certifications, Mr. Laxman took up a presentation on "Sun Academic Initiative".

The presentation focused on various topics like -

  • Introduction to SAI
  • Benefits of certifications
  • The Java certification hierarchy
  • The Solaris certification hierarchy
  • The MySQL certification hierarchy
  • Various certifications available as a part of SAI
  • Registration process at SAI
  • A step-by-step explanation of how to purchase a voucher and avail the huge discounts

The session was inspiring and there were several students who were keen on taking up a certification exam. The various tutorials and the learning programs of SAI were highlighted which created a confidence in the interested students to pursue the certification.

On a whole, Software Freedom Day 2009 was a huge success wherein the participants and the organizers enjoyed and learnt a lot.

Photos uploaded at http://picasaweb.google.com/osum.source.

Software Freedom Day 2009

It is finally September and Software Freedom Day is here. This is one day when every Open Source enthusiast feels proud of being one. If you haven’t heard about Software Freedom Day, here is what SFD is all about -

"Software Freedom Day (SFD) is an annual worldwide celebration of Free and Open Source Software. It is a public education effort to celebrate the virtues of FOSS and to encourage its use. It is celebrated on the third Saturday of every September."

Open Source has spread its wings all over the world and Sun Microsystems Inc. being one of the biggest supporters of the Open Source community encouraged many OSUM leaders and Sun Campus Ambassadors to celebrate Software Freedom Day in a grand way.

Osmania University, being a huge supporter of FOSS, wasn’t behind in the grandeur of SFD. We decided on celebrate Software Freedom Day on the third Saturday itself, which was on September 19th.

Due to the recent unforeseen holidays which were declared in our city, there were speculations that 19th might be a working day as a compensation for them. Because of this, our preparations came to a stand-still and we had to wait for a formal announcement. We didn’t get any reliable information till Friday and because of this we had only a day for the publicity in our college. As a lateral consequence of this speculation, we didn’t even get an opportunity to invite other colleges to the event. :(

Well as people say "Things must go on!" and things did go on. Despite these bottlenecks, we had a reasonable crowd of 55 to 60 open source enthusiasts for the event. It was really soothing to see such participation amidst the tailback. The crowd comprised of students from the 2nd, 3rd and 4th years. We weren’t given permission to invite the 1st year students due to security concerns from the college.

I was sure that the students of my college were bored of hearing my presentations by this time, so for a change, I requested a few of my friends to take up the co-ordination of the competitions and presentations. They immediately agreed and showed a lot of interest.

The celebrations of SFD began with a motivating speech by our HOD, Prof. Lakshmi Rajamani. She spoke on Open Source Software and emphasized the support being provided by our college to the OSS world. She gave a brief introduction on SFD and how Osmania University was a part of it over the years.

There were many activities that were held at our campus as a part of SFD. Several competitions were held to motivate the students towards SFD. We had an "Essay writing competition" where the participants were asked to explore various Open Source topics - technical and non-technical and come up with an innovative article. There was an "Open Source Quiz" organized by Mr. Roopak Bhartee and Miss. Devika. A presentation emphasizing the merits and benefits of FOSS was given by Mr. Vishwak. There was a presentation on the "Sun Academic Initiative" by Mr. Laxman. To know more about these events, check out the "SFD 2009 - Competitions & Presentations" blog-post.

The event was concluded by a "Vote of thanks" by me. The entire event was well anchored by Miss. Pravallika.

On a whole, the event was a huge success and there was a lot of enthusiastic response from the participants. The entire S.O.U.R.C.E group was delighted and enthused by the participation of the crowd for the event.

Photos uploaded at http://picasaweb.google.com/osum.source.

Wednesday, September 23, 2009

Three Years Of Vivacious Blogging

It’s been three years I started this blog and wrote my first article.

With a great apprehension on my mind whether I can write public articles or not, I took a bold step and began my online endeavor on 21st September 2006. To describe my blogging experience till today in one line, I would call it a "Roller Coaster Ride" - filled with twists and twirls, but on a whole, exciting and exuberant.

Like any blogger, my biggest question was "What to write in my blog?" Initially I was clueless and wrote all kinds of articles ranging from my personal experiences to casual stories. But as time progressed I realized my strength and decided to make this a technical web-log. (Yes, I know I am violating my principle with this blog-post :P).

From then my life became simpler and the number of my blog-posts increased. As time progressed, several technical topics like "Play-Station Emulators", "The Towers of Hanoi" and "w32.USBWorm" were emphasized in my blog. My blog became a focus point of various presentations I gave in these years. Presentations like "Service Oriented Architecture", "Globalised Solutions" and "Programming with Qt" were highlighted.

As time moved on, I became the Sun Campus Ambassador of my college. Then I started a new blog at http://blogs.sun.com/gautam/. I stuck to my resolution of making this a technical blog and continued my technical articles here and wrote my personal experiences in the other blog. Topics like "NetBeans" and "OpenSolaris" became a part of my blog after this.

On a whole, there are 85 blog-posts on this blog and 22 blog-posts on my Sun blog till date.

I am sure a lot of you are thinking "Who visits this blog?" I also used to contemplate over this question a lot. Then on 8th September 2009 I took a daring decision, decided to track my blog and signed up at Google Analytics. I was shocked by the results. From September 8th to September 23rd (16 days), my blog had 470 visits with 761 page-views. The visitors had a massive geographical diversity, spread across 42 countries, 112 cities and covering all the continents. As Google Analytics results cannot be displayed, I put a ClustrMap here for the visitors to see, so do check it out if you would like to view the regional diversity of the visitors of the blog.

If you are a blogger like me, do sign-up for Google Analytics, you will be surprised by the results. For more details have a look at my previous post.

During these three years I was fortunate to see the blogs of several of my friends come up and it was very exciting to read their magnificent articles. So I decided to create a network of these blogs here, do check them out after you finish reading this article.

It would be inappropriate to end this blog-post without thanking everybody who encouraged me to start this blog and contributed to this blog with their constant feedback and guidance.

Thanking them from the bottom of my heart and hoping more and more blog-posts come up here, Adios, Au Revoir, Sayonara and Good bye till my next blog-post.

Thursday, September 17, 2009

Web Analytics - Boosting Performance

Every web-site/blog has visitors. Understanding the regional spread of these visitors and analyzing which articles (pages, products, etc.) bring in more visitors (customers), is vital for improving the business of the web-store or attracting more visitors to the blog/web-site.

In this blog-post we are going to emphasis two popular web-site tracking tools - ClustrMaps and Google Analytics. In the next few sections I will refer blogs and web-stores as also web-sites. The principle is same for all of these.

Google Analytics

Google Analytics is a brilliant innovation from labs of Google. It helps you analyze the traffic feed of your web-site in various perspectives. As Google describes it -

"Google Analytics is the enterprise-class web analytics solution that gives you rich insights into your web-site traffic and marketing effectiveness"

It has some really cool features that a web-site manager would love. There are four major components on Google Analytics -

Visitors Overview - This component keeps track of every visitor that visits your web-site. It provides complete information on the number of visits, number of absolute unique visits, page-views, total time spent by visitors on the site and a percentage of new visits. One important parameter it keeps track of is the bounce rate. Bounce Rate is a measure to see how appealing the web-page was for the visitors. High percentages of bounce rate indicate the visitors moved out of the web-site quickly. It maintains complete information of the browsers used by the visitors and their connection speed.

The geographical aspect of the visitor overview is marvelous. It shows a comprehensive analysis of the visitor’s geographical location. It pin-points the city from where a visitor has come.

Traffic Sources Overview - This component gives an overview of the sources of the traffic. It also provides a report on the sites which led the visitors to your web-site. For people targeting search engines, it provides a comprehensive analysis of the keywords which led the people to the web-site.

Content Overview - This component provides a detailed analysis of individual pages viewed by the visitors. It provides us with the total number of page-views, unique page-views and the bounce rate. It also provides us with the list of the pages which brought in the most visitors. It also shows us how many times each component of the web-site was clicked and the navigation patterns of the visitors.

Goals Overview - This component helps us to understand our objectives and keep a track of how far we have reached them. Goals can be setup with respect to every traceable unit of the blog like the page views, keyword patterns, etc.

Signing Up for Google Analytics

So if you are excited by these features and would like to add Google Analytics support to your web-site, follow these steps -

  1. Go to http://www.google.com/analytics/sign_up.html
  2. Sign in with your Google account
  3. Sign up for Google Analytics by providing the URL of your web-site and few other details
  4. After filling in the form, you will be provided with a JavaScript code snippet. Copy this code to your web-site. For blogger, paste the code before the closing head tag in the Edit HTML component of the layout tab
  5. After a few hours, if the process was carried out properly the Google Analytics service will be running on your web-site. You can view the status by signing in at the Google Analytics web-site

ClustrMaps

Google Analytics is good for analyzing your web-site behind the screen. But it does not allow visitors to see the geographical diversity of the other visitors. So if you are interested in showing the visitor count along with their geographical location to the public, go for ClustrMaps.

To register your web-site with ClustrMaps, follow these steps -

  1. Go to http://www.clustrmaps.com/
  2. Provide the URL of your web-site and give your email id
  3. Select the style which suits your web-site
  4. Copy the code which is provided to your web-site

Well that’s it for this post. Hope this post helps in increasing the visitors to your web-site. :)

Wednesday, September 16, 2009

Symbian Operating System

The Symbian Operating System is an embedded Operating System developed by Symbian Ltd. It was built primarily for the ARM processor architecture. Though Symbian isn’t completely open sourced, parts of its code-base have been made public.

I recently gave a presentation on this and the topics covered were -

  • The Symbian Foundation and a brief history about it
  • The notable features of the Symbian Operating System
  • The Operating System structure
  • Memory management
  • Process and thread management
  • Issues related to security and malware
  • The success stories of the Symbian OS
  • Application development in Symbian using Symbian C++ and Java ME

Download the presentation here.

The presentation was followed by two demos - one covering Symbian C++ and the other covering Java ME. The software used in the demos -

  • Active Perl 5.6
  • Symbian SDKs
  • Java Development Kit 6.0
  • Carbide.c++ 2.0
  • NetBeans 6.7.1
  • Sun Java Wireless Toolkit

Download the installation guides for these software here. (They contain screen-shots which are self-explanatory). Download screen-shots for the Hello World demos here.

Visit the Symbian foundation web-site at http://www.symbian.org/.

If any discrepancies are found in the presentation or in any one of the guides, please post the problem in the comments section.

Saturday, August 22, 2009

Cloud Computing Demystified

After a two months summer vacation, my college reopened the previous month. With the already hectic schedule involving placements and strenuous classes, we (the fourth year students) were also asked to start our preparation for the final semester projects. :(

We were asked to pursue our projects in various domains like Grid Computing, Distributed Systems, Image Processing, etc. with the help of the faculty. Cloud Computing was one of these domains.

Realizing that cloud computing is an activity topic in the campus ambassador program and understanding that most of my classmates were new to this domain, I decided to present a small presentation giving an introduction on cloud computing to my classmates.

With the support from the faculty of my college, a concise presentation covering the basics of cloud computing was presented on 10th August.

The presentation covered the following topics -

  • The Basics of Cloud Computing
  • A Brief History of Cloud Computing
  • Various delivery mechanisms of Cloud Computing like Infrastructure as a Service, Platform as a Service, Software as a Service, Data as a Service

As the target audience for the presentation was primarily the final year students, we had around 50 students participating in the seminar.

At the end we provided a link to the Sun’s white paper on Cloud Computing - "Introduction to Cloud Computing Architecture" for the audience to get a better grasp on the domain - www.sun.com/featured-articles/CloudComputing.pdf

Check out the photos at http://picasaweb.google.com/osum.source/CloudComputingDemystified#

Sunday, August 02, 2009

Sun Certified Java Programmer

I recently attempted the "Sun Certified Programmer for the Java Platform, Standard Edition 5.0" exam and passed with a score of 97%.

The SCJP exam is primarily for programmers interested in demonstrating proficiency in the fundamentals of the Java programming language.

The certification tests the programmer if he/she understands the basic syntax and structure of the Java programming language and if he/she can create Java technology applications that run on server and desktop systems using J2SE.

The certification, as of today is available in two flavors - 5.0 and 6.0.

Moreover, SCJP is the primary pre-requisite for more complex exams like Sun Certified Java Developer (SCJD), Sun Certified Web Component Developer (SCWCD), Sun Certified Business Component Developer (SCBCD), Sun Certified Developer for Java Web Services (SCDJWS) and Sun Certified Mobile Application Developer (SCMAD).

Check out the entire java certification path at http://www.sun.com/training/certification/java/scjp.xml.

The "Sun Certified Programmer for the Java Platform, Standard Edition 5.0" exam covers objectives like -

  • Declarations, Initialization and Scoping
  • Flow Control
  • API Contents
  • Concurrency
  • OO Concepts
  • Collections and Generics
  • Fundamentals

The exam actually costs $150, but being a Sun employee I got it for free under SAI. :)

A minimum of 58.33% (35 questions out of 60) is required to clear the exam. And the time duration for the exam is 3 hours.

For preparation of the exam, here is the material that I followed; I think this should be enough to get a respectable score -

Sun Certified Java Programmer 5.0 - Kathy Sierra

This is a comprehensive book for the SCJP 5.0 exam, it covers all the objectives of the exam in a structured approach. Anybody attempting the exam should go through this book at least once.

Buy the book from Amazon.com at http://www.amazon.com/Certified-Programmer-Study-310-055-Certification/dp/0072253606

Saturday, August 01, 2009

MySQL Clustering

As a part of Industry Association Program (IAP), we (J. Kamala Ramya, K. Laxman Bharadwaj and me) had been assigned to Sun Microsystems Inc.

Our initial interactions with Sun Team was to identity a task which would benefit Sun as an organization and for us to improve capability and be industry ready after our BE course.

After evaluating various product lines and discussions with Sun Team, a decision was made in concurrence with Sun Team to focus on a Demo Framework which would showcase MySQL capabilities and how it would interface with various layers in a typical application environment.

After the $1 billion acquisition of MySQL, Sun has been actively propagating the product to its clients. It was felt that a demo framework encompassing standard frontend interfaces, standard database interfaces and standard database functionality would help the clients to make a knowledgeable assessment of the product.

The demo suite proposed was expected to cover the replication features of MySQL to demonstrate how MySQL can fit in a complete commercial application involving various layers like - Databases, Business Logic and GUI.

We completed the project in approximately 2 months and learnt a lot it. Starting a project from scratch and completing it in these 8 weeks was a whole new exuberant experience.

Projects Galore At Osmania University

The month of May was a very critical month, filled with exams and lab assignments. The second year students (presently third year) were encouraged to submit a miniature project displaying their skill in Java, as a part of the curriculum.

Initially, the idea of motivating students to build their miniature projects was crafted by Mr. Hameed, a faculty member of my college.

The students worked on their projects under the guidance of the faculty, with support from the college management and S.O.U.R.C.E. All the labs were equipped with NetBeans to make project development easy.

There were 11 groups, each consisting of 5 members, and thereby 11 different projects. The projects included different applications like -

  1. Media Player
  2. Movie Ticketing Application
  3. Download Manager
  4. Beat Box

And many more.

After completion of the projects, each team gave a presentation about their project showcasing their theme and the methodology of implementation.

Overall, the entire concept was a huge success and the students gained a lot of exposure to the Java programming language.

Industry Association Program

To provide students with an exposure to industry practices and work environment, Osmania University started the Industry Association Program (A.K.A Industry Attachment Program, Summer Internship Program), as a part of the curriculum.

Under the IAP, the third year students are encouraged to work in a professional organization or a R&D organization to help students get acquainted with industry practices and the work environment.

Several government and private organization have been assisting the IAP for the past eight years and students of Osmania University have benefited immensely from the program.

This year, Sun Microsystems Inc. has extended its cooperation in the program and helped a lot of students get introduced to the work culture of corporate organizations.

There were 18 students working on 6 different projects, each executed by 3 students. Several technologies of Sun like OpenSolaris, MySQL, NetBeans, etc. were utilized in the development of these projects.

We are extremely grateful and express our profound gratitude and indebtedness to the entire Sun team for their constant support and inspiring guidance, throughout the IAP.

Wednesday, July 22, 2009

MySQL Clustering - Technology Summary

The demo framework not only showcases the MySQL capability but also demonstrates a variety of Sun Technologies and Industry Standard Interfaces.

The implementation has been modular so that the demo can be downsized but still the features can be demonstrated.

The various components that have been utilized are listed below -

  • Hardware: Intel Quad Core Desktop with 4GB RAM
  • Virtualization: Sun VirtualBox
  • Operating Systems: Windows Vista, Windows Server 2003, Fedora Linux, OpenSolaris
  • Database: MySQL
  • Web Servers: GlassFish and Internet Information Services
  • IDEs: NetBeans and Microsoft Visual Studio
  • Web Service Layer: Java API for XML Web Services
  • Front End GUI: Java Swing, HTML, JavaScript, Visual Web Java Server Faces, Java Micro Edition, C# and ASP.NET

Download the entire project here.

MySQL Clustering - Project Approach

As per the advice of Sun Team, the project has been implemented in a staggered model as outlined below with a use case that covered a Telephone Enterprise Customer Database wherein each Customer is uniquely identified by phone number (country code + phone number) -

Database Administration

This Phase covered the Hardware Setup, Operating System Setup, and Installation of MySQL. The major focus during this phase was to setup Replication features of MySQL using two different approaches - Asynchronous and Synchronous.

Both the replication approaches were implemented against two MySQL engines - InnoDB and MyISAM.

Implementation and comprehensive testing was performed at this stage which also covered failures of databases and scalability under the available hardware configuration.

Business Logic Development

This Phase covered the business logic requirement where the stress and focus was on standard database interfaces. The demo implemented Hibernate, an ORM model and JDBC to connect to MySQL database.

The connection to the database using these technologies is achieved through a Web Services layer. CRUD functionality has been implemented using Web Services.

Graphical User Interface Development

The focus of this phase is to demonstrate how an end-user application would interact with MySQL database using the Web Service Layer. The demo implemented various client-side GUIs in the form of front-end technologies like Java Swing, Visual Web Java Server Faces (JSF), Java Micro Edition and ASP.NET.

Exhaustive test cases have been written to demonstrate the functionality covering both success and failure situations.

MySQL Clustering - Project Design

Project Goals

The goal of the project is to provide a snapshot capability for three types of audience -

  • Database Administrators - Installation, Replication and Clustering of MySQL databases both in standalone and virtualized Operating System Environments covering Windows, Linux and Solaris
  • Business Logic Developers - CRUD (Create, Retrieve, Update, Delete) operations using Web Services to interact with the MySQL database adopting JDBC and Hibernate interfaces
  • Client Side GUI Developers - Provide sample codes to access and implement data management through above Web Services. The Client interfaces are diversified covering J2ME, JSF, Java Swing, and ASP.net to demonstrate the versatility of the seamless interface to MySQL database

Project Architecture

The project as depicted below implements the Model-View-Controller (MVC) architectural pattern, with the database layer representing the model, the business logic layer representing the controller and the font-end GUI representing the view.

Tuesday, July 21, 2009

MySQL Clustering - Project Backdrop

Industry Association Program

To provide students with an exposure to industry practices and work environment, Osmania University started the Industry Association Program (IAP), as a part of the curriculum, wherein the third year students are encouraged to work in a professional organization.

As a part of IAP, we (J. Kamala Ramya, K. Laxman Bharadwaj and me) had been assigned to Sun Microsystems Inc.

Organization Profile

Sun Microsystems Inc. is a multi-national vendor of several software and hardware products. The Headquarters of Sun Microsystems is at Santa Clara, California, United States. It has branches in several countries covering APAC, America and Europe.

Its contribution to the field of hardware has been marvelous, especially with the SPARC architecture.

Sun has several software products to its credit, which include Solaris, Star Office, VirtualBox, MySQL, etc. The most significant contribution of Sun Microsystems to the field of computers and electronics has been the "Java programming language", which is widely used in several devices, which include computers and mobile phones.

Sun is a big supporter of Open Systems and is one of the major contributors of Open Source Software.

Project Identification

Our initial interactions with Sun Team was to identity a task which would benefit Sun as an organization and for us to improve capability and be industry ready after our BE course.

After evaluating various product lines and discussions with Sun Team, a decision was made in concurrence with Sun Team to focus on a Demo Framework which would showcase MySQL capabilities and how it would interface with various layers in a typical application environment.

After the $1 billion acquisition of MySQL, Sun has been actively propagating the product to its clients. It was felt that a demo framework encompassing standard frontend interfaces, standard database interfaces and standard database functionality would help the clients to make a knowledgeable assessment of the product.

The demo suite proposed was expected to cover the replication features of MySQL to demonstrate how MySQL can fit in a complete commercial application involving various layers like - Databases, Business Logic and GUI.

Globalized Solutions - Summary

For every new program that is being developed fresh, it is recommended that it should follow the MVC pattern and that it satisfies the criteria for an internationalized program. Going forward, internationalization is an unspoken requirement that every application in global markets should satisfy.

Using translation and transliteration features to the maximum reduces the requirement of a language expert and there-by obtain project profitability.

Whichever project is being worked upon, development, migration, enhancement or QA, thinking of ways to apply the concept of Globalization will improve the robustness of the application.

Database Internationalization

Besides GUI, an application has two other parts - Business Logic and Persistence. Typically the Business Logic is isolated and no language changes would be required. For globalized applications, the Persistence is typically a database like Oracle, MySQL, IBM DB2, Microsoft SQL Server etc.

The advancements in Databases Technologies have simplified the support for multi-languages. Most of the databases today support internationalization using Unicode characters. Restrictions on the languages that can be a part of the database can also be imposed. However the availability of this restriction is dependent on the DBMS being used.

Each database management system provides its own procedure to implement this multi-lingual data processing on their database but many times a language parameter setup during installation would suffice.

Translation And Transliteration

Though not directly a part of internationalization, translation and transliteration provide the basis for I18n.

Translation

Translation is the process of converting a fragment of text from one language to another language. Translation is done by either by human translators, or by translators which involve artificial intelligence. In applications where perfect translation is required, human translators are employed.

However in applications where perfection of translation is not the at-most priority, AI translators are used. Examples of such translators include, Yahoo Babel Fish and Google Translate.

Transliteration

Transliteration is the practice of transcribing a word or text written in one writing system into another writing system. In the case of I18n, this provides a method of converting the keyboard language to a desired language.

Popular sites like Orkut make use of this service to create messages in languages like Hindi, Telugu, Tamil, etc. Several services related to translations and transliterations are available on the internet. In fact, Google provides APIs to directly implement these features in our applications.

Usage

If there is an existing product where a locale change is required and it does not follow the MVC structure, the developer can use the concepts of translation and transliteration and there-by migrate the application to the required locale. The language part is then reviewed by a language expert.

Even during internationalization, the resources bundles can be created for various languages using these concepts and they can then be offered to review by a language expert. These concepts are also useful when developers are interacting with users who do not know English through mails or documents to get an initial feel of the requirements.

Support for a product can also be made cost effective where the user logs issues in native language and the person supporting can understand the issue at high level using translation concepts. Reducing the time requirement of language expert is a significant cost saving in projects as these experts charge very high.

Internationalizing Mobiles Using J2ME

Unlike desktop applications and web application, mobile applications cannot utilize resource bundles. Internationalizing mobile applications follows a slightly different approach.

In such devices, internationalization is achieved using a user-defined resource class. This class holds all the strings required by the application in various languages. Depending on the locale, the required set of strings is returned to the main application, and that application in-turn displays the locale-specific content.

Generally the resource class obtains the locale of the mobile device and returns the locale-specific set of strings to the main application. However the languages supported by the mobile-device are entirely device-dependent. So there is a huge possibility that the internationalization efforts may not be completely perceptible in all the targeted mobile devices.

Internationalizing Web Applications

There are two important ways of internationalizing Web Applications - Using Resource Bundles and Using locale specific JSP pages.

Using resource bundles

Internationalization can be achieved by using resource bundles in Web Applications like Java Server Pages with the Java Server Faces framework. In such applications, the resource bundles created are similar to those created in the desktop applications. To use these resource bundles, they are registered with the web application in the form of a JSF config file with the required XML content.

Using locale specific JSP pages

Another way to achieve internationalization is to use different sets of JSP pages for different languages. This method mainly maintains a mirror copy for each of the language and, the locale specific JSP set is sent to the client on demand. However this method would result in more number of JSP pages but would provide greater customizability.

Internationalizing Java Desktop And Console Applications

Internationalizing a Java application mainly uses the concept of resource bundles. The User-Interface code interacts with the resource bundles to extract the required information, thereby forming the User-Interface on the screen in the desired language.

The various message labels, messages in dialog boxes, button text, etc. are to be translated to make these components for a non-English speaker. So these strings are separated from the program into a central external repository. These repositories are called as resource bundles in Java. They contain the appropriate content for the text messages in various languages for the targeted locales.

These resource bundles many contain icons, pictures, actual UI elements like menus and buttons and even new window layouts, besides messages and other user-visible strings.

The resource bundles are a collection of properties files. A properties file exists for each locale targeted by the application. A properties file consists of key-value pairs. As the language changes, the key does not change, but the value changes. The components in the User-Interface code are referenced by the keys of the properties file. So as the language changes, the UI code need not be modified, the application will find the required properties file and use the corresponding value for each instance of the key in the program. The properties files of the resource bundle follow a naming convention which is of the form - bundle-name_language_country-code.

E.g. consider a file which uses a key called greeting to welcome a user
For English the properties file would contain greeting = hello
For French the properties file would contain greeting = bonjure

So whenever the programmer wishes to welcome the user, the greeting key might may be used. If the locale is set to English (United States), "hello" is displayed. Else if the locale is set to French (France), "bonjure" is displayed.

Internationalization Support In Java

The entire Java platform is internationalized. Java provides an extensive library of classes and functions to help in internationalizing programs. Built-in I18n for Java comes with support for over 70 languages. I18n support comes for free or at very little cost.

All text in a running Java program is Unicode. Unicode was a brave effort to create a single character set that included every reasonable writing system. As a result the Unicode character set has support for almost every language script used in today’s world. Using this Unicode character set, Java provides a platform for Internationalization.

In Java the primitive type char is a single Unicode character. Similarly a String is a collection of these Unicode characters. All internal processing on text assumes the text to be in Unicode format.

Globalized Solutions - Basic Application Structure

Any application can be divided into three primary components - Front End, Business Logic and Persistence.

Internationalization primarily applies to the front end GUI and back-end data persistence. Business Logic need not be modified during the localization of the application. In frameworks like MVC, Struts, Spring, the business logic is completely separated from the GUI and in such frameworks, internationalization is easily implementable.

Internationalizing Programs

An internationalized program has the following characteristics -

  • With the addition of localized data, the same executable can run worldwide
  • Textual elements, such as status messages and the GUI component labels are not hardcoded in the program. Instead they are stored outside the source code and retrieved dynamically
  • Support for new languages does not require recompilation
  • Culturally dependent data, such as dates and currencies, appear in formats that conform to the end user’s region and language
  • It can be localized quickly

Globalization Terms

The most commonly used buzz-words in the Globalization market are Globalization, Translation and Localization and Internationalization. This article demystifies these terms.

Globalization [G11n]

Globalization addresses the business issues associated with making a product global. In the globalization of high-tech products, this involves integrating localization throughout a company, after proper internationalization and product design. This also involves marketing, sales, and support in the world market.

Globalization is mainly realized at the architecture level. There are two ways of achieving globalization - Internationalization and Localization.

Translation [T9n]

Translation is the process of converting text in one language to text in another language.

Localization [L10n]

Localization involves taking a product and making it linguistically and culturally appropriate to the target locale (country, region and language) where it will be used and sold.

Localization involves two operations - Translation and Engineering. This process primarily focuses on translating the various locale-specific data, like pictures, colors, text, etc. and then making required changes in the application code to meet the requirements of the locale.

Internationalization [I18n]

Internationalization, on the other hand, is the process of generalizing a product so that it can handle multiple language and cultural conventions without the need for re-design. It guides the developers to write program code with anticipation of locale change.

Internationalization takes place at the level of program design and document development. This is achieved by the concept of resource bundles. This approach is primarily driven by MVC architectures. The focus is on separating the GUI so that the multi-language support is easily implemented while keeping the Business Logic and Persistence as standard for a variety of users. Today Internationalization capability for any solution that is being developed is a mandated requirement.

Acronym Rules

Following the standard rules for abbreviating these words, the following acronyms will be used for the above terms in the rest of the series.

Globalization - G11n
Translation - T9n
Localization - L10n
Internationalization - I18n

These acronyms are built using a simple philosophy. The acronym consists of the first letter and the last letter with the number of characters between them as a numeral.

E.g. Consider Internationalization. It starts with I, ends with n and has 18 characters between I and n. So it is abbreviated as I18n.

Application Developers And Globalized Applications

Considering the factors mentioned in the previous blog posts, it is evident that organizations will focus on people with globalized application development or management skills. Hence it is very important that the developer community is enabled with this skill.

Requirements in future could be to globalize an existing product or develop new product for a global market. The subsequent posts provide the various facets of globalized applications leveraging the skills that are already known to the developer community.

The Case For Globalized Solutions

Globalized Solutions are becoming more important today due to some of the key trends like GDP by Region, World Population Distribution and Increased Investment in Emerging Markets. This post will emphasize the effect of these trends on Globalization.

GDP by Region

Here is a graph of the world GDP distribution. As evident from the graph, though North America is the largest part, it is still only a third of the entire GDP. The other markets like European Union, Japan, China together form a large chunk of the GDP graph. People in these countries obviously don’t speak English natively. Even small percentage penetration into these markets can improve margins significantly for companies.

World Population Distribution

Here is a graph of the world population distribution. Notice how radically the ranking change from the GDP graph.

Observe that more than half of the world’s population is in Asia, where a large chunk of non-English speaking population exists. China is fully dominated by Chinese language. India is dominated by multiplicity of languages each having a potential business opportunity.

Increased Investment in Emerging Markets

Many companies are creating business units around emerging markets like China and India as they see their future business coming from these markets. There is a significant push in these countries to modernize right now and this is moving at a significant pace.

Several real-life examples can be seen like - Usage of Mobile devices, Usage of Bank ATMs etc. As one can see today ATMs in India offer solution using Local Language / English. Mobile companies are offering solutions that allow messages to be sent in different local languages.

Emerging Markets - As good as Developed Countries

Business conglomerates, similar to developed countries are evolving in emerging markets. Companies like Bharti Airtel, Vodafone, BSNL are comparable to Verizon, AT&T etc, Banks like ICICI, SBI are no smaller than Bank of America, Citibank etc. Retail channels like Reliance Fresh, Future Bazaar, etc are similar to Wal-Mart, Radio Shack etc. Similar situations exist in China. In addition many of the multinational organizations are setting up operations in emerging markets. However customer reach can increase in these markets if offerings are expanded in different local languages.

Globalized Solutions - Introduction

In order to manage the impact of economic recession and stay profitable, many software organizations today are looking at expanding their offerings beyond the traditional US markets. Emphasis on reaching customers across the globe especially those who are located in emerging markets like European Union, China, India etc. is gaining momentum. One of the main criteria in reaching to these markets is to understand their culture and deliver products in their native language. Organizations are evaluating at models and methodologies to enhance their existing and futuristic solution portfolios to cater the global audience.

Globalized Solutions - Breaking The Barriers Of Language

Many Software Organizations today are looking at expanding their product sales, solutions and services towards emerging markets. Instead of relying on only the traditional US markets essentially dominated by the English language, companies have increased their focus on expanding business in language sensitive countries like European Union, China, India etc., One of the main criteria in reaching to these markets is to understand their culture and deliver products in their native language.

In such a scenario and also in falling job markets, specialized skills become important and knowledge of Internationalization of Applications would be one such key skill. This series of blog posts provides approaches for quick learning and building this capability.

Various techniques like Translation and Internationalization are applied with respect to communication, document reading and Application Development.

Internationalization provides a mechanism of simplifying the requirement of locale-specific applications, without losing the existing big English speaking markets like US, UK, etc. Developers can leverage programming languages like Java which internally support Internationalization for various desktop, web and mobile applications.

View the entire paper here and the presentation here. Download the sample applications here.

Tuesday, April 21, 2009

A Legacy Ends

After a long legacy and several acquisition rumors, Sun was finally taken over by Oracle.

On April 20th 2009, Oracle (ORCL) has official announced that it would purchase Sun Microsystems Inc. (JAVA) for $7.4 billion in cash ($9.50 a share). After 27 years of independent services, Sun is now a part of Oracle.

Oracle had bought 50 companies since 2005 spending $40 billion. Now Sun is one of them.

Well, what Oracle saw in Sun? - The biggest products of Sun which attracted all the big fish are undoubtedly Java and Solaris.

Java

  • "Java is the single most important software asset we have ever acquired", this bold statement by a chief executive of Oracle says it all
  • Java runs on 800 million PCs and 2.1 billion mobile phones, these are not small figures
  • Java is used in several of the world’s business software and is also a major component in Oracles product arsenal
  • Java is the key of Oracles middleware solutions product line - Oracle Fusion Middleware
  • Oracle Forms and Reports are another major component of Oracle Application Server which relies heavily on Java Containers
  • This acquisition would give Oracle the stronghold of Java, allowing it to sync its products with Java
  • Also mobile vendors like Nokia pay royalties to license the software
  • However even with all this, Java was not even 1% of Sun’s 2008 revenue. This might be a major area of focus for Oracle strategic business plans

Solaris

  • Solaris is one of the most popular operating system in domains like Finance and Telecom
  • Oracle plans to sell the Solaris operating system and the servers of Sun along with its market-leading database software to its consumers

MySQL

  • In addition to Java and Solaris, Oracle also gains the free MySQL database
  • MySQL has been a strong competitor to the Oracle database, especially in the small market ventures
  • With this acquisition Oracle hopes to push MySQL to smaller companies and give a stiff competition to Microsoft’s SQL Server
  • But MySQL doesn’t look like becoming a high priority product for Oracle
  • MySQL will be another addition to the database chain of Oracle - Oracle database, TimesTen, Berkeley DB and the storage engine InnoDB

The Hardware Market

  • Putting aside the software products of Sun, Oracle will also get a hold of the hardware sector of Sun, including the Sun rays, Sun blades, etc.
  • Though hardware is the biggest area of revenue for Sun, Oracle has little experience in this field

One company that has taken aback with this deal is IBM, IBM relies heavily on Java. Will Oracle use the acquisition to make it difficult for the Big Blue to develop software using Java? - This is something that we need to wait and watch.

However this deal has still a lot of buzz to make and several questions that will arise and will be answered -

  • Will Java become a complete commercial entity?
  • Will MySQL be overshadowed?
  • How will Oracle look at Open Source?
  • What about the other big products of Sun - NetBeans, VirtualBox, OpenOffice, etc.
  • What about the not so well-known products of Sun - Project Darkstar, Project wonderland, etc.
  • What will happen to the redundant products of Oracle and Sun - NetBeans (JDeveloper), Oracle Weblogic (GlassFish), JVM (JRockit), IDM and JCAPS (Oracle Fusion Middleware) and the others

And the most important question of all

  • What will happen to the Sun Campus Ambassador Program? :)

Well these are question which can be answered only by time.

Saturday, April 04, 2009

HeadStart 09 - Globalized Solutions

Recently me and my friend, G Sunil Kumar gave a presentation at Head Start 09, the tech-fest of Chaithanya Bharathi Institute of Technology (CBIT).

Our topic was Globalized Solutions - Breaking the Barriers of Language, which primarily concentrated on the Internationalization support provided by Java.

The presentation mainly focused on

  • The need for Globalized Solutions
  • How Java supports Internationalization

The topics covered in the presentation were -

  • The case for Globalized Solutions
  • Globalization terms
  • Application Internationalization
  • Internationalizing Java Desktop, Web and Mobile applications
  • Translation and Transliteration
  • Persistence Internationalization

The demos shown during the presentation were -

  • Creating a Java Desktop Application
  • Creating a Java Web Application
  • Creating a Java Mobile Application

On a whole, we could reach out to the crowd and explain them, why multi-lingual applications are important and showed them how to create their own multi-lingual applications.

And as they say in Internationalization - bye, au revoir, Tschüss :) until my next blog-post.

Tuesday, March 03, 2009

Infinity 2k9 - No Limits

February was a very hectic month for me - Sun Tech Days, TransITion and at the end of the month came Infinity 2k9 - No Limits.

Infinity is the prestigious tech fest of my department - Computer Science and Engineering. This year we celebrated Infinity on 27th and 28th February 2009.

The preparations of Infinity started in the month of January and went on till the D-day.

The event was mainly organized by the final year students with complete support from us, the third year students. In the beginning, I was given the responsibility of preparing the brochure. I knew it was very important for the brochure to look attractive, as it would be used for publicity at the companies and our sponsors would encourage us only if they found us and our brochure interesting.

On obtaining the final copy of the brochure, it was sent to all the 4th years for audit. After making the necessary changes and implementing all the improvement opportunities, we gave the final copy for printing and distributed it among all the companies and institutions we knew.

We got monetary support from companies like Adobe, Cognizant and LIC. Companies like Sun Microsystems Inc. and Microsoft supported us in terms of gifts and prizes for the attendees and winners. We approached 93.5 SFM and it readily agreed to become the media partner for Infinity.

A few other students took up the tasks of preparing the posters and took care of the publicity. A few of my seniors started working on the web-site and got a wonderful web-site up and running in a very little time. You can check it out at - http://infinity2k9.uceou.edu/

As a part of the web-site we put in a web-page dedicated to S.O.U.R.C.E. Visit it at - http://infinity2k9.uceou.edu/source.html

The site had a summary of all the events that were to be conducted at the venue on the D-day and also several online-events for the participants.

The online events organized included -

  • Online Coding
  • Treasure Hunt
  • Code Analysis

The on-spot events organized on 27th and 28th included -

  • Paper Presentations
  • Project Presentations
  • Bug Mate
  • PC Medico
  • Bizz Quiz
  • Code Facsmile
  • Quiz IT
  • Adobe Hunt

We also conducted a Linux workshop where several tricks of trade with respect to the UNIX Operating System were discussed. This created a lot of enthusiasm in the students and cultivated an interest towards Open Source Software.

Showing our gratitude towards the sponsorship of Sun Microsystems Inc. we wrote about Sun and OSUM in the souvenir which was distributed to about 300 students.

As a part of the event we also conducted a small Java Quiz on the first day, where we distributed the question papers at the registration desk. The question paper had a total of 10 questions - 7 on Java and 3 on Sun Microsystems Inc. The question paper also publicized OSUM, so that more students would take interest in it and become a part of it.

We designed a drop-down box for the Quiz and installed it at the registration desk so that all the interested students would drop in their Quiz sheets there. There were around 150-200 participants for the quiz and at the end of the day we distributed pens and key-chains to the top 20 lucky winners.

The technical events of the second day were followed by a cultural evening. As a part of the entertainment show we had several dance shows, all performed by students of my department. The event also had wonderful Guitar performances which were very well supported by the lead singers.

The cultural night ended with a rock band, The Engraved Strings, which performed very well with the Jazz and the Guitars but the singing could have been much better.

On the whole Infinity 2k9 was a great success and a big mile-stone in the history of Osmania University - Computer Science and Engineering Department.

Monday, March 02, 2009

TransITion 09 - Service Oriented Architecture

Recently me and my friend, Roopak Bhartee participated in a paper presentation competition organized by Cognizant Technology Solutions - TransITion 09 conducted on 22nd February 2009.

We presented a paper on Service Oriented Architecture which covered topics like JNI and Java Web Services. Our topic was Service Oriented Architecture - Bringing Versatility to Business.

We were selected from our college to represent Osmania University at the event.

Our college received about 10-15 entries from various departments out of which 2 were selected and sent to the next level selection committee at CTS. There were 2 teams from around 14 colleges of Hyderabad, making a total of 28 teams. Out of these 28 teams, 10 teams were shortlisted. On the final day these 10 teams presented their paper amidst a huge crowd, out of which 2 teams were declared the final winners.

Our presentation mainly focused on

  • How existing C/C++ functions can be leveraged in Java
  • How Java web-services can be leveraged to create further Java applications (J2SE, J2EE and J2ME) and how the same Java web-service can be used in a ASP.Net page or a C# client

The topics covered in the presentation include -

  • Philosophy of SOA
  • SOA - The Simplified Model
  • SOA - The Web Services Model
  • Composite services using SOA
  • Organizational approach to SOA
  • SOA Adapters

The demos included in the presentation are -

  • JNI Using Java and C/C++
  • Web Services using Java, NetBeans and GlassFish

We won the second prize at the competition and were awarded a 30 GB iPod each. (Yup, 30 GB :)) Besides this, our victory made it to the college news-paper and we received accolades from everybody.

Sun Tech Days 2009 - No Geeks Allowed

For everybody who thought that Sun Tech Days was a technology oriented workshop, the recreational events of Tech Days left them in awe.

The entertainment section of Tech Days was totally amazing.

Jazz Concert

Sun Tech Days 2009 started out with a marvelous performance by Sid, an 11 year old boy who blew our minds off with his spectacular performance on the Jazz. It was a great concert, and a wonderful beginning for the Technical conference.

Rock Concert

Following the technical sessions the first day, the crowd gathered at the main auditorium for a great entertainment evening.

It started off with the rock concert presented by 3 kids, each with his own instrument - Keyboard, Jazz and the Guitar. It was surprising to see such beautiful talent at their age.

Fashion Show & Dance Performances

The rock concert was followed by a fashion show performed by trained models. As most of the attendees were young developers and students, this was a surprise for them and most of them stood in admiration.

The attendees also enjoyed the dance performances a lot. The songs selected were wonderful and provided a great ending for the first day.

Singing Concert

After the technical sessions of the second day, there was a singing concert which bought in a lot of enthusiasm to the crowd.

The crowd was very much involved with the performer and there was no limit to their excitement. However it looked like the concert ended abruptly, probably because of the over-excitement of the audience.

Sun Tech Days 2009 - University Relations

As the campus ambassador of Osmania University, Sun Tech Days 2009 was a whole new experience.

All the campus ambassadors of India setup a stall named "University Relations" at Sun Tech Days 2009 to propagate OSUM. The first day I wasn’t aware of it, so couldn’t help the other CAs much. However when I came to know about it the second day, I decided to involve in it and do my part as a CA. We spoke to several students, explained them what the OSUM program is and what it has to offer the students.

There were several students who showed interest in the program and decided to join it. We also had an on-spot registration camp where we guided the students in joining OSUM. We also distributed prizes to the students in several competitions.

  • Every group created in those two days and having 25 members at the end of the second day won a prize
  • Hourly prizes for lucky students who registered at Sun Tech Days

We had around 200 registrations on the two days of Tech Days. But this was just the beginning of a chain reaction.

The most popular question asked at the stall was how to become a Sun Campus Ambassador. It was very pleasing to see students taking interest in Open Source and their willingness to participate in the CA program.

The third day (University Day), all the CAs of India had a meeting with Joe Hartley - Vice President (Global Government, Education & HealthCare). In the meeting we primarily focused on the progress of the CA program at our campuses. It was a pleasure meeting him in person.

The best part of Sun Tech Days was that I could meet a lot of CAs from various parts of the country. As I couldn’t attend the orientation programs held at Bangalore and Noida, this event gave me an opportunity to meet the other CAs and understand their work culture.

Sun Tech Days 2009 - Breath Taking Technology

There were several Sun technologies that were displayed and taught at Sun Tech Days 2009. New additions to the Sun technology arsenal like - Zembly, JavaFX and Java TV were showcased. Also a lot of new improvements on existing technologies like NetBeans, Solaris were projected.

The Sun Showcase, the Keynotes by James Gosling and Matt Thompson were in the main auditorium and were attended by several people. After the keynotes each day, the sessions were distributed into tracks like - Enterprise Computing, Client Technology, Tools and Best Practices, Hands-on Labs, etc.

The first day comprised of 7 tracks with an overall of 36 sessions. The second day comprised of 6 tracks with an overall of 31 sessions.

Sun Showcase

The first day showcased the latest breath-taking technologies of Sun, which included - MySQL, VirtualBox, JavaFX, Java TV and a few more.

  • The demo on MySQL was very interesting. It showed a great way to integrate MySQL to AJAX and how a web-page created with this combination can be viewed cross-platform using VirtualBox. The demo also covered a small showcase of how rollback can be used in MySQL
  • The demo of JavaFX was cool and raised a lot of eyebrows in the audience. In fact JavaFX looked like the show-stopper of Tech Days 2009. The demo covered a lot of great features of JavaFX which were beautifully presented
  • Finally, there came the Java TV, the integration of Java and set-top boxes. The demo was reasonable good and showed the future of Java in our leisure life

Keynote - James Gosling

On the first day, after the showcase we had a keynote by James Gosling, the father of Java. The keynote was very exciting as it showed in a lot of new technologies based on Java. It also gave a glimpse of the various products of Sun, like GlassFish and finally ended with a projection of Java in the near future.

Keynote - Matt Thompson

The second day started off with a keynote by Matt Thompson, which mainly covered the advent of Sun in the arena of Cloud computing. It mainly projected trends in cloud computing like Zembly - an online platform for building social applications and Project Kenai along with online virtualization. The virtual environment wasn’t only in terms of operating systems but also in terms of hardware virtualization too.

NetBeans 6.5 - What’s New and Cool

The NetBeans session was great; it gave us a good insight about NetBeans and introduced us to NetBeans 6.5 by a short and quick tour of its various features.

One of the best concepts introduced in NetBeans 6.5 was the variable class paths, which was explained well in the presentation. As a part of the session, several demos were shown, which included -

  • Compile on Save, which was shown using Hibernate + Servlets
  • Hibernate, which was demonstrated using Visual Java Server Faces + Hibernate + Java DB
  • Search Mechanisms
  • Database Manager
  • JSF connected to a database for CRUD with AJAX

DTrace - Bridging the observability gap for Java and scripting languages

The session on DTrace was very interesting. Especially as it started from the basics, we had a good opportunity to start fresh and learn from the session.

Some of the concepts covered in the session included

  • The philosophy of DTrace (Dynamic Tracing)
  • Performance vs. Probes
  • DVM providers and Hotspot providers
  • Java Statically Defined Tracing
  • Scripting Language support for DTrace - Python, PHP, JavaScript and Ruby
  • MySQL support for DTrace

JavaFX - The new platform for rich internet applications

This was one session which students should have attended. The main reason was that it was a pure introductory session and introduced many to the world of JavaFX.

The primary focus of the session was on features like -

  • JavaFX and the underlying structure and its attachment to Java2D and Swing
  • The basics of JavaFX like data types, variables and constants, access modifiers, sequences
  • Binding of variables in JavaFX
  • Animations - simple tweens and how timelines can be created and amended
  • Media Design Goals and the Java Media Components (JMC)

Building Social Applications using Zembly

Initially this presentation looked very boring, but as time progressed and the demo started, things started to look interesting. The demo primarily showed Zembly - an online platform to build applications for social networking sites. The best part of Zembly was the online editor for writing programs. It didn’t require anything to be installed on the system and stored the projects online.

This was a big step of Sun towards Cloud Computing.

Connecting the world with REST

This was one session which I attended without knowing anything about the topic. It seemed very foolish on my part to come to a totally alien topic. But to my surprise I did understand a little from the session.

Even though I haven’t tried anything on REST after coming back from Sun Tech Days, these were the topics covered at the presentation.

  • Representational State Transfer (REST)
  • Resources and how resources are transferred using GET and POST
  • Resource Oriented Architecture (ROA)

Swing - Best Practices

This was one of the best sessions which I went to, during Tech Days. This covered a lot of things which could make a Swing application more beautiful and interesting.

The main topics covered in the session were -

  • Look and Feel of Swing
  • The Nimbus Look and Feel
  • Accelerator Keys
  • Splash Screens
  • Undecorated Windows
  • Faking full screen
  • Tray Icons

Sun Tech Days 2009 - Overview

After spending a few months as the campus ambassador of Osmania University, there came the "Sun Tech Days 2009". This year, Sun Tech Days in India was held at HICC (Hyderabad International Convention Centre), Hyderabad on 18th, 19th and 20th February 2009.

Though Sun Tech Days was conducted at my home town, Hyderabad for the past two years, I didn’t get an opportunity to attend it till now. However this year I decided to attend it at any cost.

I knew that it would be pretty boring to attend Sun Tech Days all alone. So I informed all my friends that Sun Tech Days was coming and encouraged them to attend it. Besides this, I spread the word about Sun Tech Days to all the students of my department so that the interested students would make it there.

Having registered myself online, I arrived at the venue along with my friends. As a few of them didn’t register before, we spent a little time getting ourselves registered. After completing a few formalities we collected our badges and the welcome kits. We eagerly entered the huge auditorium of HICC and there started the exciting journey of Sun Tech Days 2009.

There was a lot of technical content that was covered during the three days of Sun Tech Days. An overview of all the sessions which I attended is followed as a separate blog-post.

Like most of the developers, I had a vision of Sun Tech Days as a platform for geeks to discuss the technical advancements of Sun technology. However this expectation was a complete washout, seeing the recreational events presented as a part of Tech Days. They were very exciting and rejuvenated the enthusiasm of the crowd present there.

The food at the event was delicious. But the food hall was a big mess. I felt that managing the huge crowd during the lunch and snacks time became a very difficult task for the coordinators. It could have been managed better, probably by providing packed food or something like that.

The best part of Sun Tech Days was that every attendee was awarded with mementos - the first day we were given a travel bag and the second day we were given a Swiss knife.

I also got an opportunity to meet a lot of Campus Ambassadors from various colleges of the country. We set up a stall at Tech Days to publicize OSUM and I believe we did a pretty good job at it.

On a whole, I had a great time at Sun Tech Days 2009 and am eagerly waiting for Sun Tech Days 2010.

Monday, February 23, 2009

SOA Live Demo - Web Services

Download the source codes from here.

Requirements - Java Development Kit, NetBeans 6.5, GlassFish v2, Visual Studio 2008, Internet Information Services.

Follow the below steps to get the projects running in Java and .NET Environments. There are four projects in the download archive - Palindrome_WebService, Palindrome_Java, Palindrome_JSP and Palindrome_J2ME.

Open the downloaded projects (Palindrome_WebService, Palindrome_Java, Palindrome_JSP and Palindrome_J2ME) in NetBeans 6.5.

The Palindrome_WebService project has the source code for the web service. Deploy it in GlassFish.

The Web Service can be tested by a built-in Web Service tester of NetBeans/GlassFish. The tester gives the method parameters and return values, along with the request and response SOAP messages.

This Web Service can be hooked to a Java client with a GUI. Open the Palindrome_Java project and run it.

Similarly, the Web Service can be also used in a JSP page. Open the Palindrome_JSP project and run it.

The Web Service can also be used in a J2ME mobile device. Open the Palindrome_J2ME project and run it.

All these projects are primarily implementations of Java. However this Java Web Service can also be connected to an entirely new language (if it has XML support). Open the remaining projects from the downloaded archive (Palindrome_CSharp and Palindrome_ASP.NET) in Visual Studio.

Consider a C# client which accesses the Java Web Service. Open the Palindrome_CSharp project in Visual Studio and run it. Remember GlassFish needs to be up and running with the Web Service deployed, for this to work.

Finally consider an ASP.NET page, using C# hosted on IIS, accessing the Java Web Service hosted on GlassFish. Open the Palindrome_ASP.NET project in Visual Studio and run it to achieve this.

Well, that's it. So we have used a Java Web Service in a Java client, JSP page, J2ME mobile device, C# console application and in an ASP.NET page.