Tip: Learn through sharing

Finula sent out an email yesterday asking a group of us to supply some tips for being a successful developer. The short versions will get included in this afternoon’s MSDN Flash newsletter, and we’re each blogging our full response.

My personal advice is to recognize the power of learning through sharing. Coatesy touched on the idea at the end of his own tip.

Attending user groups is one thing, but getting up and contributing your own knowledge is what really drives these groups. You’ll be pleasantly surprised at how much you’ll actually learn about a technology if you step back and prepare a presentation for your peers which explains what that technology is, and how it works.

One of my work mates, Steve Godbold, recently delivered a presentation about LINQ. In prepping for the talk he knew he’d need to explain expression trees, and he guessed he’d get some questions about LINQ to SQL vs LINQ to Entities. Pleasantly shocked about how much more there was to know about LINQ, he’s know turned this prep into a series of blog posts too.

Presenting isn’t for everyone though, but this is where blogging steps in. It might seem a bit egotistical at first to think that people want to read what you have to say, but the reality is people genuinely do! Think about the number of times you’ve ended up reading somebody’s blog post before to help you solve a problem. Posts don’t need to be technical wizardry to warrant publishing either – it’s often the simple little tricks that people find real value in. One of my more popular posts describes how to do a hover effect in CSS. It also opens up your ideas for others to comment on, which might prompt something you’d never thought of before.

Hopefully this will give you a bit of inspiration to get up and really participate in the vibrant technical community around you.

What now? If you haven’t already, subscribe to MSDN Flash, submit your 10 minute demo for the chance to win big prizes, contribute to your local user group, and start a blog.

What’s your tip for being a great developer?

Video: Architectural Considerations for the ASP.NET MVC framework

Update (16th July 2008): There’s a better version of this presentation available at http://blog.tatham.oddie.com.au/2008/07/10/video-aspnet-mvc-preview-3/

This talk doesn’t actually assume any prior knowledge of the ASP.NET MVC Framework, so it goes through the whole intro at the start (albeit quickly). I then delve into some IoC concepts, and finally mash it all together. The IoC framework used is Castle Windsor.

This was recorded at the VIC.NET usergroup in Melbourne, Australia on 10th June 2008.

You can grab the Windows Media file directly from:

http://tatham.oddie.com.au/presentations/20080610-VICNETMelbourne-ArchitecturalConsiderationsForAspNetMvc-TathamOddie.wmv (48MB, 47min)

Or stream it from Google Video:

World Wide Telescope Backchannel Chat

Thanks to an invite from Nick Hodge, I spent an hour this morning in a chat with the creators of WWT. I was broadcasting notes of my chat to the Readify internal tech list, and this is a post-chat dump of that discussion.

10:00am

For those interested, I’ve been sitting on a backchannel chat around WWT.

There are some good questions being raised.

I asked about the similarities between it and terraserver (which was worked on by the same guys). Similar concept of a a tile-based system to pull down the images, but it uses a projection called Toast instead of Mercator. Mercator doesn’t work properly at the poles, and as you pan around the north/south axis actually change direction. (Try looking at the poles in VE and you’ll see this pretty clearly).

Toast is basically … Imagine the world as an octohedron. Take a single square sheet of paper and wrap it around that octohedron. Make the middle of the piece of paper the equator. Fold down the corners to the north and south pole. Then tile it for multi-resolution… They use a similar quadtree system for adressing these tiles.

I asked if Toast was something MSR developed. It’s been around for a while now to the point that they forgot who first came up with it. 🙂 NASA + CalTech have been developing it further and using it for their full sky projections. There are 50 full sky surveys in WWT.

Social networking on top of WWT. One guy has suggested a social network on top of it for amateur astronomers to upload and share their own data. There seem to be some plans around this coming which sounds cool.

Indigenous constellation data – american indian, aboriginal, etc. You can already create your own star maps with constellation figures – first step for the above idea. They’re also currently researching and working with indigenous groups to develop new tours. So like the current “Visit the centre of the Milky Way” tour and that kinda stuff, you’ll soon be able to do a tour of the Aboriginal Dreaming stories and stuff like that.

Infrastructure. Tile data is served off the VE servers (there’re already 1,000 servers there – might as well use them). The app servers run separately and are funded by MS External Technology Group (whoever they are).

Still going … will reply with mroe details in a min.

10:09am

First release of a dev kit in about a month. WTML. Communities (add menu items and data links to websites and stuff), data model, how to present your images, etc.

v2 they might release an object model for driving it yourself, embedding it and writing plugins that do more than just inject web links. “But that’s down the track for now”

Oh cool – you can right click on any point of the sky surface and copy a link to it. Send it to a friend and when they click it, WWT will open and sleuth to that point. You can integrate your own links there to your own sites too … with the communities API.

10:21am

Original prototype of the engine developed in 2001. Some parts of the model as far back as 1993. Client built over the last 18 months by essentially a 1 man team. Was done in Managed DirectX for development productivity. He thinks if he’d done it in C++ and OpenGL it would have taken him a team of 8 people and 2 – 2.5 years.

The main digital sky surface is one terapixel – one million pixels by one million pixels. They’re about to load in an IR based surface which is four terapixels!

They have more than a dozen TB of data directly available or connected to their databases. Summer release to would add an interface to the Hubble archive (another 400TB). That will be stored by the Hubble people still, but WWT as the client. They’re plugging in more and more sources, so answering the question of “how much data?” is becoming harder and if they can answer it accurately they consider they have failed.

They have two clusters they use for processing data. They had a third one which has now been transitioned into their app tiers. Serving millions of hits a day, so third cluster exclusively used to serve that.

Almost exclusively C# based applications.

Some partner called DigiPede (?) provided their grid solution.

Somebody asked about Easter Eggs. Apparently that’s a fireable offence at Microsoft now, so unlikely apparently. 🙂 The list of contributors is very publically listed instead.

The only secret code is a big ugly Close button on the about dialog which only appears if your username is “dinos”. Apparently a tester wanted a close button and kept reopening the bug so he put it there just for her. 🙂

Some things like the moon are dynamic – if you speed up time you can see it move across the sky. If you speed up more you can see it rotate and move through phases.

Man-made objects like ISS are hard to track because they move too fast across the sky so users would keep losing them. It’s more appropriate to do point-in-time type solutions. I asked about them providing a feed of man made objects so that when new shuttles launch we can track them – no answer as yet.

10:20am

Andrew Matthews sent me:

Hi Tatham,

I’d like to see the following on WWT. All of which is based on the idea that WWT is not just a platform for armchair astronomers, but a souped up interactive star chart that can be used by amateur observers.

  • Night sight mode with everything in red. Allows night observers to use it without getting after images
  • Telescope control software
  • CCD image registration software
  • Catalog identification of stars
  • Move to stars by catalog id
  • Ephemeris
  • Observing logs
  • RSS feeds with notable happenings coming up (ie. Transits, meteor shows, newly discovered comets, supernovae etc)

10:25am

Ooo – answer to my man made object feed question. Everytime you click into communities it’s reloaded, so if somebody exposed a community for the ISS for example, it’d be trackable and up to date. In the 2.0 timeframe communities would be able to describe orbital elements too (so they get animated in real time). A few months until that functionality.

Asking about night sight mode right now…

Telescope control software already in there.

CCD image registration? explain quickly for me

Catelog identification – already there. Right click on any point in the visual and it tells you what it is.

Move to stars by catalog ID – does that too I think.

Ephemeris? explain quickly for me

Observing logs … hmpf – will ask

RSS feeds for notable events – this is covered by the communities system. Communities API uses WTML to describe space stuff and integrate that data into the UI, add menu options to them and that kinda thing.

10:27am

They’re talking about an ISV who builds telescope control software who’s developed somethign that lets you stream imagery of live events into it! Cool …

Night sight:

“good suggesstion. the way I personally use this – i have many different astronomy apps and all their different night sight modes are unusable. in wwt you can adjust the colours in wwt and windows to pick ones with decent contrast and stuff. essentially, thats the way i use it. i used it a year ago at a star party to do all my imaging and control my telescope and putting a filter over it, it works fell.”

(Filters are a UI feature in WWT which allows you to adjust the hue of the whole interface – under the view tab at the top)

10:29am

Andrew Matthews sent me:

Image Registration: Take multiple pictures through CCD (or webcam) and then do image analysis to remove images blurred by atmospheric turbulence

10:32am

> Ephemeris? explain quickly for me

I googled it to find a definition. 🙂

A lot of objects in there already do that. The whole UI is point-in-time based, and everything moves accordingly. It plays out in real time, or you can accelarate it.

Some objects, like the moon, even rotate and move through their phases.

The communities support will be upgraded in v2.0 to include orbital object support. So if you publish a community, you’ll be able to markup your own orbital objects and it’ll position them and animate them accordingly.

10:33am

Missed out on the CCD image registration question … most likely a plug in you would develop yourself.

WWt isn’t meant to replace software like the $500 planetarium in a box solutions.

[11:45am Updated the username for the easter egg. ;)]

The Tech.Ed "Web" Track

Late this afternoon, the Aussie twittersphere had a brief flurry of activity around the “web” track announcement for Tech.Ed this year.

The problem is that there are 12 sessions to cover everything “web” and UX – that’s one session on AJAX, two on Silverlight, nothing on ASP.NET 3.5 SP1 content, one IIS admin talk ….

As a result of this anorexic track size, lots of great sessions missed out. It’s great seeing people like Scott Hanselman and Jefferson Fletcher locked in. Alongside the official IE8 announcements though, it’d be good to something lik Damian and Lachlan’s boots-on-the-ground web standards talk. Jose Fajardo has been doing some really innovative work with Live Mesh, but there’s not even a single session scheduled around the Live platform yet. There *might* be something as a lunch time chalk talk.

I think the wider issue here is the track design – there are way too many web-related technologies to fit into a single track. As an idea for future years, I don’t think there should be a web track at all – in the same way there’s no explicit “Winforms” track. Web sessions should be distributed between the others. AJAX in developer tools and technologies, MVC in architecture, Silverlight in a new UX track, Dynamic Data in the Database + BI track, IIS in the server track, etc.

To allow “web developers” to find “web” sessions, sessions could be tagged with the technologies they include and ASP.NET would just be a common tag.

I use terms like “web developers” in quotes as I think this is now a very old-world view of developers and the systems they are building. Unfortunately I think it is this view that has driven the problems that we as a community are perceiving this year.

I’m still excited about Tech.Ed this year, I just don’t think they ‘got it’ with this track.

Video: Developing great applications with ASP.NET MVC and ASP.NET AJAX

Here goes my first attempt at putting one of my talks online. This is a screencast from my recent Remix talk in Sydney.

You can grab the Windows Media file directly from:

http://tatham.oddie.com.au/presentations/20080520-RemixSydney-MVC-TathamOddie.wmv (40MB, 42min)

I also experimented with some online services.

Viddler (http://www.viddler.com/explore/Tatham/videos/1/) is ok, except that in the standard player it’s scaling my video down which make it very hard to read (not a very good scaling algorithm). If you watch it full screen it’s fine, or you can download the original video from their servers too.

Google Video (http://video.google.com/videoplay?docid=-7676497915408440399&hl=en) has a massive player, but the resolution is crap. The embedded version looks ok:

YouTube was out of the question because they only support videos up to 10 minutes long.

None of the three services seemed that great. Next up I’m going to try Screencast.com. I have a feeling that there’s a reason why they exist …

Update: Screencast seems to be the best (although still not perfect). It kept my video in WMV format which means there was no scaling or transcoding in play. Unfortunately this also means that you have to have the Windows Media Plugin installed. I have a feeling it will host an SWF for me, as long as I make them SWF myself direct from Camtasia. The interface is pretty ugly (shows you success messages in big, scary, bold, red CAPITALS!) .

http://www.screencast.com/t/C5CnoFy4zH2