Sciology = Science + Technology

Religious Programming (Eclipse; AJAX; SOA; Mashups; XP + SCRUM).

Archive for December, 2006

Multiple timezone clock (in simple html and flash)

Posted by sureshkrishna on December 27, 2006

For all those who want to have multiple timezones…i have a small program which does the trick. The cool thing is its free and if you are online its great. Thanks to www.worldtimeserver.com.

<HTML>
  <HEAD>
    <TITLE>World Calender</TITLE>
  </HEAD>
  <BODY><HR><div align="center">
    <TABLE border="1" cellspacing="2" cellpadding="2">
      <TR>
	<TD><table border="0" cellspacing="2" cellpadding="2">
           <tr><td><embed src="http://www.worldtimeserver.com/clocks/wtsclock001.swf?color=ff1493&wtsid=IN" width="200" height="200" wmode="transparent" type="application/x-shockwave-flash" /></td></tr>
           <tr><td><h2 align="center">India</h2></td></tr>
           </table>
        </TD>
	<TD><table border="0" cellspacing="2" cellpadding="2">
            <tr><td><embed src="http://www.worldtimeserver.com/clocks/wtsclock001.swf?color=FF9900&wtsid=US-NY" width="200" height="200" wmode="transparent" type="application/x-shockwave-flash" /></td></tr>
            <tr><td><h2 align="center">New Jersey</h2></td></tr>
            </table>
        </TD>
	<TD><table border="0" cellspacing="2" cellpadding="2">
            <tr><td><embed src="http://www.worldtimeserver.com/clocks/wtsclock001.swf?color=000000&wtsid=US-CA" width="200" height="200" wmode="transparent" type="application/x-shockwave-flash" /></td></tr>
            <tr><td><h2 align="center">California</h2></td></tr>
            </table></div>
        </TD>
      </TR>
</TABLE>
<HR>
</BODY>
</HTML>

Posted in Uncategorized | 1 Comment »

PShelf Widget in Eclipse

Posted by sureshkrishna on December 21, 2006

PShelf Widget is really cool, if you want to implement a kind of Accordion widget in Eclipse. The Accordion widget is been gaining popularity in the end user community, especially with the AJAX and SOA presence.

Currently for simple implementations it looks quite stable. I had no problems till now. I have no idea when this project nebula is going to get integrated, but i am looking forward to it.

One good thing about this widget is that we can increase or decrease the time delay in the shelf roll-out. It also gives a very smooth transition from shelf to shelf. Can be very easily embedded into a View.

I am just adding a small snippet for the PShelf usage in a View. Hope this helps. Also this widget library it self is very very small, so you can include it very easily.


public void createPartControl(Composite parent) {
/* Create a grid layout object so the text and treeviewer
* are layed out the way I want. */
GridLayout layout = new GridLayout();
layout.numColumns = 1;
layout.verticalSpacing = 2;
layout.marginWidth = 0;
layout.marginHeight = 2;
parent.setLayout(layout);
text = new Text(parent, SWT.READ_ONLY | SWT.SINGLE | SWT.BORDER);
// layout the text field above the treeviewer
GridData layoutData = new GridData();
layoutData.grabExcessHorizontalSpace = true;
layoutData.horizontalAlignment = GridData.FILL;
text.setLayoutData(layoutData);
PShelf shelf = new PShelf(parent, SWT.BORDER);
PShelfItem shelfGroup1 = new PShelfItem(shelf, SWT.NONE);
shelfGroup1.setText(”Group 1″);
shelfGroup1.getBody().setLayout(new FillLayout());
Table componentTable = new Table(shelfGroup1.getBody(), SWT.NONE);
createTableItem(componentTable, “Item11″);
PShelfItem shelfGroup2 = new PShelfItem(shelf, SWT.NONE);
shelfGroup2.setText(”Group 2″);
shelfGroup2.getBody().setLayout(new FillLayout());
Table containerTable = new Table(shelfGroup2.getBody(), SWT.NONE);
createTableItem(containerTable, “Item21″);
PShelfItem shelfGroup3 = new PShelfItem(shelf, SWT.NONE);
shelfGroup3.setText(”Group 3″);
shelfGroup3.getBody().setLayout(new FillLayout());
Table advancedWidgets = new Table(shelfGroup3.getBody(), SWT.NONE);
createTableItem(advancedWidgets, “Item31″);
GridData shelfLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
shelf.setLayoutData(shelfLayoutData);
}

Posted in Eclipse, JFace, PShelf, SWT | No Comments »

Quality vs Process in Software Industry

Posted by sureshkrishna on December 12, 2006

I am trying to understand the difference between the Quality and Process, which we very often use in an interchangeable manner. After few years of my experience in different roles of Project Leader and Technical manager, now i am in a position to understand the REAL difference.

On a global perspective, the “Process Orientation” is the buzz word in the corporates. ISO 2000 certification, CMM Level2-Level5, Six Sigma, Agile Methodology and TSP/PSP are some of the well known processes in the implementation. Of course many corporates implement a subset of these processes also and might not really call with the real names.

Process is a sequence of steps to achieve a Task“, is the simplest definition i have. I strongly believe in this definition by my heart and sole :-) Now i have seen many guys who have really used Quality and Process as a single word. Some of the irritating dialogs i come across were….
#1 There is not quality in the software (They meant, Process implementation is bad)
#2 You have not implemented Process, Stop the delivery to the customer (They think, process non-conformance means LOW in quality)
#3 This month your Process Implementation index is 100% (some times this is because, there is no software delivered or developed)
#4 We produce a very high quality software (but at the customer’s site, the software bombs)
I am sure that all of us would have had a chance to hear this and then wonder, what the senior manager is talking about.

The real problem i see is the lack of awareness and education in the developers, middle managers and finally the senior managers. The people who pester us to implement the process, would have never implemented a single line of code nor the process. In my view a software practitioner is the best person to decide, which process is suitable for the project. He is the one who can say Why, When, Where, What and How. The Quality department just need to assist mainly in What and How.

We need to really distinguish between the Heavy processes and Lightweight processes. In my experience, i categorize ISO 9002, CMM as heavy weight processes; Agile Methodology and PSP/TSP as Lightweight processes. As a general convention, many Service Based Software industry follows ISO and CMM and Product Based software industry follows light weight processes (like Extreme Programming).

Coming to the Quality, i define it as the factor which determine closeness to the requirements, features and the customer/end user expectations. Of course this drills down to the different factors like
#1 How well do we understand the requirements
#2 Translation of the Customer Requirements to the System Requirements
#3 Analysis of the Market/Competition/TargetIndustry/TargetEndUsers, etc…
#4 Good Design Practices (specific to project)
#5 The right-passionate team to do the development
#6 Good coding practices
#7 Developer Documentation, End user Documentation
#8 Aesthetics of the Software (Not only limited to the UI)
#9 End user support
#10 Training

In my view Process is the one which assists to achieve a good quality software. It does not mean that Quality is not attained with out Process. This is a common conception amongst many of us. In small teams, the steps taken for a development project are pretty straight forward and simple. Get the requirements in any format you want (as long as its understood by many of us), design of the module is a very simple process (some times its in the developers brain), coding is done to meet the requirements, simple user documentation, deliver. I have seen all these phases as simple as i have written in some projects. And it works perfectly in some scenarios.

The same scenario, when transposed to a large organization with multiple projects, distributed and cross-functional teams, things gets complicated. This scenario requires a more formal way of managing the Contracts, Work Orders, Reporting Formats, Monthly Reports, Project Plans, Project Management Tools, Requirements, Design, Coding, Testing, Documentation, Delivery and User support, to mention a few. Now the challenging issue is to get all the teams to follow the same process and similar steps to achieve the goal of the organization.

Finally…. Quality is in People, The Software we write, Innovative Thinking and the Ability to Deliver the right things perceived by the customer.

Posted in Agile Methodology, Automobile, CMM, ISO 2000, Process, Quality, SEI, Six Sigma | No Comments »

Wanna start a startup….?

Posted by sureshkrishna on December 12, 2006

This is been there in my mind or a long time… “To start or NOT to start..”
I guess fro all the confused brains, following site might help.

http://www.fastcompany.com/homepage/index.html

http://www.paulgraham.com/start.html

http://www.startupjournal.com/

http://www.startups.co.uk/

Posted in Entrepreneurship, Startups | No Comments »

Competition and Self Identity in India

Posted by sureshkrishna on December 12, 2006

Competition : An occasion on which a winner is selected from among two or more contestants. Are you a Winner. Ofcourse, most of us are winners at some point or the other. Thats the time we have felt the top of the world, a little high, proudness, recognition in the crowd/society, increased respect from the family members, and a lot more. I am sure we do agree that all these are the factors that drives us to be competent.

Self Identity : Its a set of qualities and passion that distinguishes one from another. e.g. BillGates and Myself :) . I have my own and he has his own identity. This is also a result of mental state and perception that we have right from the childhood.

I am sure all of us depending on our backgrounds and ethnic grounds, we have dreamt of many things. I wanted to be an Actor. Believe me….i always dreamt of to be a best actor in the world (till 13-15 years of age). Right from my 8th grade, i wanted to be a scientist. I wanted to do something with the fundamental and astro physics. Was verymuch interested to see if i can increase the days length. Instead of 24 hours, it shoudl be around 48 hours. I wanted it coz, i want to spend more time with my Girlfriend in school and also can get more time for Cricket. Neverthe less that never happened. And finally after all these years of becoming this and that….Ya…..now i am a Software engineer :(

After some time i get to see lot of world outside my home, city, state and country. I was one of those young people, to get to travel to many countries. And all the time i was thinking i have achieved a lot and i am gr8. But when i saw the world outside, i have started “thinking“. In the due course of time, we all get into a kind of competitive mood, to get into Engineering, Medicine, Law, etc… And now ritght from the 10th grade we have been PUSHED to get good grades and show that u r capable. Its the result of peer, family and society pressure. When i got an average of 80% in my +2, the postman in my area, has made a remark that his son got around 90%. Wow thats great, for a moment i felt deminished. Anyway, who cares…thats what i have got and thats what i am.

Inida is a country with 1.3 billion people. As i know tehre are around 200+ engineering colleges in the state Andhra Pradesh. Now you can assume the amount of the crowd that comes out of the collage every year. Now all thse kids need to be placed in soem companies :( .

The irony is that, from 10th grade we stop every thing. Literally every thing. Dont do excercises; Dont go to dancing lessons; Dont play; Dont watch TV; Dont attend parties; Dont go to Swimming lessons; No social work; All these are a waste of time. Inshort, anything thats not books related is a time of waste. Wow…by the time we come out of the collages and getinto the jobs, we are worthless kids. Except the work related topics, we are not good at ANYTHING else.

And what we also lack is the realization that we are becoming too focussed on studies and letting other side of the life near to EMPTY. Ofcourse all this while we are so focussed and so TUNED towards this kind of “lifestyle“, we believe thats THE LIFE. Instead of giving our kids all the necessary KNOWLEDGE thats required to lead a successful life, we give then only a CAREER. In my view the CAREER is a part of the life but not the LIFE it self. We dont train them emotionally. Else, we woudlnot see so many suicide cases, coz they did not get through a competitive exam. Thats funny right…

Do any of us remember days when we actually set aside out official work, coz we want to spend time with kids, parents, wife/husband and friends. Did we fight at office saying that, i cant do this work coz i want to attend my gym/trecking/longdrive/painting/social work. I am not saying that we dont do it. But how often and how passionately we do the other things in life.

The Society that we have….this is a real tricky part. When we go to public gatherings or fucntions, did we ever see ourselves talking something other than our professional topics. A person who has done medicine cant get close to a engineer. We say..ha…his attitue and ideas are different. I cant talk to him in terms of engineering design, mechanical structures, the 8th wonder of the world i have in mind.

I am just wondering why dont we BE what we are. Its important ti be competitive and at the same time we also have to give importance to over all development and SELF IDENTITY. If all software engineers, if all are doctors, then WHO AM I. Do i have a recognition as a PERSON, other than my profession….

Posted in Competition, India, Self Identity | 2 Comments »

Product Line Architecture in Automobile Industry

Posted by sureshkrishna on December 9, 2006

I had worked with a major Automobile Supplier in Germany from past 6 years of time. Its nice to see the way this industry is into making the “Short Product Cycles”. Initially the coencentration was on the faster innovation and the engineering team that supports it. And then the higher management has realized that there is something more than the Product Innovation and shorter “Time To Market”.

Then everyone has come across the Nokia Product Line [Manufacturing/Designing/Architecture]. If we look at it closely in terms of how fast Nokia wasable to get new models in to the Market and how fast they change the entire product lines/series, it is amazing. The base of a particular product series is almost the same. The panel changes, the software featuers changes, the memory size changes, the screen changes, etc… So some how these guys are able to get all these very quickly and then turn them into the Market.

It was more or less on the same lines that the Automobile industry gone in to this. How can i make a product Series changing rapidly and still get the maximum out of this. This phylosophy goes into almost many of the engineerning teams. e.g. body team, power train team, electronics team, software for the engine, software for the multimedia, etc…. Inshort this spreads across both the Software and Hardware of the Automobile Engineering.

In the first look the idea is to have a STABLE platform which serves as the starting point to develop or improve further. In a product series, this platform is more or less the STABLE through out and suppliers or manufacturers add some plug-ins on the top of the platform. So you can imagine something like having the Widows or Linuz kernal with you and you write some value added applications on the top of it. So, you have the same platform/kernel with you for your applications. BUT the behaviour and features of the application changes.

This looks very easy to be implemented concept. But in reality we have the 1000’s of engineers and architects working on it to really see something like this. We also understand that as the organization grows the integration and architectural implications increases. Department A does not know whats happening in the Department B in the same Organization. Some times its even hard to know what the competior is doing.

But what i have seen is that its a really COOL to something like this. This really makes the product companies “get going faster”.

Posted in Automobile, CMM, Nokia Product Line, PLA | No Comments »

Some links on Product Lines…

Posted by sureshkrishna on December 9, 2006

Posted in CMM, PLA, SEI | No Comments »

ESB and SOA

Posted by sureshkrishna on December 9, 2006

Posted in ESB and SOA, Web Services | No Comments »

Showing Hierarchical data in Eclipse

Posted by sureshkrishna on December 9, 2006

Withe the introduction of RCP, EMF-RCP, GEF and GMF, now there are plethora of choices to display hierarchical or grouped data. I have been struggling with all these varieties to choose one amongst them. Its quite clear why would you choose a viewer (Tree, Table, etc…), so i am not going to write much about it. The real challenge is to choose between the available widgets appropriate for your application.

The Hierarchical data that need to be presented to the end user can be in many ways. It can be a TreeView, TableView, TableTreeView, Nebula PShelf Widget, ExpandBar. Probably there can be more viewers/widgets that i am not aware of.

The real important difference is to make sure that we have the right Widget and right Viewer to represent the data. Pretty clearly, many of the widgets from SWT can not manage the complex data manipulation. That’s the reason we have a very user friendly layer called JFace on the top of it :-)

Recently i also fiddled around with the PaletteView in GEF. This is also a very good starting point to represent collection of artifacts, from which we are going to select a specific action or tool. To provide a select-drag-create kind of scenario, i love to use PaletteView, TreeView, PShelf.

A more dynamic scenario is supported by the TreeView (as it has the providers behind) . If we are sure of the artifacts to be represented at the design and development time, its better to go with the PaletteView, PShelf kind.

Posted in EMF, Eclipse, ExpandBar, GEF, GMF, JFace, PShelf, RCP, SWT, TableTreeView, TableView, TreeView | No Comments »

Minimum set of plug-ins for Eclipse RCP

Posted by sureshkrishna on December 4, 2006

There has been a lot of confusion about the RCP and the number of plug-ins. Does org.eclipse.core.resources or org.eclipse.ui.ide a part of the RCP plug-ins.

As i have seen and built the RCP applications…there are only TWO plug-ins needed for a RCP application.

  • org.eclipse.ui
  • org.eclipse.core.runtime

But on the other hand as given by eclipse.org, following are the set of plug-ins that are officially part of teh eclipse RCP distribution…

Runtime:

  • org.eclipse.core.runtime
  • org.eclipse.osgi
  • org.eclipse.osgi.services

SWT:

  • org.eclipse.swt
  • + platform-specific fragments, e.g. org.eclipse.swt.win32

JFace:

  • org.eclipse.jface

Workbench:

  • org.eclipse.ui
  • org.eclipse.ui.workbench

Other prerequisites for the Workbench:

  • org.eclipse.core.expressions
  • org.eclipse.help

In the end, as an application developer or an analyst, its YOU who have to decide wether to include the other stuff or not. In my experience of tool development, initially we started it as RCP and ended in full blown Eclipse application (with resourcemanagement, undate site, search, help, etc…).

Also look into… http://dev.eclipse.org/viewcvs/index.cgi/platform-ui-home/rcp/faq.html?rev=1.7

Posted in Eclipse, Plug-ins, Plugin, RCP | No Comments »