About Me

Training

Nothin But .Net Developer Bootcamp

Navigation

Search

Categories

On this page

Getting In Contact With Me
Times are a changin…
ReSharper 4.5 EAP
I won’t be presenting in Edmonton tomorrow
First Presentation Of The Year – Next Week
Books I Think Everyone Should Read
More new conventions for how I organize my tests!!
Using jpboodhoo.bdd with TestDriven.Net
JP’s Daily Dose Of Inspiration - #8
Scott Bellware is hosting a course in Austin
Nothin But .Net Course Registration Is Now Live!!
Nothin But .Net 2009 Course Registration Goes Live on February 11th
Slight addition to jpboodhoo.bdd
Don’t Waste the one thing you can’t get back

Archive

Blogroll

 Agile Developer Venkat's Blog
 Ayende @ Blog
 B#
 Barry Gervin's Software Architecture Perspectives
 Boy Meets World
 Brad Abrams
 Canadian Developers
 Christopher Steen
 Claritude Software News
 Clemens Vasters: Enterprise Development and Alien Abductions
 Coding Horror
 Coding in an Igloo
 Dare Obasanjo aka Carnage4Life
 Darrell Norton's Blog [MVP]
 David Hayden [MVP C#]
 Don Box's Spoutlet
 Eric Gunnerson's C# Compendium
 EZWeb guy: Jeffrey Palermo [C# MVP]
 Fear and Loathing
 Generalities & Details: Adventures in the High-tech Underbelly
 Greg Young [MVP]
 Greg's Cool [Insert Clever Name] of the Day
 IanG on Tap
 Ingo Rammer's Weblog
 ISerializable - Roy Osherove's Blog
 James Kovacs' Weblog
 Jason Haley
 Jean-Luc David
 Jeremy D. Miller -- The Shade Tree Developer
 JetBrains .NET Tools Blog
 Jimmy Nilsson's weblog
 John Bristowe's Weblog
 John Papa [MVP C#]
 Jon Skeet's Coding Blog
 JonGalloway.ToString()
 Jump the Fence or Walk Around
 Lambda the Ultimate - Programming Languages Weblog
 Larkware News
 Lutz Roeder
 Marquee de Sells: Chris's insight outlet
 Martin Fowler's Bliki
 Mike Nichols - SonOfNun Technology
 MSDN Magazine - .NET Matters
 MSDN Magazine - All Articles
 OdeToCode Blogs
 Onion Blog
 Planet TW
 Raymond Lewallen [MVP]
 Rockford Lhotka
 RodMan's Corner
 Roger Johansson's blog
 Sahil Malik - blah.winsmarts.com
 Sam Gentile's Blog
 Scott Bellware [MVP]
 Scott Hanselman's Computer Zen
 ScottGu's Blog
 secretGeek
 Service Station, by Aaron Skonnard
 Signum sine tinnitu--by Guy Kawasaki
 Stephen Toub
 Steve Eichert's Blog
 Steven Rockarts
 The Blog Ride
 The Coding Hillbilly
 The Daily WTF
 TheServerSide.net: News
 Tim Gifford
 Vance Morrison's Weblog
 you've been HAACKED

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 519
This Year: 28
This Month: 0
This Week: 0
Comments: 1593

 Saturday, February 28, 2009
Saturday, February 28, 2009 10:31:00 PM (Mountain Standard Time, UTC-07:00) ( General )

My response rate to emails for the last year has been less than stellar. This was mostly due to the fact that I did not really have a good way of managing requests that came in. So instead of trying to manage it incrementally, I often opted for the “ignore” option.

That stops today. As of this morning I put the following auto responder on my gmail account (Canned Response is a great gmail labs feature):

In an effort to increase productivity and efficiency I am beginning a new personal email policy. 

I will only be checking email at 4pm on weekdays. I will try and respond to email in a timely manner (no earlier than the morning of the next business day)  without neglecting the needs of my clients.

If you need to get in contact with me urgently please don’t hesitate to call me on my phone, the number is available on my public website , I much rather enjoy phone conversations anyway!!

Thanks for your anticipated understanding!!

God Bless You

Jean-Paul S. Boodhoo

http: www.jpboodhoo.com

email: jp@jpboodhoo.com

phone:(503)213-3507
fax:(403)770-8442

I look forward to reintegrating regular communication into the cycle!!

Develop With Passion!!

Comments [0] | | # 
 Friday, February 27, 2009
Friday, February 27, 2009 1:04:00 AM (Mountain Standard Time, UTC-07:00) ( Family | General )

As people who have been following my tweets today (jpboodhoo), they can see that I am back and now committed to updating people on my status as well as tweeting regularly throughout the day. While I have been in a very heads down mode for the last little while, I have also fell out of contact with people I use to converse with regularly. In an attempt to restart the conversation, I am actually excited about being able to use twitter to do some out of band, and occasionally direct, messaging with people.

Have not given people much of an update since we got back from our big 6 month trip. Lots of big changes have happened in the world of the Boodhoo’s. Since the end of November we have been living in my parents basement with my sister, her husband and their 3 kids. Picture 4 adults and 7 kids running around in the same house!! My poor parents. They have been extremely gracious and very giving of their time and space.

Since our house in Calgary is being rented, with future plans to keep it as a rental, we are in the process of searching for a house. Unfortunately, because I was a bit lax on business returns etc, we currently do not qualify for a mortgage!! So we are getting very creative in house hunting right now. We have found a house that we would love to get into. It is an acreage. Anyone who knows me well, knows that I have always been a hardcore city kid. One of my wife’s dreams has always been to raise the kids out on an acreage. She has been so amazing and instrumental in helping me achieve my dreams that I decided to put aside my love of city living and start looking at acreages. Then a funny thing happened. Once I saw a couple of acreages and got to spend a significant amount of time on some of them, my heart changed and I now find myself in the spot of not ever wanting to live in the crowded city again!! So moving forward we know that we are going to live on an acreage!!

We are also not living in Calgary anymore. We are moving back to Medicine Hat. I never thought I would move back to “the Hat”, but here we are, back where I met my wife 16 years ago now!!! Both grandparents live here, so Aaron and I have been able to enjoy having a lot more date nights than we have for the past couple of years. We are not concerned about not being in the big city. I am using it as a pressure point for forcing me to get a couple of startups off the ground. The first one will be launching at the end of April, pretty exciting. I am working on it with a couple of other people who already have an established product!! Even in the current economy, I could get scared and take the “safe” route of jumping back into the consulting market, but I know I will kick myself if I don’t give it a shot. I have a bunch of friends with great ideas and we are going to try to get a couple of startups off the group by the end of the year. I would much rather look back on this year with the knowledge that I tried vs looking back with regret for not trying. Better to try,fail, learn and grow that not try at all.

Another significant change for us is that we are not home schooling this year. Since our world is a little upside down right now, we have the kids enrolled in a great (small) Christian School. The class sizes are excellent and they are having a blast. It is definitely a change from home schooling, but it is a great experience for them.

We got the kids enrolled in swimming at the beginning of January. My wife grew up swimming, and if you ever saw our kids swim, you would see that they got their amazing swimming ability from her. The only one not swimming right now is Elijah, and that is cause he is too young to be enrolled in the class, otherwise he is more than capable of being in there!! It truly is amazing to watch their phenomenal progress in just the span of a month. They were already amazing swimmers before, but swimming against others has definitely raised their game!!

On the personal training front (gym training) I feel in the best shape I have ever been in, praise the Lord!! Really got back into it (intensely) at the beginning of January. I’ll talk about my routine in another post but for now here are some cool stats:

  • Height – 5’5”
  • Weight – 127 lbs
  • Waist Size – 28 inches
  • Resting Heart Rate – 56 BMP
  • Body Fat Percentage – 8%
  • Number of days at the gym per week (5)
  • Average training session length 1hr 30 min
  • Water consumed in a day – 2 –3 litres
  • Meals consumed a day – 6

Watching the kids in the pool has really triggered me to want to learn how to swim well. I have never been a very good swimmer. When I was 8 years old I drowned and was resuscitated by the pool lifeguard. The fear of that event kept me out of the pool for a couple of years. Now that my wife and I workout together at the gym, the next couple of weeks I am going to be switching my workout routine to include a heavy swimming component. She is going to teach me. Keep tuned to my tweets (jpboodhoo) as I am sure I will be sharing lots of blurbs over the next little while!!

On the coding front, lots of exciting stuff is going on. Not a lot I can share yet, but that time will come!!

Develop With Passion!!

Comments [3] | | # 
 Wednesday, February 25, 2009
Wednesday, February 25, 2009 4:31:00 PM (Mountain Standard Time, UTC-07:00) ( Tools )

If you have not yet downloaded a copy of the 4.5 EAP I suggest that you go now and give it a whirl.

So far everything is looking good. One of my favorite additions so far is the modified naming style page:

 

image

Notice how most of my Entity kinds settings are set to “all_lower”. This is awesome, because now ReSharper will suggest underscored member names for me all over the place. It is a small addition but great.

 

Develop With Passion!!

Comments [3] | | # 
Wednesday, February 25, 2009 10:14:00 AM (Mountain Standard Time, UTC-07:00) ( Presentations )

Sorry for the late notice. I will not be able to make it to Edmonton tomorrow to present on BDD.

I apologize to all the people who were planning to come and see the topic. In my place Donald Belcham will be delivering a presentation on ORM’s.

I look forward to making it up to Edmonton at a future date to deliver the presentation!!

 

Develop With Passion!!

Comments [0] | | # 
 Wednesday, February 18, 2009
Wednesday, February 18, 2009 9:22:00 PM (Mountain Standard Time, UTC-07:00) ( Presentations )

The awesome gang up in Edmonton has invited me to come next week (February 26th) to give a presentation on Behavior Driven Development.

It has been quite a long time since I have spoken in Edmonton, but the people there are great and there is always good conversation to be had during and after the presentations.

If you are in and around the Edmonton area next week feel free to drop in at:

Milner Public Library, 6th Floor, Room 7 @ 6:00PM

Develop With Passion!!

Comments [2] | | # 
 Tuesday, February 17, 2009
Tuesday, February 17, 2009 3:00:00 AM (Mountain Standard Time, UTC-07:00) ( )

The last couple of weeks has been a season of reading for me. None of the books are technical in nature but they are all books that I think everyone should read.

image

Like the first book, it is a collection of short stories and inspirational blurbs that will definitely challenge you to reach for the potential that God has placed in every single one of us. So many of the principles are really just common sense, but so many people need to be reminded of them. I think that a lot of people are living an 8/10 life, and they feel that is all they are capable of / deserve. God created us to do great things, this book could be one of the catalyst that you could use to spark your drive again. It is never to late to start stretching yourself!!

 

 

 

 

 

image

So many people over the last year have told me to read this book. It is an excellent read and a lot of the concepts that are discussed are things that I have been trying to integrate into my life for the last couple of years. Lots of great ideas that will definitely challenge peoples assumptions about the limitations they place on themselves!!

 

 

 

 

 

 

Develop With Passion!!

Comments [4] | | # 
 Monday, February 16, 2009
Monday, February 16, 2009 8:00:00 AM (Mountain Standard Time, UTC-07:00) ( BDD | C Sharp )

As the current project I am on is getting fairly large now, I just recently switched around the way I organize my tests. Here is a sample concern pulled from a main class in my application (smart client based):

public class ApplicationControllerSpecs

{

    public abstract class concern : observations_for_a_sut_with_a_contract<IApplicationController, ApplicationController>

    {

        protected IApplicationShellView shell_presenter;

    }

 

    [Concern(typeof (ApplicationController))]

    public class when_starting_up : concern

    {

        context c = () =>

        {

            application_shell = the_dependency<IApplicationShellPresenter>();

            start_all_modules = the_dependency<IStartAllModules>();

            event_aggregator = the_dependency<IEventAggregator>();

        };

 

        because b = () =>

            sut.start();

 

        it should_start_the_application_shell = () =>

              application_shell.received(x => x.start());

 

        it should_start_all_of_the_application_modules = () =>

             start_all_modules.received(x => x.run());

 

        it should_register_itself_as_a_listener_with_the_event_aggregator = () =>

            event_aggregator.received(x => x.register_listener(sut));

 

        static IApplicationShellPresenter application_shell;

        static IStartAllModules start_all_modules;

        static IEventAggregator event_aggregator;

    }

 

}

Notice how at the top I am now creating a container class which is named {SUT}specs:

public class ApplicationControllerSpecs

All of the concerns for the ApplicationController will be housed inside this class. From an organizational perspective I can now have a superclass for all of my concerns for a particular SUT named concern:

public abstract class concern : observations_for_a_sut_with_a_contract<IApplicationController, ApplicationController>

{

    protected IApplicationShellView shell_presenter;

}

Before, I would place my concerns directly at the root of the file (not nested inside a container class), this meant that when I went to derive a concern from a base concern, I would have to filter through a big ReSharper list of all of the base test classes in the solution that started with the word concern. Because I was following a convention of “concern_for_[sut]”, I would see more than I wanted. Now when I am inside of a container class and am writing a concern that I want to derive from its parent concern,typing con followed by CTRL-SPACE will only give me a very small set of options. I also don’t need to come up with a fancy name for the initial concern superclass. I can just call it concern. Each *Specs file in my current application follows this convention, and each one has an initial superclass named concern. You don’t need the superclass, I just find it a convenient place to put fields etc that can often crowd up the test, common results etc.

Develop With Passion!!

Comments [9] | | # 
 Friday, February 13, 2009
Friday, February 13, 2009 2:36:00 PM (Mountain Standard Time, UTC-07:00) ( )

When I announced the slight addition to jpboodhoo.bdd I mentioned that it worked with TestDriven.Net. I just recently converted the current project I am on to use the new "it" style blocks everywhere. All of a sudden my tests were no longer being recognized by TestDriven.Net. I went to the tests for jpboodhoo.bdd and realized that I could still run them from TestDriven. I quickly realized the fix that I needed!! In my test project (for my current project) I have a folder called helpers (don't let the name scare you, this is a pure test utility folder) which contains the following class:

[TestFixture]

public class emtpy_fixture_to_allow_testdriven_dot_net_to_pickup_tests

{

}

As you can see, by having that in my test project, TD.Net can do the appropriate reflection to pick up the test. If you don't use TD.Net and were just using the MBUnit Console, or MBUnit GUI, there would not have been a problem. Instead of diving in to come up with a complicated solution, the pragmatist in me is ok having this as a file in my test projects!!

Develop With Passion!!

Comments [3] | | # 
 Tuesday, February 10, 2009
Tuesday, February 10, 2009 12:30:00 PM (Mountain Standard Time, UTC-07:00) ( Inspiration )

Do you still remember the dreams you had for yourself when you were younger? Are you currently chasing them, or have you placed them on the “bookshelf” to be revisited at a time that feels more suitable? Your dreams are achievable. Sometime it requires venturing out of the harbour of the “known and safe”. Although it can sometimes seem scary taking those first steps into the unknown, the results can often be far more amazing than anything you could imagine. Dare to live a positive dream today. I am going to leave you thinking about the words from the awesome Switchfoot song “this is your life”:

Yesterday is a wrinkle on your forehead
Yesterday is a promise that you�ve broken
Don�t close your eyes, don�t close your eyes
This is your life and today is all you�ve got now
Yeah, and today is all you�ll ever have
Don�t close your eyes
Don�t close your eyes


This is your life, are you who you want to be
This is your life, are you who you want to be
This is your life, is it everything you dreamed that it would be
When the world was younger and you had everything to lose

 

Are you who you want to be? If not, start making steps to do something about it.

Comments [2] | | # 
Tuesday, February 10, 2009 10:38:00 AM (Mountain Standard Time, UTC-07:00) ( Training )

Scott is going to be hosting a course in Austin on TDD,BDD, and a whole host of other topics that will make people more productive. It is a one day course and you can check out more information here:

http://blog.scottbellware.com/2009/02/test-driven-development-and-behavior.html

Much of what I have learned about BDD was ignited by Scott. Before I started pair programming with him I was very much a traditional styled TDD developer. If you have an opportunity to spend a day of learning with him I strongly recommend you jump all over it!!

Develop With Passion!!

Comments [0] | | # 
Tuesday, February 10, 2009 10:13:00 AM (Mountain Standard Time, UTC-07:00) ( Training )

After a bit of a delay the registration for all of the 2009 Nothin But .Net courses is live. This year I have decided to go with EventBrite, it is a really simple to use event management system with huge benefits over the Acteva system I was using last year!!

To register for a course you can go to www.jpboodhoo.com/training.oo and click on the link for any one of the courses on the left hand side of the page. This will take you to a registration page for the course.

At this time, none of the venues have been chosen as we are still in discussions with most of the venues. This year we are also looking at options other than hotels (if you or someone you know has access to a venue that is close to hotels and can accommodate 17 people comfortably, feel free to contact me and we can discuss trading space for discounts!!).

The following link is an rss feed for all training events hosted by jpboodhoo.com: http://www.eventbrite.com/rss/user_list_events/80468363

Almost 600 people across the world have now taken this course!! It is an honour and a privilege for me to be able to share whatever experience and wisdom I have with the people who attend. The events are very casual, informative, professionally and personally challenging. My goal is not just to have you leave with strategies to become a better developer. I want you to leave feeling more empowered to live out your dreams for your life.

I feel that God has imparted a blessing to countless developers who have taken this course, I am just glad to be a vehicle through which that blessing can be delivered.

I look forward to meeting each and every new participant this year!!

God Bless You and Develop With Passion!!

Comments [1] | | # 
 Monday, February 09, 2009
Monday, February 09, 2009 12:51:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

This post is a quick shout out to all of the people who have contacted me about registration for this years courses.

Registration will go live for all of the courses on Wednesday, February 11th. This year I am making use of eventbrite which means that the 2 options you will have for payment processing will be either an existing paypal account, or your credit card.

As a reminder, there is a 16 person attendance limit for each class this year!!

For more information on the class, you can read up about it here: http://www.jpboodhoo.com/training.oo

I look forward to helping you Develop With Passion!!

Comments [0] | | # 
 Wednesday, February 04, 2009
Wednesday, February 04, 2009 4:00:00 PM (Mountain Standard Time, UTC-07:00) ( C Sharp )

If you recall from the last post on this topic one of the ways you can record an observation is by simply doing this:

            [Observation]

            public void should_dispose_the_appropriate_items()

            {

                connection.was_told_to(x => x.Dispose());

            }

In addition to be able to define observations using traditional attributes. You can now also define observations by using blocks (like the rest of the code uses). So the following observation is identical to the one above:

            it should_dispose_the_appropriate_items = () =>

                connection.was_told_to(x => x.Dispose());

Because all of this is backed by MBUnit. You can start integrating this into your existing MbUnit test suites with no change required. MBUnit GUI, and Console pick them up with no problem. TestDriven.Net can even run them. You can mix and match traditional attribute based observations and block style observations in the same test:

it should_leverage_db_infrastructure_to_return_a_set_of_rows_from_the_db = () =>

    result.should_not_be_null();

 

[Observation]

public void should_dispose_the_appropriate_items()

{

    connection.was_told_to(x => x.Dispose());

}

The only issue with TD.Net right now, is that you can’t pick a single “it” block to run in a fixture. If you put the cursor on an “it” block and tell TD.Net to run test, it will run all of the “it” blocks in that fixture. If you are using a traditional attribute based Observation block this is not a problem.

If people are interested in how I rolled out this feature, please respond with comments and I will get another post out!!

Develop With Passion!!

Comments [8] | | # 
 Monday, February 02, 2009
Monday, February 02, 2009 9:37:00 AM (Mountain Standard Time, UTC-07:00) ( General | Inspiration )

I had a great phone conversation today with a past student who is currently experiencing a state of demotivation due to the current job environment he is in. I wanted to quickly share the most important thing I had to share while I talked with him.

There have been many times in my career (at least once a year) where I go through a period (usually only lasting 2 weeks) where I seriously question why I am in software development. During these periods, it does not matter how great the job I am in is working out, I find myself not particularly drawn to be a software developer. Now before I go further, you need to know that I absolutely love being a computer programmer. I feel it is a blessing to be able to pursue the profession that you feel you have been blessed with a gift and desire to pursue. During these periods I unplug, read some books, chat with my wife about directions that I could go if I were to leave the field of software. When I was younger, it was very easy for me to get into these periods and completely withdraw myself and pout about the current “state of things”. Thankfully God allowed me to have a desire for reading and learning, and it was during one of these times that He taught me a lesson about the behaviour that I was taking on. He helped me realize that it is ok for me to go through these “valley” moments. What is important is how I respond to them. I learned that keeping myself reading and learning about things other than software during this time helped me to anchor my mind on what I was actually striving to achieve for myself and my family. I realized that the one thing that I can’t get back, and thus should not be wasting, is my time. I can get out of a slump, I can work harder, I can recoup monetary losses by sheer grit determination, but nothing I can do will ever be able to reclaim wasted time.

It is very easy to forget that time is our greatest non-renewable resource. I want to encourage you to not allow a day to go by where you do not learn something new. This does not need to be something even remotely related to your career. New learning stimulates the mind and can often be a tools that allows you to break free of ruts, habits, and negative thinking.

Make your minutes count!!

Develop With Passion.

Comments [5] | | #