Quick Thought: Right Medium for the Right Media

The difference between users and marketers

In the modern marketing world, social media channels from Twitter to LinkedIn are considered places to distribute content. That makes sense to marketers. To a large portion of end users, that idea of multi-channel distribution is not the point: social media is a place to talk to peers.

 

Where to have a conversation

I find as my friends and colleagues adopt social media, they get caught up on figuring out which platform is best to engage with the articles they read and the people they meet. Again, this confusion never arises to a marketer, who is taught to engage wherever the customer is speaking.

What I find fascinating is how the Technologists I know are the target audience for the marketers I know.

It’s at that pivot point of different goals that some social media best practices get confusing. Like this one: A thoughtful former colleague of mine tweeted me this afternoon asking if a +140 character tweet product was supported on Tweetbot (the best Twitter client out there). The correct answer is addressed to the question that wasn’t asked.

Question: Should I use a tool to tweet more than 140 characters? 
Answer: No. Never. Ever.

The Right Tool for the Job

No communication medium is perfect. That’s (partly) why we continue to have options. Here are a few short heuristics I keep in mind when think of the tools I have available to me as a technologist looking to connect with peers and learn from them:

Twitter: best platform for brevity, wit, casual check-ins and quick consumption of news.

  • Hard rules: Be a real person, use full words / sentences, limit your hashtags and treat it like a cocktail party
  • Soft rules: Don’t be a jerk, follow real people, find ways to make it local and relevant

Facebook: best platform for one-to-many updates on life, asks for help and sharing pictures.

  • Hard rule: don’t thumbs up everything you read
  • Soft rule: Be ready to lose friends if you dig into politics

LinkedIn: Not the best platform at talk on.

  • Hard rule: Keep your profile up to date. Add links as interesting events happen
  • Soft rule: Connect with everyone you need in person. Use it like a rolodex

Blog: Best place for permanent knowledge. Everywhere else is transient. Your blog is your knowledge

  • Hard rule: Teach others in the way you like to learn
  • Soft rule: Share your knowledge more than your opinion. Let your blog become a core asset of your value proposition to current and future employers

Conversations instead of channels

This post won’t make sense to everyone. That’s okay. The point on my mind today is one of translation for people who see the plethora of platforms defined as “social media” and feel overwhelmed by the options.

 

So those are my rules. What ones do you have in place?

Self-Reflection: A Quick Twitter Sentiment Analysis

I took a look back at 4 years worth of tweets in my last post. Some have asked how I found the theme of praise vs thanks, so I wrote it down.

Your Turn

Here are the steps I took (from an OS X system):

At this point, I just looked around.

Load the index.html file left in the tweets/ directory and take a few minutes to review your time online. I noticed a lot of thank you’s from day one, so I dug deeper.

To get a comparison of times of praise versus times of thanks, I compared two values:

# egrep -i "thanks|thank you" dnd_tip_tweets.csv | wc -l

Followed by:
# egrep -i "gladly|my pleasure|np|sure thing|you're welcome" dnd_tip_tweets.csv | wc -l

To break this down a little:

  • egrep -i for an case-insensitive search for lines with these phrases in them from the csv
  • The pipe to wc -l to get the number of unique lines in the csv that included these words

I found the number of times I’ve offered thanks were an order of magnitude higher than the number of times I’ve used language that accepts praise (1120 vs 360). It stood out to me and gave me enough data points to feel confident. To make sure your difference is enough to be valid, you can use this site to verify statistical significance. My example is below.

Using isvalid.org to show significance.

Using isvalid.org to show significance.

A side note on word choices: these are phrases I use frequently (‘sure thing’). To be most useful, you should search for your own patterns.

 

Praise vs Thanks: The Best Advice I Can Offer From 4 Years on Twitter

I recently crossed the 4 year marker on Twitter.

A great deal has changed professionally and personally in that time – that’s without a doubt. I could reflect for days on the matter, but one signal stands out amongst the noise; one brief observation makes the most sense to offer others no matter how new or how veteran they are on the platform.

Say Thank You

I parsed through my 4 years of tweets and saw a main trend. No matter what technology or tangent I explored, I go out of my way to thank those who teach me.

And that’s it: thank people.

Just thank people. That’s the only advice. Thank those that write articles that help you learn. Thank those that write the books that you read. Thank people who take time to thank you. More than technology, more than learning: The fact that I reach out to say thank you, much more often than I am praised or commended, is what stands out to me.

Thank You

Thank you to each and every person who’s given me tough love along the way (thinking of you, Jim Millard). Thank you to each and every person who has helped me grow. Thank you for making this career path both my day job and a daily pleasure.

 

5 Tools I Use to Stay Productive

Productivity is a fascination of mine. I read blogs on productivity, seek insight from people I find productive and have been known to test every new tool I can get my hands on.

The last part — trying all these tools — is ironic.

Using a lot of productivity tools is exactly like having meetings to plan when to have meetings. Only the completion of a task is productive. That’s success. I get that and still explore the tools out there for fun. No matter your use of tools — from hand written notes to handy apps — you must deliver results.

Here are the little heuristics I’ve put together. They are as much a set of tools as they are a workflow, so I’ll walk through them like I do in my day.

Sometimes plaintext is all you need

First Thing — today.txt

Every morning I fill out a today.txt file on my desktop. The blog that introduced me to it notes the format:

If nothing else, today I am going to ___________.

I am going to do this by ______ then _____ then ______.

If I do this and only this, today will be a good day.

The goal is to fill this out everyday.

I was skeptical at first go, but I’m now a believer. The act of defining your sole priority for the day leaves you with such a crisp clarity on what you want to achieve most. Somedays the one thing is personal life driven (“today I’m going to review my budget”). Most days are anchored in the core deliverables of my work (“today I’m going to create my presentations for VMworld” or “today I’m going to map out the company blog content calendar for this quarter”). That anchor statement reassures me that I know what I’m going to strive to complete today, even amongst the inevitable chaos of a busy day.

The value comes down to an important lesson on productivity. Productivity hacking is both a measurement of work completed over time and how good you feel about its completion.

This tool has helped me stay on task and feel successful once I complete it. It makes the rest of any day where I crushed my today.txt out in the morning feel like the world is my oyster. I’ve already succeeded at today. I feel more effective and more calm.

Those benefits alone make it an easy win for anyone.

 

blue_green_5_iphones

Image via the Asana Blog

Second Thing — My Tasks in Asana

Aside: The next step was NOT to check my email. There’s absurd amounts of research on the best work hours being absorbed by the barrage of emails. There are a few people who truly must be interrupt driven in their day and email is top priority. Most of us do so just out of habit. Break the habit by storing your action items somewhere else.

Like Asana.

Here’s where the specific and actionable items of my day live. Every individual request of me that will take more than 5 minutes (or I just don’t want to forget) goes in to Asana as a Task. They explain what Tasks and Projects mean in some amazing documentation.

There’s a great deal to unpack here, workflow-wise. What I recommend starts and ends with this thought: Everyone in the professional world is a project manager. The balance of priorities across multiple projects is the life of nearly all people at work, so I really recommend spending the time to use it.

elephant-never-forgets

Third Thing — Evernote Tags

First, the tags: I read a great post on using tags in a clear manner on Evernote and it changed my entire workflow. Mine is slightly adapted as you can see below.

Evernote tagging strategy ftw.

Here’s how I tag my notes. I use tags more than notebooks since I can organize information in more meaningful ways. I drop all tags into one of two top level tags to keep it clean / logical.

Second, comes the process. I keep a tag called “This Week” in my Shortcuts. Here is where I keep a small amount of work connected to everything else across the tools I mentioned above (notes related to my task in today.txt, notes connected to tasks in Asana). The “This Week” tag takes my massive quantity of information kept in Evernote and keeps it light and actionable.

A few other tips that keep Evernote incredibly useful to me:

  • I write everything in Evernote. It’s my virtual paper
  • If I write something down by hand, I snap a picture and add it to Evernote
  • When I find great technology or powerful imagery, I save it with Webclipper
  • I have a few shared notebooks with colleagues so we can see each other’s resources in real-time (Premium option only)

Inbox Zero with Mailbox from Dropbox

Fourth Thing — Think of Email Differently

Changing my relationship with my inbox allowed me to be productive in the ways mentioned above. Here’s the mantra I had to internalize:

  • My inbox is NOT my to do list
  • My inbox is NOT my document archive
  • Focusing on my inbox is focusing on other people’s priorities, NOT mine

Given what my inbox is not, what is it left to be?

  • Some email in my inbox connects me with others
  • Most email in my inbox is a notification (similar to tweets on Twitter)

People are important. If someone is relying on you to be available, you should be ready to be available. Most of the time, just habitually, we behave as interrupt driven when no one needs something immediately from us. That’s the lesson here. And that leaves me the confidence to keep my inbox empty. I started with this multi-layer inbox zero strategy, and it was very powerful. I’ve slightly adapted based on using products I like (Acompli and Mailbox), but the core workflow is the same.

PomodoroApp-icon

Fifth Thing — Pomodoro Technique

The Pomodoro technique is a specific type of timeboxing. The exact numbers are up for debate, but the core philosophy I find useful is that you work on a project for 25 minutes without interruption. You follow that time by a micro-break (usually 5-7 minutes) where you get out of your chair and do something different. Come back fresh after that. Repeat.

I didn’t lead with this one because I’m still torn on the methodology. I’m not sold on packing every bit of work you can into a day, so I don’t obsess over sticking to the process.

I do find it powerful when working on multi-hour projects. It prevents me from burnout or obsession. Example: setting 25 minute timers when I’m working on the VMware infrastructure at work prevents me from sitting there for 3 hours trying to fix minor problems that may or may not be related to my goal. The little break forces me to look up, recenter on the task at hand, and then go back with a refreshed perspective. If I’m truly in a “flow” moment, I keep going. Most of the time the few minute breaks ends up helping me complete a task faster.

If you’re interested, this lightweight OS X app is perfect for me.

excellence-is-habit

That’s it.

These 5 productivity tools and conventions have made my days more productive. They came together after an acknowledgement that my attention easily wanders, that I get overwhelmed and  that some mental corralling is good for me.

Most days end feeling productive. And that feeling is a sure to influence how productive I will be tomorrow. Other days get train wrecked by new priorities coming in. What’s great about this system is that I know exactly what got in my way and where to go after it ends.

Please leave a comment or shoot me a tweet if you end up implementing any of these. I’d love to hear how it turns out.

Twitter 101: Preparing for your next conference

I put together a few emails in preparation for VMworld 2014 to ensure my colleagues felt empowered on social at the show. While that conference has recently passed us by, there is always another in-person opportunity around the bend.

Here are a few key tips I find effective and always update before a show.

— unedited emails below! — 

All of us are about to attend the event of the year for Infinio. Using social media to interact with current or potential customers can be a huge differentiator for our brand *no matter how (non)technical you are* (read more on Inbound Marketing and Social Selling).

Step 1: Make a Twitter account
            [Note: many of you have already completed Step 1, but keep reading on!]
  • Why? While Twitter isn’t the largest of platforms, it is the water cooler of all happenings at VMworld. Be there or miss out on those opportunities to engage.
  • How? Here’s a helpful step-by-step
Step 2: Fill in your profile
  • Use a picture that will make it easy for people to recognize you in person from your online interactions
  • Give yourself a brief bio. The best ones are declarative, not third person (say “I” instead of “Matt does”)
  • Why? The more personable you feel online, the more likely people will meet you in person
  • How? Ask me if you have questions on bios!
Step 3: Follow the right accounts
  • You know all those celebrities Twitter recommends you follow? Unfollow them. Now. They’ll distract you from meeting real people (and finding real business)
  • Begin by following 10 or less accounts. Make them real people (and maybe @Infinio too).
  • Why? Twitter is overwhelming at first. Focusing on the right conversation makes it valuable
  • How? Search “<<contact>> twitter” in Google and you’ll often find your customers. Search Twitter for #VMworld or #VMunderground and see who’s talking.
Remember — with the right online energy we can gain insights to qualified leads and gain a buzz that branded accounts on their own can’t achieve. Follow these and you’ll be on your way. More to come on further tips.

— / End / — 

— Email #2 — 

When leadership shares their personal and professional experience on Twitter, the business gains impressions (read the research).

 

#1 – Tweet that you‘ll be at VMworld 
Something as simple as mentioning you‘ll be there (using the hashtag #VMworld) can prompt customers, partners and prospects to reach back out to you. Take a few seconds and tweet it.

 

#2 – Tweet at a few people you want to meet in person
Want to hear more about VSAN and the future of VMware? Tweet and follow @chuckhollis. Want to meet a real customer and make his day? Tweet @vCenterNerdYou can meet exactly who you want with a lot less effort when you‘re on Twitter.

 

#3 – Share, just a little bit more. 
Giving just a little bit of yourself – a lesson learned, a funny quip or anything else really adds to our brand. The more personality we have out there, the more type of people relate to our brand.

 

Hope to see your tweets soon,

 

— / End / — 

 

tl;dr

These emails cover some fundamentals:
  • Twitter is important to the enterprise technology community 
  • Creating a small social presence can have a huge impact
  • Make your profile approachable and accurate
  • Don’t be shy

Please feel free to reuse this advice verbatim. My only request is that you let me know how it goes in your organization.

How I’m Coming Back from “Failing to Blog” Syndrome

I’m failing as a blog owner.

That was the exact feeling on my mind the other day. The conclusion came to me so naturally, yet it felt absurd. Something about it missed the point.  After a few self-reflections and great conversations, I found my path back. Here are the three big ideas I had to tackle in order to come back into blogging as a successful hobby and true joy.

Part #1 – Share Your Experiences

There are many motives for starting a blog. Expertise. Evangelism. Advice. How-to’s. My first ‘ah ha’ moment came from resetting back to my own: sharing experiences.

To take a step back, I had a great idea a few months ago: extend upon my personal blog in a way that will let people opt-in to different conversations on different channels. It felt right to start clarifying my personal brand in the way we advocate on The Geek Whisperers. And I was ready for a change.

Clear blogging ideas leads to better posts and clarity to followers, right? It wasn’t true for me.

It turns out that the great idea wasn’t so great. In the mix of topics I enjoy exploring I found a bigger picture that I lost sight of as I distributed my energy out into islands of content. As a way of re-introducing me, I want to empower you to not make the same mistake.

If you enjoy blogging as a medium of shared experience, as I do, remember that. It makes your success much simpler to see and has a way of deflating any balloon of pressure you built up in your system.

 

Part #2 – Keep Your Process Frictionless

Having options is not always empowering. Options lead to decision making. Decision making requires mental energy.

Now think about that progression from a blogging point of view. You’re using mental energy to decide on where it fits best and how it should be positioned before you even write or post a blog.

content-strategy-plus-neckbeards

A strategy I found was less than helpful to my blogging output.

I found too much of my energy was spent planning blogs. Which platform? Which category? What theme? What imagery?

Yes – having a plan is respectful to your audience. Yes – your posts should be a labor of love that benefits others. But no – you don’t need to spend as much time as I was spending on planning. Leave all your energy for doing.

Part #3 – Don’t Take Yourself Too Seriously

Writing on a blog is a full-time job for a few. If you’re in one of those infrequent instances, you should consider it a just that: a full-time job. For anyone like me who blogs as a hobby, remember that. You should treat it as a hobby.

When you don’t post for a while, ask yourself the right question. The wrong question starts with “Should I have blogged about _____?” The right question is “What prevented me from blogging about _____?”

Move from asking “should I have blogged” to “what prevented me from blogging.”

If you find what prevented you is more important than the blog, then good: you’re prioritizing correctly.

If you find what prevented you from blogging isn’t as important, then re-prioritize.

Here’s my for instance: I looked back and found I hadn’t blogged as much as I had thought about wanting to blog in the last few months. I wrote a list down of what I felt prevented me:

  • Moving to a new apartment
  • Vacation time
  • VMworld planning at work
  • Feeling like there’s no time to polish ideas
  • Thinking about when to post where
  • Not feeling ‘expert enough’ on a subject at times

 

The first 3 are more important to me than blogging. Then I found the trend of time and topic. I saw that I was stumbling on my many choices on platform and because I no longer had a set night for blog time.

So I’m making some changes. I hope you find them helpful as well.

tl;dr

In short:

  1. Keep your publishing process as simple as possible
  2. Remember to share your personal and professional experiences
  3. Remind yourself that blogging is a joy, not a project you can fail at

 

Killing a process by name with Ansible Ad-hoc

I’ve been learning my way through Ansible’s ad-hoc method of distributed management. It’s been a great start to re-familiarize myself with the important little details of Linux while getting the basics of Ansible down.

I’m also slowly working my way up in complexity into a distributed performance platform for performance analysis. But this post isn’t about that story. It’s about solving a problem.

The system architecture today is:

  • Deploy VMs from template with DHCP addresses (via PowerShell)
  • Install latest versions of Ansible and fio (via bash… for now)
  • Auto-discover peer systems and separate them into zones inside /etc/ansible/hosts (via python thanks to a coworker)
  • Set crontab with performance profile dictated by host zone (via Ansible)
  • Reboot (via Ansible) and run the workload (via bash)

Then I/O begins. It’s pretty nifty, even in its duct tape and glue design right now.

But I kept finding myself in need of updating the fio workload profile and then restarting the bash script managing workloads. Until today, I’ve been:

      • Using a shared NFS mount to distribute the updates:    ansible all -m shell -a "cp nfs1/*fio ." --ask-pass
      • Rebooting all hosts but this one (learned that lesson):    ansible all:\!10.1.1.131 -m shell -a "reboot" --sudo --ask-pass
      • Then rebooting:    sudo reboot

Then I found that sometimes I just wanted to turn off all workloads in a rush. I knew the answer would have the Linux command kill in it somewhere, but couldn’t figure out how to call it without knowing every system’s process ID (PID) for the command. So I asked on superuser.com and here’s what they taught me in just a few steps.

Step 1 – Find out the process name.

pgrep -lf bash [to find the bash shell script]

Let’s say it returns a process called bash-fio.

Step 2 – Kill it.

pkill bash-fio

And that’s it! You can confirm you killed the process with ps aux | grep bash, which shows you the process is no longer running.

I now have a single ad-hoc command to kill this process across 15 different VMs:

ansible all -m shell -a "pkill bash-fio" --ask-pass

This kind of distributed kill switch comes in handy. I hope you find good use of it as well.

A Simple & Insecure way to use Ansible

[Update Aug 12th @ 9pm]

Ansible has brilliant security options that I have yet to learn or share here. Do not take this post as a reflection of the platform.

Please take note of the comment by Ansible CTO Michael DeHaan at the end of this post! The behavior I go over here is a beginner’s walk through in an isolated lab and NOT anywhere close to best practice.

[/Update]

While I’ve been curious about DevOps since I read The Pheonix Project, I’ve just barely scratched the surface of the toolkits available.

I mentioned I’m managing a few lab environments adding up to 45+ VMs. Running commands one at a time across that many hosts is a major time sink. One typo in a script and you start over again. Writing bash scripts to ssh and execute commands across multiple hosts feels too much like throwaway work. I’ve instead focused on Ansible, what I find to be the simplest of configuration management solutions out there.

If you review the resources mentioned in the first post, you can get a handle of ad-hoc commands and even run through your first few.

Life gets harder, though, as you get more advanced. Here are two easy ways to make running subsequent commands much easier. 

NOTE: In this case, easier is synonymous with insecure.  I would never recommend these actions in an environment with inbound internet access, let alone a production environment.

1. Hardcode your password inside your inventory file

Your ansible inventory file is familiar in an /etc/hosts-kinda way. Get to know the syntax and you can send commands to multiple systems with ease. For instance:

$cat /etc/ansible/hosts
[workloads]
192.168.2
192.168.3
192.168.4
192.168.5

With this file, and with my lack of desire to manage SSH keys, I have to always use --ask-pass when I call ansible so it can prompt me for the password.

Well, we can do better. Given that I’m using simple templates in my VMware infrastructure, I know the username and password of each VM. I can use ansible_ssh_pass right next to each host to bypass that need:

$cat /etc/ansible/hosts
[workloads]
192.168.2 ansible_ssh_pass=Password
192.168.3 ansible_ssh_pass=Password
192.168.4 ansible_ssh_pass=Password
192.168.5 ansible_ssh_pass=Password

2. Disable host key checking

Another security feature that gets in the way of acting quickly within your ad-hoc environment is fingerprint confirmation. You’ll come across failures like these if you forget to accept a host before you pass it a command with --ask-pass:

Screen Shot 2014-08-12 at 3.50.42 PM

To bypass this lovely behavior, change the checking behavior:

$export ANSIBLE_HOST_KEY_CHECKING=False

Now you can run commands with --ask-pass without error, even if it’s the first time you’ve SSH’ed to these hosts.

Bonus: Clean up your inventory file

The two benefits I just outlined can lead to a length and messy /etc/ansible/hosts file. Following this and this advice, you can consolidate the above examples all within the file:

$cat /etc/ansible/hosts
[defaults]
host_key_checking=False

[workloads]
192.168.[2:5] ansible_ssh_pass=Password

You can see we’ve set a default to no longer require the key checking, much like our export did on a per-session basis. We also have a range of hosts selected  instead of listing them one at a time. The major advantage to that is you only have to add parameters once.

What’s next

I’m still a few days away from getting into playbooks. If you have any advice before digging into it, feel free to share.

 

From Zero to Ping with Ansible

I’m fooling around with configuration management across a set of virtual machines in the lab. The reason is one of practicality: manually running commands in the terminal of 15 Ubuntu servers is tedious.

I’d like to make sure all my hosts are responding to ping, are all on the same build of a few key packages and I’d like to do so without scripting from scratch.

Thus, configuration management enters the arena. The reason I go toward Ansible before Puppet or Chef for this need is the simplicity factor: Ansible does not require a server, leverages SSH and is coded in Python. These are all familiar enough for me to dive right in.

So I dove right in.

The Ansible team gets that documentation determines adoption, which is a huge plus. The community is prolific and easy to understand. But they also assume some nuances about host-to-host communication I haven’t touched on in ages. Here’s how I got past the initial roadblocks:

From there I was able to use the ping module and receive responses from all hosts.

ansible-ping-pong

I’m still far from expertise on the matter, but it’s definitely a start.  I made a small and growing list of those I can talk to about Ansible on Twitter. You can subscribe here.

Do you use Ansible? Know of a great how-to article to share? Let me know!

 

 

Troubleshooting Short: Prompting NFS Reconnect with vmkping

I run a small partner validation lab these days and came across a hack worth sharing.

My NFS datastores were unpredictably disconnecting from one of three of my ESXi hosts. We’re running ESXi 5.5 and it was a new behavior.

My instinct — coming from a block protocol background — was to click “Rescan All,” but it has no effect on NFS based storage.

What my colleague Dan Perkins point me toward was an alternative route he discovered: if you run a vmkping pointed out the NFS vmkernel interface, it seems to prompt a reconnection if one is possible.

Sure enough, I ran:

vmkping -I vmk2 10.10.10.100

And the ping showed an ICMP response. Low and behold, the datastore immediately showed as mounted in vCenter!

Mind you, this did not fix the problem.

Dan ended up discovering a faulty port on the storage controller after further isolation. It was handy along the way to run vmkping as a means of isolation between no connectivity and dropped connectivity at load.

For more syntax that may be of help, check out this KB.