Wednesday, 13 March 2013

OTN ADF Mobile Workshop @ Oracle Offices in Singapore


From marketing perspective this workshop gave a pretty good overview for what Oracle is doing in regards to concurring mobile platforms with Java. From technical perspective, the exercises we've done there were rather simple and could've been better ones - it would be more fun to build something with database connections and more sophisticated browsing.

Anyway, this is what was discussed about Oracle JDeveloper and its ADF Mobile Extension (ADF stands for Application Development Framework):




SOME MARKETING STUFF:


1. ADF Mobile components have sufficient number of widgets to build a decent application for iOS and Android from single code base.

2. Oracle implementation of mobile security seems to be the most shining component in the whole stack. Sorry, I can't say more than that because presentation of security features didn't really happen due to some technical issues.

3. Those who have experience working with Oracle ADF objects, could start doing things with Mobile ADF in no time at all.

4. Currently, Mobile ADF components can be used for generating application deployment packages only for iOS and Android. Windows 8 is not in the list. Not yet. Few years ago Oracle got ready for Windows 6 that had never come out! Now they want to wait and see if Windows 8 spills out of marketing campaigns and acquire some real popularity. If Windows 8 gets its market share, it would be relatively easy for Oracle, as they say, to accommodate it within their Mobile ADF.

5. GUI is done in Javascript, HTML5 and CSS3, so it's compatible with any current browser and mobile device. This is so called Hybrid Application when this kind of GUI works on top of a Java container that nicely communicates with whatever hardware is below. Platform-specific JVM is an old Java trick and in this case it's coupled with a widely used GUI technology.



SOME TECHNICAL STUFF:


1. Size of a final application ready to be deployed on a mobile OS would be around 10Mb+ because it includes headless Java Virtual Machine. JVM was cut off all GUI classes hence 'headless'. Basically, it's based on JavaME/JDK1.4 and has no Java5 features like collections and annotations.

2. Oracle mobile application would communicate with native OS and hardware resources (like email, camera, GPRS) via PhoneGap layer. Well, now it's PhoneGap but Oracle will switch it to Cordova because PhoneGap is owned by Adobe and there are some license related issues with that.

3. Mobile ADF Components are free only for developing prototypes. Any plans for using them within commercial products have to be discussed with Oracle sales people.



CONCERNS:


1. Every single mobile app built with Mobile ADF would come with its own JVM... Is that good? Or it doesn't matter? I'm not quite sure... Mobile operating systems are multi-threaded now. Some apps may run in the background tracking your location, popping up messages, making alerts. In a year time, an average phone might have, say, 25 apps constantly running in the background. Would it be good (size-wise, efficiency-wise) if some of them contain their own run-time environments? It's like to run few Eclipse IDEs at once on a desktop, isn't it?

2. Price is always the issue. Small businesses may not like it. Big businesses may stick to their existing development platforms, whatever they currently use.



ADVANTAGES:


Well, there are four actually:

1. Generation of hybrid-native deployment packages from a single code base. It does sound a bit scary, especially for those companies that already have separate iOS and Android development teams. Will that 'single code base' really work? Hmm... it's hard so say... but there is always an alternative - just start hiring Windows 8 team now.

2. Maybe it's true and Oracle mobile security solutions really stand out on the market (this needs to be confirmed...).

3. Millions of Java developers can apply their skills in mobile sector, and

4. The whole thing is backed by Oracle and it's not about to disappear from this market. What does that mean? Well, Cordova is open source - its future is not quite certain. PhoneGap belongs to a bit unpredictable Adobe - people still remember what they have done with Flex.


Probably it's time to check what ApplicationCraft is...

Friday, 8 February 2013

Microsoft Office on Linux in 2014?

What if it's true and after all we'll get a full version of Microsoft Office available on Linux platform? Let's see who are the main players in this space:


DESKTOP

1. OpenOffice.org (free)

2. LibreOffice (free)

3. SoftMaker Office ($79.95)

4. IBM Lotus Symphony (free, based on OpenOffice)


5. GNOME Office (free)


6. KOffice (free)


7. StarOffice (free)



8. Calligra (free)

9. Yozo Office ($59)
10. Breadbox ($99)


ONLINE

- Zoho Office ($3/user)
- ThinkFree Online Office ($49)
- Google Docs Office Suite (free)
- Microsoft Office 365 ($4-20 per user/month)
- CollateBox ($9.99-129.99/month for unlimited number of users)

It's pretty clear that Microsoft won't be alone out there. It would be quite interesting to see how competition would change the lists above.

Tuesday, 29 January 2013

Open Source Financial Trading Software

Some time in early 2012 an open source project Lodestone Foundation was backed by Deutsche Bank. In September, 2012 FT let it know to ones who missed the news earlier.

The initiative is quite interesting and it split finance professionals in two camps - ones who believe that this is the way to go and their counterparts who think it would never happen.

I've looked for any existing and more or less active projects in this space. This is what I found out so far:

1. OpenGamma (Java, R, .Net and REST APIs, Tools for MS Excel)


The OpenGamma Platform provides both buy-side and sell-side firms a rich set of features, including trade data management, live risk alerts, and sophisticated, dynamic Excel integration.


2. QuantLib (C++)


QuantLib project is aimed at providing a comprehensive software framework for quantitative finance. QuantLib is a free/open-source library for modeling, trading, and risk management in real-life. 

Possibly this is the most popular project at the moment, there are signs that it's quietly used by many quant developers in their day-to-day work.


3. Open Heartbeat (probably C/C++)


Open Heartbeat is a lightweight data distribution system designed primarily for collecting and distributing rapidly changing price quotes for stocks, securities or other distributable data sets.

The core component is a reusable library which manages all communication, synchronization  caching etc., which can be linked into applications that create or, more commonly, consume data.

Primarily aimed at the financial sector, as a way to distribute rapidly changing stock quotes etc., this system can be used for any application that needs to distribute volatile data sets reliably and efficiently.

This suite includes a sample feed handler for Yahoo financial data. Use of the data provided by this service is subject to the terms and conditions of the Yahoo real time stock quote service.

The library offers very efficient operation (~10,000 updates per second), redundant paths and automatic error recovery and reporting.

4. Eclipse Trader (Java)


EclipseTrader is an  Eclipse Rich Client Platform (RCP) application focused on the building of an online stock trading system, featuring shares pricing watch, intraday and history charts with technical analysis indicators, level II/market depth view, news watching, and integrated trading. 

The standard Eclipse RCP plug-ins architecture allows third-party vendors to extend the functionality of the program to include custom indicators, views or access to subscription-based data feeds and order entry.


5. QuickFX/J (Java)


The Financial Information eXchange (FIX) protocol is a messaging standard developed specifically for the real-time electronic exchange of securities transactions. FIX is a public-domain specification owned and maintained by FIX Protocol, Ltd (FPL).

QuickFIX/J is a fully featured messaging engine for the FIX protocol. It is a 100% Java open source implementation of the popular C++ QuickFIX engine.


6. Premium Markets (Java)


Premium Markets is an automated financial technical analysis system. 
It implements a graphical environment for monitoring financial technical analysis major indicators and for portfolio management.

In its advanced packaging (not provided under open-source license) it also includes :

  • Screening of financial web sites to pickup the best market shares, 
  • Forecast of share prices trend changes on the basis of financial technical analysis, (with a rate of around 70% of forecasts being successful observed while back testing over DJI, FTSE, DAX and SBF), 
  • Back testing and Email sending on buy and sell alerts triggered while scanning markets and user defined portfolios.


7. ojAlgo (Java)


ojAlgo is Open Source Java code that has to do with mathematics, linear algebra and optimization  Its feature set make it particularly suitable for use within the financial domain.

8. EWaveTrade (C++, MFC, Visual C++ Compiler)


EWaveTrade is a tool to aid in the process of analyzing market price data using the Elliot Wave Theory, particularly applying the concepts and principles developed by Glenn Neely. The book "Mastering Elliott Wave" by Glen Neely is recommended for both potential developers and users of this software.

9. QChartist (Qt, Basic)


QChartist is a free charting software designed to do technical analysis from any data. The program is written in Basic language.

10. jFin (Java)


Pure Java lib that provides:
  • Date adjustment
  • Schedule generation
  • Day count fraction calculation

11. ActiveQuant (Java, ActiveMQ, HSQL)


ActiveQuant is an entire framework to backtest and run automated trading systems. This project is an open source project, but is not a free software, it is provided free of charge to academics and hobbyists.

12. Akutan (Java)


Akutan is an open source finance project working in the asset allocation, portfolio analysis arena of financial informatics. For the most part it stays away from instrument valuation and market models given that there are several other projects dedicated to that space, e.g. quantlib.

13. Net Positions


Net Positions allows to receive current and historical data about net positions(*) and opened on the futures market (info is taken from 'Commitments of Traders' weekly report). 

(*) net position is the difference between total open long and open shot positions.


14. Credit Analytics


CreditAnalytics is a full-featured financial fixed income credit analytics, trading, and risk library, developed with a special focus towards the needs of the credit products community. In particular, CreditAnalytics provides analytics to value liquid products (CDS, CDX, CDO, and bonds of all types and variants) and standard index/custom products (single credit forwards and options, and portfolio credit forwards, options, tranches, and other structures).


15. FpML



FpML® (Financial products Markup Language) is the open source XML standard for electronic dealing and processing of OTC derivatives. It establishes the industry protocol for sharing information on, and dealing in, financial derivatives and structured products.

The standard is developed under the auspices of ISDA, using the ISDA derivatives documentation as the basis. As a true open standard, the standards work is available to all at no cost and open to contribution from all. There is no membership requirement.

The standard evolution and development is overseen and managed by the FpML Standards committee, following W3C rules of operations guidelines.


16. Kooderive


The objective of this project is to create a library of code for pricing financial derivatives products using CUDA to achieve GPU programming.

Tuesday, 22 January 2013

Guidelines for Business Requirements Document

Trying to avoid thick Business Requirements Document (BRD) together with Functional Specification Document (FSD) as well as to shorten the time frame needed for preparing both of them, I compiled a document template that happened to be quite useful in a number of projects.

The idea is to take business project participants away from long verbal, and sometimes even inconsistent and confusing, descriptions and let them get concentrated on four basic models that clearly define what and how a new system should do. The models are:

- Use Case Model
- Domain Model
- Workflow Model, and
- GUI Model

On top of these four models, a development team would build an IT Model (or Implementation Model). Basically, these four models help to align Business Model with IT Model avoiding possible misunderstandings in communication between business analysts, software developers and system testers.

Document template could be downloaded here.

Wednesday, 9 January 2013

Who would provide Mobile Services for The Enterprise?

B.Y.O.D. is now an important part of an urban lifestyle description. Thanks to powerful mobile devices, online shopping (aka eCommerce) caught its second wind (look at Australia for example). Brick and mortal retail stores are getting obsolete, warehouses nearby large cities became hot properties. Rumors say that small businesses in Europe are happy to pay 2-5K Euros to teen developers for opening their own internet shops. Online payment services flourish. Clearly mobile networks are getting busier than ever (no refs to telcos income numbers). But what happens in the Enterprise?

Well, apparently biggest consumers of IT services, banks and telcos (no idea about military and aeronautics), don't have an access to their systems from mobile devices standardized yet. Yes, there are BlackBerries, iPhones and Androids with their connections to corporate Outlook Exchange servers, something that existed for quite awhile with no major upgrades. Now it looks even a bit ugly when people keep in their pockets two phones - one corporate BlackBerry and a personal 'iDroid'. How long is it going to stay this way? What do enterprise people need?

The Enterprise needs its own 'eCommerce' - synchronized data (mails, documents, etc - you name it), visual monitoring of various kinds that would help to replace every day email tsunamis, highly secure access to core functional services for those who are on-the-go or on-the-meeting. They need James Bond kind of things demonstrated in latest movies with Daniel Craig. The question is - who could deliver such services?

There are three major players in this space - Apple, Google and Microsoft. I'm not sure what's happening in China and Japan, they might have their own ones. There is also Samsung but I don't think that it could be listed here. Samsung is a good hardware producer but without its own OS and integration software it cannot compete with three from above.

To make a long story short, I would not go through what Apple and Google already have and what they may offer for this in near future. I think that Microsoft has all the chances to be a favorite again. Why? Because:

1. The Enterprise uses Windows desktops and it will continue to do that.

2. Windows Server is slowly becoming a standard platform for back-end processing. Yes, Microsoft dropped the ball at the server-side space and couldn't pick it up for a decade or so. That's probably why Linux became so popular. But Microsoft learnt its lesson - look at Windows Server 2012, check what and how it does. It is not that bad at all. I worked with Linux since late 90s and last two years spent using both Linux and Windows Servers, I don't really see any advantages of using one over the other except for the license cost and security.

3. Microsoft has its own mobile touch screen. Yes, iPad looks great, I completely agree with that, I love Apple devices and use them everywhere except my work. As the matter of fact, Apple taught people to use touch screens, all generations apparently. Now Microsoft made similar device but practically better - it comes with a keyboard. It doesn't look that sexy yet, just give it a time.

4. Microsoft has its own mobile OS. Well, it's comparatively new and hasn't become popular yet. But people will get used to it. The Enterprise will do its thinking and allocate the budget...

5. Microsoft has its own Cloud.

6. And it has Windows Intune to manage all listed above.

It seems that Microsoft has a complete technology stack to make 'James Bond' real in a company even if its employees travel 100% of their time. And the number of employees doesn't really matter.

I wonder if it's time to buy Nokia shares, their price is amazingly low at the moment... Is anyone up for a Jim Rogers kind of investment?

Online Encyclopedia of Statistical Science (Free)

Please, click on the chart below to go to the source: