10.17.07

Adobe-Apple Merger : Rise of Titan

Posted in Adobe, Apple, Business, M & A at 9:55 pm by Harshal Hayatnagarkar

I was exploring on internet about Oracle’s offer for Bea systems. During that exploration, I encountered a blog post which discusses the Oracle’s offer, around many interesting facets, including a speculation about merger between SAP and IBM. Sometime back I read about Microsoft’s interest in Yahoo. Years before we saw a huge merger between HP and Compaq. All these inputs triggered a thought in mind my mind - a merger between Adobe and Apple. It might be my flight of fancy, however the merger can have many practical benefits, to each of the entities.

Adobe has strong foothold in applications and products such as Adobe Photoshop, Adobe Acrobat, Adobe CS3 and now Adobe Flex. In the era of Rich Internet Applications, Adobe’s Flex should play a very important role. Historically flash has been a popular portable runtime, but only for browsers. Adobe Integrated Runtime provides the same capability on desktop so that Flex applications can be run as if native applications. Apart from these products, Adobe supports ColdFusion, a server-side web platform, similar to ASP/JSP/PHP/Rails. Very recently there was a news indicating Adobe’s interest in online office suite. Having a good foothold in the products space, what Adobe does not have (or at least I don’t know) is exposure to hardware platforms, appliances and operating systems. This is where Apple’s expertise can support to deliver dramatic results.

Apple has been the choice of connoisseurs. Mac, MacOS X, etc have become popular and their users are difficult to be convinced to switch to another platform. Innovative products and services such as iPod, iPhone and iTunes helped to develop a creative and positive image in the minds of people. Despite all these success stories, Apple could not be successful in application software, comparing with its platforms and appliances.

Apple’s experience in hardware, platforms and services combined with Adobe experience in applications, platforms and development tools complementary for each other. Of course Apple is larger in terms of revenue, employee strength, number years in business etc. Two choices are available (as I see them) - Merger or Collaboration. Merger of Adobe and Apple can emerge as an entity which can be more innovative and more competitive, to play an important role in years to come.

But after all, this is all day-dreaming…

10.14.07

Java Processors - Can it be Resurrection of Phoenix?

Posted in Virtualization tagged , at 3:18 pm by Harshal Hayatnagarkar

Over last 12 years, Java has become almost de facto in application development paradigm. Initial days were complaining about the performance of Java programs. However there is no doubt that enormous efforts that have been put in optimization of Java compiler and JVM implementations, have given handsome returns. But we know, rather we need to know, that there is an upper limit to this optimization for performance, being implemented as a software. Despite Java’s wide acceptance, Java Virtual Machines are limited to be software deployments. There is an emerging need, to have Java Virtual Machine in  hardware.

Fortunately the space is not an entirely unexplored territory. There were several efforts to implement Java processors and including PicoJava, one of them from Sun Microsystems. It seems a very promising concept and it should become more and more relevant in days to come. Imagine a system with many cores, for example ‘SUN UltraSPARC T2‘ that has 8 cores per CPU. Now all these cores are identical and a server with 8-way configuration would have 64 cores. This kinds of systems leave a lot of room for something called as ‘Domain-specific Processors’, hence it makes lot of sense to have four dedicated Java processors part of the system. One of such example is presented by IBM for its System Z Application Assist Processor(zAAP). Primary benefit of having such processors would be their specialization. Such processors can be optimized to a larger extent, they can be upgraded frequently and would be cheaper. Apart from that, these processors leave the main general purpose processors free to do their tasks. Thus a Java Processor can be a co-processor to your main processor. Remember the known examples such as ‘Intel 387′ or today’s Graphics Processing Units (GPUs). Checkout some benchmarks for IBM’s zAAP.

Another very interesting initiative is from Bea Systems, that talks about JVM Hypervisor. This can, meanwhile, provide some breathing space. The idea was, I guess, first presented by Joakim Dahlstedt (CTO of Bea) at JavaOne 2006. One can find PDF of the presentation here - “Bare Metal”—Speeding Up Java™ Technology in a Virtualized Environment.

09.24.07

Separation of concerns and ideas

Posted in Life at 12:28 pm by Harshal Hayatnagarkar

It is almost always initially easy and later on painful to mix ideas. Same happened for me, for a while. Hence I decided to start another blog, ‘http://clairvoyant.wordpress.com’.

So to make it simple -

I hope this would be working fine.

09.07.07

Ruby - Hype on Rails or Productivity on Rails

Posted in Ruby, Ruby on Rails tagged , , , at 8:58 pm by Harshal Hayatnagarkar

‘Technology is the religion and advancement is the faith’

Things are changing in the New World (the Internet) and indeed ever changing the lives of those who use it (errrr! Rather live within it). Let it be games, forums, social networking, emails, e-commerce, applications, storage and anything you imagine. Of course laymen have different perspective of the evolution of the Internet (and the revolution of the Globe) than the Techies, the Geeks, the Nerds, the Wizards, the Jedi, the Masters and the Pundits. Then why so much of noise is around, one would start understanding the reason only when one does ‘connect’ oneself to this New World.

To make this New World a better place to live in, better development environments are needed. Programming languages and IDEs are not good enough to make a development environment better. We need something that will not retard the momentum and carry this New World further, safer, smoother and faster.

Ruby on Rails

‘Ruby on Rails’ had just launched; some began to add ‘Ruby’ and ‘Rails’ words into their list of ‘favourite’ jargons; some complained about “Why new language when our favourite language has solved all problems in the World?” . To their surprise Ruby is not new. Before Columbus, Americas were existed. Actually popular in Japan, Ruby had required a killer application; Rails became that killer application and also a Ruby-window for rest of the World.

What is so special about Ruby? There has been several languages around (at least 8512). Then why Ruby? There is an answer, one of the possible answers: The Meta Answer (i.e. the Meta-programming :)). What would make Ruby better than Python, PHP, Lisp and Smalltalk? The answer is still simple, a simple question : “Who says Ruby is always better?”. But it is better most of the time. Ergonomic object-orientation and meta-programming with expressive syntax are interesting facets of Ruby.  Dynamic languages are interpreted, which have their pros and cons. This makes these languages suitable for a kind of applications. Domain-specific languages would make Ruby a preferred choice as the Enterprise Glue. ‘Ruby is slow’, ‘Ruby takes more memory’, etc have been the proven arguments. Java too suffered of similar proven arguments. But what matters now, is the same what did matter then: Which language can deliver.

There is a performance comparison of two implementations of Ruby, Ruby 1.8 and Ruby 1.9, with other languages such Perl, Python and PHP.

Comparing Ruby 1.9 (with the YARV) -Ruby Logo

Comparing Ruby 1.8 -

The performance-gap is being closed. One can see a future that is clear, rather crystal-clear and the color of the crystal is red, rather Ruby red.

So who needs a Ruby-Lobby now? Fans or Foes?

08.26.07

Facets of Complexity - Navigation

Posted in Complex Systems, Ontology at 4:52 pm by Harshal Hayatnagarkar

What is common among ‘Internet’, ’stock markets’, ’societies’, ‘economies’ and ‘human body’? Apparently nothing, except they are very complex. Bingo! And I welcome you to the field of ‘Complex Systems‘.

What is Complexity and where from does this emerge? Well, to my belief, this question itself is fairly complex to understand, comprehend and explain. Getting answers to this question is ‘The story of blind men and an elephant‘. Complexity, as a recursive definition, is ‘The state of being complex; intricacy; entanglement’, according to Wikipedia. I try to simplify it for myself as followed in this post.Internet map

I see complexity synonymous to scale. Any system can be represented using three Fundamental Abstractions: Entities, Interactions and Constraints/Invariants. When there are simple entities with simple interactions and/or simple constraints, things are within control; but wait; only when they are small in number. I mean this because there are numerous such systems, that help strengthen this belief. For example, in a stock market, which is a complex system. Now imagine a stock market with only two stocks, only tens of brokers whereas the market is open for only short interval. Each of the transaction is regulated by the law of the land. The system is comparatively easy to comprehend. However I am not at all talking anything about ‘Predictability‘ because it is very difficult for any open system.

Apart from fundamental abstractions there emerge Derived Abstractions. For a Complex system the cardinality of the set of derived abstractions is sufficiently large to ‘make’ it complex. The beauty is that this formal system is self-sufficient to represent any system. Now I would like to restrict all this discussion is around Computation and ‘A New Kind of Science‘ and I have no intention to cross ‘Gödel’s incompleteness theorems‘.

We, the Humans, understand through perception. Complexity can be understood iff (if and only if) its facets are understood (which are entities, interactions and constraints). With an assumption that the data about these facets is already captured, what remains is to navigate through the results. A concept like ‘Faceted Browsing‘ is very useful for such a navigation. Using a semantic interface within a browser, such as ‘Exhibit‘ developed at MIT, as a part of ‘SIMILE’ project. However in order to make them really useful, there has to be a way to capture the facets. Out of various ways to model the system, for example UML, formal methods, ontology, the last one looks quite promising. So continuing with our assumption, we can use the domain ontologies to navigate through an instance of the complex system. Longwell, another software developed as part of SIMILE project, gets one there, albeit not exactly there. This is just a beginning…

I have developed a small demonstration of faceted browsing - navigation of GNU Compiler Collections’ invocation options. The demo is a subset of all options and it is yet not at its best. However it is fairly usable. More to come. An important thing - the demo works only with Firefox. Some of the typical use-cases can be -

  • While compiling a ‘C++’ program on a ‘x86-64′ architecture supporting ‘SSE4a’ instruction set, what series of optimizations one should supply to the compiler.
  • How to make loop optimizations such as unrolling, auto-parallelization, etc.
  • What are the options supported on, say, warning levels?

« Older entries