beta code development lifehacks programming

Html5 (.1) : the language of the cloud?

I’m back in Scotland now, so I’ve posted up my updated presentation for Techmeetup and DDD Dublin. This presentation should work in Firefox 4 (and 3.5 up with html5 turned on in about:config) and will mostly work in Chrome, although you will need a microformat reader such as Tails Export for Firefox. If anyone can test this on Safari or can recommend a Chrome extension, please comment below and I’ll add it to my follow up post when the talk hits Channel 9.

For those of you in Dublin who want to see the video that refused to play during the session, here it is :

As before, I would like to acknowledge the following that I used in preparing my presentation:

I would also like to thank the organisers of Techmeetup and of DDD Dublin for all the hard work, particularly for DDD where the Irish audience were unfortunately thin. I hope all the attendees will spread the word for next year.

A few things I learnt from these two sessions :

  1. The smaller room and audience in Techmeetup were far more conducive to audience participation. The room in Dublin was a little intimidating, and a lot of the audience were strangers, which doesn’t happen much at Glasgow events these days.
  2. If you want to connect a widescreen netbook to a 4:3 projector, don’t expect it to know what to do. Set it up manually or spend 15 minutes with 2 screens that cannot sync and needing a reboot.
  3. Make sure your backup is compatible with at least one other machine (hint: Windows or Mac are more popular than Linux)
  4. If all else fails, make sure you have a video of the presentation to hand.
beta code google programming test

DOOR Oasis Office Reporting

I’ve been hinting in my status in various places (twitter, facebook, etc..) that’s I’ve been playing about with an idea to do some database/web service reporting using the ODF format, powered by a bit of XSLT. The grand idea is that ODF editors are easier to use and to get hold of than the existing reporting frameworks, ODF is reasonably easy to edit by hand if things go horribly wrong (or you need to change a server name), and, as an XML format, I can use my data to change anything in the output, content, styling, could even generate different letters for US and EU customers by selecting paper size based on country. It’s still very much in the requirements capture stage at the moment, but if it sounds like something you’d be interested in, hit the link below and have a nose around. There’s a discussion group too, which I might have to tweak if things get popular, so pop on over and give me your thoughts.

door-reports – Google Code

Blogged with the Flock Browser
beta code programming

MSDN roadshow 2008 : Glasgow

MSDN roadshow for slides and details.

I attended this event last week, but I’ve only now had the time to write about it, so I hope my notes are up to scratch. Overall impressions were that it was definitely an advertising event, and so less useful than community-focused events such as the Developer, Developer, Developer event (which I’m getting tempted just to call d3) but there was some useful information in the talks. Not sure if or when I’ll get the chance to use them properly but here’s my thoughts on the technologies. If I make any mistakes, feel free to correct me and I’ll edit this content, but make sure you check out the slides above or on the speaker’s sites as they’ll be more accurate.


Mike Taulty

This is Microsoft’s answer to abstracting the database layer. ADO previously got as far as abstracting the connection, whilst leaving provider-specific SQL embedded in the code. The new version has two new abstractions which build on each other, which together make up the entity framework. At the basic level is a new SQL variant ESQL (entity SQL) which abstracts out the underlying database language to a more .Net-friendly variant that returns objects rather than rows. On top of this is built ADO’s LINQ-compatable ORM that allows LINQ queries to run against any ADO database provider.

To make this work, ADO.Net uses XML config files like NHibernate to map between the database schema and the object schema. Unlike NHibernate, ADO.Net adds XML definitions of both the database and the object schema. (Wouldn’t it be nice if databases had a schema we could access from code, eh…?) ADO.Net then uses the object schema to generate .Net classes like LLBLGen. These partial classes support LINQ and some extension via methods, but cannot use properties as these are lost whenever the classes are re-generated. The sample code provided in the talk discussed an ugly hack where a metadata class containing properties was associated with the generated partial class via decorators. It works, but it’s hardly as easy to use as partial classes generated by, for example, Visual Studio’s GUI designer.

Apart from ORM, the new ADO.Net also provides Data Services, which allows CRUD database access via RESTful URIs, which is an alternative to embedding SQL in your URLs, if you don’t fancy putting too much abstraction between your website and your database. Data Services has also caught the LINQ bug, making queries through web services easier, and providing an alternative access method to the standard SOAP approach favoured by many exisiting web services.


Mike Ormond

Web 2.0 and AJAX may make for more responsive web pages, but they have a habit of breaking expectations, such as the behaviour of the back button, which won’t undo incremental changes since AJAX applications tend to perform in-page loading that doesn’t update URLs. Google and Yahoo both have toolkits that help with this, and now Microsoft’s ASP.Net extensions add state data to ASP.Net apps.

ASP.Net also supports routing tables to de-couple the web hierarchy from the disk hierarchy, which is useful for tagging, RESTful URIs and other behaviour, but was developed in ASP to provide an MVC framework for the web, in order to provide cleaner code and a simpler URI interface.

The preview edition is in a lot of flux, so I’m not sure what state it’s in a week on from the roadshow, so I’d suggest catching up with the blog above for the latest information.

Silverlight 2

Daniel Moth

aka Silverlight.Net. You can now use .Net languages to script Microsoft’s flash killer, which is definitely cool from an IronPython perspective, although it is a strict sibling of .Net (think J2ME vs Java). The really interesting parts of Silverlight 2 are in the fact that there is now full 2-way communication between the web page hosting the silverlight app and the app itself, and that Microsoft is now planning a designer’s studio for Silverlight to do the GUI and the animations. How long before all apps are written partly with the XAML-based Expression Blend? If you think there’s a lot of variety in interfaces right now, I can see a lot more variety coming once designers get their hands on Blend.

Visual Studio Team Suite

Neil Kidd

Anyone who’s not using unit tests and refactoring to improve their code is not a professional programmer. The new features in VSTS aim to bring the new version up to compete with the other testing and refactoring tools out there. Continuous integration and testing were covered at d3, but this talk explored the idea that CI can include any task that can be represented as a .Net object, and there are a number of such tasks available from the contrib server including tasks to deploy a database or set up a virtual server ready for a test environment. The CI mantra was pushed with the comment that Flickr have a 30-minute release schedule so that users are always up to date with new features and bug fixes. It’s a lot easier to do that on a website than with deployed software like Windows, but it’s a good thing to keep in mind when setting up CI. It’s nice to be able to prove that the software is ready to go whenever you need it.

The part that most interested me about the new VSTS was the addition of unit testing, refactoring and source control to SQL Server databases (with a promise of other dbs to follow). The source control was fairly straight-forward, one SQL file for each table, key, constraint, view, procedure, etc, laid out in files to match the heirarchy of the database in Management Studio, so you can track changes at a very fine-grained level, so long as you’re using something a bit more advanced than CVS. Once the schema is imported, refactoring options such as wildcard expansion in SELECT queries becomes available to provide more robust code. Unit testing of SQL stored procedures, using SQL conditions such as row counts and performance measures have been added, and the unit tests are run as transactions to prevent any changes to the database. The testing framework also includes performance and load testing, web testing that allows testing of a sequence with captured data, and a data generator similar to the one demonstrated by Redgate at d3.

Technorati tags: , , , , , , , , , , , , , , , ,

Blogged with Flock

Blogged with the Flock Browser

Tags: , , , , , , , , , , , , , , , ,

beta blogger test

Test Post

Using external posting tools to post to my Blogger blog.


beta blogger google richtext writely

New Beta

I’ve just thrown this blog onto the new Blogger Beta to make my life a little easier, as I’ve already got a Google Account linked up.

I’ve used rich-text editors before, especially in Writely, but this seems quite nice. Not sure how new it is as I haven’t posted here in a while.

Doesn’t look that different so far, but at least it’s easier to get into. Might see me posting more here, especially if Flock still works with the new beta.