SkillsPython, Ruby, system integration
Joined devRant on 7/9/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
VMWare, for what you people charge, would it kill you to do some basic quality assurance on your install media?
Your flagship product, vCenter Server, has a known issue that's been there for at least eight update releases where you can't actually do the install without catching the newly provisioned appliance VM on its first startup, doing init=/bin/bash, and changing the root password by hand.
Because, yknow, having stuff work according to your docs is for *wimps*. Engineers who have to put up with this shit have the ears of their execs, and you can bet poor quality like this will eventually reach the ears of the people with purchasing authority.3
The more I use Go, the more i start to like it. I didn’t realize how nice being able to generate binaries for every OS that matters was, until I had that power. It beats the hell out of trying to distribute a Python app for sure.
Sure, it has its warts.
It’s overly bureaucratic in the same way Java is.
I hate that you can’t import something without using it (most people I’d wager preemptively import libraries they know they’re gonna need even if the code isn’t written yet)
I really wish there was a way to just say “See this JSON blob? All those keys and values are strings, trust me, you don’t need me to tell you the type of each one individually.”
Generics would be nice.
I’d kill for exceptions - any decently sized go program is going to have very many if err checks where most could be condensed down to a single try/catch in most other langs.
I wish the tooling was better. Dependency management was a solved problem when Go was released and yet they chose to ship without it. There’s still no standard. Many hours of time have been wasted dinking with this.
But ya know what? Even with those warts, it’s still easier to write than Java. It’s still write once run anywhere, it’s blazing fast, and doesn’t require your end user to install an entire freakin runtime.
Canoncal.. buddy.. pal..
We need to talk about the content on the server image's login screen.
Now, I get that lots of developers will use the server image out of a desire to keep their environments minimal.. but at the same time, is the same server image that will be deployed on thousands of VMs all over the world really the place to be talking about "great IDEs available on Ubuntu" complete with smiley faces?
I'm dead serious I log in and there are fifty seven lines of crap on the screen. I don't need links to your docs or support pages, I definitely don't need cutesy links to "hey look at this cool stuff you can do on Ubuntu!", and I absolutely don't need advertisements for your paid services.
This is some of the tackiest stuff I've seen outside of Gitlab shilling for GKE in the paid enterprise version.
Stuff like this turns actual users off. Sysadmins, the ones who are going to be seeing this stuff since it's visible on SSH shells only do not care about your cutesy IDE advertising.
Fuck pep8 in general. Fuck harder anything to do with line limits. Fuck with a rusty spatula those who tie it into their git precommits or CI tests.
What's that, it's 2018 and even the shittiest walmart-tier computers have 1080p OR BETTER at a 16:9 aspect ratio?
"lol, 80 character line limit."
Eat a bucket of rancid dicks.
Oh, and since we're forcing you to be so economical with your characters, we're going to force four space tabs. Yknow, rather than simple single tab characters, which could mean everyone can set their preferred level of spacing without bloating the code with whitespace.
Because, yknow, it's entirely reasonable to chew up 1/8 of a line because you're editing a function inside a class definition. God Almighty forbid you try to do a for loop inside that function! Fuck you!
"Oh but you can't have two editors or terminals open side by side without that limit!"
BULL FUCKING SHIT. Here's my shitty 1280x1024 display on my shitty computer with two Sublime editors open side by side. You'll notice the break is at 100 characters. You'll notice I don't have to scroll horizontally to do two things at once. You'll notice I even have room for COMMENTS!
If your code standards require you to make your code *less* readable and *less* clear and take up *more* space to accomplish the same tasks, YOUR CODE STANDARDS SUCK!
Enough with this stupid meme. We're not in the 80s anymore and it's high time to start fucking acting like it.6
It really sucks being the senior guy sometimes because it means there's nobody above you that you can bounce questions off of. No mentor. Just random people on the internet (and stack overflow, eww.)
The rubber ducky on my monitor can only go so far.
It's a constant worry of "am I writing garbage?" and "is there a better way to do this?"
I'd kill for a QA group that I could actually send some of my stuff to and get feedback.2
I really am not a fan of the contortions you have to go through in Golang to deserialize a fucking JSON blob. If this were any other language I would have already had a data structure I could query rather than wasting hours twiddling structs that will be filled properly.7
Yesterday: Enjoying my VFIO machine running on Ubuntu. Windows nastiness confined to a VM, full performance graphics. Heaven.
Today: Take a system update. Systemd hanging on boot. No console output because systemd helpfully prevents all that from showing. AARGH!1
This was about 3 years ago. I’m on vacation and just getting off the plane, when my boss calls me on his cellphone. Apparently the crontab on our main file upload server had gotten nuked, and he was asking if there were any backups.
A word about this server. I work with video, so this thing is doing about a few gigabits of traffic incoming at any moment. The cron jobs are necessary to move and organize these massive files into a sane scheme for processing. Hundreds of drop folders receiving thousands of files resulting in terabytes of data every single day. Our storage vendor tells us we have the third largest deployment they know about.
No cron jobs mean all of this content is just sitting around piling up. I tell him sorry, try contacting $otherAdmin since he’s more familiar with that system.
A few days later, after the vacation, I come back in. $boss and $otherAdmin have reconstructed the crontab from scratch after an all nighter.
I ask how it got deleted.
$boss was training some people how to set up new customers on this file server, and he told the trainees to open the crontab in read-only mode. One of them ran:
Yes, we back up our crontabs now.3
The networking group at my day job, hooooooolly crap I have some unprintable words. But keeping it professional:
* Days to turn around simple firewall whitelisting requests
* Expecting other teams to know the network layout despite not sharing that information anywhere and going out of their way to not share it
* Adding bureaucracy in the form of separate Word doc forms despite having a ticketing system - for no justifiable reason
* Breaking production systems multiple times per month
* Calling in with problems that are clearly network related, being told it’s our systems, and then the problems magically go away even though they swear they didn’t touch anything
* Outright verifiable lies or vague non-answers when they’re not talking to someone at the director level or a vendor from an outside company on conference calls
* Worse packet loss and throughput on our LAN than my home ISP
Doing anything with these clowns is my single biggest source of stress right now. I can’t wait until we get a full SDN stack set up and then we won’t have to deal with them for day-to-day needs any longer.
My boss swears it’s better that we’re not managing the network directly, but I’m pretty sure my friend’s dog could be loosed into the data center to chew on fiber, and eventually the pairs would be connected in such a way as to improve performance.1
The year is 2218. Machines have taken over the world. A small pocket of resistance fights back against them. And in their darkest hour, Windows, which hasn’t been updated in over a century, still won’t tell their strategists what program is keeping the USB drive with their plans open. They don’t want to unplug the drive as that could damage the files.
While they’re trying to figure it out, the attack comes and catches them all unaware.
As a result, humanity is extinguished.
Don’t let this happen to you.5
Using the new project as an excuse to try out the language I was an absolute newbie at. (Python, at the time).
A couple years later when I’m much more proficient and I go back and look at that code, I want to slap past me for putting that spaghetti mess into production.
I’m convinced that CSS is black magic and those that can visualize what it’s going to do before changing code are witches/warlocks.
Usually my attempts end up in humor as the website ends up /comically/ broken. Elements shifted around to not anywhere near they belong, drop downs appearing from completely nonsensical places...
No idea how you all do it.4
Linux networking: A tragedy in three acts
Wherein the system administrator writes their /etc/network/interfaces file as is the custom.
Wherein the kafkaesque outputs of basic networking commands threaten basic sanity. Behold:
# ifup ens3:1
RTNETLINK answers: File exists
Failed to bring up ens3:1.
# ifdown ens3:1
ifdown: interface ens3:1 not configured
Wherein all sanity is lost:
That feel when an intern is tasked with implementing a web frontend for a project you're working on.
That feel when you open up one of the views and it's filled with JQuery spaghetti and your eyes glaze over.
That feel when you actually step through the code, and it actually makes sense and is remarkably light and clever for what it does.
That feel when you learned a bit more JQuery (a library that you never had any experience with before) and it made doing some more things an absolute breeze.
I learned over this weekend that there are no good tape backup systems for Linux. Oh sure, there are a couple of open source projects like Bacula and AMANDA, but they're both a bit too much on the .conf file hell side for me. And fuck literally everything about .tar scripts.
And then you've got things like Backup Exec that, while having its own problems like not being hostable on a Linux machine, will talk to a Linux machine and its connected tape devices with very little hassle.
Linux people: UX is important! Licenses for expensive software are often cheaper than teaching people how to use obtuse systems!1