new workout Posted on January 27, 2011 @ 20:07 journal
2-3 rounds:
- Pushup Hold
- Extended Arm Hang
- Dip Hold
- Flexed Arm Hang
2-3 rounds:
- Pushups
- Body Rows
- Dips
- Chinups
Progress slowly with this as it's VERY intense!
Progress slowly with this as it's VERY intense!
Casual elegance at an attractive price; this appealing 2 storey 3 bedroom ,3 bathroom home with an inviting front veranda offers a practical floor plan with contemporary finishes. Once you arrive you will be captured by the striking living room fireplace which enhances the contemporary feel of the home. In the kitchen you are greeted by shaker cabinets with plenty of counter space, a reed glass corner pantry door, tiled backsplash and stainless steel appliances. A roomy dining nook is perfect for family gatherings or entertaining. There is no shortage of space in the master suite with a generous walk in closet and a full 4pce ensuite. With summer just around the corner you'll soon be able to enjoy the fully landscaped, fenced yard and the west facing deck. A tot lot down the street, plenty of shopping nearby and easy access to Stoney Trail make this a superb location. Call today to view this outstanding home first hand.
So I recently started twittering... or tweeting. I'm not sure what the correct lingo is, so hook me up if you know. It all started a while back when James announced that he was the newest Twit. He mentioned a WPF client called Witty, and I wanted to see what it was all about. So I setup a Twitter account to play with the app. After I had my fun, I never deleted my account. Or at least I never looked into how to delete my account.
About a week ago I received and email that a couple of people were following me on Twitter. Man that's flattering to read:
Hi, mo_khan.
Kyle Baley (kbaley) is now following your updates on Twitter.
Check out Kyle Baley's profile here:
http://twitter.com/kbaley
You may follow Kyle Baley as well by clicking on the "follow" button.
Best,
Whaa... a celeb is interested in what I'm up to? *blush* So I jumped in, and so far it's been pretty fun. I found another service called "Jott". Jott's pretty cool, because I can call in to a number and I get an automated message that says:
"Who do you want to jott?"
I say ... "Twitter". Then I record my voice message.
Jott then takes that message transcribes it in to text, pushes it up to my twitter page, and drops a tinyurl to the actual audio. Sweet... that saves me a few pennies worth of text messages. But there's more...
I'm one of the poor saps who pay to much for mobile service up here in Canada, eh! I subscribe to Rogers Wireless, and the plan called "My5". I get to make unlimited phones calls to the 5 numbers that are in My5? So I put Jott on My5, and now I can shoot off messages to everyone for....
Free Ninety Nine.... well almost! If you're young, fabulous and ghetto broke (it aint funny) like myself then you ought to give Jott a try!
My wife is running in this years CIBC Run for the cure, on Sunday October. 5th 2008. This is an annual fund raiser to raise money for breast cancer research. This is a cause that is near and dear to us since she has lost loved ones in her family to breast cancer.
The donations are tax deductible, here in Canada, and receipts are sent out electronically. There is no minimum donation, so anything and everything counts. Please don't be shy!
If you would like to support my wife and daughter before their 5 KM walk please make a donation here.
Allison Khan's Message:
"I am excited to be joining team Glamma's and friends this year to walk for breast cancer. My Mom and friends will be walking their 4th year and Adia and I are thrilled to be the newest members. As breast cancer has touched my life on both maternal and paternal sides of my family, it's time to be proactive in finding a cure for this disease. I deeply appreciate your support; by donation, cheers on the sidelines or joining our team!"
So tonight I got to help demo what a fishbowl was at the ALT.NET Canada (thanks Doc!) conference and the topic of discussion was on the Fundamentals of Software development. During the session I started to realize that what I considered to be fundamental seemed to be far from what others did. After a few discussions I started to think that the fundamentals were different based on generational divides.
I'm speaking for myself, but hopefully for my generation, but when I hear "The Fundamentals of .NET development" I think, Object Oriented Programming, Design Patterns, a knowledge of the syntax of a language, and at least a base understanding of what the CLR is and what it provides for us.
Some other takes on fundamentals were focused on understanding how the underlying operating system works, Algorithms and Data Structures.
This got me a little depressed because I don't have an intimate knowledge of how the underlying operating system works, or how to perform a deletion from a red-black tree, or how to implement a half decent hashing algorithm. Ask me to build an AVL tree and I might puke, or at least ask "why? it's 2008" I have a base understanding, but I'm not sure if that counts as the required fundamental knowledge to build a decent app.
When I was writing C, I cared a lot about writing well optimized code. I cared about memory allocation/de-allocation. I cared about protecting from buffer overruns. I cared about so many things, that I just don't think about, as much, now as a .NET developer. All the things I don't have to be concerned about allows me to focus on other things that I want to care about.
It seems like we developers are proud of being an expert at something, but when that something becomes less and less relevant in building applications today, we tag it as "fundamental". Perhaps in 10 years or so the next generation will wonder why they would need to understand object oriented programming to build valuable applications. After all it will all be written in DSL's, right?
Couple of more pennies for ya!
A few weeks ago I started feeling a little over whelmed by the volume of interest in what I was up to. After reading a chapter from Tim Ferris' book, I decided to disconnect. It was the most effective advice I could have ever received. I went cold turkey. I turned off my phone and put it in a drawer. I completely stopped checking my email, and wouldn't allow myself to "surf" the net.
The result after a couple of weeks, I feel liberated... and refreshed!
![]() | The 4-Hour work Week: Escape 9-5, Live Anywhere, and Join the New Rich by Timothy Ferris Read more about this book... |
The first couple of days were hard, I had the itch. I kept wondering... "what if an emergency happens and someone needs to get a hold of me?" There was no emergency, and the best part no shackles. When I finally checked my email, I spent 5 minutes scanning the email that seemed to contain "information" that was important to me. It was amazing how much "noise" I was able to filter out. This is something that Tim describes as a "Low Information Diet."
I'm toying with the idea of completely disconnecting my phone and I'm currently checking my email once a week (Mondays).
I looked back at a post that made remarkable difference to me when I first read it last year. It was JP's tips on becoming a more effective developer. In it he told us to limit the amount of instant messaging that we do during the day. Today I feel that instant messaging has been replaced by mailing lists, twitter, texting and RSS feeds. All of this can consume a good portion of your day, and for me causes me to lose focus, quickly. It's important to be selective about what information is important to keep you focused and to filter out what can wait.
I'm not saying this is for everyone, but the Low Information Diet is working for me, and my daughter is loving the extra focused attention she gets from her daddy (likewise for her daddy).
So JP had to tag me... then the Los Techies crew had to invite me to join Los Techies. This sucks for someone who "claims" to be quite a private person. Thanks JP for putting me in the spotlight, and thanks to all the techies who thought I was fit to join. So here goes...
How old were you when you first started in programming?
I was in grade 11, so I guess that would have made me 15.
How did you get started in programming?
Hmm... Kind of by accident. I took a C++ course in high school as an option and I found that I actually liked it. I didn't actually think I was capable of becoming a software developer, but I knew I liked it.
What was your first programming language?
C++
What was the first real program you wrote?
In college I signed up for a curriculum that focused more on electrical engineering than software development. However we got a little bit of exposure with different programming languages like assembler and C.
The first actual program that I finished was in my second year of college. We wrote a piece of voice recognition software using MatLab. It was actually a tonne of fun, because it required us to utilize what we had learned about digital signal processing as well as how to pick up a brand new language and learn how to get something compiling with it in a short bit of time. This was probably when I realized I liked staring at code more than I liked staring at circuit diagrams.
What languages have you used since you started programming?
Assembler, C, C++, C#, T-SQL, VB, VB.NET, MatLab. The languages I would say I'm ok in are C and C#.
What was your first professional programming gig?
Right after college I got scooped up by a company called DataShapers, where I got to work on a project called Incentus. It was a Gift Card, and Loyalty Management system. I was hired to build embedded gift card applications for different point of sale terminals.
I was quite fortunate that I got to work on such a sweet project right out of school. I was exposed to things like chip cards, 3DES encryption, SSL/TLS at a raw sockets level written in C. I was fortunate enough to be mentored by one of the best while I was there. Thanks Mr. Mark!
If you knew then what you know now, would you have started programming?
Oh... yes!
If there is one thing you learned along the way that you would tell new developers, what would it be?
Actually listen to your elders, and follow through with what they tell you. At the same time, question everything they tell you, and decide what's right for you.
"Listen to your elders, but question everything they tell you."
What's the most fun you've ever had programming?
The Nothin' But .NET boot camp (times 2)... seriously, it blows my mind!
Who am I calling out?
Adam Alinauskas (whenever he gets his blog back up)
I just watched an video by the author Timothy Ferriss and thought wow! Maybe you will too...
Oh man... oh man! JP's puttin' on a contest and givin' away free stuff... Lot's of it! *drool*
It's kind of a cool idea... The gist of it is to describe how YOU are contributing to the community, and how YOU are leaving an impact on those around you. It's all about YOU!
I can think of a few people that I have definitely left an impact on my life. If anyone's left an impact on you, why not nominate them!
wins a seat at the Nothin' But .NET Boot Camp, held in Las Vegas! That's about $3000 bucks for that seat alone! Plus... they get a copy of Visual Studio 2008 Team Suite... Plus a full years subscription to an MSDN Premium subscription.
I have no idea what an MSDN Premium subscription is... so I Googled it, here's what I found:
"MSDN Subscriptions are the ultimate resource for professional Developers, teams and organizations..." - http://msdn.microsoft.com/en-us/subscriptions/aa718661.aspx
Oh man, oh man... not only do you get a first class ticket to one of the most fulfilling courses you'll ever take, but.... you also get the ultimate resource for professional developers. If that doesn't get you all the fame and glory you've ever wanted... I'm not sure what will!
wins a stack of books, and tools and another copy of Visual Studio 2008 Team Suite with another fully year subscription to MSDN.
The books are wicked too, not to mention expensive! You get...
I've read everyone of these books except for the last one. I can honestly say, I would read them over and over again. In fact, I am... and the tools.... oh man the tools... once you go ReSharper you'll never go back to naked studio, you just can't physically do it. It makes you physically ill... I puked once trying to do it... it was messy!
wins a gift card from Amazon worth $140 bucks... That's quite a few books for a starving reader.
For more information go read up on the contest here...
I was recently listening to an episode of the ALT.NET podcast with guests Jeremy Miller, David Laribee, and Chad Myers. I remember Chad saying something to the effect of being slightly embarrassed of the code that Jeremy was about to step in to. I realized that I felt the same way...
I remember last year when I was just jumping into this .NET game. I had nothing to hide, I wanted people to review my work. I wanted feedback, I wanted guidance and I really worked hard to get feedback from people that I respected.
Today, I feel more like Chad! I feel a little more defensive about the stuff that I've written. I'm more nervous about having to explain design decisions made months ago, that I don't agree with today. I'm apologetic for making choices and writing some of the code that I've written. *sigh* (The overuse of the word I, probably hides the fact that yes I am part of an agile team and a lot of the decisions were made as a team or at least in pairs.)
Kshitij reminded me of a quote from Robin Sharma. I don't remember the exact quote but to paraphrase its along the lines of...
"If the cup is full, it will spill if you try to fill it. You must empty the cup in order to re-fill it!"
The reason that I think this quote applies is because I now realize that if I we choose to be to proud to accept criticism now, then I'm we're likely to be stuck in my our ways. The work that I've we've done, was a reflection of my our abilities at the time I was we were doing it, and not a reflection of who I am we are today.
Have you ever experienced that feeling of when you bring someone new in to a team, and you subconsciously wonder how they're going to upset the balance of the team. Are they going to find the dirty skeletons in your code closet and expose you. Or are they going to go with the flow, and just accept the way things are and keep on keepin' on!?
I think that I'm trying to form a post from all these random ideas, but the point I'm trying so hard to make is don't be embarrassed of your skill set. If we were all super heroes, then we wouldn't have any!
"The ghetto, let go. It's not a novelty, you can love your neighborhood, without loving poverty." - KRS ONE
You can keep that love for software, using alternative methods...
How do you know if you really know someone?
I remember asking myself this question a lot as a kid. As I grew up and developed relationships with people, and cut relationships with people I've found that I never really got to know someone until I've seen them express different emotions.
In order to get to know someone, in my humble opinion, you've got to see them upset. You have got to see them mad, glad, sad and every color of the rainbow. You don't truly get to know someone until you have seen them shout, cry, and laugh till it hurts.
It's in how you react, that truly defines who you are! (or want to be..)
"Brain activation for listening is cut in half if the person is trying to process visual input at the same time. A recent study at The British Institute of Psychiatry showed that checking your email while performing another creative task decreases your IQ in the moment 10 points."
This post is definitely worth reading!
Last week my family and I were in Toronto, Ontario so that I could attend DevTeach. A conference put on by developers for developers, and it was a tonne of fun. Not only did my wife, daughter and I get to check out Toronto, and visit family but I got to bump in to some more of the industries greats and here them speak.
Before I continue I've got to plug this little cafe that we accidentally stumbled into one night. My daughter, wife and her cousin were out looking for the MuchMusic building when we got a little lost. We ended up walking down McCaul Street and spotted this tiny little cafe on the corner of Elm St. It looked pretty cool from the outside and just looked kind of out of place. We're so glad we stopped in... The place was called "MangiaCake Panini Shoppe" and they specialized in panini's and, you guessed it, cake!
We tried a piece of the cherry cheese cake, chocolate cake, and the carrot cake, as well as a salad, a couple of panini's and a lasagna for myself. It was absolutely awesome! The best part was the additional attention we got from the owner named Raj. He was just great and made the experience so much more...
If you're in the Toronto, Ontario area you have to check out MangiaCake Panini Shoppe located at 160 McCaul Street.
Back to the conference...
Day 1: Tuesday, May 13, 2008
8-9:15am: Keynote by Scott Hanselman
Scott talked about Data Dynamic Web Applications, Astoria, tools like Fidler Http Proxy, LinqPad, TcpTrace.
9:30-11:00am: Home-Grown Production System Monitoring: Creating a Bridge Between Development and Operations by Owen Rogers
I really enjoyed Owens talk. I thought it was informative and backed by real project experience. Some of the things I learned:
Problems with log files:
You should log for immediate data, and limit the footprint of logging on client machines. Owen mentions that a great book to read is "Release It" by Mike Nygard.
11am-12:15pm: Behavior Driven Development Installed by David Laribee and Scott Bellware
This was a great session, that showcased the direction that BDD is taking and what it means. Some of the things I learned are:
1:30-2:45pm: How to make scrum really work by Joel Semeniuk and Turning Visual Studio Into a Software Factory by Kevin McNeish
I bounced out of the scrum talk as soon as we started getting into team foundation server, and the software factory talk wasn't exactly what I expected.
3:00-4:15pm: Achieving Persistence Ignorance with NHibernate by James Kovacs
This was a good talk that discussed alternatives to Active Record and how to implement an infrastructure ignorant domain model. It talked about different settings in NHibernate and how to create the mapping files and most importantly why you would want a infrastructure ignorant domain model.
4:30pm-5:45pm: Rapid (maintainable) web development with MonoRail by Oren Eini
This was another good talk walked through the creation of a project using MonoRail. Oren talked about the different conventions that are used by MonoRail and put it in contrast to the MS MVC framework. I'm definitely more curious about MonoRail and itchin' to slap something together using it.
Day 2: Wednesday, May 14, 2008
8-9:15am: Cross-platform Development with Mono by Geoff Norton and Planned Agility?! by David Laribee
The Mono talk was great, and actually got me pretty excited about the project. I'm surprised by just how much the Mono team has been able to accomplish and by the quick turn around on releases. I'm definitely going to have to spend some time learning more about the project.
The Mono talk ended a little early so I popped into David Laribee's talk on planned agility. This was a great talk on how to bring Agile into your projects. I guess it's still a little surprising to me how many company's are still working in a traditional methodologies, so it makes me feel pretty privileged to work where I do and with the great guys that I work with.
9:30-10:45am: Recommended Practices for Continuous Integration by Owen Rogers
This was another great talk on the concepts of Continuous Integration and how to achieve it with an automated build server. Owen talked about the inception of the CruiseControl.NET project and shared his experiences with how people were using it effectively and how people were abusing it.
11:00am-12:15pm: Busy .NET Developer's Guide to F# by Ted Neward
Mr. Ted knows his stuff. This was a great talk about F# and the functional programming paradigm. A lot of it was over my head, but I enjoyed the discussion around why this is important and what are some of the potential benefits of this style of development. Concurrency and side effect free functions were topics that kept coming up. I will definitely have to commit some time to better understand functional programming.
1:30pm-2:45pm: Blackbelt Configuration for New Projects by Jeffrey Palermo
Mr. Jeffrey gave a great talk on how to take control of your projects by offering suggestions on project structure, how to set up a single user development environment, the importance of version control, dependency management, the importance of automated deployments, application architecture.
To be continued...
Q: Should I be worried if my username and password are sent back and forth to a server in clear text, in a cookie, upon each request????
Wow... I don't know what it is, but right after the ALT. NET conference I was pretty pumped up and excited, but these days I'm feeling a little low. It's amazing how many young, talented people there are out in the industry. It's more amazing to see how fast people are moving and growing.
The guys on my team, and I, try hard to stay up on what's new... and what the cool kids are doing. But these days' it's just making me dizzy... we've got the Eleutian Guys slingin' code like crazy. This PolyGlot programming thing has got me feeling like I need to go add more languages to my vocab. I'm getting sick of checking my gmail, because each time i do it looks like the ALT.NET mailing list has just puked all over my monitor.
There's new frameworks flying out like ASP.NET MVC, Moq, Prism, Silverlight, WPF... then debates about how to write tests, what's bdd, is the auto mocking container a smell. Then there's the hype around ruby and rails, and the comparisons between dynamic and statically typed languages.
It's got me a little dizzy, but now that I think about... it's kind of cool how fast the industry seems to be evolving!
If you haven't heard, JP's giving away a $70.00 book credit to Amazon. For more details check out his most recent post.
I really enjoy reading books, but if you're low on funds. Books can be quite pricey, especially tech books. This is a great offer, and anyone interested should definitely take the man up on his offer. Even if YOU don't need the books, or the credit, I'm sure you can think of someone who could. Let them know...
Because I know how hard it was to purchase books and support a family. I'm in much better shape now, and would love for someone else who needs a leg up to win an opportunity to be successful. Do you know someone that could use a little help?
One of the underlying themes I noticed at ALT.NET was that there were a lot of people their, like myself, who were yearning for good mentoring. They wanted to be part of teams that had "senior" developers that could lead them, and push them to grow.
We all seek guidance, some of use are privileged to be guided by others and learn from the shared experience and some of us pave our own paths.
There is a very fine line between mentoring and molding, one that I think is important to distinguish. To be truly mentored by someone, means that your mentor will be able to offer you challenges that push you outside of comfort zone without telling you how. Your mentor should challenge you to be great, not tell you how it's done! A good mentor will empower you, and teach you how to think, not what to think. A good mentor knows how to learn just as much from you, as he knows how to teach you.
When you're being molded, you're shown how you're expected to do things. A blind mentor may do this to gain a sense of control, but in the process fails to trigger new ideas in those around them. This benefits no one. Not only is the mentor not gaining from allowing the protege from being creative and allowing new ideas to trigger greater ones, but the blind mentor locks his/herself down to only their own ideas and does not allow themselves to open up to change and trigger new ideas.
I'm sure mentoring is a tough thing, no one wants to wear the "Hi I'm your mentor" name tag. But perhaps there are mentors all around us. If we were to look at those around us more closely, and tried to understand what it is that each person can teach us, then you're surrounded by mentors. Everyone has something that they can teach you, the toughest part is trying to find out what that is.
"In any journey it is helpful to have a guide, someone who can help us in times of difficulty. Often, we do not venture forth due to fear. A good guide, a teacher, quells our fear and gives us confidence during our journey. An old Indian adage says: "When the student is ready, the teacher appears." Sri Chinmoy has a beautiful poem that talks about this journey."
You have a multitude of questions,
But there is only one answer:
The road is right in front of you,
And the guide is waiting for you.
So last night my wife and I booked our tickets to Seattle, Washington. I'm heading down this weekend in hopes that I'll be able to attend the ALT.NET conference. I'm currently sitting on the wait list to get in, but hopefully it all works out.
When the registration went up for the ALT.NET conference it was hard to predict what I would be doing and whether or not I would be able to attend. Now that it's a little closer to the date, it's a little easier to gage. Regardless of what happens we're super excited about visiting Seattle, and Redmond, Washington.
Cross your fingers for me!
So at lunch I decided to check my email, and I got one from Justice with a subject that read....
"Did you get one of these? Fwd: ALT.NET Seattle!"
It was a forward from David Laribee, one of the organizers of ALT.NET, that was sent out to all registered attendees. As I continued to read it said:
"We are *FULL* and there are, I'm sorry to say, no "plus ones" at this point."
My reaction was... GULP, my wife is going to kick my ***!
Then a magical thing happened... I saw another email in my inbox... the subject read "ALT.NET Seattle!" and it was from Mr. David Laribee himself!
I'm in, I'll see you cool kids this weekend in Seattle! If you're thinking about crashing the party, I would suggest that you get in touch with one of the organizers instead of pulling a mO... *sigh*
The email in it's entirety, for all the curious!
Hi all,
We're just about ready to launch into ALT.NET Open Spaces, Seattle. A few housekeeping notes:
- The space opens on Friday, 4/18 from 6pm to 8pm. Saturday we'll meet for sessions between 10am and 6pm. We'll wrap up on Sunday from 10am to 2pm.
- There is no shuttle service between the hotel (Marriott Town Center) and DigiPen (event location). Please arrange or offer rides if you can. It's Bring Your Own Ride, so be aware.
- Event details (location, maps, times) are always available at http://altdotnet.org/events/seattle/
- We are *FULL* and there are, I'm sorry to say, no "plus ones" at this point. We'll be doing a loose registration at the door and you have to be registered (you are if you're getting this message) to participate.
If you have any questions, please send me email. I'll do my best to answer promptly.
Looking forward to an exciting and productive meet-up!/ Dave
What a week!! Well as I expected it was awesome, intense, and career altering. My wife, daughter and I traveled to Austin, TX to take part in the Nothin But .NET boot camp. We love Austin! It's an amazing city, and the people are fantastic. We often hear about how friendly Canadians are, but honestly it was unbelievable how kind people are in Austin. Every where you go people seem to be having fun and loving life. We spoke with bus drivers, cab drivers, people sitting at the bus stop, people at restaurants, people downtown.
My wife and daughter traveled the city using transit while I was in class all week. Everyday my wife would tell me stories about how nice people were to her. She dislikes taking transit here in Calgary but really found it fun and a pleasant experience in Austin. The buses are pretty cool. For $1 USD you get a ticket that lasts for 24 hours. When you get on the bus you swipe it at the front and get on. Bus drivers were so friendly and told stories and jokes during the ride. They really made an extra effort to help people in wheel chairs get on the bus. I'd never seen it before, but seems to be common. Awesome!
A lot of people we met in Austin, aren't originally from Austin. It seems that there are a lot of people currently migrating there. We were fortunate to meet a pretty cool cab driver named Ed. He moved to the states from Brazil and told us a lot about the city of Austin.
The course itself was awesome. There were students there from Austin, Winnipeg, Houston, Denver, Calgary, Louisiana, and even as far as Brazil. It's amazing how close you seem to get over such a short time. The same thing seemed to happen in the Calgary course. The collaborative environment really gets people to drop their defenses, open up and be comfortable with their current skill set knowing that it's only where they are today, but not where they'll be tomorrow.
There were so many great conversations about so many different topics. Everyone seemed to have great opinions and ideas to further and push the .NET community. Everyone in the room was definitely passionate about developing better software.
It was pretty cool to meet Scott Bellware, and here some of his ideas about .NET and software development in general. At first I didn't really get it, but by the last night it clicked in. I remember saying in my head... "He's right!" Scott is a super passionate person, and questions everything. I remember making it a motto to "question everything" and he truly does that well. The .NET community definitely needs a voice like Scott, to keep us all on our toes to make sure we pay attention to what we're doing, to expose more effective ways of doing things.
I realize that as a young dev that I'm part of the next generation, and it's important to me to learn from the trail blazers and continue pave new paths when they've finished.
One of the key things that Scott talked about was the concept of Solubility. "It's so easy to read that it melts into your brain." The new style of writing unit tests that target specific contexts make it so much easier to jump in to a specific context and continue to write in new chapters of the novel. I really enjoy reading code and tests that read like chapters from a novel. It's a higher level abstraction that allows me to focus on the problem domain rather then the technical details. Let the compiler do the interpreting...
It was so much fun being a teaching assistant. I love answering questions and helping out, at first I was pretty nervous but after being able to fix a few small issues I felt better. One of the things I learned this week was that when I didn't know the answer or wasn't sure it was important to make sure I made that known. The last thing I want to do is pass along incorrect information or pretend to know more than I do. I found that by just communicating that I didn't know the answer to a problem, that chances were that someone else in the room did. This is one of the reasons why the open, collaborative work space is so important. You can save so much time by just asking for help.
When we left Austin to go home, we were pretty sad to leave. The further we got away from Austin, the more we talked about how we could totally move to Austin... I can't wait to go back and help out at the next boot camp!
The month of March was definitely a busy one. The month of April will be another busy one. Yesterday I started my first day at eCompliance. I left ThoughtWorks to pursue the world of the start-up. So far it's been a lot of fun. Day one on the job I was hitting things that most developers are sheltered from. Although, a bit scary at times... it's been a super fun ride so far.
I managed to knock off a few goals from my list, I finished the second exam to earn an MCTS designation, I finished reading xUnit Test Patterns, and my family and I booked tickets to fly down to Austin, Texas for a week.
Last year it was a huge dream for me to be able to attend the Nothin' But .NET boot camp, and this year I'm proud to say that I will have the opportunity to help TA at the upcoming boot camp in Austin. I'm super nervous, and humbled that this opportunity is available to me. The best part is when my wife and I sit down, and cross things off our list of goals, together!
Since my wife and I sat down and wrote out our list of goals, things started happening almost immediately. We slapped ours on the side of the fridge so that we can take a peek at it as we walk by. It's been invaluable to us, and has helped us with making tough decisions.
One of the things I've learned is that my lists tend to change, but our list is pretty much the same since it started. I would go full force trying to accomplish things off my list, even if they were no longer important to me. I've started to adjust my lists, and I don't feel as bad as I thought I would when I don't knock things off my old lists. Hopefully, it's a sign of adapting to changes rather then settling for less.
A wise man once suggested that I get listed, and now I suggest you do the same!
I had an interesting conversation the other day about expired knowledge. On the current project I'm working on I'm realizing that there are a lot of gaps in my knowledge of WebForms. The other day, I told the person that I was pairing with that this chaotic abstraction of the web is confusing to me. My lack of knowledge of WebForms is not because I haven't learned it yet, it's because I didn't really want to.
I remember the first time I heard the term "complex page life cycle". It had no meaning to me so I googled it to find out what it mean. oh man.. oh man... i remember reading through some MSDN docs about the sequence of events that fire as a page is constructed, and thought to myself. I'm not going to memorize this. This is crazy....
What is an advanced knowledge of webforms going to mean to you in 5 years? how about 10 years? how about 20?
I have no idea what the future holds for me, but I do know that I want to be in software for quite a while, so I do my best to focus on knowledge of software development that wont expire quickly. I would much rather spend my time studying, the intricacies of new programming paradigms rather than learning the intricacies of some new framework.
It sucks when you're doing a demo of your work to a person from business, and they're more impressed by shiny things in the UI, rather than how well tested and loosely coupled your design is.
It's like an owner teaching it's dog that it will be rewarded for certain types of behavior. If I'm rewarded by spending my time learning about how to use the cool new AJAX controls, and shunned for spending my time trying to understand what the Liskov Substitution Principal means, then what am I more likely to do?
What's the moral to this story... don't feel bad, like I do, that you don't know the intricacies of some specific technology. Strive to understand what it is you're doing, and why you're doing it like that.
My focus for this year is to study:
What about you?
So this week I got to participate in 2 interviews for potential ThoughtWorks candidates. The first was a "cultural fit" interview. A group of ThoughtWorkers including myself took the candidate out for lunch where we just talked about things from our feelings and perceptions of what it means to be Agile to the different distinct accents within North America.
It was cool to do the interview as a group. I'm sure we all came away with different ideas and noticed different things about the candidate. But really it was just to see if we felt that the candidate would fit in within a team. Would I want to work with this person?
The second interview was a pairing interview. Eric and myself met with the prospect and locked ourselves up in the boardroom to work through a problem statement. Really it was whatever we could come up with as we were walking to the office. The way the interview is interpreted is based on the experience of the candidate coming in. In this case we wanted to see if the prospect was receptive to ideas, how familiar was he with OO, could he actually jock a keyboard. The interview went well, I thought!
After now having been on both sides of the TW interview process, I started to reflect on my own previous interview experiences...
In high school my buddy Jeremy and I applied for a position at McDonalds in our neighborhood. (Banff Trail what's up!?) We both got a call back for an interview, one after another so we went to the interview together. The hiring manager at the location sat us down together since we knew each other and interviewed us as a pair. It was fun, maybe to much fun... neither of us got hired.
After that I applied at Domino's Pizza, (right on Crowchild Trail, right across from ... "Banff Trail, what's up?") I got a call back for interview, and I showed up straight from school with my back pack and my blue fitted LA Dodgers hat tilted and tossed to the back. I was less interested in impressing the person hiring, and more interested in finding a job that would be fun. I somehow got the job...
In June of 2004, I had just finished my college diploma and still working at Domino's Pizza. I was sleeping in one morning, after working a closing shift at Domino's when I got a phone call.
Person on the phone: "Hi this is... Alex Smith, an instructor at SAIT. I spoke with Gary Funk, and he suggested you to me as a candidate for a C programming position. Would you be interested?"
Mo: "ahhh... yeah of course!"
Person on the phone: "Would you mind emailing me your resume so I can pass it along?"
Mo: "ahhh... yeah of course!"
....
So I jumped out of bed, spruced up my resume (hmm... should I put Domino's Pizza on or not?) in about 20 minutes and fired it off to Mr. Alex, and went back to sleep.
Around noon I got a phone call from a Mr. Sergio...
Sergio: "Hey Mo, my name is Sergio. I just got your resume from Alex and would like to meet with you. Are you interested?"
Mo: "ahhh... yeah of course!"
Sergio: "Can you be down here in about an hour?"
Mo: "ahhh... yeah of course! Down where??"
...
Lucky for me I was a delivery driver at the time, and my car was still operating (somewhat... I miss you Honda!) I slapped on some jeans, and collared shirt and got my butt down to his office. After about an hour, Sergio was showing me the point of sale terminals he was working on and the current code base. He was walking me through parts of the code base that he thought I would need to know about. It turned out that Sergio had a family emergency and had to leave the company...
So I got my first job as a programmer... it was literally that fast!
I once interviewed at Cambrian House, by a friendly gentleman named JR. He took me to a room with a table in the middle and a couple of people working on laptops. He pulled up an exercise ball sat on it, and offered me a chair to sit on. I don't remember the questions he asked me or what the position was even for... I didn't pursue the job, because I was starting a family at the time and was afraid to take the risk. (no benefits, long hours... startup y'know). On a side note, I later found out one of the people working in the room was a man by the name of Richard Hurst, who's been described as "One of Western Canada's top software developers." Opportunity missed!
I had 2 interviews with IDC. First a phone screen, then an in office meeting with the <something> Manager. I was in awe of his intelligence that I was afraid to ask questions. I was hired then left after a few months. (It wasn't the right cultural, or technical fit for me! Boo... VB6!)
When I had my in office interview at MediaLogic, I showed up in a suit. Man did I feel silly afterwards... I figured everyone downtown wore suits... I didn't know! When I walked in to the office I saw a pool table, with a bar style kitchen, a big flat screen TV, a dart board, with colored walls that can be moved around to change the shape of "cubes". (we later created the super cube for some of the dev team... long live the super cube!)
My in office interview was awesome, it was with the dev manager, Mr. Luu, and the team lead, Mr. Adam. I remember getting fired up when Adam started to grill me on questions about OO, and design patterns. I realized that I had a lot to learn but was infected by his passion. I had a second interview where I was given a problem that tested my knowledge of ASP.NET and ADO.NET and I bombed. My saving grace was that I went and talked to Adam about what I was trying to do, and basically walked him through my thinking. I got the job!
I interviewed at ATCO iTek. It started off with a phone screen, then they emailed me a technical assignment to solve, then I had an in house interview. At my in house I asked if I could meet the team, and the answer was a No. I accepted and then later turned down the job.
I should have learned from my first interview at Domino's Pizza. The moral of the story is... don't just try to impress the person hiring you. Make sure they impress you! Know what you want, ask lots of questions to find out if the place is what you want. If you don't know what you want, it's worth taking the time to figure it out before firing off resumes. I don't mean to sound like I'm a pro at interviewing, I'm not. Based on my experience, this is just how I see it so far...
So there we were... my wife and I were sitting on the couch watching "Evan Almighty". Afterwards, we turned off the movie and I decided to check my email before going to bed and I noticed that I had received a comment from a... Mr. Chad Myers
I got so excited, of course I recognized the name. I started reading Los Techies a few months ago and have enjoyed reading several of Mr. Myers' posts. Most recently his post on the first 2 hours of TDD. It was last week when I read it, after reading it I read "Getting Over The TDD Hump" by Jimmy Bogard. After reading that I emailed my old manager and said:
Ahhh... the good ol' days. This post reminded me of last year...
Back to where I was going... I got so excited that an author whom I read regularly took enough interest in what I was doing to drop a few lines. (Yes geeky I know, my wife just looks at me with a raised eye brow when I go into my geek speak schhpiel about the blogosphere.)
What I'm trying to say is that there's so many hard working people out there who work hard to share good material. Who work hard to share their experiences... Although, I think of so many people on my blogroll as heroes, they're all just good people in the end. Many of whom would rather not be titled hero and would rather just a thank you.
So Thank You too all the great authors, who take the time to drop a post here and there to share their experience, the lessons they've learned and for keeping me company when I can't seem to articulate what I'm trying to say. Chances are there's a post some where out there than can convey the feeling that I'm trying to get across, so when I can't communicate the message effectively on the team I can point them to a post that can.
Maybe it's just me, but it seems like we all want to have someone to look up to. We're constantly putting people up on a pedestal then dropping them and moving on to the next hero.So how do you properly show appreciation to those, whom you feel you've learned a great deal from.
How do you say... Thank you so much <insert name here>, you've re-ignited my passion for <insert passion here> and you've shown me that it is possible to love what I do and be excited about getting up in the morning.
Thank you all!
Today I read...
![]() | The Dream Giver by Bruce Wilkinson Read more about this book... |
A friend recommended this book, and I'm glad I listened to him. I found that when I started reading, I had trouble putting it down so I read the whole thing. The book starts off...
"A Nobody named Ordinary who lived in the land of Familiar."
After that, I realized a lot of this book was speaking about me. It explained the different people in my life and why they behave the way they do. I'm having trouble explaining why I enjoyed this book so much, maybe it's because right now I feel "stuck".
I feel like I've got something in me that's screaming to get out, but I just can't figure out what it is. Some day's I think it's my inner creativity burning to get out, and if I don't feel like I'm able to think creatively and try different things then I'm a sleep or that I might lose that "potential".
I know you can't see it yet, but I will become what I am.
One of the things that keeps me pumped up throughout my day is the opportunity to solve problems creatively. When the opportunity isn't there I feel like I can barely stay awake. Lately I've been struggling to stay awake. My passion for software development is low right now. My motivation to learn new things, and code is still there... but starting to dwindle away.
I'm working on a good project right now. The architecture is laid out, and big changes are a no no. The client is happy, so any suggested changes are kind of looked at with raised eye brows. I feel like a spec developer who gets handed a 7 page document for a story card that I have to implement. It's mostly just creating new screens and updating stored proc's (so far). (I very much dislike having to spend my time in the land of SQL, I am an object bigot.) So for a new dev, it's a pretty cozy job. For me it's not quite my "sweet spot". (I should tell you that it's only been about a month so far.)
Zzzz... I'm finding it difficult to find new and interesting things to blog about, and it almost seems forced these days. It seems like if I want to keep any sort of artistic creativity alive, I've got to do it on my own time. Not on work time!
I'm not complaining about my job, I'm just yearning for the past. Last year was a tonne of fun, at my old job. There was no one to blame but ourselves when things didn't work out. There was no pointing fingers at the people in another department on another floor. We were the team and there was no other floor. We were a tiny team that got to work on some big problems and in the process we got to flex our creative muscles.
Like any muscle if you don't exercise it regularly, it becomes weak. Right now my creative muscles feel rather weak. Today I sat my butt down to write some code, I had plans on demonstrating some ideas I thought of while riding the bus. But once I got started I found myself getting upset, and frustrated with myself. I can't explain it, I was just mad that I wasn't moving as fast as i wanted to be. My ideas were a tangled mess, and I just couldn't sort it out. I was just annoyed and disappointed with myself. (mO, mO, mO... breathe buddy... breathe!)
One of the reasons I was drawn to software development was because...
I suck at drawing!
I've always enjoyed art, music, and literature. When I found something that allowed me to be creative, and something that I thought I was pretty good at, I held on to it. But lately everything seems so familiar, so comfortable, so boring... Zzzz...
I can only imagine what my team members might think if they read this post. I only wish they could see how we developed software during the last few months of my last job. I remember during my phone interview with ThoughtWorks saying that
"If it's not ThoughtWorks, then I'm not leaving my job. I like the guys I work with and I'm having a lot of fun."
If I liked the guys I worked with and I was having fun, then why did I leave? Let's face it... I tell myself it was for the opportunity to grow and face new challenges. Well, I was growing and facing challenges where I was. In the end I realize it was for the money. I was not in a comfortable place, and instead of pushing through, I returned to the land of familiar. So there's the decision... comfort and familiarity or the "dream".
I admit that there were times when I was discouraged about the progress of my old team, but after now job hopping for a few years I see that it had been one of the greatest and most accelerated learning experiences of my life. I couldn't wait to get out of the Waste Land, and not have to worry about money. Now that I'm out, I see how the time in the waste land was actually a season of preparation, but I don't think I stayed long enough to appreciate it.
I've always wondered how much other people make, financially. Not so much because I'm greedy, but more because I don't want to look foolish when I'm asked "What's your expecting salary range?"
Here it is... the big secret most people seem to hold on to.
DataShapers Inc
Imaging Dynamics Corporation
MediaLogic Inc.
ThoughtWorks Inc.
January. 16, 2008 - Present
If anything this should satisfy the person who's been googling "How much money does a software developer make?"
I seriously can't get enough of school. It's only been about a month since I haven't been in some sort of course and I've already got an itch for the next one. I was just sitting here reading through the course abstract for Mr. Donald Belchams Nothin' But .NET Course, and it sounds awesome.
In fact I learned something from just reading the abstract. There's a new collection to toy with, HashSet<T>. It's a generic collection that contains unique elements.
Read here for more info....
Back to what I was saying... Donalds course on C# 3.0 and the .NET 3.5 sounds awesome. If I didn't just start a new course I would definitely be attending... I would so love to attend this course.
So if you're in the Edmonton area or feel like getting down with a lil' 3-5 action you should check it out.
Gettin' jiggy with .NET 3.5 between March. 31, 2008 - April. 04, 2008
I keep reading all this stuff about courses being to expensive. It does sucks that school can cost so much, but there's no greater investment then in your own growth. If you're passionate about what you do, you need to be a student of your profession, and you need to get in touch with others who are also passionate.
School isn't necessarily for everyone, but the classroom is a great way to foster new ideas and ways of thinking. Getting away from the hard deadlines and added pressures of a work environment and focusing on the "fun" is what school should be about. I'm excited to read all the posts about the course afterwards, it sounds like it'll be a lot of fun. If anything, Mr. Donald should be able to put you in touch with some of the great community up in Edmonton.
In my humble opinion, you can't afford NOT to go!
So it's been a lonely 2 weeks at home with no wife and daughter. Allison and Adia went to go visit grandpa for a couple of week while I was supposed to be at ThoughtWorks immersion in India. Not only that but we still don't have internet/phone/cable hooked up at our place yet. I'm not missing the cable or phone as much. But life without internet is...
"No cable, no phone, no internet makes mo go <something, something>..."
So not only did I not go to immersion, but I also sat my butt at home alone reading poetry.
In the Depths of Solitude
I exist in the depths of solitude pondering my true goal.
Trying 2 find peace of mind and still preserve my soul.
Constantly yearning 2 be accepted and from all receive respect.
Never comprising but sometimes risky and that is my only regret.
A young love with an old soul.
How can there be peace?
How can I be in the depths of solitude when there are 2 inside of me.
This duo within me causes the perfect opportunity.
2 learn and live twice as fast as those who accept simplicity.- Tupac Shakur
To read more check out....
![]() | Tupac Shakur Legacy by Jamal Joseph Read more about this title... |
Poor mO!
So where the heck have I been? Well it's a brand new year and it's been busy. Right now Alli, Adia and I are living in a spare bedroom at Alli's mom's. It's been kind of hectic moving out of our old place and shoving everything we own into a garage but also fun at the same time. (define fun for us, mO!)
This is my final week of work at MediaLogic and it's a little sad to think that I wont be walking in to the ML studio next Monday morning, but it's been fun. I received a lot of kind feedback from my last post. Thank you to everyone who took the time to write and leave comments, it's nice to know that the universe cares and that there are kind people out there. I hope I didn't paint a grim picture of being underpaid and up against all odds. In fact I've had a pretty good life and really the financial pit falls from last year are from my own doing. In fairness to ML, I receive a decent entry level salary!
School and ambition can be expensive, warn your spouse!
In other news, I stopped by the Calgary ThoughtWorks office today to drop off 2 passport photos and a copy of my driver's license. I was all set to go to the 2 week immersion course in India, but I found out today that wont be happening. I'm a little disappointed, but at the same time flattered because they're tossing me on to a project ASAP. Which means the ThoughtWorkers who were part of my interview process have faith that I'm ready to leap on to a project. There's still lots of time for travel. *sigh*
I did find out which project that I'll be jumping onto and who I'll be working with. I'm so nervously, excited that I can't wait to jump in and meet the team, but I also feel like I could vomit all over myself at the same time. (hopefully it doesn't happen at the same time!)
I walked out of the office with a copy of "Pragmatic Version Control" by Mr. Mike Mason. My stack of books is increasing. I've now got "Extreme Programming Explained", "Hackers and Painters", "Introduction to Algorithms" and "Pragmatic Version Control using Subversion" waiting for me.
So I'm filled with many emotions these days. The transition between jobs is definitely a weird place to be in, especially when you're leaving a place you enjoy working at. It's definitely important to me to keep in touch with the guys at ML because I feel like I've done a lot of growing with them, and it also makes me want to reconnect with some of the people I used to work with.
I can imagine what it might feel like to be a young rookie entering the big leagues. If I get some ice time, I might even score a couple!
Some thoughts that go through my mind are?
"Did I over sell myself? I don't think I did. I tried to be honest about my skill sets. I guess if I did, they'll be exposed pretty quick. So I will have to ramp up quickly."
"I hope I don't disappoint the new team. I'm not sure what they're expectations of me are, but I better work my butt off to exceed them."
"Will I make it past the probationary period? Will the team even like me?"
I know these are just thoughts and most of them I shouldn't even worry about. Just show up, work hard and be respectful. I still can't help but think the above thoughts.
I imagine I'll be the youngest on the team, I'm kind of used to it now. I was the youngest person to graduate from high school in my graduating class. I was always the youngest person in my class all through grade school. The benefit has always been that I got to hang out with the older kids. The disadvantage is that I got to hand out with the older kids. Sometimes it feels like I might have grown up to quickly, and sometimes it feels like I haven't grown up quick enough.
I suppose my age is my advantage, and that doesn't last for long. There's always going to be someone faster, younger, and smarter then me. Hopefully, that doesn't deter me from attempting to reach my potential but also doesn't allow me to grow an inflated ego.
So what does all this ranting really mean? I guess inside I'm still just a 23 year old kid.
I nominate Justice Gray for the Microsoft MVP Award.
I think it's time! Don't you?
It's been an amazing year of ups and downs. Our family is fortunate that we've had many more high's then lows and sometimes I lose sight of that. The new year is a great time to reflect on the past year and to look forward to the new year. I've been forming this post in my mind for a while now. Thinking back to everything our family was able to accomplish. And if you're interested I'd like to walk you down our journey of 2007.
In January I was working at a place that I didn't feel comfortable in. It was stressful because I just wasn't happy with where I was, and where I was going. I was a below average software dev and didn't know which direction I wanted to go or whether I wanted to seriously take on software as my craft. I eventually decided that I was unhappy because I didn't feel that my skill sets were up to par and that I really wanted to jump into this exciting world we call .NET development. The world of C and VB6 quickly lost it's charm and a dispute with a co-worker about use of racial slurs was the end for me. I developed the fire in my belly to get better.
I began the first of 5 courses at SAIT to work towards a C# programming certificate. I started heavily reading blogs, in particular JP's. I have to say that his passion for development was so contagious that I felt I truly could excel at software development and I was having fun while doing it. As I finished off course textbooks one after another I came across a post by Justice Gray where he planned to read several books in a span of several weeks. I looked up JP's book list and made it a goal to devour every book on that list. I haven't finished them all but I have read quite a few of them now.
In February I started work at MediaLogic as a full fledged C# developer. I'm fortunate that they saw potential in me and took me on as a junior to help me grow. The environment here at MediaLogic allowed me to flourish in ways that I never imagined possible. I also started to listen to more and more podcasts at this time. It became a ritual to either listen to pod casts or read books while riding the bus to and from downtown every day.
In April, I attended that Calgary Code Camp. I was looking through my notebook the other day and found a slip of paper that had a schedule for presentations that I wanted to attend at the Calgary Code Camp in April. The slip had presentations by Terry Thibodeau, James Kovacs, Jean-Paul S. Boodhoo, Steven Rockarts, and Donald Belcham. As I read over the slip I realized that at the time I wrote on the piece of paper and at the time I sat through they're presentations I never thought I would be able to actually get to know some of these people or even be able to fully understand some of the content they delivered. I've now had the privilege of shaking hands with many of the above mentioned names and I think (I think...) some of them may even know me by name.
In August, I stared at what I thought would be a record low bank balance. I remember feeling quite scared, feeling like I had no control and was quite worried about how I would be able to keep our family a float. I remember a lot of sleepless nights, which I now realized helped me excel even faster. Failure was not an option.
In September, I read a couple of books by Robin Sharma and attended a live presentation by him. I remember thinking that I thought he would be taller. But it seems some of the greatest minds make up in thought for what they lack in height.
I also remember staring that the ThoughtWorks web site for weeks reading through everything that I could, contemplating about whether I was ready or whether I would make the cut. I read about Martin Fowler and about a company who's values were inline with my own and offered opportunities that I could only dream of. I eventually decided to take the plunge and apply, I figured if I didn't have what it takes at least I want to find out what I need to focus on.
In October, I spent the month heavily studying towards my first MCTS exam. I travelled up to Edmonton and shook hands and had lunch with the legendary Justice Gray, where he introduced me to several other passionate developers up in the Edmonton community.
In November, we celebrated my daughters first birth day. I completed the first exam towards an MCTS designation, I attended the infamous week long Nothin' But .NET Boot Camp, had my in office interview at ThoughtWorks, began my fifth and final course at SAIT, and caught the very last presentation at the Alberta Tech Festival by Gerard Meszaros.
In December, we celebrated a wonderful Christmas filled with family and joy. We hit a new record low bank balance but realized that it might be the last for a while when I received an offer for full time employment at ThoughtWorks. The new year will no doubt be one of the most challenging ones so far. Bring it on 2008!
Well you know you're famous when your caricature is painted up on the side of a wall, but when a bar is named after your high school nickname it takes it to a whole new level of celebrity.
Yup, my father in law finally realized his dream of owning a bar in Mexico. If you're interested "YoYo Mo's" can be found in Bucerias, Nayarit, Mexico.
My buddy Lanky, drew the cartoon character of me while we were in high school. Like so many other drawings he sketched I hung on to them like gold.
The originals:
So it's Friday night and what could be more fun then reading through the MIT Open Course Ware?
One of the first PDF's I cracked open was on getting set up. It started off with a discussion on getting to know your IDE, then your version control and finally your unit testing framework. Did you hear me? This is what you learn at the start of the course, it's almost dumb silly but I unfortunately this isn't the norm in school today. At my first programming job, I remember asking "what's source safe?" I was fresh out of school and had no concept of what source control was. I can now appreciate how important it is to get to know your IDE, your version control (subversion yay, source safe boo!), and of course unit testing frameworks. By the way this MIT course was from 2 years ago... Those MIT grads must be so far ahead of the average grad.
As I was reading through some of the material I gathered some notes and quotes that I found uber helpful. Some of it is listed below:
"I concluded that there are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make is so complicated that there are no obvious deficiencies."
How to 'Keep is simple, stupid' (KISS)
"...it's easy to make something complicated, but hard to make something truly simple."
So my SAIT courses are almost wrapped of for the year, and I've been thinking about what kind of schooling I want to do next year. MIT Open Course Ware here I come!
P.S. If you're into jungle, I just found a pretty fresh collection of jungle beats!
Ok so I have to admit that yesterdays entry cleverly titled "Software Sucks" was a little impulsive and over the top. Software does not suck!
I suppose I over reacted a little bit, but I think the reason I was so upset is because I want people to have positive experiences when working with software that I hand craft for them.
At Subway I love their concept of "Sandwich Artists" where they craft the sandwich right in front of you. You're there for every step of the process, minus the baking of the bread and prepping of the toppings etc etc...
What if software were built in a similar fashion? Do you follow where I'm going.. what if the end user was there for every step of development so that they get the software that they want. Now in an ideal world that would probably amount to bloated budgets and the never complete software. But what if we could get the end user to prioritize and pick the things that are most important to them and guide us as we build the software for them.
You are not doing Agile, you are Agile!
I was a part of an interesting conversation today with Sean and Adam where Sean brought up a great point. (Pardon me Sean if I paraphrase incorrectly!) In the eyes most companies, a software project was successful if it was on time and on budget. Until you can prove to the company how the inefficiencies in software are actually costing them money, you probably wont be heard.
So how does one go about creating change, well start with the all mighty dollar! Perhaps one tactic for introducing Agility into an environment is to discuss how it can save you money. I'm not a big fan of graphs and excel sheets and charts, but I've found that it's usually a good way to communicate with people who have money or are responsible for spending money.
So hit 'em up with a little "Agile vs. Traditional Cost Models" talk. Mr. Joe Ocampo says it best with:
"The quicker you are able to stabilize a production release the more you will increase the value stream for the business." - Joe Ocampo
Sean offers his thoughts on how to introduce change in your shop and why it's necessary. It's definitely worth a read.
With that said... my love of software development continues!
I'm so spoiled, spoiled, spoiled! Since our Nothin' But .NET experience last month, 3 lucky contestants including myself were issued our... "Cool Kids Club Card" from Mr. JP himself!
What I'm trying to say is that JP's taken an interest in our work and has been meeting with us as often as he can to discuss what we're currently working on. Sean calls it our "Agile Therapy".
If you're not already doing it, start your own "Agile Group Therapy" with your team where you can just discuss the up's and downs of the project (some people call it the sprint retrospective, but I think "Agile Group Therapy" is a cooler name.) I've found it super helpful to just get in touch and talk. (Why am I so touchy, feely today?)
Back to what I was saying. With our weekly discussions we get a preview of some of the events coming up in the life of JP. Without saying to much... Next year is going to be awesome! (Some might even say awesome, blossom!)
Shame on you kids out in College Station, Texas. It's only a few weeks away and I can't believe the January boot camp hasn't sold out yet. Sure, sure it's a "fundamentals" course, but how many of us actually know the core "fundamentals" of .NET. Do you really know events, delegates, generics, app domains, threading... Do you really know it?
I surely don't... I've only started to skim the surface. This is definitely a course that I would love to attend. I'm telling you, that it's probably going to be a lot more "fundamental" then what you might think a typical .NET "fundamentals" course is all about. Shame on you, go Register!
Nothin But .NET Fundamentals Course Abstract
Nothin But .NET is expanding, and next year sounds like it's going to be an awesome year for new courses... and... *drumroll* ...new instructors!
No... no... not me... I've got a lot of growing up to do still! They're people you probably already know...
One last lesson from today's session is all about VIM.
Next month my family and I are moving to a new place. So today I made a list of people & companies that I needed to contact to update my address. I really only expected to take about an hour to update my address at 15 different places.
It turns out that this simple task of changing my address is taking me close to an entire work day. Why? Because "Software sucks!"
It's literally unbelievable how many hoops a customer service representative has to jump through in order to make this simple change. I just spent 20:04 minutes speaking with a customer service rep from SAIT to change my address. During that 20+ minutes I heard him say things like:
"It's not allowing me to save."
"It's saying you have a bunch of primary phone numbers."
"It's saying it's locked."
"I have to get a hold of a technical person."
What? I'm sure the first thing most people are thinking is that this person didn't know how to use a computer. Even if that was the case, which I don't think it was, why would he be made to use one then!? Would software actually be the correct solution to help him be more productive? I felt like this guy knew what was going on and was working towards my best interest.
I had the same issue while speaking with a representative from SHAW. I spent 11:05 minutes on the phone with this gentleman. He told me that because the address wasn't in the system he couldn't change my address. He had to send an email to a "technical" person so that they could add the address to the system, so that he could change my address. Does this sound crazy to you? Why is there this dependence on the "technical" people to get things done. IMHO, because "technical" people never gathered the necessary feedback while they were building the system. Software should empower it's users, not inhibit them!
The gentleman at SAIT noticed that there were a few mistakes in regards to my account so he took it upon himself to fix those errors. But in the process of doing so, he was stopped by several "technical" hurdles. Which I assume is the reason why previous customer service rep's didn't take action earlier. Because they saw "the technical hurdles" and knew that it would just slow them down.
As I was on the phone with this person I asked him questions like...
"Did anyone ask you for your feedback when they were building this software?".
His response ... "No! Why would they do that!?"
My response, "because you're the one using the software... maybe!???".
He proceeded to tell me about software and how it's built. He said they get these different consultants to come in and build different parts of a system. He said it was like getting 2 different groups to build each side of a bridge. And when they try to put the bridge together, it doesn't fit so they duct tape it together to make it "work".
He is so right, why is this the norm for software development? Why is it that we think it's ok to have to rely on our "technical" people to solve problems that shouldn't be there in the first place. If this gentleman's feedback was asked for during the construction of the software, most of these hurdles probably would have been addressed then. Maybe then... he could actually be the productive employee that he wants to be, and I can get a long with my day!
Who thought changing and address could be so hard!
When I moved my DasBlog on to GoDaddy I found that my captcha controls (comment view and email view) were no longer showing. In the event log I was reading the following exception...
I'm paying for the cheapest possible plan i could find on GoDaddy which was the Economy Plan, I'm not sure if this following step is necessary if you're paying for a virtual dedicated host.
"System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'gdiplus.dll':"
DasBlog doesn't ship with "Gdiplus.dll" so you'll have to download it and drop it into the bin directory.
Thanks for your help, Mr. Justice!
While I'm at it, I should drop a plug for...
![]() | The Money Book for the Young, Fabulous & Broke by Suze Orman Read more about this title... |
It's been an emotional roller coaster this week. On Monday, my daughter Adia turned 1 years old. I can't believe she's already one, and she's growing so fast. This year she's taught me lessons about growth and laughter among many other things.
Last night my night class was canceled so I was able to attend a farewell dinner. My wife sister, Lisa, and her boyfriend are starting a new journey today. In about half an hour they will be starting a drive down to Mexico where they're planning to start their new life together.
I really didn't know how I was going to take it all, but I think I cracked this morning when my wife was in the fetal position under the covers on our bed telling me about how she just said good bye to her sister on the phone. I shed a couple of tears! (please don't tell her)
It's hard to come by good friends, and as you get older it seems at times that it's even more difficult. I know Allison and her sister were very close. They spent a lot of time together, and now seeing my wife lose a friend that she see's on a daily basis hurts a little.
My daughter, Adia, is sure going to miss her auntie Lisa and uncle Tony. Have a safe trip guys and don't forget to write. Take care!
When I was younger, I had a good friend who would invite me over to his place almost every evening. It awesome, we hung out and had a lot of good times at his place. After a few years his mom started dating some new guy, and things started to change. I would come over and when it was time for dinner I was told to wait downstairs, I wasn't allowed to come up during dinner. Weird... but ok!
It turned out that his mom's new boy friend didn't want me to sit with them at the dinner table. After dinner, my friend was usually quite angry about something the new boyfriend said at the dinner table.
At that time I formed the opinion that the root of all ignorance starts at the dinner table.
It's so subtle, but it does. When you're heads down buried in your meal and your parents are making back hand comments about other people and races you subconsciously pick up these ignorant ideas. I think many people don't realize the effect that a few slight of hand comments have on their young ones. It could be as subtle as criticizing a co-worker and bringing up their race, which really had no place in the conversation in the first place. Who care's if so and so is of color X, or is from county Y. Is it really relevant to the conversation at hand.
Last night, I continued to extend this thought when I realized that things are worse then I thought when I was younger. Many families now tend to eat in front of the TV. When you're staring at a TV show you're almost in a trance like state. It's almost like your subconscious is open to any form of suggestion, good or bad. While watching the news last night, I overheard one of our family members making some comments that immediately struck a nerve in me. But I realized that no one else had picked up on it. Or if they did, nothing was said.
I too said nothing, but started to think about what kind of impact this comment would have had if my daughter were just a few years older and also sitting in the room. Would she develop negative feelings towards a certain group of people without truly understanding why? Could it have been caused by an ignorant comment made a family member that she loves, at a time when her defenses are completely down.
It bothers me when I hear some drop comments like that, and I recognize that I am hyper sensitive. I'm still having trouble forming an idea on how to effectively deal with situations like that. I'm not confrontational by nature, but I really just want to ask "What makes you think like that?", "Do you really believe that?".
It seems that by doing so puts people in a defensive posture, it doesn't usually change the way they think. They end up putting a filter on when you're around.
Yesterday I was completely speechless when I found out about the kind gesture performed by a kind friend. But right now I'm speechless again!
"If you guys are going to lead the way and are going to get some time in the spotlight you need to look independent, innovative and “business savvy” not just computer “geeks”; and I say this with the utmost respect. I want to, and am marketing you guys on a daily basis and you will see some stuff slowly coming in now but there is no reason why you guys can not promote yourselves and work on your image, as vain as it may seem."
The above statement was a comment I received in my inbox due to JP's post on Multiplying Leadership. I read this email over and over again, and in it I found some hurtful words. I'm not sure if the intent of the author was to shake me up and set me straight or what.
Honestly, I would prefer to let the business people take care of looking "business savvy", it doesn't interest me. My web site, and my blog is not a marketing ploy to help me sell a package product. It allows me to do the same thing that my journal and sketchbook due..
It allows me to express myself!
I always thought that people who sought after positions of authority usually weren't the type of people who should be in positions of authority. I shy away from such positions, because it's a huge responsibility when you think about potentially impacting other lives.
I am a geek, and I'm proud!
Yesterday, I had my first trip out to the back country to go quading. This was my first experience out in the forest and on an ATV. It was a lot of fun, and a I'm feeling a little sore this morning from it. While we were out there I saw lots of wildlife. I don't know why but I felt like a little kid, I just couldn't stop staring at all the animals, the hills, the trees, the mountains and the forest. It was so very calming.
I thought I was going to spend the day contemplating how to deal with different events currently taking place in my life, but in the end the exact opposite happened. When you're out traversing the rough terrain you've got to put all your focus on over coming the land. I found the day to be just what I needed. I didn't need a day to think, I needed a day to not think and I feel like I have a clearer mind for it.
Within the first 10 minutes of traversing the terrain we came across a hunter gutting a dear on the back of his pickup. I had not seen a sight like this before, and it struck me deeply. To stare at the lifeless dear in the eyes as the hunter held a thick blade with blood dripping from his hands. It seemed barbaric, but in hindsight it's probably not as barbaric as how our meat gets processed in large factories. Either way I felt weird and fuzzy inside.
I'm still buzzing from the Nothin But .NET boot camp last week. My dreams last night can prove that I am. I'm not sure how many times I woke up in the night trying to recite the many different patterns we covered last week. I'm so looking forward to reviewing the countless hours of video from the week.
I think one of the aspects that made the week so enjoyable was the people. I've been to a couple of week long courses before where you show up at 9am and leave at 5pm. You don't feel like you really got to know anyone and you don't feel like like you've gained a lot from the experience. Besides touring a new city of course.
Because of the atmosphere that was put in the place it felt like we were all on a level playing field. It felt like we forgot about our fears of looking good or bad to our peers. It felt like a culture for learning. We all quickly shed our thick skins to really open ourselves up and be vulnerable, I think this made the week long event so much more fulfilling. I feel like I really got to know some really kind people, and hopefully some relationship from the event will blossom and continue to grow. I think I went into the event wanting to be the weakest link, so that I could grow to become the strongest one. In the end I don't really remember caring about which link in the chain I actually was.
So today is the first day back in the real world. Today is the day that I decide to either start practicing the gospel from last week, or I go back to the way things were. Today is a pivotal day!
When I reflect on this year, I think back to January when I remember feeling like I had no options. I felt like I had no idea what direction to take my career and where I would end up. I felt like I had few options. After less than a year of dedicated hard work, and extreme focus I feel like I'm starting to develop a few new options that seem to be gateways to long lasting career paths. I'm looking forward to reflecting 5 years from now after 5 solid years of dedicated hard work and extreme focus. I can only imagine good things.
Is it just me or am I really "touchy", "feely" today?
I know that I'm a junior developer. (Really I do!) I'm always going to be a junior developer, because of one thing. I don't care how good others are or how I rank up next to them. I'm always going to judge myself as junior compared to how good I can be. Dude, I couldn't care less how "good" I'm supposed to be at my age. There's always going to be someone faster, smarter, and better looking then me, and I'm cool with that.
Last week's experience at the "Nothin But .NET Boot Camp" was humbling. Why? Because I realized that my life is pretty darn good.
There are people who have faced so much more adversity then I will probably ever face, and wake up every morning enjoying life. This year I've been allowing myself to play the role of "please feel sorry for me, my life is so hard and I'm not sure I can make it." Last week, I realized that I need to smarten the heck up. My life is pretty good! The day to day battle with money, are trivial in the long run. I have a beautiful wife and daughter who love me dearly. How hard could my life possibly be?
"Success it not to be measured by one's status in society, but rather by the obstacles one over comes." - Booker T. Washington
Software development has taken over my life. It really has, I live, breathe, eat, and sleep thinking about patterns and curly braces. I hold my daughter in my arms as I'm rocking her to sleep thinking about code, and I feel guilty about doing it. Why is it that when my wife is talking to me about things that happened to her during the day, I'm drifting off thinking about how I need to be on the computer hammering out an idea for a block of code? Dude, I suck!
When I picture success...
- I picture myself sitting on pillows next to a warm fire with my wife staring me lovingly in the eyes. With our two healthy kids upstairs sleeping. Knowing that at that very moment, we had the freedom to do anything we wanted to do. That doesn't mean that we would, it's just the feeling of knowing that you could.
- I picture myself sitting on a rocking chair on our porch out on a hot summers day reading biographies of great people. Knowing that if at any moment my wife, children or grand children needed me, that I could be there for them in less than a second.
So if this is my picture of success, why am I not fully present when I'm with my family. Why am I consumed by code?
Software development was a means to an end. But it's becoming an end to what was meaningful. Coming home on Saturday to my wife and daughter brought me a lot of joy. After not having seen them for most of the week, it helped me realized how much I love and care for them and helped me remember why it is that I'm buried deep in books, and why I care so much about my craft of software development.
Here's a conversation I had with my manager, Luu, before going to write exam 70-536
11/2/2007 10:24:58 AM
Luu: good skills on your test Mo, relax and do some light reading for a bit....don't worry about studying last minute it never helps
11/2/2007 10:25:12 AM
mO: really?
11/2/2007 10:25:17 AM
mO: Thanks so much Mr. Luu!
11/2/2007 10:25:31 AM
mO: i'm so anxious right now, i cant stop tapping my feet.
11/2/2007 10:25:49 AM
Luu: yeah last minute things only confuse and make you stress
11/2/2007 10:26:16 AM
Luu: like for 1 hour before the test don't look at anything having to do with the test
11/2/2007 10:26:24 AM
mO: what should i do?
11/2/2007 10:27:06 AM
Luu: listen to some of joels music and read some blogs... not having to do with programming
11/2/2007 10:27:49 AM
mO: music actually might get me to relax.
11/2/2007 10:27:59 AM
Luu: that's fine but i would stop working at 11 and relax
11/2/2007 10:28:18 AM
mO: i think you're right, thank you for being a great manager Mr. Luu!
11/2/2007 10:28:56 AM
Luu: just suggestions... your welcome
11/2/2007 10:29:10 AM
Luu: you'll do fine... actually probably great
11/2/2007 10:29:23 AM
mO: thanks Luu, i feel like I've done what i can do.
11/2/2007 10:29:35 AM
mO: so i'm pretty happy about that.
11/2/2007 10:31:20 AM
Luu: yep... let fate do the rest
I passed! Thanks Luu...
Today I decided enough was enough. For the last 3 or so years, I have hosted my personal web site from a server that I ran from home. Using a combination of DynDns.org and a 2nd IP from from my ISP, I've routed people to my home server each time they punched in http://mokhan.ca Given that I was never paying for a business line and I was using my residential Internet service to host a web site, my upload rate was slow and up time was horrific. Until today, that was more then enough for me to host my site because I never really had much traffic, until recently.
If you've ever visited my site before, you've probably agonized over trying to load a single page. I apologize for taking so long to do this, but today I moved my site to a dedicated web host. Hopefully, you'll be able to count on better uptime for mokhan.ca.
It really was way over due... good bye my Mr. mO's home server, and thank you for your tireless service.
P.S. for anyone interested in hosting their dasBlog on GoDaddy, I found it super easy to set up so I would recommend it!
So at work last week, our leader asked us to come up with a set of goals, and incentives to meet those goals. Here is a list of goals that I came up with to help push our team to the next level. Hopefully this might help yours...
My first suggestion for a team goal, is to become more active readers. This may not mean directly reading a book a week, but could be something as simple as reading a blog entry focused on software development/management to elicit conversation and thinking. Then sharing that knowledge with one another.
My second suggestion for a team goal, is to become active presenters. I think challenging one another to spike a topic and share it with the rest of the group will not only broaden our exposure to what's out there, but will also make us better coaches. This does not have be focused simple on code, but could be on any topic that might help shape us to become better leaders in our industry.
My third suggestion for a team goal, is to sharpen our swords. (This is a concept I'm borrowing from JP on building a solid core) There are exercises known as Code Kata, that we can use to "practice" our craft of software development. If we give ourselves a weekly Kata assignment to complete and share our solutions with one another to see how each one of us solves the problem, this will help us to develop our skills as well to identify our own strengths and weaknesses.
My last suggestion is open ended. I would very much like to improve my focus, but I am just not sure how to go about doing that. Any suggestions would be greatly appreciated!
I was sent this link this morning that helps you to identify what side of the brain you use more.
It doesn't matter how long I stare at the image but I continue to see it going clockwise. I might have to try to take a look at this at different point throughout the day, to see if it changes. I'm not sure why, but I feel slightly in-adequate. For some reason I think i should be using more of the left side of my brain... oh well!
Why does this bug me?
One last post before I head to bed...
In less than a couple of weeks my friend and I will embark on a journey that will likely alter our careers, as it has for so many others. We will be taking part in the legendary... "Nothin' But .NET Bootcamp" presented by Jean-Paul Boodhoo. Now I just wanted to remind everyone that this is the "Help The Homeless" edition of the bootcamp, so if life has treated you well, why not donate to those who need a helping hand!
I will finally be able to fulfil my dream of graduating from the boot camp!
Before signing up I did a little homework on the course and found some blog entries by previous graduates and this is what they had to say:
Bil Simser:
Donald Belcham:
Steven Rockarts:
Kyle Baley:
JoeyDotNet
I've been thinking of a better way to fully absorb the week full of goodness. The common theme among most of the entries are that the week is intense and a flood of knowledge. So if I can find a way to record that flood so that I can play it back, that would be useful. But how... ?
It's been an exhausting day! I have a lot more respect for single parents out there...
Today my wife wife went in to get her wisdom teeth removed. This was no regular operation because of how long she waited before getting them removed. If the price tag has any reflection on the seriousness of the procedure, it came to a whopping $1700.00 plus medication. This was way overdue and I only regret not being able to get her in to get this procedure done earlier.
So off we went to take Allison to the doctor. The whole operation went much quicker then i thought and we were out the door in about 2 hours. When we got home, I followed the doctors instructions and loaded Allison up with pain killers and put her to bed. So that meant my daughter, Adia, was stuck with her dad , me, for the day. ("Yay" for me! "What's going on?" for her!)
For the last few weeks I have been poking fun at my wife Allison about what it is that she does during the day. I've been jokingly saying that she spends the day going for walks, drinking coffee with her family and watching the O.C. (It's all rainbows and skittles) Well... I found out today that it's really not like that at all. Chasing after Adia all day, finding a way to make it out the door to fire off faxes at Staples, and making sure that Allison gets her ice packs changed and pain killers when she's supposed to, has my head spinning. It's amazing how little I feel like I've accomplished today, but how exhausted I feel from it.
Needless to say, my poking fun at my wife about watching "The O.C" all day will stop. Being a caregiver requires a lot of detailed attention and can be quite exhausting. I'm feeling good about how the day went and is ending, and I'm looking forward to spending another full day with my daughter while my wife gets some well deserved rest. (Even if that means I won't be able to check out the Calgary Open Source Festival... *sigh*)
This post is a little over due, but it's been on my mind. I realize these days that I'm spending more time trying to think of good posts rather then just writing out posts. I'm not sure which style I favor. I find it actually helpful to flush out ideas from my head on a daily basis so that I can clear my mind and move on.
To the point... last weekend at the Edmonton Code Camp was awesome! I'm not sure how else to describe it... Up in Edmonton I got the sense that the members of the Edmonton .NET User Group truly understand the concept of "community". It truly felt like a "community." I met so many passionate software dev's that really cared about helping the community grow and get better. It seemed like everyone had the same goal and was working towards that.
I had the great privilege of meeting Mr. Justice Gray in person, who not only bought me lunch but introduced me to several of his peers. He gave me some very helpful advice to guide me in my career. The great knowledge learned from his shared experience is invaluable. Thank you for making me feel at home Mr. Justice!
Earlier in the week I had been spiking how to automate a click once deployment using NAnt and came across this post by Mr. Neil Bourgeois. Coincidentally Mr. Neil just so happened to be at the Edmonton Code Camp, and also gave a presentation. I was taken back by how kind and humble he acted. When I found out he was an ex-thought worker, I was immediately froze up in fear. Why? I don't know... He was just very genuinely caring and seemed to want to help further if he could. I surely hope that I can be as humble as he, when I'm that talented!
Mr. Anand, was very quiet much like myself. He seemed very thoughtful and it was interesting to see the relationship between him and Justice. They seem to genuinely care about each others as peers. I sure hope to get to know you better in the future good sir!
It was kind of cool when I bumped in to Steven Rockarts and he knew my name. Kind of weird, but I imagine he must feel the same way. It's great how you can get a feel for people by reading their writing, and blogging tends to make it much easier to connect with people.
I feel like I'm name dropping here a bit, so I will wrap this up. I really enjoyed my day at the Edmonton Code Camp, I found the presentations very informative and found the hallway chats even more amusing. It's great to see that a .NET community can come together the way the Edmug one has. Hopefully as a group we can start to shift the way that software is built here in Alberta.
"Gage Hunny, I Love you & Miss you" - anonymous
I read the above statement written on the bus this morning. It kind of stopped me... I immediately recognized the name "Gage" as the 17 year old who was pushed in front of a train and killed a few months back here in Calgary.
As I scanned, the other writing on the bus I realized that the bus was a journal for people who were in pain. There was a lot of emotional writing... whether in graffiti or just random thought scattered. I realized that sitting in the same seat before me was someone who were in different emotional states, that just wanted to be heard...
I realized I was very much like them, I too want to be heard.
Yesterday, as I stepped of the bus to walk home, it began to rain. Then followed hail... why does this happen as I'm walking home. Then as I was half way home, a van pulled over, and the driver rolled down the window. I looked over and recognized the person who had been sitting next to me on the bus. He asked me "Would you like a ride?".
I hopped in, the kind gentleman's name was Mr. Mohammad. Thank you Mr. Mohammad!
When I was 16, and in grade 12 I spent a lot of time sitting on a picnic bench at night staring at the sky thinking... One of the thoughts that came to me was the spotlight theory, and I'd like to share that with you...
In the darkness, when light shines it attracts bugs. When standing in the light, the moths and flies fly to you. Blinded by the light you can only see the bugs. When that light shatters, you're left alone in the darkness as the swarm of bugs move on to the next light.
During moments of your life you will feel as though you are under the spotlight of attention, don't allow yourself to be consumed by the light and the people that come to you at this time. Because many of them will ultimately leave you when your time in the limelight is up. Putting people who care about you most aside, before the light, to put people who will be temporarily in your life is not a good strategy. I have found that some of the people that come with the light, can leave a negative impact on your life. Be critical of those who come to you when things are good, but be thankful to those who come to you when times are tough.
Imagine...
Your parents sit you down to tell you that they have some shocking news to share with you. They slowly begin to tell you that you were adopted, and that your birthday is not your actual birthday. They tell you that they recently found out that you are actually born 5 years before your birthday and that you are actually 5 years older then you thought you were.
You are 5 years older then you think you are!
If you're not, then write down what's missing... then go get it, starting TODAY!
Don't wait until tomorrow, to start things that can be done today.
I just put my daughter to sleep, and then pulled up to the computer to start reading the first chapter of Roy Osherove's new book "The Art Of Unit Testing".
"The first few months of the project were great; things were looking up, and we had tests that proved that our code worked. As time went by, requirements changed, and we were forced to change our code to fit those new requirements. Whenever we changed the code, tests broke and we had to fix them - the code was still working, but the tests we wrote were so brittle that any little change in our code broke them, even though the code was working just fine. It became a daunting task to change our code in a class or a method for fear of changing all the unit tests involved with that unit being tested." Roy Osherove, The Art of Unit Testing
After reading this opening paragraph, I slumped in my chair and realized that I was guilty of this on our current project. I've written such brittle "unit tests" that I was afraid to make changes to the code base in fear of breaking the units tests and having to update the unit tests. I was on a bit of a high with the TDD kick but now I'm feeling a little low.
After reading the first free chapter from Mr. Roy Osherove's book I decided to check my inbox. Here's what I found:
Dear Mr. Mo
I would like to take this opportunity to thank you for being so helpful during our school year together. I have experienced new classmates and they are umm the only way to put it is not YOU. I don't know I guess I just learned better when you were around lol. You would always help me when I was in a pinch...
I guess I'm righting this cuz I'm kinda bored for one and my lab partner just dropped the course and I miss you MO, come back!!!
I'm re-energized, I feel great! It's amazing how kind words, at just the right time, can make a remarkable impact on someone's life. Although, the note was thanking me, I feel like the thankful one. Thank you so much Mr. Jae!
This reminded me of a great quote:
"With each great obstacle, comes an opportunity to improve our condition." - Booker T. Washington
Today I had an excellent conversation with someone whom I admire, and all I could think about was this poem...
Did you hear about the rose that grew
from a crack in the concrete?
Proving nature's law is wrong it
learned to walk without having feet.
Funny it seems, but by keeping it's dreams,
it learned to breathe fresh air.
Long live the rose that grew from concrete
when no one else ever cared.
- The Rose That Grew From Concrete, by Tupac Shakur
I thought this was pretty cute... as I was digging through some of my logs for my site I noticed I got a referral from Google.
The search term was "Public Class JollyJumper"
So I thought I might quickly define said class...
1 public class JollyJumper : IJollyJumper {
2 public void Jump( ) {
3 ++_happiness;
4 }
5
6 public override string ToString( ) {
7 return _happiness.ToString( );
8 }
9
10 private int _happiness;
11 }
If you don't know what a Jolly Jumper is hopefully the image helps...
Today's the big day! My wife and I are heading down to see Robin Sharma present live. Here are the details...
Registration: 8:30am
Seminar: 9:00am - 11:00am
Palomino Room
The Roundup Center
Calgary Exhibition and Stampede
We'll see you there!
Last night I finished listening to "The Monk Who Sold His Ferrari" audio book.
![]() | The Monk Who Sold His Ferrari: A Fable About Fulfilling Your Dreams & Reaching Your Destiny by Robin Sharma Read more about this title... |
This was the first audio book I had ever listened to but I enjoyed it. I liked it even more because of the fact that it was read by Robin Sharma himself. There's nothing better then hearing the words read by the author themselves, the way they had intended them to be read. I'm not much into fictional books, but this was a great story. A lot of the thoughts that were brought out by this book has helped me to focus on my life and different aspects of it that may not get as much attention.
If you get the opportunity, read this book!
So I'm sure some of you are a little sick of my Robin Sharma kick these days, so I will wrap this up with one last post on the subject, for now!
I just arrived back to the office after sitting in on Robin Sharma's presentation on... I'm not sure what the subject is. I guess it's on living a world class life! He's definitely an inspiring individual. He used the power of laughter and sadness to move you, at least me. If I've learned one thing today it's that I need to work on being a funnier person. He definitely seems to be getting the best out of life.
He talked about a lot of the lessons from his books "the greatness guide" and "the monk who sold his Ferrari". The ideas that he shares are very simple and really common sense, if you think about it. The difference is that very few of us, including me, actually take the time to think about it.
As he was speaking and sharing some very simple yet enlightening quotes from some of the worlds greatest, in my mind I kept saying, "that's so true isn't it".
A lot of the 500+ people who attended today will probably go out and attempt to apply some of these lessons to their own lives today, but how many will be consistent in their application of these simple techniques.
I think one of most resounding ideas that he shared was on consistency. To me absolute consistency, is perfection!
Think about it like this... If you're sad at the same level of sadness at all time, are you perfectly sad? If you're happy at the same level of happiness, are you perfectly happy?
Perfection is probably a silly goal to reach for. It's perceived to be unattainable but consistency seems like it's reachable. Think about becoming perfect by becoming more consistent.
A few things that I want to reconnect with...
One of my favorite questions from today was this:
"How do you find a mentor?"
Find someone who's living a life you would like to live. Connect with them, and find time to go for coffee. If you can't find this person, connect to people through books. I believe you can connect with that person(s), sometimes the search takes a little longer but eventually
"the teacher appears when the student is ready." - Robin Sharma
My daughter has taught me so many great things about how to grow this year.
Good Morning! Today I want you start thinking about how you can help your community. After reading JP's post yesterday about donating all proceeds to his upcoming Nothin' But .NET boot camp to homeless shelters in and around Calgary. I realized that it was time for me to start thinking about how I can contribute to my community.
So for starters I would like to help JP by spreading the word about his noble cause and I encourage you to do so as well.
"This email is not to solicit help looking for potential students, rather it is a request to see if any of you (or you yourself) would be willing to donate money towards the cause. My plan is to approach companies who may be interested in working on a pledge based system. For example, a company who is interested in supporting the effort might say I'll give you 10cents per dollar raised." - JP Boodhoo
If you can contribute, I encourage you to contact JP or check out his post for more details!
One of the main reasons I want to become a ThoughtWorker is to be able to work with a diverse range of people from all walks of life. Where there is no norm, only exceptional. I want to also be able to openly share my successes and failures with a team and not feel terribly good or bad about it. So as a team we fail, but also succeed, quickly.
In order to be successful, you must surround yourself with successful people. For me it's not only about becoming a world class developer, but also a world class father, a world class husband, and a world class person.
"When you were born, you cried while the world rejoiced. Live your life so that when you die, you rejoice while the world cries." - Robin Sharma
I've thrived on trying to be the type of person who breaks stereotypes. Although, I found that when I was younger I was molded in to the type of person that people expected me to be. Not the person I wanted to be. This was totally disadvantageous and did no good for myself or others like me. I was fitting the mold that others had shaped for me.
I soon found that I enjoyed defeating peoples expectations of me. When I felt that subtle feeling that my instructor didn't think I would last or that I fit in, I had to prove that not only could I last, but that I could do it better.
Here's another reason why I want to become a ThoughtWorker:
"I like to think of myself as without a prejudicial bone in my body, but when I do I remember this story. I was visiting a branch of a large multinational in South Carolina. A black man, somewhat shabbily dressed, slouched into the meeting room. My mind immediately classified him as a cleaner. Within a few seconds he introduced himself as the Vice President of technology. Although nobody knew of my pre-conscious blunder, I've often pondered since why I made it. Was it his way of walking - more of a slouch than a confident stride? Was it because I was aware of being in the South? I can't escape a sure feeling that wouldn't have made this classification if he was white. Now I could excuse myself by saying that this occurred ten years ago, but frankly I have little confidence that I wouldn't repeat this error today." - Martin Fowler, Chief Scientist ThoughtWorks
I really encourage you to read the rest of this post at Mr. Martin Fowler's bliki.
I think it takes a lot of confidence to admit to failure or lapses in judgement, but by doing so you allow yourself to learn from it. I've done a lot of silly things in my life, in fact writing this blog is probably one of them. But it's who I was, it's who I am and it's helping to shape who I become.
So today we decided to switch things up a bit at work... we spent hours drafting up the plan. Take a look below!
![]()
Good Morning! Well I'm feeling a little sluggish this morning. It's always tough going straight to sleep on school nights. You just feel a little cheated when you get home, because I want to squeeze a little bit of time out of the evening for myself. Not to mention my brain was just buzzing in bed, and it took a little longer to wind down then usual.
In the last couple of days I have been reading through Jeremy Miller's articles on how to build your own CAB. It's definitely worth a read, I've learned a lot so far.
On Sunday, I just about wrapped up an assignment for class. It's focus is on ADO.NET and data access... I'm hoping I'll be able to publish my work after the due date but in the mean time here's a sample...
To select data I build a SelectQueryBuilder object that can be used like this...
public IEnumerable<IDropDownListItem> GetAllVendorNames( )
{
SelectQueryBuilder builder = new SelectQueryBuilder( Tables.Vendors.TableName );
builder.AddColumn( Tables.Vendors.VendorID );
builder.AddColumn( Tables.Vendors.Name );
return CreateItemsFrom( _gateway.GetTableFrom( builder ) );
}
To update a row in the database you would use my home brewed UpdateQueryBuilder.
public void UpdateInvoice( UpdateInvoiceDto dto )
{
UpdateQueryBuilder builder = new UpdateQueryBuilder( Tables.Invoices.InvoiceID, dto.InvoiceId );
builder.Add( Tables.Invoices.CreditTotal, dto.CreditTotal );
builder.Add( Tables.Invoices.DueDate, dto.DueDate );
builder.Add( Tables.Invoices.InvoiceDate, dto.InvoiceDate );
builder.Add( Tables.Invoices.InvoiceNumber, dto.InvoiceNumber );
builder.Add( Tables.Invoices.InvoiceTotal, dto.InvoiceTotal );
builder.Add( Tables.Invoices.PaymentDate, dto.PaymentDate );
builder.Add( Tables.Invoices.PaymentTotal, dto.PaymentTotal );
builder.Add( Tables.Invoices.TermsID, dto.TermsId );
_gateway.UpdateRowUsing( builder );
}
One of the coolest things I Found in ADO.NET 2.0 was DbProviderFactories. There's so much good stuff that was introduced in 2.0 that I know I wasn't taking advantage of.
If you were wondering why I haven't returned your phones calls lately, or why I haven't been posting as often, or wondering what the heck I've been doing.
I have 2 answers for you!
![]()
![]()
What's on your night stand?
Last week was yet another busy week for mista mO! I wont bore you with the details, but needless to say.. I have enjoyed the long weekend.
Last Wednesday I went and checked out Richard Campbell's presentation on SQL Querying Tips & Tricks at the Calgary .NET user group. Mr. Campbell is the man! He's the co-host of .NET rocks with Carl Franklin and the host of Runas Radio with Gregg Hughes.
The presentation was awesome, not only is Mr. Campbell funny, but he's a great presenter. He knows how to keep his audience involved, and the stories are great! SQL is definitely not one of my strongest points, so some of the discussion was slightly over my head, but overall I'm glad I attended!
One of the coolest things that happened that night was I got to speak to Mr. Jean-Paul Boodhoo, the man, the myth, the legend! It was really cool, he actually remembered my name, and asked me how I was doing with "The Introduction to the Theory of Computation." He handed me his card, which read:
Jean-Paul S. Boodhoo Software Artist
And a "Software Artist" he truly is... watching him write code on the fly, and react to questions whether on DNRTV or at live presentations is awesome. Very little is scripted which makes his presentations more believable. At least to me... he's not only telling you that you can actually apply these concepts in real business applications, but he shows you just how!
I must admit, that his passion for development, teaching, and hard work is definitely contagious. I'm sure my co-workers are sick of me talking about JP, but he's definitely one of the hardest working, and friendliest people in software development!
Thanks JP!
(I can only imagine what Justice Gray would say, if he read this post!)
Yup... So what does your office look like?