Archive for category Uncategorized

QCon London 2012 – Day 2

Just got back from another day at QCon London 2012. Previous day was very good, but this morning I wasn’t quite sure what to expect from the sessions, and surely it was a mixed bag. Originally, I’ve planned to see Architectures You’ve Always Wondered About, but since Martin Thompson’s introduction to Finance track was so good I thought to give it a go.

Key note for today – Simple Made Easy, by Rich Hickey – author of Clojure. Read the rest of this entry »

,

Leave a Comment

QCon London 2012 – Day 1 of the Conference

Today was the first day of the conference, and it was a very good day. I must say it largely met my expectations. I was part of the day on Architecture track and part of the day on High Availability. But lets start at the beginning and the key note. Btw, no photos, my phone camera is useless :(

Read the rest of this entry »

Leave a Comment

QCon London 2012 – High Expectations

I am in London this week for QCon London 2012. Expectations are high and I hope it lives up to it. So far so good, I have to say. I have been on two tutorials so far and if quality is kept at this level I should be in for a treat.

Read the rest of this entry »

Leave a Comment

What’s Happened to Dynamic Data?

I came to TechEd 2009 with the intention of identifying what happened with Dynamic Data since last year. For those of you who don’t know; Dynamic Data is Microsoft’s answer to Ruby on Rails. It’s a means of quickly scaffolding your application with validated text boxes, date pickers and images based on the metadata included within your data source. So a database data type of VARCHAR(50) would automatically transform into a textbox with a size limitation of fifty characters say.
Read the rest of this entry »

, ,

Leave a Comment

Predictive Reasoning

Devastatingly smart Rafal Lukawiecki, that virtuoso of technical presentation, gave yet another brilliant presentation on how the seemingly “ivory tower” techniques of Artificial Intelligence can be used in present day applications for unusual data validation scenarios.
Read the rest of this entry »

Leave a Comment

Documenting Code

The most important thing I can stress here is that I truly believe in the value of good documentation and that this article only addresses what I believe is a flaw in some documentation strategies.

Usually a software document begins its life as an accurate description of what a system is doing and how it’s doing it. As the software evolves, the documentation doesn’t always evolve with it and sometimes in fact the divergence between what the software does and what the documentation says it does, becomes a problem. Now I know in theory that documents should be maintained but the reality is that this doesn’t always happen… In a perfect world software would be right first time and every time and requirements would never change, sadly this isn’t a perfect would.
Read the rest of this entry »

,

1 Comment

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).
Read the rest of this entry »

, , ,

8 Comments

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.
[tags]IT,Enterprise Applications,Scalability,3 tier[/tags]

Leave a Comment

Hello World (Goodbye Laptop)

Just a quick post to say that from a DSI blogging point of view I’m going to be very quiet for the next 8 months.

John and Eamonn here have allowed me to take an extended leave, and so from 29th of December until the 20th of August I’ll be travelling with my wife and daughters to China, Australia, New Zealand, Fiji, Chile, Bolivia, Peru and Argentina. It’ll be the first time in 20 years or so that I will not be developing any software for such an extended period of time (it’ll be interesting to see what the psychological effects of that will be!)
Read the rest of this entry »

Leave a Comment

The Tangled Web We Weave

A conversation over the proverbial water-cooler recently between myself and a DSI architect about the various agonies and ecstacies of CSS, Javascript and DOM manipulation led him to express surprise that a web designer from a creative background (me!) would be involved in such designer-unfriendly things as Javascript development. Funnily enough, I was thinking the same about him viz stylesheets!

In truth, CSS, Javascript and DHTML inhabit a fuzzy area between web design and presentation layer development/architecture (that fuzzy area just happens to be where I currently work). And while not all designers or developers need to make use of them all to the same extent, they are powerful and usable ways of presenting and manipulating HTML content, not to mention adhering to current W3C web standards.

HTML as we all know has a static presentation model. The browser parses, interprets and displays the marked-up content served to it. Which just sits there, looking pretty (or not). As the complexity of this beautifully simple idea developed sometime late last century, the infamous “tag soup” became more and more common – a well-nigh impenetrable bunch of structural and style tags including nested tables commonly (ab)used to control images and structure, and later, javascript to respond to user events – oh, what a tangled web we wove (to paraphrase this chap)!

In fact the rise of CSS is finally leading us in the opposite direction – back to simple mark-up, despite the increasing complexity of the contemporary webblication. Stylesheets allow us to separate structure from content in much the same way as ye olde HTML did, BUT with maximum control over the styling – so a simple collection of basic HTML and Div tags can be positioned and styled from a central stylesheet external to the served page e.g. www.decare.com.

DHTML allows a further level of control and user interactivity: Javascript, using the modern browser’s Document Object Model, can respond to user events to manipulate content – everything from simple image swaps on mouseover (don’t laugh, techno-kids, this is the primary feature that led to the universal browser take-up of Javascript during the Netscape/Microsoft browser wars!) to dynamically adding/removing objects, complex data filtering, etc. – all on the client side. Almost any HTML element can be both styled and positioned by CSS and manipulated as an object dynamically by Javascript, especially easily using the ID attribute to directly “capture” it without having to know its position in the object hierarchy.

In DSI we have used DHTML even more intensively in JSP Intranet apps, with Microsoft’s HTML Components concept allowing the even more modular use of client-side scripting – the .htc file contains javascript which can dynamically attach behaviours such as column sorting and the like to screen elements, and, uniquely, can be attached via style classes and IDs via the non-standard behaviour:(url) style attribute in the CSS. Of course this is only possible in a browser-controlled environment, but demonstrates the power of DHTML to approach the feature-rich functionality of FAT client software.    

The web may still be tangled, but adhering to standards and using good scripting practices may help us to negotiate a well-styled and usable route through it.

- Alan Murphy

2 Comments

Follow

Get every new post delivered to your Inbox.