<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Shepherd Book's Commonplace</title>
 <link href="http://liberumvir.com/atom.xml" rel="self"/>
 <link href="http://liberumvir.com/"/>
 <updated>2013-07-08T09:09:32-04:00</updated>
 <id>http://liberumvir.com/</id>
 <author>
   <name>Jared Koumentis</name>
   <email>liberumvir@gmail.com</email>
 </author>

 
 <entry>
   <title>A Wholly Immersive Dev Environment</title>
   <link href="http://liberumvir.com/2013/07/08/a-wholly-immersive-dev-environment.html"/>
   <updated>2013-07-08T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2013/07/08/a-wholly-immersive-dev-environment</id>
   <content type="html">&lt;h2&gt;A Wholly Immersive Dev Environment&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 8 July 2013 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;p&gt;Since I&amp;#8217;ve dove deeper and deeper into the Dev side of the DevOps equation, I&amp;#8217;ve found myself intensely interested in how people like to work and their ways to be most productive. I&amp;#8217;ve seen some really interesting setups and have adopted a few myself. We&amp;#8217;ve all heard about having a large ultra-hi-res screen and having a second screen in a portrait layout for having longer form documentation or code displayed. Ergonomic desks, chairs, and mechanical keyboards. No two development environments are quite the same.&lt;/p&gt;
&lt;p&gt;Wait. I&amp;#8217;m not describing what you thought when I said &amp;#8220;Dev Environment&amp;#8221;? Perhaps you thought this was a post debating the pros and cons of different IDEs or text editors. I suppose this is more of a hardware focused thought process I&amp;#8217;m on.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;re in the middle of some remarkable happenings in technology. The things that have caught my attention aren&amp;#8217;t traditionally aimed at developers. We see some amazing things happening with Virtual Reality and Human-Computer Interface technology. Typically, such things are aimed at gaming and immersive 3D worlds. Oculus VR, Omni, Leap Motion. These devices offer unique interaction experiences.&lt;/p&gt;
&lt;p&gt;As you read what follows, remember that the technology to do this currently exists. It just needs to be brought together.&lt;/p&gt;
&lt;h3&gt;Here&amp;#8217;s a future dev environment I envision&amp;#8230;&lt;/h3&gt;
&lt;p&gt;You sit down and put on your headset. As you open your eyes, you are automatically recognized (by your iris, of course) and given access to the systems you need to do your work. The headset is lightweight and wireless, connected to a small and incredibly powerful little &amp;#8220;mini-cloud&amp;#8221; piece of hardware sitting next to you. That, of course, connects to a large virtualization environment, allowing you access to any resources you require.&lt;/p&gt;
&lt;p&gt;You tell your virtual operator to load up your programming and staging environments. You&amp;#8217;re asked if you&amp;#8217;d like to listen to some music and you choose some to thrust you into the zone. I front of you, you see all manner of feedback. Your code sits just off to the side. Up and to the other side, you see a running environment. It shows information about the running staging and test environments, as well as an interface to interact with your program. Just behind that, floating just out of the way, are all manner of graphs and data about your program and server&amp;#8217;s performance.&lt;/p&gt;
&lt;p&gt;You reach out and grab the code, pulling it forward. You open your hand and, with the flick of your fingers, have it fill your vision. You see, built into the headset are sensors that can detect even the most minute movements in your hands. You begin to think about the problem you face and how you might overcome it. Your headset detects a slight rise in your stress level and adjusts the music accordingly. You ask your operator to provide a thirty minute flow state enhancement, to help you bring everything into your working memory and manipulate it within your mind. Monitoring your brainwaves, it begins to apply a very slight current to your forehead. You feel a slight tingle across your skin as your mind begins to work at it&amp;#8217;s most efficient. The thirty minutes pass in what feels like a tenth of the time. As you feel yourself come out of your flow state, your operator asks if you&amp;#8217;d like some tea. That sounds nice. You slip off your headset and walk to the kitchen, where a warm cup of tea awaits you. You remove the cup from the machine and look at the ingredients on the display. Earl Grey, Milk, Sugar, Lavender, Choline Citrate, Pramiracetam, and a touch of Ginseng. Your operator knows what you like and knows what your body needs, so it prepared the perfect cup for you.&lt;/p&gt;
&lt;p&gt;As you walk back to your workstation and place you headset back on, everything reappears before your eyes. You ask your operator to get in touch with your coding partner. It&amp;#8217;s time to do some code review of what came out of your flow state. You hear their voice and look over to see them standing beside you. You ask your operator to fire up the loading program. You and your partner find yourself standing in a pristine room, ready for testing. The code appears before you both and you begin breaking down and refactoring what you find. As you modify the code, you watch as the environment updates and approves your changes. All your tests pass and your operator asks if you&amp;#8217;d like the changes deployed to production. You tell it to go ahead and a diagram representing your production environment appears. You watch as the changes propagate through the system and are confirmed.&lt;/p&gt;
&lt;p&gt;&amp;#8220;Deployed&amp;#8230;&amp;#8221; flashes in front of you and fades into the distance.&lt;/p&gt;
&lt;p&gt;You and your partner decide that now is the perfect time to go ahead and work on architecting your next project.&lt;/p&gt;
&lt;p&gt;&amp;#8220;Operator&amp;#8230; blank slate please.&amp;#8221;&lt;/p&gt;
&lt;p&gt;As the pristine environment materializes before you and your fellow dev, you reach out and begin&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Diversity - More than meets the eye.</title>
   <link href="http://liberumvir.com/2012/12/24/diversity.html"/>
   <updated>2012-12-24T00:00:00-05:00</updated>
   <id>http://liberumvir.com/2012/12/24/diversity</id>
   <content type="html">&lt;h2&gt;Diversity &amp;#8211; More than meets the eye.&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 24 Dec 2012 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Diversity&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A lot has been written about about diversity. It&amp;#8217;s certainly an important topic. Many people focus on the gender or racial aspects of diversity, and many people have written about those parts of the conversation. I&amp;#8217;m going to focus on something deeper than what you typically here about. Instead, I&amp;#8217;m going to talk about the type of diversity that you can&amp;#8217;t determine with a checkbox on an opt-in part of your job application.&lt;/p&gt;
&lt;p&gt;Something I&amp;#8217;ve observed in a number of companies is a lack of &amp;#8220;thought diversity&amp;#8221;. This is seen particularly strongly in a number of Silicon Valley startups. The culture of the &amp;#8220;brogrammer&amp;#8221; is a clear example of this. Now, it&amp;#8217;s not to say all startups are like this. Perhaps, let me explain more of what I mean&amp;#8230;&lt;/p&gt;
&lt;p&gt;I was recently watching a video clip of &amp;#8220;The Lost Interview&amp;#8221; with Steve Jobs. He mentioned how a great team is like a rock tumbler. You take ordinary and seemingly plain rocks, apply friction, and you get something beautiful out of it. He states how a great team is much the same. A great team has clashes&amp;#8230; fights even.&lt;/p&gt;
&lt;p&gt;Companies that embrace this friction do amazing things. Companies that avoid this friction don&amp;#8217;t necessarily die&amp;#8230; They do, however, slowly fade into oblivion. Some of the greatest companies that we&amp;#8217;ve ever known have been lead by leaders who embrace friction. Because of it, better people, better products, and better companies come out of it.&lt;/p&gt;
&lt;p&gt;In many startups, there is significant weight given to &amp;#8220;culture&amp;#8221;. Everyone loves to talk about how you must protect the culture of your company. However, not many people talk about what you should be protecting it from. The undertone is that, if you let in people from &amp;#8220;outside&amp;#8221; your company&amp;#8217;s culture, they will ruin it. But what does this really say?&lt;/p&gt;
&lt;p&gt;For many startups, to &amp;#8220;protect your culture&amp;#8221; means to seek out and hire only those who share your same style of thinking. There is a problem with this. If you have people who all think the same way, you&amp;#8217;ll probably eliminate a great deal of friction.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve personally watched this happen in a number of businesses. They try to hire only those who think like their current group. They avoid friction. The problem I&amp;#8217;ve seen, and it seems to inevitably happen, is akin to the &amp;#8220;Bus to Abilene&amp;#8221;. I never knew what to call the &amp;#8220;Bus to Abilene&amp;#8221; until I read &amp;#8220;Quiet&amp;#8221;. Susan Cane explains it well.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#8220;The &amp;#8216;Bus to Abilene&amp;#8217; anecdote reveals our tendency to follow those who initiate action&amp;#8212;any action.&amp;#8221;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With everyone thinking the same, you end up with a group management that moves on ideas without fully considering the counter arguments. Unfortunately, due to the homogeneous nature of such groups (again, caused by the sacred guarding of &amp;#8220;the culture&amp;#8221;), you have a sort of cascading effect. &amp;#8220;Well, the other people think it&amp;#8217;s a good idea, so I guess I should think it&amp;#8217;s a good idea too&amp;#8230;&amp;#8221;&lt;/p&gt;
&lt;p&gt;I won&amp;#8217;t say that you shouldn&amp;#8217;t consider your culture of your business. I agree that it&amp;#8217;s important. I&amp;#8217;d only caution that you not guard against the wrong thing. Embrace friction. Find people who disagree with your views and work with them. Listen to the people who disagree with you and try to understand the &amp;#8220;why&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Remember&amp;#8230; while diamonds are formed from ugly blobs of carbon that are placed under heat and pressure, they only sparkle and shine after being ground and beat against another diamond. Startups naturally have plenty of &amp;#8220;heat and pressure&amp;#8221;. Make sure your culture doesn&amp;#8217;t exclude the friction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>ZFS and DTrace running on Ubuntu Linux</title>
   <link href="http://liberumvir.com/2012/06/01/zfs-and-dtrace-running-on-ubuntu.html"/>
   <updated>2012-06-01T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2012/06/01/zfs-and-dtrace-running-on-ubuntu</id>
   <content type="html">&lt;h2&gt;&lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; and DTrace running on Ubuntu Linux&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 1 Jun 2012 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; and DTrace&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;These two technologies are the main thing I hear when I ask people &amp;#8220;Why do you stay with a solaris-like operating system, instead of moving to Linux?&amp;#8221; Hell, these two technologies were the reason why the company I work for spent several months building their own solaris-like distro based on the Illumos kernel.&lt;/p&gt;
&lt;p&gt;Of course, I have my own opinions on these technologies. &lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; is certainly handy. Compared to other filesystem or filesystem management software, it does make things easy. For DTrace, I have an issue with the steep learning curve. The ability to instrument in real time with lowered probe effect is pretty cool though. Personally, I do not think that these two technologies are worth staying with or moving to a solaris-like OS. Primarily, this opinion comes down to community. You could pile all the communities together (Illumos, OpenIndiana, SmartOS, OmniOS) and you still wouldn&amp;#8217;t approach the same level of community found in any of the major Linux distros. Need a distro designed to remove pain from the administration of your computers? Ubuntu. Need extensive documentation on everything you can imagine? Arch Linux. Need a great desktop distribution? Linux Mint. I could go on and on. Simply put, the community behind Linux is many times greater than that behind the solaris-like distros.&lt;/p&gt;
&lt;p&gt;So, I had heard about &lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; and DTrace running on Linux. People have been working on them for years. Basically, since the time the technologies came out on Solaris. So, I decided to follow up on these ports and see what could be done. Luckily, I had great success in getting both to run on an Ubuntu server of mine. If you would like to do so as well, just follow the steps below.&lt;/p&gt;
&lt;h3&gt;Firstly, &lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; Install an Ubuntu server. (I recommend trying it out on a VM first.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; Attach 2 drives to use for testing &lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt;. (Again, I was using a VM, so this was as simple as &amp;#8220;attaching&amp;#8221; two more virtual hard drives.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; Partition the new drives. I used cfdisk on my two newly attached drives. If you aren&amp;#8217;t sure of which /dev/sdx device the new drives attached as, just &amp;#8220;cat /proc/partitions&amp;#8221; and you should find it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4)&lt;/strong&gt; Do a &amp;#8220;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&amp;#8221; to make sure your system is up to date.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5)&lt;/strong&gt; Install the needed prerequisites with &amp;#8220;sudo apt-get install python-software-properties bison flex build-essential libelf-dev zlib1g-dev libc6-dev-i386 libdwarf-dev binutils-dev&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6)&lt;/strong&gt; Add the zfs-native apt repo with &amp;#8220;sudo add-apt-repository ppa:zfs-native/stable&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7)&lt;/strong&gt; Update apt with the new sources from the zfs repo with &amp;#8220;sudo apt-get update&amp;#8221;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8)&lt;/strong&gt; Install ubuntu-zfs with &amp;#8220;sudo apt-get install ubuntu-zfs&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9)&lt;/strong&gt; Create your new zpool with &amp;#8220;sudo zpool create zfs-blog raidz /dev/sdb1 /dev/sdc1&amp;#8221;. Here, &amp;#8220;zpool create&amp;#8221; is given the name for the pool &amp;#8220;zfs-blog&amp;#8221; and told to use &amp;#8220;raidz&amp;#8221; (which will mirror, in this example) and then told to use the two disks we attached and partitioned earlier &amp;#8220;/dev/sdb1 /dev/sdc1&amp;#8221;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10)&lt;/strong&gt; Check out your new zpool with &amp;#8220;sudo zpool status&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;11)&lt;/strong&gt; Check out your zfs-blog dataset with &amp;#8220;sudo zfs list&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;12)&lt;/strong&gt; See that it is listed with &amp;#8220;df -h&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;13)&lt;/strong&gt; Enjoy &lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; running on your Ubuntu server.&lt;/p&gt;
&lt;h3&gt;Then, DTrace&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; Install git with &amp;#8220;sudo apt-get install git&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; Either make a git directory and move into it for you to keep your git stuff together or move to the directory you already use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; Clone my fork of the dtrace4linux repo with &amp;#8220;git clone git://github.com/ShepBook/dtrace-for-linux.git&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4)&lt;/strong&gt; Move into the dtrace-for-linux directory with &amp;#8220;cd dtrace-for-linux&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5)&lt;/strong&gt; Run &amp;#8220;sudo make all&amp;#8221; to build dtrace-for-linux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6)&lt;/strong&gt; If you would like to install dtrace into /usr/sbin/dtrace (The solaris-style location for this tool) then do &amp;#8220;sudo make install&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7)&lt;/strong&gt; To load the DTrace kernel module, do &amp;#8220;sudo make load&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8)&lt;/strong&gt; Enjoy DTrace running on your Ubuntu server.&lt;/p&gt;
&lt;h3&gt;Some side notes&lt;/h3&gt;
&lt;p&gt;I used Ubuntu 12.04 &lt;span class=&quot;caps&quot;&gt;LTS&lt;/span&gt; for this setup. I ran it in Virtualbox for Linux. I forked the &amp;#8220;dtrace4linux&amp;#8221; repo to make this easier and to be able to base my instructions on a set point in its development. I have been able to play around with &lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; and it seems fully functional. I am not well versed in DTrace, so I can&amp;#8217;t really tell you how well it is or is not working. I was able to run some one liners just fine, however, I&amp;#8217;m sure there are differences between the probes on Linux and the probes on a solaris-like system. If you were well versed in DTrace on solaris-like systems, then I expect that you will be able to work with and/or figure out how to make DTrace work on Linux just as well.&lt;/p&gt;
&lt;p&gt;Hopefully, with the ability to run &lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; and DTrace on Ubuntu Linux, the people who have been holding back from moving to Linux from a solaris-like operating system can be convinced to join the wonderful community surrounding Linux. I, for one, welcome the solaris converts with open arms.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Further Reading and Sources:&lt;br /&gt;
Thanks for Darik on Slashdot for recommending these links:&lt;br /&gt;
&lt;a href=&quot;http://zfsonlinux.com/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; on Linux Homepage&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://launchpad.net/~zfs-native/+archive/stable&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; on Linux Launchpad&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://hub.opensolaris.org/bin/view/Community+Group+zfs/whatis&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ZFS&lt;/span&gt; Introduction&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>A Theory of Productive Spaces</title>
   <link href="http://liberumvir.com/2012/05/13/theory-of-productive-spaces.html"/>
   <updated>2012-05-13T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2012/05/13/theory-of-productive-spaces</id>
   <content type="html">&lt;h2&gt;A Theory of Productive Spaces&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 13 May 2012 &amp;#8211; Jared Koumentis&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been thinking about what an optimized collaborative space would look like. I know that many businesses are certainly concerned with this. Think about it. Who wouldn&amp;#8217;t want to increase the productivity of everyone in their company?&lt;/p&gt;
&lt;p&gt;I suppose that the place to start is to consider what it takes to do awesome work. Since most of my experience is in the technology field, that is what I&amp;#8217;ll be focusing on here. However, I would suspect that many of the theories here could be applied to other fields just as well.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Of course, different kinds of work are better suited to certain kinds of spaces. There is a difference between creative and implementative work. When it comes to seeding creativity and innovation, solitude trumps collaborative environments. How so? Remember the concept of  &lt;a href=&quot;http://en.wikipedia.org/wiki/Mirroring_(psychology)&quot;&gt;mirroring&lt;/a&gt; in psychology? People in a group tend to mirror the person that is percieved as &amp;#8220;dominant&amp;#8221;. This can often lead to a sort of &amp;#8220;common denominator&amp;#8221; of an idea coming forth from such groups. Typically, this idea will originate and is fueled by the most extroverted person in the group. While this is fine for deciding where a group will go for lunch, it&amp;#8217;s terrible if you actually want to hear of innovative, off-the-wall ideas. Once an idea has spouted and taken root, then there is significant benefit to be found in polishing the rough edges in a collaborative environment. This can certainly help with determining implementation. The difference is that the idea didn&amp;#8217;t come from the group. Ultimately, it comes down to this. If you want new, fresh, unique ideas&amp;#8230; seek solitude. If you want to refine and test an idea&amp;#8230; seek collaboration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When I think of the times I&amp;#8217;ve been most productive in working with other people, it&amp;#8217;s always been on a small scale. Two or three people working together seems to be the sweet spot. When you have more people than that working together, you end up with either two to three people doing most of the work and the rest watching, or you end up with the larger group breaking up into smaller groups of two to three and tackling the problem. This is why meetings are so terribly inefficient. So, ultimately, do you really need more than two or three people in one &amp;#8220;group work space&amp;#8221;, working on a single problem? Is mandating a &amp;#8220;group brainstorming session&amp;#8221; on a problem really going to help? You see this happen naturally in group chat rooms, like campfire. A few people will be discussing something and it gets taken to another room or instant message, where the two or three people can continue communicating. You&amp;#8217;ve seen this if you&amp;#8217;ve ever walked in on a few people staring at a whiteboard covered with writing and they&amp;#8217;re just sitting there, thinking.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You hear a lot about open floor plans these days, from those that love them to those that hate them. A bit of a confession is in order. I used to be one of the people that was absolutely in love with the concept of an open floor space. Even now, I still think they can be leveraged well. However, there is something missing from open floor spaces. It has nothing to do with furniture or layout. Instead, it has everything to do with culture. I think that the quintessential open floor plan has been wildly popular for many years&amp;#8230; in libraries. Think about it. Almost every single library I&amp;#8217;ve been to revolves around a giant, open space. What&amp;#8217;s the difference between a library and the &amp;#8220;typical&amp;#8221; open floor plan office? Library culture. If you start cracking up and having a loud conversation in the middle of library, you are certainly going to get stern looks. If you keep it up, the librarian is probably going to kick you out. It&amp;#8217;s a group space that is focused on solitude. I know that sounds like an oxymoron. &amp;#8220;Group space focused on solitude.&amp;#8221; Sure, you can work together, but keep it quiet. This lets people really get heads down and work on something without feeling antisocial. This sort of open floor space has worked for many, many years. It can work for your open floor plan too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;But what about our culture of enjoying the company of the people we work with?&amp;#8221;, you may ask. I never said that you couldn&amp;#8217;t. Might I propose the 40/60 theory? What&amp;#8217;s this 40/60 theory? It&amp;#8217;s actually pretty simple. 60% of your office space is dedicated to being a sort of library space. Quiet, group solitude space. The other 40% is dedicated to spaces where people can relax, talk, drink beer, or whatever else they want to do together. One key to this is that the 40% space does not include things like the lunch/break room, conference rooms, or other similar spaces. The 40% space should have lots of places to sit. Comfy chairs, couches, and cafe tables come to mind for me. Whiteboards everywhere; all over the walls and a few standalone ones on casters. This would be where you keep your games too. Perhaps a nice big projector for watching &lt;em&gt;fun&lt;/em&gt; stuff together. The 40% space is where people can go and just relax. You could also do work there. Perhaps you&amp;#8217;re in the mindset of craving interaction but still want to hack on something. This is where you go. Having a 40/60 space would allow people to match their environment to their mindset at the moment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mindset. I guess a lot comes down to your mindset. Now, I&amp;#8217;m not saying you need to find some way to alter your mindset in order to do great work. I would never expect someone to do so though. Neither should you or your business expect that. I know that, for me, the times I&amp;#8217;ve done my best work is when I&amp;#8217;ve been able to match my environment to my mindset. Not the other way around. (I honestly don&amp;#8217;t know if matching mindset to environment is even possible. If it is, it must be hard.) By giving people a choice of environments to work at, in the office, you give them the ability to match their environment to their mindset. I cannot stress this enough. &lt;strong&gt;This is important!&lt;/strong&gt; Though, honestly, sometimes a 40/60 space still isn&amp;#8217;t enough. When a 40/60 space just won&amp;#8217;t cut it, turn to the rest of the world. Perhaps working in the office just isn&amp;#8217;t jiving with someone today. Find out what&amp;#8217;s up and, if possible, fix it and make the office that much better. If it isn&amp;#8217;t something you can fix, but that person feels they could do better work somewhere else&amp;#8230; &lt;span class=&quot;caps&quot;&gt;LET&lt;/span&gt; &lt;span class=&quot;caps&quot;&gt;THEM&lt;/span&gt;! If someone knows they could do work better from some other place, that&amp;#8217;s awesome and let them run with it. &amp;#8220;The place you are free to leave is the place you are free to be.&amp;#8221; Personally, if I know I could do better work somewhere else, but I&amp;#8217;m not allowed to do my work there, I feel depressed and trapped. This is &lt;strong&gt;bad&lt;/strong&gt; and is heavily against doing great work. Even allowing your employees to work from home &amp;#8220;as long as they let &amp;#8216;some-manager&amp;#8217; know&amp;#8221;, isn&amp;#8217;t enough. Give your people complete freedom to work where they know they will be able to do their best work and you can expect great things.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;But&amp;#8230; if everyone isn&amp;#8217;t in the office, how will we know work is getting done? How will we work together?&amp;#8221;, you might ask. Well, as far as work getting done, that should be rather simple. Is work getting done? If yes, great! If no, try talking to the person who isn&amp;#8217;t getting their work done. The thought that being able to physically see someone somehow ensures that work is getting done is absolute rubbish. All you can tell from looking at someone is if they are staring at their screen. Woop-de-fuckin&amp;#8217;-do. Your standard for &amp;#8220;gets shit done&amp;#8221; should involve actually looking at the output of what they do. As for working together, remember the whole massively diminishing returns related to group size? Well, there&amp;#8217;s a simple solution to this issue. Firstly, give people a way to communicate asynchronously. Then, trust that your people will do whatever needs to be done in order to do awesome work. I don&amp;#8217;t think this is terribly revolutionary, but it seems like people miss this all the time. Let&amp;#8217;s say a couple of people are chatting about something. They decide that it would be cool to attack this issue with a whiteboard but, they are both working remotely today. One is at a cafe and the other at home. If you think, at all, that &amp;#8220;Well, I guess they can&amp;#8217;t collaborate together.&amp;#8221;, then you&amp;#8217;re a moron. However, there is hope. Since you&amp;#8217;ve empowered your people to do whatever they need to do to accomplish awesome work, they might just agree to both come by the office and hack it out in the 40% space tomorrow! That&amp;#8217;s like&amp;#8230; revolutionary!&amp;#8230; or something. I don&amp;#8217;t know. Maybe it&amp;#8217;s just me, but I think it&amp;#8217;s fucking common sense. Let people do whatever is necessary to do awesome work. Get out of their way and trust them to get it done.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What if you want to design a physical space to really leverage what I&amp;#8217;ve mentioned? Maybe you have the chance to build out a new office space, from scratch, however you&amp;#8217;d like. What can you do to help encourage a &amp;#8220;collective solitude&amp;#8221; type of space. I propose using physical barriers to build small nooks where people can work, yet still feel connected to the primary space. Kind of like a maze. No, not a cubicle farm. (Those can die in a fire.) Instead of crappy cubicle walls or office spaces, how about we borrow another concept from the library. Bookshelves. Go to ikea, buy a bunch of those bookshelves that look like some kind of grid. Fill them with all the books you can. If you don&amp;#8217;t have enough books to fill all the space, then they have those little cubble-hole looking box things that fit in the grid. I&amp;#8217;m certain that the grid bookshelves are less expensive than cubicle walls or a real wall. I&amp;#8217;m also sure that surrounding everyone with awesome books will benefit everybody. Such a setup, using bookshelves to separate spaces into areas where three to four people can sit down and work, will permit people to work without the distraction of people walking around the room. It will also help to dampen noises. Did I mention how great it would be to be surrounded by awesome books? Seriously. Do this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Recap&amp;#8230; Give people options in their work spaces. One size does not fit all. Let people match their work environment to their current mindset. Let people work in groups naturally. Don&amp;#8217;t force it. Let people do whatever is necessary to do kickass work and then trust them to do so. Make your office into the sort of varied, flexible, awesome space where people actually &lt;strong&gt;want&lt;/strong&gt; to be. Ultimately, it comes down to one simple thing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think back to the time when you&amp;#8217;ve done your best work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Your Text Editor Makes a Difference</title>
   <link href="http://liberumvir.com/2012/04/22/your-text-editor-makes-a-difference.html"/>
   <updated>2012-04-22T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2012/04/22/your-text-editor-makes-a-difference</id>
   <content type="html">&lt;h2&gt;Your Text Editor Makes a Difference&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 22 Apr 2012 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;h3&gt;&amp;#8220;Hello&amp;#8230; My name is Jared and I&amp;#8217;m a recovering Modal Text Editor addict.&amp;#8221;&lt;/h3&gt;
&lt;p&gt;I&amp;#8217;ve used a fair number of text editors in my time, as I&amp;#8217;m sure most technologists have. I started with Nano, as that was what Arch Linux examples suggested. As my workload requirements increased, it became clear that Nano wasn&amp;#8217;t going to cut it. To top it off, most of the systems I was working on did not include Nano. Hell, they didn&amp;#8217;t even include Vim. So, there I was, faced with Vi. I figured Vi/Vim were more common on these older Unix systems I was administrating, so I might as well learn it.&lt;/p&gt;
&lt;p&gt;Diving into Vim, I taught myself through various cheatsheets and tutorials I found online. I found it quite nice and it certainly helped my productivity. However, I still found myself longing for some kind of visual control options. I found my way to Gvim, of course. Gvim sated my desiire for some kind of visual control and there I stayed for quite a while. I still had to use Vi/Vim while on remote systems, of course. However, for working on my local files, I enjoyed the options available to me with Gvim.&lt;/p&gt;
&lt;p&gt;More recently, I&amp;#8217;ve found myself working with code a lot while teaching myself Python and Ruby. Going from working with the occasional config file to working on multiple files for a code project shined some seriously bright light on the rough edges of my current editors. Even with Gvim and all it&amp;#8217;s advantages, I still found myself having to pay some attention to the editor. So, my search continued to find something that suited my new requirements. This led me to Gedit.&lt;/p&gt;
&lt;p&gt;I had heard of Gedit before, of course. I just had never given it much use. Basically, it is the Gnome equivalent to Kwrite. I had used both on occasion and found myself going back to them. Tabs for my files and easier management were significant advantages I found. Gedit definitely made my life easier. (Isn&amp;#8217;t that what software is supposed to do?) So, I customized my Gedit with a nice dark theme (similar to the one found for TextMate) and got to hacking on my code. Life was good.&lt;/p&gt;
&lt;p&gt;Now, as I wrote code more often, I began to think about some of the repetition issues. Mind you, Gedit does have an awesome snippets plugin (like many text editors) and I made significant use of it. However, there was some friction I noticed that I wished my editor could help me out with. For example, when I type in a left parenthesis, I want the matching right parenthesis to appear as well. The same goes for most of the oft used punctuation of code. Gedit did provide some indentation help, however, there was friction there too. It didn&amp;#8217;t autoindent when I typed out a block of code, like a for loop or something. I didn&amp;#8217;t think much of it, when I first started to learn programming. I would just tab things myself and move on. However, this little, tiny friction point eventually becomes noticeably painful, kind of like getting a blister while hiking.&lt;/p&gt;
&lt;p&gt;So off I went, yet again, in search of a new editor. I knew I needed something that was more specifically targetted at writing code. Gvim and Gedit did alright, but they were, first and formost, simple, plain text editors. I looked at some development environments. While their features seemed to solve many of the pain points I experienced with the simple text editors, they introduced a massive amount of bloat that I knew I simply wouldn&amp;#8217;t be able to accept.&lt;/p&gt;
&lt;p&gt;Now, anyone who&amp;#8217;s written much of any Ruby code has probably heard about TextMate. Sounds pretty cool. Problem.. it is only for &lt;span class=&quot;caps&quot;&gt;OSX&lt;/span&gt;. I certainly prefer running Linux Mint for my OS and intend on keeping it that way. So, TextMate is out. There are certainly many &amp;#8220;tweaks&amp;#8221; for Gedit, but it still didn&amp;#8217;t achieve the level of polish I hear about from those who use TextMate.&lt;/p&gt;
&lt;p&gt;Eventually my search lead me to Sublime Text 2. When I first read about it, I wrote it off. &amp;#8220;There&amp;#8217;s no way it can be &lt;em&gt;that&lt;/em&gt; good. Besides, I really don&amp;#8217;t want to pay for a text editor. It certainly can&amp;#8217;t be worth the $59.&amp;#8221; So, back to Gedit for me, I thought. (I&amp;#8217;ll just ignore the pain.)&lt;/p&gt;
&lt;p&gt;So, I&amp;#8217;m hacking away in Gedit on the Rails Tutorial I found. I come to chapter 3, I believe it was, and I notice this guy keeps pushing for Sublime Text. He keeps suggesting it, subtly but surely. I figure, if this guy is so good with Rails to have written an awesome tutorial, he probably knows what he&amp;#8217;s suggesting with Sublime Text. I guess it&amp;#8217;s worth checking out. I go download it and fire it up.&lt;/p&gt;
&lt;p&gt;At first glance, I find it&amp;#8217;s interface to be simple, clean, and yet still beautiful. The default color scheme is a sane, dark theme. Code colors and highlights are simple and clear. &amp;#8220;Hmmm&amp;#8230;&amp;#8221;, I think. &amp;#8220;Let&amp;#8217;s give this a try.&amp;#8221; I start working my way through the tutorial again. That&amp;#8217;s when my jaw drops.&lt;/p&gt;
&lt;p&gt;Remember those parenthesis (or other paired punctuation)? Suddenly, they are created in pairs and my cursor placed between them! I start typing out my functions and it indents perfectly. It recognizes my statements and indents appropriately. I then decide to pause my study of the Tutorial and learn more about this Sublime Text 2.&lt;/p&gt;
&lt;p&gt;I start looking through the documentation, which is pretty dense. I decide, instead, to go find some reviews or suggested usage tips on the Intarwebs. Each thing I discover just adds more to the awesomeness I already know. Here, let me share a few things I love.&lt;/p&gt;
&lt;h3&gt;Simple Beauty&lt;/h3&gt;
&lt;p&gt;I know &amp;#8220;beauty is in the eye of the beholder&amp;#8221; and I&amp;#8217;m sure there are plenty of people who prefer light color schemes instead of the dark ones I prefer. Luckily, Sublime Text 2 has that too.&lt;/p&gt;
&lt;h3&gt;Really Fucking Fast&lt;/h3&gt;
&lt;p&gt;Seriously. Opens practically instantly. I created a symlink (like &amp;#8220;sudo ln -s /home/shepbook/Sublime\ Text\ 2/sublime_text /usr/bin/subl&amp;#8221;) and I can start it with my ALT+F2 run command option in Gnome, just by typing in &amp;#8220;subl&amp;#8221; (of course, one could do this from your terminal as well). Even better, I can open a folder in the same way, like &amp;#8220;subl /path/to/folder&amp;#8221; and Sublime Text opens it in the left side bar. Great for managing a large project. Oh, and did I mention that even this is really fast&amp;#8230; like measured in milliseconds fast.&lt;/p&gt;
&lt;h3&gt;Magical &amp;#8220;GoTo Anything&amp;#8221; search&lt;/h3&gt;
&lt;p&gt;Press CTRL+P and you get this handly little drop down box. Start typing and you can search for any file in your project. It searches for both filenames and complete paths. Then, once you find the file, you can type &amp;#8220;@&amp;#8221; and it give you a list of all the methods in the file. Need to jump to a line in that file? Some Vim awesomeness has carried over (since it was originally inspired by Vim)&amp;#8230; just CTRL+P and then type &amp;#8220;:&amp;#8221; followed by the line number.&lt;/p&gt;
&lt;h3&gt;Sublime Package Control&lt;/h3&gt;
&lt;p&gt;There&amp;#8217;s a thing called &amp;#8220;Package Control&amp;#8221; for Sublime Text and it makes installing plugins and extensions a piece of cake. CTRL+SHIFT+P drops down the &amp;#8220;Command Palette&amp;#8221;. Type out what you want to do, say &amp;#8220;install package&amp;#8221; and press enter. It will then pop out a list of packages you can install, which you can text search through, of course.&lt;/p&gt;
&lt;h3&gt;Git Control&lt;/h3&gt;
&lt;p&gt;There&amp;#8217;s a Git plugin, which you can install with the Package Control. This puppy lets you do all your favorite Git commands from within Sublime Text.&lt;/p&gt;
&lt;h3&gt;Many More Plugins&lt;/h3&gt;
&lt;p&gt;There are lots more plugins, which warrent your looking through them. There&amp;#8217;s a linter, code completion, word highlights. If you use &lt;span class=&quot;caps&quot;&gt;SFTP&lt;/span&gt; a lot, there is a plugin (though, not free) for managing that flawlessly.&lt;/p&gt;
&lt;h3&gt;Simple Configuration&lt;/h3&gt;
&lt;p&gt;There are no crazy menus or configuration tools you have to nagivate through, in order to customize Sublime Text 2. Instead, everything is easily configured in simple text files. While some may not consider this &amp;#8220;easier&amp;#8221;, it is simpler. Coming from an Arch Linux background, this style of configuration management is very, very much welcome.&lt;/p&gt;
&lt;h3&gt;Give It a Try. You Won&amp;#8217;t Regret It.&lt;/h3&gt;
&lt;p&gt;Hopefully, this article has shown you some things that could make your life better, as well. I know there will be many people who simply don&amp;#8217;t want to use Sublime Text, for many different reasons. Top of the list seems to be 1) not open source 2) $59 license fee.&lt;/p&gt;
&lt;p&gt;I understand not liking it&amp;#8217;s closed source binary ways. This part also put me off. However, I&amp;#8217;m not &lt;span class=&quot;caps&quot;&gt;RMS&lt;/span&gt;. If something genuinely makes my life and work better, I&amp;#8217;ll give it a try. If you have political or ethical issues with this, I really can&amp;#8217;t help you there. The advantages I get out of Sublime Text 2 outweigh the disadvantage of it being closed source.&lt;/p&gt;
&lt;p&gt;The license fee also seems to put a lot of people off. I was one of those people too, at first&amp;#8230; until I gave it a try. Sublime Text 2 offers a free evaluation period, without time or funtionatility limits on the program. The only difference between the unregistered or registered version is that when you save a file on the unregistered version, it will occasionally (rarely, even) pop up a little box and say something to the effect of &amp;#8220;please buy a license if you like it&amp;#8221;. Honestly, my productivity is significantly improved by Sublime Text 2. I can easily justify paying the $59 license fee. The way I see it, if it saves me even one hour of collective time over the next year, it will have paid for itself, many times over. For me, my time is the most valuable thing I have. If I can spend less time working and do more in that time, then I can spend more time doing other things that matter more to me.&lt;/p&gt;
&lt;p&gt;Besides all the time I save by using it, it simply makes coding &lt;strong&gt;better&lt;/strong&gt;. A friend asked me to explain what made Sublime Text 2 so much better or what about it makes me more productive. If the benefits above don&amp;#8217;t seem to justify it for you, just give it a try. You&amp;#8217;ll be glad you did.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Comment and Discuss at &lt;a href=&quot;http://news.ycombinator.com/item?id=3877083&quot;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(I am not in any way associated with Sublime Text nor have I recieved any compensation from them.)&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>The Laws of Business Success</title>
   <link href="http://liberumvir.com/2012/04/16/laws-of-business-success.html"/>
   <updated>2012-04-16T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2012/04/16/laws-of-business-success</id>
   <content type="html">&lt;h2&gt;The Laws of Business Success&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 16 Apr 2012 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;p&gt;I came upon &lt;a href=&quot;http://www.manager-tools.com/docs/Horstmans_Laws.pdf&quot; target=&quot;_blank&quot;&gt;Horstman&amp;#8217;s Laws&lt;/a&gt;. Certainly worth a read.&lt;/p&gt;
&lt;p&gt;I was feeling artsy. This is what came out of it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.liberumvir.com/images/laws-of-business-success.png&quot; width=&quot;80%&quot;&gt;&lt;/p&gt;
&lt;p&gt;I think the Laws apply to more than just management though. I believe they apply to all aspects of business success or even, perhaps, all of life. I&amp;#8217;ve added a few things not in Horstman&amp;#8217;s Laws but I feel they also apply.&lt;/p&gt;
&lt;p&gt;So, what do you think? I hope you enjoyed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Quarter Century in the Making</title>
   <link href="http://liberumvir.com/2012/03/25/quarter-century-in-the-making.html"/>
   <updated>2012-03-25T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2012/03/25/quarter-century-in-the-making</id>
   <content type="html">&lt;h2&gt;Quarter Century in the Making&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 25 Mar 2012 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;p&gt;Today, as of 7:12pm, I&amp;#8217;m officially a quarter of a century old.&lt;/p&gt;
&lt;p&gt;That makes me feel&amp;#8230; old.&lt;/p&gt;
&lt;p&gt;I estimate that about one-third of my useful life is gone, never to be seen again. While it&amp;#8217;s true that I may indeed live to be older than 75, I don&amp;#8217;t expect to be terribly productive at that age.&lt;/p&gt;
&lt;p&gt;All of this is rather depressing, to be honest. So, I&amp;#8217;m going to try to focus on some positive things that have happened since the last time I visited this square on my calendar.&lt;/p&gt;
&lt;h3&gt;Good things that occurred during my 24th year of life:&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;I married the love of my life.&lt;/li&gt;
	&lt;li&gt;I switched from focusing on nursing to pursuing my passion of computer systems administration (and, coming soon, programming).&lt;/li&gt;
	&lt;li&gt;I attended my first tech conference. (Surge 2011)&lt;/li&gt;
	&lt;li&gt;I&amp;#8217;ve met some amazing people, whom I consider mentors.&lt;/li&gt;
	&lt;li&gt;I&amp;#8217;ve learned a great deal about businesses and startups.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All these things are pretty cool, however, looking forward I see some things I need to improve upon.&lt;/p&gt;
&lt;p&gt;For example, I&amp;#8217;ve come to the realization that being a systems administrator (or &amp;#8220;site reliability engineer&amp;#8221;, if you prefer the &amp;#8220;fancy&amp;#8221; title) simply isn&amp;#8217;t going to be enough. This is my reason for studying programming. My future depends on being more than just a systems administrator. On the other hand, being just a developer wouldn&amp;#8217;t cut it either. The lines between systems operations and software development become fuzzier each day. I believe that sysadmins and devs have to make a choice. This choice separates the merely mediocre from the exceptional. What is this choice? Simple.&lt;/p&gt;
&lt;h3&gt;Specialization or Generalization&lt;/h3&gt;
&lt;p&gt;You must choose to specialize or generalize. If you&amp;#8217;re a sysadmin, to specialize would mean to delve deeper into the systems you work with and integrate new ones as you find them useful. If you&amp;#8217;re a developer, to specialize would mean compiling an ever larger understanding of the languages you work with each day. As new languages appear, you&amp;#8217;ll integrate them into your arsenal.&lt;/p&gt;
&lt;p&gt;However, to specialize is to destroy your future. While the above examples of specialization may at first glance appear to be broad in spectrum (learning and integrating new systems or languages), their scope is self-limiting. You can only be so broad of a sysadmin or developer.&lt;/p&gt;
&lt;h3&gt;To generalize is to thrive.&lt;/h3&gt;
&lt;p&gt;You can choose to specialize and become the best developer or sysadmin you can. However, such a choice will never approach exceptional. The master generalist, what I call a &amp;#8220;Full Stack Technologist&amp;#8221; (&lt;span class=&quot;caps&quot;&gt;FST&lt;/span&gt;), is the future. The &lt;span class=&quot;caps&quot;&gt;FST&lt;/span&gt; is a proficient software engineer. The &lt;span class=&quot;caps&quot;&gt;FST&lt;/span&gt; is an exceptional systems administrator. I consider the optimal balance between software engineering and systems administration for an &lt;span class=&quot;caps&quot;&gt;FST&lt;/span&gt; to be ~40/60. This doesn&amp;#8217;t mean the &lt;span class=&quot;caps&quot;&gt;FST&lt;/span&gt; is half-assing it in either category. It means that the &lt;span class=&quot;caps&quot;&gt;FST&lt;/span&gt; is has a deeper understanding of systems than programming. FSTs are capable of writing production level code, however, their greatest strengths are in debugging. FSTs don&amp;#8217;t specialize in programming, so they may never deliver code so beautiful that it brings tears to your eyes, however, given the choice of having either a &amp;#8220;Beautiful Code Programmer&amp;#8221; or a &amp;#8220;Full Stack Technologist&amp;#8221; design and write a piece of software for me, I would choose the &lt;span class=&quot;caps&quot;&gt;FST&lt;/span&gt; every time. Every. Single. Time. No exceptions.&lt;/p&gt;
&lt;p&gt;Why? A Full Stack Technologist is the ultimate generalist. The &lt;span class=&quot;caps&quot;&gt;FST&lt;/span&gt; sees and understands all. From the high-level code to the bare metal and everything in between. When things go wrong, this is the person you want at the helm. Better yet, when you prefer things to go right from the start, this is the person you &lt;strong&gt;need&lt;/strong&gt; at the helm.&lt;/p&gt;
&lt;p&gt;Do these Full Stack Technologists exist? Yes, though I know of very few. Am I a Full Stack Technologist? Not yet. However, this is my goal. Do I expect to be a Full Stack Technologist by this time next year? Hell no. I do, however, expect myself to have made significant progress toward this goal by this time next year. I have some personal goals that I intend on reaching, and in order to give myself the best chance of achieving them, I don&amp;#8217;t intend on talking much about them. While I can&amp;#8217;t top every item on my list from this year (you can only marry the love of your life once), I do intend on expanding upon that list and having plenty more to show off next year.&lt;/p&gt;
&lt;p&gt;Feel free to join me in this pursuit. Otherwise, stay tuned.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;(P.S. If you want to be a Full Stack Technologist, please, for your own sake, stop calling yourself a &amp;#8220;DevOp&amp;#8221;. It will only hold you back and you sound rather moronic&amp;#8230; &amp;#8220;Hi! I&amp;#8217;m a DevOp!&amp;#8221;)&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>
 
 <entry>
   <title>State of the (Automation) Union</title>
   <link href="http://liberumvir.com/2012/03/21/state-of-the-automation-union.html"/>
   <updated>2012-03-21T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2012/03/21/state-of-the-automation-union</id>
   <content type="html">&lt;h2&gt;State of the (Automation) Union&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 21 Mar 2012 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;p&gt;This past Tuesday (March 12th), I went to the DevOpsDC meetup. The topic was automation. They had someone from CFEngine and Canonical come in to present their automation toolsets. The organizers represented Chef and Puppet. The idea was a kind of &amp;#8220;automation tool thunderdome&amp;#8221;. While it wasn&amp;#8217;t quite &lt;em&gt;that&lt;/em&gt; exciting, I did learn a good bit. Here are my perceptions of the &amp;#8220;contenders&amp;#8221;.&lt;/p&gt;
&lt;h3&gt;CFEngine&lt;/h3&gt;
&lt;p&gt;There were a couple of CFEngine guys there. The one that did the presentation seemed like the seasoned sysadmin type. He told us about how CFEngine evolved, embracing theories and philosophies along the way to growing up. He offered a high level overview of how CFEngine works. This is where the presentation started to falter though. The attendees started to latch on to points of insecurity. Unfortunately, this threw the presenter off kilter to the point where he couldn&amp;#8217;t even properly finish his presentation. I&amp;#8217;m sure the attendees had legitimate concerns about security, but that would be something to bring up after the presentation, not during. It did seem to revolve around IP authentication which, if true, is horribly foolish. Unfortunately, the presentation degraded into pointlessness after miscommunication and an overwhelming sense of &amp;#8220;tear the &amp;#8216;expert&amp;#8217; down&amp;#8221; destroyed it.&lt;/p&gt;
&lt;p&gt;Unfortunately for CFEngine, that wasn&amp;#8217;t so much what gave me a bad taste about it. What did it for me is when the talk, fairly early on, shifted from &amp;#8220;technology and applied theories&amp;#8221; to &amp;#8220;Look at our big clients&amp;#8221;. Whenever a product presentation starts resting on the laurels of its large clientele, instead of the power and superiority of its offering, I tend to tune out and discount it. Perhaps this is just a bias of mine. Sure, some really big banks and organizations use it extensively. That doesn&amp;#8217;t mean I want to use it in my infrastructure. To its credit though, CFEngine is really fucking fast. It is written in C, requires no dependencies, and outshines all others I&amp;#8217;ve seen, in speed. Unfortunately, speed isn&amp;#8217;t everything and there were some security flaws brought up. Personally, I&amp;#8217;ve moved on.&lt;/p&gt;
&lt;h3&gt;Juju&lt;/h3&gt;
&lt;p&gt;The guy from Canonical definitely had a west coast air about him. A sort of laid back, cocky, cool guy vibe. Totally fits in with my vision of Canonical. He was a developer on the Juju project, so he generally knew his project stuff well. The downside is that he was overwhelmingly a developer. Juju, and consequentially his presentation, is aimed at Ubuntu. Sorry, not just aimed at&amp;#8230; but solely for Ubuntu. Of course, this immediately put off the ole&amp;#8217; salty dogs of the Unixes past. Personally, I&amp;#8217;ve got no problem with Ubuntu and, if given the choice of which OS is going on my server, it&amp;#8217;s my go to distro. However, I know this made the presentation, from a really early point, completely unpalatable to a few attendees.&lt;/p&gt;
&lt;p&gt;About the technology side of things. Juju is a completely different take on the whole idea of automation. Really, it&amp;#8217;s not about automation. It&amp;#8217;s about orchestration. Not really system orchestration though, but service orchestration. Unfortunately, right now, it&amp;#8217;s in its early stages. By early, I mean alpha-beta. Would I want it handling my production architecture? Hell no! Would I toy with it in a cluster of virtual machines? Sure, could be fun. Right now, Juju just needs to grow up. Maybe it will have something to show off in a few years. Currently, don&amp;#8217;t waste your time.&lt;/p&gt;
&lt;h3&gt;Puppet&lt;/h3&gt;
&lt;p&gt;Puppet didn&amp;#8217;t really receive a fair shake. Honestly, I didn&amp;#8217;t really learn much about it and so, in the interest of fairness, I will not be passing a judgement on it. I know lots of people love it. I know plenty hate it. The overwhelming tone of the presentation did make me feel like it was painful, both the presentation and the use of puppet. Ultimately, I felt like the presenter was actually making a great case for&amp;#8230;&lt;/p&gt;
&lt;h3&gt;Chef&lt;/h3&gt;
&lt;p&gt;Chef was the final presentation of the night. The presentation had a welcome depth to it, while still maintaining an &amp;#8220;overview&amp;#8221; feeling to it. My own personal experience with automation has been with Chef, so much of the presentation felt familiar to me.&lt;/p&gt;
&lt;p&gt;Chef has the good theory parts of CFEngine with some of the hackiness of Puppet, and a giant bucket of polish. While it is still new and growing, as the presenter pointed out, so much is available for you to do with Chef. The whole of the Ruby language is at your disposal.&lt;/p&gt;
&lt;h3&gt;Conclusions&lt;/h3&gt;
&lt;p&gt;As the presentations ended and the meetup came to a close, we were given a proverb that I hold as a tenant of the DevOps movement. &amp;#8220;Use what works for you. If the tool fits the job well, you like using it, and it makes your life easier, then use it.&amp;#8221; Really, this is all it comes down to, at the end of the night.&lt;/p&gt;
&lt;p&gt;My opinion, I&amp;#8217;m rolling with Chef any time I need automation. That&amp;#8217;s not to say I don&amp;#8217;t recognize the others. It&amp;#8217;s just what I prefer. Some things are worth pointing out though, about the others. Chef is where it is today, by standing on the shoulders of giants. CFEngine pushed the paradigms that we now see in both Chef and Puppet. Puppet surely influenced Chef, if with nothing but Ruby. Juju is playing it&amp;#8217;s own game right now, and it will be interesting to see where it goes. I do believe that, if you couple Juju with something like the &amp;#8220;platform as a service&amp;#8221; (PaaS), then you will go far. It just isn&amp;#8217;t meant for getting into the nitty gritty of a system. It&amp;#8217;s much more high level and, really, it just wouldn&amp;#8217;t be the right tool for that job.&lt;/p&gt;
&lt;p&gt;So, recap&amp;#8230;&lt;/p&gt;
&lt;p&gt;CFEngine seems great if you have complete and perfect control of your network, you need many more servers (orders of magnitude more) than the average business, and you therefore need the shear speed of well-compiled C.&lt;/p&gt;
&lt;p&gt;Juju has too much growing up to do for me to take seriously, right now. It does, however, seem &lt;em&gt;really&lt;/em&gt; good at standing up a local wikimedia install on your laptop. Then again, so are my shell scripts.&lt;/p&gt;
&lt;p&gt;Puppet seems great if you already know a lot of Puppet stuff or have the willpower to do the hacky work required.&lt;/p&gt;
&lt;p&gt;Chef is the go to standard (or should be) of most sysadmins I meet everyday. It has struck a good balance of power and simplicity. If you&amp;#8217;re starting out, start here.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>The Art of the Critique</title>
   <link href="http://liberumvir.com/2012/03/18/the-art-of-the-critique.html"/>
   <updated>2012-03-18T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2012/03/18/the-art-of-the-critique</id>
   <content type="html">&lt;h2&gt;The Art of the Critique&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 18 Mar 2012 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been working to publish my first &amp;#8220;official&amp;#8221; article. It&amp;#8217;s &amp;#8220;official&amp;#8221; in that it is meant for my company&amp;#8217;s blog of sorts. Having my article edited by someone else was an interesting experience. It&amp;#8217;s the first time I&amp;#8217;ve had this done. One thing I noticed was a difference in editing styles.&lt;/p&gt;
&lt;p&gt;The person who did most of the editing primarily just went about correcting all my little typos and such. That was awesome. Occasionally I would be asked what I meant about something and would be asked for clarification. This was quite awesome as well.&lt;/p&gt;
&lt;p&gt;Then there were the people who didn&amp;#8217;t do so much editing as they did critiquing. Mind you, I&amp;#8217;m cool with critiquing, even if I don&amp;#8217;t agree with the critic&amp;#8217;s opinion. One thing I noticed was how different critique could feel, even when the critique carried the same underlying message.&lt;/p&gt;
&lt;p&gt;When you critique someone&amp;#8217;s work, you have options. One way to do it is to say how you disagree with a point and then share what you believe or think to be the correct point. This goes something like, &amp;#8220;No, I don&amp;#8217;t agree. In fact, I think this is wrong.&amp;#8221; and then state your opinion that goes against the original point. While this may fulfill the critic&amp;#8217;s desire to critique the work and share a dissenting opinion or point, it doesn&amp;#8217;t actually help the writer of the original piece. The writer probably spent a fair bit of time writing out whatever you&amp;#8217;ve just critiqued. If you just dissent and never help the writer understand why you are dissenting, how is that helpful? Obviously, you are attempting to share your thoughts with the writer and the whole objective of editing is to create a better end product. So, how was your critique supposed to help the writer produce a better piece?&lt;/p&gt;
&lt;p&gt;Another way to critique and dispute a point is to provide the writer with some new information or understanding that he may not have had before. Let&amp;#8217;s say you&amp;#8217;re critiquing an article and you bring up a point you disagree with, to the writer. Perhaps it goes something like this, &amp;#8220;I don&amp;#8217;t agree with this particular part here&amp;#8230; Let me explain why&amp;#8230;&amp;#8221; and then share with the writer your reasons for considering it wrong. Yes, this takes more time and effort than simply saying, &amp;#8220;I don&amp;#8217;t agree. Here&amp;#8217;s my opinion instead.&amp;#8221; however, the outcome is far more positive.&lt;/p&gt;
&lt;p&gt;In my experience, the first editor, doing all the corrections and requests for clarification was simply awesome. There wasn&amp;#8217;t much of any input on the content matter, but that&amp;#8217;s ok. I didn&amp;#8217;t expect that person to do so. The second and third editors are where I noticed the biggest difference in effectiveness. The second editor simple left me frustrated and perhaps even a bit intimidated. I didn&amp;#8217;t know what to think or do after discussing about the article. I literally hit a mental block. Then, I talked with the third editor who explained things completely differently. Even though the third editor agreed with the second editor, the way the point was approached was completely different. The fact that there was a detailed and significant explaination for the &amp;#8220;why&amp;#8221; of the dissenting opinion made the critique successful. When I was finished discussing the article with the third editor, I felt great. My mental block had cleared, I understood &amp;#8220;why&amp;#8221;, and I even learned a good bit. That evening, after talking with the third editor, I did a massive rewrite of my article. I trimmed out unessential bits and completely rewrote the controversial portion. In fact, with what I learned from the discussion with the third editor, I changed my stance significantly. The third editor&amp;#8217;s critique genuinely opened my mind to a different way of thinking.&lt;/p&gt;
&lt;p&gt;In the end, this is simply one example from my one experience about editorial critique. Take it or leave it. I do think it outlines some good points, particularly for those who edit the articles of an introvert (like myself). Primarily, if you disagree with a point, don&amp;#8217;t just say you disagree and state your opinion. Give a good reason why you disagree. Explain it in detail. Chances are, the person who wrote the article came to the opinion they did after significant thought and hard work. They are going to want a good reason why you disagree with their writing. Give it to them. They still may not agree with your critique, but I guarantee you that they will have more respect for you. In the end, building the best piece possible is the whole point of the editorial process. Keep this in mind and you too can give good, helpful critique.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>A New Home</title>
   <link href="http://liberumvir.com/2012/03/14/a-new-home.html"/>
   <updated>2012-03-14T00:00:00-04:00</updated>
   <id>http://liberumvir.com/2012/03/14/a-new-home</id>
   <content type="html">&lt;h2&gt;A New Home&lt;/h2&gt;
&lt;p class=&quot;meta&quot;&gt; 13 Mar 2012 &amp;#8211; Jared Koumentis &lt;/p&gt;
&lt;p&gt;Finally, a blog! I hope to amuse and enlighten you with my writings. No guarantees though. Feel free to keep an eye on things. Improvements will happen on the fly. I test on prod. :P&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- ShepBook&lt;/strong&gt;&lt;/p&gt;</content>
 </entry>
 
 
</feed>
