I want to give a big thanks to everyone who made CodeStock a success this year, attendees, presenters and especially the organizers.
As promised, here are the slides from my talk on Principles of Application Architecture. If you have any questions, comments or feedback (slow down...got it), please feel free to leave a comment here, or on twitter.
Constructive criticism is always appreciated.ArchitecturePrinciples_Codestock.pdf (546.5KB)
Staying up to speed can be hard, especially if you have kids or other heavy demands on your time and attention. To make up for that I like to listen to audio books / podcasts when my hands are busy but my mind isn't.
Here are a few podcasts to get you started:
If you prefer something a little longer I highly suggest heading over to audible.com and creating an account. Audio books are especially useful if you do a lot of driving, and my children have listened to a LOT of business books as we traveled cross country to and from Grandma's house. I'm not sure how much good it's done them, but worst case scenario it helped them to go to sleep and stop annoying each other.
Another favorite technique of mine is to replace TV viewing with something a little more substantial. I used to (and sometimes still do) watch Netflix as I drifted off to sleep, or on the rare occasions when I mustered up the gumption to hop on the elliptical trainer. Instead of something mindless, try a conference video or a Ted talk for a change of pace.
Finally, you should always have at least one book with you. At some point each month I find myself stuck waiting for someone or something with nothing else to do. Books fill that time nicely.
However you do it, try and find a little bit of time to learn and grow every day. Five minutes here and there add up a lot faster than you think!
Note to self: Feelings matter.
It's not necessary that you think their feelings are rational. It is necessary that you find out why they feel the way they do (let the other person use their words and just listen), and then address the feelings.
Acknowledge that the feelings are real, and that the person has the right to feel the way they do, and then ask the person what precisely would make them feel better. You might not be able to solve the problem exactly the way they would prefer, but you can at least move towards an amicable solution.
Now, I just have to remember this when it counts.
There comes a time in most middle aged men's lives where they look at their boss and think to themselves "I can do better than that." Well, if you're as full of yourself as I am you've had that thought since you were about ten.
I took a management role a little over a year ago, and while I like to think that I am better than most of the managers I've had over the years, it's honestly often a really close race. I have a technical background and try and stay up to speed on what has changed in the last year and a half. So I've got that going for me at least.
My challenges tend not to be managing down, although let me state for the case that I do have challenges there. My challenges tend to be managing sideways, and writing without running out of commas. How do you manage your peers as a manager? And a bit higher on the difficulty scale, how do you manage your non-technical peers? More...
I often come across interesting links and send them around to my co-workers. I realized I should put them up here as well, that way I might be able to find them again:
Also, a big thanks to the spammer that reminded me that I have a blog. :-)
Now that 2011 is over I guess now is as good a time as any to look back and see what the heck happened. Frankly, it's all a blur for me. I suppose had I made updating this blog a priority I might have an easier time remembering.
I do recall getting to play around with MongoDB and RoR writing the beginnings of a DropBox clone. That was fun.
I dipped my toe into the ASP.NET MVC waters a bit. I'm impressed, and intend all my future web development on the MS stack to use MVC. With the exception of not having an ORM I like, MS has done an excellent job. I love the Razor view engine. It's probably time for me to just go ahead and chew through Entity Framework again and see if MS has finally made it palatable.
I bought a Mac Book, and I must say that the hardware is excellent and it runs Windows 7 flawlessly. I'm still not a fan of the Mac OS. but I've been living with it while teaching myself iPhone development.
I read some great books! Neil Stephenson's "ReamDe", James Gleick's "The Information" and the Steve Jobs biography are the three that stick out in my head, but I do remember "Ready Player One" and "Fuzzy Nation" as also being quite excellent.
Finally, for the end of the year I switched jobs. As of Jan 3 I will be working for Cellular Sales here in Knoxville. Which means I get to once again learn a whole lot of stuff in a little bit of time, which I love. Hopefully I'll get a bit more time to blog about things, but I'm not holding myself to it as a resolution.
I finally got off my duff and presented to the local .NET user's group tonight. I think it went well, but my timing was a little fast.
In case you missed something, here are the slides: http://steverb.com/file.axd?file=2010%2f7%2fOAUTH.pdf and if you have any questions, feel free to shoot me an email
The other day I had the chance to peruse the work of another developer, a Microsoft MVP. The code was less than impressive. To be frank, it stunk, but it stunk in a strange way. It had a weird combination of advanced technique and rank naiveté. There was separation of concerns, but it was much more convoluted than it needed to be. The work that the code performed was relatively trivial, but it was hidden behind a bag of patterns and the structure of the classes made finding the code that did the real work an exercise in spelunking.
I mentioned it to a friend of mine, and he shared his story about a hiring interview with an MVP carrying job candidate. The story was eerily similar. The candidate was well versed with the latest and greatest development methodologies, but seemed to lack a grasp of writing a simple “fizz-buzz”. To make matters worse, part-way through the interview the candidate starting listing their “requirements”, which conferences they’d be attending, which technologies they would use, etc.
I was flabbergasted. Granted, my friend was glad the candidate was so forthcoming with his lack of professionalism. It helped make his decision not to hire the guy much easier. After I thought about it a little bit more, I realized that the fault wasn’t totally with the MVPs in question. All of us share a little of the blame.
We’ve been working on implementing some sort of enterprise wide single sign-on (SSO) at work. As part of that we really needed some way to authenticate with web services without depending on Windows or Basic Authentication, which is a phenomenal pain in the butt.
OAuth is “An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications.” In other words, you can authenticate with it from lots of different places. More...