Blog

Blogging and Obscene Humor

Blogging
1 Comment

In person, I work blue.  I focus on keeping my act clean when I’m wearing a tie or addressing a large group of professionals, but I do have to concentrate.  Get me in a smaller, more relaxed group, and I use my native tongue – which should probably get another layer of soap.

In emails, I play it pretty loose too.  It’s not that I think my emails are private: as a former member of the sysadmin team, I know there’s absolutely no such thing as email privacy.

My Personal Censor
My Personal Censor

Here on the blog, even though I’m not wearing a tie (or perhaps even pants) I’m essentially addressing a large group of professionals.  I don’t consciously try to keep it clean, it just seems to happen that way.  I link to NSFW material every now and then, and when the situation calls for it, I’m perfectly comfortable dropping the F-bomb.  FLATFILES.  Bam, I said it.  You heard it.  And you’re still here, right?  Hello?  Anyone?  Bueller?

I hear questions from startup bloggers asking whether or not they should use explicit language on their blog, and how they should react when someone complains.

Why Are You Blogging?

In my series on How to Start a Technical Blog, I start out by asking the single biggest reason why you want to blog.  That reason determines the approach you take towards a lot of things, including censorship.

If you’re blogging for career success, and if you want to use your blog as a long-term resume, then you gotta keep it clean.  The hiring process at most companies consists of a group of strangers looking for reasons why they shouldn’t hire you.  Why give them any more ammunition?

If you’re blogging for name recognition, like if you want to be recognized when you walk into a room of database administrators, then ask yourself what you want them to say when you walk in:

  • “There’s the guy who wrote that amazing series on RAID benchmark testing.”
  • “There’s the woman who wrote that slick defrag script that I rely on.”
  • “There’s the guy who wrote that hilariously obscene SQL rap.”

All three of those are good options, but make no mistake: if you write to be funny, you’ll be known as the funny guy – not the smart guy.  Make sure that’s what you want to be known for, and if it is, you’d better work really hard at being funny.

If you want to make money blogging, then your primary objective is increasing the number of hits your site gets.  It’s easier to be funny, inflammatory, and just provoke reactions if you work blue.  At the same time, the internet is chock full of people who are really good at working blue.

Penny Arcade on Backups
Penny Arcade on Backups (NSFW)

Are You Sure You’re Funny?

I’m lucky to live with a good critic of blue comedy: Erika appreciates dark, nasty humor.  I happen to love Eddie Izzard, but he’s in no way obscene, and Erika won’t tolerate his act for more than a few minutes.  On the other hand, she really enjoys Chris Tucker.

I recently bought prints of these two Penny Arcade comics:

Both comics have similar subject matters, both are similarly obscene, but one of them is only funny to geeks – whereas the other one is funny to just about anybody who enjoys blue comedy.  I didn’t realize it until Erika pointed it out.  She found (Ir)Responsibility absolutely hilarious because of the way the anger ramps up between the two guys and how it’s conveyed so well in just three panels.

The Gabriel Effect is good – but (Ir)Responsibility is amazing.

If you’re going to work blue, make a list of your competition.  Your competition is not just geeks with blogs – it’s anything with dark, obscene humor.  Can you entertain as well as The Bloggess, and her advice column, Ask The Bloggess, and her sex column on SexIs?  Are you sure?

Prove You’re Funny Before You Go Public

Write several blog entries but don’t publish them.  Print them out and hand them to people you know who really appreciate obscene, off-color humor.  Watch them as they read it.

If they don’t laugh out loud at least once per article, you’re not funny enough.

You’re not looking for quiet chuckles or polite snickers, but for loud belly laughs.  If they hand it back to you and say, “It’s pretty good,” they’re lying – just like you lie to the restaurant waiter when he asks how your burnt chicken tastes.  Politeness is the enemy of blue humor.


Starting a Data Warehouse PASS Virtual Chapter

#SQLPass
4 Comments

The Professional Association for SQL Server (PASS) has several sub-groups for specialized groups of people:

  • Application Developers – people who code applications that store data in SQL Server.
  • Auditing and Compliance – people who need to secure their SQL Servers and be compliant with regulations.
  • Business Intelligence – people who write reports, design cubes, and mine data.
  • Database Administrators – people who manage production database servers.

PASS is adding a new one for Data Warehousing: people who manage very large databases (VLDB’s) of a terabyte or larger.

What’s Different About Data Warehouses?

Managing a VLDB means taking a different approach to some common database administration tasks like backup & recovery, index defragmentation, partitioning, and storage design.

In each of SQL Server’s last releases, they’ve made huge improvements in how we manage VLDBs.  That’s awesome – but challenging, because the way we do things keeps changing.  At Southern Wine, we built a data warehouse only to turn around and start re-engineering it the very next quarter so that we could take advantage of the next SQL Server version’s features.  With every new version, we have to learn how to use new tools and we have to build best practices for it.

SQL Server 2008 R2 brings another wild round of changes that will improve the VLDB experience, but change it at the same time.  We’re going to have to figure out how to scale out effectively with Project Madison, how to design partitions and indexes for it, and figure out how to troubleshoot it.

Nobody wants to reinvent the wheel, so we’re starting a PASS Virtual Chapter so we can all learn and grow together.

A Virtual What?

Data warehouses aren’t as common as typical databases, and there’s less people managing very large databases.  They’re scattered all over the world, too.  A VLDB administrator in Chicago has more in common with another VLDB administrator in Dubai than with a regular SQL Server DBA in Chicago.  Even though the two Chicago guys are nearby and they love talking over deep-dish pizza, they can’t share backup and recovery strategies.

Meetings between VLDB administrators will most likely always be virtual: we’ll meet over LiveMeeting, Ustream, Skype, and other virtual technologies.  We’ll talk over Twitter.  I want to make it as easy and seamless for people to get this knowledge and training without making any meatspace travel arrangements.  The less time we spend commuting and moving around, the better.

PASS is rebranding the SIGs as Virtual Chapters.  You can be a member of both a physical chapter (like the Chicago chapter) and a virtual chapter (like the Data Warehouse chapter).  PASS won’t charge you any extra to join the virtual chapter – joining PASS is free.

Why PASS is Starting This Virtual Chapter

I’m not the world’s most qualified guy to talk about very large databases: I’ve only managed two, and I didn’t have much in the way of mentoring.  In fact, I struggled with it, and I learned a lot of lessons the hard way.

That’s exactly why I’m a big fan of the chapter: I don’t want anybody else to go through that hard-way learning either.  I know there’s better-qualified people out there than me, and that’s where you come in.  PASS needs a steering committee to help get the virtual chapter off the ground.  If you’re involved with managing databases of a terabyte or more, and you’d like to commit to four hours a week in meetings and correspondence, PASS would love your help.  If you know someone in that position, forward this on to them and ask if they’d like to help.

The work involved over the next couple of months will include:

  • Laying out the virtual chapter’s mission and goals
  • Setting a meeting schedule
  • Picking a few session topics and recruiting speakers
  • Deciding how to organize the virtual chapter’s web site
  • Working with Microsoft with what’s coming in Project Madison

If you’re interested in helping out, email Blythe Morrow.


How to Telecommute: Getting Things Done

4 Comments

No matter what your job description says, you are being paid to get things done.

Getting Things Done
Getting Things Done

Being a successful salaried information worker is different than it was a few years ago.  Constant connectivity, home offices and global workforces change everything.

You are never – NEVER – going to be “caught up.”

You are always going to have more work to do.  No matter how many things you accomplish today, there will be more things that other people will want you to accomplish.  If you ever get to the point where no one has any work for you to do, you’ll have things that you personally want to accomplish to further your career.

Telecommuting makes the situation even worse: if you’re doing it right, your home office is an inviting place where you love the work you’re doing. Who would want to stop to take a break, especially if the alternative is just sitting in the living room watching mindless TV?  Telecommuting can turn into a neverending work day.

Making telecommuting work requires two things.

First: Doing the Right Thing at the Right Time

We’ve established that you’re always going to be behind.  (Slacker.)  Because the pressure’s never going to let up for the rest of your career, you need to be completely comfortable with your manager getting up in your grill, yelling, “What are you working on right now?  How come you’re not working on ____?”

To answer that question, you have to have an easily accessible and totally bulletproof list of tasks, organized in order.  When my boss, Christian, asks me this question (and he does, regularly) I can open up my task list on RememberTheMilk.com and tell him the top three things in my priority list.  At that point, we can have an intelligent discussion based on the priorities of those tasks without me stuttering through things like, “Uh, I think somebody asked me for something, but I can’t remember what it was…”

The book Getting Things Done by David Allen explains how to build this task list, how to organize it, and why your email inbox is not a substitute for a task list.  If that book feels a little too executive-ish for you, check out Time Management for Systems Administrators by Thomas Limoncelli.  It’s got the same concepts, but tailored specifically for IT workers.

Wait: This Sounds Like Motivational Crap

Productivity books are a dime a dozen, and they’re worth even less than that.  The difference with GTD is hidden in the subtitle: “The Art of Stress-Free Productivity.”  I’ve tried other productivity tools, and they’re too focused on productivity and not focused enough on the whole reason we want to get things done.  I want to be productive so I can stop working and relax.  I want to be coolly comfortable with what I’m doing, not racing through it like a headless chicken, and that’s what GTD helps you achieve.

For office workers, this task list zen is somewhat optional: you can survive as a DBA without it.  For telecommuters, though, it’s mandatory.  Otherwise, your manager will keep cracking the whip over and over because there’s always another urgent project coming down the pike, and they’re going to need you to work another few hours.  When you’re in the office, they can visually see when you’re working too long and you’re getting burned out.  When you’re working from home, they have no idea that you haven’t taken a shower in days, that you’re duct taping your eyelids open and that your family hasn’t seen you for a week.

Second: Know When Time Is Up

You know how your company says they’re one big happy family, and they love you like a brother/son/daughter/mistress, and that they’re always looking out for your best interests?  I’ve got bad news: that’s a boilerplate letter that they copy/paste out of the Human Resources textbooks.  What, did you really think they’d say, “We don’t give a rat’s behind about you or your family” – of course not.

I’m not saying they’re lying – they might actually care – but I’m suggesting that you shouldn’t rely on them to tell you when you’re working too hard or starting to burn out.

I’m also not saying that you should become a clock watcher, patiently waiting for the 5pm dinner bell to close down the laptop and pop open the beer.  I’m suggesting that you keep track of roughly how many hours you spend:

  • Working on projects
  • Working on hobbies (when you’re an IT geek, sometimes it’s hard to tell the difference between these two)
  • Keeping your skills up to date
  • Doing the kinds of goof-off things you would have done in the office
Working on my Hobby in my Office
Working on my Hobby in my Office

Be comfortable with your time mix, and don’t hesitate to tell your boss, “No.”  Balance the need to be the best employee with your need to have a real life outside of work.  When your manager wants to throw more work on your plate, you have to be able to bring the conversation back to your bulletproof task list and your weekly status recap, then say the magic words:

“Which of these tasks do you want me to delay in order to do this new one?”

This is not a fun question to ask, and it doesn’t get easier over time – I had to do it just this week.  But it’s even less fun to face ugly questions from your spouse like, “Why haven’t we gone out to eat in a month?  Why haven’t we seen a movie yet this year?”  Managers (generally) understand this, too, and that’s why I usually mention Erika when I talk about my priorities, like this:

“This looks like a really cool project, and I’d love to do it.  I can’t do it this weekend, though – Erika’s gonna shoot me though if I spend another weekend working, and I’m already trying to figure out when I’m going to prep for that MCITP test you want me to take in my spare time.  Here’s my task list – which of these should I put off for a week or two?”

The only way you can do this with any credibility – without coming off like a whiner – is to have the task list and status recaps going out regularly.

This has a side benefit: when your boss is thinking about adding another employee, you can hand him your list of tasks and say, “Let’s highlight the ones that a second employee (like a junior DBA) would be able to take off my plate.”  As somebody who’s justified additional staff many a time, I can tell you this is priceless.  When you’re competing with other IT workers who also want more help, you look like a rock star when you can produce a list like this instantaneously, and it gives you more credibility.  Managers will say, “This person is on top of their tasks, and they’ll be the most likely to take advantage of the additional staff help instead of the bumbling bozo who has to go hunting through his email wondering what he’s supposed to do next.”

This Works at Home, Too

I use this same GTD technique at home with Erika.  I’ve got my personal task lists lined up with tons of things I want to do – planning vacations, fixing things around the house, which wines we want to try next, anything I want to do in my spare time.  As a result, when I punch out on the telecommuter clock, I can take a deep breath, open my task list, and know that what I’m about to do is the most important thing right now.

Sounds like a workaholic, right?  Just the opposite.  When I look at my task list and know exactly what I need to do next, then I find that I feel completely at peace with kicking back, opening a bottle of wine and enjoying a book or TV with Erika.  I know exactly what the opportunity cost is of avoiding my next to-do item, and I know whether or not it’s really urgent.  I know when I can relax, and when I need to get cracking.

Telecommuting Series Wrapup

I hope you’ve enjoyed my series on how to get a telecommuting job and be successful at it.  There’s a lot I didn’t cover, like:

  • How to set up a good home office
  • How to balance social networking with real working
  • How to tell from afar when your company or your team is in trouble

Telecommuting is harder than it looks.  Done right, it’s a rewarding work/life balance.  Done wrong, you’re going to get fired because they think you’re lazy.  Choose wisely.


How to Telecommute: Status Reports

5 Comments

Hold on, stay with me for a second.

I know what you’re thinking: the only thing more boring than status reports is reading a BLOG about status reports.

My Typical Blog Reader
My Typical Blog Reader

My weekly status reports are different.  They’re just a few short, simple lines in a Monday morning email like this:

Last week I:

  • Did task A
  • Did task B
  • Did task C

This week I plan to:

  • Do task D
  • Do task E
  • Do task F

The end.  Each task takes at least 4 hours, preferably a day or more.

Managers don’t expect to see 40 hours worth of work in three bullet points, but they do expect to see your highlight reel.  Every employee, not just telecommuters, has all kinds of small things that suck up productivity time.  Your status report needs to show successful forward momentum that proves you’re getting big things done every week.

How I Write It

When I sit down Monday morning, I pull my status email from last week and copy/paste it in to give me a jump start on what I’d planned to do.  I then go back through my calendar to see if anybody sucked me into a last-minute meeting, and I go back through my Sent Items folder in Outlook to see if I’d forgotten anything else I was working on.  As a telecommuter, hot projects tend to show up in your Sent Items because you interact so much over email.

I’ve worked with other people who started a new draft every Monday morning, and then entered their big tasks through the week in preparation for sending that email the following Monday.  That doesn’t work for me, but I applaud their dedication.

How to Handle Meetings and Recurring Tasks

In the section for the coming week, I don’t include recurring tasks or meetings.  When I was a DBA, I didn’t include lines for tasks like checking servers for failures or problems, making sure backups made it offsite, or taking support calls as they came in.  These things were assumed to be in my job every single week.

On the other hand, in the section for last week, I include anything that popped up out of the ordinary.  While I may have been expected to take any support calls that came in, I would note any calls that took more than 4 hours to resolve.  This kept my manager in the loop about support issues and surprises.

I did include recurring meetings, though, because I wanted my manager to understand how many meetings I got forced into.  It helped them realize when I was getting bottlenecked in terms of time.  I list all meetings in a single task.  Example: “Attend meetings on project A, project B.  Plan & host meeting on project C.”

When Managers Ask Questions

90% of the time, my manager never even replies.  Managers are overwhelmed just like the rest of us.

If they do reply and ask me why I’m doing something, or ask why something is more urgent than another task they want me to do, I take their feedback and start asking questions.  If they’re even the least bit nervous about my priorities or what I’m taking on, I want to make sure I make them completely comfortable.  I want to do what THEY want me to do, not what I think is important, so I talk to them about their concerns in a way that puts them in the driver’s seat.

As a DBA, sure, I wanted my servers to all match best practices.  I’d love to have spent weeks configuring my servers to be Just Right.  However, my manager might have wanted four new reporting queries, or to help me train the developers on how to write faster queries.  I can’t take that personally – I’m on their payroll to do the business tasks, not the Microsoft best-practices tasks.

One line I use over and over in discussions with my managers is, “I totally don’t care what I do next.  I’m going to be busy the rest of my career here.  You tell me what you want me to do next, and I’m on it.”  This complete comfort with an overwhelming to-do list, and a simultaneous complete control over that list, is a key part of David Allen’s Getting Things Done philosophy.  Tomorrow in the last post in the series, I’ll talk about why that book is central to my telecommuting work.

Next: Getting Things Done as a Telecommuter


Microsoft TechEd 2009 Keynote Liveblog

3 Comments

At today’s Microsoft TechEd 2009 conference in LA, Senior VP Bill Veghte started by talking about big-picture needs.  He discussed focusing Microsoft’s R&D on the ability to deliver anywhere access with end-user centricity: the ability for mobile users on laptops and PDAs to access applications securely and with IT control.

Office 2010 and SQL Server 2008 R2 Release Date for CTP

Technical previews of both products are coming this year.  The SQL Server 2008 R2 CTP will be coming in the second half of 2009.  (PASS Summit, hopefully?)  From the TechEd press release:

“Finally, Microsoft announced that a Community Technology Preview of Microsoft SQL Server 2008 R2 (formerly SQL Server code-named “Kilimanjaro”) will be available in the second half of 2009. SQL Server 2008 R2 will empower end users to make better decisions through self-service business intelligence, and help IT drive greater efficiency and reduce costs through new capabilities such as multi-server management and Master Data Services. In 2010, Microsoft will also introduce complex event processing for real-time insight into streaming information.”

The self-service BI stuff ties in with the Office 2010 release, and the technical preview for that will be available in July, but it’ll be a limited preview starting with the TechEd attendees.  More information is available at the Office 2010 Technical Preview site.

Windows 7 Notes and Improvements

He asked for as many people as possible to install and live with Windows 7 so that they can get telemetry: bug reports and device installation data.  The more data they get, the better the final release is.  They’re working on video drivers especially, which got a chuckle out of some of the attendees.  (In my humble opinion, video drivers are some of the buggiest things in an operating system, and it’s not Microsoft’s fault there.)

Microsoft worked with Intel on two things in Windows 7: power management (in core management and Nehalem) and hyperthreading scheduling.  The latter is starting to matter with Apple’s focus in Snow Leopard: Apple’s delivering something called Grand Central to ease multithreaded software development.  It’s nice that Microsoft is trying to compete on that.

Veghte said he was surprised that he didn’t get more feedback on Internet Explorer v7 and v8, especially around security.  I’ll break the insightful answer right here on BrentOzar.com first for my readers: it’s because we’re using Firefox and Chrome. <rimshot>

Windows Server 2008 R2 Improvements

Windows 2008 R2 brings tools with VDI, local printer support, PowerShell, etc to make it easier to manage lots of desktops and remote offices.  60-70% of the “run rate” has become portable machines, which makes management tougher.  The Windows Server 2008 R2 RC is available now.  One of the new key features is BranchCache, which caches file server content at branch offices to speed access for branch office users.

Vighte demoed BitLocker to Go, which encrypts USB flash drives.  Mark Russinovich then came onstage and showed a little about policy management (GPO) that can enforce the requirement of BitLocker so users can’t just plug in drives and use bad passwords.

Russinovich also introduced AppLocker, an improved version of SRM, and neither of these terms mean anything to me.  He pointed out a bug in the application and said that even though the app on his screen said Sysinternals, he clearly didn’t write it because it had a bug – and his software never has bugs. Ha! Nice.

He demoed Problem Steps Recorder, a troubleshooting tool that end users can use to record a mini-screencast of problems.  When they’re experiencing a problem, they start the tool, which captures a series of screenshots of each thing they click on.  It produces a chtml file with all of the screenshots embedded, making it easy to email that file over to tech support.

Windows will be able to access and create VHDs (virtual hard drives) very similar to disks.  In Disk Manager, you can create a new VHD, partition it and format it just like a hard drive, and it uses thin provisioning.  Users can create a 10gb VHD, but it won’t immediately start at 10gb – it just uses the necessary space to accommodate the files contained inside.  Windows will also be able to boot into a VHD by editing the boot configuration file: users can download a new VHD to test a new operating system, for example, and then reboot straight into it.

PowerShell v2 will be able to script Group Policy.

Application Compatibility and Virtualization

Microsoft Enterprise Desktop Virtualization (MED-V) was demoed by Russinovich as a way for enterprises to continue to deploy and manage their older applications that aren’t Windows 7 compatible.  In addition, enterprises can specify specific URLs that will launch in older browsers via virtualization: if you have an old intranet web app that only works in IE6 or IE7, your users won’t have to know the difference.  The right browser will launch based on the site they visit.

He showed Application Virtualization (APP-V) as another piece in the lost-laptop puzzle: the way IT employees can rapidly redeploy laptops to users. Roaming profiles handles the storage of settings, folder redirection handles document storage, and APP-V handles the fast provision of applications on the fly.  All of this relies on extremely fast bandwidth, though: you can’t simply drop-ship a new laptop to someone in a remote office and expect them to pull their profile, folders and APP-V apps over the wire.  For in-office workers, it’s great though.

Windows 7 Release Date: “Before the Holiday”

Windows 7 Release Party
Windows 7 Release Party

Veghte came back onstage to talk more about application compatibility with Windows Vista applications, and emphasized that developers need to test their Vista apps to make sure they’ll work with the final release of Windows 7 since it’s coming fast.  He didn’t mention Windows XP applications, which rather surprised me until I realized Windows 7 Professional will come with a virtual XP – but not a virtual Vista.

He said that the release candidate work went on schedule, and it looks like it’s tracking for a wide availability before the holiday.  “The Holiday.”  No name, just “The Holiday.”  How politically correct. We know he means Hanukkah, though.

Windows Server 2008 R2

Iain McDonald, GM of Windows Server, came onstage to jokingly announce that TechEd 2009 is the coming-out party for Windows Server 2008 R2 because Windows 7 has hogged the spotlight too long.  Windows 2008 R2 is also on track for a holiday delivery, and that there won’t be a workload it can’t handle.

Several factors combine to make this release interesting for shops with a large number of servers: the ability to boot from VHD, the ability to run .NET apps on Windows Core, and PowerShell.  Between these, you could conceivably copy VHDs out to all servers in a farm, tweak their boot config files to update to the new VHD file, and reboot them.  If I managed web farms or application server farms, this would get me really excited, and down the road if SQL Server scales out, this has good implications for better server management too.

A new File Classification Infrastructure will let administrators set extended properties on files, like confidentiality.  For example, if a file is marked confidential, it will be moved to a specific area on a file server, a symlink will be left in its place, and the document will be handled the way the sysadmins want.  Even if the file isn’t marked confidential, Windows Server 2008 R2 will include OCR capabilities to recognize terms like “Microsoft Confidential” in scanned documents, and automatically add the appropriate metadata tags.

Exchange 2010

Iain called Exchange one of the most deployed applications in the world, and talked about wanting to deploy it similarly whether it was deployed locally or in the cloud. The goals for Exchange 2010 were making it:

  • Great at dealing with information overload
  • More reliable and easier to manage
  • Protecting data better for compliance needs

He demonstrated sending a piece of email from a member of the legal team to an executive – or rather, tried to, and he got two straight failures.  Whoops.  If the document had key phrases, it would recognize that the email should be confidential and would be marked as such.

Outlook Web Access in Exchange 2010 will work “beautifully” in other browsers (only Firefox and Safari were mentioned, not Chrome).

System Center Virtual Machine Manager

SCVMM’s aim is to manage both physical and virtual servers, and manage virtual servers no matter whose platform it is (Hyper-V, Xen, VMware, etc).  His demo showed a server with a high level of CPU utilization, and he migrated it to another node (host) the same way as VMware vMotion.

Interestingly, like SQL Server has done since 2005, SCVMM also has a Script button that will show the script that will be executed behind the scenes to accomplish the task.  This feature in SSMS 2005 was a boon for DBAs because it encouraged them to learn T-SQL scripts by example, and this might do the same thing for PowerShell users.

Summary Wrapup: A Good Time for DBAs to Attend Remotely

Why Yes, Those Are Yoga Books
Why Yes, Those Are Yoga Books

I’ve never attended TechEd in person, and this year’s economic climate meant that I was really happy Microsoft did such a good job of webcasting the keynote.  I was able to watch it, research in realtime, and liveblog it from the comfort of a quiet Barnes & Noble with my headphones on.

There wasn’t much news for the SQL Server community in the keynote.  The “accidental DBA” community – developers and sysadmins who spend most of their time managing applications or servers – got more out of TechEd than DBAs did.  The timing of SQL Server 2008 R2’s CTP date means that the PASS Summit will probably get the meat of the SQL Server news.

My take: this schedule makes attending the 2009 PASS Summit even more attractive for database administrators.  We’ll likely be getting our first good looks at SQL Server 2008 R2 at the summit, and since it’s in Seattle again this year, we’ll be able to talk to more Microsoft people about the release.

And now, if you’ll excuse me, it looks like those yoga books are 30% off.


Hackintosh Fail

9 Comments

Over the last couple of weeks, I’ve been trying to build a cheap, fast and reliable Hackintosh: a home-built desktop capable of running Apple Mac OSX.

You can read the story over at the Houston Chronicle’s TechBlog, where Dwight Silverman let me post as a guest blogger.  It also got picked up on Digg, MacSurfer and CrunchGear.

Some of the FAQ’s in the comments include:

“Why didn’t you just buy an iMac and plug an extra monitor into it?”  Because I already have a 28″ monitor and two 22″ monitors.  I couldn’t hook up all three to an iMac, I didn’t want to throw away hardware, and I didn’t want to rebuy a monitor I already had.  Plus the iMac only has a single internal hard drive, and I wanted more IO speed.

“You don’t really need more IO speed.” Yes, I do, actually.  I’m a former SAN & SQL Server administrator, and I do testing with data warehouse-size databases of a terabyte or more.  The faster I can back up and restore those databases, the faster I can get my work done.  To give you some indication, my other machine is a Dell PowerEdge 1900 with six drives in a RAID 10 array.  This issue came up several times in the comments, which always infuriates me with the intertubez: people love to tell you what you don’t need.

“Why not plug a bunch of FireWire drives into an iMac?” Because an iMac only has one FireWire 800 port, and I’d be daisy chaining things together like crazy and bottlenecking my bandwidth.  Plus a bunch of FireWire drive enclosures are ugly and expensive.

“Why not buy an iMac and a Drobo?” Were you even listening about the cheap part?  The smallest 24″ iMac is $1,500 and the cheapest 4-bay Drobo is $500. At that point, I’m within spitting distance of a Mac Pro, which takes more memory, more CPUs and has 4 internal drive bays.

“I installed OSX on my Dell Mini 9 netbook and it works great.” Yep, you nailed the cheap part.  Now about the fast part…


How to Telecommute: Staying Motivated

5 Comments

Once you’ve gotten a telecommuting job like I explained yesterday, it can be tough to stay motivated and get things done.  There’s so many temptations.  Today, I’ll talk about some of the ways I stay focused and productive.

Set Your Working Hours by Your Body Clock

8am to 5pm probably isn’t your natural peak time.  Telecommuters need to be available during a set range of hours, but that doesn’t necessarily mean that’s when they should be working.

To find out when your peak mental hours are, start a simple spreadsheet and record how “work-friendly” you feel every hour. Across the top, make four columns:

  • Date/Time
  • Alert
  • Happy
  • Creative

Ugh, sounds all shiny-happy-positive, right?  Not so much.  Set yourself an egg timer alarm for 60 minutes.  Every hour, write down the date/time and on a 1-10 scale, how alert, happy and sociable you feel.  Do this all day long, every day for a week.  After a week of monitoring, you’ll discover that your body really does have some natural rhythms.  Don’t fight them: set your working hours to align with your body clock.

Up and At Em
Up and At Em

My personal schedule:

  • 6am-11am – I’m very alert, very happy and very creative.  I wanna crank out work like writing whitepapers, recording videos or building things.
  • 11am-3pm – I’m a zombie.  I’m not alert, and I feel meh.  I use this time to do mindless work like filing paperwork, doing expense reports, planning trips, etc.  If I don’t have mindless work-related stuff to do, I’ll take a break from work and do mindless things around the house like laundry or dishes.  I don’t try to learn anything new during this time window, because it’s generally time wasted.
  • 3pm-6pm – I’m back on the alert track, but not creative.  It’s a good time for me to work on detail-oriented stuff.

At first glance at my email times or tweets, people might think I work from 6am to 6pm, but I’m only working 8 hours a day.  Most importantly, it’s the 8 hours a day where I’m more effective at actually working.

Not every job has the flexibility to pick what to work on next, but knowing your body clock helps you schedule tasks through the day.  When I telecommuted as a production DBA, I would build new scripts or do troubleshooting in the mornings when I was most focused, and save the paperwork and meetings for later in the afternoon.

Separate Yourself From Your Family

After years of telecommuting, this is still the toughest one for me.  My friends and family don’t quite understand that I’m working during the day, and that I can’t break out and play hooky whenever the urge strikes me.  So far, here’s what I’ve done to stay focused:

  • Have a separate home office with a door and a stereo – if you can hear your family, you’re going to have a tough time.  Even just hearing Erika and Ernie play downstairs is enough to take me off my game.
  • If you have a phone in the office, turn off the ringer – friends and family will call you during the workday and you’ll be tempted to answer.  I have my phone behind my monitor with the ringer off.  Erika knows that if she really needs me, she can email me, and I can integrate that into my workflow better.
  • Get family to schedule things ahead of time – there’s nothing wrong with blowing off work for a few hours and running errands or taking care of something home-related.  It’s better, though, if you can get your family to schedule those in advance.  If I know ahead of time that I need to take the dog to the groomer, then I can schedule my workday around it.  On the other hand, if I get a last-minute knock on the door asking if I can do it, then I’m probably going to get frustrated.
  • Communicate schedules ahead of time – every now and then, Erika wants to cook me something special for lunch, but she doesn’t want it to hang around getting cold while I sit through a conference call.  In the morning, I talk to her about what I’ve got going on today and tomorrow, so that way she knows when she can surprise me versus when I’ll be eating something out of the microwave.

Buy a DVR and Watch TV During Downtime

I love my Tivo, but any DVR works: just set it up to record your favorite shows.  At lunchtime, step away from the desk and go watch an hour-long TV show start to finish.  When you fast forward past the commercials, it’s not a full hour, which gives you enough time to prep lunch and then sit and relax.  It takes your mind off work for a while.

If you can’t bear to tear yourself away from the computer at lunch, at least set your instant messenger status to Lunchtime and spend the time surfing the web or catching up on personal emails.

If You’re On a Roll, Keep Doing the Same Thing

Sometimes I’ll write a blog post or design a stored procedure because I have an impending deadline that I have to meet.  When I finish that particular piece of work, I’ll find that I’m “in the zone” for that kind of task – I feel like writing more blogs or coding more T-SQL.  If I’m in the right frame of mind, I’ll just keep going with that style of task regardless of what’s on my to-do list for the week.

Like right now – I just finished up a completely unrelated blog post that I had to do right away for an upcoming event, and I found myself editing & scheduling several other pending blog posts I’d been working on.  By doing these things ahead of time when I’m in the zone, I do better work on that style of task.

That might sound irrelevant to you since you’re probably not blogging for a livin’, but the same rule applies to you.  When I was a DBA and I found myself happy to be troubleshooting a slow query, I’d go hit the DMV’s to find other slow queries on other servers.  When you’re thinking like a performance tuner, you don’t want to stop after just one query – go knock out more.  Avoiding context switching: it’s not just for servers anymore.

In order to get this flexibility of scheduling, you have to make sure your boss doesn’t micromanage you.  Next, I’ll talk about the key to making your manager comfortable.

Next in the Series: How to Write a Telecommuting Status Report


How to Build a Silent PC

3 Comments

My computer has to be nearly silent because I use it to record video podcasts about SQL Server. I can’t have a big whirring fan noise in the background while I’m recording.  Normally I use a Macbook Pro, which is completely silent, but as part of my Hackintosh experiment I tried to build a silent PC.

I didn’t want to sacrifice speed in the name of silence: no mini-ITX, underpowered computer for me.  I used a Core 2 Duo 3GHz dual-core CPU, 8gb of memory, and five SATA drives (four in a RAID 10, one for backups).

Picking the Best Quiet PC Parts

Dell Optiplex 755 and Antec Mini P180
Dell Optiplex 755 and Antec Mini P180

I chose an Antec Mini P180 case (AntecNeweggReview) because:

  • It handles five 3.5″ internal drives (I plan on doing a big RAID)
  • The 7200 RPM drives are going to need some silencing
  • It’s kitted out for silence – rubber grommets for drives, quiet low-RPM fans, 3-ply sidewalls, etc
  • I knew I’d be taking pictures of it for my web site (and thus, expensing the project. Woohoo, business tax deductions!)
  • It’s a little smaller than typical noise-reducing cases
  • Because I like nice stuff. Seriously, is that so wrong? This whole project cost me under $800 out of pocket. Who cares if I splurged $200 on a case and power supply? If I wanted an ugly computer I’d go buy one.

In the picture here, the Antec still has a plastic sheet covering its smooth charcoal exterior.  No, I’m not that annoying relative who leaves plastic covers on their furniture: I did take the plastic off once I’d gotten everything set up.

For power, I picked up an Antec BP550 (AntecNewegg) because, uh, well, it was the Newegg deal of the day for almost half off.  It wasn’t my first choice, but it looked pretty quiet.  It’s no longer on sale, so if you’re going to choose from scratch, check out Anandtech’s reviews of 300w-450w power supplies and 500w-550w power supplies.  They do a good job of evaluating power supplies by noise and efficiency.

To cool the CPU, I was originally just going to use the stock heatsink/fan that comes with the Intel CPU.  The stock heatsink/fan combo is currently on FrostyTech’s Top 10 Heatsinks list in the low-noise category.  However, I’m one of the clumsiest people on the earth, and in the process of installing the CPU fan, the crappy pushpin mounting system broke on me.  I get the feeling the pushpin mounting system was designed by an accountant to save costs.  No engineer in his right mind would design this setup.  Nobody had a set of replacement pins in stock locally, so as long as I was placing an order anyway….

I got the Xigmatek HDT-S1283 (XigmatekNeweggReview) because it struck the best balance between several factors:

  • Good cooling – reviews show that it does a great job of shedding heat on overclocked CPUs. I’m not going to overclock (although I will do it briefly to see how it performs.)
  • Low noise – because the heatsink alone cools well, it doesn’t require a fast fan.
  • Tight space – some CPU heatsinks out there are absolutely massive. Check out a picture of FrostyTech’s #1 rated low-noise heatsink.
  • Low price – it’s under $40.  If you’re like me, that sounds like a heck of a lot of money for a heatsink and fan, but in the overclocking world, this is still pretty cheap.

I also paid a little extra for a screw-in mounting kit instead of the crappy pushpins.  Be aware that a screw-in mounting kit, while more secure for big heavy heat sinks, bolts onto both sides of the motherboard.  If your motherboard is already in your PC case, you’ll need to remove it completely in order to use a screw-in heatsink mounting kit.

Another wise investment might be replacing the Xigmatek’s included fan with a quieter one, but Antec threw in an extra 120mm quiet fan for my case, so I used that one.  (They don’t include an extra fan with all cases.)

Silicone Grommet Drive Mount
Silicone Grommet Drive Mount

Putting the Parts Together

The hard drives are fastened in with screws and nifty silicone grommets that isolate vibration as shown here.  The drive (A) floats on top of a silicone grommet.  The grommet itself (B) is a little rubbery sponge, and it’s held in suspension with an extended screw (C).  Antec includes specific instructions warning the user not to overtighten the screws, because that would negate the advantage of the silicone grommets.

I might be easy to please, but I was tickled pink with this approach.  When I turned on the system for the first time, I could definitely tell that the drives were quieter than with a conventional case.

Power Supply Chamber
Power Supply Chamber

The power supply has a separate chamber at the bottom of the case as shown here.  Theoretically, the power supply will draw in its own fresh air from the bottom of the case, where Antec designed a vent covered with a washable filter.  The power supply’s hot exhaust air is sent out of the back of the case, and all of its heat is kept away from the rest of the heat-sensitive gear by a metal wall.  Cables can be routed up from the power supply chamber through a sliding window, or through the back side of the case under the motherboard.

The CPU, drives and memory generate their own heat, and Antec handles that with a ginormous 240mm fan at the top of the case and a 120mm fan at the back.  These fans draw fresh air from the front of the case, through the hard drives, and out the top & back of the case.  The fans are huge, but they’re designed to spin slowly, thereby moving a lot of air without making a lot of noise and vibration.

This design works well in combination with the Xigmatek HDT-S1283 CPU heatsink: the Xigmatek ends up aligned with the exhaust fan.  I bet I could run without a fan on the Xigmatek at all.

All of this airflow design only works if the airflow isn’t blocked by a mess of cables, so the Antec Mini P180 is designed so that cables are routed through the back side of the case, underneath the motherboard.  This area is just deep enough to handle plastic cables like SATA power plugs, but not much more than that.  I had to wiggle and squish the cables flat in order to get the doors closed.  If you plan on frequently changing motherboards, this is not the case for you.

Close Call - Memory Hits the Hard Drive
Close Call - Memory Hits the Hard Drive

The Antec Mini P180 is a little smaller than conventional noise-reducing cases, so some of my buying decisions came back to haunt me.  For example, the GeIL memory sticks have built-in heat sinks and they’re taller than conventional memory sticks.  They came perilously close to my hard drives, close enough that I had to reroute the SATA and power cables to get it all to fit.  If I were to do the whole thing over again, I might have gone with a full-sized Antec P182 (AntecReview) to get more wiggle room.

The End Result: A Quiet (not Silent) PC

When I first turned the PC on, I breathed a sigh of relief. I could still hear the fans barely whirring, but when I put the case under my desk, the noise was almost inaudible.  The power supply, even though it wasn’t marketed as a quiet model, was still more than good enough.

The Xigmatek’s stock fan was the loudest part of my setup, and I would recommend replacing it with a quieter 120mm fan like I did.

While installing Windows, despite four SATA drives busily scratching away in a RAID 10 config, I could only hear occasional noises – not the loud, steady mechanical seek noises I heard from them in another desktop.  The combination of the noise isolating grommets and closed case doors really made a difference.  Even with the case doors open, the noise was completely tolerable.

Bottom line: the case, power supply, and CPU heatsink made my fast PC almost as quiet as my relatively slow Macbook Pro.  Now if only it ran OSX….

You can view more pictures of my quiet PC on Flickr.


How to Telecommute: Getting the Job

Professional Development
13 Comments

I’ve been working from home off and on since around 2000 for a few different companies.  I’ve been lucky: it’s worked really well for me, but I’ve seen several cases where it didn’t work so well for others, and they lost their jobs.  This week, I’m running a series of posts about the ups and downs of telecommuting.

I was actually working when I took this picture.
I was actually working when I took this picture.

I’m kicking the series off today by talking about how to get a telecommuting job in the first place.

Find Big Companies in Expensive Places

Companies like paying people less.

This can be a selling point for telecommuters, but only if you’re living somewhere cheap and you’re working for a company in an expensive location.  Right now, I’m working for a company in Southern California, but I’m certainly not paying Southern California rates for housing.  I bet they’re paying me less than people several years my junior, and it’s a win-win for both of us.

When you’re looking for telecommuting jobs, focus on companies in cities with a very high cost of living (California, Miami, New York City).  Big companies offer better opportunities because you’re probably not their first telecommuter – they’ve already had to hire an offsite/offshore consultant in order to satisfy some niche skill requirement.

Have a Very Hard-to-Get Skill

The most important key to making telecommuting work is the good old law of supply and demand: if you want to work from home, you have to have a seriously desirable skill.  If an employer has the choice between someone who’s willing to come into the office every day versus someone who wants to work from home, they’re going to take the cube rube almost every time.

Junior DBAs aren’t going to be able to telecommute.  You can’t say, “Hire me, and I’ll pick up the skills you want.”  It won’t fly.  You have to be able to demonstrate a complete mastery of the skills that the company needs, and you have to be able to convince everybody in the shop – not just the manager – that your skills will save their bacon.

Trust me - hard at work.
Prime layoff candidate.

Build Trust with your Future Coworkers

The best telecommuters start as in-office workers, establish a trust with their coworkers, and then move offsite.  That way, the in-office coworkers know that the telecommuter is really a valued resource, does good work, and doesn’t sit around all day drinking beer and watching Oprah.  Or Nascar.  Or whatever.

When someone starts as a remote worker without being in the office first, the onus is on the telecommuter to prove that they’re really working.  This starts in the very first interview: you need to go out of your way to meet your coworkers, talk to them, and strike up a personal bond as fast as possible.  You are selling yourself to them.

Why is this important?  Because when you’re not in the office and they need a scapegoat for the code that doesn’t work, the database that wasn’t backed up, or the project that failed, they’re going to pick the telecommuting person by default.  It’s easy to blame the guy who isn’t there to stand up for himself.  The same thing happens when they’re picking who to lay off.  It’s up to you to prevent that from the very beginning.

Be the Best Employee, Period

Being just as reachable and just as timely as the in-person employees isn’t enough: you have to go above and beyond them.  When you start telecommuting, managers will be watching you like a hawk to see if you show up to work on time, put in enough hours, and are available as often as other employees.

You have to code faster, manage your time better, and help people more than everybody else.  Furthermore, you have to do it in a way that’s easy to see.  I’m a morning person, and I used to make it a point to do emails as soon as I started work in the morning.  People would see the timestamps on my emails and say things like, “Wow, you started work at 3am this morning?”  Bosses hear these things secondhand, and that gives them a chance to brag about their hard-working telecommuter.

Your ultimate goal is to get your coworkers (and especially managers) to say, “You respond faster to emails and instant messages than the people who work just down the hall from me in the office!”

This sounds like hard work, and it is.  In the next post, I’ll talk about how to stay motivated despite the very hard work.

Next: How Telecommuters Stay Motivated


Upgraded My Web Host

12 Comments

The good news: I’ve been getting a lot of web visitors lately.

The bad news: I’ve been getting a lot of web visitors lately.  The last dot is April (the down-slope is May, Google’s graph labels are goofy.)

Up Up and Away!
Visitors - Up Up and Away!

I don’t write my stuff in order to get hits.  I’ve always taken a simple approach to what I write: if I’ve got a problem, and I can’t find the solution quickly online, then I document my solution on my site.  Sometimes it’s about SQL Server, sometimes it’s about Twitter, and soon I’ll have a big post on how to build a Hackintosh.  The thing is, when you write something useful, other people do come visit, and it really starts to build up steam.

How I Started: A Shared Web Host

For years, I’ve relied on a shared web host plan from HostGator and been very happy with it.  For about $25/mo, you get 24gb of drive space and 250mb of bandwidth.  In April, I used around 3gb of disk space and 25gb of bandwidth to serve about 50k visitors.

However, as a SQL Server DBA, I can tell you that storage space and bandwidth have nothing to do with performance.

You can serve static HTML files all day long from a cheap shared web host, but when you introduce applications like WordPress, MySQL and 3rd party plugin applications, suddenly you’re talking about CPU and memory capacity issues.

The first workaround is to use caching: if your web site isn’t changing that fast (like if people aren’t leaving comments like crazy) then it makes sense to cache as much as possible.  Serve pages out of memory instead of rebuilding them every time, and you’ll cut down on the number of requests sent back to the database.  For WordPress bloggers, that’s as simple as using the plugin WP-Super-Cache: just install and enable it, and it automatically serves cached pages to your visitors.

Caching Isn’t That Easy

I lied: caching isn’t as easy as installing a plugin.  Oh, sure, that’s what the sysadmins will tell you, but it only works if all of your other plugins work correctly with WP-Super-Cache.  How can you tell?  Well, uh, you can’t.  The first problem I ran into was that the MobilePress plugin (which makes your site look better on iPhones and Blackberries) doesn’t always work correctly if WP-Super-Cache is enabled.  I decided to abandon mobile support in favor of caching, because I didn’t want my site to fall over when I got linked by someone famous.

Later, I played around with plugins to display ads on my blog if the visitor was coming from a search engine.  Statistics show that visitors from Google stumble in looking for a particular solution, and they’re more likely than other users to click ads.  Bloggers should avoid showing ads to their regular readers, because those folks aren’t tempted to click ads.  I dabbled with running ads on my old posts, and I ended up making around $100/month.  However, when I ran ads, the caching didn’t work correctly: they would cache the ad status based on the first visitor to the page.  If that visitor was eligible to get ads, then everybody who saw the cached page also saw ads.  I could disable caching, and then everybody got the right content, but then I was running a risk of putting too much load on my web site again.  That time, I decided to abandon ads in favor of caching.

This past Sunday I redesigned BrentOzar.com, and in the process, I temporarily disabled caching so that I could test my changes in several browsers & OS’s in rapid fire.  Sundays are usually low-traffic days, so I wasn’t too worried about load.  Erika and I drove over to my parents’ house to say goodbye before they embarked on a road trip, and when I came back home, my web site was down.

When Sysadmins Attack

Sherri Shepherd, co-host of The View, had Tweeted a link to my Twitter tips.  (Side note – after chatting with her for a while, I can see why she’s a host – she’s one of those people you just naturally want to open up to.)  She had about 68,000 followers at the time, and enough of them clicked on the link to make my web host notice.  HostGator’s sysadmins shut my site down for using too much CPU/memory, but they didn’t call me to tell me that.  Instead, they simply changed permissions on one of the PHP pages on my site so that WordPress wouldn’t work.  I had no idea my account had been shut down, so I started troubleshooting the site.

I found the permissions problem, contacted HostGator, and things went rapidly downhill from there.  I’m not going to go into details here because it’s not going to fix the problem, but I’ll give one particular lowlight: I was told by an engineer that I would need to call back later after the security team was done with their current stuff.  I wasn’t allowed to hold – I had to call back later when it might be a better time for them.  Riiight.

Douglas Hanna, the Customer Service Manager for HostGator, followed up with me the next day:

“I really can’t apologize enough for what seems like you serving as a example of Murphy’s Law at HostGator. Issues like this are difficult to deal with in the first place and I completely understand your frustration when we don’t deal with the issues properly on our end.”

Douglas and I had a long and constructive email thread about the problems I encountered, and he’s already started taking actions to make sure they don’t happen again.  At that point, though, I’d already moved my main site onto another hosting provider (MediaTemple) temporarily while I research the best dedicated hosting provider for my needs.

When You Should Upgrade Your Hosting Plan

In the process of researching hosting plans, I ran across a good summary of WordPress loads by David Seah:

  • 500 pageviews a day will be your first sign of strain if you’re using one of the el-cheapo $5/mo “unlimited” hosting plans.  You’ll need to look at caching or reducing your WordPress plugin use.
  • 1,500-2,000 pageviews a day will be your next wall with reseller web hosting plans.  You have to start paying attention to image sizes, plugins that load a lot of external files, comment spam, reliance on other web sites, and so on.
  • 3,000-5,000 pageviews a day starts to run into problems on shared server plans like my $25/mo plan at HostGator.  At this point you have to be really careful with your configuration, or consider moving to a private virtual server.

I’ve been doing around 3-4k pageviews on weekdays, but on peaks when I get links like Sherri’s, I hit 8-10k pageviews per day.  Even though I could probably hunker down, do some serious tweaking, and make it work on HostGator, it was time to kick it up a notch.  A dedicated virtual server would give me the power I need to run ads for Google visitors again, and that would pay for itself.

Even with moving to my own server, though, I still couldn’t ensure that the site wouldn’t fall over if Sherri tells Barbara Walters about it, so I’m taking another step too.

Caching Images on Amazon S3

Images take a lot of time to download relative to the text of a web page.  Even my fairly minimal web site had a lot of small images after my redesign.  To see how images impact page load time, get the free Firefox extension Firebug.  It shows a complete breakdown of all the factors involved with a page load.  The most obvious example is the large picture across the top of the site, which shows several of my portraits by TheFuzzball.  That image is roughly 70kb, and when hosted on my web server, it took over a second to download.

Instead of hosting that image on my web server, I copied it to Amazon S3, a cloud-based file storage service that can also act as a web server for static files.  I’ve talked about S3 here before, like when I started selling Twitter t-shirts with a site hosted on Amazon S3.  (Latest tally on that project: in the black by $50.)  The domain name i.brentozar.com points to an Amazon S3 storage bucket.  I changed the web template to pull the header image from S3, and now the download takes around 300ms instead of 1200ms.  Still not blazing fast, but better than 1 second, and furthermore, it takes more load off my web server in the event that I get a ton of sudden traffic.

This same technique can be used for images embedded in posts, too.  The TanTan Amazon S3 plugin for WordPress seamlessly swaps out the WordPress upload code behind the scenes so that when you upload pictures for your posts, they’re automatically stored in Amazon S3 instead.  Unfortunately, there’s not a quick way to migrate all of the pre-existing post images over to S3, but on the plus side, they still work fine on the local web server.  They just don’t take advantage of the Amazon S3 speed boost.  This weekend I’ll go through my high-volume posts (like the Twitter ones) and moving the images over to S3 manually, but I’ll leave the rest of the older ones on the local server for now.

Every Image Counts – and Costs

Social Homes Plugin
Social Homes Plugin

Every little image counts, though.  I recently added the WordPress plugin Social Homes, which shows little icons for all of your social networks.  Visitors can click on those links to jump to your profile on other web sites.  I loved the way it looked, but it had a horrendous impact on my page load times.  Other sites aren’t using the fastest web servers around, and they took quite a while to deliver the favicon files involved.

Here’s a screenshot of FireBug when loading my site, and notice all the favicon.ico files loaded from all over the web.

Loading Favicons From Everywhere
Loading Favicons From Everywhere

This didn’t make my web server perform poorly – after all, the images were already hosted on the other web sites – but it made my page load slowly.  Even worse, if one of the social networking sites was down (which happens more than you’d think) then the “Loading” stage would last forever on my web site.  To the visitors, it seemed like the page was loading slow, and that sucks.

The first thing I did was copy all of those favicon.ico files to Amazon S3 so I could cache them all myself.

Next, I copied the HTML produced by Social Homes, and used a text editor to replace the image names so that they pointed to my own site:

Old: <img src=”http://www.facebook.com/favicon.ico”…

New: <img src=”https://www.brentozar.com/favicon-facebook.ico” …

Then I removed the Social Homes widget and replaced it with a plain text widget with my copy/pasted HTML.  Presto, faster page load times.

There’s a cost to this: I pay for bandwidth used at S3 as well as $.01 per 10,000 “get” requests.  If you sit here hitting refresh on my web page, you can run me out of pocket change.  On the plus side, though, my web site stays fast and stays up even if Ashton Kutcher name-drops me.

I’m ready.  Coming soon: how to build your own Hackintosh Pro.


How to Get a Junior DBA Job – Part 3

In the final part of my three-part series on how to get a junior DBA job (Part 1), it’s time to talk about mentoring and training, and how they affect your salary.

Ask About Mentoring and Training

During the interview, ask how many other database administrators are on the team and what their seniority levels are. These are the people you’ll be learning from – your future mentors. If you’re joining a team of three people who’ve been DBAs since SQL Server 7.0, you’re in good hands. If there’s one other person who was a developer until about a year ago, things are going to be tougher because he’ll have less time to mentor you and less skills to pass on. If there’s no other DBAs at all, you’re screwed – you’re going to learn things the hard way.

Training - You're Doing It Wrong
Training – You’re Doing It Wrong

You should be willing to take a lower salary if you find a company with a strong, friendly group of DBAs and a management team that’s committed to ongoing training.  Consider it an investment in your career.  Finding out how committed they are is simple: have you seen their DBAs at the local user group meeting?  If so, then they’re interested in furthering their career and helping out with the careers of others.  If you’ve never seen their DBAs at a local PASS Chapter meeting, then their lack of interest in the community might predict a lack of interest in training you, too.

What’s that, you say?  You haven’t been to a local PASS meeting yet?  Then maybe YOU aren’t too interested in your own training, either.  This is why the PASS chapter question is one of my Top 10 Interview Questions to Ask Senior DBAs.  Plus, the more often you go to PASS meetings, the more the other database administrators will see you there, and if they recognize you during your interview meeting, that’s bonus points.  Imagine the post-interview conversation after you leave: “I remember seeing that guy at the SQL Server user group chapter.  I don’t remember the other candidates, come to think of it.”  Cha-ching!

Asking about the company’s training budget during the interview is a tougher one: it’s hard to ask this question without making it sound greedy. This one is a judgement call. There’s only one case where the training costs are considered a built-in part of your hiring, and that’s if you go to work for a consulting company.

Going to Work as a DBA-in-Training

Some consulting companies will take you on at a lower pay rate in exchange for teaching you DBA skills while you’re on the job. They have a large talent pool to draw from (compared to individual companies) and they can put you onsite with a senior person. The consulting company makes money off you, because they’re paying you a far lower rate than they’re billing the client. You get to learn from the senior person, and you take over as many tasks from them as possible.

The consulting company may require you to sign a contract stating you’ll work for them for a certain amount of time, and if you leave any earlier, you’ll be responsible for paying training costs. I have really, really bad vibes about this setup, because you’re basically becoming an indentured servant. The consulting company can treat you like dirt, and here’s the funniest part to me: they don’t really care whether you get trained or not. They’re making money off you every single day that you show up for work.

If you take this approach, here’s a few things to keep in mind:

  • Don’t sign an agreement – frankly, every job involves learning on the job, and the company is making money off you every day anyway. I would love to get the chance to ask one of these interviewers, “So, did you learn anything on the job this month? Did you have to pay anybody for that privilege?”
  • Get the training costs prorated – if you have to sign a two-year agreement and you quit after one year, then you should only be responsible for 50% of the training costs. If they tell you that the bulk of the training occurs in the first year, then get the agreement to only span one year.
  • Be very wary of non-compete agreements – some consulting companies have non-compete agreements saying you can’t work for any of their customers for X years after you quit. Even worse, some say you can’t work for any PROSPECTIVE customer – which basically means any company in their market. As part of the interview process, ask for a copy of any agreements that you’ll need to sign. Otherwise, if you only get a copy of this agreement after you’ve already quit your current job, you’re screwed.
  • Work hourly, not salary – the consulting company is making money off you by the hour, and they will work you as long and as hard as possible. Your salary needs to be a win/win for both you and the consulting company.

Don’t Regret Your Asking Price

No matter who you work for, salary negotiations suck, and I don’t have any good tips for how to pick your rate. However, I do have advice about what to do after you’ve picked your rate: write it down somewhere and tell yourself, “I am going to be happy if I get a junior DBA job for $X/year.” Put that piece of paper somewhere safe. Later, when you find out how much your coworkers or your friends are making, don’t get mad: get that piece of paper out and think back to what you were feeling like when you wrote those words down. You wanted a DBA position so bad, and you couldn’t figure out how to get in. In order to get your foot in the door, you took a salary that made sense at the time.

Some Days You're the Tire
Some Days You’re the Tire

The last thing you want is to get six months into your new junior DBA position, find out that all your coworkers are making twice as much as you are, and feel like you got screwed.

Hmm – Lots of Screwing Going On Here

More than once in these posts, I’ve said you can get screwed. This emphasizes a point I made in the first article: it’s easier to get promoted than to get hired. The money’s usually not as good, but if you’re just doing this for money, you’re in the wrong profession.

The first year or two of database administration is very challenging: you’re suddenly in charge of one of the company’s most expensive and risk-prone assets. There’s a lot of after-hours maintenance work, and when your cell phone rings, you gotta answer it anytime, anywhere. It can be scary taking over this position. The less risks you take, the easier your transition is, and that’s why getting promoted eases your transition path.

Once you’re in, though, it’s the most fulfilling and rewarding career I know. I heartily recommend database administration to anybody in IT.

Need to practice for your next interview?

We can help! We’ve got an online course that teaches you how to ace DBA job interview questions.


YO! DBA Raps

Humor
1 Comment

Now, here’s a little story I got to tell
About two bad bloggers you know so well
Michelle Ufford is the @SQLFool
And Ward Pond, he’s a twit, but of course he’s cool

She don’t have a horsey named Paul Revere
But she drops mad lyrics, you can see ’em here
They’re good stuff, but you know Ward Pond
He couldn’t let go and he had to respond

DBA Company Car
DBA Company Car

Next thing you know, folks were pickin’ sides
Bustin’ rhymes on Twitter of a 140 size
But them little fields can’t contain our attacks
Cause we like our rhymes in a VARCHAR(MAX)

So the Fool started up a rap showdown
To let tweeps like you come and clown around
You’re lucky I’m a judge, not a running man
Cuz you don’t wanna see my execution plan

Now I’ve seen that crap that you call SQL
Better bring your real sugar, not the Equal
You won’t win this with a copy/paste
Show your best A game and not your O face.

*Yo, I’m rappin.  I ain’t Celine Dion.  I’m keepin’ it realz.


How to Get a Junior DBA Job – Part 2

Yesterday I talked about why companies aren’t hiring junior DBAs, and today I’ll talk about how you can get in the door anyway.

Companies are Cheap, and DBAs are Expensive

Even in a healthy economy, companies want to get a bargain.  They want to hire an experienced senior database administrator for junior DBA wages.  They think they’ve got something special – a great work environment, flexible working hours, nice plants in the lobby – and that it offsets the lower wages.  It doesn’t: good senior DBAs get good money, and have their pick of companies.

Some companies take the approach of hiring remote DBAs who telecommute.  I have a blog series coming up about getting & keeping a job as a telecommuting DBA, but that doesn’t work for junior DBAs.  Juniors need mentoring and training that’s difficult to get in a home office environment.  For your first DBA job, don’t be tempted to apply for a remote job, because you’re setting yourself up for failure.

Instead, throw your hat in the ring for local senior DBA jobs.  It’s not career suicide: it’s a case of the company asking for something unrealistic.  They may not get the candidates they want for the price they want to pay, and that’s your chance to get your foot in the door.  Don’t exaggerate your reputation, of course – be honest about your skill level and your experience, but at the same time, don’t sell yourself short.

You’re Working with SQL Server, Right?

I got my start as a developer and as a network admin (here’s the story).  When I went to look for my first pure SQL Server job, I didn’t have much on my resume and I didn’t really think I was all that qualified.  If anything, I underestimated the bejeezus out of what I put on the resume.

When I started hiring other DBAs, though, I remembered my own experience.  As a result, when I interviewed DBA candidates, I had a checklist of skills that I’d ask them, like:

  • Have you ever had to restore a single table’s contents?
  • Have you set up log shipping, or done troubleshooting on it?
  • Have you ever built a server connected to a SAN?

Go pick up a SQL Server administration book, look at the table of contents, and check off everything that you’ve actually done.  Even if you’ve only done it a few times, put it on your resume and explain that you’ve dabbled in it, because it’ll give you a big edge over the other candidates.  Don’t say that you’re an expert on the topic, by any means, but the fact that you’ve done it is a plus.

More often than not, I’d hear candidates answer, “Well, yeah, but hasn’t everybody done that?”  Actually, no – some candidates haven’t.  Every single skill that you performed in production – not in theory – is another reason why you might get the job.  Even if you’ve only done it once a quarter for a year, that means something.

Senior DBA
Senior DBA

How Long Have You Been Doing It?

Did your boss ask you to start backing up a SQL Server a year ago?  Last year, did you start restoring the production database onto your desktop for development testing?  Did you start working on making stored procedures a year ago?

Presto, you have a year of experience.

I can almost hear the angry emails coming in now from really senior DBAs who do this stuff full time, nonstop, for a living, but they’ve forgotten how junior-level experience works.  People don’t get handed the keys to the enterprise on Day 1 and start some kind of master clock.  Experience happens gradually, almost imperceptibly.  There’s no knighting ceremony where the CIO taps you on both shoulders with a laser pointer.

This is why so many junior-level DBA positions ask for a year or two of experience: they’re expecting to hear from developers and sysadmins who’ve been dabbling with database tasks over time, getting their feet wet.  I don’t want to hire somebody who’s never seen SQL Server Management Studio: I want to hire a developer who installed SSMS a year ago and has been dabbling with it ever since.  He may not like going in there – it may scare the pants off him – but as long as he’s been going in there grudgingly and tapping his terrified fingers on the keyboard to get his job done, then that’s a plus in my book, because I’ll train him the rest of the way.  DBA training never ends.

Training and mentoring is the way junior DBAs become senior DBAs.  In the last post of the series tomorrow, I’ll talk about what you should – and shouldn’t – expect in the way of training from a new employer, and how that affects your asking price.

Need to practice for your next interview?

We can help! We’ve got an online course that teaches you how to ace DBA job interview questions.

Ready for More? Hit up Part 3 of this Series: Getting DBA Training On the Job


How to Get a Junior DBA Job – Part 1

So you’re hearing all the fun that DBAs are having on Twitter and around the intertubez, and you’re wondering how to get in on the fun.  Maybe you’re a developer or a network admin, and you’ve been learning about SQL Server from books and from peers, and you’re starting to look around for your first Junior DBA job.

Where Are the Junior DBA Job Ads?

Search for the terms “junior dba” or “senior dba” on national job sites, and the results are dramatically different:

To make matters worse, drill into the requirements for some of the so-called junior positions and they ask for:

  • “2+ years of hands-on experience administering customer-facing databases”
  • “Minimum 2 years of information technology experience is required”
  • “2 years of database administrations experience including installation and configuration”

These ads make me chuckle because a DBA with two years of hands-on experience isn’t looking for his next junior DBA job – he’s aiming for his first senior DBA job.  People don’t aspire to make lateral moves – they aspire to move up the ladder.

So we’ve started to establish that it’s not just you: there aren’t junior DBA ads sitting around waiting for takers.

Why Aren’t More Companies Hiring Junior DBAs?

Databases are among a company’s most valuable assets.  They hold sales data, payroll data, information about customers and competitors, and all kinds of proprietary data.  Companies guard this data closely, and they don’t want just anybody stepping up to the server to handle backups, restores, and security configuration.

Companies may be willing to hire junior developers instead – for some reason, they don’t have a problem giving a fresh-out-of-college person access to all the data.  But when it comes time to actually managing the data, they want someone experienced.

As a result, even when a small company with a handful of SQL Server instances goes shopping for a DBA, they want someone experienced.  They want to hear from the candidate, “Yes, I can do what you need – I’ve already done this for a much larger shop, and I’ve got experience handling this sort of thing.”  They sleep better at night knowing their DBA is not stressed out trying to figure out how to automate backups for the first time.

Every now and then, big companies will actually hire junior DBAs.  This mostly happens when they’ve already got a crew of senior DBAs, but here’s the odd part: they don’t have anyone internally that wants to get promoted into the DBA team.  That’s very peculiar, because in companies large enough to have DBAs already, they often have people in other teams who want to become DBAs.

Know Your Competition: Other Junior DBA Candidates

The few available junior DBA positions attract a few kinds of candidates:

  • Developers with a year or more of SQL Server programming experience who’ve decided they want to focus on SQL Server instead of development.  They’ve written code that stores data in SQL Server, so they know the basics of T-SQL or LINQ, understand the basics of data models, and maybe they’ve even done a little SQL Server administration on their dev boxes.
  • Windows administrators with a year or more of Windows experience who also want to switch their focus.  These people know hardware, know the basics of performance tuning, have backup/restore experience, and maybe they’ve even built a cluster or two.  They might have even built SQL Servers, but they haven’t been working on SQL Server full time.
  • SQL Server DBAs who’ve been let go, and they’re desperate.  They might have worked for a company in financial trouble, they might have been drinking on the job, who knows.  These are your most dangerous competitors, because at first glance, their resumes kick sand on your resume.
  • College grads or training grads with no experience.

If you’re in that last category, I gotta be honest: you’re screwed.  Go get a job as a junior developer or a junior Windows admin first, and then work your way into database administration.  There is no classroom training that’s going to convince a company to hand over the keys to their data on your first day in the office.  You may see ads for certification programs that promise to make you DBA-ready within a week for a few thousand dollars.  It won’t get you the job – at least, not when you compare yourself to the competition.  After you’ve gotten started in a development or sysadmin position working around SQL Server, come back here and continue reading about how to take it to the next level.

Getting Promoted is Easier than Getting Hired

If you’re a developer or Windows admin, try to get promoted internally rather than switching companies.  You’ve already built up a level of trust with your coworkers.  Make yourself the natural candidate by actively going after the position before the position even exists: volunteer to spend time with the DBAs, help them during scheduled outages, or just ask if you can sit around and watch during the weekend maintenance windows.  Bring coffee, donuts and bacon, and be the most pleasant (but not over-the-top) person in the room.

If you’ve already got a job in close proximity to SQL Server, this is one of the times where getting certified in SQL Server without getting the job first does make sense.  I’ve blogged about how certification is the icing on the cake: don’t get certified without at least some vague experience in SQL.  Developers and Windows admins will gain knowledge from the certification training process, and it’ll buy them a little bit of credibility in the eyes of the DBA team.  Not a lot – but some.

If you dislike the DBA team at your company, I’ve got bad news: you’re probably going to dislike most DBA teams, and switching companies isn’t going to make things better.  However, if you’re absolutely determined to jump ship, there’s a few things you can do to make the hiring process easier, and I’ll explain those in my next post.

Need to practice for your next interview?

We can help! We’ve got an online course that teaches you how to ace DBA job interview questions.

Check Out Part 2 of this Series! You CAN Get DBA Experience Without a DBA Job


Bloggers: Don’t Focus Too Much on Search Terms

Blogging
2 Comments

When blogging, it’s tempting to use your web analytics software to examine what people are searching for, and then build your new blog posts around the search terms people are using.  After all, if people are searching for that, it’s a popular topic, so you should write about it, right?

Wrong.

You already wrote about it, and they’re already finding you.

You’re looking at statistics based on the people who are already coming to your web site.  For example, if I went by my own web site metrics, then I’d be writing about Perfmon and SQL Server setup checklists every day, because those are why people are coming here now.  Those search metrics are almost worthless, because they only report on the content that I’ve already written.

If I’m trying to write blog posts based on what topics people need help with, I need to look beyond what I’ve already written.  I need to look beyond my own web site and look at a bigger picture, like:

  • Search engine metrics – there are sites that gauge what search terms are popular at Google.  Frankly, I think this approach is idiotic, because taken to the extreme, you end up blogging about Britney Spears.  Don’t get me wrong – I love reading What Would Tyler Durden Do (very Not Safe For Work) but I couldn’t write that stuff.
  • Q&A web sites – read through sites like StackOverflow or forums and get a sense for what questions get asked frequently.  For example, people keep asking why their query runs slow, so I wrote a tutorial on how to get help with a slow query.  The nice thing about this approach is that I can then use my blog post as my answer or comment in StackOverflow – when someone asks for help with a slow query, I can very quickly say, “Go here to my blog entry, then come back and post more info about your question.”  Same thing with my Perfmon tutorial – I can quickly say, “Follow these directions, and send me the output so I can figure out why your server is slow.”
  • Your own web searches – whenever I’m trying to solve a problem, the first thing I do is search the web.  It’s pretty rare that I have a problem no one else has had before.  If I don’t find a good answer in the first page of search results, I make a note of that.  When I’m done solving the problem, I blog about what I learned.  After all, I can’t be the only one having the problem!

No matter what method you choose, write about things you know.  If you choose topics based on popularity, and not your own expertise, your blog topics will start writing checks that your skills can’t cash.

The web site search metrics are still good for something: refining your existing blog posts.  I look at the search terms people are using when they come to my Perfmon blog post, and I look to see if I haven’t addressed any of the terms in their search.  I try to reverse engineer their real question using their search terms to find out what they really want to know, and then I’ll expand my blog post to include that answer.  Over time, your post will become longer and longer (like my Twitter RT FAQ monstrosity) and it’ll snowball to help more and more people.


Optimists, Pessimists and Technology People

Humor
9 Comments

Pessimist: “The glass is half empty.”

Optimist: “The glass is half full.”

Database Administrator: “The glass is sized correctly for peak loads.”

Virtualization Admin: “This person should be sharing a Dixie Cup with the guys in accounting.”

Business Intelligence Admin: “How can we upsell this customer to bottled water?”

Security Admin: “Whose glass is this? Half of the water has gone missing.”

Storage Admin: “This glass needs thin provisioning.”

ETL Admin: “We need a faster way to fill this glass.”

Active Directory Admin: “We need a secondary glass for redundancy.”

Backup Admin: “Nobody told me to take a snapshot of the full glass.”

Break Fix Admin: “Hang on, I’ll go get you another glass.”

Linux Admin: “I bet I could build a better glass myself.”

Project Manager: “I need a FTE for 15 minutes to accomplish the deliverable of a full glass.”

Azure Developer: “Why buy your own glass? The clouds are full of water.”

jQuery Developer: “When you start drinking, it automatically refills.”

Mac User: “Check out how much thinner and smaller my glass is, and it holds that much water too.”

Twitter: “The faucet is over capacity. Please wait a moment and try again.”


New SQL Server Editions – #sqleditions

3 Comments

In the Quest booth at the SSWUG Virtual Conference, somehow we got started naming new editions of SQL Server, and I just had to move the discussion into Twitter to let everybody else in on the fun.

Here’s been some of the funny ones:

  • SQL Server MVP Edition: <NDA> (sorry I can’t tell you what it does) – BenchmarkIT
  • SQL Server Google Edition: Returns 10,000,000 results, most of them duplicates. – BradDBA
  • SQL Server General Motors Edition: it costs $3 billion. Wait, $4 billion. Hang on, I think it’s $12 billion. – BrentO
  • SQL Server Apple Edition: It looks good and works perfectly right out of the box. Pity about the price tag. – PeschkaJ
  • SQL Server Paris Hilton Edition: No security… EVERYONE gets in 🙂 – BenchmarkIT
  • SQL Server FriendFeed Edition: Friends and random people can comment on how good your data is – carpdeus
  • SQL Server Foreign Nightclub Edn: works great, but one morning you wake up in a bathtub and your tables are gone. – BrentO
  • SQL Server Ozar edition: I know there’s good data in there, but each query just keeps coming back with witty snark instead. – BrianArn

You can read the #sqleditions in real time on Twitter as they come in.  To join the fun, just Tweet with #sqleditions in your tweet and it’ll be shown in the feed.


How do you name your computers?

28 Comments

I name my computers after Sesame Street and Muppet Show characters.  Big Bird has historically been my workstation – at the moment, it’s an Apple Macbook Pro from 2008, the original all-silver design.  The rest are a revolving mix:

swedish-chef

  • Gonzo – a Dell Latitude D830 laptop that acts as a backup workstation.
  • CookieMonster – a Dell PowerEdge 1900 server that weighs over a hundred pounds. No, really. Acts as my VMware host.
  • SwedishChef – a Dell OptiPlex 755 running Windows and Vizioncore’s vRanger Pro (a VMware backup tool from a Quest subsidiary).  The Swedish Chef has long been my favorite Muppet Show character, and I just had to name my vRanger server after him because I rely on it when things are bork-bork-borked.

How do you name your machines?


Starting the SQL Journey

8 Comments

Jorge Segarra aka @SQLChicken tagged me in a quiz asking how DBAs got started in the business, and I can’t believe I haven’t blogged about this earlier.  Great question.

I Started as a Developer

That’s right – I was one of THEM.

But wait – it gets better.  I started as a VBscript classic ASP developer.  Using a Macromedia drag-and-drop GUI to build code.  Hitting Microsoft Access at first, no less. I should probably break you in gently though.

In 1997-1999, I worked for a hotel management company as a jack-of-all-trades computer guy.  I ran the network cables, I fixed the printers, I installed the OS’s, bought the desktops, yadda yadda yadda.  As we speak, I’m wearing one of the shirts that PCConnection used to throw in the box whenever you bought a certain kind of HP LaserJet printer.

Why yes, this IS a ten year old shirt.
Why yes, this IS a ten year old shirt.

I’d come up through the ranks of the hotel business, and I was intimately familiar with the statistics that hotel regional managers wanted to see first thing every morning.  How many rooms had each hotel sold?  What was the average rate?  How much revenue did the restaurant pull in?  Every regional manager at every hotel company wanted this data, and they all had absurdly archaic ways of getting it.  I decided to build a little web application so that the hotel night auditor could input the data, and then it would get emailed to the regional managers when all the data came in.

I started out using Macromedia UltraDev (which later became Adobe Dreamweaver) because it offered a slick, intuitive GUI that let you build code by dragging and dropping components onto the page.  It worked great in the sense that a programming virgin like me could build an application that actually worked.

Right before the Y2K crisis, I went to work for a software company and learned Topspeed Clarion, a programming language that was supposedly database-agnostic.  In theory, programmers could make a change to their data dictionary, target a different database platform, recompile, and bam – hook their app up to a totally different database platform.  Unfortunately, if the program had anything hard-coded to take advantage of a particular RDBMS feature, then it didn’t work.  I spent a lot of time learning the differences between Clarion’s native database format, Microsoft Access, and Microsoft SQL Server.

Getting Off the Hamster Wheel

After a few years of programming, project management, armchair architecture and honing my skillz, we decided that we had to get out of the dying Clarion and into a language with more legs.  We were torn between Java and .NET, and spent several months building stuff with each one, trying to figure out what would suit our needs better.  Suddenly, I realized no matter which one I picked, I was going to spend the rest of my programming career learning new programming languages every 5-6 years.  I love to learn – but not new languages.  I looked around at technologies to figure out what I could specialize in without constantly relearning languages.

It dawned on me that SQL as a language is pretty stagnant.  DBAs don’t have to relearn a new language every time a new version of SQL Server comes out.  Even better, if a DBA wants to change platforms from SQL Server to, say, Oracle or MySQL, they don’t have to relearn the language.  They have to learn new tuning techniques and new management techniques, but not the language itself.  Stick with standard ANSI SQL, and you’re pretty much safe.

That was it – I was hooked.  From that point forward, I went from spending 20-40% of my time in the database to spending as much time as I possibly could.  I’ve never looked back.  This is one of the reasons I’m not really interested in learning PowerShell.  A new language that I can use to manage SQL Server, Exchange, IIS and Windows, but not Oracle or MySQL?  Thanks, but no thanks.  I’ve seen what Exchange, IIS and Windows guys have to go through, and that’s the last direction I want to take my career.

In my presentations, I give developers a lot of flack, but it’s because I’ve been there.  I know how hard it is to stay current and become a great developer in your primary development language, and mastering something else (like SQL Server) makes it even tougher.  There’s just not enough hours in the day.

Who I’m Tagging

I’m tagging people who I’ve talked with a lot on Twitter, but I have no idea how they got started in SQL Server:


Book Review: The Whuffie Factor

Book Reviews
8 Comments

You, dear reader, probably don’t work in the marketing department.  The vast majority of my readers are information technology professionals, and the rest are my family.  (Hi, Mom!)

brent-ozar-on-twitterToday, you can’t get a job like mine without knowing how whuffie works.

In the not-too-distant future, you may not even be able to get a job like yours, or at least the job you want next, without knowing how whuffie works.

The Whuffie Factor
The Whuffie Factor

What Is Whuffie?

Whuffie is slang for social capital: your reputation, your credibility, your personal bankability.  It’s not as simple as the number of followers you have on Twitter, because that doesn’t necessarily indicate your trustworthiness – there’s plenty of spammers who’ve mastered the art of the followback.  It’s not as simple as the number of posts you’ve made on a forum somewhere, because that just indicates you’re really good at clicking the Submit button.

I first learned about whuffie a few years ago when I started playing with Flock, a web browser with social networking built in.  The people behind Flock were building a really cool product, and they were building it in an open way that involved their user community.  I was dumbfounded by this ability to interact directly with the developers.  I’ve never been one to file software bug reports because as a developer, I felt that most bug reports went unanswered.  Companies didn’t have the resources to fix bugs – they just wanted to push products.  I saw the way the Flock guys got so involved with their users, though, so I took the plunge and filed my first bug report.

I don’t remember whether or not they fixed the bug, but I remember that they interacted with me in a positive way, which encouraged me to file more bug reports.  I wasn’t building a mental image of a buggy browser, though – I was building a mental image of guys who genuinely cared about what they were doing and cared about their users.  This was completely different than any other online software experience that I’d had, and I found myself getting more and more involved.  I had to find out why these folks were acting this way, because it wasn’t a natural frame of mind for a software developer to react positively to bug reports.

Enter Tara Hunt

Among the many interesting people working in proximity to the Flock phenomenon, I ran across Tara Hunt’s blog at HorsePigCow.com.  She blogged about marketing and made me look at it in new ways that I’d never considered.  Marketing wasn’t just a bunch of sexist guys designing magazine ads of barely-clothed women holding their product in provocative positions.  Marketing meant understanding that places like forums, web sites and Twitter are, as The Whuffie Factor explains:

“…a simple but powerful online community where thousands of buying decisions are made every single day.”

This message isn’t just for companies: it’s for employees.  Every time you interact with another member of a community, whether you’re doing something good or not so good, you’re affecting your social capital.   Social networking transactions don’t happen in a vacuum, either – bystanders notice your actions, and even if they’re not involved with what you’re doing, they make buying decisions based on your actions.

“Who cares,” you ask, “if I’m not selling a product?”  Even if you’re not working a street corner, you’re selling yourself.  Future employers, future clients, and future coworkers are taking stock of your every action.

Why Whuffie Matters for Employees Too

I used to be a SQL Server database administrator.  As I got more involved with the Flock community, I realized that I had to be missing something.  There had to be a similar community for SQL Server, and I had to get involved with it.  I found PASS, attended my first conference, and started focusing my spare time on the community.  Tara’s book didn’t exist yet, so I read her blog, watched what the Flock team did, and tried to apply their techniques to my own work.  I made mistakes – and still do – but you have the advantage of this book to help guide you along the way.

The Whuffie Factor demystifies the workings of social capital and marketing, and these explanations work great for IT geeks.  Let’s face it: we suck at networking, and we suck at marketing.  We need all the help we can get.  This book is the help, and we don’t need a marketing background to understand how it applies to us.

The chapter “Become a Part of the Community You Serve” and the book’s repeated message about turning the bullhorn around especially resonate with me, and it illustrates the problems with so many IT communities.  Tara discusses how she worked with a web site to throw away their imaginary user profiles and connect directly with several real users instead using their own product.  They became more and more intertwined with their own customers, and as a result, built better products.  I’ve learned these lessons personally at Quest, and I found myself nodding over and over – and not because I was going to sleep.

Throughout the book, Tara gives simple, straightforward explanations of how to get whuffie, what happens if you do it right, and what happens if you do it wrong.

Whuffie is Easy to Get, but Much Easier to Lose

Companies don’t run around bragging about that time when they completely borked their online marketing strategy and pissed off thousands of customers.  They bury those stories as deep as they can.  The Whuffie Factor includes some of these cautionary tales, like the times when Wal-Mart tried influencing social networks with ill-advised stunts.

History continues to repeat itself, too.  In chapter 4, “Building Whuffie by Listening to and Integrating Feedback”, Tara tells the story of when Facebook launched feeds and alienated its users.  Facebook has shown time and again that if you don’t follow the lessons in the book, your reputation will be tarnished.  Reading The Whuffie Factor is a lot more effective than making these expensive mistakes in public.

When you do make mistakes in public – everybody does it sooner or later – the chapter “Embrace the Chaos” talks about how to handle it.  Part of me wonders why everybody doesn’t know this stuff innately, but watching some social networkers in action, it’s obvious that they don’t.  Whether you’re a company or an individual IT worker, knowing how to handle your public failures is a valuable lesson that by itself is worth the price of the book.

My Favorite Quote

My favorite quote from the book, and the one that sums up why even employees need to read it, is:

“You can’t eat whuffie, but it’s getting harder to eat without it.”

I know some of my readers already believe in the power of this fancy internet community thing because I interact with them on Twitter, Facebook, and so on.  At the same time, I know a lot of you haven’t bought into it yet because my blog readership dwarfs the Twitter numbers.  If you’re one of the masses who reads blogs but doesn’t do social networking yet, do yourself a favor and get this book.

Buy The Whuffie Factor on Amazon