Archive for May, 2008

.NET Interfaces in brief

Recently I was asked by a colleague of mine about using interfaces, and the advantages associated with them. I went on a long speil extolling interfaces and I am sure bored the poor lad to tears. Now I intend on doing the same to yourselves by extolling the virtues of using interfaces here on my blog. Continue reading ‘.NET Interfaces in brief’

Indexing Nulls

Most database indexes types do not index NULL values. What this means is that anywhere a query’s WHERE clause contains “IS NULL” a full table scan will ensue (or at best an index range scan).
Continue reading ‘Indexing Nulls’

Google gadget - Intranet feed reader

Few months ago, I had a chat with my colleagues about dashboards. How useful it would be for developers if they have a dashboard? - a centralized source of information that they need for day-to-day work (i.e. assigned issues in the bug tracking system, modifications in the company’s wiki, changes in the version control system etc.). We’ve also noticed that iGoogle (Google Personalized Homepage) was becoming more and more popular. It could have been the ideal dashboard. The problem was that all our systems are accessible only from intranet and there was no gadget that could read/display them. In this blog I am going to show an intranet feed reader that overcomes these issues.

Continue reading ‘Google gadget - Intranet feed reader’

Technorati Tags: , , , , ,

JavaOne 2008: Java Servlet 3.0

JavaOne 2008 / Day 3

The upcoming version of the Java Servlet Specification was covered in a session called “Java Servlet 3.0 API, What’s New and Exciting” presented by Rajiv Mordani from Sun.

Java Servlet 3.0 Specification, the spec that the next generation Servlet Engines will implement, will be included in Java EE 6. Sun submitted the specification to the JCP (Java Community Process) in June 2007. Its main goals include:
- Pluggability and extensibility
- Ease of development (EoD)
- Async and Comet support
- Enhanced Security
Continue reading ‘JavaOne 2008: Java Servlet 3.0′

Technorati Tags: ,

JavaOne 2008: Top 10 Patterns of Scalability

JavaOne 2008 / Day 3

Cameron Purdy’s talk about scalability has been the best session I’ve attended so far. Not only he’s an excellent speaker, he’s also an expert in his field. Cameron Purdy is the founder of Tangosol, which was acquired by Oracle after their successful run. Tangosol is a provider of data grid software.

In his talk entitled “Top 10 Patterns for Scaling Out Java Technology-Based Applications“, Purdy presented his top 10 principles to follow in order to have Java applications that can scale. Actually, these principles were generic technical patterns that can very well be applied to .NET as well as Java.
Continue reading ‘JavaOne 2008: Top 10 Patterns of Scalability’

Technorati Tags: , , ,

JavaOne 2008: Comet (AJAX, Grizzly and Cometd)

JavaOne 2008 / Day 2 (Part 2)

At the end of the 2nd day of JavaOne 2008, I attended 3 BOF sessions in a row about Comet:
- Comet: The Rise of Highly Interactive Web Sites (by Alex Russell and Joe Walker)
- Writing Real-Time Web Applications, Using Google Web Toolkit and Comet (by Jean-François Arcand and Alexandre Gomes)
- Using Comet to Create a Two-Player Web Game (by Jean-François Arcand and Jim Driscoll)
They were all very good presentations. I was supposed to attend a session about SOA for the last time slot but after the second one I decided to follow the topic and I’m glad I did it.

Continue reading ‘JavaOne 2008: Comet (AJAX, Grizzly and Cometd)’

Technorati Tags:

.NET Socket Implementation, Asynchronous Receiving and FIN/ACK

Recently I had to implement a persistent Socket implementation for a client. An issue appeared when a disconnect attempt is made by the remote server.
Continue reading ‘.NET Socket Implementation, Asynchronous Receiving and FIN/ACK’

JavaOne 2008: SOA, SCA, REST and Comet Discussed

JavaOne 2008 / Day 2 (Part 1)

No trace of my jet lag… It was difficult enough to wake up this morning. The second day of JavaOne 2008 started with the same routine: Getting ready, checking business e-mails, buying a cup of coffee and a blueberry scone from the Starbucks around the corner and the short walk to The Moscone Center. Just a note about getting a cup of coffee: I feel so… ordinary when I hear someone ordering something like a “venti half-skinny half-1 percent extra hot split quad shot (two shots decaf, two shots regular) latte with whip and chocolate sprinkles”. This sounds so sophisticated compared to my humble Grande Americano (sometimes with an extra shot to be adventurous).

For the second day of JavaOne my schedule contained technical sessions and BoFs about mostly SOA, SCA, REST and Comet.

Continue reading ‘JavaOne 2008: SOA, SCA, REST and Comet Discussed’

Technorati Tags: , , , , ,

Scalability versus Efficiency

The tendency of a good developer is to make an application as efficient as possible. Minimise communications, use memory rather than disk for storage and generally make things as tight and self-contained as possible.

Efficiency is not scalability and developing an efficient application often runs counter to making a scalable application. Scalability is the ability to inexpensively grow to meet increased demand. It follows that, efficient applications do not necessarily support increased demand.

Let’s consider a sample efficient application. It confines a data processing task to a database that holds the data to be processed, in the form of some stored procedures. This approach has the benefit of reducing communication and shields the implementation of the process from the other tiers of the application.

Unfortunately, in enterprise applications, data processing applications are rarely simple. We all know that stored procedures are pretty bad as a programming medium (bad testing, debugging and IDE support, together with a nasty procedural syntax :-P). We also know that programs in a database can perform pretty poorly with all that context switching.

While efficient, such an approach will not scale well. A more scalable approach is to process the data away from the database and return the processed data back to the database. This is not efficient, requires configuration, and generally more trouble.
However, efficiency is not the purpose of this approach, scalability is. If each task can be broken down into discrete sub tasks, they can be split and parcelled out to many “cheaper” processors and hence your task becomes scalable. With the advent of Multi-Core technologies, this approach becomes even more attractive.

Technorati Tags: , , ,

JavaOne 2008: SOA and Performance

Originally, I wrote this entry as part of my JavaOne 2008 entries. Then I realized that it deserves a separate topic on its own. Because, as Service-Oriented Architectures gain ground, it becomes obvious that their performance is the key to their success. I’m going to briefly write about two sessions that I attended in JavaOne 2008. They outline two totally different approaches from two very different companies. You’re going to see that a well performing SOA implementation requires considerable work and performance tuning expertise.
Continue reading ‘JavaOne 2008: SOA and Performance’

Technorati Tags: , ,