I was having a discussion at work recently about the use of BIM (Building Information Modeling) in creating engineering drawings. The point I was trying to make is that BIM is better than plain 2D drafting in many ways. Furthermore, any person involved in this trade should be proficient in both. A drafter/designer should be capable of cranking out 2D drawings, or intelligent 3D drawings when the project calls for it.

To simplify this: it should be as simple as when your barista asks you “Decaf, or Regular?”


This got me thinking that when you look at a barista in a coffee shop, you can see they cover most aspects of business. These rules aren’t just for coffee shops, they also apply to offices.


Be professional

Tuck in your shirt, and leave your Led Zeppelin T-Shirt at home. The customer is more interested in their coffee than your self-expression.

Acknowledge your customers

Say “Hi!” to customers when they enter, or even just a simple nod. If they look confused, ask what you can do to help.

Smiles give phenomenal ROI (return on investment)

They cost nothing, but they can earn you a lot of money. Sometimes, smiling even though you’re unhappy can lift your own spirits.

Know your craft

It doesn’t matter whether your customer wants a black cup of coffee, or a Mocha-Frappe-Latte Sugar Explosion. You’re an expert, and they’re both very easy for you. In fact, you’ve got it down so well that you even know how to make the 12 drinks that herd of hipsters just ordered without letting the line go out the door.

Make it simple for the customer

Display your menu and show the options they want to see. When they ask for that Mocha-Frappe-Latte Sugar Explosion with half Splenda and half organic brown sugar, don’t roll your eyes or sigh heavily because it’s complicated or not on the menu. The reason the customer is asking you to make it (and giving you money to do so) is because they don’t want to do it themselves. If it was easy, people wouldn’t pay you to do it.

Know your customers

Who pays $8 for a drink of coffee? No one, because it’s not THAT good. However, people will pay $8 for Wi-Fi, a quiet environment, clean restrooms, and a comfortable seat to relax in while sipping their coffee. Customers don’t buy the end product, they buy the whole experience. If your customers are only buying the product, how will you survive when a competitor sells the same product AND has comfy chairs?

Know your repeat customers

We’re all human, and we all love attention. I wish every one I walk past would say “Hey, Derek!” The fact that my local baristas know me and acknowledge me as a person, not just a wallet with legs (and a slight caffeine addiction) makes me feel good. It also makes me feel good that I don’t have to explain the drink I want every time. They know me and they know what I want.

Help your customers understand what they want

Have you ever found yourself blankly staring at a wall of choices, add-ons, and flavors with no idea what you want? If your customer doesn’t know what they want, ask them what mood they’re in. Or, suggest a drink you like. The worst thing they can do is ignore your advice and make their own decision. However, this does not mean you should shamelessly attempt to offload a pound of coffee on them when they only want a drink.

I have an unquenchable thirst for knowledge, and I’m sure it will be my undoing. It has resulted in many unfinished projects and unmet expectations.

I have come to terms with the fact that it is not possible for me to know everything. However, knowing this doesn’t make the truth any easier.

I’m constantly struggling with my “to-do” list full of books to read, topics to learn, and projects to complete. Earlier this year I made a big dent by finally getting my Bachelors Degree after already being a working professional for 5-7 years. My next steps have been slower than I would have liked, but I’m finally making progress.

I have been working on side-projects, and reading books on various topics.

The first book I read is quite a good read, even for those not in the IT industry: Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability.

I highly recommend it to anyone who is involved in anything that someone else will use. Whether it’s on a web page or a sheet of paper, the principles in this book apply to almost all forms of physical media that will be consumed by end users. I find myself using the term “usability” more often than I expected now that I’ve read this book.

My current read is: Essential Scrum: A Practical Guide to the Most Popular Agile Process.

So far it has been good, and I plan to move on to Kanban and other topics as well. Who knows, I may even manage to sneak in a CompTIA certification before the end of the year.

I can’t help but feel like I have been inadvertently getting prepared for what happened this weekend.

As I gear up for travel, I was running through my checklist of things to take care of. One of these things was my laptop that likes to immediately shutdown when the battery hits 40%. Yes, it is quite annoying to have your computer tell you “You have two hours left” and then go black. This simply will not do for travel. I was hoping I could just send the battery back, but GIGABYTE insisted I send the entire laptop and AC adapter.

Thankfully, I’ve just finished setting up my NUC.  It’s a good thing I decided to go with a desktop version of Linux, because it’s my main system now. So, over this weekend I’ve had to back up my data, image a laptop, convert it into a virtual machine – all of which I’ve written blog posts about. Last but not least, I also had to get my current time-waster (Path of Exile) to run on this machine.

In a few words: I am impressed. This mighty little NUC has been able to run my P2V’d laptop (Windows 7 64 bit) as well as play Path of Exile (thanks to wine, winetricks, PlayOnLinux, and some helpful forum posts).

Is it perfect? No, but it’s also not permanent. It is a pleasant surprise to see how far things have come in the last few years, from virtualization, to small computers, and even the impressive community of gamers that is still growing within the Linux realm.

I needed another linux server …

I needed to test some new hardware to stay up to date …

I wanted to play with a new toy and I may be traveling soon, so it has to be compact. I decided on the Intel® NUC Kit D54250WYKH and ordered the parts off Newegg (instead of Amazon because Newegg was $50 less due to taxes).

First off, Kudos to Intel on the unboxing experience:

Now I have a compact, i5 based machine with an SSD and 16 GB of RAM. I’ve used VirtualBox in the past and recently I’ve been playing with clouds like Azure and EC2. So, why not make my own little cloud with this shiny new box? This way I don’t have to worry about shutting down my virtualized servers when I want to run to a coffee shop with my laptop.

I wanted to expand my knowledge on the topic, so I looked into some more heavy-duty Hypervisors like: Xen, ESXi, and Hyper-V. It was a long weekend with lots of pain, tweaking, and it resulted in some realizations.

The two criteria that ultimately made the decision were: I need to be mobile and may have to rely on wireless, and I’d also like to use this box as an HTPC to play the occasional movie on my TV.


I’ve left this purposely vague, because it requires a bit of explanation. In short, Xen is still going through some changes involving Citrix’s proprietary version (XenServer), XenServer.Org, XenProject, and XAPI. The short of it is that Citrix’s XenServer has a great GUI management tool (XenCenter). I was really hoping for a GUI since this is just for my home lab.

Here’s the problem: I need to be mobile and may need to rely on wireless. The version of Linux used by Citrix’s XenServer uses a kernel that is too old to support my wireless card. I was able to install the XenProject’s version of XenServer on a newer Linux distro, but this doesn’t have a GUI management interface by default. On top of this, there is currently some shifting going on between the tool stacks used to admin Xen through the command line.

This only covers the wireless part, now what about connecting to a TV? Xen actually seems to have good support for this type of pass-through, but I wasn’t able to get this far. Long story short, Xen left me feeling like I was in a store that was doing some serious remodeling.


I started out with Hyper-V Server which is a stripped down version of Windows Server running only Hyper-V. The issue with Hyper-V is that it doesn’t come with a GUI to administer it on the server itself; you have to connect remotely. What’s more, it doesn’t have any wireless capabilities built in. I can attest that installing drivers and the wireless services in the Server Core environment is no picnic, but it is doable. Next, it turns out that remotely controlling Hyper-V (pretty much) requires a Domain to be set up. Again, this is getting beyond the complexity of what I want for an initial home lab. I tried Windows Server 2012 + Hyper-V and the results were about the same

Though, I am happy to report that Hyper-V Server took under 500 MB of RAM and had little CPU overhead. The Windows Server 2012 + Hyper-V had similar requirements, which I was pleasantly surprised by.

The Choice

The weekend was nearing the end, and even though I knew after Xen that I would probably not be able to use any of the enterprise-grade Hypervisors for my home lab. On the bright side, I was able to play with an unused box to get a taste for them.

My ultimate decision was that if I wanted to be able to do HTPC and Virtualization with WiFi support, I’d probably be stuck with VMware Workstation or VirtualBox on a Linux host machine. A bit of research showed that both of these products seem to have closed the performance gap when compared to the Type 1 (bare metal) Hypervisors. Furthermore, VirtualBox seems to have closed some of the performance gap with VMware – one article I read showed only a ~10% difference in a few benchmarks.

So, I decided to use VirtualBox for now – and if I really need some extra features and performance I can pay to switch to VMware later.

Remember I said I wanted a nice GUI? Enter phpVirtualBox. This gets me closer to running a headless virtualization server because it’s SUCH a nice web interface.

End Result:

Here’s a screenshot of phpVirtualBox on my NUC with Xubuntu as the host OS, a Windows Server 2012 VM with IIS and an Ubuntu 14 LAMP server. All of that packed into this tiny box, and using less than 4GB of RAM!

NUC Picture



I think I’ll be giving Xen another try someday.

Like e-mails, blog posts should not be written while angry. Because my career isn’t on the line here, I’ll go ahead and break that rule.

It all started when I began working with two developers (Mike and Tiffany) on some projects.


The problem?

They use Git, I use Mercurial.

After doing a lot of research comparing Git and Mercurial, I decided to just go with Git.

In total, I’ve spent about 20-30 minutes of my life learning and figuring out issues with Mercurial.

In the last few weeks, I’ve spent at least 2-3 hours with Git because it has been a hassle each time I need to pull updated from the origin, or push my changes.

These were all simply annoying until the fateful evening of 9/16/2014.


The horror

I had done a few hours of work over a few nights trying to work out some bugs, and I finally went to commit because the bugs were gone. I committed, and went to bed.

(Note: Some people will argue that you should commit every hour or two, it’s a VERSION control system, I don’t believe in saving half-working code because I’m going on a lunch break)

Tonight, I launched my solution file in Visual Studio only to find out that my projects weren’t loading. “That’s strange”, I thought. Then I proceeded to look inside the project directory and gaze upon the bareness in shock. It was gone, all gone. Somehow, only a few of the publishing directories and my SLN file were left intact.


The real lesson

Now, I’m sure at this point the Git afficianados reading this are on the edge of their seats screaming “YOU PROBABLY RAN … COMMAND! IT’S YOUR FAULT!”

Ok, I’ll take the blame. I could learn more about Git. I could also spend time doing a lot of things instead of writing code like I want to. Refer to my figures before – I’ve spent about 20-30 minutes reading Mercurial documentation and have not had a single catastrophic failure like this in 2 years. I’ve spent far more time than that on Git, and in less than a month I’ve had a catastrophic failure.

The lesson? Use what works for you! Maybe I’m just not wired in a way for Git to make sense, that’s OK, because Mercurial does.

So, don’t worry about what the “cool kids” say is the best Version Control System – just make sure you’re managing your code in a way that works for you.

The moment this happened, I couldn’t help but remember one of the posts I read while researching this. Here is an excerpt from a Stack Overflow answer to the question “Is there any harmful commands  using Git and HG” :

In short:

  • Mercurial is safe by default, but adding chainsaws can completely break it.
  • Git is built out of chainsaws from the ground up, increasing apparent danger, but there are safeties.


The solution

Some of you may be wondering what I did to solve this issue. I spent a bit of time trying to figure out what I would do as well. Then it hit me. I think I’ve written a blog post about this before…

I have my Backblaze set to automatically back up my files. I just had to log into the website, go back to last night at 11 PM and download a copy of the project folder. I got my 200 MB backup of the folder in less than 20 minutes. This service just paid for itself for the next year!



Quick note here – hopefully this will show up in someone’s Google search.

I was having issues getting my VPN service to connect. I was about to contact support when I decided I should check the log. I’m glad I did, as the error was quite obvious.

Fri Jul 25 17:18:32 2014 CreateFile failed on TAP device: \\.\Global\{…}.tap

Fri Jul 25 17:18:32 2014 All TAP-Win32 adapters on this system are currently in use.

Fri Jul 25 17:18:32 2014 Exiting

No free tap driver: all TAP-Win32 adapters on this system are currently in use

The symptoms of this problem were that the progress bar for connecting to the VPN would get to about 50%, progress to 60%, drop back to 50%, and then claim a failed connection.

The solution to the problem: Enable the TAP-Win32 Adapter under Network Connections.

I wish all issues were this easy to solve.

It seems that in any industry, there are those who want to invent and those who want to commoditize these inventions. One person creates a new technology or service, and another (or sometimes the same person) then quickly finds a way to turn it into profit.

This is not a new phenomenon. This process is good and bad, and different industries have varying levels of success. For example, you could hire a plumber to fix your toilet, or you could learn to Do-It-Yourself. There are many videos, books, and kits that will teach you how to do this. Obviously, not everyone will be able to pick up a book and be proficient; there is a natural inclination which can be more valuable than mass-produced instructions.

This same thing is true for technology. Now more than ever, there are companies like WIX who are trying to convince people that web design is easy, and you can just Drag-N-Drop to create a web page. Companies have been doing this since the web was born. Granted, great strides have been made, but you won’t see features like this in a WIX site.

So – what do you want to do with your technology? If you just want to have a blog to have one, sure, go ahead and use WordPress (I fear my tongue may cause my cheek to rupture at any moment). If you want to push the envelope, then you’d better get your hands dirty with HTML, CSS, and some server-side language. Considering W3C had to split CSS3 into modules in order to make any progress on it, how can anyone believe that a pre-made website builder will possess features that haven’t even been completed yet?

Let’s say you do want to make something new, something great, and something that really sets you apart. That’s great, and the world needs more people like you! If you want to have an intelligent design process that runs circles around the competition, you’d better make sure you’re using some custom tools. If everyone is working with the same recipe, the only difference is the ingredients – so make sure you’re not shopping in the same store as your competitors!

Great news! I’ve been accepted into ADN! It’s amazing how overwhelming the possibilities are. I have access to all the software and the ideas just keep coming. I don’t know where to start, to be honest. I’m sure I’ll do something soon though. I’m still waiting to hear back from Microsoft about BizSpark though. Worst case – I can get started with Visual Studio Express.

I’m looking to get a jump-start on this whole post-college, world-exploring, idea-generating mayhem. I’ve found a few programs (which I’ve applied for) that should help me along the way. Microsoft has a thing called BizSpark for start-ups to get free access to MSDN. This is similar to DreamSpark for students. I’m eager to find out the results of this application.

Next, I’ve also applied to the Autodesk Developer Network (ADN) . Hopefully, this will give me access to Autodesk products and their APIs to work on custom plugins and different integration techniques.

What’s my goal? To learn! I want to have all the resources necessary to be able to develop and publish all these ideas and concepts I come up with. Will I sell (m)any of them? Who knows, but that’s not the point for right now. I’m eager to find out if I get approved, hopefully at a reduced cost for the ADN membership. It seems like a win-win to me. I get to learn, Microsoft and Autodesk get free advertising for their products, and hopefully other people will get benefit out of what I write – both in code and blogs!

We all have files we care about on our computers. Maybe it’s pictures of your kids, work documents, school documents, whatever. I won’t go into too much detail about how you should keep your files backed up. Obviously if you had done that, you wouldn’t be reading this. All I’ll say on that front is that I use BackBlaze for a mere $5 a month for unlimited backups and I’ve been very happy with it. Feel free to use the link I provided to give me credit for referring you.

So, you need to get your files for one reason or another. Places like Data Doctors offer services “starting at $350”. I don’t think this is reasonable at all for the type of service that will probably be provided for that rate.

To put it into perspective, in many cases you can go buy a cable for $8 to $15 on Amazon.com or Newegg.com (examples here, here, and here) and start copying your files from your old drive within minutes.

I’ve never gone to a commercial solution for data recovery because I always felt the price tag was too high.

When it comes to your data, you have a few choices. It’s all about trade-off. Let’s say you lost the pictures from the last 6 months and the minimum to get them back is $350. Another scenario is that you just lost every picture you had, or the schematics for your super secret spy-place, and the minimum to get it back is $350. In the latter situation, the cost seems much more bearable.

The most important thing to remember is that there are different levels of “brokenness” with hard drives. For example, just because your operating system (Windows/Linux/Mac) doesn’t boot does not mean your files are lost. It’s more likely that there is a problem with the operating system and that your files are fine.

Here’s a short list of the types of problems and how they can be fixed.

Fixable by Software

  1. OS won’t boot
  2. Accidentally deleted files
  3. Accidentally broke apart a raid
  4. Hard drive is showing first signs of failing

Fixable by Hardware

  1. Hard drive is past first stages of failure
  2. Hard drive has been physically damaged
  3. Hard drive doesn’t spin anymore

As you can see, many of these problems can be fixed with software. All four of these can be fixed with time, and the $8 to $15 parts I mentioned above.

If your OS won’t boot, it’s just a matter of getting the drive and plugging it into the USB to SATA (or IDE) cable and connecting it to another machine. Yet another option is to use a Live Boot CD and run it on the computer itself if you’re running low on spare computers. Something like Ubuntu works fine for the simple stuff, or BackTrack for the more advanced stuff.

For the issue of accidentally deleting files, if you’re running Windows it may be as easy as using a FREE file recovery software like Recuva. The key to recovering files you’ve accidentally deleted is using an un-delete utility AS SOON AS POSSIBLE. Every file that is moved or written after you delete something you didn’t mean to reduces your chances of recovering it with a utility like this.

The way I see it – data recovery places are the new version of what car mechanics were labeled as. You go to them looking for help, and they try to judge just how much they can take you for. Don’t be a victim! With a little time and effort you can save yourself a lot of money and also learn some new things along the way.

One word of caution though is that it is important to act quickly with data recovery. Also, as with things in life, it is important to know when to ask for help. Depending on what your situation is, your best option may be to not try to fix it yourself and go to an expert for help.

There are countless articles online written by very talented people that can help you recover your files if you’re willing to put in some work.

At the end of the day, you are the one who gets to judge how much your files are worth. My only hope is that after reading this article, you realize that you may have a cheaper and more self-sufficient option the next time you have some troubles with your files.