It all sounds Geek to me! [Gautam Arora]

Saturday, May 21, 2005

Free But Shackled - The Java Trap by Richard Stallman

Here is an article by GNU guru Richard Stallman where he talks about the fact that Java developers are completely dependent on Sun, and its time the GNU get a GCJ(GNU Java Compiler with Libraries), which will lead to complete freedom for the Java coders (just what GCC did for C...)

"If your program is free software, it is basically ethical--but there is a trap you must be on guard for. Your program, though in itself free, may be restricted by non-free software that it depends on. Since the problem is most prominent today for Java programs, we call it the Java Trap."

"If some of a program's dependencies are non-free, this means that all or part of the program is unable to run in an entirely free system--it is unusable in the Free World. Sure, we could redistribute the program and have copies on our machines, but that's not much good if it won't run. That program is free software, but it is effectively shackled by its non-free dependencies."

"If you develop a Java program on Sun's Java platform, you are liable to use Sun-only features without even noticing. By the time you find this out, you may have been using them for months, and redoing the work could take more months. You might say, "It's too much work to start over." Then your program will have fallen into the Java Trap; it will be unusable in the Free World."

"We are trying to rescue the trapped Java programs, so if you like the Java language, we invite you to help in developing GNU Classpath. Trying your programs with the the GCJ Compiler and GNU Classpath, and reporting any problems you encounter in classes already implemented, is also useful. However, finishing GNU Classpath will take time; if more non-free libraries continue to be added, we may never have all the latest ones. So please don't put your free software in shackles. When you write an application program today, write it to run on free facilities from the start."

The complete article can be found here.

Note: I will refer the work in progress at the Harmony Project, and try to see if any similar objectives exist between the two.

Wednesday, May 18, 2005

Firefox Tabs: Now with IE7 too

One of my favourite and most frequently used feature in Firefox, the Tabs, will now be seen in IE7 too!

This information is derived from the IE7 blog

"Yes, IE7 has tabs.

In general, I think tabs are a great idea. I liked them a lot in Office dialogs and in Excel in the early 90's. (I used to work on Office, and I admit we almost added tabs to Word at one point.) I like them in Visual Studio. I think, as an industry, we have a ways to go in refining the experience, consistency, and value of tabs."

"The tabbed browsing experience in the upcoming IE7 beta is pretty basic. Expect additional end-user functionality to come in after the beta."

"I think we made the wrong decision here initially, and we’re making the right one now."

In my opinion, the bigger issues that M$ IE needs to handle are concerning security vulnerabilities and web standards. But i think those are not on their immediate 'To-Do list' ...

Monday, May 16, 2005

JXTA - Get Connected

JXTA™ technology is a set of open protocols that allow any connected device on the network ranging from cell phones and wireless PDAs to PCs and servers to communicate and collaborate in a P2P manner.

This open source project is licensed under the Apache Software License, encouraging others to join in the effort. The project is evolving daily.

Peer-to-peer is a style of computing that allows any device to interact with any other computer on the network. In effect, P2P turns every device into both a client and a server, enabling a much more symmetrical and decentralized communications model for applications, services and users.

JXTA (pronounced "juxta") is short for Juxtapose, as in side by side. It is a recognition that peer to peer is juxtapose to client server or Web based computing -- what is considered today's traditional computing model.

JXTA peers create a virtual network where any peer can interact with other peers and resources directly even when some of the peers and resources are behind firewalls and NATs or are on different network transports.

At its core JXTA is simply a protocol for inter-peer communication. Each peer is assigned a unique identifier (peer ID). Each peer belongs to one or more peer groups in which the peers cooperate and function similarly and under a unified set of capabilities and restrictions. JXTA provides protocols for the basic functions -- create groups, find groups, join and leave groups, monitor groups, talk to other groups and peers, share content and services -- all of which are performed by publishing and exchanging XML advertisements and messages between peers.

The JXTA protocols are a set of six protocols that have been designed for peer-to-peer (P2P) network computing. The six protocols are the Peer Discovery Protocol, the Peer Resolver Protocol, the Peer Information Protocol, the Peer Membership Protocol, the Pipe Binding Protocol, and the Peer Endpoint Protocol.

Project Objectives
  • Interoperability - across different peer-to-peer systems and communities
  • Platform independence - multiple/diverse languages, systems, and networks
  • Ubiquity - every device with a digital heartbeat


Imagine the Possibilities
  • Find peers and resources on the network even across firewalls
  • Share files with anyone across the network
  • Create your own group of peers of devices across different networks
  • Communicate securely with peers across public networks

Friday, May 13, 2005

SAP, ABAP and NetWeaver - The Buzz Words

The name SAP a German company is an acronym for "Systeme, Anwendungen, Produkte in der Datenverarbeitung." This is translated in English as "Systems, Applications, and Products in Data Processing."

SAP is an enterprise resource planning (ERP) software product capable of integrating multiple business applications, with each application representing a specific business area. These applications update and process transactions in real time mode. It has the ability to be configured to meets the needs of the business.

In a standard SAP project system, it is divided into three environments, Development, Quality Assurance and Production.
The development system is where most of the implementation work takes place. The quality assurance system is where all the final testing is conducted before moving the transports to the production environment. The production system is where all the daily business activities occur. It is also the client that all the end users use to perform their daily job functions.

The main advantage of using SAP as your company ERP system is that SAP have a very high level of integration among its individual applications which guarantee consistency of data throughout the system and the company itself.

The SAP R/3 enterprise application suite for open client/server systems has established a new standards for providing business information management solutions.

SAP/R3 is categorized into 3 core functional areas:

  • Logistics
    • Sales and Distribution (SD)
    • Material Management (MM)
    • Warehouse Management (WM)
    • Production Planning (PP)
    • General Logistics (LO)
    • Quality Management (QM)
  • Financial
    • Financial Accounting (FI)
    • Controlling (CO)
    • Enterprise Controlling (EC)
    • Investment Management (IM)
  • Treasury (TR)
    • Human Resources
    • Personnel Administration (PA)
    • Personnel Development (PD)

SAP is a table drive customization software. It allows businesses to make rapid changes in their business requirements with a common set of programs. User-exits are provided for business to add in additional source code. Tools such as screen variants are provided to let you set fields attributes whether to hide, display and make them mandatory fields.


For complex reports specifications, SAP allows you to write customize ABAP/4 programs.
ABAP/4 (Advanced Business Application Programming 4GL) language is an "event-driven", "top-down", well-structured and powerful programming language. The ABAP/4 processor controls the execution of an event. Because the ABAP/4 language incorporates many "event" keywords and these keywords need not be in any specific order in the code, and companies tend to implement in-house ABAP/4 coding standards.There is no one size fixed all software, with this in mind, SAP allows its users to create their own dialog or reports programs using the language ABAP/4.

The main purpose of using a standard business application software like SAP is to reduce the amount of time and money spend on developing and testing all the programs. Therefore, most companies will try to utilized the available tools provided by SAP.

SAP NetWeaver, the next evolution of mySAP Technology integrates information and business processes across technologies and organisations.It provides comprehensive collaboration tools and services that foster teamwork in a wide range of business processes.

Net Weaver in simple words is an application and Integration platform in which Web Services play a major role and which is open for Non-SAP applications and platform. It is used by organizations to improve productivity and enhance efficiency by making all the resources that are available in an enterprise to work collectively. The SAP customers to bring heterogeneous environments at one platform use SAP NetWeaver. In addition, it enables customers to use the already existing systems without putting in much investment.

Further in the near future, the various corporate sectors and Organizations have to take a decision for some common platform; could be Microsoft .NET, IBM Websphere , J2EE (support for this was announced later at JavaOne,2003) or SAP NetWeaver. Irrespective of the choice that they make, SAP NetWeaver is the one that integrates with all the four technologies.

Wednesday, May 11, 2005

India's Open Source License - KPL

Deepak Phatak of the Indian Institute of Technology has kicked off an effort to create the Knowledge Public License, or KPL, a licensing program that will let programmers share ideas with one another while at the same time allowing them to retain the rights to their own software modifications. The license will likely function much like the Berkeley Software Distribution or the MIT License programs.

The number of open-source licenses has exploded, leaving many in the community miffed. But Phatak's proposal comes with the power of numbers. India's 1,750 colleges with computer science and electrical engineering degrees admit about 250,000 students a year. Combined with the outsourcing boom, that makes India one of the major centers for software development.And thus, the need for an open source license to meet the Indian Developer's needs

The idea is to create an environment where developers can take advantage of the collaborative power of the open-source movement while giving individuals the ability to exploit their own twists.

He claims that such a program could also help ease the raging tensions between the open-source software movement and proprietary software companies.

"The free software people are afflicted by what I call the J factor, which is the jealousy factor. The proprietary people are afflicted by the G factor, the greed factor. They want to maximally extract money from the world, I am working to tell the world, 'Please permit these groups to coexist peacefully and harmoniously. There is a tremendous advantage to everyone.'"
:)

Borland 'NOT' open sourcing JBuilder to Eclipse

Continuing with the the focus on The Eclipse platform, on 22nd April 2005, Borland (The IDE Kings) made an announcement to donate the JBuilder to Eclipse.

According to Borland's chief executive Dale Fuller:

We will give customers something that's differentiated in the market and do it with a lot less investment on our part.

It is worthwhile to note that till last year, Borland never had any free software IDE's apart from Kylix on Linux. However the completition from Eclipse had forced them to offer a 'free' entry level product called JBuilder Foundation.The bread and butter of Borland comes from its IDEs.

So, "Is Eclipse the Commercial IDE Killer?"

Added:
When i blogged last night, the mood was very upbeat as i felt that one giant had been brought down in this battle of IDEs.This news had been creating quite a ripple all around, with references on many sites, blogs and forums.
This news item was reported on 22nd April, 2005 on 'TheRegister' .
Borland on May 12, 2005 has come out in the open and issued a statement that it will NOT be open-sourcing JBuilder.

"A recent article in TheRegister.com has been causing some confusion about Borland’s future plans for JBuilder. The reporter clearly misinterpreted comments from our recent earnings call and, with no input from Borland, wrote a story that we had decided to open source JBuilder.
....................
To be clear, we are not open sourcing JBuilder. JBuilder will continue to be offered, supported and enhanced as a commercial product. As we announced in February at EclipseCon, we will contribute to the Eclipse community (in areas like modeling), and also plan to leverage the openness and extensibility of the Eclipse Rich Client Platform as an integration framework for JBuilder.
...................

Sincerely,
Erik Frieberg,
Vice President of Product Marketing
Borland Software Corporation"

What would have Eclipse done with the JBuilder anyways ? ;)
This blog item has been quite a ride, and who knows what more might unfold in the days to come. Till then, Eclipse marches ahead... :)

Java GUIs - From AWT to Swing to SWT ?

Face it, you need to make GUIs. If you're building applications that other people are going to use, you need a graphical interface. If you're building programs for yourself, you want a graphical interface.
-Head First Java

SWT (Standard Widget Toolkit) is a graphics library and a widget toolkit integrated with the native window system (especially with Windows but Linux and Solaris are supported as well). Despite the tight integration with the native target platform, SWT is an OS-independent API. SWT can be seen as a thin wrapper over the native code GUI of the host operating system.

At a higher level of abstraction, also a part of the Eclipse platform, lies JFace. This is a GUI library, implemented using SWT, that simplifies common GUI programming tasks. JFace is independent of the given window system, in both its API and implementation, and is designed to work with SWT, without hiding it.

SWT is originally from IBM, now being developed by the Eclipse Foundation.
Eclipse is an open-source, IBM-sponsored, fully extensible IDE, built using Java and SWT. SWT originated as Eclipse's GUI library, but it can be used outside it as a an alternative GUI library to both Sun's AWT and Swing.

Note: Swing(The reference GUI toolkit for J2SE) is a graphics library for Java. Swing is one part of the Java Foundation Classes (JFC). Swing includes graphical user interface (GUI) widgets such as text boxes, buttons, split-panes, and tables.


Arguments in favour of SWT development

Those who support SWT observe that:

1. When developers of an operating system change its look and feel, Swing must be manually updated to match the changes. This tends to cause Swing's look-and-feel to lag behind that of the native operating system.

2. Despite the fact that it might be possible for Swing to support native operating system themes, this support has not been fully implemented. Consequently, when an end-user chooses an operating-system theme other than the default, Swing applications will look and feel different from the rest of the applications on that computer.

3. End-users can often detect when an application is written using Java and Swing. The same is not true of applications written using Java and SWT unless the developers go out of their way to make their application look or feel different from native applications. (Recently, the Eclipse 3.0 developers have done this.)

As a consequence of the above, SWT proponents contend that:

1.Having a native look-and-feel by default enables SWT applications to be accepted by customers who want all of their applications to look and behave the same way.

2. Consequently, SWT gives Java a second opportunity to succeed as a platform for creating rich-client desktop applications where Swing has not yet succeeded.

Criticisms of SWT

Critics of the SWT toolkit point out that:

1. Performance of Swing is improving with every release and on certain platforms the balance of toolkit speed is very much in Swing's favour;

2. Swing has completely extensible platform support and improving the look-and-feel is perfectly possible by end-users. There is no theoretical reason why Swing should lag behind operating system support generally, since the files needed by the system to determine the installed theme can equally easily be read by Swing. For demonstration, the Eclipse IDE has been rendered (http://www.jgoodies.com/freeware/metamorphosis/) in Swing;

3. The programming model of SWT inherits strongly from that of a traditional Microsoft Windows application. This makes it extremely challenging to create a high-quality, highly-performant port of SWT itself to new windowing systems. Although a few of these ports do exist, only extremely talented programmers have been able to create them.

4. In order to support SWT as a part of the standard Java Development Kit, every Java licensee would have to include a SWT native library. For platforms that do not already have a port of SWT, this would present a significant barrier to entry. (For platforms that already have an SWT port, Java licensees could simply bundle the existing SWT port since SWT is developed under a commercially-friendly open-source license.)

The battle of the Java GUIs is far from over...

Links:
SWT Sightings - Volume 1
Swing Sightings Index

Sunday, May 08, 2005

The Eclipse Platform - Not just an IDE

What is Eclipse?
Eclipse is an open source, Java-based, extensible development platform. By itself, it is simply a framework and a set of services for building a development environment from plug-in components. Fortunately, Eclipse comes with a standard set of plug-ins, including the Java Development Tools, or JDT for short.



While most users are quite happy to use Eclipse as a Java IDE, its ambitions do not stop there. Eclipse also includes the Plug-in Development Environment (PDE), which is mainly of interest to software developers who want to extend Eclipse, since it allows them to build tools that integrate seamlessly with the Eclipse environment. Because everything in Eclipse is a plug-in, all tool developers have a level playing field for offering extensions to Eclipse and providing a consistent, unified integrated development environment for users.

This parity and consistency aren't limited to Java development tools. Although Eclipse is written in the Java language, its use isn't limited to the Java language; for example, plug-ins are available or planned that include support for programming languages such C/C++, COBOL, and Eiffel. The Eclipse framework can also be used as the basis for other types of applications unrelated to software development, such as content management systems.

The premiere example of an Eclipse-based application is IBM's WebSphere Studio Workbench, which forms the basis of IBM's family of Java development tools. WebSphere Studio Application Developer, for example, adds support for JSPs, servlets, EJBs, XML, Web services, and database access.

Who is Eclipse?
The Eclipse.org Consortium manages and directs Eclipse's ongoing development. Created by IBM after reportedly spending $40 million developing Eclipse and releasing it as an open source project, the Eclipse.org Consortium recruited a number of software tool vendors.

Eclipse Architecture:


The Eclipse Platform is a framework with a powerful set of services that support plug-ins, such as JDT and the Plug-in Development Environment. It consists of several major components: the Platform runtime, Workspace, Workbench, Team Support, and Help.

Platform
The Platform runtime is the kernel that discovers at start-up what plug-ins are installed and creates a registry of information about them.
Workspace
The Workspace is the plug-in responsible for managing the user's resources.
Workbench
The Workbench provides Eclipse with a user interface. It is built using the Standard Widget Toolkit (SWT) and a higher-level API, JFace.The SWT has proven to be the most controversial part of Eclipse. SWT is more closely mapped to the native graphics capabilities of the underlying operating system than Swing or AWT, which not only makes SWT faster, but also allows Java programs to have a look and feel more like native applications. The use of this new GUI API could limit the portability of the Eclipse workbench, but SWT ports for the most popular operating systems are already available.
Team support
The team support component is responsible for providing support for version control and configuration management.
Help
The help component parallels the extensibility of the Eclipse Platform itself. It provides an add-on navigation structure that allows tools to add documentation in the form of HTML files.

Future of Eclipse:
A critical mass is developing around Eclipse. Major software tool vendors are on board, and the number of open source Eclipse plug-in projects is growing every day.
A portable, extensible, open source framework isn't a new idea, but because of its mature, robust, and elegant design, Eclipse brings a whole new dynamic into play.

Posted by Hello


Note: The OMONDO EclipseUML plugin provides UML modelling capabilities like Reverse Engineering the code to draw Class Diagrams.

Tuesday, May 03, 2005

Sun's New Look and Old (and some Useless Statistics)

All Java and Solaris Geeks who frequent the Sun website will be in for a surprise. Check out the 'New Look of the SUN Website'!

The old style can still be caught at 31 of their 62 Wordwide sites. So 50% of their sites still need to be updated to the 'new' style.

Argentina
Australia
Brazil
Chile
Colombia
Commonwealth Of Independent States
Czech Republic
Denmark
Hong Kong
INDIA
Indonesia
Israel
Japan
Korea
Malaysia
Mexico
Netherlands
New Zealand
China
Philipines
Poland
Russian Federation
Singapore
Slovakia
South Asia Region
Spain
Taiwan
Thailand
Ukraine
Venezuela


Note:
Regions/Countries having the same website as that of another region/country are considered to be 'updated' if the former is updated.


The Old Sun.com


The NEW Sun.com

Posted by Hello

Sunday, May 01, 2005

Mobile Graphics 3D API (JSR-184)

Mobile Gaming has become big money internationally for both the developers and the gamers. With better processor speeds and graphic display support for mobiles, the gap between computer and mobile apps seem to be thinning. Mobile gaming is one of the fastest growing sector in the IT industry.

With Big fun and Big money, mobile gamers seem to be enjoying the ride too. Take the case of 'Sachin Sapra- India's First Millionaire Gaming Champ'!

So what could be next for Mobile Gaming that would inch them closer to PC gaming, 3D support, of course!
Nokia 6630, Nokia 6230i etc. support the 'Mobile 3D Graphics API (JSR-184)'. This provides endless possiblities of new applications for mobiles.

JSR-184 is the first Java-specific standard for three-dimensional graphics on mobile devices.
The API defines low- and high-level programming interfaces that bring efficient, interactive 3D graphics to devices with little memory and processing power, and with no hardware support for 3D graphics or floating-point operations.

Posted by Hello


The Mobile 3D Graphics API for J2ME is defined in the package javax.microedition.m3g, which provides an easy-to-use API for rendering 3D graphics in retained mode and immediate mode.In addition to the APIs, the package defines a scene graph structure and a corresponding file format for managing and deploying 3D content efficiently, along with all other necessary data: meshes, scene hierarchies, material properties, textures, animation keyframes, and so on. This data is written to a file using content-creation tools and loaded into the API through the Loader class. The most important class is Graphics3D, because all rendering is done there. The World class serves as the root of the scene graph structure. Object3D is the base class of all objects that can be rendered or loaded from a file, as well as the place where animations are applied.

Posted by Hello


Application areas that will benefit from a 3D graphics API include games, map visualization, user interfaces, animated messages, and screen savers. Each of these areas requires simple content creation, some require high polygon throughput, and others require high-quality still images with special effects. To meet this wide spectrum of needs, the API supports both high-level and low-level graphics features, with a footprint of only 150 KB. In the high-level implementation (called retained mode), the developer works with scene graphs, and the world renders itself based on the positions of virtual cameras and lights. The low-level access (immediate mode) allows applications to draw objects directly. You can use either mode, or both at the same time, depending on the task at hand.

The features of immediate mode are aligned with OpenGL ES ("OpenGL for Embedded Systems") standardization by Khronos.

Links to follow:
Getting Started With the Mobile 3D Graphics API for J2ME
Utilizing 3D Graphics in MIDP - Mobile 3D Graphics API (JSR-184)
Benhui.net - The harmony of mobile development
Nokia 6630 Technical Specs (Series 60 v2.0)
Nokia 6230i Technical Specs (Series 40 v2.0)

Note:
Series 40 Developer Platform:The Developer Platform for Series 40 offers a mass-market opportunity for Java™ developers and content creators. Developer Platform 2.0 builds on the capabilities of Developer Platform 1.0 by providing CLDC 1.1, MIDP 2.0 with Bluetooth (JSR-82), Messaging (JSR-120), and Multimedia (JSR-135) APIs; XHTML MP and WML browsing over wTCP/IP; MMS with SMIL; OMA DRM, and OMA Client Provisioning.

Series 60 Developer Platform: Based on the state-of-the-art Symbian OS v9, this next generation version of the world's most popular smartphone platform is packed with features and capabilities that let developers reach new markets, bring better performance to their applications, and improve application integrity.