Eclipse Summit in Ludwigsburg starred with Modeling, eRCP,eSWT, Server Side Eclipse

I am sure every one, who is attending Eclipse Summit Europe, are excited. With the quality of the topics in the summit, i am looking forward to see community growth and a chance to share developers and organizations challenges in various symposiums.

Its really interesting to see the different areas like eSWT, eRCP and Device Software Development projects. I am sure that the embedded development tools have been growing on the Eclipse side with so many automotive companies and software vendors. Different companies have adopted Eclipse as platform to build the applications and tools for AUTOSARWindRiver, TNI-Software, Telelogic and TietoEnator are some of the companies in Europe that are heavily into offering the tools based on automobile industry needs.

I am very curious about the Eclipse Modeling Symposium from Markus Volter. I am hoping that a lot of companies would come forward to discuss their challenges in modeling.

The other area i am very keen on are the Device software development and i liked the challenges that the embedded software development poses. How cool it is that device software development which spans multiple industry verticals, including medical devices (blood-test machines, EKG’s), network equipment (routers, switches), consumer electronics (digital cameras, mobile phones), automotive applications (telematics, engine controllers), military applications (missiles, combat systems) and industrial devices (manufacturing robots, process automation).

The other interesting topics being the Ajax and SOA Tools platform and the Server-Side Symposium. This is a great opportunity for all the participants to know that Eclipse can also do Server side. This is still a gray area for many IT Developers and Managers.

In the end , it would be interesting and useful for everyone, if eclipse summit’s presentations and tutorials are out for the public use.

Posted in eclipse, plugins, software | Leave a comment

Eclipse 3.3 and NetBeans 6.0 compared !

I am so happy to be working on Eclipse platform from past 5 years. I have been playing with eclipse 3.3 from past few weeks. With too many ads on java sites about the NetBeans 6.0 Beta release, i was intrigued to have a look into it. NetBeans does come in a variety of flavours and selectable modules. I found very similar categories that i see in Eclipse, i really liked the matrix of different downloads it has.
Following are some of the modules from NetBeans and i tried to give equivalent in Eclipse.

Java SE= Base IDE + Java SE [equivalent to JDT ]
C/C++= Base IDE + C/C++ [equivalent to CDT]
Ruby= Base IDE + Ruby [ Dynamic Language Tool Kit]
Mobility= Base IDE + Java SE + Mobility Pack [Embedded and Device Development ]
Web & J2EE= Base IDE + Java SE + Web & J2EE + GlassFish v2 + Tomcat [equivalent to WTP without GlassFish and Tomcat]
All= Web & J2EE + SOA + UML + Ruby + C/C++ [I dont know what to say…]

I anyway installed the “All NetBeans Pack” and some i could go through it with few humps. Any way finally it takes 500 mb of disk space. In the end i worked few hours on Net Beans to find out quick feature set and good things about the modern IDEs. I am definitely looking for features which are coming as best of both the worlds. I did see many applications built on the NetBeans platform too and these products were great. I saw many of the graphical editors on NetBeans.

Anyway following is the criteria where i was looking into both the IDEs…

Installation: Eclipse comes as a simple zip file which need to be unzipped. That’s it you are ready to use the IDE. NetBeans comes as an exe and during the installation time it asks for the JDK location. Some how i did not like this as it could have automatically taken from system settings as eclipse does.

Startup Times: I have tested both on a laptop with Intel Pentium Dual Core 1.6GHz and 1GB Ram. I have only an IE and Windows explorer programs opened. Eclipse WTP All in One SDK 2.0 could start in 20 seconds once i chose the workspace. NetBeans 6. Beta takes around 80-85 seconds to start up once the splash screen comes.

Source Code Editing: This is quite interesting time for me in both the editors. Both has Code Folding, Code Completion, Code Formatting, Instant Syntax Checks, Code Coloring, Syntax Highlighting, etc. In my view both IDEs have great tools for editing. I am writing these experiences from my Java Editor experience.

Even though i felt some of the functions like in NetBeans are little slow. Some times thay take long time before the code suggestions comes as a list. I am not sure if this is because this is a beta version.

Compile and Build : Both have good support for Compile, Build, Clean functions. Both have Save participants and of course who would not like this.

Debugging Support : Both do have the debugging support. But i am not sure how good is the NetBeans Debugging support, if some one wants to write a new debugger with the help of Net Beans.

Some how the debugging is not intuitive in NetBeans, i closed few example project that’s came along and had only my example project (by name com.simple.solutions.testnetbeans). When i invoke the debug action on NetBeans, it does take some time before some thing happens. I am also worried that each time i launch the degug, the Feed Runner application comes up. And i am perplexed in the same way as you are right now. In the end i do not have a good experience on Netbeans in debugging a simple HelloWorld program.

Refactoring: Basic refactoring techniques are present in both the IDEs. But Eclipse does have advanced refactoring functions. e.g. when extracting a method, eclipse does show how the method looks like. Some time it also suggests the input parameters for a method.

Version Control: Eclipse and NetBeans comes with a good Team support. Eclipse comes with CVS by default. Subversion plugin can be additionally installed. What i really liked about the NetBeans is that it has both CVS and SubVersion support by default.

Help System: Eclipse and NetBeans does have help system. I am slightly disappointed by the performance of the NetBeans. I have no clue what happens when i click on the “Help Contents” menu item. I dont see the mouse icon and there is a huge hard disk activity. I did feel that transition between the pages also takes some time.

Search System: For sure Eclipse does have a advanced search system. NetBeans have a file level an project level search and replace system. But Eclipse definitely have more than that. Eclipse has File Search, Java Search and Plugin Search. And i personally use these a lot and definately miss them in Net beans.

UI Response: What ever may be the reason, Eclipse is definitely faster and it has better response times than NetBeans. Of course its the matter of how i percieve when i do a particular action in the IDE.

Profiling: Awesome in NetBeans. I like this feature which is a part of NetBeans by default. Eclipse does have some profiling tools, but they need to be downloaded additionally.

Perspective: Last but not the least, this is some thing that i definitely miss in the NetBeans. Perspecives is a great concept interms of developement and also as when an application is developed. We often develop applciations for different users and in my experience, perspectives in eclipse does a lot more than pne can imagine.

In the end in terms of features both have good feature and qualifications as IDEs to improve developers productivity. For some of the obvious reasons, i feel that NetBeans need to catch up with performance and UI feel. NetBeans does not even show a wait state icon when some long running activity is happening. The Feed Burner example takes too much of time to start up and  some how my experience is rugged. 

Kudos to eclipse, for its wonderful nimbleness and flawless releases. There are some other categories that i did not consider as i am not sure if i can really compare this in NetBeans. Like the EMF, GEF, GMF, DTP, ATF, RAP, etc… Last but not the least, Workspace concept is some thing that i really like in eclipse. Not sure if there is an equivalent stuff in Net Beans.

Posted in eclipse, plugins | Tagged , | Leave a comment

Is "Naked Objects" trying to address similar problems as "EMF" ?

Yesterday i was going through the article from the Naked Objects about their platform and architecture. Once i gone through some of their articles and website, i had an impression that its also solving subset/similar set of problems solved by EMF.

For the ones who is not familiar with the Naked Objects, its “an open source Java-based application development platform. It’s called Naked Objects because all you need to develop are your domain objects – the Naked Objects platform auto-creates an object-oriented user interface (giving you the choice of different styles) and the underlying database (using Hibernate)“.

Thus the developer has to develop only the domain model and the UI and Persistence mechanism is auto-generated by the platform. I tried to draw some categories on which i felt Naked Objects is in similar lined as EMF.

Domain Model : Naked Objects requires the entire domain model to be developed in plain java and the domain validations to be described in each of the domain class. That means that domain class will contains the data + behavior + validations. Last but not the lease, each class must implement a NakedObject interface.

All the eclipse projects that i have worked on till date, have EMF models designed as domain models. Mostly created right from the scratch (Omondo, Together, or plain ECore Editor) or from schema. In my view i have always used custom diagnostics/validations for each domain class. In principle i do have my validations on each class.

UI Generation : Naked Objects framework does generate the Web and RCP kind of UIs. I have seen the demos of both the UI and its definitely appealing.  At this point of time, i am not sure how they tackled the “Separation of Concerns”. I really like the differentiation between the View, Content and Label providers level. Not sure if we do have the access to change the editors and custom UI thats generated.

Of course regarding EMF, it does generate the Edit and Editor Plugins along with the Model. I love this separation of concerns about the Content and Labels for the Viewers.  Though the generated editor does contain different kinds of editors, i am at will to change them. I can change what ever i want from this Editor.

Rapid Application Development : Yes in my view both of them does support a very fast development of applications and validation of concepts (though i have not used Naked Objects, i am making this claim on what is mentioned their site and what i have seen in demos) .

In the end i guess in both the frameworks, developers will need to change the UI. As i believe we do need some custom User Interface all the time. Every customer is unique and every customer wants a different UI.

Persistence : Naked Objects claims that it can persist the data directly via hibernate. I feel this is a real good feature, as many a times i do need a persistence mechanism. I would say this is definitely an advancement.

EMF does provide the XML and XMI as the default persistence mechanisms. I did use the Oracle Toplink as a persistence layer for EMF. Of course we do also have the hibernate support, but i have not personally used it.

Interesting thing would be if Naked Objects working with Eclipse. That means i get a similar UI and Persistence mechanism in addition to what EMF provides.

Posted in eclipse, plugins | Leave a comment

“DimDim” OpenSource Web Conferencing

I do lot of web conferencing in our company. Typically these will be demos and presentations between engineering team, product management, QA team and Customer Teams. Till now i have been using the WebEx and/or GoToMeeting as the only way to conference.

Few days back I have seen the DimDim, a free web conferencing online software.  Its typically comes as free sw against webex or gotomeeting. There is no need to download anything like webex and gotomeeting does.

In the end I have not personally tried this software, but I have registered for it and I need to see how good is the quality. But I do definitely like the idea of free web conferencing. 🙂

Posted in software, technology | Leave a comment

Help me with PermGen:OutOfMemoryException

I have a plugin developed for and AJAX based application with the help of Platform + EMF + WTP combination.
Many of the clients who report this out of memory have following conditions…
# Eclipse or Windows OS is not shut down for a long time; nearly for days.
# After a long time of inactivity on eclipse, Whenever a client clicks on any of the action or an editor, application just hangs.
# When a client is working on this application for a long time CPU goes 100% and except killing the eclipse application there is not other way.
Of course at this point of time i have no idea, what makes application crash with PermGen Error. There could be some thing wrong with the plugins that we made, but at the same time i dont get any error log for this PermGen:OutOfMemoryException.

I would appreciate if anyone can let me know about some of the utilities that i can use to find out the root cause.

Anykind of suggestions and solutions will be appreciated.

Posted in eclipse, java, plugins | Leave a comment

JSON2XML TreeViewer plugin for Eclipse

I have been working on the WEB2.0 platform from past one year. All the while i was looking out for simple plugins for eclipse to visualize and analyze the  json that either i built or got from server.

  • It is so much of a pain to really construct the JSON and then to debug to see if we have inserted the data at the right children.
  • When the complexity of the JSON grows, its difficult to see which are arrays and which are maps.
  • What if you need to test if the JSON is syntactically correct ? (of course we can send the request to  the server and get a response with a error header, but this is not what we want in most of cases)
  • When JSON is well formatted with the correct tabs it looks good else its a coffee-break time to see the JSON as formatted text

After looking at all these issues, i have written a small plugin to convert the JSON to XML and a Tree Response. This enables you to…

  • View the JSON as XML text
  • View JSON as Hierarchical Tree
  • Get immediate response if JSON is wrong.

http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-1071.html

http://sourceforge.net/project/showfiles.php?group_id=205573

I would love to get any of your feedback and response. I would be working on this plugin in the future, so your improvement request are well considered.

Posted in eclipse, java, plugins | Leave a comment

Must see places in Germany

Hummm….i am writing this and suggesting as a person who lived in Germany for almost 4 years and have traveled throughout Germany over the weekends. The first thing i like about the europe is the public transportation system. Where ever you are and where ever you want to go , there is always something that takes you there (could be trains, trams, buses). I have not seen such a punctual and well maintained system any where else. I live in USA now and you can forget abt that kind of public transportation system.

In any case if you are planning to visit germany, do take time to plan and see the most of what you can. Dont miss the opportunity. Following are some of the places that i have seen and many people did liked these. Hope this list helps if you are looking for some nice places.

One thing for sure is that there are still lots of places to watch out and Germany is Beautiful. If language was not a barrier i would have settled in Stuttgart, Germany. Anyway now i landed up in usa and life if going on.

I would definitely visit Europe when ever i get a chance. I still cant get those memories out of my mind.

Posted in reviews, travel | Tagged , , , , , , , , , | 2 Comments

Is SEI-CMM L5 better than Agile Methodologies ?

I was working with a company which moved to CMM L5 and spent lot of $ on going for appraisal. I saw how the quality department and some of the (unlucky) project managers had to run around for the CMM L5 appraisal. Till that time I was more used to XP and Scrum for almost 3.5 years. Now as everyone would expect its very very difficult to get into the CMM mindset level from Agile methodologies. Of course in the end both processes are aiding us to achieve a good Software Product. As a project Lead i had the responsibility to implement a SW Development process. My manager was reasonable enough to listen to me and see the differences between CMM L5 and Agile practices.

In this article i want to explain how i convinced my management to adapt Agile Development for my project. I moved from CMM L5 to Agile Development. The comparison shows how i achieved each process area of CMM via Agile practices.

Some how in the industry there is a misconception that the Agile practices will lead to “Code-Test-Fix” cycles. Many fears that this process would lead to non-deliverable product , etc… In any case i had to convince few stakeholders in my organization to try these practices and see if it is better and makes sense. My Manager, QA Lead, QA Manager and customer are the main stakeholders who would be interested to see what the new process would be and what would it bring to them without disturbing any of the current Organization Level Metrics/Statistics. For me i had the advantage that the customer is working with the agile practices for a long time and there is no need to explain him what it was.

Let me explain the project that i was working for, so that you get the environment where i implemented this. This was a project with 10 team members in India and 5 team members in Germany. We had a time difference of 3 hours daily and we had full access to the Phones and Video Conferences. Everyone speaks english and the entire team knew each other. We have been developing a Eclipse based IDE for automobile systems and we were using CVS as configuration management system, JIRA for the Requirements, Work break up as issues, Bugs and Enhancements processing, Release management, estimations, tracking, we also linked JIRA and CVS via fisheye so that the traceability is not missed. Hummm….i definately have used a lot of JIRA, but trust me it worked perfectly (some say that i over used it). Every one is happy that they do not have to use any other Requirements Management tool (like Clear Quest), Bugs tracking tool (like Bugzilla), Project Management tool (MS Project), Team Tracking tools (PS7 and PC Team), etc… The important thing is that the developers and leads have to use only the Eclipse, CVS and JIRA; Thats all is the environment that makes your product development happy. We do have team members with varied experiences ranging from 12 years to 1 year.

In this article i am not going to explain the agile practices that we implemented but i will limit it to the differences that i found and we tackled with Agile Methodology. For Agile Methodology i have taken few practices from XP and practiced SCRUM. Following is a overview of the comparison that i had done. Of course i finally got the approval to go ahead with the Agile process that i proposed. But it was a lot of work to convince the management. I hope some of you who had done the same would agree with me 🙂 .

CMM and Agile.

Now its the time to look into each key process areas of the CMM and see how Agile Processes/Practices can help. Please make a note that i have mentioned Eclipse, CVS and JIRA in some of the process comparisons as tools that supports process implementation.

Project Planning & Integrated Project Management

  • Joint development with the customer
  • Life Cycle
    • No distinct phases, “Daily Development“, “Daily Integration”, “Daily Reviews”, “Daily Testing” and “Weekly Deliveries”
  • Estimation technique
    • Milestone (Sprint) planning is expected to be flexible. And customer has a knowledge of development on daily basis.
  • Tools recommended by customer
    • JIRA for planning, scheduling, tracking and OPL

Monitoring and Control

  • Team meetings, corrective actions, risk analysis is a daily ritual.
  • Agile methodology which is flexible, responsive, builds a self-managed teams
  • SVL, OTDQ have no importance. Sprints are flexible enough to accommodate various situations.

Quantitative Project Management

  • Flexibility is key. SVL (Schedule Variance) , OTDQ (Ontime Delivery Quotient) and RSI (Reqirement Stability Index) have no importance, sprints are flexible
  • JIRA will be used for scheduling, tracking and defect logging
  • DD/EPY (Delivered Defects per Person Year of effort), PYe(Productivity) , DFDQ (Defects per Delivery) will be calculated from the JIRA data

Requirements Development & Management

  • Frequent/Continuous meetings with stakeholder to get requirements – no concept of frozen Requirements. RSI has no significance.
  • JIRA is the RCMS for the project stakeholders (management, users and development team)
  • Due to the connection between the JIRA and the configuration management, code traceability is automatically maintained

Technical Solution

  • No distinct phases, “Daily Development” – Daily Integration, and weekly Deliveries
  • Not practical to check DIR (Defect Injection Rate) before each delivery
  • Impact analysis and Design is part of JIRA and is shared with Stakeholders

Product Integration

  • Due to Daily Integration and tool support, Integration is not a separate phase

Verification and Validation

  • No Distinct phase for reviews, testing. TDD – Test Driven Development.
  • Daily Reviews and Daily Tests; More efficient than a milestone based or task based reviews and testing.
  • Daily Development concept requires daily reviews and testing. Therefore no Test specification reviews.
  • No formal acceptance Test Specification, weekly Deliveries. As the customer is part of the deliveries (sprints), Acceptance test specification has no significance.

Configuration management

  • Latest code base from the development is taken and labeled.
  • Base lining is not done, as distinct phases does not exist.

Process & Product Quality Assurance

  • PDC (Pre Delivery Check) not done for Weekly deliveries. PDE is done for the major deliveries from the Customer to „End User“.

DAR & CAR

  • All major decisions taken could be documented in the JIRA tool.
    • This gives the flexibility that the entire team can view the decision basis.
  • All review & test defects are entered into the JIRA tool.
    • Informal CAR is done along with customer in the weekly reviews.

Risk Management

  • Daily meetings with the customer
  • Frequent meetings/demos to Stakeholders (also includes management, end users)

Organizational Innovation and Deployment

  • Promotes flexibility so more conducive for innovation

Hope this analysis helps you somehow. But in the end it takes a lot of time and effort to convince management who believes in the world of CMM fanatics.

Posted in reviews, software, technology | 13 Comments

TOP 10 Eclipse Shortcuts

Most of us who are using eclipse for at least 1 year are familiar with the shortcuts. Its been quite challenging to know and remember all the shortcuts during the development time. And of course we dont need all of them. I have been collecting some shortcuts based on the user experiences and the way they develop software. Following TOP 10 Eclipse Shortcuts helps everyone in their happy day coding.

  1. Ctrl + Shift + O : Organize imports
  2. Ctrl + Shift + T : Open Type
  3. Ctrl + Shift + F4 : Close all Opened Editors
  4. Ctrl + O : Open declarations
  5. Ctrl + E : Open Editor
  6. Ctrl + / : Line Comment
  7. Alt + Shift + R : Rename
  8. Alt + Shift + L : extract to Local Variable
  9. Alt + Shift + M : extract to Method
  10. F3 : Open Declaration

Let me explain how i got these TOP 10 shortcuts.

  • I start developing a plugin. As the development goes i want to refactor the code with “Alt + Shift + L” and “Alt + Shift + L” and “Alt + Shift + M“.
  • And not i have many methods and probably 500+ lines of code in java file. A typical development involves commenting and uncommenting via “Ctrl + /” (Even though we have shortcuts for Block Commenting, looks like many developers use more of Ctrl + /).
  • As we comment and uncomment and many more class references, we have so many imports that need to be cleaned. We do copy very often from one class to another class, now i want to organize my imports by “Ctrl + Shift + O
  • Now i want to find variable and method declarations via “Ctrl + O“.
  • In the course of development i would like to view/analyze the declarations of the methods or classes via “F3″.
  • All well till now, i want to use an interface/class and want to search for it via “Ctrl + Shift + T“.
  • By the time we do all this we have too many editors opened and we would like to navigate among multiple open editors via “Ctrl + E“.
  • And finally you feel frustrated with so many opened editors and want to close all of them via “Ctrl + Shift + F4“.
Posted in eclipse, java, plugins | Tagged , | 36 Comments

Eclipse + CVS + JIRA is all i need for my development team.

I have been in different sorts of organizations working in Technology Startups to huge IT Organizations. I see a kind of huge differences with the kind of infrastructure that developers normally work with. In the end everyone is trying to get the best of what they can give to the organization. From developers point of view, we need to get the maximum productivity in terms of code and features. And many of us (developers, team leaders, managers) have same daily tasks, and my team always make faces about it. Does following things sound familiar for you.

  • All the requirements should be at one place; I am happy to see the high level requirements.
  • I want to have the traceability of the code (irrespective of a feature, improvement, bug or a task)
  • I would like to have the transparency of the tasks that i am working on
  • Each time a task or on issue is taken care of, i should be able to decrease by product back log 🙂
  • Should be able to do all the CM related tasks (Locking, Branching, Merging, Diff, etc…)
  • Each commit that i do should be able to notify my team and managers by mail
  • Each and every piece of code that i write must be accountable via CM. Who has committed what ?
  • I don’t want to be micro-managed. My manager should be able to get all stats that he wants by tools that use
  • I want to manage my release plan in a single tool and be seen by Developers, QA, Product Team, Customers, in short all my project’s stakeholders.
  • All release cycles and trains need to be scheduled and estimated in a single tool
  • For a simple reason that SW Development deals with communication, i would like to have all the communication that happens on a requirement, features to be in a single place. I want to have a trail of all my threads or in other terms i want to have audit trail.
  • I should be able to know the load on each of my team members
  • I should be able to query how many tasks are completed in a week
  • For each release bucket, i should be able to know what % of tasks/work is completed
  • An easy integration among my CM and tracking tool so that i know the task and associated source (which i refer to as traceability; I know many of the organizations spend time in maintaining excels for this).
  • If yours is a CMM organization…. you have more requirements on the CM permissions, checkins, etc…
  • I should be able to get the release notes directly from a tools so that i can reduce my manual work in compiling the tasks, bugs, improvements and enhancements.

If you agree with most of the above tasks then you would be amazed to see the combination of Eclipse, CVS and JIRA working in a perfect sync. After a long analysis and few months of continuous testing, i have successfully implemented the following process. Few members felt that i was overusing JIRA, but at the end of the day i am happy that i have to take care of only 3 tools. I am very happy about and and my team too. My management was super happy as i did not ask them any expensive tools for requirements management, configuration management, coding, task handling, reporting, release management and finally simple product life cycle management.

My experience with the simple process was great and its worked wonders. If you actually observe all the usecases that i described in different roles, you can imagine that with the help of the great combination of tools like Eclipse, CVS and JIRA you have satisfied all the requirements.

EclipseCVSJIRA Process Flow 

 In the end Eclipse has JIRA plugins and JIRA has lots of plugins too for the project management. I would not compare JIRA and Microsoft’s Project, but… the combination that i am crazy about is very much simple and is a seamless process. No one gets hurt by having this process and many are happy that its simple….

 And finally…. “Lets make Software Development easier…“.

Posted in eclipse, software, technology | Tagged , , , | 17 Comments