So, I'm on GoogleAppEngine now.
written on: Sunday December 14 2008 at 10:59 PM there are currently 0 comments
That was easy. Ok, so I’m not going to shut this site down anytime soon and I’m working on porting the data from this mysql store to the Google DB so this will stay up as long as the content is here and not there. But I do want to give the app engine/Django version of the site a chance, so I recommend you update your links to below as I won’t add 301 redirects until I can port the data or at such a time I give up on porting the data. :)
New RSS Feed Url
http://fallenrogue.appspot.com/
Thanks for joining me here, hopefully you’ll weather the bumps and join me there as well.
New RSS Feed Url
http://fallenrogue.appspot.com/
Thanks for joining me here, hopefully you’ll weather the bumps and join me there as well.
Google App Engine Part 1.
written on: Sunday December 14 2008 at 12:50 AM there are currently 0 comments
So far, haven’t done much other than read. First, you only can deploy a max of 10 apps to the GAE and you can’t delete them… so make it count!
Step 1: This blog gets your environment set for Django development
Step 2: Read up on the google DB.
Step 3: (Current) Create a model and redo this template over in my Django site.
Now, I’m not entirely sure how to port my data from this mysql db to Google’s crazy app engine… but I’ll leave that for another time. Right now, I may simply load the articles into Google and save the rest for me. The plan right now is to ONLY store article data in Google App Engine, have a few static “contact me” pages (maybe) and serve comments via the comment service disqus which will give me all the functionality I currently have. I know, crazy right?! Anyway, so far so good, I’ll continue tomorrow and with any luck, I’ll be in the cloud soon!
PS- for those keeping score, I’m also learning Python doing this as well. I was always familiar with the syntax and some of the idioms of the language but now I’m learning all about Python libraries, how it interprets code, etc. So far, I’m really an early fan. More on that soon, of course!
Step 1: This blog gets your environment set for Django development
Step 2: Read up on the google DB.
Step 3: (Current) Create a model and redo this template over in my Django site.
Now, I’m not entirely sure how to port my data from this mysql db to Google’s crazy app engine… but I’ll leave that for another time. Right now, I may simply load the articles into Google and save the rest for me. The plan right now is to ONLY store article data in Google App Engine, have a few static “contact me” pages (maybe) and serve comments via the comment service disqus which will give me all the functionality I currently have. I know, crazy right?! Anyway, so far so good, I’ll continue tomorrow and with any luck, I’ll be in the cloud soon!
PS- for those keeping score, I’m also learning Python doing this as well. I was always familiar with the syntax and some of the idioms of the language but now I’m learning all about Python libraries, how it interprets code, etc. So far, I’m really an early fan. More on that soon, of course!
Going to the cloud!
written on: Saturday December 13 2008 at 02:27 PM there are currently 0 comments
Ok, with Microsoft’s introduction into Cloud computing (Azure) I’ve decided that we’ve got 3 viable cloud options for the small site I run here. I see about 10,000 page hits monthly and around 3,000 unique users according to my stat tracking program. I store about 500 MB of data and my bandwidth is around 2 GB a month. I’ve never been “dugg” or anything like that and I doubt my content is revolutionary enough to expect that it will happen anytime soon.
Azure is closed right now and though I may get an account to play with for work, I don’t see myself using it for personal stuff right off the bat. I’d like to let the platform mature a little more before playing with it.
Amazon’s EC2 is an amazing platform that I’ve actually been able to bring my rails applications to under test with no real problems but the issue for me is cost. For my tiny website it’s an average of 70 dollars a month. I don’t need it for the scaling (unless I get crazy popular… I mean, people love a fat, beaded man in a hat.)
I just want a simple story around hosting. I don’t like running and maintaining my own hardware and renting it is not much better. So, I’m going to try the cloud and the cheapest that I have seen so far, with everything that meets my small needs is the Google App Engine.
The Google App Engine is a small cloud from Google that is narrow in scope, not aimed at large apps (yet) and offers a free way to get into the cloud if you’re willing to a: not be large and b: run on python.
Well, since this is a Ruby app that means that I’m going to be learning Python and porting my Rails app to Django. Mainly cause Django runs in Google App engine.
So, what does this have to do with you? Well, that’s simple. I’m going to document the process as best I can to hopefully start getting some shared knowledge around the pros/cons of cloud computing and given that I expect to be playing with Azure soon I’ll document that too. Just so the Amazon folks don’t feel left out, I’ll continue to use S3 for some of my storage story and share that as well. Let’s learn about the silver lining together. More to come…
Azure is closed right now and though I may get an account to play with for work, I don’t see myself using it for personal stuff right off the bat. I’d like to let the platform mature a little more before playing with it.
Amazon’s EC2 is an amazing platform that I’ve actually been able to bring my rails applications to under test with no real problems but the issue for me is cost. For my tiny website it’s an average of 70 dollars a month. I don’t need it for the scaling (unless I get crazy popular… I mean, people love a fat, beaded man in a hat.)
I just want a simple story around hosting. I don’t like running and maintaining my own hardware and renting it is not much better. So, I’m going to try the cloud and the cheapest that I have seen so far, with everything that meets my small needs is the Google App Engine.
The Google App Engine is a small cloud from Google that is narrow in scope, not aimed at large apps (yet) and offers a free way to get into the cloud if you’re willing to a: not be large and b: run on python.
Well, since this is a Ruby app that means that I’m going to be learning Python and porting my Rails app to Django. Mainly cause Django runs in Google App engine.
So, what does this have to do with you? Well, that’s simple. I’m going to document the process as best I can to hopefully start getting some shared knowledge around the pros/cons of cloud computing and given that I expect to be playing with Azure soon I’ll document that too. Just so the Amazon folks don’t feel left out, I’ll continue to use S3 for some of my storage story and share that as well. Let’s learn about the silver lining together. More to come…
switch/case and if/else are code smells.
written on: Tuesday December 09 2008 at 01:56 AM there are currently 1 comment
(Note: pastie CSS is mess up, I know. Sorry about that. I'll try and fix it soon.)
Please let's not argue semantics here. For a moment, understand what I’m saying when I say switch/case and if/else are smells. A code smell by wikipedia’s definition, and I think it’s a good one is: code smell is any symptom in the source code of a program that possibly indicates a deeper problem.
So, now that we’ve taken care of the semantics I want to share a recent C# issue I had. The issue, in C# mind you, was that there was a certain number of expected execution paths that may have occurred for one particular method. By the time I looked at it, the cyclomatic complexity had increased in a way that I, honestly, had no clue what the method even did anymore. Was it bad code? No. Because it did/does what it is designed to do. The problem is that without a test to cover the public method, there’s no way for me to really know what it’s doing and if I need to alter it, extend, troubleshoot it, I’m kinda screwed. So, let’s do this in C#. This is a shitty code sample but I’m looking to talk about the smell of s/c and not my crappy example. :)
It’s just a switch/case based on data that comes in. Now, the language supports switch/case and if/else so is it wrong to do this? no, it’s not wrong to do this. right now, it works, does what we expect and it’s pretty easy to read. But it’s still a smell. It’s a smell for a few reasons:
We’ve got conditional logic baked right into our method and now this class is responsible for this logic. The caller is well aware of the operation that they want to perform, they are sending it into the method.
Another is execution is top down, inflexible. I’m not going to go so far as to solve that problem tonight, but you’ll get my point in a moment.
Extending this method in C# is damn near impossible. We’re totally recompiling this and adding new logic anytime we need to. This last one, is the reason I key into this particular smell as of late. Technical debt has become a focus for me (just ask Jim) and when I see anything that can become a smell I like to point it out. Now, when I was a consultant, it was quite common to do the fastest thing possible to get out and onto the next gig but building APIs is different…. but not that different. Not different enough to embrace flexible, OO design when appropriate. Let’s refactor our method to take advantage of polymorphism. Here’s the code, then we’ll chat.
Now, before you freak out, are we done refactoring here? hell to the no! We can go further to inject a new class into “MyClass” that implements the strategies that you’ll depend on to execute. So, let’s just save that for part 2 in this series (which I assume will be a giant flame war….)
So, what did we do? Well, we simply moved all the procedural logic into a hash of keys and delegates. That’s it. Now, we someone needs some action to take place we verify that the key exists (we could have simply thrown an exception but I’m feeling nice today) and if it does, we complete the action. The class no longer cares about the behavior nor the process of procedurally looking for the right methods to call. Also, now you can add new strategies anytime you want without subclassing and altering the base class! It’s a simple change, it’s an easy change and it can save you a mountain of time in the future.
So, when do you do this? Well, you certainly don’t do it for every if/else or switch/case in your code. Not yet at least! Just use your best judgement and know that when your nesting, your complexity and such gets too long, too unwieldily, remember your old friend polymorphism and try a different approach. Remember, it’s a smell, an indication of something odd. It’s not wrong, it’s just an injection point for some critical thought. I gotta go to bed, now. leave your comments, good/bad or otherwise below. And if anyone wants to finish the refactoring, please feel free, otherwise, I’ll update it again soon. :) g’night all!
Please let's not argue semantics here. For a moment, understand what I’m saying when I say switch/case and if/else are smells. A code smell by wikipedia’s definition, and I think it’s a good one is: code smell is any symptom in the source code of a program that possibly indicates a deeper problem.
So, now that we’ve taken care of the semantics I want to share a recent C# issue I had. The issue, in C# mind you, was that there was a certain number of expected execution paths that may have occurred for one particular method. By the time I looked at it, the cyclomatic complexity had increased in a way that I, honestly, had no clue what the method even did anymore. Was it bad code? No. Because it did/does what it is designed to do. The problem is that without a test to cover the public method, there’s no way for me to really know what it’s doing and if I need to alter it, extend, troubleshoot it, I’m kinda screwed. So, let’s do this in C#. This is a shitty code sample but I’m looking to talk about the smell of s/c and not my crappy example. :)
It’s just a switch/case based on data that comes in. Now, the language supports switch/case and if/else so is it wrong to do this? no, it’s not wrong to do this. right now, it works, does what we expect and it’s pretty easy to read. But it’s still a smell. It’s a smell for a few reasons:
We’ve got conditional logic baked right into our method and now this class is responsible for this logic. The caller is well aware of the operation that they want to perform, they are sending it into the method.
Another is execution is top down, inflexible. I’m not going to go so far as to solve that problem tonight, but you’ll get my point in a moment.
Extending this method in C# is damn near impossible. We’re totally recompiling this and adding new logic anytime we need to. This last one, is the reason I key into this particular smell as of late. Technical debt has become a focus for me (just ask Jim) and when I see anything that can become a smell I like to point it out. Now, when I was a consultant, it was quite common to do the fastest thing possible to get out and onto the next gig but building APIs is different…. but not that different. Not different enough to embrace flexible, OO design when appropriate. Let’s refactor our method to take advantage of polymorphism. Here’s the code, then we’ll chat.
Now, before you freak out, are we done refactoring here? hell to the no! We can go further to inject a new class into “MyClass” that implements the strategies that you’ll depend on to execute. So, let’s just save that for part 2 in this series (which I assume will be a giant flame war….)
So, what did we do? Well, we simply moved all the procedural logic into a hash of keys and delegates. That’s it. Now, we someone needs some action to take place we verify that the key exists (we could have simply thrown an exception but I’m feeling nice today) and if it does, we complete the action. The class no longer cares about the behavior nor the process of procedurally looking for the right methods to call. Also, now you can add new strategies anytime you want without subclassing and altering the base class! It’s a simple change, it’s an easy change and it can save you a mountain of time in the future.
So, when do you do this? Well, you certainly don’t do it for every if/else or switch/case in your code. Not yet at least! Just use your best judgement and know that when your nesting, your complexity and such gets too long, too unwieldily, remember your old friend polymorphism and try a different approach. Remember, it’s a smell, an indication of something odd. It’s not wrong, it’s just an injection point for some critical thought. I gotta go to bed, now. leave your comments, good/bad or otherwise below. And if anyone wants to finish the refactoring, please feel free, otherwise, I’ll update it again soon. :) g’night all!
Upgrading to Python 3000 on Mac OS X.5
written on: Thursday December 04 2008 at 09:42 AM there are currently 0 comments
you want to add the framework and universal sdk build options when configuring.
Download the tarball, unpack it and get in there with Terminal. Once there run the following commands:
./configure—enable-framework—enable-universalsdk
make
sudo make install
This will add everything you need. Now, if you’re daring, and I’m not, you can change the last command to sudo make fullinstall which will blow away the existing python and make it 3.0 but since that’s what ships with the Mac, I left it there and have both installed. Maybe someone out there can let me know if it’s totally cool to blow away the old version completely. Until then, a little extra python never hurt anyone!
Enjoy Py3k!
Download the tarball, unpack it and get in there with Terminal. Once there run the following commands:
./configure—enable-framework—enable-universalsdk
make
sudo make install
This will add everything you need. Now, if you’re daring, and I’m not, you can change the last command to sudo make fullinstall which will blow away the existing python and make it 3.0 but since that’s what ships with the Mac, I left it there and have both installed. Maybe someone out there can let me know if it’s totally cool to blow away the old version completely. Until then, a little extra python never hurt anyone!
Enjoy Py3k!
IronRuby Alpha 2 has been released into the wild...
written on: Thursday November 27 2008 at 11:53 PM there are currently 0 comments
Um, I completely missed this one, so I’ll cut and paste the message from the mailing list:
so, like it says get it here http://rubyforge.org/frs/?group_id=4359
Announcing the release of IronRuby 1.0 Alpha 2. You can download it on
RubyForge (http://rubyforge.org/frs/?group_id=4359), I will have a tag in
SVN soon. Notable features: the inclusion of iirb.bat, igem.bat, irails.bat,
irake.bat! This is our first standalone release. Two caveats: If you want
caller to work correctly, use -X:Interpret. If you want Rubygems to work,
ensure that all of your sources end with a /. You can check in ~/.gemrc.
so, like it says get it here http://rubyforge.org/frs/?group_id=4359
Fundamentals of OOP
written on: Wednesday November 12 2008 at 03:11 AM there are currently 2 comments
Hey there! For all of you who attended the .NET University last weekend, I’m happy to provide you with the slides from my talk on the Fundamentals of Object Oriented Programming as well as a zip file with some Visual Studio projects that have some code that we may or may have not gone through during the talk. You can find the PDF of the slides and the zip files below. Let me know if you have any questions or prefer to see the materials in an alternative format. Thanks!
The talk
The Code
Please note, you may want to right click and save the PDF to your computer if you intend on saving it. ;)
The talk
The Code
Please note, you may want to right click and save the PDF to your computer if you intend on saving it. ;)
Homophobia is the new socially acceptable racism.
written on: Tuesday November 11 2008 at 09:54 AM there are currently 32 comments
Yes, California, you as a state have disappointed me. Your choice to vote proposition 8 into law this past week is something that has deeply saddened and disappointed me. Sure, there are other states out there, including the one that I live in, that have passed similar amendments to their state constitution but California, oh California, I thought better of you. You’re supposed to be the free wheeling, better than everyone else state. You’re supposed to be hip and “get it” long before the rest of us in the “fly-over” zone. You’re supposed to be ahead of the curve and yet here we are.
I’m disturbed every time I play on-line games at just how abused the word faggot is. To me, I shutter at its mention in the same way that I always have for the “n-word” we no longer mention about black people. It’s a horrible thing to imply that one person’s sexual orientation is a bad thing and that just by being associated with it they are to be mocked and ridiculed. Who raped you when you were a child to make you think that was ok? Why are you filled with such hate, contempt and melancholy? It’s pathetic.
I want to talk specifically about my own experience here. I want to talk about the one thing that is often brought into the limelight by well meaning but fundamentally wrong people who believe that homosexuality is a choice alone that can be willed away. I want to talk about the children.
In 1990 the US census estimated that somewhere between 6 and 14 million children had one or more gay parents. This is a significant number of children in a small period of time. Back in 1990, as today, I am one of them. It was a difficult discovery in my house hold one that led to a lot of hurt, resentful feeling from my father and a lot of hurt self destructive feelings in my lesbian mother. Back then, there was no Will and Grace on TV and our only view of gay people or families were the ones that we knew and met personally. The notion of “out” was certainly not popular and it was most definitely not something to share publicly. My mom was not out for a very long time, which meant, that in essence, neither was I. Because at that time, she was not the only one who was gay, in a sense, the entire family was and is gay. I still consider myself a full and strong member of the LGBT community. That’s my family, that’s who I grew up with, that’s who I defended and that’s who I defend now.
But not everyone is as pig-headed and vocal as I am. I certainly did not start out that way. I remember being in a history class in 10th or 11th grade and my close friends who were in the class with me, knew my story and knew my family. I’d come out to them. I remember this day as if it were yesterday. My teacher had decided that he wanted to mention how much he hated the faggots. You see there was a new law on the books that finally made it legal in Florida to not be denied adoption rights in the case that you were an out homosexual. My teacher was very upset. Talking loudly that it was impossible to raise a child in that house and have them not come out “all faggy”. He said “gays ruin families. They have no idea how to raise a child”. At which point, everyone in the room was uncomfortably turning and looking at me. It was clear that everyone except my teacher was now aware that this man, this person of authority was condemning me and my family. He was saying that my family was illegitimate. He was saying that we’re not a real family and that there was no possible way that my mother could love and raise me, that my mother was incapable of knowing the difference between right and wrong. My girlfriend at the time, Heather, was sitting right in front of me and bless her heart, she noticed that I was visibly upset by this. She stopped listening to our teacher, whom she had a great deal of respect for, and turned and grabbed my hand. She was the first to speak up.
“Gays and Lesbians make great parents.” she said.
“You don’t know what you’re talking about. Believe me, I know more about the world than any of you.” My teacher replied.
“Not this time, Mr X[name withheld]. This time you’re wrong and you should stop talking.” she said, now more afraid of the coming explosion from the powder keg that is her boyfriend.
“Please, Heather – ” he started. I interrupted him.
“what about me?”
“What about you, Gersing?”
“I do my homework, never been suspended [at that time, that was still true], never in trouble, get pretty good grade, get great grades in this class, do my homework.” I finally say.
“you point?”
“His mother’s a lez.” another person in the room said giggling.
It got weird. I excused myself. He gave me and Heather a pass and we went into the hall to calm down.
I share this story for one reason. You people keep talking about the children when you defend your choice to condemn and deny those who you don’t understand. I’m telling you that those relationships and families exist no matter what you do or say. They are not going away. It is your insistence on telling them that they don’t matter, that they are less than real families that is truly damning to them. It’s not gay and lesbian and bisexual and transgendered parents who love their kids and are doing they best job possible to make it work. It’s your hate and fear that damn us. It’s your insistence of making fun of us, of marginalizing us to a stereotypical epitaph that can be pushed aside so that you can sleep at night under your solemn blanket of ignorance. It is you whom I’m disappointed in. Just like my teacher, you’re afraid and I get that. You don’t understand gay people and you don’t understand gay families and you never understood me. That’s fine. I’m not asking for that. I’m asking that you consider what it really has to do with you. Because it has nothing to do with you. You only have to accept that which already exists. It means you have to accept that the world is round, because it is virtually the same truth. That truth is that these people and these families, my family already exists. You failure to accept it, does not and cannot change that.
I leave you with Keith Olbermann. He says it better than I can.
I’m disturbed every time I play on-line games at just how abused the word faggot is. To me, I shutter at its mention in the same way that I always have for the “n-word” we no longer mention about black people. It’s a horrible thing to imply that one person’s sexual orientation is a bad thing and that just by being associated with it they are to be mocked and ridiculed. Who raped you when you were a child to make you think that was ok? Why are you filled with such hate, contempt and melancholy? It’s pathetic.
I want to talk specifically about my own experience here. I want to talk about the one thing that is often brought into the limelight by well meaning but fundamentally wrong people who believe that homosexuality is a choice alone that can be willed away. I want to talk about the children.
In 1990 the US census estimated that somewhere between 6 and 14 million children had one or more gay parents. This is a significant number of children in a small period of time. Back in 1990, as today, I am one of them. It was a difficult discovery in my house hold one that led to a lot of hurt, resentful feeling from my father and a lot of hurt self destructive feelings in my lesbian mother. Back then, there was no Will and Grace on TV and our only view of gay people or families were the ones that we knew and met personally. The notion of “out” was certainly not popular and it was most definitely not something to share publicly. My mom was not out for a very long time, which meant, that in essence, neither was I. Because at that time, she was not the only one who was gay, in a sense, the entire family was and is gay. I still consider myself a full and strong member of the LGBT community. That’s my family, that’s who I grew up with, that’s who I defended and that’s who I defend now.
But not everyone is as pig-headed and vocal as I am. I certainly did not start out that way. I remember being in a history class in 10th or 11th grade and my close friends who were in the class with me, knew my story and knew my family. I’d come out to them. I remember this day as if it were yesterday. My teacher had decided that he wanted to mention how much he hated the faggots. You see there was a new law on the books that finally made it legal in Florida to not be denied adoption rights in the case that you were an out homosexual. My teacher was very upset. Talking loudly that it was impossible to raise a child in that house and have them not come out “all faggy”. He said “gays ruin families. They have no idea how to raise a child”. At which point, everyone in the room was uncomfortably turning and looking at me. It was clear that everyone except my teacher was now aware that this man, this person of authority was condemning me and my family. He was saying that my family was illegitimate. He was saying that we’re not a real family and that there was no possible way that my mother could love and raise me, that my mother was incapable of knowing the difference between right and wrong. My girlfriend at the time, Heather, was sitting right in front of me and bless her heart, she noticed that I was visibly upset by this. She stopped listening to our teacher, whom she had a great deal of respect for, and turned and grabbed my hand. She was the first to speak up.
“Gays and Lesbians make great parents.” she said.
“You don’t know what you’re talking about. Believe me, I know more about the world than any of you.” My teacher replied.
“Not this time, Mr X[name withheld]. This time you’re wrong and you should stop talking.” she said, now more afraid of the coming explosion from the powder keg that is her boyfriend.
“Please, Heather – ” he started. I interrupted him.
“what about me?”
“What about you, Gersing?”
“I do my homework, never been suspended [at that time, that was still true], never in trouble, get pretty good grade, get great grades in this class, do my homework.” I finally say.
“you point?”
“His mother’s a lez.” another person in the room said giggling.
It got weird. I excused myself. He gave me and Heather a pass and we went into the hall to calm down.
I share this story for one reason. You people keep talking about the children when you defend your choice to condemn and deny those who you don’t understand. I’m telling you that those relationships and families exist no matter what you do or say. They are not going away. It is your insistence on telling them that they don’t matter, that they are less than real families that is truly damning to them. It’s not gay and lesbian and bisexual and transgendered parents who love their kids and are doing they best job possible to make it work. It’s your hate and fear that damn us. It’s your insistence of making fun of us, of marginalizing us to a stereotypical epitaph that can be pushed aside so that you can sleep at night under your solemn blanket of ignorance. It is you whom I’m disappointed in. Just like my teacher, you’re afraid and I get that. You don’t understand gay people and you don’t understand gay families and you never understood me. That’s fine. I’m not asking for that. I’m asking that you consider what it really has to do with you. Because it has nothing to do with you. You only have to accept that which already exists. It means you have to accept that the world is round, because it is virtually the same truth. That truth is that these people and these families, my family already exists. You failure to accept it, does not and cannot change that.
I leave you with Keith Olbermann. He says it better than I can.
You are not a plumber.
written on: Tuesday November 11 2008 at 09:20 AM there are currently 6 comments
No, this isn’t a political post about Joe the plumber or something resembling it. This is an opinion piece where I set out to re-define how you define yourself as a software developer.
First of all, whenever I talk to developers at speaking events or conferences I hear the same things. “What should I learn to look better to companies?” or “What tech is popular right now?!” given these are Microsoft specific developers, given my current network, my answer is always the same and it’s almost always met with the same degree of disappointment:
“What are you interested in?” I know, I know. When we look at it from the outside, then it’s easy to poke fun at folks that ask this questions but it bares introspection. The question is really asking the all important: “What can I do to make people like me?!” Which is the ultimate act in futility. Instead of trying to pad your resume with the all important list of crap that will make you popular, I would recommend 2 things: Experience and Interest.
First, get experience on the platform you’re interested in. If you’re into Enterprise grade systems look for a big company you can start at or start consulting, they’re sure to get you in the door. Then once you’re there, be indispensable. Research questions proposed by thought leaders and have opinions. If you don’t have an opinion about what is being talked about and you think you should, then start talking to those around you to get more information and formulate one. Burn some calories and soon enough you’ll have the experience to form your own opinions. Soon after that, the experience will provide a learning path. How do you get in the door? Easy. Yes, I said easy. Be Passionate and humble. Take less money to do the job and once you’ve proved your value, then ask for money. Skills don’t equal extra money… work does.
The other key factor is interest. Are you interested in Rails? Do rails. Are you interested in Microsoft? Do .net! Are you interested in money? Be an entrepreneur or business person. The important thing is that you do what you’re passionate about because you have a short time on the planet and you’d damn well better spend it doing something you’re interested in! The other thing that’s important is that interest is a process of continual improvement. Meaning, I know a crap ton about .NET but that doesn’t mean that I don’t learn something everyday about the platform and C# my language in it. I’m interested in it and therefore I find it awesome to sit with folks and talk about it. I get something out of the conversations I have around the topic no matter what the level.
Which brings me to my point you are not a plumber. You cannot simply be certified in programming and buy a computer and get some software development tools and call yourself a developer. It doesn’t work that way. Sure, it works that way in some parts of the world who will sit in a hole for 12 hours a day and get paid accordingly. These people are not developers. In fact the terms developer, programmer and engineer do not adequately describe what I believe that we are. It doesn’t begin to tell our story in the way that it should.
We are artists. Let me be clear. This is not a joke on my part to draw a romantic parallel to a creative field. This is how I see my profession. It is Art. There are tools and there is a canvas but when it comes to putting the two together it takes critical thought and creativity. It takes and artist’s touch to craft something beautiful. So, for those who ask me what they should learn, or who they should know or some other such trivial nonsense I often reply: “What do you want to paint today?”.
First of all, whenever I talk to developers at speaking events or conferences I hear the same things. “What should I learn to look better to companies?” or “What tech is popular right now?!” given these are Microsoft specific developers, given my current network, my answer is always the same and it’s almost always met with the same degree of disappointment:
“What are you interested in?” I know, I know. When we look at it from the outside, then it’s easy to poke fun at folks that ask this questions but it bares introspection. The question is really asking the all important: “What can I do to make people like me?!” Which is the ultimate act in futility. Instead of trying to pad your resume with the all important list of crap that will make you popular, I would recommend 2 things: Experience and Interest.
First, get experience on the platform you’re interested in. If you’re into Enterprise grade systems look for a big company you can start at or start consulting, they’re sure to get you in the door. Then once you’re there, be indispensable. Research questions proposed by thought leaders and have opinions. If you don’t have an opinion about what is being talked about and you think you should, then start talking to those around you to get more information and formulate one. Burn some calories and soon enough you’ll have the experience to form your own opinions. Soon after that, the experience will provide a learning path. How do you get in the door? Easy. Yes, I said easy. Be Passionate and humble. Take less money to do the job and once you’ve proved your value, then ask for money. Skills don’t equal extra money… work does.
The other key factor is interest. Are you interested in Rails? Do rails. Are you interested in Microsoft? Do .net! Are you interested in money? Be an entrepreneur or business person. The important thing is that you do what you’re passionate about because you have a short time on the planet and you’d damn well better spend it doing something you’re interested in! The other thing that’s important is that interest is a process of continual improvement. Meaning, I know a crap ton about .NET but that doesn’t mean that I don’t learn something everyday about the platform and C# my language in it. I’m interested in it and therefore I find it awesome to sit with folks and talk about it. I get something out of the conversations I have around the topic no matter what the level.
Which brings me to my point you are not a plumber. You cannot simply be certified in programming and buy a computer and get some software development tools and call yourself a developer. It doesn’t work that way. Sure, it works that way in some parts of the world who will sit in a hole for 12 hours a day and get paid accordingly. These people are not developers. In fact the terms developer, programmer and engineer do not adequately describe what I believe that we are. It doesn’t begin to tell our story in the way that it should.
We are artists. Let me be clear. This is not a joke on my part to draw a romantic parallel to a creative field. This is how I see my profession. It is Art. There are tools and there is a canvas but when it comes to putting the two together it takes critical thought and creativity. It takes and artist’s touch to craft something beautiful. So, for those who ask me what they should learn, or who they should know or some other such trivial nonsense I often reply: “What do you want to paint today?”.
Join us for the Dog Food Developer Conference!
written on: Monday October 20 2008 at 03:24 PM there are currently 1 comment
Hey all, here’s a little something that I’m doing on the 20th of Nov. Would love to see some of you face to face so please attend while there is room!
Please join Microsoft Gold Partners, MVPs and MS Evangelists for the first Dog Food Developer’s Conference. There will be 10 sessions covering many areas of application development, enterprise content management, image capture and integration.
Date: November 20, 2008
Location:
· Floor 4: Suite 400
· Floor 5: Classroom 501 and 502
8800 Lyra Dr
Columbus, OH 43240
Dogfood Developer’s Conference: A commonly used word by developers and MS employees:
Click to Register
Or call 877.673.8368 with event code 1032390559.
We will present Sessions on: .NET Road Maps, MOSS: Enterprise Content Management , KnowledgeLake: Document Imaging and Capture with MOSS , MOSS Development , Internet Explorer 8 , SilverLight, Windows Presentation Foundation , Service Oriented Architecture, BizTalk Server , Mainframe Modernization , Writing Secure Code , Virtual Earth
Please join Microsoft Gold Partners, MVPs and MS Evangelists for the first Dog Food Developer’s Conference. There will be 10 sessions covering many areas of application development, enterprise content management, image capture and integration.
Date: November 20, 2008
Location:
· Floor 4: Suite 400
· Floor 5: Classroom 501 and 502
8800 Lyra Dr
Columbus, OH 43240
Dogfood Developer’s Conference: A commonly used word by developers and MS employees:
Click to Register
Or call 877.673.8368 with event code 1032390559.
We will present Sessions on: .NET Road Maps, MOSS: Enterprise Content Management , KnowledgeLake: Document Imaging and Capture with MOSS , MOSS Development , Internet Explorer 8 , SilverLight, Windows Presentation Foundation , Service Oriented Architecture, BizTalk Server , Mainframe Modernization , Writing Secure Code , Virtual Earth
The lighter side...
Twitter Updates
The conversations...
In switch/case and if/else are code smells.
Leon:
Wow, no one wants to dispute this? Awesome for ...
In Fundamentals of OOP
Leon:
that's a 10-4 my friend!
Rich: "It's over." Nice :) I can only hope that you s...
Rich: "It's over." Nice :) I can only hope that you s...
In Homophobia is the new socially acceptable racism.
Amy J:
@Jerry Carter - It doesn't make any sense. You...
Leon: @Jerry "I disapprove of what you say, but I wil...
Jerry Carter: @ Spock - perhaps. @Leon, Adam, Kate. You guy...
Kate: @Jerry Carter - I'd like to second what Leon an...
Leon Gersing: @Jerry Carter thank you for attending my tech t...
Spock: @Jerry Carter: Fascinating. A totally paroch...
Adam: I think it's important to recognize that the go...
Jerry Carter: hm. I've got friends who are gay and respect th...
Kate: For @nick and others who may wonder what the di...
Maggie: Leon, You are my hero. Your post made me cry ...
Carol: Leon: After so many years of spotty communicat...
Kate: @nick - I want to thank you for your opinion as...
Jim Holmes: Another well-written, evocative post, my friend...
Leon: @nick: I see you point, I simply disagree. Perh...
nick: Frankly I don't care about gay marriage. If I l...
Randy: @Nick: As a libertarian, I'd actually love to ...
James Thigpen: I've written about 10 responses to this only to...
Adam: As someone who has seen this issue from both si...
Leon: thanks everyone for your thoughts and stories. ...
Amy J: Yeah Nick, obviously people DO care or there wo...
Kate: @nick - So if someone is in the minority they d...
Amy J: It just doesn't make any sense. Hopefully we c...
Kate: I'm sending this to everyone I know. I love yo...
nick: Sigh.... No one cares about gay people getting...
Ken Robertson: Well said. Last week, I was proud to be an Ame...
Kluv: Well said, my friend. Well said.
Patrick Mason: Love the post. My parents divorced when I was ...
Randy: Thanks for writing this, Leon. I didn't get th...
Jim Gross: Oh, and here's another one that I think applies...
Jim Gross: Great read, Leon. Olbermann says it best when a...
Nate Kohari: You said it better than I could have ever. The ...
Mark: Very well said, Leon.
Leon: @Jerry "I disapprove of what you say, but I wil...
Jerry Carter: @ Spock - perhaps. @Leon, Adam, Kate. You guy...
Kate: @Jerry Carter - I'd like to second what Leon an...
Leon Gersing: @Jerry Carter thank you for attending my tech t...
Spock: @Jerry Carter: Fascinating. A totally paroch...
Adam: I think it's important to recognize that the go...
Jerry Carter: hm. I've got friends who are gay and respect th...
Kate: For @nick and others who may wonder what the di...
Maggie: Leon, You are my hero. Your post made me cry ...
Carol: Leon: After so many years of spotty communicat...
Kate: @nick - I want to thank you for your opinion as...
Jim Holmes: Another well-written, evocative post, my friend...
Leon: @nick: I see you point, I simply disagree. Perh...
nick: Frankly I don't care about gay marriage. If I l...
Randy: @Nick: As a libertarian, I'd actually love to ...
James Thigpen: I've written about 10 responses to this only to...
Adam: As someone who has seen this issue from both si...
Leon: thanks everyone for your thoughts and stories. ...
Amy J: Yeah Nick, obviously people DO care or there wo...
Kate: @nick - So if someone is in the minority they d...
Amy J: It just doesn't make any sense. Hopefully we c...
Kate: I'm sending this to everyone I know. I love yo...
nick: Sigh.... No one cares about gay people getting...
Ken Robertson: Well said. Last week, I was proud to be an Ame...
Kluv: Well said, my friend. Well said.
Patrick Mason: Love the post. My parents divorced when I was ...
Randy: Thanks for writing this, Leon. I didn't get th...
Jim Gross: Oh, and here's another one that I think applies...
Jim Gross: Great read, Leon. Olbermann says it best when a...
Nate Kohari: You said it better than I could have ever. The ...
Mark: Very well said, Leon.
In You are not a plumber.
Leon:
Thanks all,
@Jason that's the #1 reason I lov...
Ken Robertson: Amen! Two great posts in one day? :) I've fel...
Karthik Hariharan: Couldn't agree more. I've had similar experien...
Laura McCullough: That was really inspirational on a day where I ...
Jason Alexander: Spot on, my man. I'll hire 100 people that LOVE...
Maggie Longshore: Great post Leon! Agree on all counts which is w...
Ken Robertson: Amen! Two great posts in one day? :) I've fel...
Karthik Hariharan: Couldn't agree more. I've had similar experien...
Laura McCullough: That was really inspirational on a day where I ...
Jason Alexander: Spot on, my man. I'll hire 100 people that LOVE...
Maggie Longshore: Great post Leon! Agree on all counts which is w...
In Join us for the Dog Food Developer Conference!
chris:
registered.
The most recent comments...
Patrick Berkeley:
Thanks for this write up. It really helped me out. You mention there are faster ways of doing the...
Leon:
Wow, no one wants to dispute this? Awesome for me!
Anon:
But I *hate* brussels sprouts...
Amy J:
@Jerry Carter - It doesn't make any sense. You are saying that Marriage is for Christians, so ba...
Leon:
@Jerry "I disapprove of what you say, but I will defend to the death your right to say it."
I'v...
Jerry Carter:
@ Spock - perhaps.
@Leon, Adam, Kate. You guys are great, and I mean that - honestly. This is ...
Kate:
@Jerry Carter - I'd like to second what Leon and Adam have said before me and I'd like to add a f...
Leon Gersing:
@Jerry Carter thank you for attending my tech talk and thank you for your well articulated though...
Spock:
@Jerry Carter:
Fascinating. A totally parochial attitude.
Adam:
I think it's important to recognize that the government sponsorship of religious ideas is, in my ...