>>
Passionate about your results
  About Us      Services      Products    Industries  Partners    Careers    Awards News Contact Us 29

Stay connected with the
worldwide business
community
The Haskell Language Monday, December 21, 2009

Ruby and Python are certainly huge productivity improvements — well beyond Java and C# — with crisp syntax, dynamic types, iterators, list comprehension, and injection etc.

But SQL with its set semantics seems to have a level of productivity which even Ruby and Python can’t seem to achieve.

LINQ (Language Integrated Query/C#) from Microsoft was another attempt in that direction. LINQ’s architect was an original design team member of Haskell98. LINQ is based on a concept called “Monads” in Haskell.

So I decided to take a look at Haskell and got started on functional programming. Boy, was it hard! A language where there are no loops!! Wow!!!

Haskell has more power than C++/Java put together and is crisper than Ruby/Python. It was quite a shock to learn that this language has been around since 1990. i.e. 3-4 years before Ruby/Python existed.

Haskell has a new way of programming; yes “functional” is about writing functions, but quite a bit more than that; no looping; all programming is driven through recursion and a math equation style programming. Some principles are truly derived from abstract algebra. Even the concept of function in Haskell mirrors a math function more closely than any language (seriously C++/Java/C# are not even close in terms of capturing a math sense of function). I had come to the conclusion that maybe there is a conceptual fork which cannot be bridged. Was I ever more wrong!!

Haskell is proof that a programming language can be designed on clear math principles and still be an effective and efficient tool to use. Granted, I don’t see how Haskell can ever become popular; but once you learn it, you will see all the languages you have ever coded in differently. This is one language I am convinced will raise your game in coding — no matter how many languages/years you have — provided you grasp the Haskell way of thinking.

Will Haskell end up like Lisp? Things seem to be changing course in a big way…

http://googleresearch.blogspot.com/2009/08/under-hood-of-app-inventor-for-android.html

….if Lisp can beat ‘C’…hmm…functional could be worth knowing….

http://tech.slashdot.org/story/09/05/25/1553220/Worlds-Fastest-Small-Web-Server-Released-Based-On-LISP?art_pos=8

Erik Meijer — designed LINQ

http://jaoo.dk/speaker/Erik+Meijer

Phillip Wadler — an original designer of Java Generics (GJ)

http://homepages.inf.ed.ac.uk/wadler/gj/index.html#may99

Both were original architects of Haskell — and of course Simon Peyton Jones… the grandmaster

http://research.microsoft.com/en-us/people/simonpj/

Resources:

Book – http://www.amazon.com/Real-World-Haskell-Bryan-OSullivan/dp/0596514980

Tutorial – http://learnyouahaskell.com/

Compiler- http://www.haskell.org/ghc/

Posted by Srinivasan Balram | No Comments
BI Trends for 2010 Wednesday, December 16, 2009

The holiday season is upon us and while it might be nostalgic to think over how the year went, here is a sneak peek into our glimpse of the future. Well, at least, of the trends that we believe will impact the BI world in 2010. A quick disclaimer before we start (you can never have enough of them these days): these trends are forecast from a practitioner’s view-point (based on Marlabs’ experiences with our clients) and we hope they help organizations plan their budgets and roadmaps for the year ahead. So without much further ado (cue trumpets and drum-rolls), here are our 5 trends for 2010.

1. iBI Systems: The only thing that can match the raw excitement of watching yet another contestant fall flat in Takeshi’s castle is having the power to coin innovate monikers for seemingly unrelated stuff. iBI is one of those. Perceive the subtle italicization of the “i”. iBI is the collective noun for those innovations in BI that are brought about as a consequence of the internet age and the technology innovations that have affected it. These include the hotter-than-molten-lava trend of cloud computing as well as much cooler stuff like mashups and advanced visualizations. 2010 should see all of these adapted into the BI mainstream.

2. Very Large Data Warehouses: I remember a time while I was merely old and not senile that any DWH in gigabytes would give me goose-pimples. Now terabytes are passé, petabytes give you something to think about and exabytes and zettabytes are where the goose-pimples start to emerge. (No, I hadn’t heard of zettabytes before, either; but check this out). To cut a long story short, traditional relational databases are about as effective in handling these data volumes as pigeons were in carrying urgent information from one kingdom to another. Appliances, columnar databases and distributed applications like hadoop (and other variants of the map-reduce algorithm) are the way ahead in 2010 for organizations that perforce have to handle huge volumes of data. (think online organizations, telecom providers and energy/utilities players who have implemented smart-grids)

3. Mobile Analytics: I was tempted to name this mAnalytics but decided that trying the same gag twice in one page might be stretching it. With the ever increasing adoption of mobile phones and with every man, woman and dog having at least 3 of them (business, casual and sports), cell phone as a delivery mechanism for BI was more inevitable than death and taxes. Well, at least death. At approximately 3.5 billion mobile devices, the phones population is in a neck and neck race with human population, the latter leading only because they have longer necks. All leading commercial BI vendors now have a way of delivering nearly full-functionality reports over smart phones. This delivery mechanism is bound to see an exponential growth in adoption in 2010. In addition to this, GPS enabled smart-phones, will help bring “location” based intelligence into BI helping make it more “event-based”.

4. Embedded BI: If your drew an organizational pyramid in white and shaded the people who use BI in black, it would probably (very loosely) resemble a polar bear – vast acres of white and a black nose. (Interesting polar bear fact/myth). Most of the people who use BI today are those who pull out a report for compliance/regulatory/statutory reasons or the people who frame organizational strategy. In other words tending towards an infinitesimally small percentage of the organization. Embedding BI in applications that line-of-business decision makers use, will help them make better data-driven decisions and increase BI adoption. One of the biggest factors that influences this trend is the growing maturity of open source players. 2010 shall see OEM’s and SaaS providers embedding BI in applications that a vast majority of the organization uses.

5. Re-defining the boundaries of BI: Finally 2010 shall probably be the year when BI stretches and re-defines its boundaries, like Napolean Bonaparte did all those years ago. Emails, documents, videos, voices and my 3-year old daughter’s scratch book shall all come under the purview of BI as unstructured data becomes increasingly important. We shall also see BI being less of an IT activity and more driven by the business user as self-service reports and mash-ups become more common. Increasingly innovations in BI will be driven not by technology, but by business.

So, that is our vision of 2010. While not quite 2012-esque yet, radical changes next year could make it one of the defining years in BI history. This is, as I mentioned upfront, only a sneak preview. If you want to read a more detailed white-paper on these trends email me and you will get it totally free – not just free of cost but free of the cheap gags in this blog as well.

Posted by Rajesh Ramaswamy | No Comments
Iron Ruby – What’s in it for .Net Developers? Monday, December 14, 2009

IronRuby, Microsoft’s implementation of the Ruby programming language, is a powerful example of the ongoing effort to bring dynamic languages to the .NET platform. IronRuby places Ruby as a first-class .NET programming language, with full access to all the features, components, and frameworks available from C# and VB.NET. The new Dynamic Language Runtime (DLR) bridges the gap between the IronRuby code and the Common Language Runtime (CLR)—the .NET virtual machine—while preserving the “duck typing,” metaprogramming, code generation, and other dynamic language features that draw developers to Ruby.

While IronRuby brings a lot to the table, not all .Net developers may be fully aware of benefits it has to offer. Here’s an article wherein a self confessed Iron Ruby evangelist tells .Net developers why they should be all excited about IronRuby. Worth a read.

http://ironshay.com/post/Net-Developers-Hear-Me-Out!-IronRuby-is-IN-DA-HOUSE!.aspx

Posted by Srinivasan Balram | No Comments
The Clojure Programing Language Monday, December 14, 2009

Lisp is a programming language known for its expressiveness and power. But it was often thought of as not being well suited for general use. That has all changed with Clojure, a Lisp dialect that runs on the Java™ platform.

Created by Rich Hickey, Clojure targets both the Java Virtual Machine and the Common Language Runtime (CLR). It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language — it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference to ensure that calls to Java can avoid reflection.

If you want to know more about Clojure and the general problems it aims to address, you may want to watch this video wherein Rich Hickey (the creator of Clojure) explains the particulars of this very interesting language.

http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Rich-Hickey-and-Brian-Beckman-Inside-Clojure/

Posted by Srinivasan Balram | No Comments
Dynamic Languages – The Time has Come Saturday, December 12, 2009

It looks like the era of Dynamic languages has officially begun. Yahoo has chosen not Java or C# or C++, but PHP, the lowest common denominator for dynamic languages, as the foundation for its app dev platform.

http://developer.yahoo.com/yap/guide/

http://developer.yahoo.com/yap/homepage/

So has Facebook . . .

http://wiki.developers.facebook.com/index.php/Creating_Your_First_Application

And the top three MyspaceID software development kits (SDKs) also use dynamic languages.

http://wiki.developer.myspace.com/index.php?title=Category:MySpaceID_SDK

Posted by Srinivasan Balram | No Comments
Are Object Relational Mappers (ORMs) a Thing of the Past? Friday, December 11, 2009

I came across a blog in which the author seems to be convinced that ORMs are indeed a part of the past. In his opinion, ORMs are misleading. While they help you in getting up to speed fast and prevent you from writing noisy boiler code; over time, they will pose problems. Those problems, he says, will become bigger than the speed advantages that you’ve gained.

http://codemonkeyism.com/orms/

But there are others that think that ORMs still have an important role to play. Here’s someone who feels that although none of the ORMs in the market today are without their pains, one needs to know their internals in order to make them generate efficient queries. An understanding of all the nuances is a must in order to make better use of their caching behaviors. More importantly, you need to manage all the reams of jars that they come with. Read what he has to say:

http://java.dzone.com/articles/are-orms-really-thing-past

Posted by Srinivasan Balram | No Comments
Parallel Computing and .NET 4.0 Thursday, December 10, 2009

Parallel computing is the simultaneous use of multiple computing resources to solve a problem. An evolution of serial computing, it attempts to imitate what has been the state of affairs in the natural world: many complex, interrelated events happening at the same time, yet within a sequence.

Parallel computer programs are more difficult to write than sequential ones. This is because concurrency introduces several new classes of potential software bugs, of which race conditions are the most common. APIs and tools in .Net 4.0 can make parallel programming much simpler, improving application performance.
If you want to know more about parallel computing you may want to check out this link which has some excellent resources on parallel computing.

http://blogs.msdn.com/jennifer/archive/2009/11/03/stephen-toub-tour-parallel-computing-resources.aspx

Posted by Srinivasan Balram | No Comments
Diagnose and Prevent AJAX Performance Issues with dyna Trace Ajax Edition Monday, December 7, 2009

dynaTrace’s browser profiling tool dynaTrace Ajax Edition is drawing some impressive reviews. This free tool can help identify hotspots and bottlenecks in your client-side JavaScript. dynaTrace AJAX Edition aims to:

• Understand performance as real users experience it
• Differentiate between browser and server bottlenecks
• Trace asynchronous JavaScript executions for the full round-trip
• Analyze JavaScript, AJAX remoting, network and rendering performance in real-time
• Save performance data for interactive offline analysis
• Transform Selenium/Watir tests into performance tests and integrate them with your CI environment

As applications continue to get more complex, this will continue to be a bigger and bigger area that developers need to keep an eye on.

dyna Trace Ajax Edition Performance Review – http://ejohn.org/blog/deep-tracing-of-internet-explorer/

Posted by Srinivasan Balram | No Comments
10 Things You Must Know About the Amazon RDS Sunday, December 6, 2009

Amazon Relational Database Service (Amazon RDS) has created quite a stir. For those of you who didn’t know, Amazon RDS is a web service that makes it easy to set up, operate, and scale a relational database in the cloud. You get direct database access without worrying about infrastructure provisioning, software maintenance, or common database management tasks. Using the RDS APIs or the command-line tools, you can access the full capabilities of a complete, self-contained MySQL 5.1 database instance in a matter of minutes.

If you are considering using Amazon RDS for your database needs, here are ten things you need to know – http://www.webyog.com/blog/2009/11/16/top-10-things-to-know-about-amazon-rds/

Posted by Srinivasan Balram | No Comments
 
  Blogger Profiles
 
 
 
 
  Linked in
 
 
 
 
  Marlabs on
Facebook
 
 
 
 
  Follow us
on Twitter
 
 
 
 
  Read our Feed