Posts

Showing posts from February, 2009

Ever wondered how to script "Closures" in JS ?

Anonymous / Inner Classes in Java are quite famous, with event handlers. Closures in JS are similar, not quite the same. Closures are expressions, usually functions, which can work with variables set within a certain context. Or, to try and make it easier, inner functions referring to local variables of its outer function create closures. Read it here as explained quite nicely by Morris Johns.

Classy JS => Prototypes

An excellent read about how to make an otherwise class-less java script emulate classes. Read it here . -Thanks Morris

Android - Cheezy name

Wow !!! this is truly a cheezy technological innovation by folks at Google and little known "Open Alliance" group. Read more about it here or Watch it here.

Ajax Men with TOOLS

GWT is headed by Bruce Johnson. JQuery by John Resig. Prototype by Sam Stephenson. Script.aculo.us by Thomas Fuchs Ajax by James Garret of Adaptive Path. Dojo by Alex Russel

GWT 101

What is GWT? A set of tools to write AJAX applications in JAVA. GWT is an open source, cross-browser framework that allows developers to write AJAX applications in Java and get the bytecode compiled into JavaScript. What makes GWT interesting is Java to JavaScript compiler? GWT is more than just a Java-JavaScript Compiler. Based on the code that you write in Java, it performs dead code elimination, code optimization etc straightening polymorphic calls, method call in lining and string interning. basically the features of what a "compiler" does. Well why Java ? Because Java is a strongly typed language unlike python and that is when you get benefit of the compiler optimizations. But then again Java is the chosen one, because of the availability of IDE's, debugging tools etc and not that its the only best language in the world. Google didn't choose Java because of a particular attachment to the language, but because of the abundance of tools out there available for Java...

Exceptions - To check or uncheck

Image
To decide whether to throw a checked exception or an unchecked runtime exception , you must look at the abnormal condition you are signalling. If you are throwing an exception to indicate an improper use of your class, you are signalling a software bug. The class of exception you throw probably should descend from RuntimeException, which will make it UNCHECKED . Otherwise, if you are throwing an exception to indicate not a software bug but an abnormal condition that client programmers should deal with every time they use your method, your exception should be CHECKED .

The Moody Thread States

Image
Understanding the moods of threads is critical to programming with threads. 1. New state – After the creations of Thread instance the thread is in this state but before the start() method invocation. At this point, the thread is considered not alive. 2. Runnable (Ready-to-run) state – A thread start its life from Runnable state. A thread first enters runnable state after the invoking of start() method but a thread can return to this state after either running, waiting, sleeping or coming back from blocked state also. On this state a thread is waiting for a turn on the processor. 3. Running state – A thread is in running state that means the thread is currently executing. There are several ways to enter in Runnable state but there is only one way to enter in Running state: the scheduler select a thread from runnable pool. 4. Dead state – A thread can be considered dead when its run() method completes. If any thread comes on this state that means it cannot ever run agai...

The Cache in Hibernate!

Image
Hibernate has two kinds of cache, which are the first-level cache and the second-level cache. The first-level cache aka "session cache", and the second-level cache aka "process-level cache". The first-level cache is mandatory and can’t be turned off; However, the second-level cache in Hibernate is optional. Because the process-level cache caches objects across sessions and has process or cluster scope, in some situation, turning on the process-level cache can improve the performance of the application. In fact, before accessing the database to load an object, Hibernate will first look in the Session cache and then in the process-level cache. The process-level cache is best used to store objects that change relatively infrequently, and it is set up in two steps. First, you have to decide which concurrency strategy to use. After that, you configure cache expiration and physical cache attribtes using the cache provider. Hibernate supports a variety of caching strategie...

iBATIS, Hibernate, and JPA - Which one ?

iBATIS, Hibernate, and JPA are three different mechanisms for persisting data in a relational database, each one with its own advantages and limitations. Before we delve into which one - lets think back on our criteria of choosing. Is it that you require complete control over SQL for your application, do you need to auto-generate SQL, or just want an easy-to-program complete ORM solution. iBATIS does not provide a complete ORM solution, and does not provide any direct mapping of objects and relational models. However, iBATIS provides you with complete control over queries. Hibernate provides a complete ORM solution, but offers you no control over the queries. Hibernate is very popular and a large and active community provides support for new users. JPA also provides a complete ORM solution, and provides support for object-oriented programming features like inheritance and polymorphism, but its performance depends on the persistence provider. A much more detailed analysis is always most...

Best Lyrics and Best Original Score

Truly, Not only A.R Rahman's moment to cherish - In a time when copy, paste has become the default tool, almost second habit, we have to remind ourselves that it is innovation which drives passion - to excel and always originality is lauded.

Remarkable Stories on Technologies I have experienced...

From the beginning of days I started delving into application development, I always felt there is always an alternative. An alternative to paths that ultimately leads to an end ie. "The End Product". What it means to be adopting Java or .NET, what it means to be adopting DOJO or YUI. I have a lot of experiences to share along the lines of "Why a certain technology has been adopted looking at the specifics for the project at hand"... So stay tuned...