Category: work

What to do with Twitter?

What to do with Twitter?

A week or two ago, a professional colleague (for lack of a better word πŸ™‚ asked me what I think is a pretty good question, “I can’t tell if it’s professionally wise or socially irresponsible to stay silent about my political views. @jasondlee thoughts?” It’s a tough question, I think, so here’s my rambling answer. πŸ™‚

Twitter is, for me, a mostly personal outlet. Yes, I follow several peers, etc from around the industry, but I also follow friends from church, politicians, journalists, commentators, comedians, musicians, etc. For the most, I try to segregate my blogging into “personal” (here and here) and professional (here). Twitter, though, I tend to treat as more of a middle of the road outlet, more like the hallway conversations I’d be having if I worked in an office. Since I don’t, I tend to ramble more on Twitter. People that don’t like that know where the “unfollow” button is (and, believe me, from what little I’ve paid attention to follower counts, it gets used :).

Having said that, whether it seems like it or not, I try to be sensitive to the interests of my followers. I try not to spend too much time on political or religious matters, and, to a lesser extent (for the benefit of my Facebook Friends who see all my tweets via the Twitter app), I try not to tweet every geeky idea that comes to mind. I am, though, admittedly, MUCH less concerned with the latter. They can (and do, I hear πŸ™‚ hide me from their stream on Facebook if they want to.

Some topics, though, I feel are either too important to filter out of my Twitter stream, so they get some attention. I also know that I follow a lot of people who don’t hold my positions, be they political or theological (and some even technical). Despite how incredibly awful Twitter is for real discussions (“Twitter is where conversations begin, then move somewhere more appropriate”, I’ve heard, kind of like this one), I do enjoy hearing the opposing viewpoint to the topic du jour. If I only ranted about this politician or that dangerous theological idea to the Duke stress relief squeezy, I wouldn’t get the sharpening and education that comes from active, public discussion (such as it is on Twitter).

So, in a nutshell, I treat Twitter as a *mostly* unfiltered venue for discussion/venting. That may irritate some and may cost me professionally (tough to say on that front), but I’m OK with that. I say nothing on Twitter that I wouldn’t say in a hallway conversation or a coffee shop. If someone doesn’t like that, well, there’s the unfollow button. πŸ˜›

Negotiation Workshop, A Michael Scott Joint

Negotiation Workshop, A Michael Scott Joint

Several weeks ago, a couple of team mates of mine had a disagreement, and fireworks ensued. This inspired my boss to buy us all a book and scheduled “negotiation workshops” to go over the material, and pain ensued.

I’m not opposed to reading the book. We all have room for improvement in every area of our lives. I recognize that, and I’m comfortable with that confession. These workshops are pretty painful, though, as there’s nothing in it I couldn’t have garnered simply by reading the book, save one awful thing: role playing. I hate role playing, but we were all assured we’d all get the opportunity to participate in future sessions. There’s going to be more! I’m not sure how much of this I’ll be able to stand without going absolutely crazy. As my beautiful wife pointed out, this is just like a Michael Scott scene. For reference, here’s what I got out of today’s session, one syllogism, inspired by a line on one of the PowerPoint slides, and one haiku:

Negotiatiors are people.
Soylent Green is people.
Negotiators are Soylent Green.

and

Negotiations –
A dumb role playing workshop.
Shoot me in the head.
The Front Porch Test

The Front Porch Test

Everyone knows that one of the most important things a software project is a good name, but coming up with a good name is not easy. To help with the process, we apply what my boss, Mitch, refers to as the front porch test, which is actually a rule of thumb from the pet world. It goes like this:

When picking a name for a dog, imagine yourself standing on the front porch yelling the dog’s name out into the neighborhood. If you think you’d feel like an idiot yelling that name, then choose something else.

Replace β€œdog” with β€œprogram” and you should get the idea.

JSF and Annotations

JSF and Annotations

Recently at work, we looked, ever so briefly, at a new web framework called Stripes. It looked rather cool, as it was largely annotation-based, but, given its glaring lack of any wide-spread usage, we never seriously considered it. Today, I was on The Server Side (you do read TSS, right? πŸ˜‰ and noticed that Struts has released a Java 5 addon. One of the additions is annotation support whose only problem appears to be that it’s tied to Struts (that’s a joke ;).

At any rate, all of this annotation on the web tier got me to thinking (again) about my favorite Java web tier technology, JSF. The only “real” complaint I have with the framework is the XML, minimal as it is (I’m past the JSF learning curve, so I don’t have a problem with that anymore :). Being a big fan of annotations and IoC, I’ve been wondering if/when JSF will finally support configuration via annotations. Until this morning, I’ve just assumed that I won’t see that support until 2.0, but a thought occured to me: why can’t it be bolted on to 1.x?

In the interest of full disclosure, I’ve never written my own annotations, and I’m not too terribly familiar with the internals of either major JSF implementation, but I have in my mind a back-of-a-napkin sketch of a possible solution. My initial guess is that it might be possible to write a class (a FacesServlet child, maybe) that scans the classpath (optionally restricted by context-params, for example) looking for annotated classes and methods. Armed with the knowledge gleaned from the scan, we would then be able to build the context (I’m hoping) in a similar fashion to parsing faces-config.xml.

Is it doable? Am I off my rocker? I don’t know. Hopefully, I’ll have a chance to find out soon, assuming someone in the know doesn’t disabuse of the notion before I get started. πŸ™‚

I have turned in my notice…

I have turned in my notice…

Well, I finally did it. Last Thursday, I gave my notice to Hobby Lobby. As one might expect, my boss wasn’t too excited about it, but he said he wasn’t too surprised. He’s known that I’ve not been too happy for a while. Part of my discontent was the adoption of .Net. The rest (and maybe the majority) was the installation of Peoplesoft Enterprise 1 (also known as PSE1, JD Edwards One World 8.9, and probably something else as soon as Oracle finished its acquisition of Peoplesoft).

Hobby Lobby made both of these decisions, as it felt that they were the best decisions for the company, which I can understand. Obviously, I disagree with the selection of .Net as the development platform. Peoplesoft, though, I supported and recommended (though it’s not like the whole decision hinged my opinion. They did, though, ask for it, so I gave it). I was led to believe by the salesmen, though, that we would interact with the system, as developers, via a Java API. However, as one might expect from salesmen, that picture wasn’t quite accurate. Not only will we not be using the API, there is no API. All interaction is done by reading from or writing to "Z" files and running programs. Not that the absence of a Java API would matter, though, as we won’t be using Java.

I spent some time doing development in both environments to see if I could enjoy my job. To be honest, though I am opposed to .Net for reasons I’ve discussed elsewhere, I could probably be happy enough doing C#. PSE1 development, however is a bunch of click here, double click there, type in a variable name on this line, drag this over here. Ick. The only way to see everything the program is doing is to print the "code." I just did not enjoy that (beyond learning it. Once the new wore off…)

So, I’m off to another company here in the metro. It’s a bittersweet decision. I’ve made some good friends here at Hobby Lobby over the past 3 1/2 years. It will be hard to say good-bye to them (though I’ll only be a few miles away from them and I go to church one of them). I wasn’t enjoying myself though, and that made me miserable at work, and the quality of my work suffered. That’s not good for them or me, so it’s probably best for everyone that I move on. Only time can tell if I’ve made the right choice. Right now, it feels right, and I expect that it will be…

Black Thursday

Black Thursday

Black Thursday has arrived. It’s a day I was expecting, yet hoping could be avoided. Oh, I didn’t know what day of the week it would be — it could just as easily have been Black Wednesday — but I knew it was coming. Management kept dropping hints. Licensing costs, alternative pilots, architectural changes. And, tragically, the day has arrived. The announcement has been made. The death knell rung. The wake cancelled. What might this tragic news be? My management (if you know who I work for you, you can fill in the details yourself) announced today that we are reversing our original decision to proceed with all new development in Java, with our new direction to be tied to Microsoft’s .Net. "What’s wrong with that?" one might ask. Allow me to expound.

Those of you in the technology field may look at my distaste for Microsoft products and write me off as a Linux zealot. After all, Microsoft puts out a quality product, right? Wrong, I think, on both counts. First off, I’m not a Linux zealot. I am, though, a huge fan. I have installed and run Linux boxes at my current job, as well as my last one. I also run it almost exclusively at home. Personally, I find Linux to be much more fun and rewarding than a Windows experience. Professionally, I feel you should select the best tool for the job (which can be a difficult metric to define and evaluate), and I have seen precious few scenarios where a Microsoft solution makes better sense.

As far as the quality of Microsoft’s products goes, I think the facts speak for themselves. For those who have used MS offering exclusively, you’re probably pretty happy and impressed with the current crop. They’re more powerful and more stable than past versions. Your assessment, I think, is correct. However, when you compare what MS offers to what other vendors, not just Linux (which isn’t actually a vendor, but work with me here), have to offer, and you’ll begin to see a vast disparity in terms of quality, security, stability, and reliability. Microsoft got where it was by being first. With the leg up that Big Blue gave them, they were the first to offer an operating system for the PC platform, which was cheaper (and still is) than the possibly superior offerings from Apple, among others. They maintain where they are by sheer monopoly force. Windows needs regular reboots to maintain sanity, and is prone to viruses and worms. Exchange and Outlook are high-priced vectors for "email" viruses (which should be termed Outlook viruses, as no other mail clients are affected). Office is over-priced and bloated, and has its own demons to fight with regards to viruses. While no software package is 100% secure or perfect, but Microsoft products, as a general rule, trail the pack.

So what does this have to do with my current employer? The decision was made to upgrade to Exchange 2003, but to do that, we need to upgrade to Active Directory. To do that, we either go through severe pain and anguish in trying to migrate our Win2K domains to AD, or install Windows Server 2003. The result of that decision is left as an exercise for the reader. This highlights the Microsoft business model nicely. "If you want to run the new version of Foo, you have to upgrade to the latest version Bar." With the level of integration Microsoft demands, which apologists applaud, installing the latest version of a Windows product strengthens the stranglehold Microsoft has on said enterprise. Being beholden to any one company, whether it’s Microsoft, IBM, Novell, or Red Hat, is not a good business decision, as now your enterprises are tied to the whims of your provider of choice.

Furthermore, too much from one company produces a monoculture, a scenario that security experts decry as dangerous. For example, with Microsoft sharing so much code (as well as tying non-essential systems like web browsers to the operating system) a flaw in a given piece of code will affect every product that uses that code. Let’s say, for example, that there’s a remotely exploitable bug in the authentication code in SQL Server that allows an attacker to gain system privileges. Now, for the sake of argument (as we have no real way of knowing) that Windows, Exchange, ISA, and every other Microsoft product uses the same piece of code to handle authentication. What does that get us if your shop is Microsoft-bound? A vulnerability on every server and desktop in the enterprise. On the other hand, if your web server is Apache, your directory server is Novell and your email server is Oracle Collaboration Suite, you have limited your exposure significantly. Granted, such and extreme mix of vendors can make managing an IT shop more difficult as you have to maintain a wider variety of skill sets, but security is not, nor will it probably ever be, easy or cheap.

So where does this leave my shop? In my opinion, heading down the road toward a life of constant updating and patching, forever running the Microsoft upgrade treadmill. Since it’s usually cheaper to upgrade than migrate, once you make a commitment the size we are making now, you are most likely forever tied to that vendor, and that will spell problems at some point. Will we be bitten by this? Time will tell, but if I were a betting man, it’s going to take just one new virus or exploit to sneak behind the firewall, and we’re going to rue this day.

When Will We Learn?

When Will We Learn?

I will never understand why people still install Windows. Home users have a little more sympathy from me, but I have zero sympathy for corporations that still use Windows. I don’t want to come across as an anything-but-microsoft guy, because I’m not, necessarily. I am, however, a big believer in the best tool for the job, and, for most things, Microsoft is not the best of breed.

Need an office suite? Many will tell you that Microsoft has reached ne plus ultra, but I think they’re confusing perfection with familiarity. There are several good alternatives available. Most are even crossplatform. OpenOffice.org is probably my favorite (due to familiarity πŸ˜‰ as it is cross-platform, and reads MS Office formats reasonably well.

How about a web browser? Many use and swear by IE, but I’d be willing to wager they use it because it comes installed on every machine they buy. My problem with IE is its inherent insecurity and its poor support for web standards. If you’re into ad-supported/commercial browsers, there’s Opera. My personal favorite is Mozilla. It has a fast, secure, standards-compliant browser, and a virus-free email program with great junk mail controls.

Need a database server? You can have your pick.

Email servers? Plenty to choose from.

Web server? While there are many choices, the stand out best is Apache.

How about the operating system? Lots of choices here too.

And for those alternative operating systems, need a virus checker? You can find them…well…maybe over here…nope. You don’t need them! These OSes are not prone to viral infections. That’s not to say that it can’t or won’t happen, but it is orders of magnitude more difficult to write a virus for these systems due to their inherent, multi-user, segregated role model of operation.

Would a migration to Microsoft alternatives be easy? That depends on the sophistication of the user and, for companies, the size of the organization. Is it worth it? Ask Ernie Ball.