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 - "integrity"
-
Good Morning!, its time for practiseSafeHex's most incompetent co-worker!
Todays contestant is a very special one.
*sitcom audience: WHY?*
Glad you asked, you see if you were to look at his linkedin profile, you would see a job title unlike any you've seen before.
*sitcom audience oooooooohhhhhh*
were not talking software developer, engineer, tech lead, designer, CTO, CEO or anything like that, No No our new entrant "G" surpasses all of those with the title ..... "Software extraordinaire".
*sitcom audience laughs hysterically*
I KNOW!, wtf does that even mean! as a previous dev-ranter pointed out does this mean he IS quality code? I'd say he's more like a trash can ... where his code belongs
*ba dum tsssss*
Ok ok, lets get on with the show, heres some reasons why "G" is on the show:
One of G's tasks was to build an analytics gathering library for iOS, similar to google analytics where you track pages and events (we couldn't use google's). G was SO good at this job he implemented 2 features we didn't even ask for:
- If the library was unable to load its config file (for any reason) it would throw an uncatchable system integrity error, crashing the app.
- If anything was passed into any of the functions that wasn't expected (null, empty array etc.) it would crash the app as it was "more efficient" to not do any sanity checks inside the library.
This caused a lot of issues as some of the data needed to come from the clients server. The day we launched the app, within the first 3 hours we had over 40k crash logs and a VERY angry client.
Now, what makes this story important is not the bugs themselves, come on how many times have we all done something stupid? No the issue here was G defended all of this as the right thing to do!
.. and no he wasn't stoned or drunk!
G claimed if he couldn't get the right settings / params he wouldn't be able to track the event and then our CEO wouldn't have our usage data. To which I replied:
"So your solution was to not give the client an app instead? ... which also doesn't give the CEO his data".
He got very angry and asked me "what would you do then?". I offered a solution something like why not have a default tag for "error" or "unknown" where if theres an issue, we send up whatever we have, plus the file name and store it somewhere else. I was told I was being ridiculous as it wasn't built to track anything like that and that would never work ... his solution? ... pull the library out of the app and forget it.
... once again giving everyone no data.
G later moved onto another cross-platform style project. Backend team were particularly unhappy as they got no spec of what needed to be done. All they knew was it was a single endpoint dealing with very complex model. There was no Java classes, super classes, abstract classes or even interfaces, just this huge chunk of mocked data. So myself and the lead sat down with him, and asked where the interfaces for the backend where, or designs / architecture for them etc.
His response, to this day frightens me ... not makes me angry, not bewilders me ... scares the living shit out of me that people like this exist in the world and have successful careers.
G: "hhhmmm, I know how to build an interface, but i've never understood them ... Like lets say I have an interface, what now? how does that help me in any way? I can't physically use it, does it not just use up time building it for no reason?"
us: "... ... how are the backend team suppose to understand the model, its types, integrate it into the other systems?"
G: "Can I not just tell them and they can write it down?"
**
I'll just pause here for a moment, as you'll likely need to read that again out of sheer disbelief
**
I've never seen someone die inside the way the lead did. He started a syllable and his face just dropped, eyes glazed over and he instantly lost all the will to live. He replied:
" wel ............... it doesn't matter ... its not important ... I have to go, good luck with the project"
*killed the screen share and left the room*
now I know you are all dying in suspense to know what happened to that project, I can drop the shocking bombshell that it was in fact cancelled. Thankfully only ~350 man hours were spent on it
... yep, not a typo.
G's crowning achievement however will go down in history. VERY long story short, backend got deployed to the server and EVERYTHING broke. Lead investigated, found mistakes and config issues on every second line, load balancer wasn't even starting up. When asked had this been tested before it was deployed:
G: "Yeah I tested it on my machine, it worked fine"
lead: "... and on the server?"
G: "no, my machine will do the same thing"
lead: "do you have a load balancer and multiple VM's?"
G: "no, but Java is Java"
... and with that its time to end todays episode. Will G be our most incompetent? ... maybe.
Tune in later for more practiceSafeHex's most incompetent co-worker!!!31 -
Oh, man, I just realized I haven't ranted one of my best stories on here!
So, here goes!
A few years back the company I work for was contacted by an older client regarding a new project.
The guy was now pitching to build the website for the Parliament of another country (not gonna name it, NDAs and stuff), and was planning on outsourcing the development, as he had no team and he was only aiming on taking care of the client service/project management side of the project.
Out of principle (and also to preserve our mental integrity), we have purposely avoided working with government bodies of any kind, in any country, but he was a friend of our CEO and pleaded until we singed on board.
Now, the project itself was way bigger than we expected, as the wanted more of an internal CRM, centralized document archive, event management, internal planning, multiple interfaced, role based access restricted monster of an administration interface, complete with regular user website, also packed with all kind of features, dashboards and so on.
Long story short, a lot bigger than what we were expecting based on the initial brief.
The development period was hell. New features were coming in on a weekly basis. Already implemented functionality was constantly being changed or redefined. No requests we ever made about clarifications and/or materials or information were ever answered on time.
They also somehow bullied the guy that brought us the project into also including the data migration from the old website into the new one we were building and we somehow ended up having to extract meaningful, formatted, sanitized content parsing static HTML files and connecting them to download-able files (almost every page in the old website had files available to download) we needed to also include in a sane way.
Now, don't think the files were simple URL paths we can trace to a folder/file path, oh no!!! The links were some form of hash combination that had to be exploded and tested against some king of database relationship tables that only had hashed indexes relating to other tables, that also only had hashed indexes relating to some other tables that kept a database of the website pages HTML file naming. So what we had to do is identify the files based on a combination of hashed indexes and re-hashed HTML file names that in the end would give us a filename for a real file that we had to then search for inside a list of over 20 folders not related to one another.
So we did this. Created a script that processed the hell out of over 10000 HTML files, database entries and files and re-indexed and re-named all this shit into a meaningful database of sane data and well organized files.
So, with this we were nearing the finish line for the project, which by now exceeded the estimated time by over to times.
We test everything, retest it all again for good measure, pack everything up for deployment, simulate on a staging environment, give the final client access to the staging version, get them to accept that all requirements are met, finish writing the documentation for the codebase, write detailed deployment procedure, include some automation and testing tools also for good measure, recommend production setup, hardware specs, software versions, server side optimization like caching, load balancing and all that we could think would ever be useful, all with more documentation and instructions.
As the project was built on PHP/MySQL (as requested), we recommended a Linux environment for production. Oh, I forgot to tell you that over the development period they kept asking us to also include steps for Windows procedures along with our regular documentation. Was a bit strange, but we added it in there just so we can finish and close the damn project.
So, we send them all the above and go get drunk as fuck in celebration of getting rid of them once and for all...
Next day: hung over, I get to the office, open my laptop and see on new email. I only had the one new mail, so I open it to see what it's about.
Lo and behold! The fuckers over in the other country that called themselves "IT guys", and were the ones making all the changes and additions to our requirements, were not capable enough to follow step by step instructions in order to deploy the project on their servers!!!
[Continues in the comments]26 -
A quite severe vulnerability was found in Skype (at least for windows, not sure about other systems) allowing anyone with system access (remote or local) to replace the update files skype downloads before updating itself with malicious versions because skype doesn't check the integrity of local files. This could allow an attacker to, once gaining access to the system, 'inject' any malicious DLL into skype by placing it in the right directory with the right file name and waiting for the user to update (except with auto updates of course).
From a company like Microsoft, taking in mind that skype has hundreds of millions of users worldwide, I'd expect them to take a very serious stance on this and work on a patch as soon as possible.
What they said about this: they won't be fixing it anytime soon as it would require a quite big rewrite of skype.
This kinda shit makes me so fucking angry, especially when it comes from big ass companies 😡. Take your fucking responsibility, Microsoft.16 -
"Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves." - Alan Kay5
-
If your IDE found
10 errors
and 47 warns
would you correct them
or let them slip.
YO ...
His palms are sweaty
Knees weak, arms are heavy
The tests are failing already
Code spaghetti.
He's nervous,
But at his laptop he looks calm and ready
To squash bugs
But he keeps on forgetting
What he wrote down, the whole team goes so loud
He opens his file, but the code won't come out
He's chokin', how, everybody's jokin' now
The deadline run out, times up, over, blaow!
Snap back to reality, oh there goes file integrity
Oh, there goes documentation, he choked
He's so mad, but he won't give up that easy? No
He won't have it, he knows his whole header's code
It don't matter, he's dope, he knows that, but he's broke
He's so stacked that he knows, when he goes back to his mobile home, that's when its
Back to the office again yo, this whole rhapsody
He better go capture this moment and hope it don't pass him
Note: All credits to the original owners of these phrases.5 -
Fucking moronic clients like these make me want to drop the project, needless to say I dropped the project immediately. I know it's highly unethical but fuck it.
On top of that I was doing charity work by charging 1/8th of my usual rate and this fucking idiots thinks that he is teaching/spoonfeeding me for his project, moron, I made micro library for that much amount of money.
Loss is loss and integrity is integrity..15 -
I've got a confession to make.
A while ago I refurbished this old laptop for someone, and ended up installing Bodhi on it. While I was installing it however, I did have some wicked thoughts..
What if I could ensure that the system remains up-to-date by running an updater script in a daily cron job? That may cause the system to go unstable, but at least it'd be up-to-date. Windows Update for Linux.
What if I could ensure that the system remains protected from malware by periodically logging into it and checking up, and siphoning out potential malware code? The network proximity that's required for direct communication could be achieved by offering them free access to one of my VPN servers, in the name of security or something like that. Permanent remote access, in the name of security. I'm not sure if Windows has this.
What if I could ensure that the system remains in good integrity by disabling the user from accessing root privileges, and having them ask me when they want to install a piece of software? That'd make the system quite secure, with the only penetration surface now being kernel exploits. But it'd significantly limit what my target user could do with their own machine.
At the end I ended up discarding all of these thoughts, because it'd be too much work to implement and maintain, and it'd be really non-ethical. I felt filthy from even thinking about these things. But the advantages of something like this - especially automated updates, which are a real issue on my servers where I tend to forget to apply them within a couple of weeks - can't just be disregarded. Perhaps Microsoft is on to something?11 -
A Month ago...
Me: when are you going to complete the report
Friend: we can do it in minutes
Me: you can't Ctrl + c and Ctrl +v as there is plagiarism check
Friend: we have spin bot
Me: you do that now itself . if something happens? You can join me .
Friend: just chill
Now ...
Me: done with report
Friend: feeding it to spin bot!
Feeds text related to database security....
Spin bot:
Garbage collector == city worker
SQL statements == SQL explanation
SQL queries == SQL interrogation
SQL injection == SQL infusion
Attack == assault
Malicious == noxious
Data integrity == information uprightness
Sensitive == touchy
.....
Me: told you so...
**spin not == article rewriter3 -
> An update is available
> Installs update
> Update failed bc of corrupted system components
> Random bluescreens
> Sfc /scannow
> Can't scan because there is one pending repair
> Restart
> Does everything except repairing
> Recovery mode
> System integrity check failed
> Reset Windows
> Reset failed bc of "some" problems
> Media creation tool for bootable USB
> Tool fails to write image
> Media creation tool on another pc
> Successful
> Install Windows
> Missing drivers, cannot install
> Wipes hard drive
Fuck you Microsoft5 -
Product team having a proof of concept demo with client:
Sales to client: "Just for the record, we are not selling this to a rival company. Because we really want this technology exclusive to you"
Me (thinking to myself): "Oh really? We just had a demo with them last 2 weeks"
One of the core values of our company is Integrity, and I am not just seeing it. -
Me to designer: "I did the research and this just isn't possible to implement, I'm sorry"
What I actually mean: "There's a couple of ways I could implement that feature, but all of them require me to do sketchy things that destroy my integrity as a programmer."5 -
I've optimised so many things in my time I can't remember most of them.
Most recently, something had to be the equivalent off `"literal" LIKE column` with a million rows to compare. It would take around a second average each literal to lookup for a service that needs to be high load and low latency. This isn't an easy case to optimise, many people would consider it impossible.
It took my a couple of hours to reverse engineer the data and implement a few hundred line implementation that would look it up in 1ms average with the worst possible case being very rare and not too distant from this.
In another case there was a lookup of arbitrary time spans that most people would not bother to cache because the input parameters are too short lived and variable to make a difference. I replaced the 50000+ line application acting as a middle man between the application and database with 500 lines of code that did the look up faster and was able to implement a reasonable caching strategy. This dropped resource consumption by a minimum of factor of ten at least. Misses were cheaper and it was able to cache most cases. It also involved modifying the client library in C to stop it unnecessarily wrapping primitives in objects to the high level language which was causing it to consume excessive amounts of memory when processing huge data streams.
Another system would download a huge data set for every point of sale constantly, then parse and apply it. It had to reflect changes quickly but would download the whole dataset each time containing hundreds of thousands of rows. I whipped up a system so that a single server (barring redundancy) would download it in a loop, parse it using C which was much faster than the traditional interpreted language, then use a custom data differential format, TCP data streaming protocol, binary serialisation and LZMA compression to pipe it down to points of sale. This protocol also used versioning for catchup and differential combination for additional reduction in size. It went from being 30 seconds to a few minutes behind to using able to keep up to with in a second of changes. It was also using so much bandwidth that it would reach the limit on ADSL connections then get throttled. I looked at the traffic stats after and it dropped from dozens of terabytes a month to around a gigabyte or so a month for several hundred machines. The drop in the graphs you'd think all the machines had been turned off as that's what it looked like. It could now happily run over GPRS or 56K.
I was working on a project with a lot of data and noticed these huge tables and horrible queries. The tables were all the results of queries. Someone wrote terrible SQL then to optimise it ran it in the background with all possible variable values then store the results of joins and aggregates into new tables. On top of those tables they wrote more SQL. I wrote some new queries and query generation that wiped out thousands of lines of code immediately and operated on the original tables taking things down from 30GB and rapidly climbing to a couple GB.
Another time a piece of mathematics had to generate all possible permutations and the existing solution was factorial. I worked out how to optimise it to run n*n which believe it or not made the world of difference. Went from hardly handling anything to handling anything thrown at it. It was nice trying to get people to "freeze the system now".
I build my own frontend systems (admittedly rushed) that do what angular/react/vue aim for but with higher (maximum) performance including an in memory data base to back the UI that had layered event driven indexes and could handle referential integrity (overlay on the database only revealing items with valid integrity) or reordering and reposition events very rapidly using a custom AVL tree. You could layer indexes over it (data inheritance) that could be partial and dynamic.
So many times have I optimised things on automatic just cleaning up code normally. Hundreds, thousands of optimisations. It's what makes my clock tick.4 -
Fuck brand builders, or, how I learned to start giving a shit and love devrant.
Brand builders are people who generally have very little experience and are attempting to obfuscate their dearth of ability behind a wall of non-academic content generation. Subscribe, like, build a following and everyone will happily overlook the fact that your primary contribution to society is spreading facile content that further obfuscates the need for fundamentals. Their carefully crafted presence is designed promote themselves and their success while chipping away at the apparent value of professional ability. At one point, I thought medium would be the bottom of the barrel; a glorified blog that provides people with scant knowledge, little experience and routinely low integrity a platform to build an echo chamber of replayed or copied content, techno-mysticism and best-practice-superstition they mistake for a brand in an environment where there's little chance of peer review. I thought it couldn't get any worse.
Then I found dev.to
Dev.to is what happens when all the absence of ability and skills insecurity on the internet gets together to form a censorship mob to ensure that no criticism, reality or peer review will ever filter into the ramblings of people intent on forever remaining at the peak of the dunning-kreuger curve. It's the long tail of YMCA trophy culture.
Take for example this article:
https://dev.to/davidepacilio/...
It's a shit post listicle by someone claiming to be "senior," who confidently states that "you are only as good as the tools you use." Meanwhile all the great minds of history are giving him the side-eye because they understand tools are just a magnifier of ability. If you're an amazing carpenter, power tools will help you produce at an exponential rate. If you're a shitty carpenter, your work will still be shit, there will just be more of it. The actual phrase that's being butchered here is "you're only as good as the tools you create." There's no moral superiority to be had in being dependent on a tool, that's just a crutch. A true expert or professional is someone who can create tools to aid in their craft. Being a professional is having a thorough enough understanding of the thing you are doing so as to be able to craft force multipliers that make your work easier, not just someone who uses them.
Ok, so what?
I'm sure he's a plenty fine human to grab drinks with, no ill will to him as a human. That said, were you to comment something to that effect on dev.to, you'd be reported by all the hangers-on pretty much immediately, regardless of how much complimentary padding and passive, welcoming language you wrap your message in. The problem with a bunch of weak people ganging up on the voice of reason and deciding they don't want things like constructive criticism, peer review, academic process or the scientific method is, after you remove all of that, you're just left with a formless sea of ideas and thoughts with no categorization, no order. You find a lot of opinions and nothing to challenge them and thereby are left with no mechanism for strong ideas to rise to the top. In that system, the "correct" ideas are by default those posited by the strongest personality.
We all need some degree of positive reinforcement. We also need to be smacked upside the head when we're totally off in the weeds. It's all about balance. The forums of ancient Greece weren't filled with people fervently agreeing with one another and shouting down new ideas en masse. We need discourse, not demagoguery.
Dev.to, medium, etc are all the fast fashion of the tech industry. Personally, I'd prefer something designed to last a little longer.30 -
I’m back for a fucking rant.
My previous post I was happy, I’ve had an interview today and I felt the interviewer acted with integrity and made the role seem worthwhile. Fuck it, here’s the link:
https://www.devrant.io/rants/889363
So, since then; the recruiter got in touch: “smashed it son, sending the tech demo your way, if you can get it done this evening that would be amazing”
Obviously I said based on the exact brief I think that’s possible, I’ll take a look and let them know if it isn’t.
Having done loads of these, I know I can usually knock them out and impress in an evening with no trouble.
Here’s where shit gets fucked up; i opened the brief.
I was met with a brief for an MVP using best practice patterns and flexing every muscle with the tech available...
Then I see the requirements, these fucking dicks are after 10 functional requirements averaging an hour a piece.
+TDD so * 1.25,
+DI and dependency inversion principle * 1.1
+CI setup (1h on this platform)
+One ill requirement to use a stored proc in SQL server to return a view (1h)
+UX/UI design consideration using an old tech (1-2h)
+unobtrusive jquery form post validation (2h)
+AES-256 encryption in the db... add 2h for proper testing.
These cunts want me to knock 15-20h of Work into their interview tech demo.
I’ve done a lot of these recently, all of them topped out at 3h max.
The job is middling: average package, old tech, not the most exciting or decent work.
The interviewer alluded to his lead being a bit of a dick; one of those “the code comes first” devs.
Here’s where shit gets realer:
They’ve included mock ups in the tech demo brief’s zip... I looked at them to confirm I wasn’t over estimating the job... I wasn’t.
Then I looked at the other files in the fucking zip.
I found 3 of the images they wanted to use were copyright withheld... there’s no way these guys have the right to distribute these.
Then I look in the font folder, it’s a single ttf, downloaded from fucking DA Font... it was published less than 2mo ago, the license file had been removed: free for Personal, anything else; contact me.
There’s no way these guys have any rights to this font, and I’ve never seen a font redistributed legally without it’s accompanying licence files.
This fucking company is constantly talking about its ethical behaviours.
Given that I know what I’m doing; I know it would have taken less time to find free-for-commercial images and use a google font... this sloppy bullshit is beyond me.
Anyway, I said I’d get back to the recruiter, he wasn’t to know and he’s a good guy. I let him know I’d complete the tech demo over the weekend, he’s looked after me and I don’t want him having trouble with his client...
I’ll substitute the copyright fuckery with images I have a license for because there’s no way I’m pushing copyright stolen material to a public github repo.
I’ll also be substituting the topic and leaving a few js bombs in there to ensure they don’t just steal my shit.
Here’s my hypotheses, anyone with any more would be greatly welcomed...
1: the lead dev is just a stuck up arsehole, with no real care for his work and a relaxed view on stealing other people’s.
2: they are looking for 15-20h free work on an MVP they can modify and take to market
3: they are looking for people to turn down this job so they can support someone’s fucking visa.
In any case, it’s a shit show and I’ll just be seeing this as box checking and interview practice...
Arguments for 1: the head told me about his lead’s problems within 20mn of the interview.
2: he said his biggest problem was getting products out quickly enough.
3: the recruiter told me they’d been “picky”, and they’re making themselves people who can’t be worked for.
I’m going to knock out the demo, keep it private and protect my work well. It’s going to smash their tits off because I’m a fucking great developer... I’ll make sure I get the offer to keep the recruiter looked after.
Then fuck those guys, I’m fucking livid.
After a wonderful interview experience and a nice introduction to the company I’ve been completely put off...
So here’s the update: if you’re interviewing for a shitty middle level dev position, amongst difficult people, on an out of date stack... you need people to want you, don’t fuck them off.
If they want my time to rush out MVPs, they can pay my day rate.
Fuuuuuuuuck... I typed this out whilst listening to the podcast, I’m glad I’m not the only one dealing with shit.
Oh also; I had a lovely discriminatory as fuck application, personality test and disability request email sent to me from a company that seems like it’s still in the 90s. Fuck those guys too, I reported them to the relevant authorities and hope they’re made to look at how morally reprehensible their recruitment process is. The law is you don’t ask if the job can be done by anyone.6 -
Coworker: so once the algorithm is done I will append new columns in the sql database and insert the output there
Me: I don't like that, can we put the output in a separate table and link it using a foreign key. Just to avoid touching the original data, you know, to avoid potential corruption.
C: Yes sure.
< Two days later - over text >
C: I finished the algo, i decided to append it to the original data in order to avoid redundancy and save on space. I think this makes more sense.
Me: ahdhxjdjsisudhdhdbdbkekdh
No. Learn this principal:
" The original data generated by the client, should be treated like the god damn Bible! DO NOT EVER CHANGE ITS SCHEMA FOR A 3RD PARTY CALCULATION! "
Put simply: D.F.T.T.O
Don't. Fucking. Touch. The. Origin!5 -
*edits file on remote server*
WanBLowS: naah you can't 😈
*le wild BSOD appears for the over 9000-th time*
... Yeah. Windows, great job. Who needs system integrity when they're working on remote servers anyway, right?!
And to top it all off, le reboot mentions that they're working on fucking "features" again. That's what you needed to BSOD for?! For a goddamn motherfucking feature?!! Fucking piece of shit.
At least when I opened vim on that server again, it's saved everything neatly in the .swp files, ready for recovery. Now that's neat, isn't it? Microsoft, the Linux community has already moved on to nvim in terms of development, but maybe, just maybe, you can learn a thing or two from our "legacy software", vim.
As for me, maybe it's time to take out my Arch laptop again. At least that won't crap out on me because the sun and the stars are in a position that the OS doesn't like, or something stupid like that. FUCK YOU MICROSHIT!!!11 -
Got in trouble today during a Data integrity meeting, everyone kept talking about data massaging. "Massage this data", "massage that data table", "insert massaged data".
Finally I just blurted out, "yeah massage it all you want but how do I get a data happy ending?"
I thought it was hilarious. The other DBA and backend devs thought it was jokes, my manager... Not so much.
Apparently, I need to keep "thoughts and comments about data happy endings to myself moving forward".
Okay. 😆😆5 -
>Download a mod from Nexusmods
>2,1GB
>200kbps connection
>gets to 90% after 3 hours
>fails with http 416 error
>???
>Check file integrity
>Fails horrendously.
>fml.3 -
So to start off this happened today while I was at school.
Each student gets a netbook for school and the amount of restrictions put in place are probably up to government spec. Well I brought in my personal netbook and a flash drive with a few distros of Linux on it on it to mess with during study hall(all on my own hardware).
I told my friend that about it and said I doubted it would boot because the bios is password protected and the IT guy probably removed external drives from the boot list but let him use it anyway.
5 minutes later he is showing me his screen with Ubuntu running on it, I was freaking out some and asked for it back and he gave it back to me.
About a minute later he shows me his screen. All black with white text shooting down it saying windows disk integrity check or something like that. All I see is "file xyz deleted" and was freaking out even more. I just sat there for the next 20 minutes thinking of how to explain this to the IT guy and hopefully get in less trouble.
Finally after the longest 20 minutes of my life as a student I see the windows 7 boot screen appear. Probably the one time I actually wanted to see it honestly but I was so happy to see the end of the situation.
Sorry this was so long but I hope it's fine for a first post here, I've been putting it off but after this decided to finally post.3 -
So I started in a new job a week ago for a two weeks probation period, im getting payed double than my last job but it's so professionally frustrating.
They use a full php stack with a framework called tinymvc that I never heard of and the last commit is from 2009.
Beside this they implement some sort of "flexible" MVC where a great amount of the logic are inside the views. They have one model for each entity (in theory) but in reality one model have methods for a lot of tables.
Beside this the i18n is done by querying the database for all the translation strings and copying it in every user session, so every session file it's about 400kb where around 380 are duplicated translations.
The views folder is empty because they decided to modify the framework to look for the views in another folder called resource's and the development must be done connected directly to the production database
Above all this shit all the many-to-many relations in the database (MySQL) are handled creating a comma separated field on one of the tables, completely breaking the reference integrity.
So, after a week of work I can't stop thinking who the fuck developed this? In which world this shit is okay? How can I work around this big lake of shit?7 -
TLDR: Find a website that requires a subscription but doesn't check their cookies' integrity, now I'm on a website for free.
>be me
>wonder if it's possible to intercept browser data
>download Wireshark
>download Fiddler
>find that none of these really fit me
>go to youtube, search how to intercept POST data
>find something called BurpSuite
>Totally what I was looking for
>start testing BurpSuite on devrant
>neat!
>I can see all the data that's being passed around
>wonder if I can use it on a website where my subscription recently ended.
>try changing my details without actually inputting anything into the website's form
>send the data to the server
>refresh the page
>it worked
>NEAT!
>Huh what's this?
>A uid
>must be a userID
>increment it by 1 and change some more details
>refresh the page
>...
>didn't work 😐
>Hmmm, let's try forwarding the data to the browser after incrementing the uid
>OH SHIT
>can see the details of a different user
>except I see his details are the details I had entered previously
>begin incrementing and decrementing the uid
>IFINITE POWER
>realize that the uid is hooked up to my browsers local cookie
>can see every user's details just by changing my cookie's uid
>Wonder if it's possible to make the uid persistent without having to enter it in every time
>look up cookie manipulator
>plug-in exists
>go back to website
>examine current uid
>it's my uid
>change it to a different number
>refresh the webpage
>IT FUCKING WORKED
>MFW I realize this website doesn't check for cookie integrity
>MFW I wonder if there are other websites that are this fucking lazy!!!
>MFW they won't fix it because it would require extra work.
>MFuckingFW they tell me not to do it again in the future
>realize that since they aren't going to fix it I'll just put myself on another person's subscription.5 -
Time for a REAL fucking rant.
io_uring manpages say you can set the CAP_SYS_NICE capability to allow SQPOLL to work. You can't, you still get an operation not permitted errno result.
Why? I checked, it says 5.10 mainline is required. Pretty sure I just manually downloaded and installed the Deb's myself. uname reports that I am at 5.10. So what gives?
Maintainer submitted a patch because they fucked up and made the *actual* capability check look for what's basically root permissions (CAP_SYS_ADMIN... c'mon...) and is now trying to rectify a glaring security shortcoming.
Patch hasn't been accepted or even addressed yet but they already updated the manpages with the estimated mainline kernel release as if it had made it into the release candidate. Manpages have made it into latest debs but the actual change has not.
Where the fuck is the Linus Torvalds that would ream the fuck out of shitty developers doing shitty things? The political correctness climate has discouraged such criticism now and the result... this. This fucking mess, where people are allowed to cut corners and get away with it because it would hurt their feelings when faced with pressure.
I'm not just guessing either. The maintainer has already said some of the "tone" of criticisms hurt his feelings. Yes, sorry, but when you claim 90% speedup over a typical epoll application using your new magical set of syscalls, and nobody can even get 1-2% speedup on a similar machine, people are going to be fucking skeptical. Then when you lower it to 60% because you originally omitted a bunch of SECURITY RELATED AND CORRECTNESS CHECKING CODE, we're going to call you the fuck out for fudging numbers.
Trying to maintain the equivalent of academic integrity within the computer science field is an exercise of insanity. You'd be fired and shunned from publishing in journals if you pulled that shit in ANY OTHER FUCKING FIELD, but because the CS scene is all about jerking each other off at every corner because the mean people keep saying mean things on Twitter and it hurts your feelings therefore we're all allowed to contribute subpar work and be protected from criticisms when others realize it's subpar.
These aren't mistakes anymore, it's clear you're just trying to farm clout at Facebook - maybe even FOR Facebook.
Fuck you. Do it right, the first time. Sick of shitty code being OK all of a sudden.2 -
If anyone has been keeping up with my data warehouse from hell stories, we're reaching the climax. Today I reached my breaking point and wrote a strongly worder email about the situation. I detailed 3 separate cases of violated referential integrity (this warehouse has no constraints) and a field pulling from THE WRONG FLIPPING TABLE. Each instance was detailed with the lying ER diagram, highlighted the violating key pairs, the dangers they posed, and how to fix it. Note that this is a financial document; a financial document with nondeterministic behavior because the previous contractors' laziness. I feel like the flipping harbinger of doom with a cardboard sign saying "the end is near" and keep having to self-validate that if I was to change anything about this code, **financial numbers would change**, names would swap, description codes would change, and because they're edge cases in a giant dataset, they'll be hard to find. My email included SQL queries returning values where integrity is violated 15+ times. There's legacy data just shoved in ignoring all constraints. There are misspellings where a new one was made instead of updating, leaving the pk the same.
Now I'd just put sorting and other algos, but the data is processed by a crystal report. It has no debugger. No analysis tools. 11 subreports. The thing takes an hour to run and 77k queries to the oracle backend. It's one of the most disgusting infrastructures I've ever seen. There's no other solution to this but to either move to a general programming language or get the contractor to fix the data warehouse. I feel like I've gotten nowhere trying to debug this for 2 months. Now that I've reached what's probably the root issue, the office beaucracy is resisting the idea of throwing out the fire hazard and keeping the good parts. The upper management wants to just install sprinklers, and I'm losing it. -
Update on my Facebook and Booking.com interviews. I had them back to back today.
Even before I start, I accept and admit that I am a hypocrite. I hate Amazon yet order stuff from there. I hate Microsoft yet use their products. I hate Facebook yet went ahead to interview with them.
I fucking hate myself for compromising my ethics, values, and integrity. I had promised myself that even if I work for any major shit company, I'd never go with Facebook. Here I am after many years. Not an excuse, but I am doing it because I see it as an entry point into the UK. That's all.
Community's hate towards me is justified and I'd accept the discrimination from this community because this place is my digital home and you all are my family. Infact first thing I told mom was, dR boys are gonna disown me when they get to know about this.
Anyway, coming to the update part.
I had applied leave at work from last Friday. 4 days of leave earned me 10 days off (including weekends and 2 days of Diwali company holiday).
Last Thursday I got to know that Facebook has scheduled their interview today (Friday). I spent insane amount of time preparing. Approximately 8 hours everyday including weekend. I added nearly 40+ hours preparing for it in last 7 days, because I had to get in. Failure isn't an option now.
I sacrifice my family time, preparing for the interview.
I sacrifice Diwali break, sitting in front of the screen and studying.
I sacrifice my only vacation of 2021, doing mock interviews as late as 11.30 PM.
I sacrifice my free time and enjoyment, stressing over what could happen.
I was prepared like perfect for screening stage.
Interview 1: this guy comes and ask 'what is the best compliment you have got as a PM?' and 'Why do you want to quit the current company?'
He wasn't supposed to ask those as per Facebook's policy and interview stage.
Then he gave me a shit problem to solve and rejected my approach and wanted it his was. I tried to follow him and made sure I was able to convince with the reasoning but he kept pushing me back. He kept putting me down. Did not listen to me or what I had to convey or what was expected as an answer. He had certain output in his mind and wanted me to come up with it as an answer.
For the uninitiated: Facebook gives ton of preparation material and tells upfront the kind of questions they'll ask they just focus on few things. Moreover, in Product interviews, there isn't right or wrong answer.
Anyway, this guy started making funny expressions which put my morale down and I stood my ground with losing my cool. I managed to get all my answers right and the key points the look into a candidate. It went decent. Yet the interviewers attitude was something I did not like.
Interview 2: the lady was really kind and warm. Very accommodating and easy person to deal with. It went amazingly well.
I have two observations I want to share with you all.
1. I hate what Facebook does. Lizardberg is awful human being. But I absolutely liked HOW they are doing things, at least from an interview stand point. They even had mock sessions by their PMs and upfront told how to prepare and how to answer.
2. While it seems to be a 5 star experience, I found them to function mechanically. No small talk, no human connection (ironic to their mission), no conversational flow of the interview (again something that they kept saying a zillion times in all their material). They came, formally introduced themselves, and had a checklist kind of attitude, and left.
I now await for the feedback.
In the next hour, I had Booking.com first round.
Amazing people. Warm friendly experience. Treated me as a human. Heard me. Made me feel part of the conversation rather than someone just being judged.
It went 1000x better than Facebook.
I await the feedback from them as well.
I don't know what's gonna happen but one thing for sure, the kind of expectations Facebook set for their interviews, was nowhere close to the reality. It was awful.
180° was for Booking.com
Guess the saying stands true, expectations always lead to disappointment.
Finally I feel de-stressed and my Diwali vacation starts AFTER Diwali ended. Or rather just a regular weekend.
2021 has been terribly awful year for me. Hope this shitty year ends soon.36 -
Today, I had a segmentation fault in a data structure, so I wrote a function to test the integrity of the data structure. It worked, and I found and fixed the bug. However, the test still complained about the integrity. After debugging some very strange errors for 5 hours, I discover that there was a bug in the integrity test. The data structure works just fine. FML.1
-
Dear coworker,
when I asked: "So, how does it work?", I didn't expect the answer to be: "Well, you push this button, wait three seconds and when it's finished, this LED turns on."
I was hoping for a more in-depth description (like, the way you'd consider me to be seriously interested in your work or learning from you) along the lines of "Well, you see, I have written this CLI-Tool here, which connects to the adapter and parses the contents of the file via serial interface to the on-board controller. This controller performs an integrity check of the device and then decides whether to flash or not. The testing unit itself checks if its being programmed with the right parameters."
Of course I know how a programming device works but I was interested in your solution in this special case ... so I think I'll just check the doc later if there'll ever be some.4 -
!rant
Just had an interview for a position similar to mine in another company.
It was a breath of fresh air that the team lead was open and honest...
It’s not the best position but it’s stable Work that I’m good at, he was up front that it’s not the shiniest thing to work on but that there’s huge opportunity to grow.
His behaviour alone is why I’ll give the position strong consideration.
When you’re interviewing: don’t sweep anything under the rug, be up front about the job and at the least you’ll gain the respect of your candidate.1 -
What the actual fuck...
What kind of API does not do data integrity validation, and allows me to subscribe a user to a newsletter list with a non-existant list id ?
That's some fucking bullshit. fucktards at www.make.as1 -
I used to think my first relationship was awful. I went through so much and rather it served as a trigger for my childhood trauma as well.
Little did I know that it would be the best the thing that could happen to me. I grew so much and every next woman I met, I realised how fucking amazing my ex is. God I miss her terribly.
But what happened with my recent fuck up, I am devastated. This toxic women brought out the worst in me. I have never been so hateful against myself or anyone else in the world.
I was love bombed and walked into a trap. I quit as soon as I realised what it was.
My values were comprised. My integrity was put to test. My trust was intentionally broken. During the initial days, she tactically identified my vulnerabilities and insecurities. Then used to sadistically trigger me as often as she can and sit there and watch me in suffer pain.
It led me to self harm and being suicidal.
I am so badly wounded that even after few weeks, I am still discovering all the wounds. It will surely take some time along with external support to build a healing environment for myself and overcome this damage.
I am very angry, terribly hurt, lost and confused. This shit developed a phobia in me. I cannot trust anyone anymore. I constantly live in fear of being hurt (physical, mental, and emotional). I am paranoid of that stalker.
I don't think I'll ever be able to start and build a healthy relationship with anyone. I used to be sooooo fucking strong emotionally and mentally. But now not only my trauma relapsed but I got more issues within me.
I really want to live a free, healthy, happy and a fulfilled life. I don't know when time will heal this but right now, I am in terrible pain and hate myself a lot.9 -
Today we learned:
Don't run a backup integrity check on terabytes of data in multiple jobs your cpu can't handle.
And i cannot abort the process...
Guess i have to go outside, in the cold, brrrr.1 -
Recently at my work everyone got all hyped about blockchain. I've spent years studying it and especially crypto so I like to think I know a lot about it. Now every time some feature is discussed (like tracking video views) someone non tech shouts out "Oh we can use a blockchain!" And I have to spend half an hour convincing them why it's a bad idea in this particular case. Like we don't need to share that data, we don't need to ensure integrity without trust etc. I mean a blockchain is a great piece of tech but please stop trying to apply it everywhere...
It's like people think that the blockchain features at its most simplified level don't work anywhere else. E.g. as if stuff you put into MySQL suddenly changes because data integrity is not a 'feature' in that sense...2 -
When used properly No-SQL databases are an incredible resource but my employer keeps hammering them in problems which could better be solved by traditional SQL databases in an attempt to be more "hip" and "cool".
This causes huge PITA in making the database work properly with the ORM we're using and waste of time since we're force to emulate basic features which are already exists in almost any SQL database (i.e. relational integrity) using No-SQL storage.1 -
TLDR;
How much do you earn for your skill set in your country vs your cost of living?
BONUS;
See how much I & others earn.
Recently I became aware of just how massive the gap in developers earnings are between countries. I'd love to calculate a fixed score for income vs cost of living.
I know this stuff is sensitive to some so if you prefer just post your score (avg income p/m after tax / cost of living).
I'm not shy so I'll go first:
MY RATES
Normal Rate (Long term): $23
Consulting / Short term: $30-$74
Pen Test: $1500 once off.
Pen Test Fixes: consulting rate.
Simple work/websites: min $400+
Family & Friends: Dev friends are usually free (when mutually beneficial). Family and others can fuck off, even if they can pay (I pass their info to dev friends with fair warning).
GENERAL INFO
Experience: 9 years
Country: South Africa
Developer rareness in country: Very Rare (+-90 job openings per job seeker).
Middle class wage in country: $1550 p/m (can afford a new car, decent apartment & some luxuries like beer/eating out).
Employment type: Permanent though I can and do freelance occasionally.
Client Locality: Mostly local.
Developer Type: Web Developer (True web dev - I do anything web related from custom HTTP servers to sockets, services, advanced browser api's, apps & more).
STACKS / SKILLSETS
I'M PROFICIENT IN:
python, JavaScript, ASP classic, bash, php, html, css, sql, msql, elastic search, REST, SOAP, DOM, IIS, apache
I DABBLE WITH:
ASP.net, C++, ruby, GO, nginx, tesseract
MY SPECIALTIES:
application architecture, automation, integrations, db's, real time data, advanced browser apps/extensions (webRTC, canvas etc).
SUMMARY
Avg income p/m after tax: $2250
Cost of living (car+rent+food): $1200
Score: 1.85
*Note: For integrity when calculating my cost of living I excluded debt repayments and only kept my necessities which are transport, food & shelter.
I really hope you guy's post your results, it would be great to get an idea of which is really the worst / best country to be a developer in.20 -
I'm tired of meth. I mean math. MATH.
I'm sick and tired of everything.
"First!" numerous blog comments shout to no-one, from the colorful abyss of the internet.
And for me, this is a first. But lets rewind.
It's 2 AM, about a month ago, spring in Akron Ohio. Someone reading this is no doubt shocked "You just revealed where you live, ON THE INTERNET! The weirdos will find you." Anyway, it's a dark and stormy night, as the cliche goes. Like most people up after midnight, I'm browsing facebook posts and useless productivity sites. (lifehacker)
I yearn for something more out of life, somewhere deep down inside..maybe in my colon?
All the articles are saying "10 tips to supercharge your life", "how to discover your life purpose in three easy steps", mixed with an ad about ron jeremys one secret tip to grow a massive cock, and exhortations to buy such-and-such's "new ebook!"
I am not moved by any of this.
Scrolling, and tabbing, and intermittently dropping f-bombs because of js ads locking up my browser, I stop and lean back. In the blue afterglow of my shitty compaqs screen, a thought appears, like a cheesy genie, popping out of a brass toilet. "Start a blog! A youtube channel! A podcast" the ad proclaims. "Yes. Thats what I have to do" I whispered (I'm embarrassed to admit I really did say this).
Then I Control+W'd out of it, and flopped onto my mattress. This was the wasteland of my life. I couldn't help but think The whole internet was like some seedy back alley 2.0, where boxcar willie with his train of needle marks had been replaced by more upstart, greasy-haired gurus. Each peddling 'ebooks' of 'advice', stuffed in between ads to buy 'this one hot stock you have to own' and porn. And that alley was really the 'blogosphere' and 'youtubers'. As I drifted off, the last thought was 'We're all just bottom feeders,leeching and whoring on the attention of faceless anonymous users, hoping for another quick fix.'
I fell asleep, these racing thoughts fading into sweet oblivion, but never too far away.
Welcome to My Back Alley
That title is only twice as dirty, and half as thought-out as I planned. As you imagine, the lure of being the electronic equivalent of a conman never quite faded. And the more I read, the stronger the message "Start a youtube channel!" grew. As if everyone and their grandmother having a youtube channel would somehow make the world right, cure cancer, and save kittens from animal shelter gas chambers. Everyones an expert, everyones an agent of change. Maximizing productivity, Evangelizing Technology, ninjas collaborating to socialfy your community diversification benchmark for target traffic
through user-engagement and authentic grass-roots, blah, blah, blah, blah, money. Thrusting, moaning, screaming. Money. Pumping at the center of it all.
Wake up and smell the bullshit.
This blog is not a blog. This blog is the anti-blog, and we are the anti-streamers. 'We' (read "I") resist your bullshit lingo bingo, call out the Truth (Tm) and refuse to be satisfied with any standards of decency, journalistic integrity, or common sense.
Every blog, every channel, every podcast is Starbucks And I'm tyler durden, pissing in your coffee, and calling it a 'latte'.
Freaks, and anarchists, laymen and losers. If you feel as I do, then this is the place for you. Welcome to devrant.11 -
I am a good person. I can even say I am a good programmer. I have worked hard to get where I am and that shows perseverance. Although, where I am right now is not what I expected, I am somewhere. I can do something. I have good intentions.
Someday, I will build software which will be used by millions of people around the interwebs. And they will love me, for I will have made their lives better....in some way. Some will even consider paying me for it. Not because the well placed and non intrusive donate button I put there, but out of pure adoration and bare necessity to preserve someone as brilliant and precious as me. I shall be the definition of success. But I long for neither adoration nor wealth, for I am humble or at least that is how I will be perceived.
Like flies to the honey my success will attract big evil corporations to acquire my business. And I shall spit on their wretched face....at first. I would like to be wooed. Such display of integrity shall inspire generations of programmers. Let ye be inspired. There will be those who envy my achievements and they will be mocked and shunned by my true believers. But being the kind soul that I am, I will bring back my minions, for it could a PR nightmare.
All these events will take place in a not too distant future. Sure, I am going through a dark time now, it will pass. 'tis nothing but me transitioning from a lame ass PHP coder moth to this totally badass software engineer who is also a cool bro. This eclipse of my brain shall pass. My neurons will fire in all directions like photons from the sun during late winter, for it may overheat and we definitely don't want that.
I pray to the gods of engineering to grant my wishes. Trust me guys, you will be thanking yourselves when donate my money to charities that will help me set up. But that's another scheme. Amen.4 -
When your company has data integrity issues and they expect hacky workarounds instead of fixing the data
-
"Our supplier asks that you double the number of php child processes for this fpm pool"
"Are you aware, that that would lead to about 100% of memory overcommit, taken the current limit of 128MB/child, and that if a lot of them started at once, the system would probably go for OOM-Kill, which would most probably kill your database, that still runs on 100% MyISAM tables that do not support transactions, and you'd have to kiss your data integrity goodbye, right?"
"Uh... Nevermind then"
I get that some people are not IT-versed, but really... Hire someone who knows what they are doing and doesn't live 20 years in the past, god damn it! -
Any individual project that made me learn cool stuff...
Maybe the kernelcheck project? It's a shell script that I wrote 2 years ago (it's still on my GitHub but the code looks kinda horrible tbh), and it really made me respect the stability of package managers, and the effort that package maintainers must put into it. Even a single package (the kernel) that you have to maintain the integrity of the .config for (the configuration file that tells you what options to compile in, as a module, or not at all) while on every new minor release, the config changes ever so slightly.. at some point I figured that I'd really need to do those compilations manually, to be able to supervise (and if necessary adjust) it in real-time. The ability for distribution maintainers to do this for thousands of packages.. it boggles my mind. Respect! -
Not writing tests for your code is like leaving it unguided in the hands of future Devs who gonna just change something and break the core logic and there won't be any regression test to run and check the integrity.
-
Fuck these fucking youtube ads! I got blocked on youtube and cant play any video on desktop unless i disable adblocker. Shits so fucking LAME. Fuck off. Switching over to brave browser now and never looking back. Fuck off chrome.
Get fucked google. Now Google dropped to the last place for me from cloud providers. I'll prioritize the pedophille childfucker bill gates Azure cloud over GCP Now! Fuck Off. Shove ur ads into someone elses ass just how bill gates shoves his dick into childrens assholes on the epstein island!
Brave browser found a solution to all this fuckertry! It has built in adblockers for everything including built in vpn IP cloaker trace blocker and so much more for privacy and data integrity. Playing yt videos on brave browser works like a charm with no fucking ads or extensions installed! Everything is the same like chrome including layout development etc, minus ads tracking and data harvesting!
Before:
AWS > GCP > Azure > OCI
After:
AWS > Azure > OCI > GCP
Google ur now worse than a pedophile azure. Deserved to get spot #3 now. Shitheads8 -
"The way to 'get your name out there' is to establish a pattern of excellent work and a reputation for integrity over several years. " - Andy Rutledge5
-
What makes free ssl "Unsuitable for e-commerce websites", Please read to end to see my view point.
From Namecheap:
Free Certificates are domain validation only which means they don't certify the identity of the website owner, they simply ensure a secure connection. Customers can't be sure of the integrity and trustworthiness of the website owner. If you need to secure credit card and personal information on e-commerce websites, free certificates aren't the answer. It's important your customers trust your business is safe enough to hand over these details. To gain this trust, you need a certification of your authenticity, which you can only get with a (paid) Business Validation or Extended Validation SSL Certificates.
https://namecheap.com/security/...
* "To gain this trust, you need a certification of your authenticity"
~ But isn't that just Domain Verification and other Extras, What justifies somebody or business's authenticity? Tax Id, Valid Address, Nobody is going to study the ssl cert to make sure that amazon.com is a valid business and has a tax Id.
* "domain validation only which means they don't certify the identity of the website owner,"
~ Wouldn't this just be the domain validation test that is required when using services like LetsEncrypt using Certbot etc, or are we referencing back to this idea that they look for a Valid Tax Id sort of thing?
* "If you need to secure credit card and personal information on e-commerce websites, free certificates aren't the answer"
~ Why is the paid version going to do double encryption, is the CA going to run a monitoring tool to scan for intrusions like a IDS or IPS? (disregard the use of DNS Validation being in the picture)
Am I missing something, this just seems like well crafted text to get people to buy a cert, I could understand if the encryption was handled differently, Maybe if they checked the site for HSTS or HTTPs Redirect or even, They blocked wildcard SSL before and now with the paid its included, but overall it doesn't sound like anything special. Now I'm not just picking on namecheap because domain.com does the same.14 -
A prototype being used as production code written in procedural PHP with the code drawn using echo and MySQL (not MySQLi) all mixed together and the configuration with world readable database stored as config.inc.
All backed by a database with no foreign keys or data integrity of any kind. -
Windows defender, this is for you:
GO FUCK YOURSELF YOU CANCEROUS PIECE OF SHIT!
If you were as advanced as you claim to be you'd realize that the EXE you've just deleted originated from a compiler. Unfortunately, your target group exclusively consists of people that are incapable of using anything that goes beyond a web browser.
If your developers would have some kind of integrity it would allow you to be turned off permanently instead of making users leave the Windows platform entirely.
Do Microsoft employees even eat their own dog food like they did back in the golden NT era?8 -
Just found out about this: https://publiccode.eu/
If you live in the EU and care about privacy, security and/or open source you might want to check it out.
To sum it up: The idea is to have all software written for and bought by public authorities, governments and such published under open source licenses to enable every citizen to verify the integrity of that software (and give all the other advantages of FOSS).3 -
My windows defender has gone out of the window.
Now whenever i open windows security app, it shows a blank page.
There's is no tray process running and I can't find any service too.
I know it's a huge virus attack.
Can anyone suggest some methods to know what is causing this problem?
This has happened once before. That time i used DISM and checked windows files integrity. It replaced corrupted ones and then windows worked fine.
This time i want to know the cause.
I wanna root it out and rip it apart.11 -
Looking for platform specific language options for a new project at work and reading articles from well known sources.
If you start your article with something like, "when I think of a good programming language, I think of JavaScript", I'm going to punch out of your shitty opinion faster than an async function.
When you're trying to convey an unbiased message you generally don't start with, "I'm an absolute shill for {language}".
What the fuck happened to journalistic integrity?7 -
!dev
Decided to spend more time on LinkedIn to familiarise myself and start looking for potential employment opportunities.
For past month or so, I've seen few decent opportunities, which is a nice start. However, for every decent post, I've come across:
- About a hundred of posts by self-proclaimed crypto experts who spout absolute gibberish and somehow get thousands of likes. 5 min google search and absolute minimum knowledge of economic theory discards 99% of their claims and statements
- Handful of idiotic "career advice" blog posts
- Numerous posts, both bashing and helplessly supporting shitty recruiter practices
- more crypto nonsense
- People jerking themselves off for running a profitable business (company launched a 1-5months ago)
Really starting to hate the platform, seems like all the integrity it had before becoming fully mainstream, has gone down the drain and it's become a straight up corporate circle jerk1 -
My boss is being a stupid cunt. To give you a background we were facing issues with our Collections system. First week December 2019, I and a colleague of mine came up with a new efficient collections architecture. My colleague and I started to Code and create automation scripts mid December and completed it in First week of Jan 2020. This PoC version was supposed to be just between the Dev team(App Dev and Back end, also one from the Ops side to verify the data). I did not receive any feedback on the actual collections system and the data integrity but during this time all they’ve done is take meetings with no real outcome. I raised this and the only email I got is data is looking fine when I know it is not.Now in First week of Feb, he is stressing us to go ahead and deploy the architecture in Production and we have not done any Code Review, Static Code analysis, any real tests on Code and deployment scripts. Have not discussed any metrics for our dashboard and alerting. I have no idea how to handle this cunt. I have even asked for resources to atleast productionalize the code and move ahead the deployment and still no out come. I’ll go in a meeting with him in an hour, I will be very blunt and tell him that whatever he is doing is a foolish way and maybe resign in couple of weeks6
-
so on my new lappy I'm testing XFS. After reading how bloody fast it is, I figured: why not give it a shot!
2 weeks later, I want to go back to ext4. XFS is SSSSOOOOOO fault-intollerant, it breaks my Chrome profile after each forced-poweroff (or power loss). And the on-boot fsck freezes. And after a successful bootup I see the log messages in syslog are all messed up (timestamps are all over the timeline!!!)
it's a mess... A very fast mess.17 -
Decided to get rid of a system app but forgot to disable stupid System Integrity Protection (OS X stuff) first so it flipped back at me with a thousand of "Permission denied" errors.
Whispers behind me (it was in the public):
— What is he doing?
— I don't know. I think recompiling the kernel... -
I'm gonna kill him...no don't defend him, you lot are meant to be on my side!
IT'S FUCKING HUNTING SEASON.
I know, I know, you want context but I just can't now. I'm completely annoyed. Fuck data integrity, just duplicate rows randomly cos fuck you.
Work is about to turn into a murder mystery...without the mystery 😒
He doesn't even work here anymore, hope he forgets his password and gets locked out of everything he has.
Woosah....1 -
Not sure if it should be a joke or a rant, but something rather funny (at least to me) happened today.
TL;DR; Someone's outlook was crippled by 100k+ of warning notifications
So we have developed a server that has an internal database that wraps around an elastic search instance, that is managed by a POS vault/storage solution, that we have to use for legal reasons. The elastic search is "provided" by the software, but we keep this internal database just to be sure and totally not because it's unreliable POS.
Anyways, they take data integrity very seriously, so every warning our server produces is emailed to someone in charge to review it and if necessary forward it to us. This will be important later on.
Couple of days ago we got error forward when trying to write an entry into the POS software we get an error, because an object we tried to write already existed. After some investigation we concluded an entry was missing when the internal database was created, so we asked them to repopulate elastic search to solve this problem.
When start the server we always sync the internal database to the elastic search and emit a warning when an entry is missing in internal database or vice versa. And well... almost all of them were missing, which caused our server to emit ~40 warnings/ms. Poor outlook. Still investigating for the cause, but damn, I never expected I'd take down someone email account by accident -
The fog of war over all that happened with my change of team is starting to dissipate.
3 people were involved and there were 4 different versions of the whole situtations, but from what I've been able to collect it looks like the company is expanding and one of the mail KPI for the current team leaders is how good they are at creating a NEW generation of team leaders, to take care of the new entries.
My previous team leader told me about all these new growth perspectives and the junior entries I could manage, knowing very well of the desire I have previously expressed of being a senior dev with my small group of juniors to teach.
I declined the offer, stating that this whole year has been exhausting. Every single time I've tried anything (using modules for new components on our old web client, tsdoc to document our types, suggesting technologies like ANYTHING BUT ANGULAR AND MONGO, telling how removing down migrations was a retarded move) my suggestions were either shrugged off or flat out refused. Let alone how every time I was proven right, except for angular but give it time and that will bite their tail as well.
Don't get me wrong: they are well withing their right when they take all those decisions, and more. But I DO NOT PLAN on selling a plethora of bad decisions to a new stack of devs as if they were the gold standard.
"I understand your reasons; you, as a company, need a well coordinated team all running towards a goal; loose cannons are harmful.
But now I need you to understand me: I do not agree with your technical direction. I never lied before and I will not start now. Promotions don't matter nearly as much as my integrity, and integrity in my world means speaking up about problems. Your position is perfectly valid, but mine is as well and they can't be reconciled. If I were you I'd make myself a favor and make sure IHateForALiving doesn't become a team leader; given your direction, I'm not the man you want right now".
As mentioned, one of the KPI for team leaders is how succesfull they are in finding new team leaders, and trying to turn me into one didn't end well; I love sharing knowledge, but being honest to myself is far more important to me. So this meant my previous team leader failed in a very big task, and thus was demoted? At the same time, I've been there for 2 years now so they're not really eager to replace me, but I'm under strict examination too as of now.5 -
So I reverse engineered the
protocol of QONQR: World in Play and made a mitmproxy addon running locally inside termux that can see when I launch in the game and uses Termux:API to notify me when my ingame resources are replenished.
I direct the traffic through mitmproxy using Drony. I configured it so that by default Drony passes traffic directly to the internet except if it comes from the QONQR app.
The problem is that while Drony is running, there is a chance of network traffic being corrupted so I often get spammed by connection and ssl errors.
So I have to either continue sacrificimg my network integrity or stop getting assistance ppaying QONQR :-/
Does anyone know an alternative to Drony (basically an app that can connect you to a proxy without root using the android vpn api, if possible with filtering by app or ip)?
Also does anyone else have problems with drony on Android 9 or other versions? I don't really have an opportunity to test it.
Edit: It only took 4 tries to post this yay3 -
now I'm becoming much more aware how I'm shadowbanned on YouTube...
I watch a lot of small channels and I literally can't talk to them, I just realized...
shaodwbanning means it's one way communication only. you have to listen to the propaganda box and you don't matter and can't give any feedback at all
I wanted to give some business takes on someone analyzing some companies, and I can't... because I'm in the propaganda box. I'm not considered a person who deserves a voice, on anything now, ever, for the rest of time. I'm just a receptacle
reminds me of the philosophical definition of objectification some feminist wrote about: https://plato.stanford.edu/entries/...
instrumentality: the treatment of a person as a tool for the objectifier’s purposes;
denial of autonomy: the treatment of a person as lacking in autonomy and self-determination;
inertness: the treatment of a person as lacking in agency, and perhaps also in activity;
fungibility: the treatment of a person as interchangeable with other objects;
violability: the treatment of a person as lacking in boundary-integrity;
ownership: the treatment of a person as something that is owned by another (can be bought or sold);
denial of subjectivity: the treatment of a person as something whose experiences and feelings (if any) need not be taken into account
we are all irrelevant playthings to some narcissistic speakerboxes3 -
Those of you with an app or productivity web service, do you charge monthly? If so, why? I understand if it is your primary source of income, but do you have ethical or integrity reasons related to price? I've been contemplating this lately and I'd like more Dev input.5
-
It is with great sorrow I am announcing that an Apple Watch can catch fire while on your wrist. I bashed Fitbit very hard for this when they were giving people burn scars for life. Collecting and selling data is one thing, but mutilating bodies because of negligence and wanting to save a buck on manufacturing is a whole another thing. It seems like Apple is not much different.
I am struggling with body dysmorphia, and I told you out loud that if a Fitbit device gave me a burn scar for life, I would've probably committed suicide. I still stand by these words. My body integrity is a big deal to me. Having a scar due to my own negligence, like mishandling a knife, is one thing, but the concept itself that some fucking hustle culture startup can mutilate my body is another thing. It scares me.
I am considering to abandon any kind of wearable electronics altogether. The cost of failure is just too high. I'm probably going to get a mechanical Timex or a Seiko.19 -
what would you guys think of a user-controlled news app? like people would posts stories, and users would control what content would be featured in their respective categories. then you would have a feed of all the categories you follow. story integrity will be controlled by users approval and by corroboration.
sound cool?7 -
Met a girl in an app. She is hot 10/10. Sense of humor is 10/10. Empathy, integrity is 3/10. I’ve realized she is an addict of Marijuana. We’ve been talking for a month and she’s stood me up once. Then went traveling. Says she misses me. Then goes cold. And back and forth. This shit is a fucking headache. Just today she was stoned and telling me its not gonna work, I want kids and marriage and she can’t give me that. She sends me nudes and promises we will meet at the end of the month. This entire fucking thing is an emotional rollercoaster. I don’t feel the same at work. My productivity is suffering. My gut says to block her. And I fucking hate the thought of it but it’s right for my peace of mind and productivity. I just wonder how long I should fight since we have such fun conversations. I’ve lots all trust for her. She’s basically like a permanent fixture of my digital life it seems. And that’s depressing as hell. I’m giving her two weeks to show in my physical life otherwise I’ve set a date in my calendar where I must block. Addiction doesn’t even cut it, I feel addicted to this person. The jokes the laughter, the beauty. It’s torture.27
-
Is a masters in statistics worth it?
A bit of background:
I got my bachelor in actuarial math (statistics for insurance risk), then found machine learning and got a couple of gigs in software development and data engineering. I became my previous employers the go to guy for questions about data integrity and structure.
Now I am heading to a new job that specializes in ML for gambling. And while I love the math, I really see myself doing more software development and system architecture work (with some analysis). I already started this masters program, so I got less than a year to finish, but starting to feel like its a waste of my time, but also, I dont want to just quit it. -
I hate the elasticsearch backup api.
From beginning to end it's an painful experience.
I try to explain it, but I don't think I will be able to cover it all.
The core concept is:
- repository (storage for snapshots)
- snapshots (actual backup)
The first design flaw is that every backup in an repository is incremental. ES creates an incremental filesystem tree.
Some reasons why this is a bad idea:
- deletion of (older) backups is slow, as newer backups need to be checked for integrity
- you simply have to trust ES that it does the right thing (given the bugs it has... It seems like a very bad idea TM)
- you have no possibility of verification of snapshots
Workaround... Create many repositories as each new repository forces an full backup.........
The second thing: ES scales. Many nodes / es instances form a cluster.
Usually backup APIs incorporate these in their design. ES does not.
If an index spans 12 nodes and u use an network storage, yes: a maximum of 12 nodes will open an eg NFS connection and start backuping.
It might sound not so bad with 12 nodes and one index...
But it get's pretty bad with 100s of indexes and several dozen nodes...
And there is no real limiting in ES. You can plug a few holes, but all in all, when you don't plan carefully your backups, you'll get a pretty f*cked up network congestion.
So traffic shaping must be manually added. Yay...
The last thing is the API itself.
It's a... very fragile thing.
Especially in older ES releases, the documentation is like handing you a flex instead of toilet paper for a wipe.
Documentation != API != Reality.
Especially the fault handling left me more than once speechless...
Eg:
/_snapshot/storage/backup
gives you a state PARTIAL
/_snapshot/storage/backup/_status
gives you a state SUCCESS
Why? The first one is blocking and refers to the backup status itself. The second one shouldn't be blocking and refers to the backup operation.
And yes. The backup operation state is SUCCESS, while the backup state might be PARTIAL (hence no full backup was made, there were errors).
So we have now an additional API that we query that then wraps the API of elasticsearch. With all these shiny scary workarounds like polling, since some APIs are blocking which might lead to a gateway timeout...
Gateway timeout? Yes. Since some operations can run a LONG (multiple hours) time and you don't want to have a ton of open connections hogging resources... You let the loadbalancer kill it. Most operations simply run in ES in the background, while the connection was killed.
So much joy and fun, isn't it?
Now add the latest SMR scandal and a few faulty (as in SMR instead of CMD) hdds in a hundred terabyte ZFS pool and you'll get my frustration level.
PS: The cluster has several dozen terabyte and a lot od nodes. If you have good advice, you're welcome - but please think carefully about this fact.
I might have accidentially vaporized people sending me links with solutions that don't work on large scale TM.2 -
Got my devRant-letter today, it arrived pre-opened and taped back together with two strips.. anyone else got it this way?
-
Hi Guys,
As you have seen this week again we have a problem with data imports from <tool 1> and <tool 2>. Clearly the existing setup is not working. We are now encouraging more and more people from the project to start using our portal and we need a stable and up to date environment.
Can we have a call please to discuss the following topics:
1. Portal data integrity
2. SLAs
3. Project Communication
4. Development efficiency
Thanks
<Drama Queen PM>1 -
I had a discussion with my colleagues about my bachelor thesis.
Together we created within the last 18 month a REST-API where we use LDAP/LMDB as database (tree structured storage). Of course our data is relational and of course we have a high redundancy there. It's a 170 call API and I highly doubt that it's actually conforming REST.
Ensuring DB integrity is done in the backend and coding style there is "If we change it at one place, let's make sure to also change it everywhere else", so you get a good impression how much of spaghetti code we have there.
Now I proposed to code a solution in my bachelor thesis where we use a relational database (we even have an administrated Oracle DB with high availability) and have a write-only layer to also store the data in LDAP but my colleagues said that "it would add too much complexity to the system".
Instead I should write the relational layer myself and fetch the data somehow from the existing LDAP tree.
What the actual fuck, spaghetti code is what makes the system really unnecessarily complex so that no one will understand that code in 2 years.
Congratulations, you just created legacy code that went into production in 2018 while not accepting the opportunity to let that legacy code get eliminated.
Now good luck with running and maintaining that system and it's inconsistencies.1 -
For someone not deep-into-security, can someone tell me why "encrypted"/"non-compromised" communication is hard?
Wouldn't a private server that holds conversation in-memory (imagine Dictionary holding U2U GUID-GUID list of 'msg' objs) suffice?
Incoming IP info is disregarded and nothing gets written on-disk ever
Need to erase everything? just reboot the server, it's all in memory anyway
To avoid man-in-the-middle, pre-handshake check cert integrity by exposing the certificate-fingerprint by another endpoint, if the fingerprints match, proceed to switch to websocket
Wouldn't this be wayyyy more secure for actual anti-establishment talks than all the fancy probably-backdoored software that exists today? .-.
Hell it's easy enough that someone could make it go live in a few days, keep it up accessible if you know the IP and port to communicate and close-and-delete when done16 -
Do you know PTC Integrity?
If you do, you know my pain.
If you don’t, enjoy your life and stay away from PTC Integrity!
You have been warned -
Huawei published an ad stating their Mate 20 Pro smartphone has been voted phone of the year 2018 in my country.
The only problem is the survey they refer to has been done by a completely unknown mobile news website. That site looks a lot like some DIY blog from 2010 (it even uses FB comments widget), and with 10 post per month it definitely doesn't get much traffic. Talk about integrity...6 -
@dfox @trogus
Kinda’ NOT(x+x) = rant, but still would like to have some way of direct message system in the app, i guess it will be added in the near future but im getting more frustrated by the hour when not being able to communicate directly with a user without a mention publicly and offtopic’ing the main rant’s subject.
Another thing would be cool to have the app in landscape mode without losing its ui/ux integrity. Think “iphone 6” ergonomics when at restful position.
Just realized how monstrous this app could get and be if the team grew and started implementing shit ton of APIs to connect and centralize every coding dev scheme.
And not sure if its okay or not but, I just mentioned myself! XD iMessages dejavu?3 -
I've just been terribly disappointed by Arch and Manjaro: their official websites still use SHA-1 checksums and pgp signatures for integrity checks on their official images.
An algorithm that has been now broken for quite a while: https://sha-mbles.github.io/
Kinda disappointing for an OS that aims to be at the bleeding edge of performance and security.13 -
Getting ready for another day at work.
They seem to think that scrum is the perfect tool to micromanage their team.
Thanks guys for the creative ideas on how to get back on her, but I'm doing the responsible thing and I'll send them a nice email detailing why that's fucked up and what they need to change.
Adding important words like, "that behaviour is affecting team integrity" or "it demotivates people", "It is counter productive", "it diminishes team performance", "instills fear".
Maybe, or I'll stick to my work hours and wait for my contract termination notice. 🤣 -
On https://reactjs.org/docs/... it is declared that useEffect runs after render is done.
However... if you put into useEffect an expensive calculation or operation e.g. "add +1 to x billion times", it will get stuck after updating the data, but before the re-render is done.
This leads to inconsistency between the DOM and the state which I believe is a foundational point of react. Moreover, the statement that "useEffect runs after render" is false.
See also: https://stackoverflow.com/questions...
The solution is to add a timeout to that expensive operation, e.g. 50 ms so the re-render can finish itself.
The integrity of my belief in react has received a shrapnel today. Argh :D Guys, how this can be? It seems that useEffect is not being run after re-render.13 -
# ./symfony test:unit
Propel-Exception: Unable to execute DELTE ALL statement [...] Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails.
WHY ist a UNIT TEST reaching out to a REAL data base?
And who in their right mind would create a different data base schema for the tests?
This was with a clone of the real thing. Removing the FK results in double PK-errors...3 -
Suddenly, I find myself in a crossroad situation. I have been offered a position which would align perfectly with my career path aspirations (cloud solutions architect) with double the pay to my current salary. If only those were the only variables in this equation, taking the offer would be a no-brainer. Alas, it is never that simple (unless all you care about are pay and career path, of course)…
So, let’s break it down to pros and cons of jumping ship, shall we?
Pros:
- double pay compared to current salary
- aligns with my career aspiration
- part of a team of cloud solutions architects (mentorship opportunities)
- varying projects (position is at a consultancy firm)
- shares of the company come with the position ($$$ if it grows)
- possibility to influence strategic decisions
- no more 2h+ commutes
Cons:
- it’s a consultancy startup (emphasis on both consultancy and startup)
- 100% wfh
- would mean losing my current team where we are well and truly glued together and have such great vibes (and I value this, very very highly - this really is the main con)
- would mean losing my current work environment, where we have a gym and sauna at the office etc all kinds of stuff that support my athletic lifestyle
- would mean I don’t have as many opportunities to visit my parents anymore (since they live close to my current office but not close to me)
- at my current position I have super interesting projects both ongoing and in the horizon for a long time to come
- would mean eating my words (see previous point, and the fact I’ve said to my TM ”I can see myself staying as long as this job offers me opportunities to keep learning skills that are meaningful to me”), and I value my integrity
- would mean leaving my colleagues in quite a hairy spot, effectively betraying them in my mind (when our lead dev jumped ship a few years ago, he left us in quite a limbo and hands full of shit we didn’t know what to do about… I don’t wish that situation for anyone)
So, to sum it up, my reasons to stay are more those of moral integrity and convenience, well as the will to see the wheels I got rolling to the end, whereas my reasons to go are more personal finances and career oriented. A difficult decision. What to do?14 -
I have heavily customised my windows and my firewalls were down, I had taken ownership of some files and in that process some virus got itself stuck onto System32/logonUI.exe
I was unable to use defender as every option was greyed out.
Every time i logged into windows the process ran itself.
Tried booting Windows Defender Offline but it gave BSOD.
Tried sfc scan and it showed that windows was unable to restore some files for which integrity check failed.
On restart i was unable to login as I was sent back to password screen right after giving a password.
Fixed it using safe mode and blanking password through net user.
Had a very deep sleep after cracking it.4 -
It's easier to fool people than to convince them that they have been fooled.
I really hope all the evil in the world is done for the greater good, I'm praying that humans aren't inherently evil and that there are bigger pictures we can't see.
Nonetheless, I wish you great health. Survival is the primary goal. Stay alive, because, what a time to be alive.
Most importantly, enjoy every second of it. Fuck the status quo, do what you think is right. Do what your gut tells you. Be virtuous, even if you don't have it. Have integrity, be honest and just.
Earth and Sun are beautiful, yet we spend our lives inside fucking walls, and when it's time to go home, it's fucking dark.6 -
Something on my computer corrupted and now windows explorer crashes when I try to create or rename files. I did integrity checks and got nothing, so now I'm doing disk checks. It has been at 26% for over an hour.10
-
The following piece of advice will be for those aspiring for an IT service desk position:
When companies are looking to hire service desk agents, they're primarily looking for socially skilled people with strong communicative skills, rather than primarily technically skilled people. When I first joined the IT world, I went on different interviews for that position and across all of them there was one truth: all the interviewers were eyeballs-focused on my social and communication skills and a mere thin layer of technical skills was required (depending on how technical the service desk). In fact, I immediately got aggressively dismissed twice for two of those when I filled in a Myers-Briggs personality test according to my Sheldon-type personality (selfish, condescending etc). Conversely, when I applied for a new position and I faked that test into answering everything focused positively on the social aspect, I was an immediate top candidate.
Here's a definition from the ITIL Foundation course, chapter Service Management: Because of how lateral the function of the service desk has become today (not only used to solve technical issues, but also company-wide issues), the most important and valued skills when hiring a service desk agent are fully focused on empathy and soft skills and none of those are technical skills. This is because the service desk has people that are the front window of your company and thus you can't make social mistakes as to protect your company's reputation. That risk has to be minimized and you need the ideal people. The people who in fact solve the technical problems are behind a back-office and they are contacted by the service desk agents.
In the beginning, when I did my first service desk job, I also thought: "Oh, I'm going to have to convince them I'm this technical wizard". In the end I got hired for being able to explain technology in human language and because in the interview I successfully communicated and explained ideas to both the team manager and the CEO, not because I knew what goes on inside a computer. This is a very important distinction.
My friends have also been in service desk positions and ironically they were the most successful when they were empathetic slimeballs (saying: "of course, anything for you" while not meaning it, constantly making jokes), rather than people with integrity (those got fired for telling the customer they were wrong while being unfriendly).
I hope this helps.8 -
In the dynamic realm of software development, where the user interface meets the complex machinery behind the scenes, Back-End Expertise https://sombrainc.com/expertise/... emerges as the unsung hero. As businesses increasingly rely on digital platforms to connect, engage, and transact with their audience, the prowess of back-end development becomes paramount.
At its core, Back-End Expertise refers to the specialized knowledge and skills required to architect, build, and maintain the server-side of applications. While the front end dazzles users with intuitive interfaces and captivating designs, the back end silently weaves the intricate tapestry that ensures seamless functionality, robust security, and optimal performance.
The Back-End Symphony: Orchestrating Digital Harmony
Imagine a symphony where each instrument plays its part to perfection, creating a harmonious melody. Similarly, in the world of software, the back end orchestrates a symphony of databases, servers, and frameworks, ensuring that data flows smoothly, operations execute seamlessly, and applications respond promptly to user commands.
Back-End Experts are the virtuosos who write the code that makes applications tick. They delve into the intricacies of databases, crafting queries that retrieve and store data efficiently. They architect server-side logic, meticulously designing algorithms that power functionalities ranging from user authentication to complex business processes.
Security as the Forte: Safeguarding the Digital Fortress
In an era where data breaches loom as potential threats, Back-End Expertise becomes a formidable fortress. These experts implement robust security measures, safeguarding sensitive information and ensuring the integrity of digital ecosystems. Encryption, authentication protocols, and secure API integrations are the tools of their trade as they create digital bastions against cyber threats.
Optimizing Performance: The Need for Speed
User experience hinges on speed, and Back-End Experts understand the importance of optimizing performance. Through efficient coding practices, load balancing, and server-side optimizations, they strive to minimize latency and ensure that applications respond swiftly, even under heavy user loads.
Future Trends: Back-End Evolution
As technology evolves, so does the landscape of back-end development. Cloud computing, serverless architectures, and microservices are shaping the future of back-end expertise. Back-End Experts must adapt to these trends, embracing new tools and methodologies to stay at the forefront of innovation.
In conclusion, Back-End Expertise is the backbone of digital experiences. While users interact with the front end, the magic unfolds behind the scenes, where Back-End Experts craft the architecture that defines the reliability, security, and performance of applications. Their alchemy transforms lines of code into seamless digital experiences, leaving an indelible mark on the ever-evolving landscape of software development.1