Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Watch, as I deftly make something not really related to coding BE related to coding...
I finally found something more frustrating to get working properly than WebSphere:
A 3D printer.
I'm probabaly 50/50 at this point with succesful prints, and the successes are just okay quality.
It's my first 3D printer so I'm learning a lot, which is the up-side. But damn, very frustrating at the same time.
Oh yeah, and of course: fuck WebSphere. SSSOOO glad I don't have to deal with that anymore!
Step 1: Run to the store to buy a USB card reader because all of a sudden you have a need to use a 16Mb CF card that was tossed in a junk drawer for 20 years (hoping it still works, of course), but that was the easy part...
Step 2: Realize that the apps - your own - you want to run on your new (old) Casio E-125 PocketPC (to re-live "glory" days) are compiled in ARM format, not MIPS, which is the CPU this device uses, and the installer packages you have FOR YOUR OWN APPS don't include MIPS, only ARM (WHY DID I DO THAT?!), so, the saga REALLY begins...
Step 3: Get a 20-year old OS to install in a Hyper-V VM... find out that basic things like networking don't work by default because the OS is so damn old, so spend hours solving that and other issues to get it to basically run well enough to...
Step 4: Get that OS updated so that it's at least kind/sorta/maybe (but between you and me, not really!) safe online, all without a browser that will work on ANY modern site (oh, and good luck finding a version of Firefox that runs on it - that all took a few hours)...
Step 5: Okay, OS is ready to go, now get 20-year old dev tools that you haven't even seen in that many years working. Oh, do this with a missing CD key and ISO's that weren't archived in a format that's usable today, plus a bunch of missing dependencies because the OS is, again, SO old (a few MORE hours)...
Step 6: Get 20-year old code written in a language you haven't used in probably almost that long to compile, dealing with pathing issues, missing libs, and several other issues, all the while trying to dust off long-dormant knowledge somewhere in the deep, dark recesses of your brain... surprisingly, it all came back to me, more or less, in under an hour, which lead to...
Step 7: FINALLY get it all to work, FINALLY get the code to compile, FINALLY get it transferred to the device (which has no network capabilities, by the way, which is where the card reader and CF card came into play) and re-live the glory of your old, crappy PocketPC apps and games running on the real thing! WOO-HOO!
Step 8: Realize it's 3:30am by the time that's all done and be VERY thankful that you're on vacation this week or work tomorrow would SSUUCCKK!!!!
Step 9. Get called into work the next day for a production issue despite being tired from the night before and an afternoon of errands, lose basically a whole day of vacation (7 hours spent on it) and not actually resolve it by after midnight when you finally say that's enough :(
Talk about your highs and your lows.6
I got a REALLY nice compliment from my dev team today. But first, the setup...
Tuesday night, I pushed some changes before I left that totally borked the build today when my team pulled changes (this is an off-shore team, so we more or less work opposite hours). Fortunately, my team dealt with it easy enough since (a) it was pretty obvious what happened, and (b) my commit message had enough information to help them know for sure, and they just reverted one file and were good to go for the day (they didn't fix the problem, left that for me to do, which is proper).
It was an absolutely stupid, careless mistake: I somehow copied the contents of a JS file into a JSP and pushed it. Just a simple case of too many tabs open at once and too many interruptions while I'm trying to code (which is typical most days, unfortunately, but this day it had an impact other than just slowing me down).
But, those are the reasons it happened, they aren't excuses. It was carelessness, plain and simple.
So, once I fixed it, I sent a note to the team explaining it. It basically said "Look, that was a dumb, careless mistake on my part, my bad, sorry for the inconvenience, it's fixed now."
I had a message waiting for me in my inbox this morning that said how I'm an inspiration because despite all my knowledge and experience, despite being a long-time lead, they (a) appreciate the fact that I'm human and still make mistakes, and (b) I stand up and take responsibility when it happens and then do what's necessary to reverse the mistake.
That made my day :)
To me, it's just the right way to be (I credit my parents 100%), never occurs to me to do otherwise, but the truth is not everyone can say the same. Some people are insecure and play the CYA game right away, every time. Some people act like they never make mistakes in the first place.
I don't care if you're an experienced dev or a junior, always take responsibility for your actions, especially your mistakes. Don't try and bullshit your way out of them. Sure, it's fine to explain why it happened if there were factors beyond your control, but at the end of the day, own up to them, apologize where necessary, and then put in the effort to make it right. Most people have no problem with people who make mistakes every so often - everyone does, whether everyone admits to it or not - but those who try and shirk responsibility don't last long in this or any endeavor (you know, putting aside the professional bullshitters who build their careers around it... that's not most people, thankfully).11
A week of vacation has begun, and every time it feels like I'm joining the Nights' Watch:
"Night gathers, and now my watch begins.... the watch to see how long it is before I actually WANT to go back to work. Tuesday? Wednesday? How long IS my Netflix queue anyway? Ugh, can't go anywhere, COVID done fucked that all up, so me and the couch are on a first-name basis again. Shit, should I check email, like, just quick, so I don't have thousands to go through next Monday? Oh, maybe I should spend some time prototyping that new screen... no, gotta keep from thinking about work! Oh, there's a big list of home repairs I need to do, now I have time... no, fuck that, that shit sucks. Hmm, maybe I should start that game project I was excited about a week ago? Nah, I'm not really excited by it now, never mind. I guess I could play some Halo again... no, that's boring. I wonder if my team managed to do the deployment today, and how those tickets I Ieft them are coming... ah shit, I want to go back to work ALREADY!"
That's how George R.R. Martin wrote it, right??
Look, if I send you an email, don't just immediately ping me via IM to answer. I sent you an email because (a) I was too busy to chat in the first place, and (b) it wasn't a super-critical question requiring an immediate interaction. I was, in fact, trying to do YOU a favor by using a medium that almost by design doesn't dictate an instant reply. You basically defeated the entire purpose of me CHOOSING to send an email in the first place.
Yeah, I know, I should just be happy that you are a helpful person who respects me and so wanted to get to me ASAP rather than one of the dinguses that never answer anything... but I'm a dick too, so I'm not.
Honor the "Importance Code of the Communication Mechanisms", damn it!7
Medieval torture devices got nothin' on Angular.
The Rack? Ha, good times!
Brazen Bull? Happily!
Iron Maiden? Yes, please!
Pear of Anguish? Funny name, I'll take it!
PLEASE GOD, NO! HAVE MERCY ON MY SOUL!4
Talking to my son today about one of his CS classes, not sure which.
He says: "I missed the lecture yesterday, but I'm not going to bother re-watching it."
Me: "Why? You really should. You're paying for these classes AND you really need to actually learn this stuff."
Son: "Well, because I got 100% on my last assignment without going to class. I just Google'd everything and figured it out on my own from what I found."
My wife out of the blue: "DAMN IT, BUT THAT'S NOT HOW IT WORKS IN THE REAL WORK WORLD!"
Oh, you poor, uninformed summer child. I love her, but she just doesn't know that my son has already learned the key lesson he needed to learn from his schooling in order to get a job and make good money in this field! #ProudTechieDadMoments15
My first vacation of the year! Two whole glorious weeks away from the office!
Well, you know, except for the dozen or so inevitable prod support calls I'm sure to get :(
Sure wish I was actually going somewhere and doing something, but given what year it is, just sitting on the couch and getting fat(ter) doesn't sound so bad.
And maybe work on the 10 different side projects I've got going somewhere along the way.
But mostly just sitting on my ass doing nothing, and it'll be glorious!3
21 Veracode flaws in the code, 21 Veracode flaws!
Patch the code, run a new scan...
...146 Veracode flaws in the code!
(this is why build tools that auto-manage dependencies are a Very Bad Thing(tm) - couple that with aggressive remediation windows and oh boy, nightmare fuel!)
Going on hour TEN of soft-launch weekend. Lots of problems with all the new procedures, and now a problem with a DNS entry that's taking forever to get resolved. Still have failover testing to do before users start their testing, and all of this means I've been awake for about 27 hours straight at this point.
And I've got this to look forward to again in a week since next weekend is go-live... presumably we will have learned a lot of lessons from this and it will be much quicker and smoother, but honestly, I'm a cynic, so I'm not gonna assume that'll be the case.
This kinda sucks, is the main thesis here.4
Had a definite week from hell... a bunch of prod issues that only I could fix (that's a whole other rant for another day!)... a piece of code totally kicking my ass for days... a hosting environment that was unstable seemingly every time I needed to do something in it (and that killer piece of code could ONLY be properly tested there, naturally!)... a service that my app depends on flaking out with no indication what the problem was and another team responsible for it that is based off-shore so aren't responsive when I need them to be... a metric shit-ton of procedural bullshit dropped on my head... an immense amount of stress due to the lead-up to a prod rollout next month that absolutely CANNOT fail without huge ramifications for the business but not enough help to ensure it gets done.
But, with all that said, I DID manage to get that killer piece of code working late on Friday after slamming my head against the wall for over a week on it (and ultimately re-writing it from the ground-up on Thursday and Friday)... so, the week of hell ended on a high note at least, which is always a Very Good Thing(tm)!2
I HAD typed up a big, long rant... but then I deleted it because as much as I WANT to rant today, I realized I'd prefer to still have a job tomorrow (yeah, I know, could always do a throwaway account, but fuck that). It's just one of those days in paradise.8
I have my IntelliJ builds set up to make either a pleasant ding or an unpleasant gong sound when my build succeeds or fails respectively (it's a multi-minute build, so it helps when I'm off doing other things while waiting on it). I think I'm going to spend all day tomorrow trying to get Nandor from "What We Do In The Shadows" saying something like "Hooray!" and "It is broken" for success and failure. I'll have to re-watch all the episodes so far, but I'll pay that price gladly. I feel like that would make my life immeasurably better and will be well worth my time to my company, right?1
All I ask is a tall ship and a star to steer her by... plus UltraEdit, Directory Opus, and a command prompt!
Writing my 13th tech book... which is nice and all... but this pandemic, plus absolute shit weather for weeks, is hammering my motivation. All I want to do is sit on the couch under a blanket and hammer my Netflix queue. But, I signed a contract, I have deadlines, so gotta get my ass moving (and fight to ensure this lethargy doesn't show up in the prose). As my daughter says: the struggle is real.4
Spend nearly a full eight-hour day working on a piece of code that, while not at all trivial, would have taken probably two hours start to finish if not for the constant stream of interruptions bombarding me...
...but then, 10 minutes before quitting time, build and run it for the first time...
...AND IT FREAKING WORKS!
I'm never more scared than when ~1000 lines of code works the very first time it's run. Makes me want to check if I've signed any documents presented as a "deal" by a guy with a fiddle in a southern state :)8
Server admin: "When do I need to make this config change for you?"
Me (in my head): "You mean the one I put a note in the change request ticket about in ALL CAPS and surrounded by asterisks saying 3pm (aside from the scheduled time field that the ticket requires), and the one we then subsequently chatted about where I reiterated the criticality of the timing about and the one I copied you in the email chain about that said the time in big, bold letters the time? THAT config change?!"
Me (IRL): "3pm, please."
(does not inspire confidence, though better to be asked then they just go off and do it whenever the mood strikes I suppose, which HAS happened)3
This is more just a note for younger and less experienced devs out there...
I've been doing this for around 25 years professionally, and about 15 years more generally beyond that. I've seen a lot and done a lot, many things most developers never will: built my own OS (nothing especially amazing, but still), created my own language and compiler for it, created multiple web frameworks and UI toolkits from scratch before those things were common like they are today. I've had eleven technical books published, along with some articles. I've done interviews and speaking engagements at various user groups, meetups and conferences. I've taught classes on programming. On the job, I'm the guy that others often come to when they have a difficult problem they are having trouble solving because I seem to them to usually have the answer, or at least a gut feel that gets them on the right track. To be blunt, I've probably forgotten more about CS than a lot of devs will ever know and it's all just a natural consequence of doing this for so long.
I don't say any of this to try and impress anyone, I really don't... I say it only so that there's some weight behind what I say next:
Almost every day I feel like I'm not good enough. Sometimes, I face a challenge that feels like it might be the one that finally breaks me. I often feel like I don't have a clue what to do next. My head bangs against the wall as much as anyone and I do my fair share of yelling and screaming out of frustration. I beat myself up for every little mistake, and I make plenty.
Imposter syndrome is very real and it never truly goes away no matter what successes you've had and you have to fight the urge to feel shame when things aren't going well because you're not alone in those feelings and they can destroy even the best of us. I suppose the Torvald's and Carmack's of the world possibly don't experience it, but us mere mortals do and we probably always will - at least, I'm still waiting for it to go away!
Remember that what we do is intrinsically hard. What we do is something not everyone can do, contrary to all the "anyone can code" things people do. In some ways, it's unnatural even! Therefore, we shouldn't expect to not face tough days, and being human, the stress of those days gets to us all and causes us to doubt ourselves in a very insidious way.
But, it's okay. You're not alone. Hang in there and go easy on yourself! You'll only ever truly fail if you give up.44
Use Maven, they said... it's better, they said... you don't have to manage dependencies yourself, they said...
...only now I've spent three days in hell trying to figure out why Maven keeps insisting on sticking INCOMPATIBLE JARs in my WAR that causes a breakage when deployed. No matter what I do it still sticks stuff in the WAR that shouldn't be there!
Like, I'm not a lazy cunt, I can manage my own dependencies! I know what's supposed to be there, oh, and by the way, everything fucking works when I build with Ant instead and I'm in full control of what winds up in the WAR.
So, basically, instead of the "hassle" of having to download JARs myself, I've now got the hassle of dealing with Maven trying to be more clever than me.
I know which I'd rather have, especially right now. ARGH!
You know, any time someone says "this is an industry-standard and that's why you should use it" my first thought is "hmm, which of these buildings is tallest and will ensure a quick death when I inevitably jump off of it?" MOST ESPECIALLY when the company just decides X is what everyone is going to switch to, regardless of what they're using now and regardless of how many YEARS it's been that way and working perfectly. Nope, doesn't matter, just get onboard the freight train, and if your productivity takes a hit, if you start missing deadlines dealing with shit you didn't have to deal with when using the "worse" tools, well, I guess that doesn't fucking matter, does it?!
And that's not even talking about the fact that the Maven build takes almost four minutes, which is just about 4x as long as the Ant build it replaced, each and every fucking time I make a change.
Look, I'm sure there are solutions and I'm sure I'll find them next week because I always do... and I'm sure there's some tweaking we can do to improve the performance... and it's not like this is my first go-round with Maven, though it's probably the most complex project I've ever tried to do with it... by my fucking dear god this is a nightmare, and it's not a nightmare of my choosing.
I'm disgusted, tired and defeated, three things I never get when it comes to technology. Congratulations Maven, you're on the verge of breaking someone who doesn't get broken. Another day like the last three and I'm not gonna need Stackoverflow, I'm gonna need a bus schedule so I can figure out exactly when to step off the fucking sidewalk!10
Just posting on devRant because I have a few hours to kill thanks to another Veracode scan :(
I mean, I could probably go manually read all the source faster than this thing works.