Wednesday, June 06, 2012

We the people...


I would like to talk to you about some of the things that are on my mind lately. It's going to be politics, so if you would rather keep your head in the sand and let your Hamiltonian overlords continue to dictate to you what you can and cannot do in these United States, then you should probably look away now.

Here are the things that you need to understand about me before we begin this conversation:

  1. Until the last few years, I considered myself a “Liberal” but that was before I started paying attention and realized that Liberal means something completely different in the General Government of the United States than it does anywhere else. Now, I consider myself a republican. Not a Republican, but an actual republican.
  1. I believe that The Union of the States of America, as envisioned by the Founding Fathers was the greatest form of Government put forth by man in all of history.
  2. I believe in the power and strength of the individual.
  3. I believe that each man (or woman) is solely responsible for their own welfare and the duties and responsibilities they have placed upon themselves, either voluntarily, or as a consequence of their actions.
  4. I believe in charity and kindness to our fellow man, where possible.
  5. I believe that all men are created equal, and endowed with certain inalienable rights by their Creator; among these are life, liberty and the pursuit of happiness.
  6. I believe in equal opportunity, equal pay, equal rights, and equal responsibilities, but not necessarily equalization of results.
  7. I believe in free markets, sound money, and secure borders.
  8. I do not believe in multiculturalism; it is a policy that has failed every country that has ever instituted it.
  9. I believe that collectivism is anathema to innovation and advancement. Collectivism removes individual incentive. Without great incentive there will be no great effort.

There are many more things I could enumerate, but I think this is a good place for us to start. I intend to write an article for each of these points, and I would love to foster discussion, especially with those who disagree with me, about my beliefs, the nature of our political system and possible solutions to the problems that our country finds itself in.

The main thing I am tired of in our system is the lack of honest discussion. Lets limit the emotional involvement, swallow our pride and listen to points of view that we don't immediately agree with. Zealotry for a cause without reason and balance has ever been the road to extremism and intolerance. Those two things are anathema to liberty, freedom, and any form of open society.

I'll be back in a day or two with my first article. Feel free to hate on me... that means I've struck a nerve and we're on our way to a solid, if somewhat heated, discussion.

Thursday, May 03, 2012

Reviewed: Defenders #6


So, I read Defenders #6. First of all, I am a fan of Doc Strange, Iron Fist, Namor, and Red She-Hulk. (Red She-Hulk fandom is a new phenomenon, but we'll get to that later). Not so much a fan of Silver Surfer, but I'm willing to give him a chance because he is such an odd character, so alien to humanity.

Alright. So, six issues in, and still I have no real grasp on what is going on. Since it's Matt Fraction, I have been giving it the benefit of the doubt, but my patience is wearing thin. Plus, after this issue, I was actually mad at the writer. Having read all of The Immortal Iron Fist, and being a fan, some of the things that happened in this issue really made me angry.

Not that the issue didn't have it's high points, the dynamic between Danny and Misty is always fun to watch; Doctor Strange was, well, Doctor Strange. The story feels like it will be great eventually, but so far it all seems like build up. The clash with Nul a few issues back seemed anti-climactic. There was a great build up of hype before the series started, and then poof, the Prester made Nul just disappear.

Add that together with the fact that She-Hulk and Namor were no where to be found in this issue, and it was a little bit of a let down. I wish that Fraction would get to the point... I understand it is supposed to be mysterious and weird, but the story is almost obtuse. But still I have faith in Matt Fraction, and I'll stick around until it makes sense. Or until I can't stand it anymore.

The art, as usual, was great. I just wish that the story would catch up to it's greatness.

Monday, September 26, 2011

On Being a Better Programmer


After a few years of evangelizing different languages which are “better” than whatever language it is that I am currently paid to develop in, I came to a realization which was triggered by a conversation with a co-worker. He said I wasn't doing myself any favors by looking to other languages and comparing them to whatever language I am working in. In his opinion, doing so would lead to dissatisfaction with the language I am supposed to be working in, and eventually with the job I am paid to do in general.
It was an interesting point.
So I began looking at the reasons that I look to these other languages. By and large, it is that the languages I have espoused over the current language du jour were more succinct, or less verbose in nature. For instance, when I was a C# developer, I was hung up on Python. When I moved to Java, I began looking at others such as Groovy, Ruby, and lately, Scala. But try as I might, I never found a magic bullet in any of those languages. What was I looking for? Some mystical programming language that would instantly cure my faults as a programmer.
The truth is this: the fault is not with the language; it's with the programmer.
I am a Java developer. Professionally. Do I like Java? Meh. Why not? Because I have been lazy. I can't think in Java yet. (I'm getting there.) Instead of taking the time to read and learn Java, to grok it, to “take it to the head”, I saw things in the way the language is used at my current job that are confusing, convoluted, and seemed to be a step back from my days as a C# dev. Instantly I tried to find something “better”, instead of making me better, rising to the challenge set by the architect of our code.
Not any more. I have put away the Scala book. Not that I won't code in Scala, just not now. Before I can use Scala, I must first master Java. I closed my PHP applications. I know PHP. It's comfortable. It's easy. It's a (no offense) way less powerful language than either C# or Java. I close the books on JavaScript. JavaScript is my bread and butter. Simple, dynamic, powerful, fast. Someday I will return. But right now, I realize, I have one job to do.
I have to code Java. I have to become a Java programmer. There is no “better” language. And this is what they pay me to do.

Tuesday, September 06, 2011

Functional Programming? or Here We Go Again....


I am very interested in functional programming languages and their “no iteration, no mutable state, immutable objects only” way of doing things. Recursion, in Functional Programming (FP), is divine, and we should all aspire to divinity. Iteration is direct from the devil, as it makes for convoluted, difficult to maintain, crappy code. If you don't believe that, read some Java.

So what is the barrier to entry? Well, most of (if not all) the functional languages are considered “esoteric”. The most popular pure functional language seems to be Scheme, which is itself a stripped down, simplified descendant of Common Lisp. Every programmer I have talked to hates Lisp. Why? Simple: parentheses. Also, to a strongly typed mind (someone who is trained first on C#, Java, C++, C, Visual Basic, or whatnot) the fact that there are only two types in Lisp, the atom and the list, makes little to no sense.

Ruby comes close to integrating Functional Programming with Object Oriented Programming... but not really. It allows some functional programming concepts to slip in, but it doesn't really support “Functional Thought”.

Python? Not really. Plus both of these languages are really scripting languages, Not compiled, not optimized, not ready for the kind of speed one needs on the Enterprise level. (Not that Java is a speed demon, mind you.) No, if you want Enterprise speed (Warp 1, engage!) you have to settle for Java, or (shudder) suck at the teat of Microsoft. Or do you?

Enter Scala.

Scala is specifically designed to integrate functional programming and object oriented programming, while providing strongly typed variables, first class functions, and type inference. So what, you ask? Here's the really cool part. It runs on the Java JVM. That's right. It compiles to Java bytecode. Optimized. Ready for the enterprise. Java-like syntax. True integration of iterative and functional thought.

Using Scala, you can even leverage Java libraries. They completely inter-operate with each other. So all that code you Java developers have laying around... keep it. Import it. Leverage it.

As if that were not enough... All you C# junkies... you now have another functional programming option besides F#... Scala is available for the CLR as well. So you can compile Scala down to MSIL and let it fly on your Microsoft Web stack, or with your WPF application, or as, I don't know, a class library.

But I sense that you guys really wanna know “Why do I care about Functional Programming to begin with? What's wrong with good ole imperative OOP?” Well...

Nothing, really. FP just makes it easier to write thread safe applications. It makes code more maintainable by not allowing mutable objects. What I mean is, when you hand a function a set of parameters, you get the same response every time those parameters are given to the function. Functions are not allowed to alter the innards of Objects. They can take that object, and create a new object based on it with different values, but the original object is not altered. At best, it still exists. At worse, it is deleted and replaced by the altered clone.

Think about what that does for your unit testing. You get predictable results every time a function runs. If you have ever tried to write a test harness for complex imperative code, you know what a nightmare that is. Small changes in one part of an application can effect the state of objects on the other side of the app. And that can be really difficult to track down if it causes a test to crash.

Do some reading on it. Seriously. FP, once you understand it, will make you a better coder. Even if you choose not to use it, it's one of those things that will change the way you understand software.

Monday, September 05, 2011

Developmental Issues.

So, anyone who knows me on a developer basis knows that I am always looking for a magical bullet language. One that will solve all my shortcomings as a programmer.

Over the last week or two, as I developed a project in the old standby (PHP), A thought occurred to me. It is not the language that is lacking. It's my mind. So, I am working towards a deeper understanding of programming in general, and patterns in specific. Minds that are greater than mine have attacked the problems that I face on the day to day level, massaged lacking languages, built patterns that work, and conquered problems that I have not even yet foreseen.

Just a thought. The place where the lack is, it's with me, not the languages I use.

Thursday, August 04, 2011

A conversation with Oracle...

(09:00:23 AM) Me: 
Dear Oracle,

When will we get a multi-threaded java compiler?

Thanks,
Brett


(09:01:40 AM) Mike: 
Dear Brett,

We are too big too care about what you want.
Don't even bother sending any other questions.

Thanks for your concern,
Oracle


(09:02:41 AM) Me: 
Dear Oracle,

F you.
I'm switching to Ruby on Rails.

Sincerely,
Brett


(09:04:01 AM) Mike: 
Dear Brett,

Good luck with Ruby. Once you actually enjoy it we will buy it out and ruin your life again.

You are SOL,
Oracle

Thursday, January 27, 2011

The value of Quirkiness

One of the things that I treasure the most about growing up with my mom is her quirkiness. I have been awash in a sea of normality. Let me tell you, it gets old.
Mom always had, and still has, a one-liner for almost any situation, a quick witticism, a masterful pun, or just a play on words. She understands the need to put fun into life. Lets face it: there's not enough fun in the world.

Some examples:

Mom referred (and probably still does), to the monthly bills as "William"s. She said she "didn't want to get to friendly with them".

Our vacuum cleaner, when I was a kid, had a name. It was Malcom. Malcom the Vacuum. Pronounced so that it rhymed. Malcom the Valcom. (this causes me to chuckle to this very day.)

Mom required me, from the age of about 11, to watch all the original SNL, Almost all of Mel Brooke's films and everything with Gene Wilder in it. She even let me listen to Richard Pryor (eventually, he's not for the super young... obviously). The puns, quotes and one liners flew fast and furious in our house.

The best of our punning together created the classic oneliner "I shot Chopin, But I did not shoot Debussy." To the tune of "I Shot the Sheriff." If you don't get that, go study some music history.

Another of mom's fav's: What's in the bag Dad? a: Iraq.

Thanks Mom, for teaching me the value of wit and humor. You can do it like no one else.