Re.Mark

Architecture Stuff on MSDN

Posted in Architecture by remark on June 4, 2009

Maybe I should have spent more time on the title for this blog post.  Anyway, if you take a look at the Architecture Center on MSDN, you’ll see a new section about projects we have worked on here in DPE in the UK.  So, if you’re interested in some architecture stuff, I’d suggest you take a look.

Tagged with:

Ruby Tuesday #29 : Iron Ruby 0.5

Posted in .NET, Ruby by remark on May 27, 2009

IronRuby 0.5 was released last week – you can get it here.  Read Jimmy Schementi’s post for more info – I’d also recommend that you read his post about his presentation at RailsConf 2009.  For those of you exploring .NET 4, there’s a CTP of IronRuby available here (this version is roughly equivalent to the IronRuby 0.3 release. ) Having downloaded IronRuby 0.5, I set about following these instructions to run IronRuby on Rails – this is a sign of the progress that IronRuby is making.  It’s worth pointing out that there’s some info about deploying Ruby web apps via IIS and Rack in Jimmy’s RailsConf 2009 post.  Also released last week was version 0.91 of the DLR, which you can grab here

I Know What You Did Last PoC

Posted in .NET, Architecture by remark on May 19, 2009

Here’s a video that looks at the Intelligent Cities Proof of Concept I worked on recently.  Apparently, the beginning of the video is a little spooky…

Tagged with:

AIC 2009 – Dynamic Languages and Architecture

Posted in .NET, Architecture, Events, General, Microsoft, Python, Ruby, c# by remark on May 8, 2009

Thanks to all of you who attended my session at AIC earlier today.  The slides will be made available on line over the next week or so. 

I think the interesting capability made possible by the DLR is using static languages and dynamic languages together.  And there’s another benefit of learning a new language: when we only use one language we tend to think in that language – having other languages in our toolkit means that we have other approaches available to us.

So, where can you start to take advantage of dynamic languages?  The areas I discussed today were:

  • extending your application by adding scripting support to your application
  • configuring your application with a dynamic language
  • creating a DSL using a dynamic language
  • writing one or more layers of your architecture in a dynamic language
  • testing your application(s) with a dynamic language

Of all of these, extending and testing are probably the best places to start.

I also talked a bit about the DLR (and a couple of the Iron Languages – Iron Python and Iron Ruby) and the way that C# will be taking advantage of the DLR. It’s fascinating to see the evolution of programming languages and how the trends of dynamic, functional and concurrent programming are influencing this evolution.

Here are the links that I gave out in my session:

http://www.codeplex.com/IronPython

http://ironruby.net/

http://www.codeplex.com/dlr

http://devhawk.net/

http://blog.jimmy.schementi.com/

Dynamic Languages on .NET (www.microsoftpdc.com)

http://ironpython-urls.blogspot.com/

http://www.ironpythoninaction.com/

I also mentioned the Anders Hejlsberg session on the future of C# – you can watch that here – and a Channel 9 video of Anders Hejlsberg and Gilad Bracha discussing language design, which you can find here.

As part of the preparation for the session, I exchanged some emails with a few folks including Michael Foord.  For those of you who’d like to see Michael’s take on this subject, he’s posted about it here.

Tagged with:

Ruby Tuesday #28 : Architect Insight Conference

Posted in Architecture, Events, Python, Ruby by remark on May 5, 2009

This Friday the fourth annual Architect Insight Conference will roll into town – this year the town is London.  I’ll be speaking about dynamic languages from an architectural perspective and how and when you can incorporate them into your architecture. 

Tagged with:

MSDN eBook available

Posted in .NET, Development, Microsoft, Python, Ruby, Software by remark on April 21, 2009

Eric has posted the lowdown on the MSDN eBook that’s just been made available.  It includes a short article I wrote about the DLR along with another 12 bite size articles that cover everything (well, nearly everything) from IronPython to developing games with XNA.

Tagged with:

Adding mobility to an ASP. NET MVC site

Posted in .NET, Architecture, Design, Development, Software, c# by remark on April 16, 2009

I’ve posted a short article about how I added mobile support to the iWantGreatCare Proof of Concept.

On the Origin of DeepZoom Mosaics

Posted in .NET, Design, Development, silverlight by remark on April 6, 2009

The mosaic of Charles Darwin – made from the pages of On the Origin of the Species – intrigued me the first time I saw it and, having shown it to quite a few other people, I know I’m not alone. It was built by Shoothill in collaboration with Shropshire Tourism (UK) Limited and the world renowned Darwin expert Dr. John van Wyhe and was part of Scott Guthrie’s keynote at Remix UK 08. I caught up recently with Rod Plummer, the Managing Director of Shoothill, to find out a bit more about it. I figured there’d be others apart from me interested and Rod was kind enough to agree to me publishing an interview with him:

Let’s start with a brief overview of Shoothill.

Three years ago my business partner and I were inspired to form the company to exploit the exciting opportunities presented by the Microsoft Virtual Earth platform. We secured a few contracts fairly quickly and took the decision to continue to invest in growing the firm. We are now up to 8 staff and are in the process of moving to bigger offices to accommodate our expansion plans for 2009.

Since getting involved with VE development we have been increasingly exposed to other MS Live technologies and one part of Silverlight (Deep Zoom) particularly interested us.

When did you first see DeepZoom?

I first saw Deep Zoom (then codenamed Sea Dragon) in 2006 at a demo given by a Microsoft employee showcasing the entire King James Bible being read aloud. Although the product was still in its early stages then, I was instantly struck by the endless possibilities of this technology.

What do you think is the ideal application of DeepZoom?

The power of being able to view massive images without having to download them to a local desktop and only view those pixels that you need to lends itself naturally to document / image storage and repository retrieval functions. I could also see immense possibilities for Deep Zoom in the fields of advertising, creative marketing and enabling the construction of highly engaging, immersive experiences in order to convey corporate, commercial and public sector messages, and it is within these fields that Shoothill has been most successful.

What DeepZoom work have you done?

We have done a few things in DeepZoom, most notably the Silverlight Mosaic for the 200th anniversary of the birth of Charles Darwin made up of digitized scans of the pages from the first edition of On the Origin of the Species. We recently completed a project for The Sun, (the UK’s most successful tabloid newspaper), during the Christmas of 2008 which certainly got our team in the festive spirit.

You’ve done some interesting mosaic work with DeepZoom. How do you go about creating a mosaic?

Mosaics have been around since the 4th century BC and are basically attempting to do the same thing: – make base images (cells) combine to look like the master image when placed in a pattern. A mosaic in digital imaging is a collection of non-overlapping images, arranged in some tessellation (cell shape). A photo mosaic is a picture made up of various other pictures in which each "pixel" is another picture.

Traditionally large digital / photo mosaics have been virtually impossible to distribute across the web due to the huge file sizes involved and the consequential time lost in attempting to download them. For example, if you were to create a mosaic made up of images of 300 x 400 pixels and you wished to have the mosaic itself made up of say 50 x 50 images, then the resultant file would equate to an image of 12000 x 15000 pixels and around 1GB.

So the first thing to think about is what is your master image that you wish to make into a mosaic. If it is too complicated and ‘busy’ the result will be disappointing (unless you go for a massive image) so try to use a relatively simple image as your master.

The second thing to think about is how big do you need the cell images too be (too big and the mosaic will be huge, too small and the cell images will be of such poor quality that you will not be able to view or read them. However if you reduce the size or quality of either the target subject or the content images to overcome this then the net result is overall poorer quality. The best method is to select a group of cell images and then use some batch software to get them down to approx 300² pixels before you begin to build the mosaic.

Let’s talk stats. How big is the DeepZoom Darwin image? If I were to create a physical version of it, how big would it be?

The actual size of the Darwin image is actually 860MB and should you wish to print it out it would take 381cm x 508cm of paper and that equals around 1500 pieces of A4 paper!

As I said earlier the size of the image is the crucial element of building Silverlight mosaics and we have compiled images of nearly 5 GB and far bigger than the Darwin image. This is naturally processor intensive and painstaking work. The real challenge and skill in compiling mosaics is maintaining image integrity and quality whilst compressing them to a manageable size. Silverlight adds a great deal of value when bringing them all together.

Any advice for someone about to pick up DeepZoom for the first time?

Think before you start, about who the intended audience is and what are you trying to achieve and what is the end result your are looking for (i.e. in the case of a mosaic do you want the finished mosaic to remain true to the original master or are you happy to lose some of this quality in order to gain better cell images?).

Next, try and be original and come up with something that is intriguing to the eye (for example to help the user understand the Darwin image a little better we offset the pages of the book (very slightly) so that the end user would see straight away that there was more to the image and it was worth zooming into it further

Finally I would also say that although Deep Zoom is fantastically versatile and incredibly powerful it does have certain limitations as to file size (both in total number of pixels per image and actual / physical file size) and so you need to get to a happy balance between all three of the variables (i.e. Master image, cell image size and Deep Zoom limits).

Naturally we are more than willing to help on projects, too. If you have a Deep Zoom project that you need help on please email us at deepzoom@shoothill.com.

Ruby Tuesday #27 : IronRuby, Silverlight, Bacon and Eggs

Posted in .NET, Ruby, Software, silverlight by remark on March 31, 2009

I watched John Lam’s talk at Mix 09 the other day – it’s worth watching.  During the talk John shows how to test Silverlight applications in a BDD style using IronRuby, and a gem called Bacon.  Part of the setup includes a small library to run Bacon in Silverlight.  It’s called, as you may have guessed by now, Eggs.  If you want to try Bacon and Eggs for yourself, Jimmy Schementi has posted a how-to here.  Happy frying!

Made Up Technical Terms #20

Posted in Development, General by remark on March 24, 2009

Aggreviation – the act of expressing invective in the form of acronyms or other abbreviations in order to vent one’s anger in the most concise way possible.