Sunday, May 2, 2010

Here is why Blackberry will lose huge market share with limited applications compared to Apple iPhone or Google Android

Here is why Blackberry will lose huge market share with limited applications compared to Apple iPhone or Google Android
The last session at the Toronto Code Camp at Seneca at York University was somewhat of a disappointment. A Research In Motion Developer’s Consultant was sanctioned to present this Microsoft .NET group how the development of Blackberry’s web development platform works.
There were three types of Blackberry applications including Blackberry Browser, Blackberry Widgets, and Hybrid application (Browser Field) which would be a highlight of the new upcoming Blackberry OS 6 (operating system) to be released in quarter 3 2010 which was by July or August.
This RIM consultant also mentioned about the three types of Blackberry application pushes which included a channel push, message push, or a cache push.
The Blackberry Browser can be found on the Blackberry Enterprise Server, Internet Browser (found on the Blackberry Internet Server), WAP Browser, an a hot spot and/or WI-FI browser. Some of these also involve RIM’s Mobile Data System (MDS).
Design consideration of Blackberry applications include build vertical, use appropriate fonts and colors, and determine if it will be a touch screen or track ball or track button application.

Blackberry Development Tools include a plug in for Microsoft Visual Studio and Eclipse (for Java development), a Blackberry Smartphone simulator, Mobile Data System (MDS) Services Simulators for network connectivity, and a Javascript debugger.

The Blackberry widgets includes over 250 applications programming interfaces (APIs).AJAX is also available of Blackberry OS 4.6 (operating system) and uses the MVC design pattern technique throughout Blackberry’s development cycle. The Model would contain the business logic while the Controller would basically involve the steps and components when people are hitting the application. This also includes the transferring of data. We also know that View is the presentation of the application.

In one sentence, why would Research in Motion to focus on creating Blackberry applications with Javascript. Why not something more up to date? For example using some more modern scripting language like Python or Ruby on Rails. This does not make sense. Also, why is there is no developer incentive for their hardware. Google offers it with discounts and an open technology phone for any network. Basically unlocked. RIM have definitely decided to use the wrong language and wrong developer techniques and programs. They might pay market wise just like Nokia. I guess you could say I will focus on Iphone or Google Android applications.

The Toronto Code Camp shows us how to scale data tier with Windows ServerAppFabrics and Parallel Computing in Microsoft’s .net 4.0

The Toronto Code Camp shows us how to scale data tier with Windows ServerAppFabrics and Parallel Computing in Microsoft’s .net 4.0

This post combines two sessions I went to during the Toronto Code Camp at York University.

This is involved the Window’s caching techniques of a layer from Microsoft’s cloud computing technology called Azure. The one piece of technology is called AppFabric.
The first component involved a web configuration file which is a deployable config file. This cache can be used any programming language not just on a web development language like ASP.NET which can be done through Microsoft’s Windows Communication Foundation API (WCF).

The first part to initiate AppFabric would be executed as an administrator on Window’s Server’s Powershell utility. There would be a number of commands at your disposal to initiate AppFabric with the Powershell. These include get-cachehelp, use-cachecluster, and start-cache cluster. Ensure you download and install AppFabric before using these. These are not out of the box within Windows Server editions but can only be installed on Windows Server R2. This object need to serialize but does support either binary or XML modes.

The second session involved an important session on parallel computing within Microsoft’s .NET 4.0 This was presented by SysFusion Inc’s Clay Burch. The new .NET 4.0 has some new classes including System.Threading,Tasks, PLINQ (parallel LINQ), and Thread Pool. This also includes looping methods Thread.For, Parallel.ForEach, and Parallel.Invoke. The presenter also showed PLINQ which is new to .NET 4.0 which is a LINQ object using Task under the wraps.

Clay then proceeded with a classic matrix multi example to show their threading research. There was a demo sample but did mention their demo Lenova ThinkPad’s laptop has a low end L3 cache which adversely affected the system’s performance. The L3 cache was too slow.

Their code sample uses a signal manual reset which had a special atomic decrement and Signal.Set(). There was also task class of a worker item (Thread Pool) and Factory set. There was also Parellel.For which was the fastest and uses delegates.
There was also an Analyze Tool which could be found in the Visual Studio Professional edition and higher. This tool shows the concurrenies and testing and multitasking in a visual chart.

As for Windows garbage collector, you would minimize memory collection and potentially make the garbage collector single threaded. Also, you could can turn the server GC (Garbage Collector) through a system XML file. The presenter also mentioned about replaces classes with structures instead of using the heap. He also mentioned about using a row major in a deep matrix versus a column major. PLINQ can be expensive delegates.

The session ended with some useful resources for Windows parallel programming. There was an epic white paper written by Stephen |Todd called Patterns of Parallel Programming. Also mentioned was Dan’s Moth’s channel 9 presentation on the MSDN site.

Why Microsoft’s Visual Studio 2010 architectural features will change your development and software architect skills.

Why Microsoft’s Visual Studio 2010 architectural features will change your development and software architect skills.

Continuing with my second session at Microsoft’s Toronto Code Camp, Bruce Gervin of Object Sharp showed the new architect feature within Microsoft’s Visual Studio 2010, he showed the new features of architect’s capabilities within this new integrated development environement. These are only available in the Professional and higher editions.

The architect environment contains DGML diagrams, UML two times designer, and the Modelling Project Explorer.

As administrator user, you will find a menu option of Architecture. On any of the diagrams, you right click and drag to zoom. You can also right click to pan. Pressing Ctrl and middle button has a hidden gem I won’t see here.
The one diagram would show a collection of assemblies and their dependencies. This becomes the Dependency Graph Markup Language diagram (DGML). If you press the plus button, this would show the two specific dependencies chosen between two classes. Pressing Ctrl Minus would show the Neighbourhood Dependency Matrix (DM).

The Architect Explorer contains some things any experienced architect should have knowledge have. Just another secret tip this Toronto Code Camp, pressing Ctrl Shift Twelve twice will force your Window’s garbage collector.

There is a Sequence Diagram which generates BLL file which are Business Logic Layer. Pressing right click will generate a code visualization of your code classes. The UML diagram would contain a class diagram, work items for methods, and a new feature for ‘lost and found’ code.

As you know, architect needs to understand any application’s domain. This can come from the Visual Studio’s UML Designer and UML User Case Diagram. There is also Layer Diagram for code validation which would reveal options of data access, business access, client access, and service access. These can also show detailed levels of models and entity workflows. There also an option to show the Work Item Integration as well.

Detail level high level presentation of Sharepoint 2010 at Toronto Camp Code 2010 The first session at Toronto Code Camp 2010

Detail level high level presentation of Sharepoint 2010 at Toronto Camp Code 2010
The first session at Toronto Code Camp 2010

I went was Reza Alirezaei who has developed with Sharepoint 2010 from Microsoft. Reza is also an architect over at Canadian Tire and seems to be pretty well seasoned in Sharepoint developer and architect.

Reza’s typical development stack involved two virtual machines using VMWare on his Windows 7 laptop. All machines are service based as this is the direction Microsoft is going with their online technology. For a typical client, he would have Box 1 with a web front end with the Excel and Power Point Analysis and Service Engines. This may have his client database and his Sharepoint central admin database as well. This virtual machine box would communicate with a second box containing the external client database and content database. Reza does this test to test all potential communication and all connectivity issue would surface at this development cycle step.
Reza also mentioned about Sharepoint application life management including a top level site (a site collection) to a list (of documents) and then items.

Reza easily demonstrated the different types of Sharepoint applications. It first revolves if the new application has many or limited roles. If it is limited, it can be further broken down if the user will change or add to the site. If it is yes, the application will be a content site or a big application site. If it is many roles, the next question would be if the site will be an existing site or a brand new one. The site could be an extension or it could be a site extension. If it is new, the site will be a new site or a fleet of sites.
Any Sharepoint application will be packaged into a WSP file. You can also the Visual Studio Foundation Server which basically replaced Microsoft Visual Source Safe product. Reza also pointed out a useful tip for Sharepoint user should do a dispose check. This can be found under Tools -> Sharepoint->Dispose Check. He also mentioned Visual Studio extension which can be found in the Extension Manager which is like an add in. The three extensions mentioned were VBA Development Template, Sharepoint Ribbon Generator, and Silverlight Web Part. He also mentioned you would have a choice of two execution models (Visual Studio assemblies) which could BIN (CAS which is Code Accessibility), Full Trust (GAC which stands for Global Assembly Cache), or sandboxed.

Hopefully Reza’s tips may help you out with your Sharepoint 2010 development.

Why Alfresco? How Sharepoint maybe worth every dollar spent for custom development in Microsoft .NET

Why Alfresco? How Sharepoint maybe worth every dollar spent for custom development in Microsoft .NET

Sharepoint development may be worth the money if you think it is too much?

The first session at Toronto Code Camp 2010 I went was Reza Alirezaei who has developed with Sharepoint 2010 from Microsoft. Reza is also an architect over at Canadian Tire and seems to be pretty well seasoned in Sharepoint developer and architect.

Reza’s session mostly focused on the high level of how Sharepoint works and some of the newer features of Sharepoint. I have developed with a competitive product called Alfresco which is Java and painful Javascript based. The newer version of Sharepoint makes Alfresco look like it came from the dark ages with its set of very limited APIs (application programming interface) which communicate both with Java and Javascript. I must personally say it is quire backwards with very little documentation and community support.

When you compare the SharePoint’s online documentation and community support. Reza also show us (the audience) some of the third party support available from the Sharepoint and Microsoft. The biggest gripe against Sharepoint is its licensing of $300000 fee of licensing for roughly thousand users. Alfresco brags to be around $40,000. Fine but when you look the services and what you can leverage from both platforms, I now see why Sharepoint might be worth the money. Anyhow, most purchasers of Sharepoint will be Fortune 500 types. Believe me, these kind of companies can afford while the little small business who are more budget conscious would go with Alfresco.

As Sharepoint is based on Microsoft’s .NET technology which obviously focuses on Windows servers. When you compare the languages available, it is a huge development community available compared to lame old archaic Alfresco. This will make a huge difference in your development experience with Sharepoint versus Alfresco. Why would you want to work with an older script language like Javascript? Yuck!

How the Microsoft sponsored Toronto Code Camp 2010 with Visual Studio 2010 will be a major game changer!

How the Microsoft sponsored Toronto Code Camp 2010 with Visual Studio 2010 will be a major game changer!
I went Toronto Code Camp 2010 on Saturday, May 1st which was at Toronto’s York University. The even t was an intense and very advanced technical knowledge in development in the .net world which is developed by Microsoft. This was one of those days where i decided if I should focus on my development future on .net technology or stick with Java. I also have to decide if I focus on Linux and Unix world including Ubuntu, Red Hat Enterprise Linux, etc. Or do I focus on the newer Windows technology and platforms including Windows XP, Windows 7, and Windows Server 2003 and 2008. Well, I must say quant and any investment bank, bulge bracket, or boutique investment house.
Ok, what are my decisions based on a day like this? It really depends but focusing only on C++ pretty well will not matter. The nice thing about C++ is that the program and application will be locally compiled for your host operating system. But you knew that already, right? If not, Google it.

What was my decision of the sessions I went to? IN a nutshell, Windows development has radically changed since the sub par development days of Vista. I believe Microsoft was really losing the game and momentum of Windows as newer open source technologies were picking up their own momentum. This of course includes Ubuntu Desktop and Ubuntu Server editions.
The new and powerful difference that brings Microsoft too the table in 2010 is it’s just recently launched Visual Studio. This thing is so good it makes Integrated Development Environments like Eclipse or Netbeans look so eighties. From the demos I have seen at the Toronto Code Camp, Visual Studio 2010 is very powerful from the Professional and up. I just got my hands on the Ultimate Edition which I can vouch is fantastic. I will post some future blog items on this. You may be impressed.

Wednesday, April 28, 2010

Financial Numerical Recipes in C++ introduces the Quant approach to this programming language

Financial Numerical Recipes in C++ introduces the Quant approach to this programming language

This books put out by Bernt Arne Ødegaard is a great book for a number of reasons. First, the book is free online at http://finance.bi.no/~bernt/gcc_prog/recipes/recipes/ or I am sure you can find a downloadable version somewhere. As for the material, it was so good to see like Mark Joshi’s book how the two concepts of Quant (financial engineering) and C++ programming. Both concepts are introduces in this book but at an intermediate level. You must have a fairly advance knowledge in both.
Let’s talk about the material now. We get the usual programming concepts in C++. The other bonus in this book is how Bernt breaks down the quant concepts of each algorithms and reasons behind them. He covers all items like interpolation and how to build inheritance into your base classes.
He then goes into futures contracts. He does a very good job in explaining bonds, binomial trees (the best I have seen yet of all books), option pricing, sections on simulators, and more advance concepts like Asian options. Look backs, etc.

Some of the appendixes are critical in explain normal distribution concepts including complicate multivariates and a whole slew of end to end on this topic.
I must stress what I find as a great one two punch is use this book with Mark Joshi’s I have done a recent review on. I mean between both books, you should get a fantastic way to build your confidence I merging the complexities of quant models and algorithms with C++ development. C++ alone is complex but the algorithms broken down by both books merge the two quite well.
Do know that Financial Numerical Recipes in C++ notes the algorithm and formula with notations at the end. After that, do expect a listing C++ source code which will quickly ramp up your knowledge in both. This is important if you really want to build your confidence really fast for those interviews leading to high paying Quant positions.