Awesome Language, Now What?

Let me tell you about my friend Bob. Bob is from the future.

Bob came here from about 300 hundred years from now where time machines are sold at Walmart… which apparently owns everything.

I met Bob just randomly at a plunger convention (Apparently plungers are all the rage in his time but hard to find.) and we struck up a conversation… mainly about plungers. Anyhow, when he finally revealed he was from the future (The trippy multicolor shirt kind of gave it away honestly since by my calculations it will take at least 250 years for pleather to come back in style. Give or take 50 years.) and the first thing he said after revealing this was, “No its not a f—ing utopia so don’t ask.” Oddly enough I was going to ask if Gilligan’s Island was still on repeats in his time, but I just humored him. Long story longer, by the end of the night he was my bffff (Best friend forever from the future) and he decided to give me this awesome device thing from the future and said he’d be back in a week to get it back.

Apparently it was something he bought from Walmart but was going to return before the week long return policy was up. However, he thought I might have fun with it and then just did this sort of wavy, melty, star treky thing and was gone. Odd note: No one watching seemed to be phased by this. Cause you know, that’s something you see everyday.

Anyways, I took said device and set out into the world, determined to enrich my life with the blinking-light-a-tron. Problem was, I had no f—ing clue what it did. So I did what any person would do when faced with a blinking-light-a-tron from the future, I put it through various scientific tests.

After my barrage of highly scientific investigations, I could see that it was applicable to most useful situations. Sounds good right? Except it took me a ton of time to figure out how to use it while doing things I already knew how to do.

Now I have to admit the time difference was a knowledge issue as there wasn’t much documentation and it wasn’t intuitive in use compared to what I was used to. However, it wasn’t until I found out that it can not only make a sandwich but it can make it into a smoothy too that I realized it had some powerful features. It wasn’t long before I started to realize how much it had to offer.

After the E like excitement, there was inevitable crash: When the f–k will I ever really want a turkey sandwich smoothy? I know the thing has something bigger to offer. Something just mind blowing, like somehow being able to combine sharks with an FBI agent to form some kind of super crime fighting force, but hell if I can figure out how.

It was at that point Bob just appeared, punched me, grabbed the blinking-light-a-tron and did his futuristic wavy, melty, star treky thing. I never did find out what that was all about, but I just surmised it was some kind of futuristic way of saying goodbye for good. Or it could be that I used it to find naked pictures of his wife and posted them on the internets. (Apparently there was an app for that)

Either way, the blinking-light-a-tron was gone for good, and I’m not sure if I was better off with knowing it or not. Sure it showed me what was possible but I came back to the same conclusion: When the f–k will I ever really want a turkey sandwich smoothy?

In a weird way, I’ve come to this conclusion with something like Python. I have no doubt it has crazy capabilities to be used, but put in the hands of simpleton it’s a point of confusion. I want so badly to unlock its potential, but the best I can do is make a turkey sandwich smoothy, because I lack the overall grasp of the language and have no idea how to get it through application.

And here’s the thing, it’s not a matter of being too comfortable with C#

Ok, so maybe there is some comfort but honestly it really isn’t that. It really just comes down a frustration of finding something to showcase Python’s abilities. It just plain difficult to come up with some grand plan when I don’t even have a clue what sort of plan I need.

It’s one thing to find a language that is just a horizontal move or even a step back. Then it’s easy to say, “Screw it” and stay with what you know. In the case of Python, I really want to be convinced to move to it. Nothing against C#, I still find it to be a good language, I just have a feeling. Problem is I have no way to back the feeling up.

In order to understand something, you need a reason for it. This is the hill we all must climb at some point and it’s a big hill.

CruiseControl.Net and CVS: Multiple Modules

Something I ran into is trying to check multiple modules for changes since the project I am trying to “modernize” is spread across what cvs calls modules. Really all they are is projects separated in the same trunk, but whatever. The point is I didn’t want to have to check the root directory where all projects are housed in order to see if just 5 have changed. Turns out it’s pretty easy. Just a disclaimer though: I’m still learning Cruise Control from scratch which means there might be a better way. This one however is simple and works… just like me. Well at least he simple part.

  <sourcecontrol type="multi">
    <sourceControls>
      <cvs>
        <executable>C:\Program Files (x86)\cvsnt\cvs.exe</executable>
        <cvsroot>yourCvsRoot>
        <module>location/of/theModule</module>
      </cvs>

      <cvs>
        <executable>C:\Program Files (x86)\cvsnt\cvs.exe</executable>
        <cvsroot>yourCvsRoot</cvsroot>
        <module>location/of/theSecondModule</module>
      </cvs>

      <cvs>
        <executable>C:\Program Files (x86)\cvsnt\cvs.exe</executable>
        <cvsroot>yourCvsRoot</cvsroot>
        <module>location/of/theThirdModule</module>
      </cvs>

      <cvs>
        <executable>C:\Program Files (x86)\cvsnt\cvs.exe</executable>
        <cvsroot>yourCvsRoot</cvsroot>
        <module>location/of/theFourthModule</module>
      </cvs>
    </sourceControls>
  </sourcecontrol>

The secret is the “multi” key word in the sourcecontrol tag and then adding the many cvs tags with the correct values.

Embrace the Unknown

As programmers its no secret that we like comfort. Well at least most of us. I mean every so often you’ll run into the uncanny ADD-man. You know the guy that is so in need of finding the next thing to jump to you’re pretty convinced he has a deep rooted issue involving being moved around from city to city because of a parent’s career… or paint chips.

For the most part though, we do like a certain comfort zone, and fuck if someone will convince us to get out of the comfort. And why would we? I mean it’s something we know. Something we understand. And isn’t life easier when there’s understanding?

I ran into this a couple jobs ago (I’m a job whore) when I asked for two monitors. Now this idea was something completely foreign and oddly scary to the people there. I mean, alt-tab is just fine, amirite? Wasn’t soon after getting the second one I was being looked at like some kind of child molester.

All I can say is: Don’t knock it until you try it. I meant two monitors, not child molestation. Well at some point the old light bulb went up on someone (Which makes me wonder what turned on before there were lights).

That person dared to start using two monitors. Next thing you know, there was a rash wave of double monitor usage. The world had changed forever. There were whispers of possibly having three monitors.

Side thought: I wonder if this is how the double razor to triple razor to n razor thing started. One guy was all like, “Hey guys, what if we had two razors on a shaver.” and then promptly speared for such thoughts that most likely were from satan. That was until some boss guy who was too high up to spear uttered the same words. Then everyone just went bat f–king crazy and started just throwing on arbitrary numbers out like some kind of reverse auction. And thus the razor wars began.

Anyways, back to the monitor thing. The moral of the story is that you can’t know what you can dare to dream if you have no concept of what’s out there.

Ok I lied sort of. Usually people use the line “The moral of the story” to end a thing like this, but I actually am being all sneaky and I tricked you into something bigger: Programming languages.

I have a confession. Well I have two, but one has to do with a having a song by Miley Cyrus… ok multiple songs… OK EVERY F–KING ALBUM… but that’s not important. The important part is that I’ve been a hardcore Microsoft guy for all 10 or so years of programming. I did not stray at all really. At least not much…

And why not? Microsoft has done a good job keeping the carrot in front of my face.

So why would I want to go anywhere else? I mean, I’m diverse. I use javascript. Besides, I have everything I need just given to me. Read that again. Actually I’ll type it again then just read it: I have everything I need just given to me. There are so many things that .net technologies do for me I really don’t have to do a whole lot. Or know a whole lot. Most lower level language ideas are just completely paved over with easy to use classes and controls. And that’s the problem.

I’ve been on a quest in the last year or two to really push myself to have a much better understanding of important programming concepts… that Microsoft has been so kind to hide from me as to not worry my pretty little face.

And maybe you are ok with that. Maybe you like to just take a pay check or just produce mass quantities of semi working code. Nothing supremely wrong with that. Just realize your career at some point will flat line.

But I say screw that. I need more and damnit I’m going to get out of my comfort level. I will brave the unknown (actually I already have with java and python) and in the long run I’ll be much better off. Why? Because not only do I diversify my languages, I also am privy to new and weird concepts that I would never see if it weren’t for venturing into new languages. Not only that, but I’ve found that some of the concepts and features just being added to C# have been around for a long time in other languages. So why wait for them to mature when you can use them now?

No really, I’m asking that. Give me a good answer…