Blog Fiasco

September 7, 2014

FAQs are not the place to vent

Filed under: HPC/HTC,Musings,The Internet — Tags: — bcotton @ 2:42 pm

I’ve spent a lot of my professional life explaining technical concepts to not-necessarily-very-technical people. Most of the time (but sadly not all of it), it’s because the person doesn’t need to fully understand the technology, they just need to know enough to effectively do their job. I understand how frustrating it can be to answer what seems like an obvious question, and how the frustration compounds when the question is repeated. That’s why we maintain FAQ pages, so we can give a consistently friendly answer to a question.

You can imagine my dismay when my friend Andy shared an FAQ entry he found recently. A quantum chemistry application’s FAQ page includes this question: “How do I choose the number of processors/How do I setup my parallel calculation?” It’s a very reasonable question to ask. Unfortunately, the site answers it thusly: “By asking this question, you demonstrate your lack of basic understanding of how parallel machines work and how parallelism is implemented in Quantum ESPRESSO. Please go back to the previous point.”

The previous question is similar and has an answer of of “See Section 3 of the User Guide for an introduction to how parallelism is implemented in Quantum ESPRESSO”. Now that’s a pretty good answer. Depending on the depth of information in Section 3, it might be possible to answer the question directly on the FAQ page with an excerpt, but at least pointing the visitor to the information is a good step.

I don’t understand getting frustrated with a repeated FAQ. If the answers are so similar, copy and paste them. Or combine the questions. FAQs, user guides, and the like are great because you can compose them in a detached manner and edit them to make sure they’re correct, approachable, and not jerkish. FAQs are an opportunity to prevent frustration, not to express it.

August 28, 2014

Job requirements: often counterproductive

Filed under: Musings,Project Management — Tags: , , , — bcotton @ 7:53 pm

My friend Rikki Endsley shared an article from Quartz entitled “job requirements are mostly fiction and you should ignore them“. Based on how quickly my friends re-shared the post, it seems to have resonated with many people. The article is targeted at job applicants and the TL;DR is “apply for the job you want, even if you don’t think you’re qualified. Job postings are written to describe ideal candidates, even if they’re not realistic, and most hiring managers would gladly take someone who meets some of the requirements. When a characteristic is listed under “requirements” instead of “preferred”, potential applicants assume that they shouldn’t bother applying.

This isn’t true in all cases, of course. In some places, the requirements are well-written and the hiring manager doesn’t consider any applications that don’t meet the requirements. Other times, the initial evaluation is done by the human resources department and they apply the requirements strictly (as an anecdote, I know I’ve been rejected for more than one position because my degree was in the wrong field. This despite that I had experience in the position and the hiring manager asking HR for my resume specifically). In many cases, though, the “requirements” are a high bar. The Internet is full of (possibly apocryphal) stories of job postings wanting 7 years of experience in a 5 year old programming language.

Hiring managers aren’t addressed directly in the article, but there’s a lesson here for you: be careful when writing job requirements. Apart from scaring away people you might have otherwise ended up hiring (especially women, who are more likely to pass on jobs where they don’t meet all of the qualifications), you’re robbing yourself of a good way to weed out the truly unqualified. Especially when someone else is pre-screening applicants, I prefer to craft job postings as broadly as possible. I would much rather spend extra time reviewing applicants than miss out on someone who would have been a great hire. It’s a low-risk, high-reward decision.

It’s not cheap to hire people. Especially in small organizations, you don’t want to risk hiring someone who you’ll have to get rid of in six months. But turnover isn’t cheap, either. I haven’t studied this, but speaking from my own experience, I’m much more likely to leave a position when I feel like I’ve stopped growing. By hiring someone who is 80-90% of the way there instead of 100%, you buy yourself more time with this person, reducing turnover. Sure, you get less productivity initially, but allowing an employee to grow is a cheap way to keep them interested in their work.

Likewise, I don’t want to apply for a job where I could step in on day one and do everything. If I wanted a job that I could do easily, I’d still be in my first job. I bet I’d be really good at it by now, but my skills wouldn’t have expanded. As a friend-of-a-friend said “I don’t think I’ve ever applied for a job that I was qualified for.” If employers can write job requirements aspirationally, then potential applicants should be aspirational in job applications.

How to use HTCondor’s CLAIM_WORKLIFE to optimize cluster throughput

Filed under: HPC/HTC — Tags: , — bcotton @ 9:10 am

Not only do I write blog posts here, I also occasionally write some for work. The Cycle Computing blog just posted “How to use HTCondor’s CLAIM_WORKLIFE to optimize cluster throughput“. This began as a conversation I had with one of our customers and I decided it was worth expanding on and sharing with the wider community.

August 16, 2014

Fedora Board proposal

Filed under: Linux — Tags: , — bcotton @ 2:04 pm

In an email to the Fedora community this week, the Fedora Board asked for comments on a proposed change to how Fedora is governed. Although I haven’t been as active in Fedora as I’d like, I still contribute and I still have opinions on the proposal. The following post is the feedback I provided on the board-discuss mailing list. In accordance with the desire to keep discussion from fragmenting, I have disabled comments on this post.

My initial reaction to this proposal was “what did I just read?” At first glance, it looked like a move from a democracy to a dictatorship. I even used the phrase “the Shuttleworthization of Fedora.” Having taken the time to process the proposal, as well as look at the the accompanying material, my reaction has shifted. In the process of writing about the parts of the proposal I’d like to keep, I realize that I essentially came up with the same proposal in different terms. My two point summary:

  • Lengthen board terms to reduce turnover (I’m not necessarily in favor of the indefinite terms as presented, but one year is too short)
  • Change the board from being entirely at-large to being representative of major constituencies

The Fedora Board, at least from the perspective of an irregular contributor, is indeed a very passive organization. To some degree, I find that appropriate for our community, but I can appreciate the arguments that a more active board would benefit the community and the product we labor to produce. The questions that arise are: “how active should the board be?” and “how do we structure the board such that it meets this need?”

My concern is that we’re addressing the second question before addressing the first. We don’t know where we’re going, but we know how we’re going to get there! The thread on board-discuss back in September was unclear about the intended relationship between a re-imagined board and FESCo. The proposal as presented offers no additional clarity. The proposal talks of leading and doing without really talking about the scope of responsibility. Perhaps that’s the main problem with the board as currently constructed?

August 4, 2014

How I keep organized despite being an unorganized person

Filed under: Musings,Project Management — Tags: , , , , — bcotton @ 8:45 pm

I am not, by nature, a well-organized person. I’ve known people who are always on top of what they need to do and where things are. I can’t do that. And even though I generally do my best to make sure I meet my responsibilities on time, I’ve been known to let things languish too long by accident.

When my wife became pregnant with our second child, I was forced to adapt. Although the pregnancy ended with a healthy, full-term baby, it was a rough one for my dear wife. She was, much to her dismay, effectively confined to the couch for the better part of nine months (at least to the degree that one can remain stationary while parenting a two year old). This left me responsible for the bulk of the housework, in addition to working, grad school, and trying to be a husband and father.

Clearly, I needed to step up my organizational game. For a long time, I used TuDu to manage my todo list. It’s still, from a feature perspective, my favorite such tool, but the fact that mobile access required SSHing to my desktop was not the best user experience. I found Wunderlist and soon decided it was not only a great application, but also worth paying for.

Wunderlist soon became my crutch. Everything I had to do went into Wunderlist. With due dates, categories, and hashtag searches, I could easily see only what I needed to see. I knew the only way I would do things like clean the bathroom on a regular basis was if I had a gentle reminder, so I loaded up with recurring events. During a particularly hectic April (a major project at work had me working almost every night and weekend), I completely outsourced my days to Wunderlist. Whatever the list said, I did. I’m fortune that no one compromised my account,  because I’m not sure I would have paused to consider a “give me all your money” task.

Wunderlist, and more importantly my regular and dedicated use of it, has helped my organization tremendously. Gone are the days of accidentally forgetting to pay a bill because it wasn’t due at the same time as the rest (yes, yes, autopay. I only do that for bills that are semi-regular.) Despite being a one man show, the house is probably cleaner than it was with both of us able to contribute simply because things were regular and scheduled.

Another tool that I’ve fallen in love with, though I haven’t yet started making full use of is Trello. I was introduced to Trello at work. It’s what we use to track development work and large projects. I recently took my list of blog post it was out of Wunderlist and put them into Trello. Now I can have various posts in a variety of states and see at a glance where they are. I’ve introduced it to a community blog I contribute to and to a local free/open source software group I’m a part of.

Of course, I still use TaskJuggler for some things, but it’s not necessarily well-suited for managing my entire life. If I were to attempt to put all of my personal and work projects into a single TaskJuggler project, my computer might explode.

The downside to having everything I need to do mapped out for me is that it’s all so damn visible. When I get sick or tired (as of this writing, I’m a little bit of both), this wall of todo can be incredibly overwhelming. But I am disorganized and lazy by default,  so the fact that I have tools available to help me overcome these traits is generally a life-improver. Now if only there were an app that would clean my office for me…

July 29, 2014

Who’s competing with whom?

Filed under: Musings,The Internet — Tags: , , , — bcotton @ 7:33 pm

In Sunday’s Lafayette Journal & Courier, the USA Today section included an article by Matt Krantz comparing Microsoft and Apple. He treats the two companies as arch rivals, comparing them to the Cola War participants and to the longstanding animosity between fans of Ford and Chevy pickups. And he wasn’t wrong 20 years ago, but he is now. The OS wars are, if not entirely over, at least in a state of permanent cease-fire. Microsoft has very clearly won in volume; Apple turns a handsome profit. With the move toward a browser-based world, the OS on desktops and laptops is becoming increasingly irrelevant to mainstream consumers.

Indeed, the desktop and laptop are becoming less relevant (though not irrelevant, despite the slower sales in recent years). Over half of Apple’s Q3 2014 revenue came from iPhone sales. Macs (and the attendant Mac OS X) were a mere 15% of revenue. Apple could completely abandon the PC market tomorrow and still be fine. They’re clearly in the mobile device (and services) business today. Sure, Microsoft has a mobile offering. I’ve used a recent Windows Phone and it was pretty nice. But Microsoft is competing with Apple in the mobile space the same way that Apple is competing with Microsoft in the desktop OS space. As a hint, it’s the same way that this blog competes with Ars Technica.

If Apple is a mobile company, then who are they competing with? The obvious answer is Google. While Google doesn’t really do devices, they control the Android ecosystem (although the degree of control is debatable). Steve Jobs was willing to declare “thermonuclear war” on Android. I’m not aware of him harboring a similar hatred for the Windows Mobile devices that existed many years before.

I mentioned this on Twitter, and Krantz argued that Google is an ad company, whereas Apple and Microsoft are “technology companies”. The distinction is lost on me. Technology is such a broad term that it is effectively meaningless. And while Google may derive most of its revenue from advertising, it’s only capable of generating that revenue because of the technology it produces and acquires.

There’s just not much meaningful competition between Apple and Microsoft these days. Both of these companies compete with Google, but in different spaces. The recently-announced partnership between Apple and IBM may bring Apple back into competition with Microsoft, but that remains to be seen.

So what are the lessons here? First: just because a guy has a money column in USA Today, that doesn’t mean he understands the technology (overly-broad term used intentionally) industry. Second: just because you were once bitter rivals with a company (or a person), you may not stay that way forever. Third: it is very important to be aware of who is in the space you want to be in so you can do it better than they do.

 

July 15, 2014

Humans as investments, not resources

Filed under: Musings,Project Management — Tags: , , — bcotton @ 10:24 am

As I last week, two tweets on Sunday morning lead me to a lengthy pontification about HR and how organizations treat employees. In part two, I focus on an article shared by Mrs. Y in which we find that the longer you stay in your position, the more money you’re robbing from your future self. I’m approaching the eight year anniversary of the start of my first professional job and just passed the one year anniversary of the start of my fourth. I just ran the numbers: assuming a 2% annual raise (which is probably generous), I’m making nearly 60% more than I would had I stayed in that first job.

Money isn’t everything, of course. I’ve never left a job because I wanted more money (though I’ve never complained about getting more money). Every time I left a job, it’s because I ran out of room to grow my skills and responsibilities or because I was dissatisfied with the organization. In those cases, throwing more money at me would have been at best a short-term inducement to stay. Still, it has been my experience that the best way to get what you want is to leave and go get it elsewhere. This is fundamentally broken. How much productivity does an organization lose when years of experience walk out the door? How much frustration does a person gain when they have to re-learn a new job, a new employer, and often a new city?

The basic issue is that all too often, organizations treat employees as resources to extract value from. Viewed properly, employees are investments that will help the organization grow. I’ve heard managers say “why should I send you to that training? You’ll probably end up leaving.” Of course, the manager is sure he’s right when the employee does leave. But maybe they’d have stayed if the organization was willing to invest.

When an employer gives a big raise or other consideration to an employee, it tends to be in reaction to the employee receiving an offer from somewhere else. “If I give you more money, will you stay?” is a losing proposition. At that point, the employee is already heading for the door. It’s far better to keep the good employees sufficiently happy such that they don’t get those offers in the first place. Of course, some people will always leave, and there’s no stopping that. Prolonging the period of mutual benefit is the best possible outcome.

The notion of loyalty to an employer strikes me as being misplaced. When an employer won’t take proactive steps to aid the development of an employee, why does the employee owe any loyalty? There are good organizations out there that really do try to keep employees on an upward trajectory when it comes to pay and skills. Those that don’t aren’t necessarily bad, but they’re not doing themselves any favors.

Of course, the blame isn’t entirely on the shoulders of the employer. Employees have to understand that their bosses aren’t mind readers. My major regret from my last job is the fact that I wasn’t more vocal about what I wanted from the position along the way. Maybe something could have been done that would have made me want to say “no thanks” when I was offered my current job. Or maybe not. But at least then I would have had to choose.

July 11, 2014

New entry in the Forecast Discussion Hall of Fame

Filed under: Funnel Fiasco,Weather — Tags: , — bcotton @ 1:26 pm

This one’s an oldie, but a goodie. Back in 1994, two forecasters wrote the state forecast discussion for Colorado in verse. Thanks to a submission from Tanja Fransen, it has now been added to the Forecast Discussion Hall of Fame.

July 7, 2014

Organizational silos in the 21st century

My friend Joanna shared an interesting Harvard Business Review article yesterday morning entitled “It’s Time to Split HR“. Along with another link article that was shared by someone else a few minutes later, I found myself making a rather lengthy pontification about how organizations treat employees, particularly with respect to pay. Originally, I was going to focus on that, but the more I thought about it, the more I think there are two separate-but-related posts. So in this one, I’ll focus on the HBR article.

Ram Charan lays out an interesting argument for bifurcating the traditional Human Resources department into administration (e.g. compensation, hiring, etc.) and leadership (e.g. personnel development) roles. It’s certainly a proposal worth considering. As commenter Jonathan Magid pointed out, the two roles of HR are essentially to protect the organization from its employees and to develop those same employees. HR effectively has to serve two masters. In most cases where there’s a conflict of interest, HR will side with the organization. That makes sense, since the organization is the one writing the pay checks.

Charan, however, doesn’t really address this. His main concern seems to be the lack of strategic understanding within the ranks of HR leadership. Chief Human Resources Offices (CHROs), he writes, are too specialized in HR functional areas and lack understanding of the larger organization. This is true of all areas, though. Especially those that are not core to the business. Too often, IT leadership is painted (appropriately) with the same brush. That doesn’t necessarily mean that the area needs to go away.

The best employees are familiar with other areas of the business, not just those under their direct purview. This is true of all functional areas and at all levels. In a previous job, we frequently lamented that HR wasn’t as helpful as they could be in vetting resumes because they didn’t understand technology. Go on any forum where technical people gather and eventually you’ll find disparaging remarks and advice to game keywords because that’s all HR will understand. In my experience, the issue isn’t that HR staff are terrible human beings, it’s that they’re just too siloed.

Everyone “knows” that silos are bad. Bureaucratic fiefdoms tend to be self-reenforcing and lead to reactionary, defensive tactics like information hoarding in order to keep justifying their existence. What I find so interesting is that organizations can’t seem to avoid forming silos. Siloization is like an organizational version of entropy: left alone, it will increase over time.

There are certainly benefits to silos. They make the organization easier to understand. They allow for deep specialization. Knowledge transfer is simplified. But they’re a losing prospect in the longer term.

A good friend of mine directs the IT support organization for a large academic unit within a large midwestern university. This group is notable because it provides excellent customer service (according to their internal measures, the opinions of the customers, and their reputation on campus) and actively suppresses silo formation. He told me that silo suppression is “extremely expensive, and very difficult to explain/justify to people.”

Silo suppression is expensive because it’s a long-term investment in the organization. Rotating senior personnel through phone duty is expensive as compared to putting the newest, cheapest hire on that task all day. Requiring all knowledge to be shared among at least one colleague requires a larger staff. Hiring and retaining people who buy into the organizational philosophy is a slower and more expensive process. All of this looks terrible in a short-term view.

Where silo suppression pays off is in the long term. Vacations, illnesses, and employee turnover are less disruptive because the knowledge is retained. Someone else in the organization can pick up dropped issues without a long spin-up time. Employees develop a broader view of their work and can make useful suggestions for areas outside of their main expertise.

There are undoubtedly psychological and sociological reasons that we gravitate toward developing silos. Organizational leaders must be aware of this tendency and actively work to counter it. The problem with HR isn’t that the people or the functions are bad. The problem is that HR is not out “among the people.” Embedding HR representatives within other functional areas of an organization is almost certain to improve HR’s understanding of the larger business. In addition, it may help make HR more approachable and better understood by the rest of the organization, allowing employees to make the best use of the HR resources available.

Organizational silos are interesting. We know that they’re bad, but we always end up reverting to them over time. Maybe just we need better silos. Silos built around projects that can easily be torn down and put up somewhere else may give us the best of both worlds.

July 1, 2014

Samba configuration: the ultimate cargo cult

Filed under: Linux — Tags: — bcotton @ 4:45 pm

Samba is a magical tool that allows *nix and Windows machines to coexist in some forms of peace. It’s particularly helpful when you want to share files across platforms. I’ve maintained Samba servers at work and at home for nearly a decade now and I don’t pretend to understand it.

Over the years, I’ve come to view Samba as the poster child for cargo cult system administration. I suspect most people Google for their problem and apply whatever magic totem fixes it, without really understanding what’s actually going on. They share this knowledge and perpetuate the magical configuration. Allow me to do the same.

For one of the applications we support at my current job, our normal cluster configuration is a Linux file server with Windows execute nodes. The server provides anonymous read/write access to the execute nodes and forces the user server-side. (It’s a closed environment, so this is just a lot simpler.) During a recent project, we were doing a customer’s first foray into the cloud. We started from a configuration that we used for another customer running the same application. Oh, but this customer uses RHEL 6 servers, so we switched the setup from the RHEL 5 images we had been using.

Crap. That broke it. For some reason, the clients couldn’t write to the file server. After a late night of frantic effort (this was a project with a short timeline), we found we needed to add the following lines:

guest account = rap
map to guest
valid users = rap, @rap
force group = rap
guest ok = yes

That seemed to solve the problem. Apparently there were some changes between the versions of Samba in RHEL 5 and 6. But then we discovered that hosts would start to write and then become unable to access the share. So we added the following:

writeable = yes
guest only = yes
acl check permissions = False

Oh, but then it turns out that sharing a directory over both Samba and NFS can cause weird timestamp issues. After some experimentation, we found it was necessary to stop using oplocks:

kernel oplocks = no
oplocks = no
level2 oplocks = no

So here’s our final, working config. Cargo cult away!

[global]
workgroup = WORKGROUP
netbios name = Samba
encrypt passwords = yes
security = share
log level = 2
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
kernel oplocks = no
oplocks = no
level2 oplocks = no
max xmit = 65535
dead time = 15
getwd cache = yes
printcap name = /etc/printcap
use sendfile = yes
guest account = rap
map to guest = Bad User

[rap]
comment = File Share
path=/vol/smb/rap
force user = rap
valid users = rap, @rap
force group = rap
read only = no
writeable = yes
browseable = yes
public = yes
guest ok = yes
guest only = yes
acl check permissions = False
Older Posts »

Powered by WordPress