Showing posts with label Software. Show all posts
Showing posts with label Software. Show all posts

Sunday, December 2, 2012

Speech Recognition in Automobiles

I wrote this in 2004 when I purchased a car with Voice Activated controls. It was amazing back then.

Speech Recognition in Automobiles

I am alone in my car cruising from Carmel, Indiana to Purdue University in West Lafayette, Indiana for a weekend class. It’s early in the morning and I wonder if I will make it to class on time. After about ten minutes on interstate 65, I ask impatiently “How long to the destination?” Honda’s advanced navigation system gears into action; it promptly queries the Global Positioning System (GPS) satellites and local GPS repeaters for the vehicle’s current co-ordinates. It then averages out the expected speed based on current averages on the interstate, state roads and inner streets and responds back in a pleasant natural female voice “It is about forty two minutes to the destination”. I am definitely going to be late for class.

Speech recognition technology, once a domain of fantastic science fiction, is a reality today. This technology has begun to touch our lives on a daily basis in our automobiles. A recent article (Rosencrance, 2004) reports on the speech recognition technology in Honda automobiles. The system has the ability to take drivers’ voice commands for directions and then respond with “voice-guided turn-by-turn instructions, so they don't have to take their hands off the wheel” (Rosencrance, 2004), said Alistair Rennie, vice president of sales for IBM's pervasive computing division. Rennie added that this “goes significantly beyond what was done before in terms of being able to deliver an integrated speech experience in a car” (Rosencrance, 2004).

Using IBM's Embedded ViaVoice software the system can recognize spoken street and city names across the continental United States (Rosencrance, 2004). The system recognizes almost every task a driver may want to accomplish while on the road. Commands that can operate the radio, compact disk (CD) player, climate control, defrost systems. It can recognize more than 700 commands and 1.7 million streets and city names. All this is possible without the driver looking away from the road.

clip_image002

(Figure 1)

“Display on” I prod along. The in-dash LCD screen lights up (see Figure 1). I glance at it for a second – there is a map of the state of Indiana and a symbol inching up north towards the destination - a red bull’s eye on the electronic map. I will get there soon. I say “XM Radio Channel twenty”. The integrated satellite radio starts up and plays high quality music.

Automobiles that leverage speech recognition technology are not only making vehicles more attractive to car buyers but also make the roads safer by allowing the driver to never have to take their eyes off the vehicles. Research conducted by the National Highway Traffic Safety Administration (NHTSA) found that automatic speech recognition (ASR) systems distracted drivers less than graphical user interfaces in vehicles performing the same function (Lee, Caven, Haake & Brown, n.d).

Not before long the speech system fades down the music volume and then articulates in the same pleasant voice “Exit approaching in two miles – stay to the right”. The ‘exit mile countdown’ goes on every half a mile until the car actually takes the exit. In about ten minutes I pull into the parking lot. I am running late by ten minutes – the class has probably begun and the exam papers probably handed out to the cohort. Before I turn off the engine, I finally ask, “Will I make a good grade?” There is no response from the system this time.

Sunday, November 25, 2012

Iris Recognition–Identity & Authentication through Biometrics

I did some research at the technology lab at the Purdue University West Lafayette Campus in 2004 and wrote this paper:

Poets have romanticized the eyes over centuries. The beauty of the eyes has been voiced through civilizations. Many songs have been written about them, all aspects of the eyes have been glamorized. The Egyptians ceremoniously decorated the eyes, the Hindus apply kajal to highlight the eye contours, and the western civilizations called eyes the window to the soul.

Researchers today look at the eyes with from a different perspective. One such researcher is Richard P. Wildes. He looks at human eyes to identify people. The biometric based technology is called iris recognition. It is suggested that the iris is as distinct as a fingerprint or the patterns of retinal blood vessel.

In the 1997 article, Wildes investigates the iris relative to uniqueness and identification. He explains the structure of the eye and what makes the iris unique and identifiable with repeatability. He states:

The iris is composed of several layers. Its posterior surface consists of heavily pigmented epithelial cells that make it light tight (i.e. impenetrable by light). Anterior to this layer are two cooperative muscles for controlling the pupil. Next is the stromal layer, consisting of collagenous connective tissue in arch-like processes. Coursing through this layer are radially arranged corkscrew-like blood vessels. The most anterior layer is the anterior border layer, differing from the stroma in being more densely packed, especially with individual pigment cells called chromataphores.

The multi-layer structure of the iris together gives it the unique appearance. Wildes (1997) cites literature which states that the appearance of the iris does not change with the age of the individual. This is important because repeatability is guaranteed across longitudinal sections of studies and research. Also there is guarantee that the iris will remain relatively unchanged for recognition purposes.

Wildes (1997) explains the process of image acquisition, iris localization, pattern matching and recapitulation. He states that the “major challenges of automated iris recognition is to capture a high-quality image of the iris while remaining noninvasive to the human” (Wildes, 1997, p. 1351). He explains the problems associated with iris illumination when the acquisition of the image is to take place and compares the illumination approach adopted by Daugman, LED-based, with his own which is a diffuse source and polarization in conjunction with a low-light camera (Wildes, 1997, p. 1353).

Wildes (1997) also explains the issues with iris localization, he states:

It is necessary to localize that portion of the image derived from inside the limbus (the border between the sclera and the iris) and outside the pupil. Further, if the eyelids are occluding part of the iris, then only that portion of the image below the upper eyelid and above the lower eyelid should be included. Typically, the limbic boundary is imaged with high contrast, owing to the sharp change in eye pigmentation that it marks. The upper and lower portions of this boundary, however, can be occluded by the eyelids. The pupillary boundary can be far less well defined. The image contrast between a heavily pigmented iris and its pupil can be quite small.

Wildes (1997) explains further, that while the pupil typically is darker than the iris, the reverse relationship can hold in cases of cataract. He talks about the eyelid contrast as a variable which depends on the relative pigmentation in the skin and the iris. The irregularities of the eyelid boundary due to eyelashes can cause difficulty in localization of the iris. It is obvious that the localization of the iris is no simple matter. There are lots of variations in the process of capturing the iris.

The iris recognition system proposed by Wildes (1997) uses four goodness-of-match measurements that are calculated by the previous stage of processing. It becomes possible to conduct 1:1 comparison and 1:N matching. It is possible to enroll an individual without invasion; just a video camera can capture enough detail to recognize the individual under scrutiny or observation.

It is quite amazing that biometrics of the eye have enabled automated systems that realize the potential of a century old suspicion that the iris can be used to recognize human beings. Wildes (1997) has contributed significantly to the field of iris recognition and moved the field of biometrics one step further.

Saturday, November 10, 2012

COTS or FOSS for Emerging Economies

Introduction

I do not agree with any position that suggests open source software is an attractive option for emerging technologies. Although emerging economies may choose to adopt open source software, the primary driver for that adoption is not free software. The cost differential of open source alternatives to available commercial alternatives is not significant enough to affect national economies or drive decision of corporations in those economies.
In this paper I explore the definition of open source software, its primary drivers for adoption in industry and the open source business model. I hypothesize that open source software is a collaborative software development model that owes its success to quality, security, openness and extensibility but not low price alone. Also, I augment to the hypothesis: open source is not targeted for emerging economies or markets alone; rather open source is targeted at the whole world and any adopter.


Open Source and the Internet
This is the beginning of a historical era in collaborative development. The minds of top software developers are converging on global digital networks to produce high quality software for free.
The Internet has created synergies of geographically dispersed minds to collaborate and develop open source software (Jesiek 2003). And they distribute the software and its source code for free. The Internet has made open source collaboration and distribution fast and easy. In a September 2003 article, Jesiek expands “proliferation of computing technologies and the concomitant growth of global information and communication networks are very significant historical movements”.
Open source is guided by the motivations, creativity, and desire of the software contributor. It is a product of community culture. It is a movement that is technical, political and sociological. The movement is not confined to a limited group of products or people but is rich in breadth and depth; it is a treasure chest teeming with technologies and best-practice methods (Gustafson, Koff n.d.).
The Open Source Community
“The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, (and) people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.” (opensource.org)
A survey by Boston Consulting Group in 2002 of developers using SourceForge found that respondents were, on average, 30 years old and had 11 years of programming experience. These were experienced professionals contributing to quality software products for free. What motivated them to do this?
Community credibility is an underlying motivator for joining an open source project. The lure of open source includes solving technical challenges; drawing of making a contribution the rest of the community can use; the enhanced skills and reputation (marketability) that comes from being an active member of the community; and the potential for providing fee-based services for open source software. Developers are motivated by the opportunity to branch out and work with products they don’t normally work with in their day jobs – say, video programming – and they are also motivated by pure fun (Gustafson and Koff).
Open Source versus Commercial Software

Open source is being adopted by developed nations and corporations at a greater pace than developing economies. Organizations of all kinds are consciously adopting open source software for critical business needs: Deutsche Börse Group, Deutsche Bank, the Danish government, BlueScope Steel, NASA, the Associated Press, J.P. Morgan Chase and Google.
There have been many government initiatives around open source software, as governments in Brazil, China, India, Korea, Japan, Europe, Australia and the United States, as well as the United Nations, considers open source policy and options. And large information technology vendors such as IBM, Intel, Hewlett-
Packard, Oracle, SAP, Sun Microsystems and Dell are supporting open source (Gustafson, Koff n.d.).

What is the catch? Like all software – open source too has its costs. Maintenance and support costs are left to the adopter to absorb. Koch (2003) elaborates, just because you download open-source applications for free doesn't mean you won't have a whole host of associated costs such as maintenance, integration and support.
Since open source software can be traded in markets just like any other kind of artifact one cannot definitely tag open source software as having zero price, explain Scacchi (2003). Programmers often explain this seemingly incongruity with simple shorthand: when you hear the term “free” software, think “free speech” not “free beer”; or ‘software libre’ not ‘software gratis’.

Adopters must be able to bare the hidden costs associated with open source software. The success of open source software is surprisingly not attributed to its zero monitory cost of purchase. Schadler (2004) attributes the success of open source to high availability, self-training opportunity, and support. He contrasts this with commercial software and underlines the non-availability of software and self-training.

Not only emerging economies, but all types of economies and corporations may adopt open source software. Just as free speech is not intended primarily for oppressed dictatorships, in the same way open source is not intended for poor or developing nations and economies. Although open source is free, it is not free of obligations and lack of guaranteed support. This makes it less attractive for emerging economies.
The fact that open source software is free can be confusing to skeptics and adopters. Scacchi (2003) explains the meaning of “free” in open source software. He elucidates that “Proprietary source code is the touchstone of the conventional intellectual property regime for computer software. Proprietary source code is supposed to be the fundamental reason why Microsoft can sell Windows for around $100 or why Oracle can sell its System 8 data management software for many thousands of dollars”. Open source software process “inverts this logic” (Scacchi 2003).It differs from commercial software in one fundamental aspect – source code is distributed with the runtime binaries of open source products. All documentation, source code and the runtime binaries are provided by the development community for free.
Licensing can be tricky for smaller companies who are vulnerable to lawsuits through lack of indemnity in open source products. The “as-is” aspect of open source software is risky. There is a possibility that part of open source software “copied code” from some other licensed product. It is very difficult for the companies to identify or compare open source with licensed software products to identify theft. This exposes the company using open source software to lawsuits from companies claiming that the open source software violates their intellectual property rights. New markets and emerging economies should take note of this risk.



Open source success

Open source software will disrupt commercial software markets with low-cost, good-enough components (Schadler 2004). But low cost of open source is not the primary driver; the combined value proposition of zero cost of open source in conjunction with good quality software makes open source a global movement of such proportion. Software developers strive for heroism, and a few have attained cult status.
"Heroism in these communities means proposing an interesting improvement and getting everyone to acknowledge it," says John Sarsgard, vice president of Linux sales programs at IBM in Armonk, N.Y. "That's the way these guys get their strokes—everyone recognizes that their way of doing it is the best way." When security bugs are revealed in Linux or Apache, for example, the community begins posting fixes on the Internet within hours.
At first glance, open source and security appear to be an oxymoron, but in fact they are highly compatible: the very openness of the software ensures rigorous review and testing, bolstering security. "The open source community is in a better position to provide secure code than proprietary vendors because there are so many people reviewing the code.” Jason Arnold, program manager of CSC’s H.E.A.T. security product.
King (2004) reports that weather.com site serves more than 50 million pages on stormy days, and it runs almost entirely on open-source software and commodity hardware. The Atlanta-based Web site’s adoption of a new architecture and open source products “has slashed IT costs by one-third and increased Web site processing capacity by 30%” (King 2004). However cost slashing was not their primary goal of switching to an open source product.
The quality of open source products was its main “selling” point. King (2004) describes Weather.com’s transition from IBM’s server software product to open source Apache Tomcat to run their website. There were several problems that the team encountered with IBM WebSphere. Performance and scalability issues were cited as the main reasons for switching to Apache’s web server.
The team switched from IBM’s commercial offering to Apache’s open source implementation primarily for its quality. Apache’s open source web servers today host 68% of web servers in the world according to an August 2004 analysis of Netcraft (Gustafson, Koff).
There is a general trend of major corporations switching to open source. In a November 2002 CIO survey of 375 information executives, 54 percent said that within five years open source would be their dominant server platform (Koch 2003). Not cost, but openness, security and quality seem to be the primary drivers of adoption.
Adoption of Open source

In a survey of over 500 development managers conducted in December 2003, 61% expected a savings of less than 10% if they switched to open source Linux (Evans Data Corporation 2004). Adoption of open source technologies differs from the adoption process of commercial software. Open source application components and commercial application components differ dramatically when it comes to benefits, decision process, and challenges (see Figure 1).

Figure 1
Adoption of open source technologies is a critical function of an IT shop – these decisions need to be made by highly trained and qualified individuals, not usually part of emerging economies.
The operating systems market has seen a rise in adoption of open source operating systems – namely Linux. Experts claim that Linux is a threat to the dominant Windows operating system even though Windows is much more user friendly than is Linux. Microsoft’s own history with Apple demonstrates that “good enough” cheap technology with broad market support can win over a superior technology. And in this case, good enough and cheap is Linux – not Windows. (Schadler 2003).
Users of the Linux operating system are generally highly skilled individuals. They are usually expensive to hire. Such skilled labor is hard to find and hire in emerging economies ort small companies. However, for developed economies Linux is a good choice because funds for training are generally available and it is easier to find and hire such talent. Most computer related jobs can be filled with lower paid, "windows
operators" rather than skilled labor or specialists (Woollet 2004).

Innovation is a key factor for corporations to look outside its own walls. Galli explains in a recent 2004 article that the primary driver for Sun to release Solaris (based on SCO’s Unix kernel) as open source is to leverage the large community of developers to further innovate its own product. Sun's goal is to use the open-sourcing of Solaris to drive a turnaround of the company's software business, which has lost mind share, if not market share, in the Linux and Windows crossfire.
The combined intellectual power of the open source community is unparalleled by any corporation. Sun recognizes this and wants to foster a better internal software development process, work more closely with the community and then be able to drive innovation outside its own walls, increasing Solaris' penetration and pushing it into new markets, executives said (Galli 2004).
Other software vendors watch nervously as open source components like JBoss and MySQL move into their core markets as well. These same vendors also use open source as a weapon for disrupting markets that they don't control. For example, SAP supports MySQL precisely because it wants to commoditize the database tier, and IBM supports Eclipse precisely because it doesn't dominate the developer tools market (Schadler 2004). Hewlett-Packard's agreement with MySQL and JBoss to certify, support and jointly sell their open-source software solutions will broaden interest in open source (Natis, Weiss, Strange, Feinberg. June 2003). Most major software players have found vested interests in supporting open source software.

The Microsoft Approach

Still feeling the pressure from Linux and other open-source software competitors, Microsoft Corp. is reaching out further to the open-source community with offers of joint development and testing. But it's not yet clear if anyone is ready to listen. Josh Ledgard, a program manager on Microsoft's Visual Studio community team, wrote on his ‘blog’ that he is working to enable more collaboration of the open-source type with the developer community and Microsoft (Galli Aug 2004).
Microsoft Corp. says it is looking to turn over more of its programs to open-source software developers, playing a greater role in a process that the Redmond-based company has criticized strongly at times in the past.
Money-makers like the Windows operating system and Office productivity suite aren't on the table. But the company has so far released two software-development tools to the open-source community, and it wants to continue the practice, a Microsoft platform manager told an industry group this week (Bishop 2004). While Microsoft is testing the waters it is not clear whether the open source community is ready to embrace the monopoly.
Conclusion

The motivation for developing open source software is not to provide free software to poor nations or be embraced by new markets– it is a techno-sociological movement that has no specific intended audience or adopter.
There is nothing that stops emerging economies to adopt open source, however open source comes with standard software maintenance costs, demand steep learning curves, and require bright (and highly paid) knowledge workers, and comes with no warranty or indemnity. This makes open source adoption by emerging economies not as attractive as it seemed at first glance.



























































Thursday, November 8, 2012

Windows 8 – For Programmers

I installed the Windows 8 32-bit operating system on my 5 year old T61 with 4GB RAM.

I upgraded it from Windows XP that I had for a couple years because I could not use Ubuntu anymore due to Netflix and iTunes not being interoperable.

The Live Tiles may be ok for a tablet with touch screen – but it is not good for programmers who are usually “keyboarders”.

You can of course disable Metro:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer : RPEnabled=0

will disable it.

However, I wanted to see if I could continue to use Metro and still have the speed and resource utilization of XP.

So the first thing I did was “optimize for performance” – this can be done from My Computer>Properties>Advanced .. > Performance

Next, I made the Windows key my friend. So Hitting the Windows Key gets you in in and out of tiles much faster than a “swipe” of the mouse etc.

 

Windows 8 Keyboard Shortcuts

http://howto.cnet.com/8301-11310_39-57390299-285/23-new-keyboard-shortcuts-for-windows-8/

A great blog: http://blogs.windows.com/windows/b/windowsexperience/archive/2012/03/08/getting-around-in-windows-8.aspx

http://sdrv.ms/xjdwY7 (Shortcut to SkyDrive link for PDF of shortcuts)

image

On another note – the whole Horizontal Scrolling of Windows Apps will be a nightmare for usability folks who have built applications to flow north-south. I like change – let’s see how others feel after a year or so.

Monday, October 15, 2012

COTS versus FOSS

COTS, FOSS or FOSS+Support. Which one should you choose.

The answer: it depends. (Surprise)

Just because various software vendors don't invest in cross-platform software development doesn't mean you can't migrate to a new platform. COTS doesn't necessary mean vendor-locking, FOSS doesn't necessarily mean vendor independence and open standards.

This is the nature of competition between Free Open Source Software (FOSS) initiatives and established Commercial Off-The Shelf (COTS) Software manufacturers. Executives are faced with immeasurable intangibles and difficult decisions for IT investment. There are many ways to crack the puzzle.  Here are 5 important things to ask yourself:

Ease of Integration: Open Standards - do you need the solution to be flexible and have ease of integration?
Flexibility and extension: Do you predict a need to extend internal components or extend the core product?
Supportability - do you have internal IT operations that need to support the solution ? Do you have skills in-house to support and diagnose?
Cost - does it make sense to buy a product versus the support costs of FOSS?

These are a few factors that need to be evaluated. Solution architecture evaluations require a deep dive into specifics. ATAM(tm) is a framework for architecture evaluations that I have used, I plan to get certified and use it officially in engagements in the future.  It is a valuable guide to generate a Utility Tree and evaluate Quality Attributes. More to come ....

Tuesday, October 9, 2012

Error Handling on your Web Presence is Important

InoxMovies.com

showed me the following error message

Server Error in '/' Application.

Server was unable to process request. --> Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.Services.Protocols.SoapException: Server was unable to process request. --> Object reference not set to an instance of an object.
Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[SoapException: Server was unable to process request. --> Object reference not set to an instance of an object.]
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +431766
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +204
WebReference.SeatBook.ShowSeats(Int64 TheatreId, Int64 BookingId, String ShowClass, Int64 NoOfTickets, String PartnerId, String PartnerPwd) +195
seatlayout.Seat_Layout() +743
seatlayout.Page_Load(Object sender, EventArgs e) +3161
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627





Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3082


This is an example of what not handling Exceptions does to the user experience.

Wednesday, October 19, 2011

Java SE Security APIs and Frameworks

 Java SE has a deep foundation for security – there are a variety of APIs and frameworks that plug on top of various security impls.

  1. JAAS: Java Authentication and Authorization Services
  2. GSS: Generic Security Services. Think Tokens.
  3. JCE: Java Cryptography Extension. Keys and Ciphers.
  4. JSSE: Java Secure Sockets Extensions. SSL and TLS.
  5. SASL: Simple Authentication and Security Layer. Layer between Client and Server – describes the how. RFC 2222

 

TLS (SSL) is a point-to-point, transient only solution which provides no context, discrimination to content. Authentication, confidentiality and integrity is provided.
MLS (Message Layer Security) is an end-to-end security because it stays encrypted at rest and in motion. It is encrypted by the sender and can only be decrypted by the intended recipient. It does not depend on the transport layer.

Realm is the complete database of users and group, a user is an individual, a group is a collection of individuals, each group or individual can be assigned a key to the locks (aka role). In Java EE you can specify whether to propagate a client identity to the bean container or specify a run as. There is no choice either way but to trust the identify – as there is not authentication data propagated just the identity.

The EJB interoperability protocol is based on IIOP/GIOP 1.2 and CSIv2 (Common Secure Interoperability protocol).

Thursday, October 13, 2011

XML Processing in Java EE 5

All of the new Web Services API requires XML processing. Thankfully there have been changes to how Java EE will handle that as well with a fresh batch of updates.


JAXB 2.0: Improves vastly over JAXB 1.0

W3C XML Schema features (fixes missing bindings)

Adds javax.xml.bind.annotation and supports Java-to-XML binding.

Reduction in generated schema-derived classes.

Validation via JAXP 1.3 validation APIs

Smaller runtime binaries.

Schema compiler, Schema generator and Binding runtime framework.

JAXB 1.0 allowed validation: at unmarshall time, and on-demand validation on the content tree. JAXB 2.0 allows validation at marshall time and unmarshall time.


Streaming API for XML (StAX)

StAX is the all new efficient API for XML, it has a lot of great features:

  • Stream-oriented
  • Event-Driven
  • Pull-design
  • Read/WriteYou can create fast, light-weight, bi-directional parsers that is easy on the heap.
    JAXP (Java API for XML Processing) family includes StAX, TrAX, SAX, and DOM. StAX is good for low memory and limited extensibility applications.
    Pull Parser – simpler than SAX, more memory efficient than DOM.
    SAX can’t write – and isn’t bidirectional. DOM is way more powerful and flexible. One would dump SAX for StAX. An iterative pull parser – stax, an event driven push parser – then go for SAX.
    I can’t see anyone using SAX anymore. Why would you? Unless you don’t want a cursor and iterator concept in your code – or you simply hate procedural and believe everything should be read-only events for XML processing. XMLStreamReader or XMLEventReader are the Cursor and Iterator APIs – well, Iterator APIs can do things a Cursor cannot do: Iterator is more extensible and flexible. Cursor is efficient, performant and memory friendly – ideal for small JVMs and JME

        Wednesday, October 12, 2011

        JAX-WS in Java EE 5

        JAX-WS: Java API for XML Web Services. Does message oriented as well as RPC oriented services. Hides complexities of SOAP. No need to generate or parse SOAP messages (or understand the structure or format).

        The JAX-WS endpoints must be annotated with @WebService or @WebServiceProvider. The business method must be annotated @WebMethod – a Service Endpoint Implementation (SEI) will be generated for this. JAXB compatible parameters are required.

        Um, if you think Web Services or Clouds are NOT important, I hope the following stat will convince you.

         

        The Client needs @WebServiceRef – the reference to the service (or wsdlLocation). Get the port from the service and then invoke the exposed method on the service. Yes you need the interface to the service.

        JAX-WS 2.0 Support WS-I Basic Profile Version 1.1, SOAP 1.1 and WSDL 1.1.

        There is support for doc/lit, rpc/lit, static ports, dynamic proxies, and DII.

        All in all JAX-WS seems like a winner!

        Well, can you still use SAAJ? Yes – it gives you direct access to the SOAP protocol and the SAAJ 1.3 API supports SOAP 1.1 and SOAP 1.2 specifications.

        <Message>

        <Part>

        <Envelope>

        <Header>

        </Header>

        <Body>

        </Body>

        </Envelope>

        </Part>

        </Message>

        You can have Attachment Parts as peers to the Part. all Under the soap message but outside the envelope.

        The attachment part will contain MIME headers and the content (any).

        Um – BTW – you can use JAX-B to send SOAP Attachments too – so why would you want to bother with the SAAJ APIs is going to remain a mystery. But it’s there.

        Sunday, May 1, 2011

        5 Things Ubuntu STILL needs your support on

        I have been an avid Ubuntu user for 4 years and Linux user for 10, there have been significant several improvements over the years that have made it a pleasure to use Linux 80% of the time.

        But listing these will help guide the next few releases and help early adopters understand the risks.

         

        TOP 5 Missing Features in UBUNU (and Linux)

        5. Speed

        Ubuntu boots up way faster than Windows XP, Vista and Win7. However, once Gnome (or KDE) startsup the user-perception of performance lags. Ubuntu/Gnome and Kubuntu are markedly slower to start applications than Win Xp or Win7.


        4. Office 2010-like features

        OpenOffice and OfficeLibre don't compare with Microsoft Office 2010. Features like One Note and Smart Art, MS Visio (yes, it's still better than Dia), has left the open source community challenged to meet or beat the new features provided in Office. 


        3. Better screen real estate utilization

        Screen real-estate is precious, and Win Xp did an awesome job on rendering the toolbars and icons to optimize on both low resolution monitors as well as high resolution monitors. For WSXGA screens, XP is still far better that Gnome 2x. A partial workaround is to use a compact theme, but it does not suffice. KDE does a better job than Gnome, and XP does a better job than KDE in screen real estate utilziation.


        2. Support for Apple products: iPad, iPod

        Support for iPads and iPods is essentially missing. You cannot use iTunes on Linux. Shame on Apple. Not only is iTunes a poorly designed and resource hungry software, it is not cross-platform. Windows is the only 'other' OS that is supported.


        1. Support for Netflix

        Shame on MIcrosoft and Netflix. Microsoft has not allowed DRM to be ported. Netflix seems committed to Silverlight. The combination has left Linux and Android operating systems in the cold, when it comes to Netflix movies. This is major strategic risk to Netflix. Not from Linux, but from Android users. Watch for Amazon in the this space. If Amazon supports a true cross-platform movie-watching experience Netflix will have a serious competitor.


        Conclusion

        If you are planning to check out Linux and any of its distributions for the first time, I strongly reccommend Ubuntu/Gnome or Kubuntu which is closer to the Windows user experience. Be aware of the missing features on the platform. In the next 3-5 years, Linux needs support from you and the corporations to be a viable platform for day to day computing needs.

         

         

        Thursday, February 3, 2011

        When the Demon wants your Wallet

        Ubuntu 10.10 has an issue when you run Gnome and KDE.
        On startup KDE prompts 'KDE Daemon' has requested to open the wallet 'kdewallet'.


        The solution is to install WICD



        rohit@lenovo:~$ sudo apt-get install wicd

         

        [sudo] password for rohit: 

        Reading package lists... Done

        Building dependency tree       

        Reading state information... Done

        The following extra packages will be installed:

          python-iniparse python-wicd wicd-daemon wicd-gtk

        The following NEW packages will be installed:

          python-iniparse python-wicd wicd wicd-daemon wicd-gtk

        0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.

        Need to get 562kB of archives.

        After this operation, 3,121kB of additional disk space will be used.

        Do you want to continue [Y/n]? Y

        WARNING: The following packages cannot be authenticated!

          python-wicd python-iniparse wicd-daemon wicd-gtk wicd

        Install these packages without verification [y/N]? y

        Get:1 http://us.archive.ubuntu.com/ubuntu/ maverick/universe python-wicd all 1.7.0+ds1-5 [76.8kB]

        Get:2 http://us.archive.ubuntu.com/ubuntu/ maverick/main python-iniparse all 0.3.2-1 [19.8kB]

        Get:3 http://us.archive.ubuntu.com/ubuntu/ maverick/universe wicd-daemon all 1.7.0+ds1-5 [277kB]

        Get:4 http://us.archive.ubuntu.com/ubuntu/ maverick/universe wicd-gtk all 1.7.0+ds1-5 [147kB]

        Get:5 http://us.archive.ubuntu.com/ubuntu/ maverick/universe wicd all 1.7.0+ds1-5 [41.0kB]

        Fetched 562kB in 6s (80.3kB/s)          

         

                                              

         

        Preconfiguring packages ...

        Selecting previously deselected package python-wicd.

        (Reading database ... 258926 files and directories currently installed.)

        Unpacking python-wicd (from .../python-wicd_1.7.0+ds1-5_all.deb) ...

        Selecting previously deselected package python-iniparse.

        Unpacking python-iniparse (from .../python-iniparse_0.3.2-1_all.deb) ...

        Selecting previously deselected package wicd-daemon.

        Unpacking wicd-daemon (from .../wicd-daemon_1.7.0+ds1-5_all.deb) ...

        Selecting previously deselected package wicd-gtk.

        Unpacking wicd-gtk (from .../wicd-gtk_1.7.0+ds1-5_all.deb) ...

        Selecting previously deselected package wicd.

        Unpacking wicd (from .../wicd_1.7.0+ds1-5_all.deb) ...

        Processing triggers for ureadahead ...

        ureadahead will be reprofiled on next reboot

        Processing triggers for man-db ...

        Processing triggers for python-gmenu ...

        Rebuilding /usr/share/applications/desktop.en_US.utf8.cache...

        Processing triggers for desktop-file-utils ...

        Processing triggers for hicolor-icon-theme ...

        Processing triggers for menu ...

        Processing triggers for python-support ...

        Setting up python-wicd (1.7.0+ds1-5) ...

        Setting up python-iniparse (0.3.2-1) ...

        Setting up wicd-daemon (1.7.0+ds1-5) ...

         * Starting Network connection manager wicd                              [fail] 

        Setting up wicd-gtk (1.7.0+ds1-5) ...                                           

        Setting up wicd (1.7.0+ds1-5) ...

        Processing triggers for python-support ...

        Processing triggers for menu ...

        localepurge: Disk space freed in /usr/share/locale: 828 KiB

        localepurge: Disk space freed in /usr/share/man: 20 KiB

        localepurge: Disk space freed in /usr/share/gnome/help: 0 KiB

        localepurge: Disk space freed in /usr/share/omf: 0 KiB

        localepurge: Disk space freed in /usr/share/doc/kde/HTML: 0 KiB

         

        Total disk space freed by localepurge: 848 KiB

        Sunday, January 30, 2011

        Weather.com Software Platform: Open Source

        This is a snippet from a 2004 article that I never publicly published, but is serves as a good case study relevant in 2011 (and beyond).

        In 2004, weather.com site served more than 50 million pages on stormy days, and it ran almost entirely on open-source software and commodity hardware. The Atlanta-based Web site’s adoption of a new architecture and open source products “has slashed IT costs by one-third and increased Web site processing capacity by 30%”  (King 2004). However cost slashing was not their primary goal of switching to an open source product. The quality of open source products was its main “selling” point. Weather.com claimed that their transition from IBM’s server software product to open source Apache Tomcat to run their website served correct operations, ease of use and better quality attributes overall. Of course, there are different organizational dynamics that lead to a decision to drop COTS (and support) to an open source solution.

        Performance and scalability issues were cited as the main reasons for switching to Apache’s web server. The team switched from IBM’s commercial offering to Apache’s open source implementation primarily for its quality. Apache’s open source web servers host 68% of web servers in the world according to an August 2004 analysis of Netcraft (Gustafson, Koff).

         

        Graph: Totals for Active Servers Across All Domains June 2000 - June 2010

         

        IBM has since started to use a modified version Apache Web Server in it’s commercial offerings. This is a trend that is likely to repeat itself across multiple technology domains depending on various factors: it remains to be seen if the penetration projections hold true over time.

        Wednesday, December 1, 2010

        Removing Oxy Mouse Pointer

        I have been using Linux off an on for the past 10 years for personal needs. Having never tried KDE, I installed it on the latest Ubuntu distribution. It is quite fancy and has lots of good features, however it has its share of issues too.
        Surprisingly one of the features leaked into my Gnome sessions: the mouse pointer.

        For whatever reason KDE's Oxygen theme with its weird mouse pointer would refuse to go away in Gnome - no matter how much I tried changing the theme.

        rohit@lenovo:~$ uname -a
        Linux lenovo 2.6.32-24-generic-pae #42-Ubuntu SMP Fri Aug 20 15:37:22 UTC 2010 i686 GNU/Linux

        After scouring the net, and not finding much help I decided to "reset"; this turned out to be difficult as well. No matter which other default theme I selected, it still did not remove the offending pointer style. Oxy persisted. Here's what worked - I  removed the theme files under ~/.theme. Brutal, but it works. Now I have a nice black pointer.

        Sunday, November 28, 2010

        COTS versus OSS: Why

        Open Source versus Commercial Software is an important consideration that is often overlooked. This article provides a high level overview of open source considerations.

        Open source is being adopted by developed nations and corporations at a greater pace than developing economies. Organizations of all kinds are consciously adopting open source software for critical business needs: Deutsche Börse Group, Deutsche Bank, the Danish government, BlueScope Steel, NASA, the Associated Press, J.P. Morgan Chase and Google.

        There have been many government initiatives around open source software, as governments in Brazil, China, India, Korea, Japan, Europe, Australia and the United States, as well as the United Nations, considers open source policy and options. And large information technology vendors such as IBM, Intel, Hewlett- Packard, Oracle, SAP, Sun Microsystems and Dell are supporting open source (Gustafson, Koff n.d.).

        What is the catch? Like all software – open source too has its costs. Maintenance and support costs are left to the adopter to absorb. Koch (2003) elaborates, just because you download open-source applications for free doesn't mean you won't have a whole host of associated costs such as maintenance, integration and support. Security concerns have often been raised “because anyone can see the code” is debatable. This notion is easily dismissible.

        Licensing can be tricky for smaller companies who are vulnerable to lawsuits through lack of indemnity in open source products. The “as-is” aspect of open source software is risky. There is a possibility that part of open source software “copied code” from some other licensed product. It is very difficult for the companies to identify or compare open source with licensed software products to identify theft. This exposes the company using open source software to lawsuits from companies claiming that the open source software violates their intellectual property rights. New markets and emerging economies should take note of this risk.

        Price is another factor: since open source software can be traded in markets just like any other kind of artifact one cannot definitely tag open source software as having zero price, explain Scacchi (2003). Programmers often explain this seemingly incongruity with simple shorthand: when you hear the term “free” software, think “free speech” not “free beer”; or ‘software libre’ not ‘software gratis’. The fact that open source software is free can be confusing to skeptics and adopters. Scacchi (2003) explains the meaning of “free” in open source software. He elucidates that “Proprietary source code is the touchstone of the conventional intellectual property regime for computer software. Proprietary source code is supposed to be the fundamental reason why Microsoft can sell Windows for around $100 or why Oracle can sell its System 8 data management software for many thousands of dollars”. Open source software process “inverts this logic” (Scacchi 2003).It differs from commercial software in one fundamental aspect – source code is distributed with the runtime binaries of open source products. All documentation, source code and the runtime binaries are provided by the development community for free.

        Adopters must be able to bare the hidden costs associated with open source software. The success of open source software is surprisingly not attributed to its zero monitory cost of purchase. Schadler (2004) attributes the success of open source to high availability, self-training opportunity, and support. He contrasts this with commercial software and underlines the non-availability of software and self-training.

        Although open source is free, it is not free of obligations and lack of guaranteed support. This makes it less attractive for emerging economies and risk averse entities. Just as free speech is not intended primarily for oppressed dictatorships, in the same way open source is not intended for poor or developing nations and economies alone. Not only emerging economies, but all types of economies and corporations should consider a policy of open source software adoption.

        Saturday, October 16, 2010

        Support Open Source Initiatives

        A survey by Boston Consulting Group in of developers using SourceForge found that respondents were, on average, 30 years old and had 11 years of programming experience. These were experienced professionals contributing to quality software products for free. Open Source is so pervasive now that people don’t talk about it or discuss it anymore. The assumption is that quality software will continue to be available for free. Without donations and support this is not possible, especially in tough economies. I have been an active user of OSS at work for almost every single project. Software development projects utilize a plethora of components that are open source. Open Source Object Relational Mapping frameworks, Model-View Controller frameworks to full scale operating systems, application servers and databases are used across business applications everywhere. So what is the basic idea behind the open source movement ?

        “The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, (and) people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.” (opensource.org)

        Community credibility is an underlying motivator for joining an open source project. The lure of open source includes solving technical challenges; drawing of making a contribution the rest of the community can use; the enhanced skills and reputation (marketability) that comes from being an active member of the community; and the potential for providing fee-based services for open source software. Developers are motivated by the opportunity to branch out and work with products they don’t normally work with in their day jobs – say, video programming – and they are also motivated by pure fun (Gustafson and Koff). Every single corporate entity in the U.S. has some open source utilization today in either a desktop environment, server environment, in the cloud environment or all. It exists at all level and is pervasive across the board. OSS is here to stay: did you use an OSS today? If so consider donating to software foundation that supports it.


        Saturday, January 2, 2010

        Google Chrome @ 5% (almost)

        Google Chrome is now the 3rd most popular browser in the world.

        According to recent reports here and here, Google's Chrome has overtaken Apple's Safari in the browser wars. While still at less than 5% chrome is no match for Microsoft's Internet Explorer which is slightly above 62%. Chrome is gaining strength quickly mostly due to two quality attributes: speed and reliability. Chrome is noticeably faster than Opera, IE, Firefox and Safari. It's reliability is unsurpassed due to its multi-process architecture.


        Coming in at #3 just months after it's GA release is commendable. With new features like bookmark sync and support for themes and plug-ins it will rival the # 2 spot in a couple years, eating away Microsoft's and Mozilla's share.

        Is WSJF "better" than traditional ROI calculations for Applications?

        I love road trips, and i like analogy.   The Premise: Two couples are planning a road trip. The "Perfection" group: This group spe...