Saturday, September 6, 2014

My Hero

My mind is screaming "Hero - Foo Fighters." I just spent the day with mine. Emotions are bouncing like flubber in my head. As one friend puts it, I am officially wazzed out. I want to scream at God, at the world and at the devil to leave him alone and give him a break.

My hero fights every day and with every breath. I don't know anyone with his courage and strength. He struggles and claws through all of his doubt and depression and holds tenaciously to the idea that things can and will be different someday. My hero never gives up.

He collects hugs and kisses from my kids like diamonds and hides them in his heart for later. He is going to need them again and again. I will refuel him every chance I get. But for today, they added up to a big toothy grin that stretched his face wide and happy. Today, I gave him a small respite. The ache of leaving is already starting to settle in. Tomorrow's breakfast will come too soon. 

My hero is a paranoid schizophrenic. He fights every day to keep himself balanced. He fights every day to not lose hope. He wants so badly to have a job, to have some kind of normalcy. He fights to let go of everything that this stupid disease has taken from him. He fights for peace.

He is not dangerous. He is not weird. He is funny and smart and he is my touchstone for so many things in life. He is absolutely my hero.

Sunday, August 31, 2014

Career path, honesty and the phrase "It's just business..."

I am being offered a relocation package to stay with my current employer. I am one of the fortunate developers in my department. Most are not being offered anything. The atmosphere around here is a mix of fear, anger and a tinge of jealousy. Friends have a bitter edge to conversations. We have been told that this transition is the best for my company and have been asked to wear a company-first hat during this transition. We are being told that it isn't personal and that "it's just business." Oddly, the people being selected are the furthest removed from the local power-structure; the least influenced by the thoughts of the local leaders. We are the least guilty of association. So there is something very personal happening here.

This means uprooting my kids, who have never known anything other than what they have now. It means losing my support network of friends and family. Facebook doesn't equate here. Hard to hug a byte. I am being moved to a city that I don't know and into a culture that is completely foreign to me. It means an entirely different job role and working with a power structure that I have never had a great deal of success with. I am still one of the lucky ones.

I foresaw this in February when I was asked to update my corporate profile with what amounted to my resume. I asked questions early enough and when I caught the vagueness of answers that were both deceptive and dishonest, I went into action. I saw the writing on the wall. A beast as large as the Fortune 500 one I am leashed to now does not move in days, it moves in years. They knew quite some time ago what they were doing. My caution paid off. I was able to generate interest and got interviews. So now, I am able to go into this forewarned and forearmed. I walked into the relocation meeting with two job offers and one in the wings. All for the sake of leverage. All so I don't get caught out and have to start selling real estate just to provide for my family.

As an employer, do I really want to put my active producers in such a hostile and adversarial role? Is it safe? Do I want my subject matter experts having six months lead time to sabotage my company? When a company this size starts a move like this, it can't be hidden. There are signs; everything from the quality of the toilet paper to the closed door meetings with phrases like "excited about the new direction" coming out of every manager's mouth. Its obvious. Corporate lies usually are. What they are really saying is that it is time to move on.

Here is my approach. Keep my head down and be pleasant. Do the best work I can. That is my lie. Of course this upsets me, but if they think I am disgruntled and not a "team player" I don't stand a chance of keeping a job. So I chisel a mask and invest enough energy in it to get through, then I look for the exit. At best I keep a job, at worst I exit on my terms. This is the best I can do. The only way to avoid this game is to play a different game. Can-you-kill-me-before-I-escape is the cleanest name I can come up with.

Big changes are heading my way and they are not designed by me. But then again, who ever really designs their own massive life-changes?

Sunday, April 6, 2014

The Ten "Dude" Commandments for workplace equality: A non-feminist approach

I. Thou shalt not be a ass-hat! To anyone. Ever. If your words or actions marginalize anyone, are just an angle to get laid, make you look cool at the expense of others, make fun of someone, or end up having to be defended as a result of being offensive, then you are being a ass-hat. Don't. Make no mistake, it is going to boomerang. Learn what workplace etiquette means. This is for your own good as well as everyone else's.

II. The office is never a dating pool. This should be self explanatory. Think about your last huge blowout fight with your significant other and then think about it happening at your office. It can cost you your career and more.

III. Learn to be wrong every time you are challenged..You may have a Ph.D from MIT, but that doesn't mean you are always right. And if you don't have that, there is a far better chance that you aren't right. So instead of immediately dismissing an idea that isn't yours, try that idea on as the right answer. Give it your best shot to defend it. It might be a better idea. And it might surprise you who gives you that idea. Listen to them all.

IV. Keep the fights in the office to fights about the office. Tons of people have hills they long to die on. Religion, politics, equality, whatever. Don't take the bait! You have strong opinions about something. We get it. Bringing up a hot-button issue at work can disintegrate a team quicker than a fart clears an elevator. It also exposes you. Fight for what you believe in, but leave the personal battles in your personal time.

V. Never join a negative group. Gossip, bad-mouthing, trash-talk, sexual innuendo all fit into negative groups. If there is a clique that is in power and they are based on this, it is better to find a new job, school, or religion than join. This isn't office only. Those laughs and that coarse camaraderie may feel good, but it will tear away somewhere else in your life.

VI. Promote other people, even if you don't like them.You are at work, you don't get to pick all of your co-workers. Some of them are going to rub you the wrong way. Does that mean that person can't be the next genius who makes your stock option treble in value? Congratulating someone on a win or singing someone's praise can be great for building bridges. Get over yourself.

VII. Call people on their bull crap. Laughing at a joke may only be reacting to embarrassment, but if you don't turn that laugh around, you are co-signing the bull crap. It is easy to sit by and do nothing while someone else is getting a raw deal. In that kind of place, it is easy for *anyone* to get a raw deal. It harder for a raw deal to happen if an ass-hat knows that he or she will be met by resistance. It takes people willing to make the office a safe place to do the one thing we are all their to do in the first place; WORK. Follow your company policy, but speak up.

VIII. Do not judge. I hate how trite that sounds. I hear it all the time, but it makes morality sound passe and even out of place. Morality is actually my source for this blog. In a business though, where the body we join is diverse in almost every aspect, we can't afford to leave people out because they don't fit one of our pictures of right. It will leave us ultimately as a party of one. Yes, our morality matters. I don't know of a moral code in existence that says it is okay to be an ass-hat.

IX. Don't steal post-it notes. Well, that is really just an example of the "Small things, Large things" axiom, but it is solid advice. If you give yourself a little permission to do something a little bad, you will crumble when it comes to something big. Self-justification is an almost instant promotion to ass-hat.

X. Fight ass-hats. We are pushing talent out of  technology faster than we can train the replacements. Whether its a bias on culture, race, religion, gender, sports teams, fraternity status, physical fitness, sexual orientation; bias kills a team. If we are going to keep the tech industry in the US healthy and growing, diversity isn't what needs to go away. Ass-hats need to go away.

Saturday, March 29, 2014

Going back to my roots in more ways than one

The entrepreneurial bug has bitten me and I can't shake it. I keep starting projects that I think could be turned into something, but no lightning strikes yet. I am not shaken and my vision is clear. I will start something cool. When I do, it will likely be a mix of my tech savvy and my passions.

Anyone who knows me knows how ADHD  eclectic that range is. The thing I am working on right now is something that combines several of those passions and I am using some of my new skills that are actually quite old. 

I started doing web stuff in the mid 90s and started doing JavaScript in the late 90s to early aughts. JavaScript sucked, wasn't safe and almost never delivered the same results between browsers. DOM manipulation was wizardry that took enormous effort and was seldom worth the effort. CSS wasn't a standard, it was a notion. I wrote a booking engine for that used what would become known as AJAX that I ultimately had to abandon because I had to write a version per browser. I hated web. I wanted out.

Then, I went C#. I worked without much soul for quite a few years. I learned all of the "right" way of doing things. Finally, I have come full circle. 

Now the project I am starting has moved back from C# land and into Web 2.0 SPA land. My world is over-flowing with buzzwords that end in -ify and -tly. Open source champions are made overnight on GitHub. It is intoxicating to see the amount of energy being poured into something I was once very passionate about.

As I develop the app, I will give snippets and lessons learned here. All 40 of you who read it may find it dull or maybe not. Let me know :D

Tuesday, March 18, 2014

Women in software

I guess I have had my head in the sand as usual about a problem that is at a crisis level in my industry.It has been a few years since I went to a conference and I typically get along with folks at conferences pretty well. I have never had a big issue with walking up to someone and chatting them up. Making connections is part of the charm of a conference.

This year, I noticed something disturbing. Several of the women (whose names and companies were advertised on their badges) that I tried to talk to seemed stiff, almost fearful. I understand some stranger-danger but these encounters were beyond that. These were more than cautious, they were fearful.

I didn't understand. As a happily married father of three, I look my age and my description. I wasn't flirty or leering. And yet, when I approached a female at this conference to have a simple conversation, there was a wall. I had to ask, "What gives?"

When I followed some of my favorite speakers on Twitter, I got my answer. It sucks to be a female in the software industry. The more I searched, the more embarrassed I became. I thought we had made progress in the last few decades, but I guess I was wrong. I thought we had fought our way out from under the sexual fog of misogyny and dominance in the tech sector. What I found is ridiculous. Dov Charney would blush at some of the crap that women endure to follow their passions in software.

Like I said before, I am a father of three. Two are girls. My blood went to insta-boil! If a boy treated my daughter like some of the examples I heard, I would be facing jail time. So gents? Here is a good rule: Just because you like it, doesn't make it fun. Fun should be victimless. If your fun leaves someone else feeling vulnerable, used, cheap, judged, second-class or in any way less than you, you need your ass kicked.

It isn't just gender. It isn't just race. If you are always looking for a boundary just so you don't cross it, you are already going too far. You are hurting your business, your family, your honor, your name, your children, your city, your beliefs, your image, your ability to ever work for my company or ever have me spend a red cent at yours. Stop!

My industry needs to start a conversation. I understand this is a two way street and there are certainly examples of women hurting the culture by being provocative. So what? My integrity isn't about who they are, it is about who I am. People unfit for a winning culture will wash out after we build the winning culture, not before. If we want a culture that can be looked to for sustainability, integrity and desirability, we have to look in the mirror before we act. We all learned this a long time ago: Follow the golden rule. Put yourself in the other person's shoes before you act or open your mouth.

Friday, March 14, 2014

The road forward for technology (something old is something new)

I never thought I would drink the kool-aid. I have known JavaScript for more than a decade. It was a terrible language and has managed to survive because nothing else came along that either didn't give one company all of the power of the universe or didn't just out and out suck (I am looking at *you* DHTML)

I just got back from the Fluent Conference by O'Reilly and I am convinced. With the modernization of the language, especially what is coming in ECMA 6, most of what we do with the Web as a platform will have JS involved. If you are a developer and are not actively working on a JavaScript project, you should start now. Today.

Let me unpack what I mean by that. First, JavaScript does have a standard. The body overseeing it is ECMA. It is just now coming up on its sixth standard for the language and what it should support in its engine. They don't actually put out the language like Microsoft does with C# or like Oracle does with Java. They just specify the standard.

Secondly, the argument that performance of an interpreted language versus a native language is almost completely dead and certainly not relevant in any meaningful sense. Because the execution containers are so amazingly fast, JavaScript can frequently outperform many other expensive platforms.

Most importantly the browser is no longer the only Web surface that is being reigned in by powerful, elegant and responsive JavaScript stacks. Combined with DB technology that may as well be the definition of scale, JavaScript runs Web services that can create a dynamite API that can drive Mobile Apps, Desktop Apps, Web Sites and your mom's broccoli casserole.

Just try it already:

Thursday, February 6, 2014

An open letter to science, scoffers and Ken Ham

To Ken Ham and people who believe like that:

Denying truth and turning the Bible into a scientific record is apostasy. It is elevating a loose collection of tribal writings to the voice of the One True, which according to those same writings *ISN'T* the Bible but Christ Himself.
In the beginning was the Word, and the Word was with God, and the Word was God. He was with God in the beginning. Through him all things were made; without him nothing was made that has been made. In him was life, and that life was the light of all mankind. The light shines in the darkness, and the darkness has not overcome it.
Here is a pretty good write-up on the Bible as the Inerrant Word of God. The author concludes that if you cannot trust everything in the Bible from a common, historic, or scientific viewpoint, that somehow it isn't trustworthy. I say that discounts how remarkable the Bible actually is. It also misses the point of the Christian Bible entirely.

So in light of that, lets break down some simple logic:

  • Satan is the father of lies
  • Science says Bishop Ussher is wrong by using techniques that are trustworthy and true
  • Supposed Christian ministers are saying that you *must* believe in the literal account of creation, based on the wrong dates, or else <<enter your favorite "You're an apostate and I'm not" statement>
  • These ministers are insisting that you put faith in their version of history, ignoring hard evidence and facts to the contrary. That means they are insisting you believe a lie. They are promoting a lie. 
  • So, if they are promoting a lie, whose work are they actually doing?
Will I be judged by God for not believing that the scriptures are inerrant? I doubt it highly. Unless I missed that part in here somewhere?
“Then the King will say to those on his right, ‘Come, you who are blessed by my Father; take your inheritance, the kingdom prepared for you since the creation of the world. For I was hungry and you gave me something to eat, I was thirsty and you gave me something to drink, I was a stranger and you invited me in, I needed clothes and you clothed me, I was sick and you looked after me, I was in prison and you came to visit me.’
“Then the righteous will answer him, ‘Lord, when did we see you hungry and feed you, or thirsty and give you something to drink? When did we see you a stranger and invite you in, or needing clothes and clothe you? When did we see you sick or in prison and go to visit you?’
“The King will reply, ‘Truly I tell you, whatever you did for one of the least of these brothers and sisters of mine, you did for me.’
“Then he will say to those on his left, ‘Depart from me, you who are cursed, into the eternal fire prepared for the devil and his angels. For I was hungry and you gave me nothing to eat, I was thirsty and you gave me nothing to drink, I was a stranger and you did not invite me in, I needed clothes and you did not clothe me, I was sick and in prison and you did not look after me.’
“They also will answer, ‘Lord, when did we see you hungry or thirsty or a stranger or needing clothes or sick or in prison, and did not help you?’
“He will reply, ‘Truly I tell you, whatever you did not do for one of the least of these, you did not do for me.’
“Then they will go away to eternal punishment, but the righteous to eternal life.”
To the BuzzFeed scoffers:
So, if you want to scoff at the devilish red herring, be my guest. It still does nothing to take away from the glory that is found in Christ. If you want to scoff at my belief in a risen Savior, go ahead. Just don't lump me in with the people who make a mockery of my faith through the misuses of its gifts. You might want to read a little of that book that you ridicule before you go too far. There is deep truth in it that has transformed the face of the Earth.

To Science:
Thank you for having the courage to continually fail and be wrong. Like the tendrils of an amoeba slowly feeling its way to food, you keep searching. It is too bad that you only find nuggets of food and not the source of the food. How sad for we casual observers that foolishly rush to trust the newly found nuggets, for we will eventually be left empty. We will be left with our hopes skewered on the next truth you find. No one likes to be continually wrong. Mercifully, you are oblivious to the hopes of your followers. You shun the personal connections that make us human in exchange for a refined truth. But something tells me you are missing a bigger picture due to the very nature that makes you valuable. Not everything is observable. There are often rich sources of food that we never see.

And to watch you being used to create anything is terrifying. You are the god of unintended consequences. And sadly, you lead your disciples down the road of discovery while sitting mute as to the true result of that discovery. And when, at last, the venture is run aground onto the rocky shoals of failure do we find you sitting by and leaving your ardent followers abandoned; blamed for the failure that is rightfully yours.  Never does "Science" get the blame for the countless deaths, horrible aberrations or world-changing disasters, yet there you are. You are at the heart of so much pain and suffering and for some reason people continue to throw their babies into your hands like a super-heated Baal. You offer the truth but almost never the whole truth. A partial truth is seldom a blessing. 

Sunday, February 2, 2014

My new Nissan Versa

So, against my better judgment, I got a new car. I was shopping for a used car as I don't like to pay four grand for a carcinogenic "NEW CAR" smell. I have been shopping for a car for almost six months. I am patient. I like a great deal. The only thing I really cared about with this car was the MPG : sticker price ratio.

I figured that the best time to buy would be at the turn of the year when the 2013s and 2014s would be on clearance. I shopped Ford, Honda, Hyundai and Kia. Reliability is a thing for me. I don't count interior trim in my estimation of reliability. I view cars in the same category as my hammers or power tools; disposable necessities that should last a long time and not break down. How pretty they stay is the last thing I care about.

My 2001 Altima has 120K miles and still runs great, but only gets 20mpgs. I needed to double this due to my new commute. That made the MPG of the new car the number one thing I was looking for. That shortened the list quite a bit. In finally settled on the Nissan Versa. Yes the cabin feels as cheap as a jug of Vanilla straight from Mexico, and no, the engine isn't what you would call peppy. But I doubled my average MPG. And, its a Nissan. And I only paid 11,800. And it has a decent warranty. 

Thursday, January 30, 2014

Going NodeJS

I have been working on NodeJS for exactly three weeks now. I am blown away with how powerful it is! I knew all that Javascript learning couldn't be worthless. If you don't know NodeJS, I would recommend this as a starting point:

There are plenty of ways to get introduced to Node, but WebStorm gives you a solid template to grow from. There is so much noise in the Node ecosystem right now, I would strongly recommend you start with a major vendor. If you just jump in and start trying to cobble together a site out of the Node Package Manager, you are going to contend with third party code that will eat the world. The coherent IDE from JetBrains gives you a soft landing and plumbs most of what you need out of the box.

There is an alpha release of Node support for Visual Studio 2013, but it lacks anything but local build support, lacks a LOT in the debugging and code-complete area. That said, if you are a MS toad like me, it is still an interesting place to start.

Testing you say? Javascript is weak in this area, but there are solutions. Being a Test Driven Development (TDD) ardent myself, I went with a framework called Mocha that has a slew of plugins for your desired flavor of Assert or Expect lingo. The lacking thing for Mocha is Windows support. For that gap, I use Gulp.

Gulp is a task runner kind of thing that you can plug into your Node project.

One of the best intros I have found: