SEO: Say No to the Dark Side

This blog has been pretty quiet the past six months, mostly because I’ve been writing for the Credera blog rather than my personal blog. Now that I’ve left Credera, it’s time to revive this labor of love.

For my last few months at Credera, I had two project which both had a heavy emphasis on SEO.  I’m a developer, not an SEO geek, so it was pretty interesting seeing what SEO is all about.

I got to expand my vocabulary with new words like PPC and organic search. I also got to meet some interesting characters in the SEO world, including some of the folks behind the JC Penney black hat SEO scandal and someone I simply called a Sith Dark Lord of SEO.

Everyone was simply trying to stay one step ahead of the Google nerds in exploiting algorithm loopholes to push their content to the front page. It is a never-ending, and expensive, battle.

Sort of like the movie War Games, chasing SEO loopholes didn’t look like a game worth playing. Fortunately, there is a better way. I had a chat with Kyle, Credera’s SEO Expert and one of the few people I’ve met worthy of that title. He boiled things down pretty succinctly. There are really only a few things you need to win at SEO:

  1. Structure content correctly – use clean, semantic HTML with proper titles, heading elements, etc…
  2. Produce good content

It’s this last one that I think people are missing. You can spend a ton of money trying to trick Google into driving traffic your direction, or you can spend zero money by producing content people want to consume and get bumped to the top for free.

Around the same time of these projects, I got to see Jay Baer, the author of Youtility, speak at SMC Dallas. He really brought home all the points Kyle was making. Jay says your web content should provide so much value your visitors would be willing to pay for it.

Paying someone big money to fiddle with keywords and the gaming of algorithms is battle you can’t win. Say no to the Dark Side and start producing quality content people want to read. There are no shortcuts.

Fuji X-T1 First Impressions

The new Fuji X-T1 is a camera  a lot of people have been waiting for. I’ve been a dedicated Nikon SLR user for the past six or seven years, moving from a D300 to a D600 over the years to finally get that full frame quality. But I’ve been practicing photography for over 30 years. My first serious camera was an Olympus OM-2, and my camera before going digital was a Nikon FM-3A. So I remember when SLRs were light, reliable traveling companions, not the bloated burdens they have grown to become.

Four years ago I speculated on what would be my ultimate Nikon camera. Apparently, Nikon didn’t read it, but I’m guessing Fuji did, because the new X-T1 comes pretty close to my definition of a dream camera.

I’d been waiting for my Amazon pre-order to show up, but decided to call my favorite local camera store, Competitive Camera, to see if they had gotten any in stock. As luck would have it, they actually did, so I made the trek down to Dallas to pick up one of the last two they had.

I’ve had an afternoon to shoot with it, so I can give some real world impressions. I’m not a professional photographer. I’m just a dedicated amateur who takes a lot of pictures of my rapidly growing daughter. But I have handled a lot of cameras over the last three decades.

My first impression was “Holy Crap!” The X-T1 feels like a classic SLR. It has a nice heft to it, but not too heavy. It is very reminiscent of the Nikon FM-3A. The dials have a solid, reliable feel to them, and I’m taking a lot of joy in experiencing a real aperture ring again.

I picked up the X-T1 with Fuji’s 23mm f/1.4 lens to serve as my general purpose, walkabout lens. We headed up the Shops at Legacy this evening to walk around the lake and eat at one of the great restaurants, so it was a good chance to try out the camera.

First, a few pictures, and then some deeper thoughts on the X-T1. All these are unedited, other than cropping to 4×5 and shrinking down to size:


Zoe hamming it up

The budding photographer taking a picture of the turtle

The budding photographer taking a picture of the turtle

Stairs at the lake

Stairs at the lake

ISO 3200 at f/1.4 ambient light

ISO 3200 at f/1.4 ambient light



  1. The camera feels even smaller than it looks. I found it comfortable to hold for quick shots, but I would not want to be shooting non-stop for an hour with it.
  2. Image quality is great. I’m not printing gallery prints, but I do care about good color depth and pleasing tone. I shot jpeg mostly with the Astia film simulation, with a few shots in Velvia. The light was too flat to get good value of the Velvia mode, so I’m looking forward to trying it again.
  3. Autofocus was extremely fast and the face detection worked really well. I found it comparable to my D600 for speed.
  4. I don’t like the back “joy pad” area. It is slightly inset, making it difficult for my larger fingers to manipulate. There will be zero chance I will accidentally press one of those buttons.
  5. I thought the fold-out LCD screen was going to be gimmicky, but it is actually pretty cool. I can see using it for low-level shots.
  6. I usually want to shoot EVF only, but if you push the Q button in the EVF-only display mode, the Q menu only shows up in the EVF and not on the LCD. If I’m fiddling with the Q menu options, I want it to always show on the LCD, regardless of the display mode. Hopefully Fuji provides this option down the road.

The biggie is the EVF. Yes, it is large, bright and beautiful, but coming from a long history of high-quality optical viewfinders, I call it passable, at best. It has a high-quality camcorder feeling to it, which I personally don’t like, but am willing to tolerate for everything else the X-T1 brings to the table.

The biggest reason the X-T1 is a winner in my book is the size. On my last vacation to San Francisco, I lugged around my D600 with the 24-120mm f/4 lens. Towards the end of each afternoon, I was sore from carrying it around, even with a good Black Rapid sling.  Here’s the X-T1 side-by-side with the D600.

X-T1 with D600

X-T1 with D600

The X-T1 feels like a feather by comparison.  I think the Nikon zoom alone is heavier than the X-T1. I carried the X-T1 around all afternoon and it was barely noticeable.

The X-T1 is about as close to perfection as a classic SLR-lover will find today. It’s not perfect though. I can tell already I’m going to have a love-hate relationship with the EVF. I still hope Nikon awakens from the pathetic slumber and builds the “FM-3D” I’ve been craving, but for the time being, the X-T1 and I are going to have a long and fruitful relationship.

On a side note, I picked up a DSPTCH Sling for the X-T1. It is a really comfortable, well-made sling that works perfect for the X-T1. And it’s even made in the USA. I can’t recommend it highly enough.

DSPTCH Sling on the X-T1

DSPTCH Sling on the X-T1

Dear New Microsoft CEO

Congratulations on assuming the reigns of one of the best know technology brands in the world. Once you get past your new-hire honeymoon, you have a lot work ahead. You see, Microsoft is dying. Not in the monetary sense, but from an innovation standpoint.

You could continue to license Office and Windows to large enterprises for another decade and make your shareholders happy. But Microsoft’s future viability isn’t about the Office/Windows cash cow, it is about successfully returning Microsoft to a company built on innovation and wonder. As your predecessor so gleefully proclaimed, it’s about developers, developers, developers! And you’re losing that battle.

I’m not a billion-dollar technology executive, unlike what you became the minute you signed your offer letter. But I’ve been in the technology trenches for a while, and the guys in the trenches have a lot better instinct for how the battle is going than the REMFs at the top.

Your challenge is that Microsoft has lost its street cred. When someone says “.NET Developer”, they’re thinking of a minimally-skilled, cube dweller writing Sharepoint widgets. And that’s a shame, because you should be a whole lot more.

I’ve been a Java developer since the JDK 1.1 days, but I’ve tracked the .NET scene since its inception. I used Visual J++, read the language specs for Cool, attended C# training on the Microsoft campus, and deployed more .NET code than I’m willing to admit for fear of being kicked out of my tribe.

You have a great thing in .NET and C#, and your pissing it all away.  I’ve written code in a lot of different languages, and I still think the C# language is about the most powerful, elegant and best-designed language available to developers today.  But you’re allowing your stubbornness and internal politics to kill it by relegating it to best-supporting-actor role for your boring server products rather than driving it as a thought leader for innovation.

How many startups or smart kids in dorm rooms would even give C# more than a passing thought while building the next Facebook? The answer is near zero. Go take a walk around a non-Microsoft technology conference and count laptops. Apple owns. Even those ugly Dells are probably running Linux and not Windows. At SenchaCon this year, I probably saw more Chromebooks than Windows laptops, which must really be rubbing salt in your wounds.

If you want to follow IBM down the path to irrelevance, more power to you. But I always looked at Microsoft as the hometown hero of the northwest, so I hope you aspire to do better.  Here’s a few suggestions to help you out of the gate and to find Microsoft’s mojo.

Step 1: Fire the ignorant fool responsible for stack ranking and fix your culture. You can’t be successful when your internal culture is the equivalent of corporate Hunger Games. Teams play to win. Microsoft is any army of individuals right now. You might be able to hire mercenaries with stack ranking, but you’ll never have cohesion across the company when everyone is in mortal combat with their cube-mates for their very job survival.

Step 2: Give a free Visual Studio Professional and Windows 7 Developer Edition (see below) license to any developer who registers to be a Microsoft developer. Every other ecosystem has world-class tools available for essentially free. You can still make money on your “Enterprise Editions” suckering Fortune 500 clients into paying enormous fees, but the grassroots developers you need to attract won’t pay for it. And Express edition is too gimp. You have nothing to lose and everything to gain by getting your tools into the hands of as many people as possible.

Step 3: I use an Apple laptop probably 90% of the time for development, even when it is for tasks I could also do on Windows. The primary reason is the workflow is better. Easy virtual desktops, a full-power terminal, and a window manager that stays out of your face are the primary reasons. You should push out a version of Windows 7 tuned for developers (Windows 7 Developer Edition). Strip it of all the crap for making grandma’s life easier. Include as close as you can get to a real terminal/console (don’t get me started on the suck that is PowerShell). And it should scream when running Visual Studio. Get feedback from developers and churn on it. This is a version of Windows for developers, not Fred in accounting.

Step 4: Make Internet Explorer rock, or get out of the browser game. IE 10 is barely useable, and you all should be embarrassed to even admit authoring any of the prior versions. Everyone I know uses Chrome or Firefox. Swallow your pride and go learn what people want and like from these other browsers. Make Internet Explorer the most standards-compliant browser on the planet. You should own on HTML5 Test and Acid 3. Your JavaScript engine should blow up V8. And start churning! There should be an update to IE every two months, not every two years.

Step 5: Beat Apple at their own game. You picked the wrong battle to get into the hardware market with. An upside-down laptop isn’t revolutionary. Similar to #3, you should go build a developer-focused laptop. With all your R&D power, you should be able to come up with something than can trump a Retina Macbook Pro. Sell it direct to developers. Earn mindshare. Your stock vesting plan should correspond to the percentage of Microsoft laptops being used at conferences in three years. If you walk into OSCON or RailsConf and over 50% of the attendees are using your laptops, you’ve won.

Step 6: Become the new MySQL. SQL Server is a tremendous product. You have a database that is very easy to use, yet powerful and reliable. But once again, you’re caught up in the enterprise world trying to be Oracle instead of being yourselves. SQL Server Web edition should be filling the role you’ve been pushing SQL Server Express edition for. And it should be free. Yes, you’ll eat some short term revenue loss, but you’re in it for the long game. There should be no reason someone picks PostgreSQL or MySQL over SQL Server for a startup. And no, Bizspark doesn’t count.

I know all this sounds like a lot of developer whining, but the people who write code really are The New Kingmakers. Microsoft has a lot of cool stuff going for it, but it feels very fragmented. Microsoft is losing the battle for the hearts and minds of today’s developers, and pretty much screwed for the  future generation. You must change that. Microsoft can’t afford another lost decade.


The Cryptography Renaissance

The past week will go down in history as a significant moment. It will be remembered as that point in time when we, the United States, realized the fine line between Nanny State and Police State in this country really doesn’t exist. And from a technology perspective, this week will mark the rebirth of the Cypherpunk culture.

I’ve always been a crypto geek. I actually read Applied Cryptography a decade or so ago. I remember closely following the NIST AES competition, rooting for Bruce Schneier’s Twofish only to see Rijndael be crowned the victor. I implemented DES and RSA for a smartcard terminal using C libraries via JNI for embedded Java because the client didn’t trust Java for the crypto. And I remember when PGP was treated as a more dangerous weapon than an AK47 by our government.

Then things calmed down. The wild west of the internet extinguished a lot of the flames fanning the cypherpunk fires. TCP/IP and HTTP don’t recognize international boundaries. The government and military were too busy learning how to take advantage of these technologies for themselves to worry much about spying on everyone else. For example, while in the Air Force, I was in one of the early kick-off meetings for Intelink. On the sign-in sheet, they had a column for email address. Barely 10% of the people in the room had one.

The days of the free-loving, wild west internet are coming to a close. We allow that businesses spy on us for advertising purposes, but now we’re learning how much Big Brother is doing it too. And we should be worried. There is a new generation of geeks, teamed with the gray-beards of the early movement, who will now be interested in empowering the secure, private exchange of ideas. A renaissance of cryptography is upon us.

Unfortunately, this new crop of cypherpunks is working at a major disadvantage. The collusion of government and industry working together means many popular technologies are insecure. Can anyone really trust Java, .NET and Windows, given it is completely certain that Oracle and Microsoft are willing partners of the government? And what about Apple with iOS and OS X? Are we to believe they took a stand and put their foot down?

This cryptography renaissance is going to be an Open Source renaissance. Desktop Linux will always be a niche, but I expect to see more developers using it. Open languages like Ruby, Python, SBCL, Haskell, and even C, will be the tools of this new generation.

The fight for privacy is going to be fierce. But as Dr. Ian Malcom said, life will find a way. In this case, I believe technology and privacy will find a way.

Programming Choices

The past few months have pretty much been both a blur and a grind. Most of my work time has been spent on a classic big, dumb enterprise Java application. They’re a drain to write, and I’ve found it also saps my creativity for trying new things. Java, powerful as it may be, really has become the new COBOL and I definitely don’t want to be one of the grey-beards left maintaining crap code in another decade.

The tough problem is there are too many choices today, and Java ends up being the safe bet by default. There are several other technologies out there that I find more interesting. The challenge is finding the time and project to use them on.

WordPress – Yes, don’t laugh, I said WordPress. We finished up a custom WordPress site for a local home builder and it was a blast. WordPress has grown in to quite the little powerhouse and you can almost think of it as a mini web framework. PHP is a bit kludgy, but no worse than many alternatives. I’d like to get a chance to do another WordPress and push it a bit father.

NodeJS – I really enjoy working with NodeJS. As I’ve mentioned in a prior post, it reminds me of Java in the JDK 1.1 days. NodeJS is fast to work with with, and allows you to build an application about anyway out want due to an emphasis on tightly-focused “micro modules”. Think JavaScript Legos. The downside of NodeJS is it tends to be a lone genius technology. I couldn’t see a large team working on a NodeJS application.

Scala – I’ve never had such a love/hate relationship with a language as a I do with Scala. It feels like a modern language but it is still, at its heart, Java. This can be both a good thing and a bad thing. In some ways, it feels like it tries to be too different from Java, making for an abusive learning curve. And if I wanted to stay on the JVM, I could just keep doing Java and cut through the complex abstraction. Scala has moved to my “watch, but don’t play” list.

There are always other little things that pop up too competing for my attention. Now we’re firmly into spring so I can bust out of the winter doldrums and try to get creative with my coding again. I suspect though I’ll be slitting braincells between WordPress and NodeJS.