October 2007 Entries
Edmonton Code Camp Materials
As promised here is the presentation materials from my partial trust talk at the
Edmonton Code CampPartial Trust.zip (1.18 MB)
Book Review: The Pragmatic Programmer
After Justice Gray's bubbling fan boy review of this book I thought I should go and check it out. I have to say I almost share as much enthusiasm as he does. I found the book really well written and concise. The book goes though many of the things I have learnt the hard way like duplication is evil, designing by contract, minimize coupling, and a bunch more. I found everything hits the nail on the head without killing the hammer. I never found myself disagreeing with the book or thinking something should be added. To me that is pretty...
Alberta Tech Fest
I will be speaking on partial trust in asp.ent at the Alberta Tech Fest this year in Calgary on November 10th. Techfest is like a code camp but has a bigger mix of people. There is a developer track, an architect track, and an IT pro track. Adding the IT pro track is a neat idea to bring the people from the other side of our office floors to the same conference. I don't think there will be too many people switching between IT Pro and the developer track but hopefully some interesting conversations will happen between the two groups.
Stop Biting Your Tongue.... It Hurts!
I was going to write an ALT.NET recap article but I think James and Donald really said everything I would have said. Instead I thought I would write about what changed since I got back.One of the things I came back with from the ALT.NET conference was a lot of renewed energy in that the way I am trying to develop software is the way a lot of talented industry people are developing software. Now not to say that I want to follow what person xy does dogmatically, I want to combine ideas and techniques into what works for me...
Code Camp Is Comming! Code Camp Is Comming!
The 2nd annual Edmonton Code Camp is going to be held on October 20th, 2007 at the UofA. I must say I am excited on this one! Maybe because a bunch of us are fresh off the ALT.NET or maybe becuase I am finally doing a full fledged presentation here! Either way I am looking forward to all the great conversations and questions to be had.
Last years camp was really well done so this one should be even better. The organizers have added another track bringing the total up to three. This has allowed for five more sessions to be done. Hopefully you are...
Austin ALT.NET - Session 6
Executable Requirements
I really had never heard the term Executable requirements comming into this talk so thought I would see what I could learn. An executable requirement is a requirement written in such a way that user (or BA usually) can read / write it and it can also run against our code to test it. FIT is the best example of this.
Some people here have used fit/fitness but most people have had pain with it (FITNESS is the wiki. FIT is the dll)-Refactoring with fitness was hard-It turns into a lot of overhead-There are problems with source control (TFS/VSS can not...
Austin ALT.NET - Session 5
Spreading ALT.NET
The guy who is running(?) MSDN mag was here and really wanted to learn about the community and bring some of these ideas into the magazine. This was good as there is lots of talk about the divide between alt.net and Microsoft so this is a positive sign coming from MS.
James Kovacs had a good point that e are in an echo chamber and need to find how to spread the word.Some ideas to do it:-Speaking at user groups-INETA speakers bureau-Codezone-Tying it to MSDN-Including open source tools and techniques in sample apps-Focus on concepts, not specific frameworks-When showing a...
Austin ALT.NET - Session 4
DDD-itsu
Ok I feel over my head here to start out with. Mostly because I have not done DDD on a project (well to its full extent). There was debate over:
Account.depoit / account.withdrawvs. A service implementation like:WithdrawServier service = new WithdrawService(account)service.withdrawAmount(100)
Which was an interesting debate but really comes down to implementation and complexity. Account.deposit/withdraw does violate SRP but on the other hand when you are modeling the domain I think you should be MODELING THE DOMAIN so an account can do deposits / withdrawls (IMHO)
The debate was expanded in more detail to this:public class TransferService{ function Transfer(from, to, amount) { from.balance...
Austin ALT.NET - Session 3
ASP.NET MVC
I had no idea that Microsoft was coming out with an MVC (Model View Controller) implementation . I am kind of excited about this one (everyone else was too as everyone came to this session, seriously... everyone was here). I have tried playing with monorail and have not been terribly impressed so hopefully something a bit more integrated and refined would be good. Whether MS pulls it off remains to be seen.
This is one hard to blog about unless you have used an MVC implementation like rails so I will talk about other stuff.
I have liked a lot...
Austin ALT.NET - Lunch
Lunch was some big tasty sandwiches but the talks were better. We got onto the topic of parallelism which was quite interesting. Scott Guthrie got up onto the whiteboard to talk about scaling applications
List<person> peoplefor(i=0;i<people.Length(); i++){ person.DoTask();}this code will not scale as the interpreter cannot easily split this code across processors. As a programmer you may be able to write some code that starts new threads and does locking but it might perform even worse (due to managing your locks) or might work on two processors but will not scale up to 400 cores
The power comes from lamda expressions and...
Austin ALT.NET Session 2
Boo
Boo is python-like (whitespace delimited, colons to start methods)lots of jokes about BOOBS (Boo Build System)Boo has a compiler, an interpreter, and an interactive shell (booc, booi, booish respectively)imports system.drawing from System.Drawing <-load something from the GACorimports system.drawing from “c:\System.Drawing.dll” <-load something from the filesystemSo here are some commands and what they do in boo:f= Form() ß as the brackets are specified it must be a constructor so no new keyword is requiredf.Show()b = Buttton(Text: “Click”)f.Controls.Add(b)b.Click+= { b.height+=3; b.Width+=5 } ß anonymous methodb.Text = “Time is $(DAteTime.Now.ToString(‘t’))” ßeasy way to inline variablesprint b.Text ßoutput to console is easya = (...
Austin ALT.NET - Session 1
The first talk I went to was about Domain Specific Languages
We started with introductions and experience. No one knows anything about DSLs.... great
Defining a DSL – We basically decided that a DSL was a language that can be used to describe a problem or domain. Whether this is for the business user or the programmer is a debate I do not think we will solve.
Good examples of DSLs we use: Outlook rules engine is a very good example. Another one was searching where we can use quotes and other symbols to narrow our search.
Testing a DSL is hard. Quote someone...