Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "fixed the wrong thing"
-
LONG RANT AHEAD!
In my workplace (dev company) I am the only dev using Linux on my workstation. I joined project XX, a senior dev onboarded me. Downloaded the code, built the source, launched the app,.. BAM - an exception in catalina.out. ORM framework failed to map something.
mvn clean && mvn install
same thing happens again. I address this incident to sr dev and response is "well.... it works on my machine and has worked for all other devs. It must be your environment issue. Prolly linux is to blame?" So I spend another hour trying to dig up the bug. Narrowed it down to a single datamodel with ORM mapping annotation looking somewhat off. Fixed it.
mvn clean && mvn install
the app now works perfectly. Apparently this bug has been in the codebase for years and Windows used to mask it somehow w/o throwing an exception. God knows what undefined behaviour was happening in the background...
Months fly by and I'm invited to join another project. Sounds really cool! I get accesses, checkout the code, build it (after crossing the hell of VPNs on Linux). Run component 1/4 -- all goocy. run component 2,3/4 -- looks perfect. Run component 4/4 -- BAM: LinkageError. Turns out there is something wrong with OSGi dependencies as ClassLoader attempts to load the same class twice, from 2 different sources. Coworkers with Windows and MACs have never seen this kind of exception and lead dev replies with "I think you should use a normal environment for work rather than playing with your Linux". Wtf... It's java. Every env is "normal env" for JVM! I do some digging. One day passes by.. second one.. third.. the weekend.. The next Friday comes and I still haven't succeeded to launch component #4. Eventually I give up (since I cannot charge a client for a week I spent trying to set up my env) and walk away from that project. Ever since this LinkageError was always in my mind, for some reason I could not let it go. It was driving me CRAZY! So half a year passes by and one of the project devs gets a new MB pro. 2 days later I get a PM: "umm.. were you the one who used to get LinkageError while starting component #4 up?". You guys have NO IDEA how happy his message made me. I mean... I was frickin HIGH: all smiling, singing, even dancing behind my desk!! Apparently the guy had the same problem I did. Except he was familiar with the project quite well. It took 3 more days for him to figure out what was wrong and fix it. And it indeed was an error in the project -- not my "abnormal Linux env"! And again for some hell knows what reason Windows was masking a mistake in the codebase and not popping an error where it must have popped. Linux on the other hand found the error and crashed the app immediatelly so the product would not be shipped with God knows what bugs...
I do not mean to bring up a flame war or smth, but It's obvious I've kind of saved 2 projects from "undefined magical behaviour" by just using Linux. I guess what I really wanted to say is that no matter how good dev you are, whether you are a sr, lead or chief dev, if your coworker (let it be another sr or a jr dev) says he gets an error and YOU cannot figure out what the heck is wrong, you should not blame the dev or an environment w/o knowing it for a fact. If something is not working - figure out the WHATs and WHYs first. Analyze, compare data to other envs,... Not only you will help a new guy to join your team but also you'll learn something new. And in some cases something crucial, e.g. a serious messup in the codebase.11 -
We're using a ticket system at work that a local company wrote specifically for IT-support companies. It's missing so many (to us) essential features that they flat out ignored the feature requests for. I started dissecting their front-end code to find ways to get the site to do what we want and find a lot of ugly code.
Stuff like if(!confirm("blablabla") == false) and whole JavaScript libraries just to perform one task in one page that are loaded on every page you visit, complaining in the js console that they are loaded in the wrong order. It also uses a websocket on a completely arbitrary port making it impossible to work with it if you are on a restricted wifi. They flat out lie about their customers not wanting an offline app even though their communications platform on which they got asked this question once again got swarmed with big customers disagreeing as the mobile perofrmance and design of the mobile webpage is just atrocious.
So i dig farther and farthee adding all the features we want into a userscript with a beat little 'custom namespace' i make pretty good progress until i find a site that does asynchronous loading of its subpages all of a sudden. They never do that anywhere else. Injecting code into the overcomolicated jQuery mess that they call code is impossible to me, so i track changes via a mutationObserver (awesome stuff for userscripts, never heard of it before) and get that running too.
The userscript got such a volume of functions in such a short time that my boss even used it to demonstrate to them what we want and asked them why they couldn't do it in a reasonable timeframe.
All in all I'm pretty proud if the script, but i hate that software companies that write such a mess of code in different coding styles all over the place even get a foot into the door.
And that's just the code part: They very veeeery often just break stuff in updates that then require multiple hotfixes throughout the day after we complain about it. These errors even go so far to break functionality completely or just throw 500s in our face. It really gives you the impression that they are not testing that thing at all.
And the worst: They actively encourage their trainees to write as much code as possible to get paid more than their contract says, so of course they just break stuff all the time to write as much as possible.
Where did i get that information you ask? They state it on ther fucking career page!
We also have reverse proxy in front of that page that manages the HTTPS encryption and Let's Encrypt renewal. Guess what: They internally check if the certificate on the machine is valid and the system refuses to work if it isn't. How do you upload a certificate to the system you asked? You don't! You have to mail it to them for them to SSH into the system and install it manually. When will that be possible you ask? SOON™.
At least after a while i got them to just disable the 'feature'.
While we are at 'features' (sorry for the bad structure): They have this genius 'smart redirect' feature that is supposed to throw you right back where you were once you're done editing something. Brilliant idea, how do they do it? Using a callback libk like everyone else? Noooo. A serverside database entry that only gets correctly updated half of the time. So while multitasking in multiple tabs because the performance of that thing almost forces you to makes it a whole lot worse you are not protected from it if you don't. Example: you did work on ticket A and save that. You get redirected to ticket B you worked on this morning even though its fucking 5 o' clock in the evening. So of course you get confused over wherever you selected the right ticket to begin with. So you have to check that almost everytime.
Alright, rant over.
Let's see if i beed to make another one after their big 'all feature requests on hold, UI redesign, everything will be fixed and much better'-update.5 -
In my current work, I have two systems to work on (let's name em Systems A and B). Both basically do the same thing; both allow users to book facilities available to them.
System A is already in production. My job is to fix any bugs that come up on said system. System B is an improved version that they wanted me to develop. This would follow a different framework etc. I am already halfway through this system.
Now, here's the fucked up part. The code for system A is a massive clusterfuck. It has unused commented code dated back to ancient times where men had the brain of an ape.
And don't get me started on the fucking logic. One part of the code was to retrieve and display the timeslots available for a chosen facility. The code to do that alone takes up 500++ fucking lines, filled with ajax commands, html manipulation and commented, unused codes..AND THAT'S JUST THE FRONTEND!
The fucking backend was not a problem of smelly code anymore. Nope. It was like a programmer had code diarrhea and shat his backend code all over the project. If I had a pin board, I would have made a crazy wall just to understand what some fucknut was trying to achieve.
Anyway, my supervisor told me to fix some bugs on System A. Knowing how the code was, I told her that I could refactor the code. Since I've already achieved that function on System B, with a shorter and cleaner code, I could just copy that and use on System A. But nope. She SPECIFICALLY told me to just "do whatever to fix the bugs. I don't want to waste time on System A." Okay. Makes sense to me. Whatever. I didn't wanna fuck my head up looking through that mess of a cesspool. So, I came up with a few hacks, not thinking of clean code and fixed whatever bugs there was. I then just pushed to the repo (after testing of course).
This bloody morning, supervisor came in and gave me more bugs to fix. When I thought she was done, she said "Hey. I saw the fix you made to the system. The bugs are fixed but the retrieval of the timeslots is now pretty slow. Could you see what is the problem?"
Slow.. She said that it was slow. And asked if I could fix it. I already told her what the problem was and she did not want me to waste time on it. But she wants me to fix it. WHAT THE FUCK IS WRONG IN HER BLOODY HEAD! I SWEAR TO GOD... UGHHHHH I swear I was already waterboarding her in my head. YOU WANT FAST?? How bout fucking allowing me to refactor the code?? Fucking shit head. I think I should take up yoga.1 -
The riskiest dev choice...
How about "The riskiest thing you've done as a dev"? I have a great entry for that. and I suppose it was my choice to build the feature afterall.
I was working on an instance of a small MMO at a game company I worked for. The MMO boasted multiple servers, each of them a vastly different take on the base game. We could use, extend, or outright replace anything we wanted to, leading to everything from Zelda to pokemon to an RP haven to a top-down futuristic counterstrike. The server in this particular instance was a fantasy RPG, and I was building it a new leveling and experience system with most of the trimmings. (Talents, feats/perks, etc. were in a future update.)
A bit of background, first: the game's dev setup did not have the now-standard dev/staging/prod servers; everything ran on prod, devs worked on prod, players connected and played on prod, etc. Worse yet, there was no backup system implemented -- or not really. The CTO was really the only person with sufficient access. The techy CEO did as well, but he rarely dealt with anything technical except server hardware, occasionally. And usually just to troll/punish us devs (as in "Oops ! I pulled the cat5 ! ;)"). Neither of them were the most reliable of people, either. The CTO would occasionally remote in and make backups of each server -- we assumed whenever he happened to think of it -- and would also occasionally do it when asked, but it could take him a week, sometimes even up to a month to get around to it. So the backups were only really useful for retreiving lost code and assets, not so much for player data.
The lack of reliable backups and the lack of proper testing grounds (among the plethora of other issues at the company) made for an absolutely terrible dev setup, but that's just how it was, and that's what we dealt with. We were game devs, afterall. Terrible or not, we got to make games! What more could you ask for!? It was amazing and terrible and wonderful and the worst thing ever, all at the same time. (and no, I'm not sharing the company name, but it isn't EA or Nexon, surprisingly 😅)
Anyway, back to the story! My new leveling system also needed to migrate players' existing data, so... you can see where this is going.
I did as much testing and inspection of my code as I could, copied it from a personal dev script to the server's xp system, ... and debated if I really wanted to click [Apply]. Every time I considered it, I went back to check another part or do yet more testing. I ended up taking like 40 minutes to finally click it.
And when I did... that was the scariest button press of my life. And the scariest three seconds' wait afterwards. That one click could have ruined every single player's account, permanently lost us players ...
After applying it, I immediately checked my character to see if she was broken, checked the account data for corruption or botched flags, checked for broken interactions with the other systems....
Everything ended up working out perfectly, and the players loved all of the new features. They had no idea what went into building them, and certainly had no idea of what went into applying them, or what could have gone wrong -- which is probably a good thing.
Looking back, that entire environment was so fragile, it's a wonder things didn't go horribly wrong all the time. Really, they almost never did. Apocalypses did happen, but were exceedingly rare, and were ususally fixed quickly. I guess we were all super careful simply because everything was so fragile? or the decent devs were, at least. We never trusted the lessers with access 😅 at least on the main servers where it mattered. Some of the smaller servers... well, we never really cared about those.
But I'm honestly more surprised to realize I've never had nightmares of that button click. It was certainly terrifying enough.
But yay! Complete system overhaul and migration of stored and realtime player data! on prod! With no issues! And lots of happy players! Woooooo!
Thinking back on it makes me happy 😊rant deploying straight to prod prod prod prod dev server? dev on prod you chicken migration on prod wk149 git? who's a git? you're a git! scariest deploy ever game development1 -
Crappy day, entirely related to cars and trucks and other wheeled implements of doom and annoyance.
My car died this morning.
It has been slowly dying for weeks in a very unusual way (something electrical; we're not sure what), but today it finally gave up and just wouldn't start anymore.
We replaced the crap battery (it had been a crap freebie from my parents), which fixed the not-starting issue for now, but it still has lots of other problems. Fluid leaks, disintegrating paint, some lights suddenly or randomly not working, super long clutch distance, sporadic grinding sounds, shifter randomly not engaging, pieces literally falling off, bits of the interior breaking (like the driver's side door handle), the wiper sprayers bloody missing the windshield, etc., etc., etc. My poor, poor car. It was super cheap, and I've had it for a long time, so I'm not surprised, but. I love my car, so it makes me really sad. ☹
Anyway, we finally got the car starting again, and I drove to work about four hours late. I had worked super late the previous night (11:45pm), and had let my boss know already, so whatever.
As for the trip, I work ~40 minutes away, and with the poor quality of drivers here there's usually something dumb happening. Today... well. Today was one of the bad days.
Someone was in the fast lane doing 50mph. The usual speed of traffic is 80mph. They got annoyed whenever someone passed them. Minor, but worth including.
Later on, people slowed way down and gawked at... a port-a-potty. Seriously, a port-a-potty. It was on the shoulder where there had been some construction, so it's not surprising or anything. People seriously dropped from 80mph down to 20mph just to stare at this thing, and it wasn't even occupied or anything. It was just a port-a-potty! There was nothing else around! What could possibly be so interesting?!
There was also a random Penske (moving) truck doing 35mph on the freeway holding up traffic like 10 minutes later; no idea why. Traffic usually does ~70mph there. No blinkers or anything, it was just being slow and causing everyone to go around in a pretty traffic-heavy area.
The truck in front of me for ~40% of the trip kept waiting way too long to stop, and would then slam on the breaks. I almost hit him twice because of this, and I couldn't see around him, either. It was some giant pickup staying just in the wrong spot. I ended up driving partially in the shoulder so I could gauge when to stop by the car in front of him. He slammed on the breaks like twelve more times before he finally left. Jerk.
The same thing happened again like 85% of the way to work, but this time it was a different pickup, and there was a semi was behind me, which obviously couldn't stop very quickly. Fortunately for both of us, there was a gap in traffic to my right, so I slipped out of the way before getting squished. ><
Bloody hell.
Today has not been fun.
Nobody flipping me off or was doing their damnedest to prevent me from changing lanes today, though, so I suppose it could have been worse. Also I didn't die, so there's that.2 -
This morning there was this window cleaner again, that actually made me remember a rant from the old box - my previous account. Repost of that coming in an hour or so :3
Turns out that he came in the morning, and I completely forgot about it. The only appointment that I had today got canceled so I was like, eh fuck it. There's been this family event yesterday that made me so fucking tired... I'll just stay in bed for a little while longer.
Apparently that window cleaner ringed my bell multiple times, haven't heard him do it but anyway.. he and the cleaning lady had the genius idea to ask my landlord whether they can just barge in my home. Way to start the day, isn't it? I thought there were burglars.
In my bathrobe and visibly pissed off (I am NOT a morning person!), I let him do the window cleaning and waited for them to get the fuck out already. Then that cleaning lady, the fucking bitch that called my landlord to break into my home without MY prior permission!!! While the window cleaner was doing his work, she proceeds to ask me this.
Cleaning lady: "I had this technical issue earlier, and since you are good with phones I thought I'd ask you."
Me (thinking): oh, here it comes.. *rolling eyes*
M: "What's the issue?"
CL: "Well my stepson has an iPhone, which he broke and we brought it to a smartphone repair shop. They repaired it twice but an hour after receipt of the fixed phone, it breaks again."
M (t): You went wrong at iPhone, and you went wrong at visiting that incompetent mofo "teknishan" twice.
M: "Well I have no experience whatsoever with iPhones, but continue."
CL: "Well, he replaced the motherboard, and some pin at the bottom.."
M (t): The fucking motherboard of all things. The whole fucking motherboard?! The last thing that I'd look at, he just replaces like that?! Fucking piece of shit. That's even worse than Apple stores. And what's up with that goddamn pin? CAN'T YOU POSSIBLY BE A BIT MORE SPECIFIC?!
M: "Given only this information, I have no idea what's wrong with it."
CL: "But you are good with these things, aren't you?!"
M: "I disassemble my own broken phones, and dick around with their motherboards. That, while I'm fully aware that in the process I can break it beyond repair. That does not make me an expert on every phone out there."
CL: …
Well what did you even expect, fucking bitch. You barge into my home, don't even have the dignity to leave for me to be able to shower and dress myself, and then you go ask shit like that? Go suck my fucking cock, and shove that iPaperweight down your ass!! How about that?!9 -
Yknow, I want to make an android app that I have in my mind for about half a year now and I already tried twice, both with Kotlin and with Java but everytime I try it's just pain and suffering and frustration...
No it's not because of the language, I like Java and I like Kotlin too and I'd say I'm at least decent at Kotlin and really good in Java...
No no.. the issue is the fucking Android SDK and the mix-and-match documentation available online!!!
Every fucking time I want to implement some sort of UI element, user action or a background service and I start googling how to do it It comes with with at least 3 different stack overflow solutions, all of them saying "that way of doing it is deprecated, instead you should X" and looking up the OFFICIAL FUCKING DOCS it will just make me roll up in the corner and cry because of how fucking inconsistent it is and the retarded domain language it uses... fucking transactions for fucking fragments inside fucking activities... because I guess the word "screen"/"view"/"template" or something similar natural just was too mainstream for the all knowing alphabet soup that google is...
And then you start looking up what the fucking difference even is and how to code it up only to find out there's at least 12 other opinions on how fragments should be used and what should be an activity and what should be a damn fragment...
But that's not all, that's just the base... I get a headache even thinking about how the fucking inflating of templates and the entire R. notation works. You want to open a fucking tiny corner menu with the settings options? WELL THEN YOU FUCKING BETTER REMEMBER TO IMPLEMENT IT THROUGH SOME SORT OF EVENT AND INFLATE THE MENU YOURSELF EVEN THOUGH ITS THE SAME FUCKING THING WITH STATIC STRINGS...
AND WHY THE FUCK DO I NEED LIKE 4 NEW FILES TO IMPLEMENT A FUCKING LISTVIEW...
also talking about ListViews... what was wrong with "ListView"... Why do we need a "RecyclerView"... oh right... because the fucks fucked the fuck up and all the legacy components were designed by a monkey and are next to useless! SO WE NEEDED A NEW NAME FOR THE FIXED VERSION, CANT NAME IT LISTVIEW AGAIN... FUCK YOU...
honestly... if I got a dolar for every "what the fuck android" I said during trying to understand that mess I'd be richer by a few hundred...
oh oh oh, but you know what? You don't like the android SDK? that's fine, you can use fucking React or Flutter or something... yeah.. because instead of torturing myself with the android SDK I want to torture myself with an abstraction of the same SDK and JavaScript as the fucking cherry on top... HAVE YOU FUCKING SEEN THE CODE FLUTTER SHOWS ON THEIR WEBSITE AS THE "Introduction" ?!!!
Look at this piece of shit:
[code in attached image, we could really use a proper Markdown support at least for rants]
THAT'S NOT EVEN THE ENTIRE THING, THAT'S JUST THE *REALLY* UGLY PART...
The fucking nesting... What is it with JS and all the fucking nesting everytime?! It looks like shit.... It reads like shit as well...
WHY, in the name OF FUCK, IS THERE MORE THAN 5 ANDROID FRAMEWORKS and ALL of them... used this FUCKING NOVEL idea of programming using A FUCKING BRACKET WALL
It always looks like:
(code(code[code{code(code{code()})}]));
If I wanted to make a fucking app or a website using fucking Haskell I'd do that.... at this point reading assembly code feels like heaven compared to this retardation... Why is this so popular?! WHAT DO YOU PEOPLE SEE IN IT?! Clearly it's not the aesthetics... it looks like a fucking frog vomit running down an emus leg, fuck that.... I don't even hate classic JavaScript, it's a good enough language and it does what I tell it to... but these ugly fucking frameworks like react, angular and whatever else uses this fucking format can go fuck right off. This is not the way JS is gonna get a better name for itself...
So:
Fuck Google
Fuck the marionette that designed the Android SDK
Fuck the Hellspawn the came up with the "functional-like" way of using JavaScript
Fuck everyone that thinks "JavaScript everywhere" is a good thing
And deeply future-fuck everyone that makes a new framework following any of these standards, stucks a .js at the end of the name and releases his hairball.js of an invention into the fucking world....
It's a mess... fuck everything android related...
14 -
Got my first Webdev job at a small marketing company, felt very lucky as I didn't have much experience. Turns out I'm the only one that could program. The other guys just use Wordpress. It felt wrong at first, using plugins instead of developing, but we got results and clients were happy. I felt like there was a lot less to this development thing than I'd previously thought! And so we continued.
But I noticed that some of our more plugin heavy sites (not made by me - these were made in some drag/drop Wordpress interface) were running slow. I mean 15 seconds load time slow. I joined devRant around the same time and discovered that no - this is not what normal development actually is. Wordpress seems universally hated. Thank god, because something seemed very wrong!
So with us getting complaints all over the place over page speed from relatively high-profile clients, I've gone and set up a script on a server that downloads the whole front end of these Wordpress sites and serves them up instead of the 'real' thing. Did I mention that there's basically no dynamic content on most of these sites? It works like a charm! I'm now trying to figure out how to get forms and route them into the real, hidden version of the site, as well as automatically updating the html views whenever the client changes anything in the Wordpress backend. Not sure if this has fixed the problem or just enabled bad practice, but I don't think I'm going to be able to stop the others from doing things this way...
For the record, yes there are plugins that do similar stuff but I thought it'd be nice to never use plugins again! And hey, I got to learn all about bash scripting so I can't complain.
For real though, I didn't quite realise how bad the Wordpress thing really was until I came here. Thanks for making me aware, all!7 -
I'm actually a Dev, mostly just a shell scripter who needs to support 500 servers which run our applications. I install the new versions and check whatever is wrong if there are customer issues.
One release weekend everything went wrong, Development had to make new builds on the fly with hardly any time for testing.
It took 18 hours with no break.
It was extremely hard to concentrate, but being in the Skype group with everyone and finally getting everything fixed was quite rewarding.
Everyone just opened a beer and we stayed on the call for about 30 more minutes just to relax.
I like our Dev team way better than I like my actual colleagues, who merely mess things up and call me for the smallest thing without even thinking.4 -
Oh boy I got a few. I could tell you stories about very stupid xss vectors like tracking IDs that get properly sanitized when they come through the url but as soon as you go to the next page and the backend returns them they are trusted and put into the Dom unsanitized or an error page for a wrong token / transaction id combo that accidentally set the same auth cookie as the valid combination but I guess the title "dumbest" would go to another one, if only for the management response to it.
Without being to precise let's just say our website contained a service to send a formally correct email or fax to your provider to cancel your mobile contract, nice thing really. You put in all your personal information and then you could hit a button to send your cancelation and get redirected to a page that also allows you to download a pdf with the sent cancelation (including all your personal data). That page was secured by a cancelation id and a (totally save) 16 characters long security token.
Now, a few months ago I tested a small change on the cancelation service and noticed a rather interesting detail : The same email always results in the same (totally save) security token...
So I tried again and sure, the token seemed to be generated from the email, well so much about "totally save". Of course this was a minor problem since our cancelation ids were strong uuids that would be incredibly hard to brute force, right? Well of course they weren't, they counted up. So at that point you could take an email, send a cancelation, get the token and just count down from your id until you hit a 200 and download the pdf with all that juicy user data, nice.
Well, of course now I raised a critical ticket and the issue was fixed as soon as possible, right?
Of course not. Well I raised the ticket, I made it critical and personally went to the ceo to make sure its prioritized. The next day I get an email from jira that the issue now was minor because "its in the code since 2017 and wasn't exploited".
Well, long story short, I argued a lot and in the end it came to the point where I, as QA, wrote a fix to create a proper token because management just "didn't see the need" to secure such a "hard to find problem". Well, before that I sent them a zip file containing 84 pdfs I scrapped in a night and the message that they can be happy I signed an NDA.2 -
When will X be finished?!
Um..I don't know cuz thing Y is blocking me from doing X implementation and it makes no sense.. I have no idea what is wrong with it and can't tell how long it'll take me to fix, hopefully by the end of today I'll have thing Y fixed enough so I can finish thing X..
Ok, will you be able to update production today?! Just put it on production when you're done with X.
Uuuumm... Yeah... // still need to know how X will behave in cases a, b, c & b+c...
I'm writing this while waiting for abc feedback.. this is going great.. :/
I know prod is not used as prod yet, but still... fuuuuu!!1 -
Today I spent several hours arguing with a client. Why? Because she's seeing an error on her website, and no matter how many times I explain to her that she's the only one seeing a css misalignment that was fixed this morning, and that she should clear the browser's cache or just use a different one, she refuses to understand that it's not my fault and that the website that's in production is working just fine for her users.
FFS I tested the same thing on Firefox Chrome, chromium, edge and even fucking IE8 on as many OSs as I can, namely Windows 7, Windows 10, Debian, Ubuntu, Android and OSX.
WHY DO YOU KEEP BLAMING ME FOR YOUR BROWSERS CACHE. SHUT THE FUCK UP AND ACCEPT YOU WERE WRONG FOR THE FIRST TIME IN YOUR LIFE.
Uffff, that feels better.2 -
A certain person here on devRant was annoyed about my phone being named “Beyond”, seeing a screenshot of my settings.
What they said: “the name, beyond, reeks pretentiousness and arrogance, you say you’re better than other people”
What really happened: during one of my manic episodes, I discovered the band named Death Grips. Their music resonated with me and helped me to cope with my derealization. In one of their songs, I misheard lyrics, and heard the word “Veyon” that was never there in the first place. Upon my inner voice pronouncing it, as it usually happens to me, a brand-new universe appeared before me, where Veyon was a name of a megacorporation that exists in a shaky spacetime plane somewhere in India. If you want to go there, three outcomes are possible: you can actually come to their building that appears to be normal, with people working inside you can talk to, and no signs of trouble in sight. Or, you can try to walk to their building, but you will never reach it. GPS will show you slowing down gradually as you get closer, but to you, it would look like you’re just walking with your regular speed, as if nothing happened. Like a function trying to reach its asymptote, you’ll never come to your destination. The third outcome is by far the most interesting one. You will reach the building, but it will be abandoned, with doors scattered on the floors randomly, some of them will disappear after you walk in, rendering you missing in this universe. Oh, and floors are guarded by robots and turrets, and they are made by Grumman, the military aviation manufacturer. Yes, Grumman, not Northrop Grumman. This building in the third outcome originates from the spacetime plane where Northrop and Grumman never merged.
The whole thing raced through my mind in a millisecond. I liked it and decided to squat the name, but it was already taken by Veyon open source software (Virtual Eye On Networks).
In some time, I bought a new phone second-hand, and named it Veyon. The next day, I took it to shower with me. It turned out that the seller lied to me about it never being fixed. It was, and in the process its water resistance was compromised. So, this phone was damaged beyond repair the next day I bought it.
The same day, I went and bought the same phone model, but brand new, and in black, as I originally wanted. I was grateful for this opportunity that helped me escape the situation where I would've been using the phone of the colour I disliked just because I cheapen out. I know myself, and I would’ve been feeling uneasy every day, hesitant to sell it and get a new one because “nothing is wrong with it, quit being this picky, it’s just a colour”, but wait, don’t I deserve to make the colour a significant enough reason to switch the phone because I care about colour, especially if it’s me who’s paying the money? Did I make this money rightfully, or am I an impostor who gets paid because of intricate lies I tell? Do I actually tell them, or do I make that up to somehow convince "them" I'm innocent? Or do I try to get attention?
I’m terrible at dealing with that kind of mess, So, I was grateful.
The only thing left to do was to name my new phone. I decided not to name it “Veyon” again, just in case. So, I named it “Beyond”, as this word is probably what the actual song said.
The monstrosity of a story above is the usual thing for me to feel. I was really hurt by you telling me the name I chose was a display of pretentiousness. Do I deserve to be pretentious? I say yes, but my voice is shaking, as flashbacks of my awful mother abusing me come in the way.
You hurt me with that comment. Let’s meet? :)2 -
Beware: Here lies a cautionary tale about shared hosting, backups, and -goes without saying- WordPress.
1. Got a call from a client saying their site presented an issue with a third-party add-on. The vendor asked us to grant him access to our staging copy.
2. Their staging copy, apparently, never got duplicated correctly because, for security reasons, their in-house dev changed the name of the wp-content folder. That broke their staging algo. So no staging site.
3. In order to recreate the staging site, we had to reset everything back to WP defaults. Including, for some reason, absolute paths inside the database. A huge fucking database. Because WordPress.
4. Made the changes directly in a downloaded sql file. Shared hosting, obviously, had an upload limit smaller to the actual database.
5. Spent half an hour trying to upload table by table to no avail.
6. In-house uploads a new, fixed database with the help of the shared hosting provider.
7. Database has the wrong path. Again.
8. In-house performs massive Find and Replace through phpMyAdmin on the production server.
9. Obviously, MySQL crashes instantly and the site gets blocked for over 3 hours for exceeding shared hosting limits.
10. Hosting provider refuses to accept this was caused by such a stupid act and says site needs to be checked because queries are too slow.
11. We are gouging our eyeballs as we see an in-house vs. hosting fight unfold. So we decide to watch a whole Netflix documentary in between.
12. Finally, the hosting folds and enables access to the site, which is obvi not working because, you know, wrong paths.
13. Documentary finishes. We log in again, click restore from backup. Go to bed. Client phones to bless us. Client’s in-house dev probably looking for a cardboard box to pack his stuff first thing in the morning. \_(ツ)_/¯ -
Probably had my worst half-week ever this week.
Customer's CRM system, the read and edit masks just...stopped existing on last week friday. CRM fell back on some default masks for the dataset. No way to create new masks directly without putting the whole system upside down.
We couldn't do anything anyway because they reported the issue literally as we all were about to leave for weekend and our boss was like "Ah nah, well do it next week."
Our brains were already fried anyway...
I mail the reporter that we've registered their issue, will investigate and report back ASAP once we've got news.
Monday rolls around, I'm whacking my head against their system trying to figure the fuck out, what went wrong and how to solve it, I come up empty; Not that terrible since the masks only stopped existing in the webclient version of the system and they can still use the windows client, so they can still work.
Tuesday rolls around, I'm at an on site training for an ERP system with my boss at a remote company. Get an email in midst of the training, I was doing protocol.
Guy from the afflicted company goes and tells me that the issue has somehow spread to his colleague and him...IN THE WINDOWS CLIENT.
I'm fucking flabbergasted, so to speak, since the masks for the windows client and the web client are totally isolated from one another.
After we're back at our company, I investigate, less efficiently this time because my brain got fried at the training. I come up empty again.
NOW TODAY: Discuss further proceedings with my boss, he's not pissed at me or anything, just to say, but we're both worried, obviously.
Then at 10:20, a guy from the afflicted company mails me in an annoyed tone that the masks are still broken.
11:00, we figure out a workaround so the windows client users can at least work again, albeit limited.
11:10, I mail the guy, telling him that although we're still not able to fully work everything out and are still investigating, we've made a workaround so they can at least work again.
11:20, the guy mails me in a pissed tone around the lines of "This is very very important and must be fixed ASAP or else we'll not be able to work at all [...]"
And I think like "Dude I literally just told you like 8 minutes ago that there's are workaround so you'll be able to at least work again..."
Forward the mail to boss, we meet up quickly to discuss how in God's name we can deescalate this mfer.
11:31, the guy mails me again, all apologetically this time "Stop! All is good, I just now fully read you mail, thanks for implementing the workaround, nothing will come to a standstill [...]"
BRUH CAN YOU NOT FUCKING READ BEFORE ESCALATING SHIT
Fuck customers. Dumb fucking cretins unable to fucking read.
The issue is still unresolved. Support of the CRM software lets us sit on our collective asses and wait.
There is no such thing as stable software, it's a myth.
Every corporate software is like an ever-decaying semi-corpse of a brain dead patient slowly getting worse and worse but not fucking dying.
Rant over. -
Boss assigned code cleanup to me. We put up eslint and fixed a couple of issues, all nice and cute. Now, he wants me to find any redundant code and remove it (redundant fields in config objects). Sounds doable right?
WRONG!
Because we're writing fucking ExtJS. This abomination that is still called a "web framework" in lieu of its former glory supports no typescript, no code intel, no JSDoc, no nothing. Absolutely heinous and deplorable. Add insult to injury, our code on it is even worse. NO single component reused except from a couple REALLY fucking badly written ones, because every component queries for shit outside its jurisdiction so it's all a dependency spaghetti. Everything else is just copy-paste. Barely anything works as intended anymore in this bloody joke of an app.
I tell him in a meeting, I can prepare an automated solution. Some script or something that runs on a file watcher. All nice and dandy. A weekend and a Monday later, I get tired and do something else to clear up my mind. Show him some progress in that other thing. He's like:
Boss: that's good and all but did you remove *insert misused config that got everywhere during copy paste* like I told you to?
Me: I'm still working on it. I switched cause I got tired a bit with the automation.
Boss: automation?
Me: We were talking about in the meeting. *Explains again*
Boss: That's not what we agreed upon
Mfw I've been rambling uselessly on the meeting about it just for you to put me down and make me remove all that copy pasted GUNK from the melting hot garbage that is our codebase BY HAND? All the 150 occurrences of it? What do you think I am, a fucking robot?1 -
The story of how I knew I did the right thing leaving the start up I was an employee of.
It was a great place to work when I started, we had a plan and we were are working hard to make it. But pretty soon I realised that things weren't 100%. We kept altering the product and focusing on the wrong things. Our backlog grew faster than it was completed.
Pretty soon a launch planned in April was pushed back over and over again, until we finally released in November, and instead of being first on the market we were last.
We pivoted hard and I didn't believe in the new product so I quit.
The last week on the job I was finishing up some stuff and when our PO (who also was a programmer)was deploying the things I had done to production something went wrong. Now I had just integrated *his* new authorization service and I had a hunch it wasn't deployed. But he sent a message over slack with a bunch of code alterations that was the "problem". Along with some passive aggressive words about how I wasn't professional and didn't take ownership of the product.
I only added an error log that asked if the authorization service was deployed, and 10 minutes later he came up and said good job, no mention of what was fixed between now and then.
I have no regrets leaving that place. -
Actually I have two stories
The first one, that one project I talked about with a big company when I was at school. It wasn't that much coding since it was mostly researching, but it was a big project that seems really interesting, with Image Analysis and Machine Learning.
The projects at school this year got drawn randomly for each group, so when I've been announced that I've been chosen for the biggest project, thinking about every side of the project, I was hyped. And even a year after we finished it, I'm still happy and excited about it.
The second is something a little more funny :
So we got some projects to do during December for school including cryptography. Again, those were randomly drawn (but some can really fuck you up) and I got to do a Password Manager, like KeyPass. We were 4, and we thought we had the time to do it.
But we misread the date. At the end of Christmas break, I got a call of a friend saying that the project is due in two days.
Thing is, one of my three co-workers weren't contactable. And we got nothing.
So I kinda took the lead : I said to one to do the UI, another to do the cryptograph helper, and I'll do the linking and all the behaviour of it.
In two days, I literally spent all the time available on it.
Then first meeting with the teacher for saying what is wrong, where bugs are if they exist, ect. so we can fix the issues and deliver a clean code. They were like only 4 big problems. More is, I fixed them all in like two hours while thinking fixing only one. And we got something like the 2nd or the 3rd best mark of the prom. And everyone congratulated me for that. I got so excited I was able to do that in few time.
But never that again lmao -
Let me start this off by stating I'm a Java dev, and a noob with C++.
Thought it'd be cool to learn some OpenCL, since I want to do some maths stuff and why not learn something new.
So I sat down, installed Nvidia proprietary drivers, broke my x-org server, purged, reinstalled, rebooted and after a while I got stuff sorted out.
Then on to my IDE. I use CLion and it uses Cmake. C++ noob knows shit about Cmake, so struggle for two hours trying to figure out wtf is going on with the OpenCL libs and why they're only partially detected. Fml.
Finally, everything is configured and I'm set. I start working on a Hello World program using OpenCL. Finish it in 20 mins, all good. No output. Do some googling, check my program a million times. Nothing wrong here. Check the kernel, everything as in the tutorial.
I start checking error codes after a while reported by OpenCL (which I had no clue was a thing) and I get some code saying the program was not created properly (to run the kernel). No fucking clue what's up with that. Google around, find another tutorial, rewrite my code in case I'm using outdated code or something. Nothing.
Fast forward an hour, I find out that OpenCL has logs! So I grab some code from the website I found it on, and voila, I finally get some info on what's going on.
Get a load of this bs.
In the kernel file, so that OpenCL knows that it's a function to run, you have to put __kernel. But in all the places I read, it said to put it as _kernel.
Add the underscore, compile, run and everything is perfect.
Then I tried just putting 'kernel'. Also compiles and runs fine.
Two hours hours and my program was fixed by adding an underscore. IF ONLY C++ GAVE AN INDICATION OF WHAT BLEW UP INSTEAD OF SITTING BACK AND BEING LIKE "oh wow man feels bad, work some magic and try again" THEN THIS WOULD NOT HAVE TAKEN SO LONG.
Then again, it was OpenCL that was being shitty with its styling enforcement or whatever the hell the underscore business is. But screw it. C++ eats shit too for this. Sure, maybe Java babies you by giving you the exact error and position that the error took place at. But at least that way you don't waste hours of your life chasing invisible bugs 😠😠
I'm going to eat some food... Too much energy was consumed fighting the system... Then I'll get back to OpenCL because 😇 but that doesn't make it less bs.1 -
So I decided to install a third OS on my laptop and oh boy, I never thought I'd have to deal with so many issues!
First, I had to make space for the new OS, so I did the only feasible thing - Shrunk a windows partition (Used for gaming only), then installed the third OS into it. (For clarification, one OS was Windows, the second Debian for work and the new one was Kali for a course at school about security and ethical hacking)
Well... After I installed and tried out that the Kali worked... My Debian began to make problems. It would hang for almost a minute during start as it tried to mount a (for some reason) no longer existing Swap partition.
After it gave up and I found out... I, fortunately, fixed it after just a bit of googling. At least I learned to repack the ramfs.
It worked all fine and dandy... Only... My Debian now shared the swap with Kali.
Few weeks forward, last friday, I tried to boot up Kali at class... Only for it to... Stop at a black screen, weird.
Some minor detective work later, I found out nothing was... Wrong really.
But... For some mysterious reason, my complete GDM just.... No longer worked.
One LightDM and XFCE instal later (Thanks god that at least TTY still worked fine), it finally worked again, and this time, I booted back into Debian, shrunk the Kali partition a little more and dedicated it's own swap there. Setting and resetting everything, and finally had a working triple-boot laptop...
My only question is... Why?
Does sharing Swap really affect the system so much, besides hibernation ofc.3 -
Good code is a lie imho.
When you see a project as code, there are 3 variables in most cases:
- time
- people / human resources
- rules
Every variable plays a certain role in how the code (project) evolves.
Time - two different forms: when certain parts of code are either changed in a high frequency or a very low frequency, it's a bad omen.
Too high - somehow this area seems to be relentless. Be it features, regressions or bugs - it takes usually in larger code bases 3 - 4 weeks till all code pathes were triggered.
Too low - it can be a good sign. But it should be on the radar imho. Code that never changes should be reviewed at an - depending on size of codebase - max. yearly audit. Git / VCS is very helpful here.
Why? Mostly because the chances are very high that the code was once written for a completely different requirement set. Hence the audit - check if this code still is doing the right job or if you have a ticking time bomb that needs to be defused.
People
If a project has only person working on it, it most certainly isn't verified by another person. Meaning that only one person worked on it - I'd say it's pretty bad to bad, as no discussion / review / verification was done. The author did the best he / she could do, but maybe another person would have had an better idea?
Too many people working on one thing is only bad when there are no rules ;)
Rules. There are two different kind of rules.
Styling / Organisation / Dokumentation - everything that has not much to do with coding itself. These should be enforced at a certain point, otherwise the code will become a hot glued mess noone wants to work on.
Coding itself. This is a very critical thing.
Do: Forbid things that are known to be problematic in the programming language itself. Eg. usage of variables in variables, reflection, deprecated features.
Do: Define a feature set for each language. Feature set not meaning every feature you want to use! Rather a fixed minimum version every developer must use and - in case of library / module / plugin support - which additional extras are supported.
Every extra costs. Most developers don't want to realize this... And a code base that evolves over time should have minimal dependencies. Every new version of an extra can have bugs, breakages, incompabilties and so on.
Don't: don't specify a way of coding. Most coding guidelines are horrific copy pastures from some books some smart people wrote who have no fucking clue what you're doing and why.
If you don't know how to operate on people, standing in an OR and doing what a book told you to do would end in dead person pretty sure. Same for code.
Learn from mistakes and experience, respect knowledge from other persons, but always reflect on wether this makes sense at this specific area of code.
There are very few things which are applicable to a large codebase on a global level. Even DRY / SOLID and what ever you can come up with can be at a certain point completely wrong.
Good code is a lie - because it can only exist at a certain point of time.
A codebase should be a living thing - when certain parts rot, other parts will be affected too.
The reason for the length of the comment was to give some hints on what my principles are that code stays in an "okayish" state, but good is a very rare state -
Have you ever found a infinite task? Well, I did.
So, the software that I'm working now was under responsibility of another company for development and maintenance (I'll call them X) from 2014 to last month , and the company I work for was handling only with the business part. Now we took all the development for us as well.
This software has a lot of reports , so it has a lot of templates for this reports.
When X was handling the software, they asked the client and the old project manager if they wanted the templates to have the client's products dynamic (no need to change the template when adding a new product) or hardcoded for some products they already had, they choose hardcoded because it would be faster. Butterfly effect.
Fast forward to this week, the team leader designated a task for me, It looked easy at first, just fix 2 templates, easy.
Oh boy, I was so wrong.
I fixed the first template, discovering in the process the hardcoded things, had to add the product reference in a lot of places.
So i went to the second item, a super template that they use to put together some smaller templates.
It was really weird, I couldn't find all the templates that it was supposed to use, and I didn't really know the exact problem, the only thing I knew was that it was not being generated, the reason could be the super template itself or one of the 15 smaller templates, that could happen to have sub templates.
So I called the team leader and explained to him wtf was happening, he called the senior business analyst, that called the PM, we agreed that it would be infinite because of those fucking hardcoded things, they prepared a excel sheet with this and a lot of other problems and will send this to the client, explaining that we'll need a lot of time to put this new product up and running.
Now I'm in the middle of this shit storm seeing a time of darkness in the future.
Ps: This new product was supposed to be inserted in the software since last November, when it was under X responsability, and they analyzed it and said that it would take 190 hours to be completely done, the client refused. It was the first rain drop of what would become a shit storm. -
I haven't had anything dev related to rant about in a few weeks due to the fact that I haven't done any developing in a few weeks. I have a lot of personal shit going on that I'm slowly getting past. Basically some shit went down, the girl I posted about a few times, we're just friends at this point. My best friend won't talk to me and hasn't in about 2 weeks now. Fun.
Then there's the fact that I have school Monday through Friday, and work Thursday through Sunday, so I get zero days off. So I just..don't have the time to do developing right now. But, here's a kinda funny story (not that funny)
So this Sunday, I was leaving work. I decided to roll my car's window down to say bye to a few people as I was pulling out of the parking lot. It was cold so I went to roll my window back up....and it's fucking stuck. I'm sitting in about 15°F (-9.5°C) with no driver's side window. Turned out the fucking motor that moves the window had died. And I had no money to get it replaced. So I did the logical thing, I called my mom to try and figure out what I should do. She was asleep but my dad picked up. He called me a dumbass and said he'd pay to get it fixed, since it was his car before and he never told me that the window was faulty.
Actually got it fixed just yesterday by my cousin. Then I went to get my paycheck (a whole $200!) since my work has my name spelled wrong in their system so I currently can't do direct deposit (gonna talk to the general manager about that tomorrow). And now I'm just sitting in bed, waiting for my check to go through. (As I was typing that last sentence, someone from my bank called actually). I would really appreciate that $200 right now, cause I have about $2 after paying for car insurance and gas and stuff. I actually need to fill up my gas soon too..2 -
I would have wanted to bring up SICP again, with the great big warning about the evil assignment operator and state and all the troubles that ensue (just think: concurrency).
But in a way, nothing has really come up from this or my attempts to dig deeper into "everything is a file/object" (Unix, smalltalk), neither from formal languages or the Curry-Howard correspondence. - Maybe there's just nothing, no firm bottom ground to discover. Like the physicists going for their world formula, but instead of a grand, beautiful symmetry that explains everything, we face a shattered world of (incompatible) theories, that is ever so more complex and chaotic through our theories applied to it. There may not be a Platonic ideal world of ideas, but rather partial constructs explaining some particular perceptions.
Similarly the one perfect programming language to rule them all, the perfect abstraction, pattern is probably just another prepubertal fantasy to be sunk.
So maybe instead of seeking the perfect epiphany, we should go for something quite different: the nagging, brooding uneasiness that something is wrong there, that there's something to be fixed... that even negative feeling would propel us to search further, not to stay in whatever is touted as the real thing.
Such irritations I found with Pieter Hintjens' writings. For example when he actively engaged in conspiracy theories. And I'm still not sure, if he just went off the cliff or he's even right alluding that these theories are an act of sanity, a self-defence against the hidden evil mights. I just don't know. Anything.
