Functional Entropy

Chaos breeds order, sort of.

Category: Coding Your Sanity Away

The Redundant Name Is Redundant

I don’t geek out about monospace fonts very often (there’s supposed to be some humor there, but I can’t remember the tag for it), but Hack is completely awesome and solves a whole bunch of problems I typically have with the system monospace defaults in nearly any environment. The zero/capital ‘O’ problem has always frustrated me and actually caused me to change the language highlighting if I’m working with a bunch of third party libraries that annoyingly insist on using uppercase o’s. It also solves the lowercase ‘l’ and 1 problem. The other cool part is that it’s actually set up purposefully to be easily tinkered with and altered so if something is annoying, you can just fix it yourself.

It doesn’t make a bunch of sense until you actually try it. Luckily, there’s already an AUR package for it so it took me about 45 seconds to get it installed and set up for Gedit and I’ve been happily editing old scripts with little regard for highlighting hackery for the past couple days.

Things Should Have A Where

I haven't been a steady follower of Jeffrey Zeldman over the years because I find most of the thinking behind web design and design in general to be uninteresting. That said when he's talking about something relevant to me more often than not that thing is leaving the park and denting an unlucky hood in the parking lot. He did it again this time:

I could solve the problem myself in a second, with the click of a checkbox, if only Apple weren’t committed to chasing a future where nobody needs to know anything about how their computer works—and, as a result, some of us have no clue what to do when the computer doesn’t work quite right.

I also despise things that hide their storage hierarchy from me in an attention to simplify my user experience. Despise is probably too shallow a term for the amount of wrath that it evokes in me when I cannot put something in a place and later come back to find it in that place. I don't like flipping through a bunch of screens or advanced searching for things when I know damn well where I put them. The abolition of user accessible absolute locations in software is one of the things I find myself too often trying to hack around. I should not be hacking around this. Really. I should not be attempting to navigate soup in the name of user experience.

The Genius Dickwads

This fabulously hilarious tweet from Max Howell the guy who created this tool that actually makes the Apple platform useful for something other than organizing your photos and music called Homebrew on his shitty interview experience at Google. There is also a Hacker News thread where people share similar horror stories about the interview process there and their own take on having their accomplishments outside the insular world of Google either ignored or unknown by the interviewers. I don't really write code any more because I'm primarily an itch scratch who dislikes generalizing things and acclimation to a language I'm unfamiliar with feels a little like joining a new church or something. I'm not the best person to evaluate his particular process, but I've unfortunately been adversely affected by the stories told about Google and Microsoft's interview dog and pony show.

My main talent is mainly fixing broken things that other people built. I'm mostly okay at QA-ish stuff, decently okay at system administration, and a complete bad ass at desktop support. I've largely stuck with desktop support because I'm really good at it and because it's a continuously moving field. Yes, I do have to wade through far too much garbage software support (Windows XP, anyone?) and I do have to deal with the difficulties of configuring flavor of the month software for developers who are eager to surf the wave of resume building despite spending the entirety of their short development careers in Visual Studio. I don't usually need to write anything out longhand that I would typically handle with tab completion in front of anyone and I can usually admit when I'm thinking about something entirely the wrong way. Of course, I do get to frantically try to get malfunctioning AV equipment working in front of the folks crowding meeting rooms while potential clients stare blankly at me from a video conference with no audio but I shrug that off 10 minutes after I've triumphantly departed. So, for the most part, companies assume that desktop folks aren't going to be the brightest and best which is hilarious condescending and gives me great joy when I'm giving someone the rundown on how to set up IMAP mail on a phone client with clearly marked fields. This rare condescension does free me from being some kind of wunderkind who would be tasked with pulling miracles out of my ass on a semi-constant basis and I'm also pretty happy with that. I don't spend much time stressing about work when I'm not physically there. The job itself is fairly straightforward, but getting hired is another story completely.

Over the past five or six years, I've had fistfuls of terrible interviews that I blame squarely on the popularization of lengthy interviews spiced up with trick questions intended to make the person who hasn't already heard all the shit lifted verbatim from trade magazines a couple times already bumble and feel stupid. I don't mind difficult questions or questions that require five or minutes to answer, but I do feel like walking out of interviews when I'm being purposefully stressed in the some kind of evaluatory Skinner Box that allows the interviewer to be lazy and rote. I don't especially like interviews that involve more than five people who obviously don't share notes or communicate with one another. It initially feels like some trick reserved for interrogations and does make you a bit paranoid until you realize it's just utter laziness. I've been on a number of interview committees in the past and coming up with questions or at least a narrative direction, especially when the position is outside my areas of expertise, is something I take seriously. If someone is awesome, I don't want them to feel like they're being dicked around by assholes and I also want to make sure that I ask questions that I'm actually interested in hearing answered. All of this might just a neurotic impulse to constantly avoid being a dickwad. I'm about halfway certain that I'm comfortable with that.

I think (and when I say 'I think' I actually mean that I'm summarizing the statements a lot of other people made) that it's possible to effectively interview people in a way that doesn't make you look like a joke and doesn't make the interviewee feel like they need to chew their leg off to escape from the interview room. I also feel like I have some responsibility to the candidate being interviewed to call my fellow quiz show hosts. I was part of an interview process once where one of my co-workers was unwilling to greenlight a person because they misused a single fucking acronym. I had sort of a strained relationship with this fella anyway but when I was talking with him about his feel for how the interview went I kind of went bananas on him because he only seemed capable of remembering that single slip. I did the only right thing and bombed him with an acronym quiz show of his own which he promptly failed. Dog food, motherfuckers, dog food.

I'm also unfond of the 20 part or 7 hour long interview which seems to have become the absolute norm. I don't think I've had a single interview in the past five years that wasn't at least four hours long. I guess if you take responsibility for explicitly informing the interviewee that they're basically going to have an entire work day of people spouting inane questions at you then it's not as terrible, but most companies are so centered around some pointless analytic that they seem to space on the fact that most people require food or a few minutes to pee in a session that long. I'd be willing to venture that interviews structured this way and the aforementioned quiz show method are aimed at recent college graduates who are largely untested (My tenure as a chain restaurant host taught me a great deal about algorithmic sorting) and have zero things going on in their lives (at that exact moment) other than finding My First Reeeeal Job. This is all fine and it is kind of fun messing with the adorable little eager beavers, but it is mostly horseshit when used to evaluate whether or not someone with experience is capable of fulfilling the role you're hiring for. The best you can really hope for (and I mean the real impression that you leave on someone and not the projected 'I'm really really really interested in this job because I've been unemployed for a couple months and mortgage AUGHGHGH!' persona that we all try to cultivate when being questioned extensively by absolute strangers) is that candidates will feel like they've been moderately condescended to and the worst is that they'll decide that your entire organization is built on the strengths of a few assholes who squeaked under the wire when interviews were still reasonable.

On Being Strangled By Your Methodology

A couple of years ago (okay, so more like four years ago) I worked for an agile company that made tools for managing agile workflows and incorporated that mindset into every crevice and hidey hole in the entire organization and it was one of the worst work experiences I’ve ever had. It was one of the few times where I felt like I had no idea what I was supposed to and how things worked not because the technology was anything I didn’t have extensive experience with (OS X and Windows server mostly which is pretty much how I’ve made my fucking living for more than a decade), but because it was being thrown into a church of convoluted customs completely outside my own experience. I was fired from that job and I’m never fired from jobs and I felt more relief than anything after the whole stupid (and mostly public) ritual was finished and I drove away onto the highway where a terrible snowstorm was showing its early symptoms. This was a couple days before Christmas to make things even more memorable terrible.  At the beginning of this stint of employment I just absently smiled and went along with the agile things; bullshitting my way through daily scrum because:

a) I’m not a developer in either job description or the way I work
b) I address issues as they come up  and tend to view ticketing systems as something that should be used for things that aren’t immediate instead of the thing that replaces immediacy with issues
c) we have a ticketing system, no?
d) when asked for ticket evidence for every issue that I resolved the day before I have to wonder what purpose scrum really has. It feels a bit like being asked to generate a PowerPoint centered presentation after drafting, completing, and handing in a lengthy research paper. There was likely resentment to accompany the expectation of me verbally documenting work that I’d done and bugged the person I’d helped to document in two separate systems with two separate logins.
e) I’m much more adept at actually doing things first thing in the morning then rushing through a couple of crucial things, rushing back to my work area, talking about some things that I did yesterday in a group where some of the folks do wildly dissimilar things, and finally getting to the work that I’m actually expected to do and accountable for.

Daily scrum actually took more out of me than it helped anyone either inside or outside my working group and that resentment built over time as both my focus and the focus of my group (at least in regards to my performance and contribution) shifted towards scrum. I fucking hated it although the work itself was pretty standard.

Annnnyway, what stirred this sealed container of old and stagnant workplace angst up, was an article about the terribleness of agile and scrum that really reminded me of all the things that I wrestled with initially and grew to despise and see as utterly pointless and be demotivated by over the course of a few months. This bit sums my experience up more perfectly than anything I’ve said:

Scrum is sold as a process for “removing impediments”, which is a nice way of saying “spotting slackers”. The problem with it is that it creates more underperformers than it roots out. It’s a surveillance state that requires individual engineers to provide fine-grained visibility into their work and rate of productivity. This is defended using the “nothing to hide” argument, but the fact is that, even for pillar-of-the-community high performers, a surveillance state is an anxiety state. The fact of being observed changes the way people work– and, in creative fields, for the worse.

Not all of it was applicable to what I was actually doing, but all of it mirrors how I felt while I worked at that horrendous place. I hope it’s catharsis I feel after reading instead of just old dread yanked out of the underworld of shit feelings about a shit environment to sour my stomach and pull phantom anxiety out of the ether. In retrospect, I’m very happy that I was yanked out of that world before I became comfortable with or, god forbid, decided that the agile “driving a dump truck in a Nascar race” was the only way to get anything done.

Legal Markdown

No attempt at clever titling was made in slapping a title on this guy. What I’m talking about here is literal Legal Markdown and makes my heart happy because although I’m pretty unfamiliar with all of the subtleties of Dual Integration, I’m a huge fan of useful tools that fulfill several necessary purposed simultaneously.

This is the first I’ve heard about this project which isn’t extraordinarily surprising given how little curiosity I’ve felt towards technology developed to be useful as opposed to smashing my head against proscribed software until it approximates the tool it is supposed to be. Sometimes clicking on a seemingly unrelated link while doing some research that seems (in retrospect) pointless rewards you with a random find like this.

The Goddamn Login

All of the schools were closed today due to it being an icy, snow covered atrocity outside. Unfortunately, the school district didn’t announce the closure until relatively late in the morning. I take Oscar to school in the morning, so I’m working from home today which roughly translates into pecking away at the tasks that require the least amount of continuous attention in the minutes long intervals that I have between interruptions. They’re pretty continuous. Pair this with a relatively unresponsive VPN connection to work and you’re in for a frustrating disaster of just wishing that you could get anything accomplished other than at home tech support issues like how to get past a level of a game. I’ve also got a fairly spectacular headache, but that’s besides the point.

Because I couldn’t do any of the things I was supposed to do, I tried to catch up on the half a billion unread things in my feed reader. Most of it, like always, was crap. Jeff Atwood wrote this rundown of how to sanely handle web (really it could be any type of login, but since web apps are apparently the only type that exist right now) logins and save the user from suffering and I really enjoyed.

He spends a fair amount of time discussing the background behind his rationale for planning a sane and usable login system and I enjoyed reading about that as well. I’m pretty sure that no one will ever develop an open and accessible authentication service that meets all privacy scrutiny, support every language, and be relatively secure so why not make a best effort to utilize the ones you can? People have already agreed to heinous EULAs and are apparently capable of remembering those.  It really isn’t the responsibility of an application user to remember which of the million authentication methods you offer they used when registering initially and I’m glad to see other people wrestling with what some would label minutia.

If you’re building a cumbersome login system for something that people aren’t already familiar with, you’re probably doing it wrong. I guess that never stopped anyone in the past, but it’s worth reading if only for the amount of thought invested in methodology.

© 2018 Functional Entropy

Theme by Anders NorenUp ↑