April 30, 2007
Well some good actually came from the TFS vs OOS/whatever war that is going on over in Ayende land. Ayende linked to an article on setting up FogBugz (Good!) to work with Subversion (Great!) so you can link check-ins to bugz.
This is one of the features of TFS that I was super jealous of. Now that I know there is a way to get the same functionality without TFS (I’ve tried it and I am not a big fan..) I’m a happy developer.
Leave a Comment » |
Uncategorized |
Permalink
Posted by shanecourtrille
April 27, 2007
One of the techniques that I’ve found to be of some value is the usage of class instances as enums. An example of this is…
public class MonitorType
{
public static readonly class BenQMonitor = new MonitorType("BenQ");
public static readonly class SamsungMonitor = new MonitorType("Samsung");
...
One thing I haven’t had to deal with yet was serializing one of these.
If you think about it though this would cause a problem though since de-serialization would cause a new instance to be created, when really you want your singleton instance. But thankfully this little problem has been solved via this little article. Good thing to keep in the back of your brain if you follow this enum approach (or any other approach where you would serialize a singleton.).
Leave a Comment » |
Uncategorized |
Permalink
Posted by shanecourtrille
April 27, 2007
Well yesterday was the the Edmonton .Net User Group aka Edmug’s 1st Birthday. While there was no birthday cake or singing but there was an interesting presentation and lots of cool prizes.
The event itself was held downtown at the Maverick Brewery. Personally I really enjoyed the location. The seating was comfortable and there was a good view of the screen from pretty much every spot in the place. It would definitely be cool to have other events at this location (especially if it’s a bigger name coming..?)
As for the presentation the topic was Domain Specific Languages. I’ve heard about these a bit in the last while, including the Microsoft DSL tools. In fact I’m pretty sure there is a project targeted at helping with NHibernate that uses it. I just can’t find it right now. Christians Izquierdo is a very good presenter and kept the audiences attention even though the subject itself can be a bit dry. The one problem I see with the presentation is that there wasn’t much discussion about how you could actually use a DSL. Or more specifically problems that have been solved using a DSL. Knowing about the existence of DSLs is definitely a good thing but it helps to see how people are actually making use of them. Well okay there was mention of 4 existing DSLs but not much discussion about them.
As a side note, Martin Fowler has a good presentation online called Introduction to Domain Specific Languages . I recommend giving it a watch if the subject interests you.
At the end of the presentation prizes were given out. There was a ton of licenses for software. There were 5 licenses of the JetBrain’s pack which included dotTrace and Resharper, 10 licenses of CodeSmith (of which I won one!) and 2 licenses (don’t quote me on that #) of the ComponentOne pack. There was also some hardware given away. A couple keyboards, a few mice and most importantly an XBox 360 Premium of which I am the new proud owner!! A special thanks goes out to the guy who won this puppy first but decided to pass up on it because he already had one.
So with that I congratulate Edmug on a very successful first year and expect many more to follow!
1 Comment |
edmug |
Permalink
Posted by shanecourtrille
April 26, 2007
BoingBoing has a post up about a CG short movie called Code Guardian. While I’m sure a ton of work went into this project it still amazes me that we can produce short films with CG of this quality and give them out for free.
Definitely worth checking out.
Leave a Comment » |
Uncategorized |
Permalink
Posted by shanecourtrille
April 17, 2007
Design…
It’s a simple word really but for me personally this has been one of the hardest skills to implement. I’ve spent a lot of time over the last while learning from others. I’ve attended a course.. read code.. discussed with people and during all that time I’ve come to see how many different views there are. Design is a very personal skill. And your personal design beliefs are something you have to define over time. There comes a point when you have to stop saying “Well I heard about such and such..” or “So and so says this..” and decide what you believe. Then you need to start to express those beliefs as your own. I believe this is a very important step in being taken seriously as a designer. Of course your beliefs will change over time as you are exposed to new things. This isn’t a bad thing. If you ever find yourself working the exact same way you did 6 months ago then something is wrong. But at the same time you need to seriously consider each new thing you learn and decide for yourself where it fits.
I personally have started to define my own style. While what I believe is heavily based on Jean-Paul Boodhoo, Martin Fowler and various others it has become mine. When I have a discussion with someone, or when I recommend something it has to be done with my own personal beliefs. A large part of defining your own style is to take time to test out your beliefs. If you’re a believer in ORM then make sure you’ve worked with it. Spend a little bit of time writing your own mapping layer. I personally don’t think you can truly believe in something until you can explain and defend your belief in it. And the best way to do that is to have at least a bit of experience in the alternatives.
Leave a Comment » |
Uncategorized |
Permalink
Posted by shanecourtrille
April 6, 2007
One of the hardest things I’m trying to decide right now is how to prioritize my life. I’ve got the following list of things to do in 2007.
1. Learn NHibernate
2. Learn Ruby
3. Catch up on DNR
4. Learn C# 3.0
5. Learn WPF
6. Touch WCF
7. Learn SmartClient & ClickOnce deployment
8. Grok Dependency Injection
9. Grok Pragmatic Programmer
10. Implement each pattern in
a) Design Patterns
b) Patterns of Enterprise Architecture
So.. as you can see that’s a pretty big list. I do have a lot of time though since I try to spend about 12-20 hours a week of personal time on education. I think though that the latest post from Jean Paul
makes a lot of sense. Thought I think I will tweak it a bit. I’m thinking 60% core and 40% new technology. I’m actually reading a book called Object Design Roles, Responsibilities, and Collaborations to help improve my object design skills.
Leave a Comment » |
Uncategorized |
Permalink
Posted by shanecourtrille
March 26, 2007
If you want to see how to give a presentation check out The Art of the Start Video. The guy is amazing and worth watching even if you aren’t interested in your own startup.
I put his book on my Amazon Wish list based off this presentation.
1 Comment |
Uncategorized |
Permalink
Posted by shanecourtrille
March 21, 2007
Refactoring/TDD Pace
Over the last while I’ve learned a bit about refactoring. During that time I’ve also been working on implementing TDD. During my time I’ve come to realize something. Personally while these two concepts require a lot of changes in the techniques and skills, the biggest change is in pace of work. I will admit to being one of those people who when given an assignment speeds through it as fast as possible. Spend a little bit of time thinking about the change.. write the code.. verify it works (On My Machine!) and check it in.
Now a completely different mindset and pace is required. When writing a new feature things go a bit more like this…
1. Find existing code related to the new feature.
2. Use Resharper Ctrl + F7 to find existing code that references that code, and more importantly existing unit tests.
3. Look at the unit tests. If there aren’t any write some that validate the existing functionality. I’m still up in the air about writing tests against functionality I know will change. On one hand it helps validate your understanding of the code and what it does. On the other hand it can be unnecessary help. I think its a situational judgement call.
4. Look at the code. Get an idea of how the existing functionality is going to be used. How is the change going to affect it. Sometimes this step is the easiest but other times its the hardest. Of course when its hard and the change has a big effect throughout the system then that is a probable code smell.
5. Start the TDD cycle. Red.. Green.. Refactor. Of course as you do so you may touch existing stuff in which case you should start at step 1 on that stuff.
All in all this new pace is about much more then “Getting Shit Done (GSD-mode)”. It’s a huge change but one that I believe will lead to much more reliable, maintainable code.
Leave a Comment » |
Uncategorized |
Permalink
Posted by shanecourtrille
March 17, 2007
One of the things I’ve always believed in was spending personal time improving my skill as a software developer. Jean-Paul describes this as being a student of your profession. A very good way to put it I think. For me I had actually hit a plateau a few years ago. But that changed when I saw Jean-Paul at an Edmug event. Since then between the amazing Code Camp that Edmug put on, and the even more amazing Jean-Paul course I’ve found that what I had thought would be a climb up the education slope has turned into a rocket trip.
It’s very difficult but I’m actually starting to see results. I can now start to explain why I like to use certain techniques and principles (as opposed to saying “Because Fowler, JP, Eric Evans, etc” said so). And when I’m learning/reading new things I actually compare what is being said to my own personal design views.
Of course all this education takes a lot of time which I’ve been very lucky to have. It definitely involves sacrifices but I have an end goal in sight that I think will make it worth it. Of course all of this wouldn’t have been possible without two very important things:
1) Finding out what I don’t know. Hearing words like Design Patterns, Domain Driven Design, NHibernate, etc and realizing there was a whole world out there I didn’t know about.
2) Making the decision that it was important to learn what I didn’t know. To try and take my knowledge to the next level and having the support of community and family required to carry out that decision.
The rocket has been fired and at this point I’m getting past just trying to hold on.. so far it’s been a pretty amazing 6 months. Have you taken a rocket ride lately?
Leave a Comment » |
Uncategorized |
Permalink
Posted by shanecourtrille