Thursday, 26 November 2009
Brighton ALT.NET Xmas Dinner, Wednesday 16th December, 7:30pm at Pizza Express
Tuesday, 10 November 2009
Brighton ALT.NET Beers – Notes from November meet-up
Once again, big thanks to all of those who turned up to the ALT.NET beers on a very cold November evening last Wednesday. As promised here are some brief show notes.
The topics discussed were:- Command-query separation (CQS)
- Parallel programming
- Object/Relational Mapping vs. Stored Procedures vs. Inline SQL
- Windows Presentation Foundation (WPF) vs. WinForms
- StackOverflow DevDays (London)
- Multi-tenanted applications
Command-query separation (CQS)
Totally new one on me. Scares me a bit as it sounds different to what I’m used to and I don’t fully understand it yet. If I was less enlightened and not an embracer of change, I might be sharpening my pitchfork and ringing round to gather a mob.- http://en.wikipedia.org/wiki/Command-query_separation
- http://www.infoq.com/interviews/greg-young-ddd
Parallel programming
AKA Threading. It’s going to become more and more of an issue with quad-core iphones merely a year or two away.Thank to Bruce for DMing me these links:
- http://blogs.msdn.com/maestroteam/
- http://www.tbray.org/ongoing/What/Technology/Concurrency/
- http://blogs.msdn.com/usisvde/archive/2009/10/24/how-to-get-started-with-multi-core-parallel-processing-you-can-use.aspx
And to HadleyHope for this one:
I also really like the series Jon Skeet produced:December’s Brighton ALT.NET Beers will actually be ALT.NET Food. We will have dinner at a restaurant in the middle of town somewhere.
Hope to see you there!
Tuesday, 3 November 2009
Brighton ALT.NET Beers - Wed 4th Nov 7pm at The Lord Nelson
This is probably going to be the last ALT.NET beers this year with questions/discussion; the next one in Dec should probably just be about having a few beers, celebrating and reflecting on the year.
The new venue is The Lord Nelson pub which is a couple of doors down from the Albert. http://tinyurl.com/LordNelsonPub
Wednesday, 14 October 2009
Mrs Focker and internet damage
“The Net interprets censorship as damage and routes around it.” – John Gilmore
It’s been a pretty intense week so far in what Newsnight calls “cyberspace”.
When is a secret not a secret? When it's on Twitter.
An injunction served on the Guardian and at least one other national newspaper, was meant to stop the papers reporting that the MP Paul Farrelly, had tabled a Parliamentary question about the oil traders Trafigura and its solicitors Carter-Ruck. And it succeeded - up to a point.
…
The social networking site Twitter, was soon awash with posts deploring a threat to media freedom and the reporting of Parliament.
What Trafigura and Carter-Ruck have been a victim of this week, is the combined effect of the internet interpreting censorship as damage (and routing around it), with the Streisand effect.
Barbara Streisand is one of those people who are *supermegafamous* and you know what for, but sometimes it’s hard to recall anything they’ve actually done. Her IMDB list is impressive but I try and remember seeing her in something and I mainly 404. I only really know her as Mrs Focker in ‘Meet the Fockers’.
I digress. The Streisand effect is the act of trying to suppress information but instead generates a meme. A giant, unstoppable, self perpetuating, amplifying wave of attention. Precisely because you tried to engineer the exact opposite. Babs tried to stop a photograph of her house being part of a coastal erosion study and as a result, we all know her house looks almost exactly like the one in this picture on the right. [source:wikipedia].
Oops.
There’s no doubting that it was Twitter and Wikileaks that facilitated this week’s events.
Some people say that Wikileaks could become as important a journalistic tool as the Freedom of Information Act.
I don’t doubt it for a moment. I think the rules are changing. I think they’re changing as significantly as they did when the web went mainstream in the late 90s. I think some organisations are going to find out if sunshine is the best disinfectant. I think it’s going to be interesting.
It’s also important to note that despite the media reporting this as a battle won, it isn’t over yet.
Monday, 5 October 2009
Brighton ALT.NET Beers - Tues 6th Oct 7pm at The Lord Nelson
So the new venue is The Lord Nelson pub which is a couple of doors down from the Albert. http://tinyurl.com/LordNelsonPub
Hope to see you there!
Sunday, 26 July 2009
Simple URL Rewriting with ASP.NET and Managed Fusion UrlRewriter
You can download the example discussed in this post here.
Why rewrite?
The default URLs from ASP.NET Webforms (and possibly even MVC) are not fantastic for SEO (Search Engine Optimisation).
You know the sort:
http://example.com/Questions/Question.aspx?ID=345
Google doesn’t really like URLs like this. It doesn’t say much about the page it represents. It might have an idea that it’s something to do with question 345 but that could mean anything. The file extension (.aspx) doesn’t help either.
What Google likes to see, is something a bit more like this:
http://example.com/questions/345/how-do-i-do-something
Well with Webforms you’re a little stuck, as the URL is dependent on the file structure of your solution and name of the files.
Unless..
..you perform some voodoo URL rewriting.
Example setup
We are going to map an incoming request to a URL like this..:
http://localhost:52468/questions/1337/how-do-i-do-something
..to the default page URL like this:
http://localhost:52468/Default.aspx?ID=1337
To achieve this I’m going run through a very simple rewriting setup.
- I will be using Nick Berardi’s excellent (and free) Managed Fusion UrlRewriter.
- I am only going to be covering the absolute bare minimum to get you going.
Nick has a more detailed example here and you should also check out Scott Guthrie’s post here. (N.B. My example is based on Nick’s)
First, create a standard web application:
Then download UrlRewriter from Managed Fusion. Unzip it, put the dll and pdb in a directory of your choosing and add a reference to the dll.
Next, create a new text file called ManagedFusion.Rewriter.txt and place the following in it:
In your Web.Config, add (or copy from the example) these following sections:
configuration -> configSections ->
configuration ->
configuration -> system.web -> httpModules ->
configuration -> system.webServer ->
On the opening modules tag, set runAllManagedModulesForAllRequests to true and add the RewriterModule so is becomes:
configuration -> system.webServer -> handlers ->
And that’s it!
Note that the application actually ignores the slugs at the end of the URL so your app can generate what it likes for them.
Also note that the rewrite rules can be far more complex than what is shown in the example. UrlRewriter’s rules are based on the Apache module, mod_rewrite.
Further reading:
- Stackoverflow Question: ASP.NET URL Rewriting
- Managed Fusion Url ReWriter
- ScottGu’s post: ‘Tip/Trick: Url Rewriting with ASP.NET’
Monday, 20 July 2009
Brighton ALT.NET Beers: Tuesday 4th August, 7pm at The Prince Albert
Tuesday, 26 May 2009
Brighton ALT.NET Beers: Tuesday 2nd June, 7pm at The Prince Albert
- Data Transfer Objects (DTOs)/View Presentation Models
- Do you Fitnesse?
- Why are Singletons considered harmful?
- Except for C#, what is another good language to know/learn now?
- Functional Programming.
- Which view engines are you using?
- Liskov substitution principle.
- Is the Entity Framework any good?
- How do you make youself a better developer?
- Favourite programming books.
- How can you make money from software?
- Code Complete
- The Pragmatic Programmer
- Head First Design Patterns
- C# in Depth
- Don't Make Me Think
- UML Distilled
- CLR via C#
- Principles of Artificial Intelligence
- Working Effectively With Legacy Code
- Agile Patterns and Principles
- Agile Web Development with Rails
- Joel's Best Software Writing I
- Pro C# and the .NET Platform
- Patterns of Enterprise Application Architecture
- F# for Scientists
Monday, 27 April 2009
Brighton ALT.NET Beers - Tuesday 5th May 2009 - 7pm @ The Prince Albert
The next Brighton ALT.NET beers will be this coming Tuesday 5th May 2009 - 7pm @ The Prince Albert public house in Brighton.
It's very easy to find as it's right next to the station:
http://tinyurl.com/PrinceAlbert-Brighton
The last one was a great success, with a range of interesting topics discussed in a very friendly open forum.
You can see previous posts on what the format will be and a review of the first meeting.
Hope to see you there!
Thursday, 2 April 2009
Brighton ALT.NET Beers - A Review
Huge thanks to everyone who turned up to the inaugural Brighton ALT.NET beers. There were 16 of us in total (a fittingly nice binary number) and we had a lively discussion on a wide range of topics. I definitely came away with my mind opened about a couple of things, which is certainly the whole point.
The topics voted for discussion were:
- What’s your favourite way of doing data access?
- Why do you do .NET?
- Joining a non-ALT.NET team.
- Do you DDD?
- Alternative frameworks such as S#arp Architecture.
- Avoiding generics hell.
- 'Walking skeleton' architectures.
What follows certainly isn’t an exhaustive dissection of the conversation but I hope a reasonably accurate reflection of the mood in the room. Please post amendments/corrections below if you feel it’s inaccurate or I missed an opinion.
1. What’s your favourite way of doing data access?
The general consensus was that using an O/RM was the best method of database access. The main reason cited was the massive reduction in effort in writing/generating stored procs etc and then having to maintain them. Linq-to-SQL and SubSonic were discussed but the overriding choice was NHibernate.
It was clear that pretty much everyone had done the stored-procedure maintenance or DAL generation gubbins before (many, many times over) and if you’re not using NHibernate or something almost as good, you’re probably doing far more work on your data access than is necessary.
(There has been criticism in that the ALT.NET movement can be a little dogmatic when it comes to NHibernate. However you can’t escape the fact that the experience that most of the 16 people in the room have had so far, has been overwhelmingly positive. I think that everyone who had used it in anger agreed that it is currently by far the quickest/most mature/easiest/cleanest way currently of doing data access.)
2. Why do you do .NET?
As this was the first meeting it was nice to go around all 16 participants and ask what attracted them to .NET development. Generally people discovered it via VB, classic ASP and C++. First impressions of the .NET framework were pretty positive and it compelled people to find out more. I think I’m right in saying that everyone in the room including all the ex-VB developers now use C# as their primary language for .NET.
3. Joining a non-ALT.NET team
This discussion was centred on what happens when you join a team with little or no awareness (for whatever reason) outside the Microsoft eco-system. Do you try and convert people with death-by-PowerPoint? Probably not the most effective stratagem. Is it better to start with small bits of projects at first and ALT.NETify them to show people very plainly that it will make their lives easier? What’s the first thing that should be introduced? Unit testing? TDD? Continuous integration? IoC? The was a feeling that a lot of the ALT.NET stuff doesn’t really work to its full potential in isolation, but it’s probably best to start small, with things that show immediate value and build up from there. One suggestion was have a CI build server first, then write some breaking tests when fixing defects.
4. Do you DDD?
It was acknowledged that a secular tome of significance on Domain Driven Design (DDD) is Eric Evans’ ‘Blue Book’. (See Mike Hadlow's blog post here).
There were some great points made about how to identify an object, does using the ID generated by the database break the goal of persistence ignorance? Is using the ID a sensible pragmatic solution to the common problem of establishing identity/equality? Can using the ID in URLs help when it comes to REST and SEO? If an entity is incomplete in some way, does that signify that another intermediate entity with a different business meaning is required?
5. Alternative frameworks such as S#arp Architecture
Just over half the room was aware of Billy McCafferty’s excellent S#arp architecture framework. There was a brief discussion on why SharpArch is currently easiest way to rapidly build a ALT.NET type ASP.NET MVC system with NHibernate, NUnit, Castle Windsor and Rhino mocks.
If you haven’t tried Sharp Architecture yet and you do ASP.NET MVC, do check it out because it is fabo:
http://www.sharparchitecture.net/
6. Avoiding generics hell
Dare Obasanjo has a nice summary of what this can mean here. There doesn't seem to be a clear answer to the problem at this time. Covariance/contravariance coming with C# 4.0 will help.
7. 'Walking skeleton' architecture
This topic was about merits of whether or not is was worthwhile to have a separate framework you use for smaller/simpler projects. What happens when the requirements expand and the simpler framework gets in the way because it’s so brittle? Is using IoC total overkill on a brochure site? Where does one draw the line? Does it take more effort to maintain a separate framework than bend the framework you use for complex projects to simpler ends? Is everything else outweighed by the comfort and predictability of a smoother complexity gradient?
Conclusion.
This was an excellent meeting. It showed the massive enthusiasm in the Brighton development community for wanting to seek out the best way of creating excellent software.
Let's do it again.
So as not to clash with the London ALT.NET beers (last Tuesday of the month), we will hold our beers on the first Tuesday of the month so I'm delighted to announce that our difficult second meeting will be at the same time at the same place on Tuesday 5th May 2009, 7pm at The Prince Albert, Brighton. I will mention it again nearer the time, but you can pencil it in your PDAs right now. If you're following me (@iainholder) or Mike Hadlow (@mikehadlow)on twitter you deffo won't miss it.
Hope to see you there.
Friday, 20 March 2009
Brighton ALT.NET Beers: Tues 31st March 2009. 7pm.
So there you have it. A meet-up in a back room called the 'Red Room’ in a pub called the ‘Prince Albert’ with an original Banksy of two policemen kissing on the side. It couldn’t be more Brighton if Fatboy Slim turns up dishing out sticks of rock.
“We are a self-organizing, ad-hoc community of developers bound by a desire to improve ourselves, challenge assumptions, and help each other pursue excellence in the practice of software development. Our movement is new. The conversation just started. All are welcome to shape and form the dialog in blogs and lists and face-to-face gatherings both local and global.” [Source: http://altdotnet.org/]
- Whoever comes is the right people.
- Whatever happens is the only thing that could have.
- Whenever it starts is the right time.
- When it's over, it's over.
We will spend the first 30 minutes or so, arriving, saying hello and writing potential topics of discussion on post-it notes. When we’ve done that, we gather all the ideas and vote on the couple we would like to discuss together in depth.