Demand and supply of webstartups

It was very expensive to start a start-up few years back. As years are passing by, software and hardware are getting cheaper, software products are also getting cheaper and the time to produce them is getting lesser. Initially when the technologies comes into the market, they are expensive. The same way now-a-days its becoming cheaper to start a start-up and there are more resources in-terms of ideas, VCs and academic resources.

I am really excited by some of the facts that Paul has cited in his recent article. I hope this article really helps to all those, who wants to start something and become success (me being one among them 🙂 ). Thanks to Paul for writing all interesting articles.

Posted in entrepreneurship, management, startups | Tagged , , , | Leave a comment

Apple releasing SDK for iPhone

After few months of iPhone in the market, Apple announced the release of native-cocoa based SDK. This would enable all the enthusiasts to build the native applications on iPhone. I guess releasing the SDK is much better for Apple than letting people to hack and build applications for iPhone. Kudos to all the brains who have developed applications within few days after the iphone release.

Its a discussion issue that the introduction of the SDK for iphone is detrimental to the web applications that are built for safari and with a special emphasis on the iphone. Of course both have its advantages over other. A centralized web development requires no deployment and packaging mechanisms. It can be faster to develop with html and js. Developing applications with SDK can take full advantage of the application and can also overcome the entire restrictions of web-browser.

A detailed analysis is provided by Kevin Hoffman in an article from syscon.

Posted in software, technology | Tagged , , | Leave a comment

Plugin dependency visualization plugin

Thanks to Bull for contributing this great plugin. He has created and hosted the plugin dependency visualization plugin on eclipse. The dependency visualization aims to provide a set of views to assist with plug-in dependency analysis tasks. In particular, the views will provide cognitive support to people as they attempt to understand the dependencies between their plug-ins.

It supports set of views with analytics and cognitive tools. This plugin gives a cool visualization of the dependencies between various developers plugins.

Earlier the only way to understand the dependencies is to keep different plugins on the whiteboard and run the plugin dependency tool in the pde. But with this plugin, it becomes much easier for the project leads and team members to manage the plugins.

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

Go online with RAP 1.0

Rich Ajax Platform(RAP) is a project from Eclipse aims to enable developers to build rich ajax and RIA by using eclipse development model, plugins and java-only apis. Innopract a Germany based company and an eclipse foundation member is the major contributor for this project.

The core of the RAP is a subset of SWT APIs and and some JFace. So over all the widgets available in the SWT and JFace are available to build the RIA. RAP is very similar to RCP, in the way that RCP runs on the desktop and RAP runs on the server. The RAP libraries intelligently renders the UI at the browser with the help of the JavaScript qooxdoo library. RAP lets many of the desktop based RCP applications to be run on the server with little or no changes in the code. Would it not be so cool to have a single code base and be able to have RCP and RIA? It’s very interesting to see the maturity of this project from incubator to 1.0 and all the new and note worthy features.

In the end it definitely competes with the GWT, AIR, Backbase, JackBe, Open Laszlo, etc… in the area of the AJAX Framework and Tools for building the applications. As APIs are based on Java, in this aspect it’s very close to GWT.

All the best to RAP !!!

Posted in eclipse, plugins | Leave a comment

Top 10 reasons to use eclipse…

  1. Eclipse is Free: I have seen very few organizations that would support you with expensive IDEs. As a developer if i need to play with, i dont have too many choices. Eclipse is free. I can download without too many hassles. Of course there are some other (i dont want to mention the names) IDEs for free too. But they don’t score in some other aspects. I get so many features for free.
  2. Eclipse Community & Industry Support: When i want to explain my boss and customers about eclipse, it important to know who is behind this project. Till now i had very few arguments about the credibility of the project and the people behind it. Especially the way it got spread through out the developer community from USA, Europe, and Asia is great. Developers celebrated eclipse’s birthday in Hyderabad, India in a huge way (doesn’t it say …).
  3. API Documentation: As a developer and technical lead, every one is interested to have a good API documentation so that the learning cycle is less. You don’t spend too much time in digging into unclear documentation. However good is the software, i want to have a good API documentation and eclipse has it.
  4. Free plugins: Once i have the base platform, i would want to use supporting and new features. And yes, many of VERY useful features are free. I have used so many plugins like findbugs, checkstyle, subclipse, etc… but in the end for IT departments its so nice to have something free and USEFUL.
  5. Code Samples: Sometimes i better understand with the help of code rather than reading some documentation. Eclipse has great code samples for all top level projects. Whoever starts SWT, JFace would definitely get lots of samples form snippets and also from the articles. Thanks to the guys who have supported all these.
  6. Design Philosophy: Many colleagues and subordinates have learned good design practices and programming patterns from eclipse code. Thanks to the book written by Gamma and Beck. Clean plugin architecture and clean interfaces.
  7. Customization : With the base platform around, you can do whatever you want to do. Users have the every possibility to customize their plugins that way they want.
  8. Extensibility : How else would we have seen the Java IDE, C++ IDE, Cobol IDE, PHP IDE, RCP Applications, etc…
  9. Productization: Its so easy to do productization. Changing the icons, splash screens, custom messages etc… Seeing some applications, you would not even recognize that they are built out of eclipse.
  10. Cross-Platform: A recent plugin i developed for a RIA/Web2.0 client, works on Windows, Linux and MacOSX; with the same code base and a single build. This is so much of a relief for many of the organizations who wants to develop the applications for multiple platforms.
Posted in eclipse, plugins | Tagged , , , | Leave a comment

XML vs JSON !!! Dont compare.

Java Script Object Notation (JSON) has become quite famous since 2006 and it has gone into the major companies application frameworks. JackBe, Google and Yahooare some of the companies that have adopted the JSON in their products. JSON is the response format for many kinds (rss, rest, wsdl, atom, dao, etc…) of the web service responses. Industry has already been talking “If JSON is an alternative to XML”.

I would like to keep the JSON as just a data interchange format. I would not mix up XML and JSON for the data representation and data exchange formats. Following are some differences that i have seen from my own experience…

  • XML parsing is very generic, you don’t have to care about the Types. JSON parsing on the other hand is very tricky.
  • XML has the data representation and semantics attached to it. JSON is very good for data representation.
  • Perhaps JSON data over the HTTP is faster than the XML.
  • As a developer the code to parse XML is much cleaner than the code to parse JSON.
  • Evaluating the JSON on JS is much faster and efficient. Due to its inherent support on JS, the learning cycle and manipulation of JSON data is faster than manipulation of XML by JS.
  • For WEB2.0/RIA applications, where there is frequent data transfers between the browser and server, it makes sense to get the response in JSON and manipulate it in the browser.
  • I have used XML as domain models representation. It can contain the cross references, can contain types and attach semantics with the help of Schema.
  • JSON does not have any namespaces. I am not sure if this is an added advantage for JSON.
  • JSON Does not have validator. Developer is supposed to validate what ever he gets.
  • I love the random access XML via XPath. Can i do the same thing in JSON.
  • XLink, XQuery are some of the cool things i like on the XML.
  • I can represent the entire design of a system as XMI. It has references, schema support, i can validate, etc…

In my view JSON is a great format for the internet/web applications over the browser. Its not the question of XML vs. JSON; Its the question of When XML and When JSON.

Posted in java, software, technology | Tagged , , | Leave a comment

Top 10 technologies for 2008 from Gartner

I have been always interested to see the future predictions of technologies and how they shape up the technologists and business that adopt them. Gartner has released the top 10 technologies for 2008. Surprisingly there are no surprises.

2005, 2006 and 2007 have been quite busy years for the technologies like SOA, RIA, Web2.0, Virtualization, Social Networks Enterprise Wikis and recently Mashups. Everyone would have heard of these technologies one time or the other. Enterprises have started investing on the SOA implementation even though some of the IT managers does not know what they really mean. Never-the-less, all the emerging technologies have to get aligned to the SOA. 🙂 . You can see everyone talking about their technology invention getting aligned to the SOA.

I hope that we dont get carried away by the Gartner’s top 10 technologies in 2008…

  1. Green IT
  2. Unified Communications
  3. Business Process Modeling
  4. Metadata Management
  5. Virtualization 2.0
  6. Mashups & Composite Apps
  7. Web Platform  & WOA
  8. Fabric
  9. Real World Web
  10. Social Software

Whatever it is in the end it makes sense for the enterprises to effectively use these technologies and benefit from them. Many of the small (JackBe, Kapow, …) and big (Google, IBM, …) companies that are innovating these technologies do share this responsibility of supplying the green and clean technologies to enterprises.

Posted in reviews, software, technology | Tagged , , | Leave a comment

Persist your EMF Objects with Teneo

JMatter, NakedObjects and EMF are few technologies that i have been interested recently. That fact that all these technologies allows to create the model, generate the code for UI and finally persist the UI State in Object Reational Databases, makes me get excited about these. Without the help of these frameworks, some business usecases which needs the domain model/metadata to be persisted in the databases does require a lot of hand-coding and often requires long months of implementation. JMatter and Naked Object are supposedly generate the OR mapping from the domain data to the direct database tables with the help of the Hibernate mapping.

For all the EMF and Eclipse lovers it would be difficult to change their applications to JMatter or NakedObjects.  And one reason that i do not want to do it right now is that these frameworks are yet to support the SWT and interop with EMF models. For the Object relational database persistence of the metadata and domain models i found the Teneo project from eclipse to be quite promising.

What is Teneo : Teneo is the eclipse sub-project from  EMFT, which aims at providing the database persistency solution for EMF using Hibernate or JPOX/JDO 2.0. It supports automatic creation of EMF to Relational Mappings and the related database schemas. EMF Objects can be queried and stored using the advanced queries like HQL and JDOQL.

Why use Teneo

  • Teneo allows you to start with your model (UML or XML Schema) and automatically generate the java source code and object-relational mappings.
  • Teneo takes over much (or even all) of the manual work of creating relational mapping schemes.
  • Teneo supports JPA annotations on model level, this keeps your java code clean from persistency specific constructs.
  • The integration with EMF allows you to generate Eclipse RCP editors which persist automatically to a relational database.

And More  Teneo automatically maps the EMF model to a Hibernate OR mapping. The automatic mapping can be done in-memory when your application is initialized or a separate hibernate mapping file can be generated. The generated hbm file can be adapted manually and used in the runtime layer. To handle the EMF resource management and also the Hibernate mappings, a special runtime layer called EMF-Hibernate Runtime layer was developed. Teneo takes care of instantiating the EMF Objects and getters/setters for EFeatures of EMF from database.

This project is definitely a great relief to the EMF and Eclipse developers. Now everyone can persist their models in the Databases with a cleaner Hibernate implementation.

References

Posted in eclipse, java, plugins | Tagged , , , , , , | 3 Comments

Can linux developers adopt eclipse as application developemt platform ?

Eager to shed its reputation as a tool just for Java developers, Eclipse has quickly embraced newer languages such as PHP, Python and Ruby—as well as older ones like Ada, COBOL and C. The same is not happening on the Linux side. Only 9.6% of downloads of eclipse are for Linux platform compared to 86.7% of downloads are on windows.

Jennifer deJong explain in the article “Can Linux Get a Lift From Eclipse?” about the effects of the different levels of developers on the tools coming on linux. As eclipse facilitates the development of the cross-platform application development, linux is yet to get a lot of contributions from developer world.

As Mike Milinkovich says… “To be completely honest, hard-core developers [building Linux applications] aren’t going to use Eclipse.” Linux developers have relied on command-line tools such as the text editors Emacs and vi for years and years, and those tools are ingrained in their culture, he said. “But having modern tools like Eclipse is an important enabler for the future growth of Linux.”

Its interesting to see how eclipse can shape linux’s direction. Its impressive to see that the tools developed with eclipse works the same way in windows, linux and OSX.

Posted in eclipse, plugins, software | Leave a comment

What do you do with Eclipse ?

Eclipse the ubiquitous platform has survived another challenge by releasing the Europa and the incredible download numbers speak for it. Initially it was perceived as a Java IDE  then Tool development Environment, then RCP  Platform, then Tool Integration Platform and now its an eco-system of platform, application frameworks, tools, runtimes and especially Eclipse is a universal tool platform – an open, extensible IDE for anything, but nothing in particular. The intent of the article is to highlight the different areas of the industry and how eclipse is used by different category of users.

The Eclipse open source community has over 60 open source projects. These projects can be conceptually organized into seven different “pillars” or categories:

  1. Enterprise Development
  2. Embedded and Device Development
  3. Rich Client Platform
  4. Rich Internet Applications
  5. Application Frameworks
  6. Application Lifecycle Management (ALM)
  7. Service Oriented Architecture (SOA)

The list gives a fair understanding of the different areas where eclipse is getting popular and also the business verticals, which can be transformed. It is very interesting to see what eclipse means to different people. Following scenarios give a better understanding of what can be done with eclipse (and the rest are for your imagination…)

Eclipse – Java IDE

As comprehended in early 2000 (even now after the europa release), its a Java IDE with which java developers can create, modify, debug, build the java projects. Eclipse provides different features like code refactoring, syntax highlighting, syntax/code checks, code completion, quick fix, compile/build, team integration with CVS, debug, jarring, etc… In this use-case scenario eclipse is being primarily used as Java IDE. Eclipse + JDT  = Java IDE. Eclipse Platform contains basic UI elements (swt, jface), runtime, help system, debug support, search support and some other IDE elements. Java IDE can be downloaded from Eclipse Site.

Java IDE

Eclipse – Plugin/Tool Development IDE

Along the similar lines of the Java IDE, the C/C++ development tools, PHP development tools, Cobol development tools, etc… have brought fabulous features in the Eclipse eco-system. These development tools not only improved the productivity of the developers but also Myth-Busters for many managers, developers. This gave the real meaning for eclipse, an open, extensible IDE for anything, but nothing in particular. Vendors were successfully able to adopt the Eclipse Platform and build several tools and Language Editors around it. The ground rule of “Everything is a contribution” perfectly fits in this scenario.
PDE (Plugin Development Environment) and JDT (Java Development Tools) are the ones that support and enable this use-case. A plugin can be developed, debugged, deployed with the help of these two tools. PHP Editor Plugin is developed with the help of the PDE and JDT. When a developer is using Eclipse to develop the PHP, it looks as though eclipse is a PHP IDE. In this scenario, the developer might not necessarily know that there is PDE and JDT in the eclipse that has been used. Thus depending on the user and what he is trying to achieve, the perception changes.

Eclipse + Ruby on Rails = RadRails
Eclipse + Ruby on Rails = 3rdRails
Eclipse + JDT = Java IDE
Eclipse + PHP = PHP IDE
Eclipse + CDT = C/C++ IDE
<!–[if !supportLineBreakNewLine]–>
<!–[endif]–>

IDE Framework


Eclipse – RCP

Application development requires a platform to relay upon, where an organization’s software product lines can be built. A Rich Client Platform (RCP) of eclipse uses the windowing and UI features of the underlying OS platform. It enables the application to use the native look-and-feel, native widgets, and all available UI features. In the end users and IT departments wants to have a uniform architecture, look-and-feel over all the applications. Eclipse RCP is considered as the minimal set of plugins that are required to build rich applications. In short if the SDK capabilities and Platform capabilities are removed, the resulting set of plugins would be RCP.
An interesting set of applications can be built with the help of Eclipse RCP.

Few examples from Open Source RCP applications included, but not limited to…

<!–[if !supportLists]–>·        <!–[endif]–>JPMorgan’s Banking application

<!–[if !supportLists]–>·        <!–[endif]–>Maestro – NASA Space Mission Management

<!–[if !supportLists]–>·        <!–[endif]–>GumTree – Australian Nuclear Science and Technology Organization – GumTree is an open source multi-platform scientific workbench for performing scientific experiment under a server-client environment. It provides easy-to-use graphical user interface for instrument data acquisition, online or offline data visualization and analysis.

<!–[if !supportLists]–>·        <!–[endif]–>RSSOwlApplications that collect data from RSS-compliant sites are called RSS readers or “aggregators.” RSSOwl is such an application.

<!–[if !supportLists]–>·        <!–[endif]–>Talend Open Studio 1.0Talend Open Studio is the first ETL open source software provider for data integration tools (ETL: Extract, Transform, Load)

Following are examples for Commercial plugins

<!–[if !supportLists]–>·        <!–[endif]–>Actuate BIRT Report DesignerThe Actuate BIRT Report Designer is a powerful tool for designing and deploying reports against data sources ranging from typical business SQL databases, to XML data sources, to in-memory Java objects.

<!–[if !supportLists]–>·        <!–[endif]–>BSI CRM on EclipseThis customer relationship management (CRM) solution is a fully configured RCP application to support the whole customer contact process from first contact to the successful project implementation and also retention management.

<!–[if !supportLists]–>·        <!–[endif]–>IBM Workplace Client Technology – IBM Workplace Client Technology is a strategic new IBM framework to enable the creation of server-managed rich client applications.

<!–[if !supportLists]–>·        <!–[endif]–>MyEclipse – SNAPs – Lightweight, Individual, Task-Based Developement Tools FREE as Part of the MyEclipse Distribution. MyEclipse SNAPs (Simple Non-integrated Applications) are special-purpose, Windows-integrated applications that are targeted for quick, non-IDE based development tasks.

If required, one can use plugins other than core RCP plugins e.g. one might want to use the help plugins, search plugins etc.

RCP

Eclipse – Tools Framework

Plugins makes eclipse what ever one wants it to be. For the tool integrators, this is a universal platform on which everyone can contribute and extend on. Tool development on Eclipse leverages the existing platform infrastructure to contribute and/or extend the existing functionality.

Many of such tools that are popular are like

<!–[if !supportLists]–>·        <!–[endif]–>Web Tools Project (WTP)

<!–[if !supportLists]–>·        <!–[endif]–>Eclipse Modeling Framework (EMF)

<!–[if !supportLists]–>·        <!–[endif]–>Graphical Editing Framework (GEF)

<!–[if !supportLists]–>·        <!–[endif]–>Business Intelligence and Reporting Tools (BIRT)

<!–[if !supportLists]–>·        <!–[endif]–>Test and Performance Tooling Project (TPTP)

<!–[if !supportLists]–>·        <!–[endif]–>Aptana Web2.0 IDE

<!–[if !supportLists]–>·        <!–[endif]–>MyEclipse

Tool Framework

Eclipse – Application Framework

For enterprises it makes sense to have a single application framework so that all the tools and frameworks can be built upon. Individuals and enterprises can leverage frameworks and tools provided by the eclipse eco-system and also benefit from the different release time lines of eclipse. One of the examples is to be able to create the entire development life cycle of a complex engineering activity flow of an organization in to the eclipse. Various development stages like, system requirements, software requirements, component design, function design, coding, unit testing, integration testing, system testing, delivery and finally the Issue Tracking can be integrated into Eclipse. On the technical level this transforms to writing new tools/plugins if necessary, using plugins from 3rd party vendors, using the tools and frameworks from eclipse community and finally completing the maze by integration.

Genuitec is one of the companies that extensively use the Eclipse platform and other frameworks on the eclipse to have a set of seamless integration of tools.

Innopract based its products like Yoxos and RAP on the eclipse platform.

Application Framework

Summary
Eclipse is an IDE and application framework for anything and nothing in particular. It totally depends on the user/developer’s perception and what is targeted to achieve with the help of eclipse. With the contribution rules of eclipse and platform architecture, its easy to contribute ones own functionality and/or extend the eclipse.

References :
1) Eclipse Platform Overview http://www.eclipse.org/platform/overview.php
2) Eclipse House Rules http://udig.refractions.net/help/index.jsp?topic=/net.refractions.udig.doc/html/Eclipse%20House%20Rules.html
3) Eclipse RCP Applications http://www.eclipse.org/community/example_rcp_applications_v2.pdf

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