Showing posts with label work. Show all posts
Showing posts with label work. Show all posts
Last Day
Jason, my colleague, told me encouragingly this morning: "Last day, eh?". I told him: "I've had a 'last day' here before...".
I guess I feel I will be stranded here again.
I guess I feel I will be stranded here again.
Counting chickens
I should have learned by now... the trip isn't over until the plane has taken off.
I will be staying one more week in lovely Bavaria. Thankfully, Carolyn is still heading home tomorrow.
We saw daylight today! It was so wonderful. We got to work a half-day (only 6 hours!), so we managed to have time to walk around Hallbergmoos. They have a street here called Bürgermeister-Funk Straße. Isn't that awesome?
Tomorrow I'll be taking Carolyn to the airport for her morning flight, and then heading into Munich city for some sight-seeing. Not sure what I'm going to see yet... I will probably just walk around, trying to enjoy my day of freedom (from work, not my wife).
I'm supposed to be flying home on Friday. We'll see.
I will be staying one more week in lovely Bavaria. Thankfully, Carolyn is still heading home tomorrow.
We saw daylight today! It was so wonderful. We got to work a half-day (only 6 hours!), so we managed to have time to walk around Hallbergmoos. They have a street here called Bürgermeister-Funk Straße. Isn't that awesome?
Tomorrow I'll be taking Carolyn to the airport for her morning flight, and then heading into Munich city for some sight-seeing. Not sure what I'm going to see yet... I will probably just walk around, trying to enjoy my day of freedom (from work, not my wife).
I'm supposed to be flying home on Friday. We'll see.
Grüße aus München
So I'm in Munich right now (in the bathroom so I don't wake Carolyn). When I started this week I did not expect to end it on the other side of the ocean, but I suppose that's life.
Carolyn and I were notified at work around 3 or 4pm on Wednesday that we needed to catch a flight to Munich... at 8pm... that evening. I wasn't 100% sure that my passport was valid, so I rushed home right away. Passport was valid, so I began the packing process, but it's been some years since my work travel days, so we didn't hit the road until nearly 6pm. Thankfully the task to get to the airport was left to our new VP of Engineering, with the CEO as first mate.
Through some kind of magic (I couldn't say which - my eyes were tightly closed) we made it to Pearson in less than an hour, with plenty of time to grab Tim Horton's for dinner. We also learned that pregnancy has it's perks for travel, as we were allowed to pre-board and settle in nicely, before all the plebes.
I won't go into details about the trip, suffice it to say that the doctor drilling a hole into my thumbnail this evening to relieve some pressure after slamming it in a car door this morning just might be the highlight of the trip.
To the office tomorrow, hopefully with positive results.
Carolyn and I were notified at work around 3 or 4pm on Wednesday that we needed to catch a flight to Munich... at 8pm... that evening. I wasn't 100% sure that my passport was valid, so I rushed home right away. Passport was valid, so I began the packing process, but it's been some years since my work travel days, so we didn't hit the road until nearly 6pm. Thankfully the task to get to the airport was left to our new VP of Engineering, with the CEO as first mate.
Through some kind of magic (I couldn't say which - my eyes were tightly closed) we made it to Pearson in less than an hour, with plenty of time to grab Tim Horton's for dinner. We also learned that pregnancy has it's perks for travel, as we were allowed to pre-board and settle in nicely, before all the plebes.
I won't go into details about the trip, suffice it to say that the doctor drilling a hole into my thumbnail this evening to relieve some pressure after slamming it in a car door this morning just might be the highlight of the trip.
To the office tomorrow, hopefully with positive results.
New Blog
I have a new blog. I won't be abandoning tales of interest - not that it's bustling with activity - but I'll be writing all my work/tech related stuff on my other blog. If you're interested in that sort of thing, please go to:
http://perpetualdevelopment.wordpress.com/
And if you're not interested... well, you're welcome!
http://perpetualdevelopment.wordpress.com/
And if you're not interested... well, you're welcome!
The Book of Revelation
Before you read any further be warned that I'm raising a Level 1 Geek Warning: if you are not in the software development industry, you'd probably enjoy your time better here.
Today, unlike most days recently, was a wonderful day at work. I actually didn't want to leave. I'm considering going to work early tomorrow. What happened? Well, let's go back in time a few months...
I think it all started with Ryan. Now, every day starts with Ryan talking. Usually before I get a chance to sit down and read my e-mail he's already bombarding me with questions about some obscure problem (perhaps only obscure because I'm only half-listening at this point). But those days he started talking about books - or more specifically, the interesting things he was learning about from those books - and I started to pay attention. He told me about this crazy mystical practice called 'test-driven development', where not only do the developers test all their code, but they write the tests before they write any code!?!?! I don't think I actually laughed at him, but I let him know that it all sounded well and good as an academic exercise, but it couldn't really be done in practice by sane individuals.
And so we moved on. Ryan kept reading and kept telling me to read these books, and I kept deflecting and diverting. Then something happened, and I'm not quite sure what it was (hey, I never claimed to be a good storyteller!) but I finally relented to the pressure. The book was 'The Pragmatic Programmer' by Andy Hunt and Dave Thomas (not of Wendy's fame). I don't want to say that this book changed my life, because I hate it when people say things like that. So, I'll just say that this book had a profound impact on how I view myself as a professional software developer. That sounds a lot less sappy.
This isn't a technical book. It's a book about good practices and good attitudes. It's about taking pride in one's career. The book is littered with tips, but here are the first five (which I also have posted on my office door) that I feel are applicable to anyone in any profession:
In a sense, this book revealed a whole new world to me. I had been blind as to how software development could be done. I didn't realize how much more I could be (and arguably should be) doing. And thus I started to read.
I have since read (and recommend)
The book I am currently reading is 'The Art of Unit Testing'. I'm not terribly fond of the format of this book (a lot of repetition), but it's a good beginner reference. I knew before reading this of the importance of formal unit testing (even though I had done little of it myself), but it has enlightened me to some techniques, common problems, and frameworks that could save a lot of time and effort in generating new tests.
So that brings me to today. I had been working on a connectivity bug over the last couple of days and during my analysis had uncovered a few 'loose ends' in the connectivity framework that Ryan and I had developed. Empowered by the 'fix broken windows' philosophy we decided to fix the root of the problems as opposed to patching the symptoms. The root of the problem was unfortunately embedded in the original design, but as Martin Fowler says: refactoring means never having to say you're sorry.
It was this morning that we first embarked on our first voyage of pair-programming test-driven-development. We had done plenty of pair-programming before (very successfully I might add), but never true test-driven-development (TDD). We knew that one of the main classes in our framework had too much varied responsibility, and we wanted to break that up. Instead of liberally ripping apart the code we wrote test cases to help guide how we wanted to refactor. Instead of building from the inside out (i.e. implementation->API), we were building from the outside in (usage->implementation).
This shift in thinking was phenomenal. Traditionally in developing something, I would figure out generally what a component needs to do, and then figure out the best way for it to do that (i.e. figure out the best implementation). The API would then be driven by the implementation. In the act of generating the test cases however, we were thinking about what we wanted to be able to do with the class, which in turn defined how we wanted to use the class. Thus, we first defined the API, and the implementation flowed naturally from there.
Now, perhaps this is how everyone else has been developing software and I've just been in the dark. But I've been around long enough to know that this isn't necessarily common practice, even if it is common sense to define the API and interactions first. The great thing about doing TDD is that it creates a smart and usable design, and you get a mechanism to automatically verify the functionality of your component. Two birds, one stone.
If you haven't tried or heard of TDD, don't laugh and discount it like I did; I encourage you to research it to see if it's right for you. And, as Ryan has already mentioned to most of our colleagues, if you value your career as a software developer, you owe it to yourself to read 'The Pragmatic Programmer'. Let me know if you want to borrow it.
Today, unlike most days recently, was a wonderful day at work. I actually didn't want to leave. I'm considering going to work early tomorrow. What happened? Well, let's go back in time a few months...
I think it all started with Ryan. Now, every day starts with Ryan talking. Usually before I get a chance to sit down and read my e-mail he's already bombarding me with questions about some obscure problem (perhaps only obscure because I'm only half-listening at this point). But those days he started talking about books - or more specifically, the interesting things he was learning about from those books - and I started to pay attention. He told me about this crazy mystical practice called 'test-driven development', where not only do the developers test all their code, but they write the tests before they write any code!?!?! I don't think I actually laughed at him, but I let him know that it all sounded well and good as an academic exercise, but it couldn't really be done in practice by sane individuals.
And so we moved on. Ryan kept reading and kept telling me to read these books, and I kept deflecting and diverting. Then something happened, and I'm not quite sure what it was (hey, I never claimed to be a good storyteller!) but I finally relented to the pressure. The book was 'The Pragmatic Programmer' by Andy Hunt and Dave Thomas (not of Wendy's fame). I don't want to say that this book changed my life, because I hate it when people say things like that. So, I'll just say that this book had a profound impact on how I view myself as a professional software developer. That sounds a lot less sappy.This isn't a technical book. It's a book about good practices and good attitudes. It's about taking pride in one's career. The book is littered with tips, but here are the first five (which I also have posted on my office door) that I feel are applicable to anyone in any profession:
Care About Your Craft
Why spend your life developing software unless you care about doing it well?
Provide Options, Don’t Make Lame Excuses
Instead of excuses, provide options. Don’t say it can’t be done; explain what can be done.
Be a Catalyst for Change
You can’t force change on people. Instead, show them how the future might be and help them participate in creating it.
Make Quality a Requirements Issue
Involve your users in determining the project’s real quality requirements.
Critically Analyze What You Read and Hear
Don’t be swayed by vendors, media hype, or dogma. Analyze information in terms of you and your project.
In a sense, this book revealed a whole new world to me. I had been blind as to how software development could be done. I didn't realize how much more I could be (and arguably should be) doing. And thus I started to read.
I have since read (and recommend)
- Implementing Lean Software Development: From Concept to Cash
- Practices of an Agile Developer
- Refactoring: Improving the Design of Existing Code (minus the large reference section)
The book I am currently reading is 'The Art of Unit Testing'. I'm not terribly fond of the format of this book (a lot of repetition), but it's a good beginner reference. I knew before reading this of the importance of formal unit testing (even though I had done little of it myself), but it has enlightened me to some techniques, common problems, and frameworks that could save a lot of time and effort in generating new tests.
So that brings me to today. I had been working on a connectivity bug over the last couple of days and during my analysis had uncovered a few 'loose ends' in the connectivity framework that Ryan and I had developed. Empowered by the 'fix broken windows' philosophy we decided to fix the root of the problems as opposed to patching the symptoms. The root of the problem was unfortunately embedded in the original design, but as Martin Fowler says: refactoring means never having to say you're sorry.
It was this morning that we first embarked on our first voyage of pair-programming test-driven-development. We had done plenty of pair-programming before (very successfully I might add), but never true test-driven-development (TDD). We knew that one of the main classes in our framework had too much varied responsibility, and we wanted to break that up. Instead of liberally ripping apart the code we wrote test cases to help guide how we wanted to refactor. Instead of building from the inside out (i.e. implementation->API), we were building from the outside in (usage->implementation).
This shift in thinking was phenomenal. Traditionally in developing something, I would figure out generally what a component needs to do, and then figure out the best way for it to do that (i.e. figure out the best implementation). The API would then be driven by the implementation. In the act of generating the test cases however, we were thinking about what we wanted to be able to do with the class, which in turn defined how we wanted to use the class. Thus, we first defined the API, and the implementation flowed naturally from there.
Now, perhaps this is how everyone else has been developing software and I've just been in the dark. But I've been around long enough to know that this isn't necessarily common practice, even if it is common sense to define the API and interactions first. The great thing about doing TDD is that it creates a smart and usable design, and you get a mechanism to automatically verify the functionality of your component. Two birds, one stone.
If you haven't tried or heard of TDD, don't laugh and discount it like I did; I encourage you to research it to see if it's right for you. And, as Ryan has already mentioned to most of our colleagues, if you value your career as a software developer, you owe it to yourself to read 'The Pragmatic Programmer'. Let me know if you want to borrow it.
A week in the village of Saint Joseph
In case you didn't know it, I'm not at home (but Carolyn is, so don't steal my stuff!). I'm in the land of freedom and firearms for two weeks (although I'm hoping it'll just be one). Specifically, I'm in a place they call San Jose. I can't say I've seen much of it, but it looks like most other American cities I've visited. I am enjoying the warmish weather though (about 15-20 degrees centigrade - yay metric system!); I'm wearing a jacket, but I could take it off, if I wanted to.
I won't bore you with all the details.
But I will bore you with some.
I flew out on Sunday at 10am to Vancouver. The Rocky Mountains are awesome. Beautiful. I saw them only from the airport, but they are truly awe-inspiring. My layover was less than two hours, of which an hour was spent sitting in US Customs awaiting my fate. While my experience wasn't nearly as bad as it's been in the past, but every time I talk to a US Customs official I ask myself why did I agree to go on a business trip to the US.
"What is the purpose of your trip?"
"I'm doing software integration. I'll be installing our software and testing it to make sure it works".
"So... you'll be... testing this... software?"
"Uhm, yeah"
"Oh"
He obviously didn't get straight-A's at jack-ass boot camp, but I'll give him a B for effort. The woman who escorted me to the "nervous room" was, dare I say, almost amicable. The third guy let me through after "checking something out" in the back room (i.e. pee break) and giving me the ol' "you're lucky we let you through this time" spiel. Anyway, I didn't cry, so I think it went well.
The flights were both uneventful. I was bothered that they didn't serve food on the flight to Vancouver. That's five hours! Those jerks. When I fly to Germany it's only slightly longer and I get free wine!
My car, alas, is no Musty, but it did come with GPS which I've mentioned before is a gift and a curse. I've only had to loop around a couple of times.
So here I am in San Jose. I haven't taken a single photo yet. Maybe tomorrow. Maybe not. Really, it doesn't matter because I forgot to pack my card reader. Although that does give me an excuse to go to Fry's...
I won't bore you with all the details.
But I will bore you with some.
I flew out on Sunday at 10am to Vancouver. The Rocky Mountains are awesome. Beautiful. I saw them only from the airport, but they are truly awe-inspiring. My layover was less than two hours, of which an hour was spent sitting in US Customs awaiting my fate. While my experience wasn't nearly as bad as it's been in the past, but every time I talk to a US Customs official I ask myself why did I agree to go on a business trip to the US.
"What is the purpose of your trip?"
"I'm doing software integration. I'll be installing our software and testing it to make sure it works".
"So... you'll be... testing this... software?"
"Uhm, yeah"
"Oh"
He obviously didn't get straight-A's at jack-ass boot camp, but I'll give him a B for effort. The woman who escorted me to the "nervous room" was, dare I say, almost amicable. The third guy let me through after "checking something out" in the back room (i.e. pee break) and giving me the ol' "you're lucky we let you through this time" spiel. Anyway, I didn't cry, so I think it went well.
The flights were both uneventful. I was bothered that they didn't serve food on the flight to Vancouver. That's five hours! Those jerks. When I fly to Germany it's only slightly longer and I get free wine!
My car, alas, is no Musty, but it did come with GPS which I've mentioned before is a gift and a curse. I've only had to loop around a couple of times.
So here I am in San Jose. I haven't taken a single photo yet. Maybe tomorrow. Maybe not. Really, it doesn't matter because I forgot to pack my card reader. Although that does give me an excuse to go to Fry's...
Playing catch-up
Well, it's been ages since my last update, so here's a hodge-podge - a smorgasboard, if you will - of visual and textual descriptions depicting my life over the last few weeks.

Ok, this is an oldie, but a goodie. I joined a new team at work a few months ago, which afforded me the opportunity to choose a new work area (read "cube"). Somehow I had some level of seniority, so I got to pick fourth. This is the view I have every day :)

We have asparagus! Right in our back yard! This is from our first cutting in mid-May. We found out that aparagus grows very quickly, and until yesterday we had about 10 asparagus trees.

After moving into our new house, we wanted to treat Jack to a new bed (one that he could fit into). When we got home, we just threw it on the couch haphazardly, but as you can see, Jack found it and made himself at home.
.jpg)
While he was on a business trip, Carolyn's dad graciously lent us his barbeque. That whet our appetite for burnt offerings, and soon we found ourselves the proud owners of a Broilmate barbeque (made in Waterloo!). It's a great barbeque and we use it at least a few times a week. Thanks to Ryan for taking this sharp photo.
.jpg)
One of the joys of home-ownership is having gardens with loads of different flora (and unfortunately, pesky fauna too). We have a group of poppies that have bloomed; here are two that haven't yet. If they weren't plants, I'd say these were having an intimate moment.
.jpg)
Another flower. Does anyone know what kind it is? I'm horrible with horticulture, but I am slowly improving.
.jpg)
Another poppy close-up. I love my macro lens! It's actually not as sharp as I'd like; or rather, I don't have as much in focus as I'd like. But I still think it's amazing to look at the water droplets suspended between the hairs.
.jpg)
This is Jack, jealous of my ability to get outside. Actually, he is quite able to get outside; thanks to my dad, he can open the screen door by himself. He hasn't quite learned how to close it yet. He seems to be in his element when he is outside though; in the past two days, Jack has caught a chipmunk and a mouse. He doesn't quite know what to do when he catches something, so he typically just sits on it. We know something's up when we hear muffled squeaking noises. If only he could learn to catch rabbits.
So why have I been too busy to post? It seems I have to mow the lawn every day... but seriously, we have been slowly chipping away at our renovations. Two weekends ago, we installed three new ceiling fixtures in the three bedrooms (with Ryan's help for the first one... thanks Ryan!). No pictures yet, so I guess you'll just have to come visit. And last weekend I added a new wall-switch and connected it to a receptacle in the living room. And I'm not dead yet! Carolyn, meanwhile, has been busily scraping away the wallpaper, and has finished the second of the three bedrooms. So after one month, we've done a fair bit, but we still have a ways to go.

Ok, this is an oldie, but a goodie. I joined a new team at work a few months ago, which afforded me the opportunity to choose a new work area (read "cube"). Somehow I had some level of seniority, so I got to pick fourth. This is the view I have every day :)

We have asparagus! Right in our back yard! This is from our first cutting in mid-May. We found out that aparagus grows very quickly, and until yesterday we had about 10 asparagus trees.

After moving into our new house, we wanted to treat Jack to a new bed (one that he could fit into). When we got home, we just threw it on the couch haphazardly, but as you can see, Jack found it and made himself at home.
.jpg)
While he was on a business trip, Carolyn's dad graciously lent us his barbeque. That whet our appetite for burnt offerings, and soon we found ourselves the proud owners of a Broilmate barbeque (made in Waterloo!). It's a great barbeque and we use it at least a few times a week. Thanks to Ryan for taking this sharp photo.
.jpg)
One of the joys of home-ownership is having gardens with loads of different flora (and unfortunately, pesky fauna too). We have a group of poppies that have bloomed; here are two that haven't yet. If they weren't plants, I'd say these were having an intimate moment.
.jpg)
Another flower. Does anyone know what kind it is? I'm horrible with horticulture, but I am slowly improving.
.jpg)
Another poppy close-up. I love my macro lens! It's actually not as sharp as I'd like; or rather, I don't have as much in focus as I'd like. But I still think it's amazing to look at the water droplets suspended between the hairs.
.jpg)
This is Jack, jealous of my ability to get outside. Actually, he is quite able to get outside; thanks to my dad, he can open the screen door by himself. He hasn't quite learned how to close it yet. He seems to be in his element when he is outside though; in the past two days, Jack has caught a chipmunk and a mouse. He doesn't quite know what to do when he catches something, so he typically just sits on it. We know something's up when we hear muffled squeaking noises. If only he could learn to catch rabbits.
So why have I been too busy to post? It seems I have to mow the lawn every day... but seriously, we have been slowly chipping away at our renovations. Two weekends ago, we installed three new ceiling fixtures in the three bedrooms (with Ryan's help for the first one... thanks Ryan!). No pictures yet, so I guess you'll just have to come visit. And last weekend I added a new wall-switch and connected it to a receptacle in the living room. And I'm not dead yet! Carolyn, meanwhile, has been busily scraping away the wallpaper, and has finished the second of the three bedrooms. So after one month, we've done a fair bit, but we still have a ways to go.


