How a DevOp Solves Every Systems Administration Problem

I’m hoping to explore the DevOps phenomena a bit more, as I’ve seen what I believe are some colossal stretches of reasoning lately. To be sure, what I’ve gathered of that general line of thinking seems to be quite an improvement on the standard systems thinking. However, as with anything, it seems to have been speciated, inbred and over sold.

As a result, if you listen to the more rabid proponents, the following is The One True Solution to all systems engineering and administration problems.

If anyone wants to take a critical exploration of the DevOps movement, holla!

Software Piracy and the Existence of Moral Absolutes

(Before I start, I’d like to make it clear that I am not “calling out” anyone. This post started out as a comment on the blog post I refer to below, however my words quickly grew in number and I decided to make my own blog post on it. This post is intended to be a spinoff of Matt’s post. This topic is tangential to the post referenced below, and not in response to it.)

In a recent post by Matt Simmons titled “The real loser in software piracy isn’t who you think“, the Standalone SysAdmin posits an interesting theory. To summarize, software piracy may cost better, alternative products their userbase. If people need to twiddle a few pixels, the Photoshop brand immediately captures their attention. As a result a person may pirate Adobe’s software when a better, less expensive or possibly free alternative to Photoshop would have been just as good.

I completely agree with the above, and it’s a viewpoint that I had never considered outright. I think I’ve thought along those lines without realizing it though. In my experience, if someone with only a little computer background wants to put an all-in-one server in their office to manage printing, file shares, their internet gateway and etc. I am slightly disappointed that Microsoft’s Small Business Server product is usually the first and only product that comes to mind. There are so many alternatives! ClearOS, Untangle, and others are awesome alternatives often with a free tier that can get you started.

However, because the SBS brand is so large, and people think “I guess that’s what I need,” they’ll likely implement it and never consider the alternatives. In some instances, they may improperly license the software. If even just one quarter of the organizations that are not properly licensing SBS would move to an alternative product, I believe that would make the industry better. Microsoft would see clear competition from the growing userbase of other products and have a better idea on how to improve. The alternative products would increase their userbase and know how better to support their customers. Customers get great products all around! Generally speaking, it would be a win-win situation for everyone involved.

Often in discussions concerning software piracy the supposed dollar amount of lost revenue for the software company is brought up. Upon investigation those numbers are built on some flimsy presuppositions about the buyer’s intent. Users of software will often not truly be legitimate candidates to purchase the software. However, this is where I find the topic to be most interesting. When the topic of morality gets introduced is when things get fascinating. That’s also when you’ll see some truly jaw dropping logical and philosophical gymnastics.

Let’s talk a bit about morality. Are there absolutes or are there not? Is this purely a financial equation or is there more at stake here?

Definition of Terms

I’ll be using some quotes from Matt’s post as my springboards, but not as a direct response to him (this isn’t about two people disputing, but about different and yet related ideas being fleshed out). Also, I’m not focusing on the recent takedown of MegaUpload. I’m also not focusing on one pirated product over another. This is as generalized as I can be.

The first thing that needs to be determined in talking about “software theft” is “what is theft?” From Matt’s post:

As many people have said, theft is the taking of something which deprives the owner of use.

Before any topic can be given a thorough treatment, a definition of terms must take place. In this case, I’ve never heard of theft being defined as the deprivation of use from an owner. Perhaps it’s regional? That definition sounds more like some definitions of larceny. Theft does not, in my layman’s understanding of the term, primarily consider deprivation of use. Theft is usually defined along the lines of the taking of property that is owned by one person or entity without their consent. No validity is given to the consideration of if the object was useful to the original owner.

Perhaps you’ve seen dilapidated cars from two or more generations ago sitting on a farm. Certainly the owner is receiving no use from it, but taking it would still be considered theft (although I realize there are often tiered designations to the types of theft based on the dollar amount of what was stolen). That is, theft is defined as the taking of property that is owned by one person without their consent.

Certainly in the realm of software it gets tricky because you’re not dealing with cut-and-dried physical goods. In the physical world, it would be as if you could clone the junked automobile and then use it (perhaps for scrap metal, I don’t know). But you can’t perform an atomic copy of something in the physical world so it’s a moot point. Yes, you can copy a design and get in trouble with copyright infringement, but that seems to be an entirely unrelated phenomena. In the virtual world, you can perform an “atomic” copy of a thing – and that fact blurs some lines slightly.

However I believe the key to the situation is a realization that license terms on a software package define what acceptable use is. One you take those terms into account it is easier to understand how theft would be defined in the case of intangible software. Software companies by and large do not “sell” the software to you, but basically sell you the right to use it. It’s a contract for use. If a contract states that in order to use some software you have to pony up some cash then it “is what it is” and no amount of legal wrangling can reverse that. Going outside of that contract would be considered some form if illegal activity.

In the end, it is a non-consensual use of a product that has certain restrictions made upon it. Perhaps the term “theft” is over simplifying the behavior. Perhaps “breach of contract” would be better? That might be especially true since most software makes you accept an agreement before you can use it. Technically you are then bound by that contract. Define it how you will, we’re still dealing within the realm of morals, so at least we haven’t gotten too far off track.

Of course, I also find it laughable whenever software piracy is mentioned and people assign monetary value to the “stolen” software…as though the options were either “steal this software” or “pay for it”. A false dichotomy if I ever heard one.

If people say “one million copes of this software have been stolen, and the software costs $500 per copy, that means the company has lost half a billion dollars!!1!” then they are most certainly making a false dichotomy. Not all of the one million people have $500 to spend and even if they did, they would not necessarily spend it on that software if they were forced to make a choice.

This is where, often, the conversation with someone turns finances into morality. “Well I wouldn’t pay for it anyway!” or “I only use it once in a great while!” or, my favorite, “The software company has plenty of money. They’re not losing that much because of me.” As if, somehow, arguments of convenience or shareholder meetings shift the foundations of right and wrong.

Finances Vs. Morals

Certainly the dollar amounts that are brought up around software piracy are smeared around to make the software companies seem like helpless victims. When you look into the numbers, it’s highly unlikely that Adobe, Microsoft, Autodesk, Symantec and etc. aren’t losing a ton of real money. They might even be gaining value in the long run with their products being used by more people who carry that brand in their minds from then on.

However is the discussion about software piracy all about numbers and branding? Can a person change right and wrong based on their own convenience or their determination of how much a company needs more currency?

I’d like to focus this topic less on the numbers and more on how one behaves after digesting the numbers. My question for us all to think about is this: What determines right and wrong? Here are the numbers and a fairly accurate interpretation of them:

[Those that download commercial software without paying] didn’t have $500 to buy photoshop. Did Adobe really lose that $500 that wouldn’t have been paid to them? No.

Most of us would agree with that. Framed within the context of “a person doesn’t have $500 and furthermore wouldn’t spent it on the software if they had it” then the software maker didn’t lose money. However, if we then take that likely reality and use it to excuse a breach of contract, we start determining right and wrong based on profit and loss. In the presence of moral absoulutes, a thing that has certain contractual usage restrictions on it being used outside of those restrictions is still wrong. Typically, that “wrongness” is only superseded if there is considerable harm to another person unless that contract is broken.

“That money didn’t exist. Assigning it a value is dishonest.”

Certainly the numbers are trumped up to an extent. On that there is little dispute. Where do we go from here? Can we go from “I don’t have the money to buy this software,” to “I’m going to intentionally break a contract so that I can use it anyway”?

At this point in a discussion on software licensing (or music, movie and other entertainment licenses), the discussion usually continues spinning its wheels. Volleys of words like “fair”, “greedy”, “corporations” and “big business” get lobbed.

A product has value independent of a person’s ability to pay for it. A product is then sometimes priced disproportionate to its value. Or, oddly, value is manipulated by price, but that’s another discussion. If a company, within their legal rights, sets a price on a product that a person feels is disproportionate to its value, does that person’s personal evaluation of the price/value equation allow them to morally break contract and use the software outside of its licensing restrictions?

We could argue about the fairness of current licensing practices, the greed of corporate licensing practices, the value of a product in comparison to its price and if software patents are detrimental (please, no GPL fanbois). Those things are important to talk about, however in the context of determining morality, if those smell fishy, that’s because all of them combine to form one giant red herring distracting us from the real point. The real point is centered on how one determines right and wrong.

Absolute Uncertainty

The question of absolutes now comes up. Is it ever right to take something that is not yours? If a loved one is dying, and you can steal medicine to save their life, is it wrong? If you and others are locked in a prison camp during a war and face almost certain death, is stealing the keys from the guards okay? Is killing your guards okay?

Those are extreme examples, but valid nonetheless and thus not in the realm of straw men. It shows us that, usually, there is a line when theft and even killing become acceptable. (Even so, there are those who believe in pacifism to the point of never fighting back even in the defense of your or another person’s life.)

The question remains, is there ever a time when it is acceptable to break a contract or license? Once you figure that out you can answer the following questions with certainty and be able to backup your view: When is it okay to break a contract? When is it okay to perform an act that is punishable by law? Does solvency determine right and wrong and if so when?

I think moral absolutes is the heart of the issue of software being used outside of license restrictions (I hesitate to call it “theft” or “piracy”). If there are none, then this topic is wasted energy. If there are absolutes, but they contradict honoring software licensing then we should at least define them and be aware of why we do what we do. If there are absolutes, and they say to honor law in so far as the law does not clearly contradict other absolutes (e.g. a law requiring you to punch a random person in the face), then the topic is rather simple, in spite of arguments about practicality. Your pragmatic need for a software title notwithstanding, show some fortitude and don’t break a contract / license agreement (essentially dishonesty). Go find a product whose licensing you agree with or do without.

For myself, I am a license pest. I actually read some EULAs. I actually follow them to the best of my ability. For example, I recently bought an OEM copy of Windows 7 for a workstation I built for my small business. According to strict licensing interpretation you are not allowed to install the OEM version of Windows straight onto a PC from the DVD. You are supposed to use the OEM Preinstalltion Kit or the Express Deployment Toolkit. So, I got rid of the installation that I had initially made, turned one of my other PCs into an EDT server and installed the OEM version of Windows across my home network onto my workstation.

Who would have known? What difference does it really make? For one, I would have known. Secondly, I believe the difference is in how a person continually builds their character. If you are unfaithful in the little things, it makes unfaithfulness in bigger things a little bit easier to justify. If people that I know have little or no problem breaking contracts and licenses, my trust in them is eroded. If a person rationalizes things in such a way as to take relatively clear cut restriction and justify breaking them in the absence of clear harm to another person, i wonder what else that person could justify.

I am not here to point fingers, flex my “morality,” or get anyone to behave the way I do. I am here to encourage you to stop and consider yourself. Stop and consider why you choose what you do. Consider why you think what you think. Consider everything. Have a reasoned defense. A new topic that has been intriguing me is that of dialectic reasoning. One of my favorite quotes is attributed to Socrates:

The unexamined life is not worth living for a human being.

Do not live an unexamined life.

What do you think about software licensing? Is it okay to break the license terms? Is there a practical limit? I’d love to hear your thoughts.

Need Some Comic Relief? READ MOAR SPAM!!

I was stopped in my mouse tracks the other day while attempting to achieve Inbox Zero for a certain client’s stack of e-mail tickets. I received a spam email message that was so bad, it was good. I really got a lift out of it. I’m going to reproduce it here in case there is a poor, languishing IT worker that needs a chuckle. Any search engine hatred I get for reproducing a spam message will be well worth it.

The piercing comedy comes from the fact that this spam message does not seem to be simply packed with pseudo language to skirt around spam filters. It appears to be a legitimate attempt at ensnaring new customers for a cut-rate web hosting service in… shall we say… a certain Cyrillic-using Eastern European country. Also, the entire message was in 24 point Times New Roman, blue and underlined.

To whomever crafted this treasure of the English language (or whoever ran it sideways through a Slavic -> Huli -> Ewok -> English -> Chinese -> Inuit -> English translator), I shower you with virtual rose petals. You, dear ones, are my heroes for the day.

Welcome to e…e.biz !

We also provide services DDoS’a!

Every day our world is moving forward, walking in the footsteps of new technologies. With the development of the Internet and poyavlyaniem any electronic goods, and hence the electronic money. Currently, the volume of transactions on the Internet billions of U.S. dollars. And always someone with someone else is paying.

On our site you will be able to make the exchange of electronic money on the most favorable rate. We work with the most popular and liquid electronic payment systems of the world, including Liberty Reserve, Perfect Money, Liqpay and others.

Why are you with us advantageous?

The answer to this question is most important in the exchange – Safety and course. In two of these parameters, we offer you the best possible terms. Currency exchange rates in our exchange points are the lowest in the world. If you find a more profitable course of our – immediately vsyazhites with us and we will make the course even better! Our site is a business card – we do not ask, so do not keep data about you and your accounts. The transaction goes online (communicating with the operator), so both you and us are not afraid of break-ins.

Electronic Payment Systems

In the world there are many electronic payment systems. There is a very popular system, and there is less. Each system is different committees, the level of safety, liquidity, market and policy development on the Internet. Therefore, we only work with payment systems that allow their customers to easily make transfers in combination with high safety. Of the banks, we chose the largest and most reliable – Privatbank with his payment system Liqpay.

Constantly we are exploring e-commerce market and add areas of exchange of money online.

Sincerely Administration …

Contacts:

Email # 1: e…e.biz @ ya.ru

Email # 2: e…e.biz @ gmail.com

Skype: e…e.biz

ICQ: 6…390

E…e.biz

 The Takeaways

First, providing your customers with DDoSs is a selling point.

Second, “poyavlyaniem” isn’t a word, but it should be. So now it is. I think it means “Refunds will be paid in borscht.”

Third, seriously, why are you with us advantageous?

Fourth, the largest and most reliable bank is Privatbank with his payment system Liqpay

I hope you all learned something from this.

If You Like RoboCopy, Consider RichCopy Too

Earlier this week, I found out how to copy file and directory permissions using RoboCopy. To quote Jessica @UberGeekGirl DeVita after I tweeted about my adventures with RoboCopy:

Robocopy ftw

However, there are two main disadvantages to RoboCopy that I’ve come across so far.

RoboCopy Disadvantage #1

It needs the .NET Framework 2.0. Okay, that’s not a huge disadvantage because there’s not much that you can do with a Windows server without the .NET 2.0 framework. Remember, Server 2003 was initially branded as “Windows .NET Server.” However, if you’re still hobbling along with older versions of Windows or you’re really, really obsessed with removing possible attack vectors, you’ll need to keep this requirement in mind.

RoboCopy Disadvantage #2

It is a CLI tool. I know, I know. You’re probably howling “That’s not a disadvantage!” And really, it’s not a huge disadvantage. However, if you only interact with it occasionally then you might prefer to deal with a nice GUI that can help you navigate the myriad of options available. Of course, if you want a GUI to layer on top of RoboCopy there are several to choose from so you’re not completely left in the dark:

I admit, the above two “disadvantages” are rather wispy. However, it’s possible that you could bump into them. And even if you never do bump into them, you might still want to consider an alternative to RoboCopy.

Enter RichCopy

RichCopy is a tool that was initially developed internally at Microsoft back in 1996. It was developed by Microsoft employee Ken Tamaru. If the above to disadvantages are of any significance to you, then RichCopy might be of special interest because it flies in the face of both.

From my preliminary investigation, one product is not a superset of the other. It appears that some features of one are not in the other and vice versa. For example, RichCopy doesn’t seem to have the ability to build a directory structure using empty folders and zero-length files like RoboCopy can with the /create switch. RichCopy does, however, support FTP transfer and the saving of commonly used preferences to different profiles for easy reuse (wow do I wish that was a RoboCopy feature). Much is made of RichCopy’s multithreaded nature, however many people seem to be unaware that RoboCopy is also multithreaded with the use of the /MT[:n] switch. In fact, the latest versions of RoboCopy default to seeding /MT: with the value 8.

Another feature that RichCopy has that I can’t seem to replicate in RoboCopy is the “Consolidate Multiple Sources” option. RoboCopy selects file on a [source] [destination] basis, whereas RichCopy can copy based on multiple sources, however the contents of the multiple sources are consolidated under a the single parent directory of the destination. That can snarl you up a bit if you’re not familiar with the consequences of concatenating multiple folders’ content.

Here’s a quick tip for anyone who decides to try RichCopy: Immediately turn on the display of advanced options by selecting View >> Advanced Options. This allows you to see many more of the options available on the File Copy Options window.

RichCopy’s executable can be ran at the command line and includes an extensive list of switches, however they are not at all similar to RoboCopy’s switches so be prepared to memorize a whole new set. An unexpected bonus in RichCopy is that there is a massive list of errors that you can choose to have cancel the entire copy operation:

Sure, that feature by itself is pretty cool, however I found it cooler that I now have a list of error codes and their human-readable messages. Of course, that also brought up this topic:

RichCopy’s GUI is no-nonsense, but not daunting for casual users (I think? Perhaps I’m a bad judge of non SysAdmin types). You can control just about every aspect of file copying that you could conceivably need in most situations (a notable exception being the creation of empty files and folders). The exclusion and inclusion lists are impressive:

If you’re looking for a RoboCopy GUI, perchance look at RichCopy instead. It has most of the functions and can even access FTP shares (not that any of us are still using FTP). The feature to save commonly used options as individual profiles could come in very hand for frequently performed file copying activities. Saved profiles are accessible through the command line tool as well!

Do you have a RoboCopy alternative that you prefer? Or is RoboCopy forever unparalleled? Let me know in the comments.

How to Copy File and Directory Permissions in Windows Using RoboCopy

My Problem

I have sometimes had to copy the permissions on one directory over to another directory. Sometimes it’s simply due to the migration of files from one server to another. Other times it’s for the purpose of backing up ACL entries before an ACE edit. When frobbing around with permissions, it’s often nice to make a dummy folder or file and copy the pre-frobbed permissions over. That way any post-frobbing disasters can be rectified rather quickly.

At first, I thought copying permissions would be a simple matter of using icacls to perform some kind of permission dump. Sadly, and somewhat surprisingly, I was not able to find an easy way to do that. Certainly you can simply pipe the output of icacls to a text file, however I could not find an easy way to consume that text-based permission record. That’s where the wonder of RoboCopy comes in.

My Solution

Reading Microsoft KB323275 reveals yet another interesting use of RoboCopy.

robocopy [source] [destination] /secfix [include appropriate exclusion filters here]

Yes, once again RoboCopy comes to the rescue for things other than copying files and folders. If you’ve been an admin on Windows boxxen for terribly long, I hope you’re at least moderately familiar with RoboCopy.

In this usage, have a peek at the /secfix switch. The official TechNet help for the switch simply says:

Fixes file security on all files, even skipped ones.

However there is a larger note at the bottom of the help document that states:

When using the /SECFIX copy option, specify the type of security information you want to copy by also using one of these additional copy options:

  • /COPYALL
  • /COPY:O
  • /COPY:S
  • /COPY:U
  • /SEC

If you’re simply performing a permissions copy, make sure that you use the proper file selection options (/XO, /XN, /XF, etc.) to get only the files and/or folders you want. No use in copying an entire directory structure if you only need the permissions on one folder to be copied. Also, if you’re only interested in copying permissions and not the files themselves, keep in mind the /CREATE switch:

/CREATE - Creates a directory tree and zero-length files only.

Perhaps I should start collecting various uses for RoboCopy and compile them into a series of “Stupid RoboCopy Tricks” posts. =)