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 - "dirty code"
-
I've been fortunate enough to work with a lot of awesome people early into my career.
At the company I worked where I met @trogus, I became friends with a few people, including Tim, that I think were my favorites. It was a really fun bunch and though it may sound immature, but a lot of the times it felt like we were kids so for me coming out of college it was awesome.
There's so many stories from working with that bunch that come to mind for me. One of my best friends there was this guy "Dirty Devin." He started around the same time I did. When I first met him he seemed really boring and professional. After getting to know him, and after he'd been at the company for a few weeks, his actual personality started to show and he was like a child (in the best way possible) and was absolutely hilarious/made the work place a blast.
Our office had a ping pong table and neither Dirty Devin or I had ever really played. We started playing against each other and we both very quickly got really good.
I also met a guy named Botond (he's the one in the photo). He was very similar to Dirty Devin. Lots of crazy stories but the photo is actually a really funny one - we both got to work a few minutes early one day. And we couldn't get into the office. We kept trying to enter the door code and it wouldn't work. We kept joking that we must both be fired. Turned out that they had fired someone the night before and didn't bother to send out the new door code :/
And of course, Tim. I think we clicked pretty early on and had the same friend group at the company.2 -
I think the weekly rants just exist because @dfox & @trogus got banned from stackoverflow and they still have questions.
When it comes to learning cutting edge tech... Go build already!
I found Rust intimidating.
I read the first few pages of the official book, got bored, gave up.
Few months later, decided to write a "simple" tool for generating pleasing Jetbrains IDE color schemes using Rust. I half-finished it by continuously looking up stuff, then got stuck at some ungoogleable compiler error.
Few months later I needed to build a microservice for work, and against better judgement gave Rust a try in the weekend. Ended up building an unrelated library instead, uploaded my first package to crates.io.
Got some people screaming at me that my Rust code sucked. Screamed back at them. After lots of screaming, I got some helpful PRs.
Eventually ended up building many services for work in Rust after all. With those services performing well under high load and having very few bugs, coworkers got interested. Started hiring Rust engineers, and educating interested PHP/JS devs.
Now I professionally write Rust code almost full-time.
Moral of the story:
Fuck books, use them for reference. Fuck Udemy (etc), unless you just want to 2x through it while pooping.
Learning is something you do by building a project, failing, building something else, falling again, building some more, sharing what you've made, fighting about what you've built with some entitled toxic nerds, abandoning half your projects and starting twelve new ones.
Reading code is better than reading documentation.
Listening to users of your library/product teaches you more than listening to keynote speakers at conferences.
Don't worry about failures, you don't need to deliver a working product for it to be a valuable experience.
Oh, and trying to teach OTHERS is an excellent method to discover gaps in your knowledge.
Just get your fucking hands dirty!12 -
#3 Worst thing I've seen a co-worker do?
A 20-something dev, 'A', back in the early days of twitter+facebook would post all his extracurricular activities (drinking, partying, normal young-buck stuff). The dev mgr, 'J', at the time took offense because he felt 'A' was making the company look bad, so 'A' had a target on his back. Nothing 'A' did was good enough and, for example, 'J' had the source control czars review 'A's code to 'review' (aka = find anything wrong). Not sorting the 'using' statements, and extra line after the closing }, petty things like that. For those curious, orders followed+carried out by+led by 'T' in my previous rant.
As time went on and 'T' finding more and more 'wrong' with A's code, 'J' put A on disciplinary probation. 'A' had 90 days to turn himself around, or else.
A bright spot was 'A' was working on a Delphi -> C# conversion, so a lot of the code would be green-field development and by simply following the "standards", 'A' would be fine...so he thought.
About 2 weeks into the probation, 'A' was called into the J's office and berated because the conversion project was behind schedule, and if he didn't get the project back on track, 'A' wouldn't make it 30 days. I sat behind 'A' and he unloaded on me.
<'A' slams his phone on his desk>
Me: "Whoa...whats up?"
A: "Dude, I fucking hate this place, did you hear what they did?"
<I said no, then I think we spent an hour talking about it>
Me: "That all sucks. Don't worry about the code. Nobody cares what T thinks. Its not even your fault the project is behind, the DBAs are tasked with upgrades and it's not like anyone is waiting on you. It'll get done when it's done. Sounds like a witch hunt, what did you do? Be honest."
A: "Well, um...I kinda called out J, T, and those other assholes on facebook. I was drunk, pissed, and ...well...here we are."
Me: "Geez, what a bunch of whiney snowflakes. Keep your head down and you'll get thru it, or don't. Its not like you couldn't find another job tomorrow."
A: "This is my first job out of college and I don't want to disappoint my dad by quitting. I don't even know what I'm supposed to be doing. All J told me was to get better. What the fuk does that even mean?"
Me: "He didn't give you any goals? Crap, for someone who is a stickler for the rules, that's low, even for J."
Fast forward 2 weeks, I was attending MS TechEd and I was with another dev mgr, R.
R: "Did you hear? We had to let 'A' go today."
Me: "What the hell? Why?"
R: "He couldn't cut it, so we had to let him go."
Me: "Cut what? What did he do, specifically?"
R: "I don't know, 'A' was on probation, I guess he didn't meet the goals."
Me: "You guess? We fire a developer working on a major upgrade and you guess? What were these so-called goals?"
R: "Whoa...you're getting a little fire up. I don't know, maybe not adhering to coding standards, not meeting deadlines?"
Me: "OMG...we fire people for not forming code? Are you serious!?"
R: "Oh...yea...that does sound odd when you put it that way. I wish I'd talk to you before we left on this trip"
Me: "What?! You knew they were firing him *before* we left? How long did you know this was happening?"
R: "Honestly, for a while. 'A' really wasn't a team player."
Me: "That's dirty, the whole thing is dirty. We've done some shitty things to people, but this is low, even for J. The probation process is meant to improve, not be used as a witch hunt. I don't like that you stood around and let it happen. You know better."
R: "Yea, you're right, but doesn't change anything. J wanted to do it while most of us were at the conference in case 'A' caused a scene."
Me: "THAT MAKES IT WORSE! 'A' was blindsided and you knew it. He had no one there that could defend him or anything."
R: "Crap, crap, crap...oh crap...jeez...J had this planned all along...crap....there is nothing I can do no...its too late."
Me: "Yes there is. If 'A' comes to you for a letter of recommendation, you write one. If someone calls for reference, you give him a good one."
R: "Yea..yea...crap...I feel like shit...I need to go back to the room and lie down."
As the sun sets, it rises again. Within a couple of weeks, 'A' had another job at a local university. Within a year, he was the department manager, and now he is a vice president (last time I checked) of a college in Kansas City, MO.10 -
I hate when people look at me weird when I talk sexy to my code. It's like how do you not find this sexy. Lol I'm in class like awww yeah pull that input and increment it you dirty software.9
-
This bitch at work is afraid of hard work and is currently spending more energy fighting the work than just doing it.
She wants to keep a legacy setting that's on the wrong scope -- per merchant, not per payment -- in addition to the setting I've added on the correct scope. She's bringing in management two levels up all because "I've already moved on from this" and "it will require me to write code quite a bit" (first paraphrased for clarity, second is an exact quote)
Bitch, your way is dirty as fuck and is going to break things. Roll up your sleeves and do your damn job!11 -
Although she hates HTML, I had my girlfriend try to (re)create some kind of interface as a challenge. She remade the Mirror's Edge Catalyst menu - and she did well, I guess. (ofc her code is dirty and stuff - and it's far from responsive, but damn it looks smooth xD)14
-
I was trying to style a website drop down menu (select tag) that would look the same on all browsers using css only. i removed the default arrow down, and i was trying to add a minimal arrow pointing down, and it took me a while to do it. Take a look at the pic.
However when i looked at the code. there was no code for that little arrow. I was confused for a few minutes, looking at both html and css. thinking how is this even possible, then i realised.
My f-ing screen was dirty. Dirt was similarly shaped like the thing i wanted to achieve. I was laughing at myself for a few minutes.
btw i did it in the end 😊 no dirt involved1 -
This one, is for all you haters out there tonight!
.
.
.
.
Cause I'm PHP, I'm dynamite
PHP and I'll win the fight
PHP. I'm a power load
PHP, watch me explode()
I'm dirty, mean and mighty unclean
I'm a wanted code
Public enemy number one
Understand7 -
Every time I do a dirty fix and someone in my MR comments "have you investigated the root cause" I wanna kill myself.
No bro, I havent investigated the root cause because this ticket is 3 months old and was passed around like a hot potato from team to team until it got assigned to me.
If you want I can add a comment to refactor this in the future. As far as Im concerned any refactors are out of scope, also I atleast came up with some kind of solution that noone else was able to in 3 months. So im not gonna waste my time on refactoring this piece of shit code under immense pressure from management who thinks it was me who dragged this ticket for 3 months.
Its working, it doesnt cause any side effects, we all gonna die soon and nothing really matters, so fuck off.9 -
3 years, part time, $0.
I used to volunteer my time to an old text based rpg, handling code changes, sysadmin maintenance and the likes - back when those were a thing in the mid 2000's and money wasn't my issue in life - free for them, experience for me - win win!
Was something to get my hands dirty back in the day and contribute to an active community, but since then that place has shut down and been disbanded.24 -
MD: The client doesn't care how sloppy your code is. They're not paying for the solution, they're paying for the result. If there's a quick and dirty option take it.3
-
I’m getting really tired of all these junior-turn-senior devs who can’t write simple code asking ChatGPT to solve everything for them.
I’m having to untangle everything from bizarre organization/flow to obvious gotchas / missed edge cases to ridiculously long math chains (that could be 1/10th the length), or — and I feel so dirty for this — resorting to asking ChatGPT wtf it was thinking when it obviously wrote some of these monstrosities. Which it gets wrong much of the time.
“ALL HAIL CHATGPT!” Proclaims the head of Engineering. “IT’S OUR PRODUCTIVITY SAVIOR! LEVERAGING AI WILL LET US OUTPERFORM THE ENTIRE INDUSTRY!”
Jesus fucking christ.31 -
No matter how much product owners claim "bugs have priority over anything else", "we value high quality structured code", and "we do test driven development"...
...Once a big client wants a feature to be developed before they sign up, dirty code will be written from napkin specs, and that code will always be refractored "soon".4 -
"I strive for code quality and maintainability. I actually do. And i will not work for a company that does not care about it and just wants something done as fast as possible.
The only time i will do something quick and dirty is if it's actually urgent. And even then with one condition - my next task will be to fix it properly.
I do not care about your deadlines. I will do my best to meet them, but not at the expense of code quality. I've seen too many projects fall into technical debt, where productivity is so low, that the only way to move forward is hire more people and start working on a project 2.0
And please do not lie about how great your company is, if it's not. These kind of things surface very soon, and you will have wasted both of our time, because as i said - i will not work for a company that does not care about code quality."
you think i'll ever get a job again if i put this on my CV ? :D10 -
That you if you cant solve a problem on paper you can't solve it in the real world.
But seriously coding gave me a voice, I was a seriously smart kid, but I was also a dirty orphaned dropout.
Everyones worth in this world is measured on a piece of paper and mine was blank. I was just seen as some overly ambitious kid spinning fairy tales and crackpot theories because no one could understand what the ideas value was or didn't try because of my age and cv, then I taught myself to code.
All of a sudden my theories were provable and I had a way of delivering them to not just one but millions of people in a way that they could understand and interact with them.My whole life changed and the day I wrote my first program was the last day I was ever judged by a piece of paper. -
Commit Message Part2:
6528fff Code was clean until manager requested to fuck it up
241b35f Who knows WTF?!
4381a32 Argh! About to give up :(
c3bf1a9 more debug... who overwrote!
2d68d6d Fixed a bug cause Maciej said to
b112c1a This branch is so dirty, even your mom can't clean it.
bb456d4 Shit code!
4878b46 Copy-paste to fix previous copy-paste
e2c7e87 A fix I believe, not like I tested or anything
f56109f derpherp
e4b8f4c formatted all
3691208 I'm just a grunt. Don't blame me for this awful PoS.
0888b69 just checking if git is working properly...
62741aa I'm too old for this shit!
0735196 COMMIT ALL THE FILES!
09caccf I CAN HAZ PYTHON, I CAN HAZ INDENTS
1e1cda8 giggle.
ab70bde Fixed errors
934436d Now added delete for real
5f84e30 My bad
99baff8 CHRIS, WE WENT OVER THIS. C++ IO SUCKS.
953473d final commit.
f0c3b57 Just committing so I can go home
4e5ce4e yolo push
deb4e3b I CAN HAZ PYTHON, I CAN HAZ INDENTS
710c06a Commit committed....
3c45e67 it is hump day _^_
4487788 Committing in accordance with the prophecy.
bf86e7e This solves it.
4804f68 FONDLED THE CODE
051d42e REALLY FUCKING FIXED5 -
Let's play a game.
Since using teams for the last two years I've been allowing MS to tap into my life story for work to produce some hilariously scary analytics on my work schedule.
For anyone interested:
https://myanalytics.microsoft.com
Now let's pull some data out and think about wtf is going on here.
Weekly average for "focus" vs "collaboration"
Now this is a % of time you have not being stuck in meetings, calls, ect, based on the pass 4 weeks of data.
I have a 93% collaboration vs 7% focus time - or leave me the fuck alone time.
That's literally 35 of my 38 working hours a week in some kind of call or dealing with emails 😅
Speaking of emails: what in the fuck am I supposed to do with 5,109 emails and 403 calls on teams in a month?
It's like I need a receptionist for this shit.
And on that note, im hitting the rum for the day 🥃🥃🥃4 -
I'm working in a blockchain company for $180 as a junior programmer and there is a mid-senior guy who get ~8 times more than me. So we got a project to make a backend API with its tests. When I was partly completed my part of the project I asked that "mid-senior" to share his code with me. Nothing was done, and he asked me to push my changes to git so he could start to do something (view at my code and start copying). BUT. He couldn't even pull from git. He couldn't use that fucking Visual studio's team explorer and even the solution explorer. Ok, he was working with VS for the first time, but I did too. I cloned the repo gave him the environment to start "working" and get back to my work. After that nothing changed, he was writing each one-lined if block for half hour and the code was very dirty. Finally I've got his laptop and started to writing his part by teaching him all the programming. You may say I'm mad. I really do, I think that I did all project. This is sad... How can people get this much by being this far from the programming? We need really high quality programmers.3
-
I'm a DevOps engineer. It's my job to understand why this type of shit is broken, and when I finally figure it out, I get so mad at bullish players like AWS.
It's simple. Install Python3 from apt.
`apt-get update && apt-get install -y python3-dev`
I've done this thousands of times, and it just works.
Docker? Yup.
AWS AMI? Yup.
Automation? Nope.
WTF? Let's waste 2.5 hours and figure out why this morning.
In docker: `apt-cache policy python3-dev` shows us:
python3-dev:
http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
But in AWS instance, we see we're reading from "http://us-east-1.ec2.archive.ubuntu.com/... focal/main" instead!
Ah, but why does it fail? AWS is just using a mirror, right? Not quite.
When the automation script is running, it's beating AWS to the apt mirror update! My instance, running on AWS is trying to access the same archive.ubuntu.com that the Docker container tried to use. "python3-dev" was not a candidate for installation! WTF Amazon? Shouldn't that just work, even if I'm not using your mirror?
So I try again, and again, and again. It works, on average, 1 out of every 5 times. I'm assuming this means we're seeing some strange shit configuration between EC2 racks where some are configured to redirect archive.ubuntu.com to the ec2 mirror, and others are configured to block. I haven't dug this far into the issue yet, because by the time I can SSH into the machine after automation, the apt list has already received it's blessed update from EC2.
Now I have to build a graceful delay into my automation while I wait for AWS to mangle, I mean "fix up" my apt sources list to their whim.
After completely blowing my allotted time on this task, I just shipped a "sleep" statement in my code. I feel so dirty. I'm going to go brew some more coffee to be okay with my life. Then figure out a proper wait statement.7 -
So I watched this video that tries to convince people, that the jQuery library isn't really best practice anymore and showed how you can achieve basic tasks with vanilla JS, aswell as some frameworks (Vue, React, Angualar) and how they handle interactions with the DOM.
It also talked about how nearly every JS question on SO has top answers using jQuery, and how that's a bad thing.
But what I found in the comment section of this video was pure horror: So-called "Developers" defending jQuery to the death. Of course there were some people who made some viable arguments (legacy code, quick & dirty projects), but the overwhelming majority were people making absurd claims and they seemed quit self-confident.
GOSH!
Want an example?
Look:22 -
"So, just show me the dirty and nasty things in this 'internet' thing...I mean, this nsfw stuff...c'mon..."
"How about the source code of my last project?"
<silence> -
Sometimes dirty code is more efficient than clean code.
If features get dropped frequently and requirements change every few days, writing best-practices, tested code is wasted time. Learned that in my first job where I thought the other devs were all bad. Until I realized their bad code pays my salary, and my clean code takes more time to develop.6 -
Biggest challenge I overcame as dev? One of many.
Avoiding a life sentence when the 'powers that be' targeted one of my libraries for the root cause of system performance issues and I didn't correct that accusation with a flame thrower.
What the accusation? What I named the library. Yep. The *name* was causing every single problem in the system.
Panorama (very, very expensive APM system at the time) identified my library in it's analysis, the calls to/from SQLServer was the bottleneck
We had one of Panorama's engineers on-site and he asked what (not the actual name) MyLibrary was and (I'll preface I did not know or involved in any of the so-called 'research') a crack team of developers+managers researched the system thoroughly and found MyLibrary was used in just about every project. I wrote the .Net 1.1 MyLibrary as a mini-ORM to simplify the execution of database code (stored procs, etc) and gracefully handle+log database exceptions (auto-logged details such as the target db, stored procedure name, parameter values, etc, everything you'd need to troubleshoot database errors). This was before Dapper and the other fancy tools used by kids these days.
By the time the news got to me, there was a team cobbled together who's only focus was to remove any/every trace of MyLibrary from the code base. Using Waterfall, they calculated it would take at least a year to remove+replace MyLibrary with the equivalent ADO.Net plumbing.
In a department wide meeting:
DeptMgr: "This day forward, no one is to use MyLibrary to access the database! It's slow, unprofessionally named, and the root cause of all the database issues."
Me: "What about MyLibrary is slow? It's excecuting standard the ADO.Net code. Only extra bit of code is the exception handling to capture the details when the exception is logged."
DeptMgr: "We've spent the last 6 weeks with the Panorama engineer and he's identified MyLibrary as the cause. Company has spent over $100,000 on this software and we have to make fact based decisions. Look at this slide ... "
<DeptMgr shows a histogram of the stacktrace, showing MyLibrary as the slowest>
Me: "You do realize that the execution time is the database call itself, not the code. In that example, the invoice call, it's the stored procedure that taking 5 seconds, not MyLibrary."
<at this point, DeptMgr is getting red-face mad>
AreaMgr: "Yes...yes...but if we stopped using MyLibrary, removing the unnecessary layers, will make the code run faster."
<typical headknodd-ers knod their heads in agreement>
Dev01: "The loading of MyLibrary takes CPU cycles away from code that supports our customers. Every CPU cycle counts."
<headknod-ding continues>
Me: "I'm really confused. Maybe I'm looking at the data wrong. On the slide where you highlighted all the bottlenecks, the histogram shows the latency is the database, I mean...it's right there, in red. Am I looking at it wrong?"
<this was meeting with 20+ other devs, mgrs, a VP, the Panorama engineer>
DeptMgr: "Yes you are! I know MyLibrary is your baby. You need to check your ego at the door and face the facts. Your MyLibrary is a failed experiment and needs to be exterminated from this system!"
Fast forward 9 months, maybe 50% of the projects updated, come across the documentation left from the Panorama. Even after the removal of MyLibrary, there was zero increases in performance. The engineer recommended DBAs start optimizing their indexes and other N+1 problems discovered. I decide to ask the developer who lead the re-write.
Me: "I see that removing MyLibrary did nothing to improve performance."
Dev: "Yes, DeptMgr was pissed. He was ready to throw the Panorama engineer out a window when he said the problems were in the database all along. Didn't you say that?"
Me: "Um, so is this re-write project dead?"
Dev: "No. Removing MyLibrary introduced all kinds of bugs. All the boilerplate ADO.Net code caused a lot of unhandled exceptions, then we had to go back and write exception handling code."
Me: "What a failure. What dipshit would think writing more code leads to less bugs?"
Dev: "I know, I know. We're so far behind schedule. We had to come up with something. I ended up writing a library to make replacing MyLibrary easier. I called it KnightRider. Like the TV show. Everyone is excited to speed up their code with KnightRider. Same method names, same exception handling. All we have to do is replace MyLibrary with KnightRider and we're done."
Me: "Won't the bottlenecks then point to KnightRider?"
Dev: "Meh, not my problem. Panorama meets primarily with the DBAs and the networking team now. I doubt we ever use Panorama to look at our C# code."
Needless to say, I was (still) pissed that they had used MyLibrary as dirty word and a scapegoat for months when they *knew* where the problems were. Pissed enough for a flamethrower? Maybe.6 -
I recently ranted so much about languages but here it goes
JS we need to talk. BECAUSE YOU GOT FAT AND UGLY STUPID BITCH! Dumb piece of bloatware. What even is your problem? Depending on a library for strpad and then blow up like Steve jobs ego. Bastardized fuckfest. I used to like you bro and then you screw me over!
It's like you fuck my wife while I try to fix your car. Why can't you even be usefully on your own anymore? I'd be richer than bill gates if I get a dollar for every damn framework people pull from their asses. Are you writing this fuck while shitting so you can compare colors of your outcome?
Normalize the fucking base, don't add to the bukkakke! bitch is drowning already. Why is everyone jerking of to react and angular? When have YOU written something in vanilla the last time? Why even bother? Remove the core and hardcore every damn framework into the browsers. Guess that saves you 200kb. Oh wait I forgot that's about unminified jQuery.
Now I need to load about 2GB of dependencies, some creating code that puts code in my code to load code out of my code which was generated out of something that remotely resembles JS so every browser is able to execute my fancy shit. But hey, it's fast. And of course there are the fanboys. You are worse than apple fags. You sample your own jizz with your friends in a wine glass. there was a Time it was bad practice to mix logic and view. Now you made it mandatory. "Browser does the rendering" ofc you imbecile pile of fuck don't show me a damn preloader for 1 picture and 20 lines of text. Who fucked your brain so hard?
So react seems to be the cool kid now, then I tell someone I know angular it's like showing up in a pikachu onsie to a formal dinner with the queen.
I used to love you girl. I loved how we could dirty things together. Now you are like a pig. Please loose weight bby the sight of you disgusts me nowadays2 -
Overheard a conversation between programmers:
.... Your dirty hack finally caught up with you!
.. it is responsible for bug A, B , .. E ... F..
That "temp" code was not touched in years.3 -
When will I fuckin learn that
a) customers lie
b) customers are sloppy
c) customers are wrong
d) customers do not do their work (properly)
e) customers want us to do their (dirty) work
f) possibly all of the freakinly above?! + khm....
They will fuckin aaaalwaaaays say sth is not working after the update..
And I will alwaaaays assume I fucked up something..even if I didn't touch that part of the code/data..
And almost aaaaalways it turns out that the bug they complain about is how the system worked (or didn't work) before the update and/or some fuckup from their side..
Anyhow, I rushed over, grabbed the files went testing in dev..wtf, output is different, mine is ok, theirs is..wtf is that shit?!
Transfer newly built dll to test..same shit as on prod..wtf?! How?!
I assumed they have thing A correctly linked to thing B.. ofc thing A was linked to thing C in their case and in another case (our test) to correct thing B..
I got chillies when grabbing files, that
I should have tripple checked that they didn't fuck up something on the link part, but I just assumed they know what they were doing & that they checked they linked correct files with correct content already, before being pissy that the update fucked up things.. riiiight!! :/
I wanted to find solutions to this fuckup asap so I disregarded my gut feeling..yet again!! Fuuuck!
I've spent too much time trying to find ways to fix a bug that wasn't even a real bug to begin with.. :/
Fuuuuuck!!
So yeah, always treat the customers like they are 3yrs old & have no clue what they are doing & check exactly wtf they were indeed trying to do..it will save you time & nerves..
And note to self: reread this shit daily!! And imprint it in your brain that everything is not always your fault!!11 -
> Make a small game.
> Do it in Rust because why not.
> Decide "Hey, why not make the game objects have Lua scripts for their logic because Lua is easier to do quick and dirty code in than Rust?"
> 5 hours later delete all the code related to running the Lua in Rust because AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1 -
sooooooooo for my current graduate class we were to use the MVC pattern to build an IOS application(they preferred it if we did an IOS application) or if you didn't have an Apple computer: an Android application.
The thing is, they specified to use Java, while in their lectures and demos they made a lot of points for other technologies, hybrid technologies, such as React Cordova, all that shit, they even mentioned React Native and more. But not one single mention of Kotlin. Last time I tried my hand at Android development was way before Kotlin, it was actually my first major development job: Mobile development, for which we used Obj C on the IOS part and well, Java on the Android part.
As some of you might now, I rarely have something bad to say about a tech stack(except for VBA which I despise, but I digress) and I love and use Java at work. But the Android API has always seem unnecessarily complex for my taste, because of that, when I was working as a mobile development I dreaded every single minute in which I had to code for Android, Google had a great way to make people despise Java through their Android API. I am not saying it is shit, I am not saying it is bad, I just-dont-like-it.
Kotlin, proves a superior choice in my humble opinion for Android development, and because the language is for retards, it was fairly easy for me to pick it up in about 2 hours. I was already redesigning some of my largest Spring applications using half the code and implemented about 80% of the application's functionality in less than 3 hours(login, fragment manipulation, permissions, bla bla) and by that time I started to wonder if the app built on Kotlin would be ok. And why not? If they specifically mentioned and demonstrated examples using Swift, then surely Kotlin would be fine no? Between Kotlin and Java it is easy to see that kotlin is more similar to Swift than Java. So I sent an email. Their response: "I am sorry, but we would much rather you stick with the official implementations for Android, which in this case is Java for the development of the application"
I was like 0.o wat? So I replied back sending links and documentation where Google touted Kotlin as the new and preferred way to develop Android applications, not as a second class citizen of the platform, but as THE preferred stack. Same response.
Eventually one of the instructors reflected long enough on it to say that it was fine if I developed the application in Kotlin, but they advised me that since they already had grading criteria for the Java program I had to redo it in Java. It did not took me long really, once I was finished with the Kotlin application I basically rewrote only a couple of things into Java.
The end result? I think that for Android I still greatly prefer Kotlin. Even though I am not the biggest fan of Kotlin for anything else, or as my preferred language in the JVM.
I just.......wish....they would have said something along the lines of: "Nah fam please rewrite that shit for Java since we don't have grading criterias in place for Kotlin, sorry bruh, 10/10 gg tho" instead of them getting into an email battle with me concerning Kotlin being or not being the language to use in Android. It made me feel that they effectively had no clue what they were talking about and as such not really capable of taking care of students on a graduate level program.
Made me feel dirty.12 -
I think I just blew my own mind here.
Look at this:
Class SomeClass
{
_call($functionName, $arguments)
{
return call_user_func(array('SomeClass','uselessMethod'), 'method');
}
method($foo)
{
return new Adapter($foo)->execute($this);
}
uselessMethod()
{
return $this->method(__FUNCTION__);
}
}
so __FUNCTION__ resolves to
Caller:
You can run that code, whether you comment out uselessMethod, or not.
Adapter is a function that looks for what class to call depending on a database value
and execute the call.
So api basically uses a chain call to do stuff like this in controllers, here's how
I call the above:
$someObject = (new Class($object))->uselessMethod()->doSomething()->doSomethingElse();
But like, eventually my code matured to where all those methods in the chain call have the same one line return that calls my adapter to find the logic to run.
So, basically, I can now have a class with headless function calls that calls a directory of other classes, that are all defined in a contract somewhere. So as long as those classes
all adhere to the contract, it will never return an error.
I can't think of any reason to do this, other than my setup, and I have a sneaky feeling,
as dirty as this trick is, that there's a bad reason my code has come to being able to do this.
Maybe wrong strategy pattern from the beginning?
I'm sure it'll come to me like 3 days from now..3 -
Needed to convert a collection of .avi videos to .mp4. Online converters only allow 1-2 videos at a time, with slow uploads, so no option.
Can't find a program that quickly fulfills my needs. Interesting ... 🤔
Look for python and a quick and dirty solution, ffmpeg and subprocess it shall be then.
Install ffmpeg, run subprocess with ffmpeg, put it inside a for loop, iterate over all videos with their respective number. Done.
3 lines of code, saved some time.
It's great to be a developer (sometimes).😏16 -
Worst thing you've seen another dev do? Here is another.
Early into our eCommerce venture, we experienced the normal growing pains.
Part of the learning process was realizing in web development, you should only access data resources on an as-needed basis.
One business object on it's creation would populate db lookups, initialize business rule engines (calling the db), etc.
Initially, this design was fine, no one noticed anything until business started to grow and started to cause problems in other systems (classic scaling problems)
VP wanted a review of the code and recommendations before throwing hardware at the problem (which they already started to do).
Over a month, I started making some aggressive changes by streamlining SQL, moving initialization, and refactoring like a mad man.
Over all page loads were not really affected, but the back-end resources were almost back to pre-eCommerce levels.
The main web developer at the time was not amused and fought my changes as much as she could.
Couple months later the CEO was speaking to everyone about his experience at a trade show when another CEO was complementing him on the changes to our web site.
The site was must faster, pages loaded without any glitches, checkout actually worked the first time, etc.
CEO wanted to thank everyone involved etc..and so on.
About a week later the VP handed out 'Thank You' certificates for the entire web team (only 4 at the time, I was on another team). I was noticeably excluded (not that I cared about a stupid piece of paper, but they also got a pizza lunch...I was much more pissed about that). My boss went to find out what was going on.
MyBoss: "Well, turned out 'Sally' did make all the web site performance improvements."
Me: "Where have you been the past 3 months? 'Sally' is the one who fought all my improvements. All my improvements are still in the production code."
MyBoss: "I'm just the messenger. What would you like me to do? I can buy you a pizza if you want. The team already reviewed the code and they are the ones who gave her the credit."
Me: "That's crap. My comments are all over that code base. I put my initials, date, what I did, why, and what was improved. I put the actual performance improvement numbers in the code!"
MyBoss: "Yea? Weird. That is what 'Tom' said why 'Sally' was put in for a promotion. For her due diligence for documenting the improvements."
Me:"What!? No. Look...lets look at the code"
Open up the file...there it was...*her* initials...the date, what changed, performance improvement numbers, etc.
WTF!
I opened version control and saw that she made one change, the day *after* the CEO thanked everyone and replaced my initials with hers.
She knew the other devs would only look at the current code to see who made the improvements (not bother to look at the code-differences)
MyBoss: "Wow...that's dirty. Best to move on and forget about it. Let them have their little party. Let us grown ups keeping doing the important things."8 -
I started a project at high school 7 years ago, I had no idea what's clean code or design pattern, just learn while keep coding. I eventually stopped because my code is so terrible I cannot understand it anymore.
Now, after 1 year of working, I look back those dirty codes and think it is actually not that bad. Within hours I even fixed a bug with concurrency.
I start to think, instead of learning to how to write good code, maybe I should learn how to read bad code. That's just much more practical.5 -
Primarily IntelliJ IDEs.
I'm using IDEA for Rust & Kotlin, PHPStorm, Datagrip (DB), and sometimes PyCharm CE.
IDEs can feel a bit dirty with how heavy they are, and the lack of customization/control. But at the end of the day there's just nothing that can measure up against IntelliJ's inspections, integrations and project indexing.
My ideal product would be one universal IntelliJ IDE, but combined with the openness of VSCode/Atom, having everything transparently configurable through stylesheets and scripts.
As an editor though.... I use Vim for LaTeX, Markdown, plain text and Haskell code... but not so much for other programming languages.
Vim was my first editor when I moved from C64 to PC development 25 years ago, and while you get used to balancing keybind vimgolfing with being actually productive, i've always found maintaining plugins and profiles too cumbersome -- the reality is that Vim is an awesome TEXT editor, but it's really awful as a CODE editor out of the box.
When you want to try out a new programming language, you don't want to have to mess around with your Vimrc and Vundle and YCM for half a day just so you can comfortably write "Hello World" in Rust or Elixir... you just want to click one install button, press F10 to compile and see if it flies.
Oh, and I use Xed a lot for quickly editing files... because it's the default GUI editor on Mint desktops, and it's quite good at being a basic notepad.1 -
Meet today.... Fetlang
---
lick Bob's cock
lick Duke's left nipple one million times
while Ada is submissive to Duke
make slave scream Ada's name
Have Charlie spank himself
Have Ada lick his tight little ass
Have Bob lick Charlie's tight little ass, as well
make Ada moan Bob's name
make Bob moan Charlie's name
---
Never felt so dirty after calculating the fibonacci sequence...
https://github.com/Property404/...
"Fetlang is a statically typed, procedural, esoteric programming language and reference implementation. It is designed such that source code looks like poorly written fetish erotica."8 -
I’ve come to the conclusion that developers who like react have never used it for anything even remotely complicated.
Because here’s reacts dirty little secret; it doesn’t scale. Not even a little. It’s flexible, but that leads to every developer writing their code in a different way.
It’s simple and easy for simple side projects, but as soon as you have to pass state to a child component, you’re fucked. And god help you if you’re modifying the state in said child component. You can try using redux, but that’s a bandaid solution to the real issue.
There are better alternatives, namely Vue. There’s no need to write unintelligible code that’s a mutated hybrid of html css and js. We as web developers realized mixing these technologies was a bad idea a long time ago.
React simply doesn’t scale. It’s flexibility, complexity, and the awful code quality it leads to makes it a nightmare for large projects with multiple developers
Some of its concepts are interesting and useful though. It’s functional concepts allow for easy code reuse, among the other benefits associated with functional programming
I sincerely hope that the hype around react dies out, and a new framework emerges that takes the best from react and fixes the glaring issues it currently has23 -
I feel so guilty.
I had to make a hotfix today. It is the ugliest piece of shit code I ever intentionally created. But there was no other way. I swear there was no other fucking way!
My boss just assigned this to me. But because she thinks this needs to be a hotfix and can't wait for the next release we just have to change the server and not the client side of our application.
So I had to add a memory to our server so that it knows from which high level method from the client the multiple low level calls to it are coming from.
It just doesn't make sense logically.
I mean I feel like I killed someone. And just so that we get less writes to our DB. I mean yes in some edge cases it is a huge speed-up...
But nothing this fix solves is a new bug.
I'm gonna take a shower now. For like an hour3 -
Me: *joins devRant once again*
"Wow this community is surely active! Better check frequently to keep up!"
*checks two times in 6 hours*
"Yea it was weekend. Probs everyone is getting their hands in a dirty pile of compileable code or a spaghetti of jQuery."
So, how is your day/night so far?25 -
Need to rant. I am doing programming 2 at university with java and the assessment is to make a card game. The subject is shit and is basically going over loops, variables, conditionals ect which we learned in introduction to programming and programming 1.
This leaves little time for oop principles, design patterns inherentance and all other useful stuff.
I am dedicated to making a career in programming and want to do my assessment the correct oop way. Although the lecturer doesn't care and is instructing the class to do it procedurally and shit.
I could do the program really quickly the shit procedural way and still get full marks but I feel dirty as hell coding like a scrub. So I'm 60 hours in on this assessment and there are so many classes and even more because of unit testing (we don't have to unit test) and I am spending way too much time.
My code is beautiful, my classes are tiny and maintainable, easy to modify and I'm learning so much about how to code oop the correct way with the help of a mentor and someone I look up to. But god does it take forever to code this way. And soo many iterations and redesigns because I'm still learning.
It's almost done but now I have another programming assessment for another class I'll have to do the dirty way because of time restraints and other assessments.
Sorry for wall of text but this is stressing me out 😛4 -
Our code base is shit.
To improve, we went through different coaching style: Freudian Psychoanalysis, behavioural psychology, gestalt
- Freudian Psychoanalysis: After several years refactoring and discussing our technical debt we can say that we really understand our code in deep. But it's still shit
- Behavioural psychology: after some months of work, we built a lot of testing. Now the code is still shit, but we don't get dirty anymore
- Gestalt: after few weeks sessions, the code is still shit. But we don't care anymore, we accept it and we are happy
(note. it's an adapted psychology joke)1 -
Our team - if ever existed - is falling apart. Pressure raising. Release deadline probably failing. No release ready for Big Sur.
Almost seemed we were getting somewhere: More focus on code quality, unit tests, proper design, smaller classes. But somehow we now ended up in "microservice" hell; a gazillion classes, mostly tested in isolation, but together they just fail to do their job. A cheap and dirty proof of concept from March is still more capable than this pile. I really start to doubt all that "Clean code", TDD, Agility rhetorics. What does it help you, if nobody cares for the end result? It's like a month I try to hammer down that message: we have to have testable artifacts, we have to ensure code signing works, our artifact is packaged and installable, we have to give QA something they can test - but time just passes and this piece of shit software is still being killed or does nothing.
Now my knee is broken and can do no sports and are tied to my chair even more. To top it all my coffee machine broke and my internet connection was abysmal this week. Not the usual small disconnects, after which it would recover, but more annoying and enduring: often being throttled to 1.7 MB/s (ranking my connection in the slowest 7% even in Germany). My RDP sessions had compression artifacts all over the screen and a mouse click would only take effect 5 sec later.
But my Esspresso machine was just repaired. Not all hope is lost.7 -
I think a "git commit -hide" option could be useful. To hide the author of the commit when you push dirty code.2
-
Init Mud. (A poem)
A Giant Ball of Mud.
Haphazard in structure.
A sprawling, enthralling, duct-taped warning,
Of things to come.
Tumbling down a well-worn path
Of untamed growth and aftermath.
Into Spaghetti-code Jungle.
Where quick and dirty wins the day
And warnings spoken hold no sway
Or fall on deaf ears in the undergrowth.
Tumbling.
Gaining weight.
Bits stuck on.
Bytes taken out.
Patches,
On top of patches,
On top of obsolescence.
Hacked at, uploaded
All elegance eroded.
Made and remade
Then duplicated
Relocated
Refined and redesigned
Suffocated by expedient repair after expedient repair
The original self no longer there
Replaced by something
Unwieldy.
Design resigned to undefined
An architectural mystery
Whose function can no longer be
Seen or gleaned
From obfuscated in-betweens
Of classes
Made and remade
Duplicated.
Abused.
A squirming library of disused.
Pulled at, prodded, committed
Corners cut and parts omitted.
Bug ridden branches fused to a rotting core.
The structure...
The system...
The content...
Mud.1 -
All i want to do is write code. Give me time, space, and stop bothering me so often and I can fix the shitty outsourced code. I can do it, really. I can write a ton of resdesign docs and improve so much shit. But I can't do ANY OF IT BECAUSE THESE FUCKS ARE ALWAYS PAWNING OFF WORK ONTO ME AND REFUSING TO LET ME GET MY HANDS DIRTY.
Stop asking me to email people. Stop asking me to update documentation that isn't for my features. Stop bothering me. Stop. Fucking. Bothering. Me. All. The. Goddamn. Damn.
Stop it stop it stop it fucking stop. I don't care about the PM's dumbfuck braindead statements and always wanting to pick a fight with me. I don't care that x environment is down. I don't care that your shitty overseas programmers can't tell their own ass from their head. I do care that I have the skills to fix it if you would give me the fucking time and space.
Instead of having me do all the mundane tasks that your shitty ape programmers could do overseas, let me have some fucking room to breath and I can fix this shitty fuck of a project and Maybe I can save it before it collapses on itself you dumb fucks
Holy shit im pissy today4 -
I hate my current work with this piece of bad written legacy $hit. As 2 year old 'junior' without any code review and mentor I feel depressed. I should improve my skills at home and run away from it.
F#$ck you, corpo.3 -
Today, i discovered thus beauty within our legacy code:
// TODO: this is probably the most dirty thing in our product. It needs a model more than anything else
This captions a crappy part of controller code for several years :/ -
I hope one day i will stop writing dirty code to achieve a task, forget to refactor it and then struggle to use correct names for variables and methods when i need to move on other tasks.
-
I told you fucking moron clients doing that "little" change would be complicated and in the worst case it would end fucking up your whole spaghetti crap. A really HUGE spaghetti monster of that you aren't aware because you guys don't know a shit about coding conventions.
*Clients call me complaining about their software is broken*
-Hey, we're in serious trouble. Our users aren't being able to see the proper calculated values. Why that little change had so much side effects?
- I already told you why.
- Can you fix it asap? Our clients are complaining.
- No. Deploy an old copy of the affected modules while you give me a prudent time to refactorize that crap.
- Refactorize?
- ...
I used to work in their place, 3 years later I quit that crappy job and decided to make them my clients. I escaped from the micromanaging thing but I didn't from their ugly practices.
Anyways, I have to fix this shit asap. Money talks, at least until I can find a better client. -
Me: Who wrote this fu$$in mess of code? Never mind, we will get the dirty hacker.
*Runs git blame*
*Silence*
Me: What a innovative way to solve the problem! I'm a genius! -
“Huddles don't work in safari 🤡,” Slack said.
Develop → User Agent → Google Chrome.
Boom, huddles suddenly work in Safari, and my today's huddle went absolutely fine.
Yep, I switched to Safari as my default browser. Previously, I didn't use it solely because YouTube's full-screen mode acted weird, but now I quit watching YouTube altogether.
Safari is a stellar browser. First, it wipes the floor with everything, even including Thorium, in the performance department (on Apple Silicon at least). Second, it's really beautiful with its new inline tab panel, where you have just one line of icons on top, instead of having two (tabs and url bar). DevTools are amazing. It can also connect to my iPhone's Safari via Wi-Fi and inspect the opened page — a must-have for heavy layouts. Plus, if my website works fine in Safari, it sure as hell will work fine everywhere. Safari is a great hack detector, as it won't tolerate dirty hacks. Works wonders for your code discipline.9 -
Imagine a time when a colleague contributes a shitty spaghetti of non-optimized code that neither use mnemonic variables nor conventional naming of functions, and you can imagine the dark hours of maintaining it and your fingers itch to fix it but you don't have the time and the responsibility too to do it. He doesn't listen to you and you feel bad to tell this to the boss as the colleague is also a friend you've known since college and is a good person otherwise. No options seems to give peace.6
-
¡rant|rant
Nice to do some refactoring of the whole data access layer of our core logistics software, let me tell an story.
The project is around 80k lines of code, with a lot of integrations with an ERP system and an sql database.
The ERP system is old, shitty api for it also, only static methods through an wrapper to an c++ library
imagine an order table.
To access an order, you would first need to open the database by calling Api.Open(...file paths) (yes, it's an fucking flat file type database)
Now the database is open, now you would open the orders table with method Api.Table(int tableId) and in return you would get an integer value, the pointer.
Now for the actual order. first you need to search for it by setting the search parameter to the column ID of the order number while checking all calls for some BS error code
Api.SetInt(int pointer, int column, int query Value)
Then call the find method.
Api.Find(int pointer)
Then to top this shitcake of an api of: if it doesn't find your shit it will use the "close enough" method of search.
And now to read a singe string 😑
First you will look in the outdated and incorrect documentation given to you from the devil himself and look for the column ID to find the length of the column.
Then you create a string variable with ALL FUCKING SPACES.
Now you call the Api.GetStr(int pointer, int column, ref string emptyString, int length)
Now you have passed your poor string to the api's demon orgy by reference.
Then some more BS error code checking.
Now you have read an string value 😀
Now keep in mind to repeat these steps for all 300+ columns in the order table.
News from the creators: SQL server? yes, sql is good so everything will be better?
Now imagine the poor developers that got tasked to convert this shitcake to use a MS SQL server, that they did.
Now I can honestly say that I found the best SQL server benchmark tool. This sucker creams out just above ~105K sql statements per second on peak and ~15K per second for 1.5 second to read an order. 1.5 second to read less than 4 fucking kilobytes!
Right at that moment I released that our software would grind to an fucking halt before even thinking about starting it. And that me & myself and I would be tasked to fix it.
4 months later and two weeks until functional beta, here I am. We created our own api with the SQL server 😀
And the outcome of all this...
Fixes bugs older than a year, Forces rewriting part of code base. Forces removal of dirty fixes. allows proper unit and integration testing and even database testing with snapshot feature.
The whole ERP system could be replaced with ~10 lines of code (provided same relational structure) on the application while adding it to our own API library.
Best part is probably the performance improvements 😀. Up to 4500 times faster and 60 times less memory usage also with only managed memory.3 -
I've tried to give it many chances, but I just don't think Python will ever be for me. Even "quick and dirty" scripts are faster for me in a statically-typed language with static syntax checking and sensible code completion.8
-
So I work at a startup working on “cutting edge” technology with two other devs. Our lead engineer is an interesting fellow. The guy never ever writes a single line of code, just looks for similar projects online and receives a lot of credit for it, I have to hand it to him though, he has an ability to scheme through information and pick the gist of what’s going on but when it comes to detail, he’s seriously lacking. We recently started a projects a couple of weeks back and it was supposed to be an easy two days of hacking and we would be done but instead the guy looks for code online copies it I change the necessary variables to match the use case then it doesn’t work. So we’ve spent weeks debugging this code because someone is afraid to get their hands dirty. I can’t complain to the bosses because they’re not techies and the trust him more since I’m still new to the company.
I love their attitude though, they honestly believe they have a chance against some giants in tech and from the actual talent I’ve witnessed they’ll only get there through sheer luck.
I have to sit there and listen to them shit on more successful tech companies and that they have better ideas.
Maybe someone can change my mind on this issue as I’m still young and new to this industry.8 -
I want to quit. I don’t feel like writing code anymore. I feel burnt out. As fuck. People keep changing requirements leaving me to do the impossible. And honestly do their dirty work.2
-
Heck yeah,
So an old Ionic 3 project wont work on the newest CLI.
I check around for the error, update some dependencies, sure enough it starts working again, all is great or so I thought.
Later something weird starts happening, upon pushing a new view on the navCtrl, the navParams are null on the next view.
I later find out that navCtrl is becoming navParams just on the first bit of the view loading, so I do a dirty fix just to keep working on the functionality from my browser, I know very well this will cause problems later on, this is just so I can keep working on functionality.
I finish all of the functionality and I'm ready to compile for android, I run my script, the dirty fix comes to bite my butt now.
I remove the dirty fix hoping for it to work just well on the apk.
Now gradle doesn't find ddmlib.jar, some 15 minutes of troubleshooting do nothing.
Fuck it, I'll just create a new project from the CLI and drag all the code there so that navParams work as expected.
Sorry Ionic, but the world is not our oyster when subtle changes in dependencies produce such unexpected behaviour, with some fucking view parameters!.
I'm looking forward to get done with all the current projects to jump back to native.1 -
Story of my first successful project
Being part of a great team, I've shared in a lot of successes, one I am particularly proud of is my first attempt to use agile methodologies in a deeply waterfall-managment culture.
Time was June/July-ish and we applied for a national quality award where one key element in the application stated how well we handled customer complaint resolution.
While somewhat true (our customer service is the top-shelf good stuff), we did not have a systematic process in resolving customer complaints. Long story short,
the VP lied on her section of the application. Then came the 'emergency', borderline panic meeting (several VPs, managers, etc) to develop a process to better manage
complaints before the in-house inspection in December.
As most top priority projects go, the dev manager allocated 3 developers, 2 DBAs, and any/all network admins we would need (plus all the bureaucratic management that wanted their thumb in the pie).
Fast forward to August, after many, many planning meetings, lost interest, new shiny bouncing balls, I was the only one left on the project. The VP runs into the dev manager in the hallway and asks "Is my program done yet? If its not ready before December with report-able data, we will not win the award."
The <bleep> hit the fan...dev manager comes by...
Frank: "How the application coming along? Almost done?"
Me:"No, haven't really started coding. You moved Jake and Tom over to James's team, Tina quit, and you've had me sidetracked helping other teams because the DBAs are too busy."
Frank: "So, it's excuses. You really think the national quality award auditors care about your excuses? The specification design document has been done for months. This is unacceptable."
Me: "The VP finished up her section yesterday and according to the process, we can't start coding until the document is signed off."
Frank: "Holy f<bleep>ing sh<bleep>t! No one told you *you* couldn't start. You know how to create tables and write code."
Me: "There is no specification to write to. The design document is all about how they plan on reporting the data, not how call agents will be using the application to serve customers."
Frank: "The f<bleep> it isn't. F<bleep>ing monkeys could code against that specification, I helped write it! NO MORE F<bleep>ING EXCUSES! This is your top priority from now on!"
I was 'cleared' to work directly with the call center manager and the VP to develop a fully integrated customer complaint management system before December (by-passing any of the waterfall processes that would get in the way).
I had heard about this 'agile' stuff, attended a few conference tracks on the subject, read the manifesto, and thought "I could do this.".
Over the next month, I had my own 'sprints' and 'scrums' with the manager (at the time, 'agile' was a dirty word so I had to be careful of my words and what info I shared) and by the 2nd iteration had a working prototype.
Feature here, feature there (documenting the 'whys' and 'whats' along the way), and by October, had a full deployed application.
Not thinking I would get a parade or anything, the dev manager came back from a meeting where the VP was showing off the new app to the other VPs (and how she didn't really 'lie' on the application)
Frank: "Everyone is pleased how well the project turned out, except one thing. Erin said you bothered him too much with too many questions."
Me: "Bothered? Did he really say that?"
Frank: "No, not directly, but he said you would stop by his office every day to show him your progress and if he needed you to change anything. You shouldn't have done that."
Me: "Erin really seemed to like the continuous feedback. What we have now is very different than what we started with."
Frank: "Yes, probably because you kept bothering him and not following the specification document. That is why we spend so much time up front in design is so we don't waste management's time, which is exactly what you did."
Me: "We beat the deadline by two months, so I don't think I wasted anyone's time. In fact, this is kind of a big win for us, right?"
Frank: "Not really. There was breakdown in the process. We need better focus on the process, not in these one-hit-wonders."
End the end, the company won the award (mgmt team got to meet the vice president, yes the #2 guy). I know I played a very small, somewhat insignificant role in that victory, I was extremely proud to be part of the team. -
Sometimes my girl talks dirty to me. She says things like:
"I always use double equals in JavaScript"
And
"I don't leave comments in my code"2 -
So I am a Ruby guy since I don't now when. Probably forever. Lately I have to code Groovy. People are telling me all the time that Groovy is like Ruby. Let me tell you: No! Groovy is not like Ruby. Groovy is shitty Java with a slightly more usable syntax. Nothing more. It is so so tedious to code and reminds me why I stopped coding Java like 8 years ago. The fact that some features resemble Ruby syntax makes it even harder for me because I cannot code and facepalm at the same time. And I automatically type Ruby code all the time because it looks so similar in some places. I don't have that problem with other languages. Just Groovy. And the fact that Java people like it tells me how bad Java really is. It's just dirty. Guys, I feel so dirty now. And showering this morning didn't help. Had to get that off my chest. Thanks for "listening"9
-
Mozilla you stinking kangaroo pouches!
When you set an object's CSS translation via JS like so:
obj.style.transform="translate(0px,0px)";
and then read it back, every browser including FF until 66 gives this, with additional space:
"translate(0px, 0px)"
However, bloody FF 67 returns "translate(0px)". Because it's always a good idea to just introduce external changes nilly-willy, right?
That screwed up my crappy string slicing because it relied on the presence of the comma. It was a quick and dirty solution, but with additional future proof if/else logic, it wouldn't even be quick anymore.
Besides, the whole string slicing looked like yo-yo code anyway so that I instead added shadow integer variables to the objects. That solution not only works, but is even faster.10 -
CSRMESH QUALCOMM IS THE WORST!
I spent months still confused what their source code actually serves, it is so dirty and not even specific. They never update.
I should just go for Nordic instead.3 -
The beginning of my next blog post... at 6am.... Guess who hates his job and why?
<h1>Thinking Before You Code<h1>
The choices you make when you code a part of a program, or even the program itself, impacts everything around it. The importance increases as the size and the scope does.
Quick and dirty simple scripts that get a simple job done and rarely needs changing… fine.
A bunch of quick and dirty hacks all pieced together as part of a giant application... that constantly changes? That's duct tape code that will bite you in the ass later or will give birth to a maniacal raging psychopath that wants to kill you.
<b>SOLID, design patterns: saving yourself and others from you</b>
TBC...3 -
TLDR: Why the fuck is a senior developer creating multiple instances of a core piece of logic all over the fucking application?!?!?!?
Context: I am also a senior dev, and have worked with this guy for years. He has even completed me on my clean code practices and architecture, so I really cant understand why he would copy and paste a public class into 3 other models on the project instead of just referencing the original. I’m just posting this hear as my version of screaming into a pillow in frustration, and to avoid badmouthing him to co-workers.6 -
trying to refactor some code to implement a issue/feature on a ticket:
try option A. .... 2 hours later hit a Dead end.
try option B .... 1 day later.. another dead end.
try option B.2f ... I want to give up... wasting all my time...
Not sure what I'm suppose to do anymore..
It feels chaotic and dirty hacking to make it work.. and even now. I cannot get it to compile...
Only solution looks like Copy and paste a couple of classes and change one single variable. with huge preprocessor #if around them.
I need to take a shower I feel dirty now...1 -
Feel dirty writing in c. How do people even deal with unsafe pointer type casting/memory allocation/free? The codebase is plagued with memory leaks and there is no test.
I will just pretend I can't read c code and play dumb when shit happens13 -
When you’re laughing/cringing at some of these rants and you hear that little voice in the back of your head say:
“I shouldn’t be laughing.. Screenshots of my code will probably be posted here when the next guy takes over my project..”
I’ve written fast and dirty code back in the days that still makes me nervous, but we don’t have the time and resources for a rewrite and besides.. My code works, so.. 🤷🏻♂️💅🏻 -
Do you want to know why all the popular open source projects have less-than-optimal, sometimes really dirty code?
It's because their developers ditched all the unnecessary stuff to just get the damn thing done. When I choose an open source dependency, I don't need unfinished stuff. I need a stuff that works and has all the features I need from the very start. If it works, I don't care about code quality in my deps.
This is the reason why dirty, rushed stuff with a great idea behind it gains popularity. PHP, Git, jQuery, the list is quite large.
While you've been busy polishing your files hierarchy, these guys already shipped their product, gained adoption, and their userbase doesn't need your product anymore.
This is applicable only for true open source, not "it's developed by a full-time team of principal developers and the CTO is fucking Kent Beck, it costs $1m per month but yea we have it on github".3 -
So, the main system we develop and "maintain" is a horrible monolithic huge project that has the majority of the code in one and only one god class.
On top of that, all the main logic is implemented directly in the "main" method (yes, the "public static void main"). Now every time you have to create a method to use it in the main logic, it has to be static!
God, I hate to even look at this class, let alone touch it, I feel dirty, like I'm touching a pile of shit. -
When you have 5 hours on a task, struggle for the first hour procrastinating , second hour trying to look into the problem ,then convincing yourself you cannot work until this mess of a file is sorted out, spends another hour restructuring the whole file , adding comments and moving related logic together.
Great 2 hours to do a 5 hour job -
I am in no way a senior dev, in skill or compensation. I have completely inherited all rank and responsibility from all the folks who came before me and got canned.
For the last year, I have led and managed a team of juniors working on the only application making my company any money, while everyone else has been building new shit from scratch; every day my only two goals are to impart my team with as much knowledge as I possibly can give them, and to keep production from blowing up.
Until now, I've apparently kept everyone in the dark about the fact that I'm just skating by by "going with it" and able to google the answers just before they can ask the question. But now that the pandemic has hit, all future projects are put on hold indefinitely, and the company is pivoting all other devs under me. Now we have "true" seniors ripping the app apart and injecting code without thinking once to actually read the code base and analyze how the application was designed to work, because they are under orders from our serial entrepreneur of a CEO to "get it done, quick and dirty" and meanwhile as the app further destabilizes, the c-suite team looks to me.
So half the time I have no clue what I'm doing, but I can't let them know that. I mean at least I'm still gainfully employed, I still make way more than I ever did before in my life. I'm *reasonably* happy with what I do for a living. And if they can me, the company will be dead in the water, because I'm the only dev who understands intimately how to change the system and add new features without completely bricking it.
Am I doing it right, or nah?2 -
Powering off my Thinkpad so I can wipe the greasy SHEEN off of the keyboard / trackpad..
Wash hands, repeat.2 -
That feeling when you inherit a script to automate something that takes 10 seconds. Why would they even write this? It's not like the task is hard....
...
And why would they write it this way? I'm sure if I just move this part and ....
That feeling when you spend several hours improving and redesigning a perfectly functional script to automate a 10 second task for zero gain aside from cleaner code. "But the code for this quick-and-dirty script I'm never going to look at again looks so much better now!"
... If only it did a bunch of complicated parsing, regex matching, and error checking just so I can answer one less prompt.... Unless that parsing fails. Then it should still ask me for that prompt... And also validate that the answers I give are valid and correct....
That feeling when you spend a whole nother day starting from scratch to implement error checking and complex parsing logic knowing full well the original task takes 10 seconds to do manually and is needed at most twice a day (for a grand total of 20s a day)
WHY AM I LIKE THIS?!?!?!4 -
when the code works: that's f**king easy
when the code doesn't work: what the f**k is going on, you dirty piece of sh*t, you f**king computer, sh**y compiler.
oh, dear! I missed a semicolon1 -
Today I fought against a monster named as CSS and I sort of won.
I am having a problem in that the grid layout don't work with the scroll bar (overflow)
After hours of trying thing out I remember that I am just creating the prove of concept that the system can actually be build.
I said "Hey this is just a prototype, it doesn't need to be pixel perfect, and finally use height in css".
I really appreciate it if anyone can advise me on less dirty method. Here is the source code
https://jsfiddle.net/rc0f9t5j/
The input box should stay at the button no matter how much text the container have. The fiddle have the intended behavior.4 -
Every time I'm working on a task as soon as I need to write some hack, dirty code, that does work, but creates overhead in the run time performance or makes the project a mess. I stop and can't continue with this task...
it locks my mind and progress where after a while. I simply give up and do it anyway or give someone else the task.
How to deal with task that have no clean solution?1 -
Once again spent a day MacGyvering together all the missing pieces of the app for tomorrows presentation deadline. This time the code base is 95% good code and 5% of dirty hacks which are essential for the rest to function properly.
One day I'll enough time to finish a development cycle on time. One day... -
When you spent few hours to solve a problem and then restart the application as nothing worked but then you see that the problem is not anymore...
you're in the situation when you can't decide if should commit your dirty code changes or should revert them back.2 -
I have a habit to comment every single line of code, this helps comprehension but this dirty the code and everyone complain. Is it any way to do such task.6
-
Everyone wants some kind of super expertise but they don’t want to invest to allow people to become experts
I like incentive to learn large framework code that is os
And inventive to invest time to fix
And I think this should be finding that is added to an economy by a CB
Adding to the monetary expansion and contraction equation
The more improvements that work and are accepted
The more bugs that get fixed etc
The more people working on these projects the more money generated that they can spend to prop up their host economy
Of course you’d need some considerable oversight to prevent corruption and laundering or outright theft by dirty fucked up chomo whores pretending that work is there own and destroying people who are enthusiastic or happy like the garbage they are -
In a country, a long time ago there was a programmer by the name of Alex. He was a programming genius and apart from a few hours of sleep, he was busy developing unique programs for new generation technology firms. Alex was a bachelor and he happily and proudly lived the way he wanted to. He did not have duties, authority over him, bosses to report to, children to take care of, and distractions. He could sit and code for the entire day without getting any break or feeling a bit tired. However, he had no idea that everything in his life was soon going to turn around. Before Marriage: The Bachelor’s Life Alex was the epitome of a modern ‘Play Boy ‘ or every man’s dream. He was fairly dressed, had a classy house, a snazzy car, and a good-paying job. He was in the habit of spending his mornings drinking coffee while browsing through the different coding topics. He comes in the afternoon and spends the evening part of the day with his friends. Life has never been this good. Alex was able to work hard and the more he was innovative, he enjoyed it. It illustrates how a young person would sit for many hours coding at night and not bother about other people around him. He was alone as a bird and as per him, that’s what he wanted to be. He had no peer to tell the truth to, no wife to prepare meals for, no maids to babysit his mess. A man could chow down a pizza for breakfast, lunch, and supper with not even a raised eyebrow from onlookers. He was profiting from living the best life he possibly could. After Marriage: Married Life: Alex & Sarah The climax for Alex is when he marries Sarah on a sunny morning on a fine day. Young people met, and after becoming enamored, started a family and got married to find a new home. Sarah was friendly with people and it was very easy for her to make friends; however, she had little knowledge of technology. Alex had it in his mind that marriage does not change the life you lead and how wrong he was. It was a fairy-tale to have such a perfect life for several days after the marriage. Their nights would be spent in front of the television set with their arms wrapped around each other, eating takeout. Despite this, when the number of days stretched into weeks, and the weeks into months, Alex felt the beginning of a shift in his behavior. The Coding Cave That Transformed into A Home Office Due to the pandemic the coding cave Alex used to have became a home office. Sarah had made up her mind to open her business from home, therefore, she required a home office. Thus, she moved inside the cubicle that Alex had created as his coding cave and left him with no space to code. He now had to code in the living room, because Sarah would incessantly request him to either lower the auditory input of the keys he was typing or to switch off the LCD screen. The Once-Clean Apartment Turns into a Mess Alex was a neat freak, and he adored tidiness, especially in his apartment. But after marriage, his once clean and neat-looking apartment was changed into a dirty one. Although Sarah was not very neat, she used to litter her things anywhere she felt like without being conscious of it. Alex was a programmer and his coding notes were mixed with Sarah's business papers, it irritated him so much. Alex’s to-do list before marriage The to-do list before marriage only comprised coding-related tasks. At marriage, however, he seemed to have developed a longer list of things to do than ever before. Instead of just going to the grocery store to buy some food, Alex seemed to have endless tasks to do mostly around the house. He had to cook for himself, sweep the house, and wash the dishes among other things. This was a new world as far as he was concerned. The Pizza Days Are Over Gone there is no more time for Alex could eat pizza in the morning, afternoon as well and evening. Sarah was very conscious of what she took as food or what her family took as food and therefore ensured that Alex took healthy home-cooked foods. He could not have the pizza anymore but the meals prepared by Sarah were really tasty. Conclusion Therefore from a life before marriage to the life after marriage, it was evident that Alex led two different lives. He went from a playful man with not much responsibility to a man with more responsibilities as a husband and a father. Still, he wouldn’t have it any other way, despite these changes. Later he cherished Sarah and the life they had, and nothing in this world could make him exchange what he had now. Essentially, it was a tricky business being married, but a blessing, and an addition of love, company, and much hilarity too. Therefore, if you are a bachelor reading this, embrace your coding cave and your pizza days because once you utter the words ‘I do,’ all those will be things of the past.But trust me, it's all worth it.
-
!rant
Tldr check out http://guitarprohub.mrstebo.co.uk/
And ignore the stats on the first page. That is my next job to track downloads and searches 😄
I have never been taught how to "plan" projects, but with a small plan I managed to get this site running in about a 3 days (in between having to look after the kids!) only running on a free heroku instance for testing.
If anyone wants to get their hands dirty with the code then let me know. Not a pro at rails yet, but from the stats in new relic it seems to be running pretty quickly! Even with contacting an external site it was only taking 2ms to load a page of tabs!