A site devoted to discussing techniques that promote quality and ethical practices in software development.

Monday, September 17, 2012

INGDirect fails to generate OFX 1.0.2 compliant document

The Australia online bank www.ingdirect.com.au fails to generate OFX 1.0.2 valid data file for the online customer.

The document fails to conform to the following mandatory element specified in DTD specification:

<!ELEMENT STMTRS - - (CURDEF , BANKACCTFROM , BANKTRANLIST? , LEDGERBAL , AVAILBAL? , MKTGINFO?)>

As a result, their OFX document does not contain BANKACCTFROM and LEDGERBAL elements. When GnuCash tries to import this invalid document, GnuCash fails to recognize any valid transactions in the BANKTRANLIST element. KMyMoney reports that 'No Accounts found' error.

An OFX compliance library, LibOFX is available.

Monday, September 3, 2012

Apple vs Samsung - is it a case of trying to patent a door knob?

I have been following this Apple vs Samsung patent violation case with total amazement. I am not a patent lawyer but a software developer and I own a Samsung Note as an act of defiant allowing me to flash such a device in Apple Store just to annoy them showing off the cool features not found in Apple devices.

I fully agree with this assessment that Apple should lose on appeal. To the US Apple fanbois, this may be a shock but if you step across the Pacific Ocean, such expectation is not wishful thinking but already a reality. In Japan, the court threw the case out and in Korea their court has found Samsung did not copy. In Australia Apple lost on trying to ban Galaxy Tab 10.1. S3 are selling like hot cakes.

I am a late comer to using the so called smart phone but not a stranger to this kind of mobile devices judging from the collection of PDA of different vintage in my drawers.

Recently when I was holidaying in HK, I did an unscientific survey of what kind of smart phones are used. What's better place than in the HK MTR to make my observation. To my astonishment very few brought out any iPhone! The number of non-Apple devices easily out number Apple device at least 2:1. This was before the verdict of the Apple vs Samsung case. There are so many people using Note, particularly for watching videos. iPhone's screen is a midget by comparison.

The result of this survey is not too far off the mark from market report on the smart phone market in China. The Android phones market in that part of the world is being placed as commanding 60% of the market.

From my observation Apple must be very desperate in clinging to this 'Pinch to Zoom' which is like patenting the door knob action. I wonder if anyone has patented on that.

This gesture is not so unique to Apple. The Fujitsu Windows 7 tablet I was testing has already have gesture like swipe, pinch, stylus operation, mouse and keyboard operations.

I grow up with PC from the CPM/DOS day through the day when Apple Vs Microsoft, which thankfully failed to stop the march of Windows GUI allowing the whole family of GUI operating systems to flourish. Apple has been litigious since those days. A journey through decades of evolution of GUI operating systems, from highly proprietary to open source, clearly shows Apple's claim that patents are essential artefacts to encourage development is false and just delusional.

From what this layman's eye, Apple is more interested in using litigation to stop competition and an attempt to monopolize the smart phone market and their latest antics supports such a claim. As a technical people, I have found their product only technically on par with others and in some situations worse. Perhaps Apple's Ads has some truth in it.

If anyone can't buy Samsung of the model of your choice in US, there is the Internet coming to your aid. While Apple may win the court battle but it will lose the war. Why?

Scarcity is what makes an item more valuable and desirable, not just smart phone. There is no bragging right for whipping out a common toast-thick iPhone comparing to Apple-induced-banned slick and sexy wafer-thin S3 or even my Note. US has a good history of prohibition failure.

If the market for Samsung in US is blocked by whatever means, the mobility of today's population and the Internet will provide a teaser to entice people to seek out those hard to get items to show off. I don't think Google will be too willing to block search result for 'buying Samsung S3 in US'. You can also go to Alibaba or to create business opportunity for a reverse Shipito, which has defeated those US online merchants using geo-blocking technique to protect their distribution channels.

Anyone doubting that should consider this real-life situation created entirely by Apple's marketing machine. When Apple iPhone 4s was released, Apple thought it could whipped up more hype by staging their release world wide. Hence they deliberately delayed the release in HK, a place where people love to be holding hard to get gadgets, and not even announcing the release date to create more mystery and hype.

With the advent of the Internet, people in HK jumped on the Internet and ordered iPhone 4s from Australia, a place not contaminated by artificial whipped up super-hyped marketing technique, delivered to local address and then couriered to HK. iPhone 4s was so abundant in Australia when it was released that anyone could walk in and picked them up. I personally know several people shipped iPhine 4s and the DHL was doing a roaring trade. People are now gearing up to take order for iPhone 5 should Apple uses the same marketing hype again.

The comical part was that these devices came from China and was then ship back over the border to HK, China's SAR.

Witnessing the failure of this kind of strategy, which attempted to create scarcity, Apple quickly announced the release date and the price and desirability of iPhone 4s in that place vaporised as quickly as a puff of smoke.

The reverse applied to Australia. When Apple managed to temporarily secure a ban on the sales of Samsung Tab 10.1, the interest on this device shot up and people simply went online to HK or elsewhere to import them. This only hurt those local companies selling both Samsung and Apple devices. Samsung Tab 10.1 was not renounced as the most brilliant tablet but with of the help from Apple, its desirability shot to the top of the bunch and now is so well known that is synonymous with iPad. This must have saved Samsung lots of advertising money.

The same will applies to S3 and Note and other great devices yet to come. There will be good business opportunity for shipping to US Samsung S3, Note, Tablet and others devices that Apple wanted to ban. The victory, if any, would be hollow and pure academic.

That is the reality and it is better for Apple to learn to live with others saving lots of legal expenses. In so doing will earn admiration for its prowess for marketing a device in fiercely competitive environment rather than to beating other into submission through legal muscles on something as silly as trying to patent a door knob. At the moment, it has earned the dubious title as most litigious and angry company.

Door knobs are door knobs, you can't and shouldn't be allowed to patent that. All the best to Samsung and thanks for such a great device as the Note!

Thursday, August 30, 2012

Experience in searching for free UML tool, continue.

Since my last post on the search of UML tools, I have added Gaphor to the list.

I am surprise so many of these so called UML tools are not really doing UML at all. UML is a very precisely specified modelling language and yet these tools at best are nothing more than glorified drawing tools.

Some like Dia does not inter-relate the diagrams and artefacts. Gaphor does not even have anything to specify if an operation is abstract or virtual.

None of them (the free ones) provides any way for a derived class to override a base class' virtual function. Or automatically implementing an interface without laboriously defining them yourself.

In Umbrello and Modelio I have to use copy-and-paste. Because the Umbrello UI is more useful than Modelio, the operation is not too bad for small size class/interface. Umbrello does not seems to have any syntax for an operation to return an array.

Modelio has something that resembles allowing user to override but half baked and I am not sure Modelio's calling it 'redefines' the same as override?

Many of these tools are not using standard vocabulary as prescribed in UML other than the visual part. Why not?

After using Modelio and Umbrello to develop a fairly large model to test these two that are better than the rest of the crops, it is hard to say one is significantly better than the other.

I must say Modelio is a very clumsy program to use and is very frustrating doing a quick modelling. It is one that seems to impose its own vocabulary rather than using UML standard.

Umbrello is much easier and quicker to operate but drawing the sequence diagram is a real challenge of one's patience and tolerance of its quirky operations. Modelio handles this relatively better and with more support.

If Modelio has a more convenient way to allows the derive class quickly to override base class operations, then it is definitely a winner. Interestingly this feature is found in Microsoft's Visio and the once free BoUML.

The search for the idea free UML tool continues ....


Friday, June 22, 2012

Decoding WinMail.dat

Recently I have been receiving e-mail message with attachment called WinMail.dat and is puzzled to find out how to decode it.

I am happy to report that I have found a free Windows Tool called "WinMail Opener". Good work guys! Many thanks for this great tool.

It is indeed very small and experimentation indicates that I can zip (or XCopy)  the installed version and run it elsewhere without the need to go through installation.

Tuesday, June 19, 2012

We need bi-weekely repeat of events in Samsung Note's Planner

I have found this missing rather disturbing and annoying.

This question has been posted in 2010 and is so annoyingly missing in my Samsung Galaxy Note running Android version 4.0.3.

Bi-weekly events happen more often than most people (read Android developers) thinks. It is available in iPhone, in Outlook for a loooooong time, my Thunderbird with Lightning plug-in can do it, my Windows Live Mail's calendar can do it. So Microsoft can do it but Google can't do it?

But why Android developers can't implement this feature, which to many is essential. The fact that this support is available in the above mentioned list of appointment & planner clearly indicates that this is not such a difficult programming exercise.

The only conclusion that I can draw is that this is another case of developers wanting to do something different rather than something essential. As a result it makes your software sucks.

Failing to support basic requirement is not cool and not smart at all. Your failure to include this kind of essential features turns a smartphone a dumb phone. Now I have to put all my bi-weekly events on my Thinderbird on my laptop despite the availability of thousands of Android Apps out there! It is a joke.

Talking about Calendar, on another tablet running Android 3.2, I fail to understand why defining an event on the Calendar apps running on that tablet requiring me to open and log into a Google Account? I do not need to do so in my Windows Live Mail, Outlook, or Thunderbird.

To put Calendar event on Google's Calendar should be the decision of the owner of that tablet/device and has nothing to do with Google's imposition. At least in my Android 4.0.3, I do not have to be tethered to a Google Account.

Sunday, May 13, 2012

Running Gnu Privacy Assistant in Ubuntu 12.04

Ever since the release of Ubuntu 11.10, GPA (Gnu Privacy Assistant) has been removed from the repository because it crashes in Linux/Ubuntu.

This has held me back from upgrading to the newer version of Ubuntu. As they say necessity is the mother of all invention except that in this case the invention is about finding a work around to this annoying problem. The good news is that the work around is simpler than I thought.

It appears the crash when running the Natty version of GPA is caused by some kind of security issue or restriction. Here is the work around:
  1. Download and install a copy of GPA (0.9.0-1).
  2. After successful installation, you can run GPA by launching it from the Terminal as follows:
    sudo gpa
This should allow you to operate GPA normally. Just make sure you do not launch it from the Ubuntu launcher.

Friday, April 27, 2012

In search of free UML tools

Ever since BoUML has gone commercial and that I have stupidly installed the upgrade, I have lost the use of a very capable UML tool. Hence I have to embark on a search of free UML tools that primarily run in Ubuntu. I am not particularly concerned if they do not work in Windows at all.

As part of my journey, I revisited my old friends, such as ArgoUML, Dia UML, UMLet. With the help of this Wikipedia page on UML and supplemented with my exploration of Ubuntu's Software Center, I have managed to find a few new ones.

Previously unknown to me are Umbrello UML, Software Idea Modeler, and Modelio, which has an open-source (free) version and a commercial edition.

Many of them are rather skimpy on UML treatments other than drawing the UML artefacts. A proper UML tool is more than just a pretty drawing tool. Dia and UMLet belong to the class that treat each drawing as separate unlinked diagram. In these tools, changing, for example, the class name in the class diagram does not automatically propagate to say the sequence diagram.

As a result, they represents some extremely lightweight UML tool; a shade better than a drawing tool.

Three areas that I am particularly interested in and they are:
  1. Class derivation with the derived class capable in the UML tool to select which base class operations it can override.
  2. Similarly when a class realizes an interface, the tool should offer an automatic means to implement all the interface's methods without one manually duplicating them.
  3. Component can indicate to have provided and/or required interfaces.
While they are not extremely demanding requirements and that they are just basic OO stuff, surprisingly out of the above list of free UML tools, only Modelio can meet my requirements. My investigation surprised me that they tool all have failed to incorporate the most basic OO requirement - derivation and interface implementation. The developers of these tools perhaps to preoccupied with the graphics and fail to focus on the OO modeling requirements.

If you know of how to perform the above 3 requirements in the above mentioned tools or that you have found more competent free UML tools, feel free to submit your comments and recommendations.

Blog Archive