Work as a part-time system admin

I’ve wanted to write about my work at university for some time now but I’ve never really sat down and took the time to do that until now.

There are various things I do at the institute, some of which I don’t understand why they are my responsibility. Some of them I enjoy. Others I don’t, which is something very typical for any job, I suppose.

I am a part-time system administrator at the Institute for Computer Graphics and Vision.

Server Maintenance

Whether it’s searching lost files, looking through logs to find specific, maybe even security critical events or just reconfiguring an existing piece of software, maintaining the servers of the institute has become my job – that is if you subtract the physical maintenance and the purchasing process. I am extremely thankful that those areas are covered by my friendly full-time colleagues.

I try my best to investigate errors in logs, particularly recurring ones when there is time to spare.

Configurations

Obviously there’s a lot of command-line fu involved.

In the last few months I changed some processes which were occurring regularly:

  1. Changed our servers to use unattended-upgrades where possible
  2. Set up more reasonable e-mail notifications

Moreover, I blocked the 360Spider bot from constantly requesting files from our web server. I set up an OpenVPN server with guidance from Thomas. I configured a system in which an encrypted partition is automatically unlocked and mounted on login if you belong to the correct user group (I’m not sure whether I should be proud of that given the incredible hackyness of said system).

Currently I am looking into puppet for my next assignment. I’ve heard great things from friends about the software but my first experience was creating a VM for testing and realizing that the apt puppet module is currently broken (Dec 15th 2014).

Documentation

When I arrived I was pretty shocked to see that there was absolutely no internal documentation at all. I am working to remedy this situation whenever I have spare time between more immediate assignments. Since I consider the documentation my primary project I made all the important decisions myself. It’s written in Markdown and we are using our internal gitlab platform to host and distribute it. Gitlab provides a nice “edit” button too, for those unfamiliar with git.

As of the time of this writing, there is documentation about the most common workflows, some server configuration, deployment notes and command line hints.

Additionally I’ve written a Getting Started guide for new members of our institute in order to avoid explaining everything to every new person again (and again in case something was unclear).

Building stuff

Creating ways of interweaving technologies is easily my favorite task. I like to write scripts to automate laborious tasks that have to be done. On the other hand I am also looking for challenges in which proven ways have to be reassembled to fit a client’s needs (though they are not directly paying me, the members of the institute are “clients” in the sense that it’s my job to make their ideas or wishes in terms of infrastructure work).

In practice that means I’ve written several scripts and am in the process of rewriting most of the tools to use the awesome Fabric module for Python. This particular direction was inspired by my other friend Thomas, who suggested just the right kind of tool for my work – a tool which profits from my profound joy working with the Python language. Except when it comes to the byte string/unicode string problem in Python 2.x. My collection of administrative helpers is located at my github repository since I’ve liberated it from our internal gitlab.

It would’ve been easier – and probably more comfortable – to just stick the configuration in the scripts themselves instead of reading everything from JSON files. That would’ve meant at least three things I was uncomfortable with:

  1. Sharing the code outside of our ICG admin team would have been impossible due to the risk of compromising confidential data. I preferred to share because I think that it’s hugely beneficial for any IT worker, be them programmers, sysadmins or similar to have a presentable portfolio of their work.
  2. Asking peers for advice would have been impossible due to the same risk. I don’t consider myself a superior programmer and therefor like to get the opinion of my peers every so often to improve the quality of my code.
  3. Hardcoding data where it is not strictly necessary feels unclean to me.
  4. It would’ve been way harder for anyone who might like my work to use it themselves. I immensely dislike working against the Open Source idea where it’s so obviously unnecessary.

In combination with the work done on a server configuration project involving a cryptographic setup for groups I’ve also scripted a rather convoluted process of setting up new users for said system.

Administrative Chores

I’m not entirely sure why this belongs in my domain but I’m routinely tasked with entering content in our CMS of choice, Plone. That wouldn’t be as annoying of our instance of the system did not feel that broken and slow. Hm, I almost forgot “confusing”. Never had imagined that simply putting up a job offer needed so much administrative overhead just in a CMS.

I don’t have a lot of love for any database driven CMS, now that I think of it. Still, due to laziness I have not taken the time to move my personal site from WordPress to something like Jekyll yet.

And of course, there’s the usual “enter user X into the system, please” because others don’t have the same permissions that the system admin has. Cue “I am root” joke here. Actually, don’t do that. I did that once. Made a terrible mistake less than an hour later.

Tech (and Moral) Support

So you fix our computers, right?

Given you have acquired a certain knowledge of computers, operating systems and software over the years you will be tasked with fixing or configuring things that your co-workers simply cannot manage to do themselves. That’s okay. Sometimes you won’t be able to find the bugs, fix the errors or configure their thing to work. That’s okay too.

Your colleagues want you to try your best – if you manage to do the impossible on the way that’s great. If you’ve obviously done your best and invested multiple hours into research and experimentation concerning their problems, it’s very likely they will understand that it’s not possible for you to smooth out every little itching. And every once in a time, they’ll want your advice or input on a problem they’re trying to solve. You might know something. You might even guess something right – it’s not important. You’re there, supporting them with their issue. Maybe that will be enough; I’ve personally had more than a handful of these occasions during my half year at the institute.

People in my life know I’m good with computers. And they come to me and ask for advice. I can see the pain. They’ve been hurt. They want a savior.
And I’m tired. And I’m busy. And there’s so much to say. So much to teach. So much to do.
And I don’t want to be their savior right now.
And that hurts, too. ~SwiftOnSecurity

This passage from SwiftOnSecurity manages to catch my opinion on this issue pretty well. I’ll try to help everyone given the time but I sometimes I need my colleagues to understand that it’s outright impossible for me to be working on their issue right now. There may be more pressing problems, say I might have rm-ed a file we still needed or I’m in the middle of a project already.

I realized I need to work on my communication skills and the timing of e-mails in order to minimize stress – both for me and others.

Media Recap: May, June, July and parts of August 2014

Since I skipped the last two month, this will be a longer post, summarizing both May, June and July 2014, probably even some entries from August, just so they’re written down somewhere.

Continue reading

Reading – Hacking university, programming & battling trolls

In his words: How a whitehat hacked a university and became an FBI target by Sean Gallagher – It can be rather frustrating pointing out a critical vulnerability and seeing nothing done in return. I’ll be rather open that the mail he wrote struck me as sounding hostile but staying put wouldn’t have made this any better either.

Russia Quietly Tightens Reins on Web With ‘Bloggers Law’ by Neil MacFarquhar

Yet polls conducted in 24 countries last spring by Pew Research found that most people are against government censorship of the Internet, including 63 percent in Russia and 58 percent in Turkey.

Too often it is not important for politics what the people want. One has to wonder if politicians ever really considered themselves the voices of the people or if the only voices they were listening to were the ones in their own heads.

Punishments start at fines that can reach up to $142,000 or the temporary closing of the blog, if the law is actively enforced.

In other words: Pay an fee which is out of reach for many people or shut the fuck down.

“On the one hand, the Russian government says the Russian people are the best. On the other hand, it doesn’t trust the people.”

Of course not. Which government does? I am willing to guess that the German saying ‘Trust is good, monitoring is better’ was coined by a government official too.

Programming sucks by Peter Welch tells you why programming is not a job so much better than your current one. Stress, puzzle parts not fitting together and general insanity of software development are highlighted in this piece. If you have any experience developing you are going to be both laughing and crying at the same time.

You may want to read about the other side of that argument in What programming is like by Sam Stokes. He will tell you about the good sides of development, the ones where you build LEGO castles without ever running out of the blocks you want. The most important thing to remember is that while software developers complain about their tools, they tend to forget that it is within their reach to improve them or even create better ones.

Another post by Peter Welch worth reading is Job Advice in which he describes his past and prensent career in a delightfully humorous way. He gives some advice but to be honest I recommend this article mainly due to its amusing tone.

Josh Engen reports about Valve’s psychological tricks used to train Dota 2 players into being better people in Dota 2: Valve Is Manipulating Gamers into Good Behavior. It’s a great use of cognitive dissonance.

While at the topic of combatting bad player behaviour and bad online behaviour in general, Fighting Online Abuse Isn’t About Trolls, It’s About Community is a great, lenghty post by Kirk Hamilton explaining why it’s essential to establish sensible rules for your online community.

Is Markdown our current answer for well formatted writing with little distraction? I can say that with certainty for myself and many others seem to think so too. The Markdown Payoff is an examination of his writing process before and after switching to Markdown by Hilton Lipschitz.

I write more, I write better, and I have the information I need available at my fingertips. I also spend less time writing, [and] almost no time formatting.

Troy Hunt writes about how bad eBay’s password advices are in The eBay breach: answers to the questions that will inevitably be asked. I’ve encountered that form myself when changing my password and found myself cursing without end. Not only had they disabled pasting (which is bad) but also the form complained about me using space characters in my password. I assure you, there were none.

v4<GOi]=([k.[8a,++{D
&PTs5V>:2:E!#vb')hUK

Often in your career, you might feel as if you could’ve been given more space, more freedom for decisions. You could do without your micro-managing boss. Why don’t we take a minute to imagine ​What It’s Like When Your Job Actually Treats You Like an Adult. Article by Tracy Moore

Finally, consider the The Post-Pregnancy Stories Nobody Talks About, brought to you by Taryn Brumfitt, just to give you something to think about.

Reading – Devoid of chat, Build 2014, DLC expiration & educational games

Böser, böser Toaster by Alexander März – On the origins of a picture many of us have seen way too often when reading about hacking in mainstream media.

No, the Real Gaming Expert by Anonymous – While the Trenches are always a source of cringe-inducing fun and head-shaking, hands-wringing disbelieve this one gets it right. Not only is the gaming culture actively hostile to females, also the consumers are.

Cocoa for Web Services by Brent Simmons – Discussion about the most likely cloud programming framework compared to the use of Cocoa from an iOS (and Microsoft Azure) developer’s perspective.

From How certificate revocation (doesn’t) work in practice by Robert Duncan:

The state of revocation amongst modern browsers is sufficiently fragmented to ensure that the entire concept of revocation is on shaky ground — without consistent behaviour and timely updates, if or when the certificate is finally blocked it is too late.

The Right Way to Ask Users for iOS Permissions by Brenden Mulligan – Design tips on how not to flood first time users of your app with permission dialogues by giving them more context.

How I Cut My Writing Time From 2 Days to 4 Hours by Belle Beth Cooper – Suggestions on streamlining one’s writing – or rather working – process. Some are relatively obvious while others may be worth a shot after giving them some thought.

Build 2014 by Justin Williams – I am rather impressed by Microsoft these days. There is so much great feedback about Build 2014, not only from Justin’s side. Still he sums it up rather nicely and his post is well worth reading.

From Worst practices are viral for the wrong reasons by Gabriel Gonzalez:

  • Corollary 1: Teams with the greatest technical debt mentor the most employees.
  • Corollary 2: Poorly implemented libraries or programming languages generate more buzz.

ME3: Extended Cut Analysis Part 8 – The Refusal Ending by Stefan Di Iorio – The man known as ‘Smudboy’ on Youtube presents his objective observations and analytical thoughts on the Refusal ending of the extended cut. The verdict is devastating.

Blizzard silenced Hearthstone players, and it made the game amazing by Ben Kuchera – An interesting opinion peace on why it was good decision from Blizzard not to implement chat in the now wildly popular virtual trading card game Hearthstone. Though I have not yet tried the game I am inclined to agree with the decision. It reminds of Journey’s version of multiplayer which players of the game loved.

Mass Effect 3 ‘Expiration’ Raises Questions About Our Digital Future by Jason Schneier – Some thoughts about where our digital purchases go to (vanish?) when a platform shuts down.

HOW VIDEO GAMES CAN CHANGE THE WORLD, ONE CHILD AT A TIME by Russ Pitts – GlassLab has set out to research better educational games. Intriguing concept, excellent article.

Complicit cowardice. by Relly Annett-Baker – Frightening experience report.

Follow up to the investigation results by Chris Wanstrath – The results from Github’s independent investigation are in. Some things are very different from this point of view and don’t seem so passive-aggressive anymore. Especially the ‘deleting of code’ has to be seen in a different context now.

RE: Your People by Rands

From Rands in Repose, titled “Your People”:

It’s attending a conference where you know no one. It’s driving to the city to sit in a coffee shop with ten strangers bonded by a programming language.

You’d think that occasions like this are no longer needed in times of the Internet, since you simply join a community of people with common interests and hang out there. Having spent a lot of leisure time on the Internet though I can say that having a great time at a conference or other type of event is something different altogether.

Amongst my favorite memories are the many times I joined the Linuxcouch at university where I met great people who I get along with extremely well. There is not only a basis of common interest but it’s the mutual respect that is given to people who have accumulated a certain expertise in their respective fields. Helpful friends who either try to help you when you need advice in technical (or other) matters, who may on occasion defer you to someone else but who also offer suggestions on whom to ask when they don’t know the answers themselves.

One of the big reasons why this tends to work out well is a willingness to learn from each other. While the finer aspects of interests can differ, there are topics which may cross over between your areas of expertise and theirs. I’m not saying your topics should be restricted on the things you work with. I’m trying to tell you that exploring one’s stance towards a particular issue or idea can be its own reward. If you are similar to me, you prefer to work in silence or behind your headphones with which you drown out distractions but can enjoy the detailed discussions going hand in hand with technical decisions.

Your People rarely demand anything. But when either you or they make a request, neither the request nor the agreement to do it is ever in question.

You don’t question the request because your trust in them is enormous. You assume – and rightfully so – that they know what they are doing. You don’t have to question them because of your unwavering certainty that their reasons are as legit as yours are when you are in the position of having to ask them.

You get mail all day from everyone, but you always stop to read mail from Your People.

You don’t stop to read their mail because you think it’s more urgent than your regular mail. It’s because you care. It’s because their issues are more interesting, because their fate is dear to you. Admittedly, you often assume that they act the same when you contact them. That’s okay, because that spiritual connection you feel is probably mutual.

These are not people that let you sit in place, these are people who hold a mirror up to your fuck-ups, and who explain, in excruciating detail, exactly what you don’t want to hear.

They know that constructive criticism is what you need to improve yourself. They also tell you what you need to hear in order to be better, not to feel better. You are better of leaving last part to a loved one anyway.

Networking is the art of finding those who are willing to listen to and critique your stories, so go look at your Inbox. Better yet, go look at your Sent box.

Instinctively you may already know who exactly Your People are. That’s because they are the ones you are relying on when you need honest feedback. They are the ones you like to spend your time with if they are in the vicinity. They are the ones you try to keep in contact with even if it’s been an unspeakably long time since your last communication.

You already know their value which you hold dear and are keen on keeping that bond intact. Rightfully so, as they can improve your whole attitude towards life in ways you will have a hard time wrapping your mind (and imagination) around.

From a recollection of above post on Rands in Repose:

Your people are your people because while you may not always agree, you are comfortably on the same frequency. Because of this frequency alignment, you invest in them instinctively because while people look at you like you’re crazy, they do not. You answer their emails quickly. You arrange drinks when they are in town – always. They are your people and in a world chock full of people, your people are uniquely yours.

In closing, I’d like to say one last thing: If you do one thing – just one little thing – that should be keeping true to your people. Never feel uncomfortable because they might not be respectable company in the eyes of judging others. Never feel like you have to apologize for them, their customs. You belong among them.

may contain traces of Apple