LightWindow – an excellent LightBox implementation

LightWindow is perhaps one of the best of the LightBox-type implementations around, supporting almost every media type currently in use.

screenshot

I found a few gotchas, but these were very minor:

  1. needs XHTML pages with correct DOCTYPE for it work in IE
  2. Might need to edit lightwindow.js to correct the hardcoded paths to the skin elements
  3. Replace the first line with the second in the HTML HEAD:

You can grab the files here: http://www.stickmanlabs.com/lightwindow/lightwindow.zip

Array formulas in Excel

Perhaps one of the most useful yet least known features of Excel is its array formulas. Essentially, array formulas are standard Excel expressions which are evaluated over a range of cells, rather than just a single cell.

In my case, I needed to aggregate the status of various DevDoctor projects, tracked in an Excel workbook:

Each row against a status (D5:D9) must aggregate a count of that status from a “status” column (here, column F). Using standard formulas alone, this is not possible (unless you resort to VBA scripting); however, using array formulas, this becomes a breeze.

The formula in cell D5 (counting the projects in Pending status) is:

=SUM(IF((F$12:F$42=C5),1,0))

When you press CTRL+SHIFT+ENTER on this formula, Excel converts it to an array formula, and indicates this with curly braces:

The expression is slightly strange, with a conditional being evaluated over a range of cells (F$12:F$42), rather than the usual single cell. In effect Excel calculates the inner IF expression once for each cell in the range, and the outer SUM expression then produces the required summation.

UPGRADE: MCAD Skills to MCPD Web Developer by Using the Microsoft® .NET Framework

I passed my 70-551 upgrade exam a couple of days ago, giving me MCPD Web Developer certification.

Having developed web-based applications in C#/.Net 2.0 for the past few years, this was relatively straightforward. There are some tricky questions on things like:

  • serialization
  • ACLs and code access security
  • encryption

However, I found the SQL Server 2000 developer exam (70-229) to be more taxing, as well as potentially more useful for building enterprise software, so I am surprised that the new MCPD (Enterprise Applications Developer) certification does not have any detailed database knowledge requirements.

Anyhow, a very handy guide to studing for and passing the 70-551 exam is here: http://www.alexthissen.nl/blogs/main/archive/2006/12/31/prepping-for-exam-70-551.aspx

Oracle on Windows Seminar

I recently attended an “Oracle on Windows” seminar in London, organised by Oracle and sponsored by Quantix.

There were four speakers:

  1. Mark Whitehorn – independent DB consultant
  2. Julian Boneham – Quantix
  3. Paul Brankin – Oracle
  4. Jules Lane – Oracle

The talk from Quantix was unfeasably dull; full of sales-speak (“…all vertical markets…”) and delivered by a bloke who clearly wasn’t interested.

Paul Brankin talked about data silos and how this architecture arises (it’s simple to manage initially), how it becomes limiting or fragmenting in business terms (due to inaccessible data, and under- or over-utilization of hardware resources dedicated to a single silo) and how Oracle’s Real Application Clustering (RAC) can help solve the problem. Specifically, Oracle has an Active-Active database failover solution, whereas Microsoft’s SQL Server has only Active-Passive (in the form of mirroring).

Jules Lane gave an overview of the Oracle middleware application stack. Interestingly, he said …we are not really expecting people to write Java code any more…, but instead to rely on component configuration and code-gen tools alone when building middleware applications. The Oracle BPEL Process Manager is akin to BizTalk, as a business process orchestrator, although seems more advanced. No mention of WF/WCF in Jules’s talk, though of course this technology is still fairly new. Also interesting was the Oracle Webservices Manager, which allows policy-based access control to web services, including ASP.NET web services.

In general, the talks by Oracle and Quantix were disappointing; they were generally too sales-focussed, and their “Oracle on Windows” pitch was somewhat embarassed, as if Windows was something they only supported grudgingly. Far more engaging was the first session, by the independent consultant Mark Whitehorn.

Mark – much to the later ire of the Oracle speakers – said categorically that all three major database engines (DB2, Oracle and SQL Server) are extremely competant database engines, and that debates about their relative merits are pretty arcane and irrelevent. He noted that many people choose databases on religious grounds, proffering out-of-date evidence for why one engine is superior to another (e.g. “it’s a poor man’s Sybase fork” or “it cannot even row-lock”).

He stressed the need to look at the other kinds of tools and features available for these engines as more important reasons to choose one over the other:

  • Analysis (e.g. Business Intelligence [BI] tools)
  • Middleware connectivity
  • Server/Database Management

Mark then went on to give some lucid examples of real-world BI analysis (on 150 year old plant specimen records, collected by Charles Darwin!) to demonstrate how useful this kind of analysis can be, in combination with human domain experts.

He finshed by commenting on the new Spatial data types offered by the three database engines, and how some amazing results can be had using “mashups” (think Google Maps).

Mark was an extremely entertaining speaker, who clearly is an outstanding specialist in his field, and it was a pleasure to listen to what he had to say. By contrast, the other speakers seemed rather awkward and apologetic! It was clear from this seminar that Oracle is still well-placed for extremely high-end database applications, but similar resiliency CAN be implemented using SQL Server, at a reduced cost. All three vendors, but especially Oracle and Microsoft, are increasingly competing head to head for the Enterprise AND medium-size database markets, and this trend is set to continue for the next five years at least.

Subversion made easy: VisualSVN Server

Subversion is fairly straightforward to install and maintain, but VisualSVN Server makes the process on Windows almost trivial:

  1. Download
  2. Run Installer
  3. err, that’s it

It bundles Apache and the SVN server, and comes with a nifty Admin console which makes it easy to change repo permissions. It even provides pretty repo browsing via XSLT in the web browser.