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 - "bittersweet"
-
Some empty-headed helpdesk girl skipped into our office yesterday afternoon, despite the big scary warning signs glued to the door.
"Hey, when I log in on my phone, the menu is looking weird"
"Uh... look at my beard"
"What"
"Just look at this beard!"
"Uh.... OK"
"Does this look like a perfectly groomed beard"
"Uh... it's pretty nice I guess"
"You don't have to lie"
She looks puzzled: "OK... maybe it could use a little trimming. Uh... a lot of trimming". "I still like it though" she adds, trying hard to be polite.
"I understand you just started working here. But the beard... the beard should make it clear. See the office opposite to this one?"
"Yeah"
"Perfectly groomed ginger beards. It's all stylish shawls and smiles and spinach smoothies. Those people are known as frontend developers, they care about pixels and menus. Now look at my beard. It is dark and wild, it has some gray stress hairs, and if you take a deep breath it smells like dust and cognac mixed with the tears caused by failed deploys. Nothing personal, but I don't give a fuck what a menu looks like on your phone."
She looked around, and noticed the other 2 tired looking guys with unshaven hobo chins. To her credit, she pointed at the woman in the corner: "What about her, she doesn't seem to have a beard"
Yulia, 1.9m long muscled database admin from Ukraine, lets out a heavy sigh. "I do not know you well enough yet to show you where I grow my unkempt graying hairs... . Now get lost divchyna."
Helpdesk girl leaves the scene.
Joanna, machine learning dev, walks in: "I saw a confused blonde lost in the hallway, did you give her the beard speech?"
"Yeah" -- couldn't hold back a giggle -- "haha now she'll come to you"
Joanna: "No I already took care of it"
"How?"
"She started about some stupid menu, so I just told her to smell my cup". Joanna, functional alcoholic, is holding her 4pm Irish coffee. "I think this living up to our stereotype tactic is working, because the girl laughed and nodded like she understood, and ran off to the design department"
Me: "I do miss shaving though"68 -
Dear people who complain about spending a whole night to find a tiny syntax error; Every time I read one of your rants, I feel like a part of me dies.
As a developer, your job is to create elegant optimized rivers of data, to puzzle with interesting algorithmic problems, to craft beautiful mappings from user input to computer storage and back.
You should strive to write code like a Michelangelo, not like a house painter.
You're arguing about indentation or getting annoyed by a project with braces on the same line as the method name. You're struggling with semicolons, misplaced braces or wrongly spelled keywords.
You're bitching about the medium of your paint, about the hardness of the marble -- when you should be lamenting the absence of your muse or the struggle to capture the essence of elegance in your work.
In other words:
Fix your fucking mindset, and fix your fucking tools. Don't fucking rant about your tabs and spaces. Stop fucking screaming how your bloated swiss-army-knife text editor is soooo much better than a purpose-built IDE, if it fails to draw something red and obnoxious around your fuck ups.
Thanks.62 -
I had a secondary Gmail account with a really nice short nickname (from the early invite/alpha days), forwarded to another of my mailboxes. It had a weak password, leaked as part of one of the many database leaks.
Eventually I noticed some dude in Brazil started using my Gmail, and he changed the password — but I still got a copy of everything he did through the forwarding rule. I caught him bragging to a friend on how he cracked hashes and stole and sold email accounts and user details in bulk.
He used my account as his main email account. Over the years I saw more and more personal details getting through. Eventually I received a mail with a plaintext password... which he also used for a PayPal account, coupled to a Mastercard.
I used a local website to send him a giant expensive bouquet of flowers with a box of chocolates, using his own PayPal and the default shipping address.
I included a card:
"Congratulations on acquiring my Gmail account, even if I'm 7 years late. Thanks for letting me be such an integral part of your life, for letting me know who you are, what you buy, how much you earn, who your family and friends are and where you live. I've surprised your mother with a cruise ticket as you mentioned on Facebook how sorry you were that you forgot her birthday and couldn't buy her a nice present. She seems like a lovely woman. I've also made a $1000 donation in your name to the EFF, to celebrate our distant friendship"31 -
I hired a woman for senior quality assurance two weeks ago. Impressive resume, great interview, but I was met with some pseudo-sexist puzzled looks in the dev team.
Meeting today. Boss: "Why is the database cluster not working properly?"
Team devs: "We've tried diagnosing the problem, but we can't really find it. It keeps being under high load."
New QA: "It might have something to do with the way you developers write queries".
She pulls up a bunch of code examples with dozens of joins and orderings on unindexed columns, explains that you shouldn't call queries from within looping constructs, that it's smart to limit the data with constraints and aggregations, hints at where to actually place indexes, how not to drag the whole DB to the frontend and process it in VueJS, etc...
New QA: "I've already put the tasks for refactoring the queries in Asana"
I'm grinning, because finally... finally I'm not alone in my crusade anymore.
Boss: "Yeah but that's just that code quality nonsense Bittersweet always keeps nagging about. Why is the database not working? Can't we just add more thingies to the cluster? That would be easier than rewriting the code, right?"
Dev team: "Yes... yes. We could try a few more of these aws rds db.m4.10xlarge thingies. That will solve it."
QA looks pissed off, stands up: "No. These queries... they touch the database in so many places, and so violently, that it has to go to therapy. That's why it's down. It just can't take the abuse anymore. You could add more little brothers and sisters to the equation, but damn that would be cruel right? Not to mention that therapy isn't exactly cheap!"
Dev team looks annoyed at me. My boss looks even more annoyed at me. "You hired this one?"
I keep grinning, and I nod.
"I might have offered her a permanent contract"45 -
1. Buy boxes of orange juice, almost past their expiry date.
2. Put boxes on the hot office windowsill for a few weeks.
3. Cool down juice in fridge.
4. "Hey dear coworker, would you like a refreshing juice box on this hot spring day?"
5. Watch coworker retch and vomit, spitting blue-grayish juice over his desk, crying: "Why would you give me old moldy juice without checking the date?"
6. "Do you remember when you told me you didn't have time for unit tests? THIS IS WHAT HAPPENS, DAVE, THIS IS WHAT FUCKING HAPPENS WHEN YOU DEPLOY UNTESTED CODE.... NOW FINISH YOUR JUICE!"32 -
As a developer, sometimes you hammer away on some useless solo side project for a few weeks. Maybe a small game, a web interface for your home-built storage server, or an app to turn your living room lights on an off.
I often see these posts and graphs here about motivation, about a desire to conceive perfection. You want to create a self-hosted Spotify clone "but better", or you set out to make the best todo app for iOS ever written.
These rants and memes often highlight how you start with this incredible drive, how your code is perfectly clean when you begin. Then it all oscillates between states of panic and surprise, sweat, tears and euphoria, an end in a disillusioned stare at the tangled mess you created, to gather dust forever in some private repository.
Writing a physics engine from scratch was harder than you expected. You needed a lot of ugly code to get your admin panel working in Safari. Some other shiny idea came along, and you decided to bite, even though you feel a burning guilt about the ever growing pile of unfinished failures.
All I want to say is:
No time was lost.
This is how senior developers are born. You strengthen your brain, the calluses on your mind provide you with perseverance to solve problems. Even if (no, *especially* if) you gave up on your project.
Eventually, giving up is good, it's a sign of wisdom an flexibility to focus on the broader domain again.
One of the things I love about failures is how varied they tend to be, how they force you to start seeing overarching patterns.
You don't notice the things you take back from your failures, they slip back sticking to you, undetected.
You get intuitions for strengths and weaknesses in patterns. Whenever you're matching two sparse ordered indexed lists, there's this corner of your brain lighting up on how to do it efficiently. You realize it's not the ORMs which suck, it's the fundamental object-relational impedance mismatch existing in all languages which causes problems, and you feel your fingers tingling whenever you encounter its effects in the future, ready to dive in ever so slightly deeper.
You notice you can suddenly solve completely abstract data problems using the pathfinding logic from your failed game. You realize you can use vector calculations from your physics engine to compare similarities in psychological behavior. You never understood trigonometry in high school, but while building a a deficient robotic Arduino abomination it suddenly started making sense.
You're building intuitions, continuously. These intuitions are grooves which become deeper each time you encounter fundamental patterns. The more variation in environments and topics you expose yourself to, the more permanent these associations become.
Failure is inconsequential, failure even deserves respect, failure builds intuition about patterns. Every single epiphany about similarity in patterns is an incredible victory.
Please, for the love of code...
Start and fail as many projects as you can.30 -
My 80 year old very absent minded dad made a website, all by himself, using a two decades old book he got from the thrift store.
He's even hosting it himself on an old laptop running Debian, including a redirect to a beautiful nostalgic /~username/index.htm url (not gonna share the link, because his personal details are on there).
The whole site is incredibly carefully crafted, and I'm super proud of him.
Who cares if it's not a React app? The 14 kilobytes of HTML 4.0 markup load in 20-30ms, and it renders pretty much perfectly in every browser including Internet Explorer 4 and Edge.
🤷♂❤️36 -
Pro tip: If you are a junior, or senior but new at the company, don't start your conversations with:
"We're doing X wrong. At my previous company we did / at school I learned /in this book I read / according to this talk I watched, the right way to do X is ..."
Instead try:
"I'm curious why were doing X this way. I'm used to doing it differently."
I love flat-hierarchy teams, and people who think about flaws in procedures and proactively try to improve the tools we use are awesome, but the next kid walking up to me yelling we use git flow "wrong" will be smacked in the face with a keyboard.
If you come to me with curiosity and an open mind, I'll explain, and even return the favor by behaving the same way when I'm baffled by your seemingly retarded implementations.
Maybe we can learn from each other, maybe discover that "how I learned it" is sometimes good, sometimes bad.
But let's start with some social skills, not kicking off into every debate with a stretched leg and a red face.23 -
A super creepy webcrawler I built with a friend in Haskell. It uses social media, various reverse image searches from images and strategically picked video/gif frames, image EXIF data, user names, location data, etc to cross reference everything there is to know about someone. It builds weighted graphs in a database over time, trying to verify information through multiple pathways — although most searches are completed in seconds.
I originally built it for two reasons: Manager walks into the office for a meeting, and during the meeting I could ask him how his ski holiday with his wife and kids was, or casually mention how much I would like to learn his favorite hobby.
The other reason was porn of course.
I put further development in the freezer because it's already too creepy. I'd run it on some porn gif, and after a long search it had built a graph pointing to a residence in rural Russia with pictures of a local volleyball club.
To imagine that intelligence agencies probably have much better gathering tools is so insane to think about.53 -
Boss: "I don't want to comply with the GDPR"
Me, DPO: "I've told you the house rules. You must comply, stop arguing"
Boss: "But I don't want it. Bobby doesn't have to, and Eve doesn't have to, their moms are cool"
Me: "I don't give a crap about the other kids, you're going to be GDPR compliant. Bob and Eve will end up being raped in prison. It's that what you want?"
Boss: "What if I just pretend to do it."
Me: "I'll take away all your marketing toys. No more mailchimp for you young man."
Boss, crying: "You wouldn't touch my Facebook pixel!"
Me: "Especially your Facebook pixel. I'm so sick of that thing...."
Me: "...Look, you can still play with your toys, all I'm saying is you need to be honest and ask your buddies for consent before you put your pixels up their various holes"
Boss: "But they will never agree!"
Me: "Maybe that is good thing"
Boss: "But how will we get people to like us if I can't feed them pills and insert probes into their holes to measure their responses?"
Me: "Maybe you should focus on being a nice kid, someone people like to play with. Your buddies will tell other kids that you're a nice guy. Now, I'm not going to lie to you, it will be hard work. Much more effort than what you're doing now. But you know, those friends will stick with you for decades, instead of just until the marketing-drugs wear off"
Boss: "I think I want a new mom"
Me: "You signed a contract. You're stuck with me for the next 2 years. And as long as you're living under my roof, you will follow my rules."14 -
Github stats:
coworker 1: 3,535k ++ 987k --
coworker 2: 1,563k ++ 735k --
etc.
me: 453k ++ 7,848k --
I guess this confirms my job at the company as "Backend Crap Remover".7 -
1. The quality of the coffee and toilet paper you encounter during an interview tells you more than promises about table tennis or fruit baskets.
2. Try to determine who their primary client is: subscribers, app buyers, advertisers, etc. It's a major influence on the company dynamic.
3. Before an interview, you can just say: "I would like to sit down with a PO and run through one backlog feature and one bug, to get a feel for the type of tasks at the company". Such an activity immediately reveals team structure, whether they have product owners & scrum masters, what a sprint looks like, how they prioritize tasks, and how organized/chaotic your work experience will be.16 -
Boss: "Could you join the new DevOps team for a week or two, for some coaching?"
Me: "I'd rather watch you masturbate furiously in a corner of the office while you cry over your ex boyfriend"
Boss: "Yeah... that's why I ask you. You are the only one brave enough to watch"
Me: *Sigh* "But I don't know shit about what DevOps does, I'm a DBA. I've told you the difference a million times. Can't we just douse it in gasoline and set it on fire?"
Boss: "What?"
Me: "Not the team, the servers..."
Boss, imitating Gimli: "And my ex!"
Me: "I get why he left you"
Boss: "It's funny, he was actually better with computers than me, maybe even better than you. He hated me for starting this company, told me I was just chasing money instead of ideals. He just isn't grown up enough to see that there is more to the world than computer games, brewing beer, maker festivals and gay bars, that you need to take responsibility... Maybe it just never works out between managers and geeks..."
Me: "Indeed. The difference in competence is too large"
Boss: "Ugh. You are like straight version of him... but will you at least take a look?"
Me: "Fine, unzip your pants..."
Boss: "No, not that... you need to teach DevOps this docking thing, with the parallel stuff, and the horizontal growth"
Me: "Damn I really hope we're talking about servers now... Do you mean Docker?"
Boss: "That's it. They want to learn how to dock on the Windows servers. They reserved two 4xlarge on AWS. Is that enough for docking?"
Me: ...
Me: ...
Me: "You know what. I'm going back to hug my DB designs, and wash my brain with some queries. Then I'll return here to burn everything to the ground. There is no hope for you left"
Boss: "That's what he said"
Me: "You're using that meme wrong"
Boss: "OK. So what if you just stay on DB management, and I'll just give you the budget to recruit a new DevOps lead and pay for training?"
Me: "That would work"
Boss: "Why are you grinning?"
Me: "Because I have your ex's phone number"18 -
Customer at a first meeting:
- "Didn't realize you're a developer, you're almost good looking!"
Never got a more bittersweet compliment.20 -
Uncle: "It must be noisy, programming. I've seen a datacenter on TV, and those computers are loud" — "It is noisy, but that's more my coworkers fault"
Sales guy at the office: "So you see patterns in the code, you can read this cryptic mess?" — "Uh this is PHP, Its not the syntax that makes it hard to read, it's the dimwit who wrote it"
Father-in-law: "Could you reprogram my laptop, I got a virus trying to download por... nature documentaries" — "I'm not that kind of doctor"
Mother-in-law: "How will you sustain a family, you just play video games all day" — "I make your monthly teachers salary in four days"
Girlfriend: "I learned some Lua today because I needed a world of warcraft extension for..." — "I love you too"22 -
Meeting with asshole partner company CEO at restaurant.
Me: "I'm a bit worried about the bugs in your API. There are some ways to retrieve privacy sensitive info from public endpoints"
CEO: "Well, we're a rapidly growing startup!"
Me: "Uh... so?"
CEO: "So... Move Fast and Break Things! Priority is to improve our API further, and we'll fix bugs as they show up"
Me: "Maybe you should stop trying to emulate Zuckerberg in your management style. You know that even Facebook themselves admitted that their slogan was a retarded mistake"
Waiter shows up at table. CEO orders some overly expensive fish salad.
CEO: "Well, they have done something right... they're worth billions"
Waiter asks me: "And you sir, have you made your choice?"
Me: "Do you serve popcorn?"
CEO: "Popcorn for lunch?"
Me: "No, for your congressional hearing"16 -
Fuck today was weird.
Today I received almost half a million on my bank account. 😯
Someone changed the ancient cryptic billing system. My user account at work has id 32 in the database, and the dev referenced the size of the creditor id instead of the of the value of the ids itself, and they're u32 ints... So ALL the money moving through our platform was accidentally transferred to my associated bank account.
For all the unit tests we have, this bug tumbled right through.
And no one at finances thought a transfer that big, to a backend dev they know by name, was suspicious — with almost no money going to other creditors...
That worries me a bit. The fact that this shit can happen, even at high test coverage, just because someone mindlessly did a wrong autocomplete or something.
Of course I will send it back... after two weeks and a few hundred € of interest.12 -
Sales employee Bob wants a clickable blue button.
Bob tells product owner Karen about his unstoppable desire for clickable blue buttons.
Karen assigns points for potential and impact (how much does a blue button improve Bob's life, how many people like Bob desire blue buttons)
Karen asks the button team how hard it is to build a button. The button team compares the request to a reference button they've built before, and gives an ease score, with higher score being easier (inverse of scrum points).
These three scores are combined to give a priority score. The global buttonbacklog is sorted by priority.
Once every two weeks (a "sprint") the button team convenes, uses the ease scores to assign scrum points. Difficult tasks are broken up into smaller tasks, because there is a scrum point upper limit. They use the average of the last 5 sprints to calculate each developer's "velocity".
The sprint is filled with tasks, from the top of the global button backlog, up to the team's capacity as determined by velocity. Approximate due dates are assigned, Bob is a happy Bob.
What if boss Peter runs into the office screaming "OUR IMPORTANT CLIENT WANTS A FUCKING PINK BUTTON WHICH MAKES HEARTS APPEAR"?
Devs tell boss to shut the fuck up and talk to Karen. Karen has a carefully curated list of button building tasks sorted by priority, can sedate boss with valium so he calms the fuck down until he can make a case for the impact and potential of his pink button.
Karen might agree that Peter's pink button gets a higher priority than Bob's blue button.
But devs are nocturnal creatures, easily disturbed when approached by humans, their natural rhythms thrown out of balance.
So the sprint is "locked", and Peter's pink button appears at the top of the global backlog, from where it flows into the next sprint.
On rare occasions a sprint is broken open, for example when Karen realizes that all of the end users will commit suicide if they don't have a pink heart-spawning button.
In such an event, Peter must make Bob happy (because Bob is crying that his blue button is delayed). And Peter must make the button team of devs happy.
This usually leads to a ritual involving chocolate or even hardware gift certificates to restore balance to the dev ecosystem.23 -
We had a Commodore64. My dad used to be an electrical engineer and had programs on it for calculations, but sometimes I was allowed to play games on it.
When my mother passed away (late 80s, I was 7), I closed up completely. I didn't speak, locked myself into my room, skipped school to read in the library. My dad was a lovely caring man, but he was suffering from a mental disease, so he couldn't really handle the situation either.
A few weeks after the funeral, on my birthday, the C64 was set up in my bedroom, with the "programmers reference guide" on my desk. I stayed up late every night to read it and try the examples, thought about those programs while in school. I memorized the addresses of the sound and sprite buffers, learnt how programs were managed in memory and stored on the casette.
I worked on my own games, got lost in the stories I was writing, mostly scifi/fantasy RPGs. I bought 2764 eproms and soldered custom cartridges so I could store my finished work safely.
When I was 12 my dad disappeared, was found, and hospitalized with lost memory. I slipped through the cracks of child protection, felt responsible to take care of the house and pay the bills. After a year I got picked up and placed in foster care in a strict Christian family who disallowed the use of computers.
I ran away when I was 13, rented a student apartment using my orphanage checks (about €800/m), got a bunch of new and recycled computers on which I installed Debian, and learnt many new programming languages (C/C++, Haskell, JS, PHP, etc). My apartment mates joked about the 12 CRT monitors in my room, but I loved playing around with experimental networking setups. I tried to keep a low profile and attended high school, often faking my dad's signatures.
After a little over a year I was picked up by child protection again. My dad was living on his own again, partly recovered, and in front of a judge he agreed to be provisory legal guardian, despite his condition. I was ruled to be legally an adult at the age of 15, and got to keep living in the student flat (nation-wide foster parent shortage played a role).
OK, so this sounds like a sobstory. It isn't. I fondly remember my mom, my dad is doing pretty well, enjoying his old age together with an nice woman in some communal landhouse place.
I had a bit of a downturn from age 18-22 or so, lots of drugs and partying. Maybe I just needed to do that. I never finished any school (not even high school), but managed to build a relatively good career. My mom was a biochemist and left me a lot of books, and I started out as lab analyst for a pharma company, later went into phytogenetics, then aerospace (QA/NDT), and later back to pure programming again.
Computers helped me through a tough childhood.
They awakened a passion for creative writing, for math, for science as a whole. I'm a bit messed up, a bit of a survivalist, but currently quite happy and content with my life.
I try to keep reminding people around me, especially those who have just become parents, that you might feel like your kids need a perfect childhood, worrying about social development, dragging them to soccer matches and expensive schools...
But the most important part is to just love them, even if (or especially when) life is harsh and imperfect. Show them you love them with small gestures, and give their dreams the chance to flourish using any of the little resources you have available.22 -
Coworker wrote a nice package and put it on Github, to share with other departments.
I link his package on our company Slack, mentioning a team, with text "What do you think of this one? Is it usable for you guys?"
Next thing I know I have to explain to an executive why I'm "posting pictures of seductive cartoon girls in company chat with disrespectful commentary"
It linked the Github profile picture of the developer in Slack. A fully clothed anime girl, nothing particularly lewd about it.
But I like stabbing back a bit, and confusing the fuck out of people in suits:
"Hate to say it, but a good majority of all the code the company runs on, is written by people known as weebs, who use their so called waifus as their GitHub profile picture. It is very common for open source Javascript packages, but since we recruited 50 extra devs it now also happens internally. It's not my thing either sir, but I'm afraid we have to embrace it... "
"But what about our female devs? What about Joanna, she's in your team? We have to think of diversity! Our investors are really in to diversity, we can't have a bro culture!"
"Sir, with all due respect, we have super diverse teams without even trying. The problem is... they're all millennials. They grew up on weird memes... and are probably ten steps further in embracing diversity compared to the rest of the company."
"Also, Joanna is the one who drew this particular picture. She's charging a €15 commission for profile pictures... Do you want one of your fursona, sir?"
"What is that?"
"Uh... nevermind. Let's... let's not go there"48 -
"The most important skill in life is mitigating frustrations, but please don't get good at it — your suffering is hilarious"
— Girlfriend, while I was trying to fix her CPU cooler.
I realized immediately she just explained why this community exists.7 -
First world problems...
I've been working at this startup as a tech lead for a little over a year, and we've grown from 3 to over 150 employees, and a bit over a million end users.
I've spent tens of thousands on high end displays and chairs for your lazy butts, on external consultants to help and train you, even those fucking dirty recruiters have leeched their shares of the pie. I built an amazing luxury kitchen with a fridge, beer cooler, induction plates and a blender for all your crossfitting bodybuilder meals, but forgot to think of my own needs.
NOW I JUST WANT TO BUY A GOOD COFFEEMAKER AND ALL THESE FUCKING TEASLURPING FAKE DEV-BROS SUDDENLY START SCREAMING ABOUT BUDGETS AND HOW COFFEE IS NOT NECESSARY IF YOU MEDITATE. FUCK YOU, WE'RE LIKE THE ONLY STARTUP IN THE COUNTRY RUNNING A FAT PROFIT. I DON'T CARE ABOUT YOUR STUPID MINDFULNESS IOS APP. GIVE ME MY FUCKING ESPRESSO OR I'LL BLEND YOUR BALLS INTO A PROTEIN SHAKE.25 -
My mom never touched a PC or smartphone. Well, most people didn't back then, because it was the early 90s.
But I brought a borrowed SNES to the hospital and taught her to blow on the Zelda cartridge if it didn't work. She died after we finished the game.
After that my dad bought me a commodore 64, the machine that taught me about electronics and programming, and molded me into who I am today.
On the first date with my girlfriend (now 12y together) we just sat talking for hours in her room, playing Zelda on her SNES taking turns, and I told her my mom would have liked her.14 -
When you stare into git, git stares back.
It's fucking infinite.
Me 2 years ago:
"uh was it git fetch or git pull?"
Me 1 year ago:
"Look, I printed these 5 git commands on a laptop sticker, this is all I need for my workflow! branch, pull, commit, merge, push! Git is easy!"
Me now:
"Hold my beer, I'll just do git format-patch -k --stdout HEAD..feature -- script.js | git am -3 -k to steal that file from your branch, then git rebase master && git rebase -i HEAD~$(git rev-list --count master..HEAD) to clean up the commit messages, and a git branch --merged | grep -v "\*" | xargs -n 1 git branch -d to clean up the branches, oh lets see how many words you've added with git diff --word-diff=porcelain | grep -e '^+[^+]' | wc -w, hmm maybe I should alias some of this stuff..."
Do you have any git tricks/favorites which you use so often that you've aliased them?50 -
"Let's do some pair programming! It will be fun!"
... Fuck no.
Either I start coding and you open a beer, or the other way around. And sure, I do not mind doing each other's code reviews. I respect your feedback.
But I can't look over your shoulder while you misspell keywords. When I write code, I search, try, debug and play at a high speed.
I'm an impressionist/surrealist writing messy passionate functions, breaking lots of things with broad paintbrush strokes before finishing it into detailed perfection. I remember all the places in the code I need to work on, and cover everything with tests.
You're a baroque coder, sometimes even a hyperrealist, with your two-finger 10 wpm typing, writing code strictly line-by-line, decorating every statement with the right checks & typehints in advance. You can not keep two functions in your head at the same time. You write tests reluctantly, but you hate that I barely plan. You plan everything, including your pee breaks.
As a coworker I respect you.
But there is no bigger hell than pair programming with you.14 -
Me: "We should remove that popup"
Marketer: "But our A/B testing statistics show a 14% increase in signups to our newsletter, and people who get our newsletter are 4% more likely to buy something"
Me: "0.14x0.04... so slightly more than half a percent improvement. And you also qualitatively measured how many people decide to never visit the page again, just because of that popup? Did you measure the how many internet users with adblockers run into a broken webpage? Did you measure the amount of emails to support from users who can't unsubscribe from the newsletter because there is no unsubscribe link?"
Marketer: "Why would they want to unsubscribe? The newsletter adds value to our users!"
Me: 😩26 -
Machine learning... might enslave us all in a few years, but for now it mostly just paints nice images. ("Devrant Avatar repainted in Expressionist style")19
-
FUCK this startup mentality of implementing all these external services and APIs for absolutely fucking everything.
I get that your vacuous fresh-mint-tea-soaked hipster brains are all cheering about these "only $10/month/seat" services, because you imbeciles with your nodejs-sticker-plastered macbooks have never done anything but knot the work of other dimwits together.
I don't even care about the subscription costs. That shit is more trouble to maintain than writing it yourself, and there's no guarantee that visualizemyballs.com & lintmycock.io still work tomorrow.
I'm getting so sick of being barraged with 502 bad gateway errors because you halfassed yet another API implementation. Stop advertising your crossfit stats, your meditation-app records and your vegan protein bars for a minute, and maybe start writing some fucking code of your own, something with a higher shelf-life than your iPhone screen...
You know... something which actually fucking adds value to the world.15 -
My mom died when I was 7, after which my dad bought me a Commodore 64 so I had something to lose myself in during the mourning process.
I learned everything about that system, from my first GOTO statement to sprite buffers, to soldering my own EPROM cartridges. My dad didn't deal with the loss so well, and became a missing person 5 years later when I was 12.
I got into foster care with a bunch of strict religious cultists who wouldn't allow electronics in the house.
So I ran away at 14, sub-rented a closet in a student apartment using my orphan benefits and bought a secondhand IBM computer. I spent about 16 hours a day learning about BSD and Linux, C, C++, Fortran, ADA, Haskell, Livescript and even more awful things like Visual Basic, ASP, Windows NT, and Active Directory.
I faked my ID (back then it was just a laminated sheet of paper), and got a job at 15-pretending-to-be-17 at one of the first ISPs in my country. I wrote the firmware and admin panel for their router, full of shitty CGI-bin ASP code and vulnerabilities.
That somehow got me into a job at Microsoft, building the MS Office language pack for my country, and as an official "conflict resolver" for their shitty version control system. Yes, they had fulltime people employed just to resolve VCS conflicts.
After that I worked at Arianespace (X-ray NDT, visualizing/tagging dicom scans, image recognition of faulty propellant tank welds), and after that I switched to biotech, first phytogenetics, then immunology, then pharmacokynetics.
In between I have grown & synthesized and sold large quantities of recreational drugs, taken care of some big felines, got a pilot license, taught IT at an elementary school, renovated a house, and procreated.
A lot of it was to prove myself to the world -- prove that a nearly-broke-orphan-high-school-dropout could succeed at life.
But hey, now I work for a "startup", so I guess I failed after all.23 -
So, you start with a PHP website.
Nah, no hating on PHP here, this is not about language design or performance or strict type systems...
This is about architecture.
No backend web framework, just "plain PHP".
Well, I can deal with that. As long as there is some consistency, I wouldn't even mind maintaining a PHP4 site with Y2K-era HTML4 and zero Javascript.
That sounds like fucking paradise to me right now. 😍
But no, of course it was updated to PHP7, using Laravel, and a main.js file was created. GREAT.... right? Yes. Sure. Totally cool. Gotta stay with the times. But there's still remnants of that ancient framework-less website underneath. So we enter an era of Laravel + Blade templates, with a little sprinkle of raw imported PHP files here and there.
Fine. Ancient PHP + Laravel + Blade + main.js + bootstrap.css. Whatever. I can still handle this. 🤨
But then the Frontend hipsters swoosh back their shawls, sip from their caramel lattes, and start whining: "We want React! We want SPA! No more BootstrapCSS, we're going to launch our own suite of SASS styles! IT'S BETTER".
OK, so we create REST endpoints, and the little monkeys who spend their time animating spinners to cover up all the XHR fuckups are satisfied. But they only care about the top most visited pages, so we ALSO need to keep our Blade templated HTML. We now have about 200 SPA/REST routes, and about 350 classic PHP/Blade pages.
So we enter the Era of Ancient PHP + Laravel + Blade + main.js + bootstrap.css + hipster.sass + REST + React + SPA 😑
Now the Backend grizzlies wake from their hibernation, growling: We have nearly 25 million lines of PHP! Monoliths are evil! Did you know Netflix uses microservices? If we break everything into tiny chunks of code, all our problems will be solved! Let's use DDD! Let's use messaging pipelines! Let's use caching! Let's use big data! Let's use search indexes!... Good right? Sure. Whatever.
OK, so we enter the Era of Ancient PHP + Laravel + Blade + main.js + bootstrap.css + hipster.sass + REST + React + SPA + Redis + RabbitMQ + Cassandra + Elastic 😫
Our monolith starts pooping out little microservices. Some polished pieces turn into pretty little gems... but the obese monolith keeps swelling as well, while simultaneously pooping out more and more little ugly turds at an ever faster rate.
Management rushes in: "Forget about frontend and microservices! We need a desktop app! We need mobile apps! I read in a magazine that the era of the web is over!"
OK, so we enter the Era of Ancient PHP + Laravel + Blade + main.js + bootstrap.css + hipster.sass + REST + GraphQL + React + SPA + Redis + RabbitMQ + Google pub/sub + Neo4J + Cassandra + Elastic + UWP + Android + iOS 😠
"Do you have a monolith or microservices" -- "Yes"
"Which database do you use" -- "Yes"
"Which API standard do you follow" -- "Yes"
"Do you use a CI/building service?" -- "Yes, 3"
"Which Laravel version do you use?" -- "Nine" -- "What, Laravel 9, that isn't even out yet?" -- "No, nine different versions, depends on the services"
"Besides PHP, do you use any Python, Ruby, NodeJS, C#, Golang, or Java?" -- "Not OR, AND. So that's a yes. And bash. Oh and Perl. Oh... and a bit of LUA I think?"
2% of pages are still served by raw, framework-less PHP.32 -
Coworker in my team recently said to boss:
"Thanks, this conversation with you has taught me so much about single-threaded blocking I/O"
Some random PR comments from our company's repository:
"Are you insured? I hope you are insured"
"Learning git is not that difficult. You only need one command: git reset --hard"
*Link to amazon for dog poop bags*
"Please clean up your shit, before I step in it"
"Have you thought about a career in sales? At least there you might sell your bullshit"2 -
The way 90% of the population wears their face masks really explains a lot about their approach to using software, apps & websites as well.
I feel like giving up.
I am not a developer for the salary, or just to solve analytical puzzles. Those are motivators, but my main drive is to make the world more comfortable and enjoyable, better optimized, build ethical services which bring happiness into people's lives. I want to improve society, even if it's just a tiny bit.
But if users invest absolutely zero percent of their limited brain capacity into understanding a product that already has a super-clean design and responds with helpful validation messages...
...why the fuck bother.
I used to think of the gap between technology and tech-incompetent people as an optimization problem.
As something which could be fixed by spending a fortune on UX research. Write tests, hire QA employees, decrease tech debt, create a bold but unified & simple design.
But the technologically incompetent just get more entitled with every small thing you simplify.
It's never fucking fool-proof enough.
Why can't I upload a 220MB PDF as profile picture? Why doesn't the app install on my 9 year old Android Froyo phone? Why can't I sign up if my phone number contains a  U+FFFC? Why does this page load so slowly from my rural concrete bunker in East Ukraine? WHY DO I HAVE PNEUMONIA, HOW DID I GET INFECTED EVEN THOUGH I WAS WEARING A MOUTH MASK ON MY FOREHEAD?
This is why I ran away from Frontend, to Backend, to DBA.
If I could remove myself further from the end user, I would.
At least I still have a full glass of tawny port and a huge database which needs to be normalized & migrated.
Fuck humans, I'm going to hug a server.25 -
Meeting with smooth suit guy:
"So, our company has pivoted"
I hate everything about this guy, not having slept well at all, I fucking snapped:
"Pivoted? Oh wow, what a wonderfully refined word to describe that your asinine business model smacked flat into the mud, that your obtuse bubble of vague ideas popped and your childish dreams of piles of undeserved gold got caught up by the hard reality that your product does not add any tangible value -- yet you tricked your sheepish retarded investors once again to fall for a new hype-filled pitch deck? Congratulations. At least you probably snort enough coke to keep believing in yourself..."
The guy nervously wiped his nose, stuttered, and walked off looking angry and a little confused.
So it turns out, my boss is apparently the major "sheepish retarded investor" in this company.
Today I got a mail from him. I expected fire and fury, nuclear ICBMs crashing into my desk.
"Thanks for your feedback, this is why I invite you to meetings. Could you take a look at their new pitch slides and preliminary API docs for me?"15 -
So I told my wife one week ago: "Yeah, you should totally learn to code as well!"
Yesterday a package arrived, containing a really beautiful hardcover book bound in leather, with a gold foil image of a snake debossed into the cover, with the text "In the face of ambiguity -- Refuse the temptation to guess" on it.
Well, OK, that's weird.
My wife snatches it and says: "I had that custom made by a book binder". I flip through it. It contains the Python 3.9 language reference, and the PEP 8 styleguide.
While I usually dislike paper dev books because they become outdated over time, I'm perplexed by this one, because of how much effort and craftsmanship went in to it. I'm even a little jealous.
So, this morning I was putting dishes into the dishwasher, and she says: "Please let me do that". I ask: "Am I doing anything wrong?"
Wife responds: "Well, it's not necessarily wrong, I mean, it works, doesn't it? But your methods aren't very pythonic. Your conventions aren't elegant at all". I don't think I've heard anyone say the word "pythonic" to me in over a decade.
And just now my wife was looking over my shoulder as I was debugging some lower level Rust code filled with network buffers and hex literals, and she says: "Pffffff unbelievable, I thought you were a senior developer. That code is really bad, there are way too many abbreviated things. Readability counts! I bet if you used Python, your code would actually work!"
I think I might have released something really evil upon the world.29 -
1. Have some issue with my code which spits out cryptic compiler error.
2. Ask on stack overflow, Reddit, etc for a solution.
3. Get scolded at for "not reading the documentation" and "asking questions which could be answered by just Googling". Still no clue what I'm doing wrong, or what the solution would be.
4. Find someone else's vaguely related problem.
5. Post my problematic code as the answer, with arrogant comment about OP being a retard for not figuring that out for themselves.
6. A dozen angry toxic nerds flock in to tell me how retarded and wrong I am, correcting me... solving my original problem.
7. Evil plan succeeded, my code compiles, and as a bonus I made the internet a worse place in the process.
I think if you tell a bunch of autistic neckbeards that "all coronaviruses are fundamentally incurable", you'd have a vaccine within a week.15 -
Three days ago I wrote a comment:
"It's weird how the internet shifted from protocols to platforms.
Devs still know the plumbing, but for most people IRC became Whatsapp, FTP became Dropbox, RTSP became Netflix, SIP became Zoom and RSS became Google Now... so people might eventually forget about SMTP and this whole "email" hype.
In a decade or two we'll have forgotten about URLs and HTTP and the "internet" as well. You just pay your monthly $10 sub to Google or Amazon or Apple to have your condensed streams of memes & bait funneled right into your eyeballs."
And now Chrome devs are considering removing URLs just like in Safari, just showing the domain you are on....
Enjoy your retard web, people.
What's next, new Macbook & Chromebook standardized designs to prevent people from being confused?43 -
"Let's go for the low hanging fruit first" 🤢
"I think we should do some market research" 🤢
"Yeah that is also on my radar" 🤢
OKAY YOU FUCKING CUNT, STOP WITH YOUR PATRONIZING SHIT.
FIRST OF ALL, ARE YOU REALLY SO SMALL MINDED THAT YOU CAN'T REACH ANY HIGHER? THIS TREE IS FUCKING RAW AMD BARE ON THE BOTTOM, WITH YOUR FILTHY CLAWS GRASPING FOR ALL THOSE EASY NARROW FIXES.
SECONDLY, A FUCKING EMAIL SURVEY WITH BIASED QUESTIONS ANSWERED BY 3 HOBOS IS NOT BLOODY MARKET RESEARCH.
THIRDLY, IF THIS NUCLEAR ICBM OF AN INFRASTRUCTURE PROBLEM IS ON YOUR RADAR, MAYBE STOP FONDLING YOUR SWEATY BALLS FOR A MINUTE AND TAKE ACTION.
"Okay lets peel this onion, so we hit the ground running" 😩🤢😞
NO, LET'S NOT "HIT THE GROUND RUNNING", YOU'RE GOING TO FUCKING TRIP AND MESS UP YOUR FACE EVEN MORE. HOW ABOUT GET YOUR PILE OF SHIT IN ORDER FOR ONCE, PREPARE FOR A MEETING? HOW ABOUT THOUGHTFUL ACTION, SOME FEATURE DESIGN?
"No, just implement it quick and dirty" 🤢😡👿
OH YOU WANT IT QUICK AND DIRTY? IS THAT HOW YOU FUCK YOUR DAD AS WELL?
"Let's evaluate the fix in a few weeks. We really had good synergy here team" 🤢😫
YEAH SURE, LET'S EVALUATE THIS.... BUT LET'S EVALUATE IT RIGHT NOW: 😡
"Ahem....
1. You're always late for meetings.
2. After 6 months, you still barely know what we do as a company, you still don't know the teams, and you still don't know the product.
3. You do not listen to engineers flooding you with red flags, requiring time for a redesign to fix serious scaling issues.
4. Everything must be a quickfix, nothing is allowed to require thought, because you CAN ABSOLUTELY NOT think ahead for more than 30 seconds.
OH AND IF YOU EVER AGAIN COVER UP ONE OF YOUR MANY SHORTCOMINGS WITH THAT FUCKING SLIMEY DOUCHEBAG MANAGER VOCABULARY OF YOURS, LET'S SEE HOW MUCH SYNERGY YOU FEEL WHEN YOU'RE DEEPTHROATHING A CACTUS."18 -
Client: "Do you think we could finish specs in week 33, see a demo in week 35, and aim for the product to be finished in week 39?"
I jump on the conference room table, rip the shirt off my sweaty chest, and yell:
"WEEKS OF WHAT? 31 WEEKS SINCE YOU BECAME A CLIENT, 35 WEEKS FROM NOW, 39 WEEKS INTO THE PREGNANCY? BLOODY FUCKING HELL MAN, DO YOU HAVE TO TALK LIKE A RETARD?"
Client, unfazed: "Weeks since the start of the year, sir"
Me, swinging my pants above my head like a lasso:
"WHAT THE FUCK KIND OF SNOWFLAKE ARE YOU, YOU REALLY EXPECT ME TO COUNT THE WEEKS SINCE THE START OF THE YEAR? WHAT ABOUT JUST USING DAY OF THE MONTH YOU OBNOXIOUS DIMWIT?"
Client: "We always use weeks at our company to plan things"
Me, winding the legs of my pants around the neck of the client:
"I HATE IT WHEN PEOPLE USE WEEKNUMBERS, JAKE. I. FUCKING. HATE. IT."
Client, still pretending everything is fine: "If you want I could send you a screenshot of my outlook calendar?"
Me, sitting in underpants on the client's back, sweaty legs wrapped around his waist, trying to pull out his gel-infested manager-hair while strangling him with my pants:
"TIME OF DEATH, UNIX TIMESTAMP 1595240810, ISO 8601 DATE 2020-07-20T10:26:50+00:00. ANOTHER PROJECT SUCCESSFULLY WRAPPED UP"
(parts of this story may have been dramatized to reflect my underlying emotions)30 -
The project where I realized I wanted to go from chemist to pro dev.
I built a flow-chemistry spectrometer with monitoring backend in Haskell.
Spectroscopy is where you add a reagent to a glass tube, it changes color, and by measuring the exact color it tells you how much of something (for example, a toxin) is present in the sample.
I had to do that a lot on factory samples, writing down measurements using pen & paper.
I'm lazy so I decided to do the logical thing: Automate it. I bought a second hand spectrometer, stripped the casing, did a shitload of glassblowing and hooked up tubes to the production pipelines, so I could get samples, mixing them in the correct ratio with reagents in continuous flows using valves.
I ended up using 2 home-crafted arduino-like boards (etching PCBs is fun!).
One to calibrate the mixture against known samples and control solenoid valves to continuously cycle through various reagents and deionized flushing water, the other to record the measurements and send them to a server running a Haskell/Yesod API.
The server collected the information into InfluxDB (A time series database), displaying all data on a graphite dashboard.
Eventually I wrote Haskell plugins for most of the chemistry processes, from pH & temperature measurements to polymer property and pigment tests (they made a lot of printer ink).
Then I was fired because they didn't need chemists anymore, and the code "could be maintained by the intern" (poor guy)...
But I did find out that I loved functional programming, chemistry automation projects, and crafting my own electronics during that time.16 -
To all the people giving advice in my previous rant (https://devrant.com/rants/1627035/...), thanks!
I've spent a weekend running high and naked through the forest, and decided to quit my job.
Fuck PHP. Fuck Laravel. Fuck hipster startup companies. Rasmus Lerdorf, Taylor Otwell and my CEO can all go suck each other's cocks in a sloppy mess of saliva, cum and type errors.
I'm so sick of spinach smoothies and weakly typed languages. All active record ORMs are retarded, VueJS is worse than JQuery, Fatal error: Call to a member function iHatePHP() on null. WHY DOES PHP EVEN HAVE METAPROGAMMING METHODS, WHY THE FUCK DOES LARAVEL CHOOSE EASY OVER SAFE.
I'm going to use my heavily abused Macbook to surf out of this mess, on a collapsing wave of unresolved bugs.
On to the next PHP/Laravel job at a hipster startup!26 -
"Is my presence still required?"
5 magic words which serve as a free escape out of every endless meeting, while telling your boss how ambitious you are, and your coworkers that their tangential discussions are boring as fuck.6 -
Shittiest rant of the week. Winter isn't the happiest time of the year to begin with, and now you're reminding 40k devs that they have no friends.13
-
Really want to get shit done today.
Lets browse Spotify for 3 hours to find good focus music.
Spend 2 hours designing a new IDE color theme and inspections which should really help me do code reviews faster
Oh, lunch time!
Maybe after lunch I should read some random clickbait blog posts on organizational paradigms.
...
And now I'm stranded on devRant. 😫13 -
CEO "If you make costs to build a home office for covid, please be aware that you can fully declare your bills, and you'll retain ownership over the ordered goods. Please all buy some good desk chairs and keyboards, so you can work ergonomically"
6 months later, CFO: "Bittersweet, why did you try to declare €35000? What are these invoices even? Concrete rebar?"
Me: "CEO told us to build a home office. I got permits from the town to dig a souterrain layer under my house. This is just for the foundation, the bills for drainage pumps, sheetpiling, geothermal heat exchangers, insulation, flooring, electricity and of course desk & chair will follow later"
CFO: 😳
(To be fair, I really did make those costs, but was just trolling by uploading all the material bills)15 -
Me: Optimize a sort & match method in backend because users complain it's a bit slow.
Coworker: These algorithms are both O(n), so they're identical *closes PR*
Me: *start zoom call* "Heeeeeeeeeey Iiiiiiiiiii wouuuuuuuld liiiiiiiiike toooooo diiiiiisscuuuuus thaaaaaaaat puuuuuuulllll reeeeeequuuueeest yooooouuuuu cloooooossseeeed"
Coworker: "wtf are you doing, why are you talking so slow"
Me: "No matter whether I talk fast or slow, the information still reaches you in O(n) time, so why are you complaining"
I fucking hate it when people misunderstand the purpose of (or abuse) big O notation. It's an estimate of how an algorithm SCALES once the set increases in size, in which case you leave out both less significant terms and constant factors.
But those terms and factors are important when you're talking about the DIRECT PERFORMANCE of the algorithm on fixed-size sets, instead of SCALING to larger sets.
1n and 10n are both O(n), but 10x performance on a job that used to take 10 minutes is still significant.19 -
The GET /users endpoint will return a page of the first 13 users by default.
To request other pages, add |-separated querystring with the limit and offset, as roman numerals enclosed in double quotation marks. Response status is always equal to 200, plus the total count of the resource, or zero when there's an error.
You can include an array of friends of the user in the result by setting the request header "friends" to the base64-encoded value of the single white pixel png.
Other metadata is not included by default in responses, but can be requested by appending ?meta.json to any endpoint, which will return an xml response.
If you want to update the user's profile picture, you can request an OAuth token per fax machine, followed by a pigeon POST capsule containing a filename and a rolled up Polaroid picture. The status code attached to the return postal dove will be the decimal ASCII code for a happy smiley on success, and a sad smiley if any field fails form validation.
-- Every single external REST API I've ever worked with.7 -
*Romantic candlelit dinner*
GF: "What are you thinking about, my love?"
Me: "The chocolate custard always seems to behave differently under stress than vanilla. It has a lower base viscosity, but a similar shear thickening. I was wondering whether anyone has ever made a database of all custard brands and flavors together with their viscosities"
My brain: *Oh fuck, that's not what I'm supposed to say during a romantic dinner*
GF: "Do you wanna check whether we can find a cheap second hand viscometer.... wait.... no.... you'd need a rheometer for that, right? Do you think we could build one ourselves?"
Me: *blinks in awe*
Even after 15 years, I'm still just puzzled, she really fucking is my soulmate22 -
Maintain your LinkedIn, write little articles about implementations on a tech blog, check issues on popular github projects and make PRs, create a portfolio website. Register as a company and do some freelance work, even if it's just a cheap website for your grandma's knitting club.
Do the tour/tutorial of every popular language/framework. Learn the basics of react/vue as a backend dev, learn some sql as a frontend dev. Set up a vps server at DO or AWS, host a few small services. Fullstack is bullshit, but communication is key in development, which means you need to know about the whole playing field.
Recruiters can be useful, but knowing developers in your area is even more valuable. So especially if you're unemployed, go to hackathons, conferences and meetups.4 -
Git makes it easy to search through historical changes they said. Git is amazing when working in teams they said.
It sure is.
If your coworkers do not commit every time they burp or fart, do not use "🚀" or "✨" or "fix" as a commit message, and do not push all their shitty experimental broken branches without cleaning up.
I'm surprised there are no piles of fecal matter behind their desk chairs.16 -
My wife is a (semi-)pro gamer, so the only way it affects our dating is that I have to help her write LUA addons, performance analytics and Twitch bots.18
-
"Coding is solving puzzles".
I think everyone has heard that platitude. But it's not exactly right.
So I grew up in a very poor environment, a moldy building full of jobless addicts.
And in my town there was this shop where super poor parents could take their kids to borrow free toys and stuff.
So as a kid I remember being frustrated by these second hand jigsaw puzzles, because there were always a few pieces which had been teared up or chewed on, or were even completely missing.
That is what development is.
You pull in this seemingly awesome composer package, and that one super useful method is declared private, so you need to fork the whole thing.
Your coworker has built this great microservice in python, but instead of returning 404 not found, it returns 200 with json key/value saying "error": "not found".
There's a shitload of nicely designed templates for the company website, but half of them have container divs inside the components, the other half expect to be wrapped in container divs when included.
You're solving puzzles, but your peers are all brainless jigsaw-piece-chewers. They tried to mend a problem, but half way through got distracted, hungry and angry, started drooling over the task and used a hammer to fit in the remaining stuff.11 -
Our current designer is convinced that 00FF44 bright green fits well with the rest of our soft purple/blue color scheme.
I am not a designer, but have worked in a color laboratory, so I've tried time and time again to explain CIE LAB color space, and how at least HCL is a good way to pick & group colors into palettes by using 2-3 luminances for equidistant hues while keeping chroma constant.
I've tried to tell him that the bright green almost physically makes my eyes bleed, because humans are quite sensitive to greens.
He just keeps using the phrase "but it makes the buttons pop nicely".
I just want to pop his skull open with my keyboard. 😫11 -
Clickbait will never change.
It's the most stable and constant source of mild annoyance.
2019 internet:
"These 3 programming languages will net you the highest salary"
"Ten home improvement tips using nothing but recycled underwear"
"How to cut onions like a real chef"
2020 internet:
"3 programming languages to learn while being bored in self-quarantine"
"Ten ways to use underwear as facemasks during the pandemic"
"Onions might cure corona, click here to learn how to cut them"
2030 internet:
"These 3 programming languages will increase your chances of survival in the wastelands"
"Ten ways to patch up your shelter against radioactive ashes using old underpants"
"Hydroponic onions are a good source of nutrients. Here's how you cut them with your camping knife"13 -
Me: Sitting in beanbag chair in development office, using closed macbook as a plate for a large walnut-brie-honey-rucola sandwich, honey dripping all over the aluminium top.
New manager (well, he's pretty old, but newly hired): "I don't think you're allowed to eat near the computers"
Me: "And I don't think you're allowed in my dev cave".
*Put macbook to the side*
*push him out of the office*
*close sliding door*
*close blinds*
*sit in beanbag chair*
*eat sandwich*
*lick honey from macbook*
I'm sorry, coworkers. Two weeks of writing MySQL queries made me a bit feral.9 -
I think I'm going to delete my account.
I browsed through my personal feed, and even though I've spend some time curating, only about 1 in a 100 is a real rant. The rest are memes, mildly funny observations, the kind of programmer humor which is only funny to non-programmers, and bland anekdotes.
And when I post something IN ALL CAPS WITH SOME FUCKING CURSEWORDS AND RAGE IN THERE YOU CUNTS ALL TELL ME TO CALM DOWN AND BE MORE POSITIVE?
What kind of a weak, smoothieslurping mindfulness convention has this community become? Do you guys just want to be a mildly funny reddit clone for easily offended hipsters?
This place was my outlet, my venting space, the spot where I didn't feel alone in frustrations.
I find this new content fucking sickening.56 -
Bob?
Yeah?
Bob, could you hand me that paperclip?
Sure mate!
Thanks.
Oh... Bob?
Uhhh... yeah?
Could you also hand me that paperclip?
Right... sure, of course.
Thanks.
Bob?
What?
Could you also hand me the next paperclip?
Fuck off, why don't I just give you the whole fucking box!
Yeah Bob, please, throw the whole fucking box.
Wait, is that a printed screenshot of my code you're attaching the paperclips to?
It sure is, Bob.16 -
Do you ever feel coding fatigue?
My dev mana has run dry, I've hit my rate limit.
That moment where your brain thinks "I should finish building this React project, it's good for my portfolio" or "I should really work on fixing this query performance issue, I already know what the problem is" — but your stomach churns at the thought of having to interpret even a single line of code?
The last few days it really does feel like a physical illness, a nauseated feeling whenever I open an IDE. I have written about 12 lines of code since Monday.
It goes beyond writer's block, it's not a lack of focus or inspiration, it's a big knot in my head of everything that's wrong and inconsistent in development, and it causes feelings of dread, desperation and revulsion when trying to wrap my head around the simplest stuff.
Does anyone have good tips to overcome this feeling, something faster and less savings-account-destroying than "take a sabbatical year and travel the world riding an emu"? (seems tempting though)57 -
Dear Microsoft,
Thanks for not completely fucking up Github. At least you didn't integrate Office365, allow only Azure deployments, or force downloading repos through OneDrive or something.
But like most developers, I don't deal well with changes to familiar interfaces.
So please.... STOP FUCKING TWEAKING THE BUTTON PLACEMENTS AND TEXTS ALL OVER THE WEBSITE.
(or at least send me a bottle of cognac and a box of chocolates before every UI experiment, so I can deal with it emotionally. I'm a very sensitive boy, you know).21 -
I sometimes correct people's PRs from under the shower or from the toilet, but my favorite place to code are in the dune forests (Netherlands).
Most unusual place would be operating room at the hospital though, getting my leg/foot bugfixed after a car accident. I asked the surgeon if it was OK if I brought my phone in, to distract myself, so I went through some code cleanup tasks.3 -
1. I join a company.
2. I get deeply involved in "how to run the company", and get nice compliments from both coworkers & management about my skills in conveying startup/scaleup advice & necessities to upper management.
3. With my ego inflated through all the sweet talk, I think "ah, what the hell, let's do this again", and I accept a Lead/CTO promotion. I have to join board meetings, write reports on quarterly plans and progress.
4. I get unhappy/stressed/burned-out because I really just want to be a developer, not a manager/executive.
5. Upper management understands, I give up my lead position, lock myself back into my coding cave.
6. I get annoyed because the requirements I receive become more and more disconnected from reality, half of the teams seem to have decided to stop using agile/scrum, the testing pipeline breaks all the time, I get an updated labor contract from HR by mail which smells like charred flesh, etc
7. The annoyances become too much to do ANY work. I yell at the other devs outside of the entrance of my cave. There is no answer, only a few painful moans and sighs.
8. I emerge from my cave. The city has turned into a desolate wasteland. The office is a burning ruin, the air sharp and heavy with black soot. Disemboweled corpses of developers litter the poisoned soil.
Product Managers dressed in stained ripped suits scream at each other while they try to reinforce concrete barricades with scotch tape and post-its. *THUMP* Something enormous is trying to break through. "Thank God, bittersweet, you're still alive! The stakeholders! They have mutated! We couldn't meet the promised deadlines! We've lost the whole mobile app department, and that kid there is the last of the backenders and he's only an intern! You're here to save us, right? RIGHT?".
In the corner, between the overflowing coffee machine and a withered cactus, a young boy has collapsed onto the floor. His face is covered in moldy coffee grounds, clasping on to his closed macbook for dear life, wide-open eyes staring into the void, mumbling: "didn't backup the database, and It's all gone" over and over.
A severely dented black Tesla with a dragging loose bumper breaks through the dried up vertical herb garden and the smoothiebar, and comes to a halt against the beanbags in a big cloud of styrofoam balls.
The CEO limps out, leaking blood all over the upholstery. He yells to the COO: "The datacenter is completely flooded with sewage! I saved the backup tapes though", holding a large nest of tangled black magnetic tape mixed with clumps of mud above his head.
9. I collect my outstanding salary and sell any rewarded options/shares for a low dumping price, take a 5 month holiday, and ask a recruiter about opportunities in a different city.14 -
Shopping for fridge with sister in law.
"Yeah that one is nice but it doesn't have an app"
"Why do you need an app for your fridge"
"I don't know, but this other fridge has an app, so I think if it doesn't have an app it's not that good"
"But it's very energy-efficient, silent and spacious. The one with the app is the same size, has a worse energy rating, is noisier and is more expensive as well"
"Yeah I know but if there's no extra features that's kind of boring"
"You are everything that's wrong with modern consumers"28 -
Every day.
I am a PHP developer.
Yeah, "another PHP is awful" rant... no, not really.
It's just unsuitable for some ambitious projects, just like Ruby and Python are.
First of all, DO NOT EVER use Laravel for large enterprise applications. The same goes for RoR, Django, and other ActiveRecord MVCs.
They are all neat frameworks for writing a todo app, as a better-than-wordpress flexible blogging solution, even as a custom webshop.
Beyond 50k daily users, Active Record becomes hell due to it's lazy fat querying habits. At more than a million users... *depressed sigh*.
PHP is also completely unsuitable for projects beyond 5M lines of code in my opinion. At more than 25M lines... *another depressed sigh*.
You can let your devs read Clean Code and books about architecture patterns, you can teach them about SOLID & DRY, you can write thousands of tests... it doesn't matter.
PHP is scaffolding, it's made of bamboo and rope. It's not brick or concrete. You can build quickly, but it only scales up to a certain point before it breaks in multiple places.
Eventually you run into patterns where even 100% test coverage still doesn't guarantee shit, because the real-life edge cases are just too complex and numerous.
When you're working on a multi-party invoicing system with adapters for various tax codes, or an availability/planning system working across timezones, or systems which implement geographical routefinding coupled to traffic, event & weather prediction...
PHP, Python, Ruby, etc are just missing types.
Every day I run into bugs which could have been prevented if you could use ADTs in a generic way in PHP. PHP7 has pretty good typehints, and they prevent a lot of messy behavior, but they aren't composable. There is no way to tell PHP "this method accepts a Collection of Users", or "this methods returns maybe either an Apple or a Pear, and I want to force the caller to handle both Apple/Pear and null".
Well, you could do that, but it requires a lot of custom classes and trickery, and you have to rewrite the same logic if you want to typehint a "Collection of Departments" instead of "Collection of Users" -- i.e., it's not composable.
Probably the biggest issue is that languages with a (mostly) structural type system (Haskell, Rust, even C#/JVM languages to some degree, etc) are much slower to develop in for the "startup" era of a project, so you grab a weak, quick prototyping language to get started.
Then, when you reach a more grown up phase, you wish you had a better type system at your disposal...28 -
My employer keeps sending booze to our houses.
Officially meant for coronaproof zoom social meetings where they play stupid bingo games and quizzes on Friday afternoons.
Why they're sending 2 liter bottles of Rum, 3 bottles of rosé wine and 12 cans of craft beer for the 6th week in a row... I really don't know... I don't even attend the zoom meetings.
All I know is that during breakfast, rum is better mixed into coffee than through cornflakes.
Anyway... Why was this a rant again? Oh right. Can I sue my employer for baiting me into an addiction? 🤔42 -
1. Humans perform best if they have ownership over a slice of responsibility. Find roles and positions within the company which give you energy. Being "just another intern/junior" is unacceptable, you must strive to be head of photography, chief of data security, master of updating packages, whatever makes you want to jump out of bed in the morning. Management has only one metric to perform on, only one right to exist: Coaching people to find their optimal role. Productivity and growth will inevitably emerge if you do what you love. — Boss at current company
2. Don't jump to the newest technology just because it's popular or shiny. Don't cling to old technology just because it's proven. — Team lead at the Arianespace contractor I worked for.
4. "Developing a product you wouldn't like to use as an end user, is unsustainable. You can try to convince yourself and others that cancer is great for weight loss, but you're still gonna die if you don't try to cure it. You can keep ignoring the disease here to fill your wallet for a while, but it's worse for your health than smoking a pack of cigs a day." — my team supervisor, heavy smoker, and possibly the only sane person at Microsoft.
5. Never trust documentation, never trust comments, never trust untested code, never trust tests, never trust commit messages, never trust bug reports, never trust numbered lists or graphs without clearly labeled axes. You never know what is missing from them, what was redacted away. — Coworker at current company.9 -
Best: "If an AI could replace your job at this company but we would keep you on the payroll, what would you do with your time?"
Worst: "So, you are here for the position of front-end SQL developer?"6 -
A recruiter just invited me to Christmas dinner at her home to "discuss some business opportunities", so there's that.29
-
Watch 3 videos about iOS/Swift on YouTube, and now I'm getting a frontpage full of recordings of app development events and iPhone reviews.
Listen to one kpop track on Spotify out of curiosity, and now the recommendation playlist is polluted with music I really don't like.
If we are going to hand our balls to AI and expect it to be a glorious fondling fest, don't cry if it suddenly realizes "nuts? aren't those supposed to be cracked?".
I mean what's fucking next? Where will this "smart" shit end up?
I accidentally click on a my little pony meme, and amazon will drone-strike me with 500 gallons of glitter? I drunkenly mumble "OK google how do kangaroos fuck" in the back of a self-driving Uber, I'm going to be dropped off in a shady alley and raped by a dozen walibis?
STOP FUCKING TRYING TO UNDERSTAND ME, INTERNET. I JUST WANT TO FUCKING USE YOU, NOT BE USED BY YOU, THIS WASN'T THE DEAL.
If you truly understood me, internet, I would probably not even give a fuck about privacy. But you are all building these profiles wrong.
You don't understand that I might be interested in juggling tricks today, tomorrow it might be all about crocheting a wool sweater for my penis, and the day after that I'm curious how many corpses it would take to fill up an olympic swimming pool.
NO I'M NOT ACTUALLY INTERESTED IN THAT QUORA, STOP SENDING ME RECOMMENDATION EMAILS ON HIDING MURDER VICTIMS, MY BOSS WILL THINK I'M WEIRD.
Yeah of course I could pulls some plugs, anonymize the shit out of my online life. I respect those who manage to just say "Fuck you Google, I'm sick of your shit, I'm going cold turkey".
But these platforms are feeding us heroin-laced candy.
All your coworkers friends and family with their oled-lit zombiefaces, staring at tiny screens, all absent-mindedly grasping your ankles whispering "aww take one more hit with us, check out this funny youtube clip, let me send it to you on whatsapp.... what you don't have whatsapp? You deleted your facebook? don't you love grandma anymore? Why do you hate your family?"
Before you know it, you watched ten episodes about cultivating cactuses, have a year subscription to brilliant, skillshare, squarespace and 3 different organic foodboxes are delivered to your door, Netflix is spamming you about a cupcake baking show, and you're thinking about same-day delivery for a baseball bat so you can just beat the crap out of every pretty glass display you see.
I want to break up with you, Internet.
I love you, but I hate you.
Since you passed 2.0, you have grown into a manipulative bitch.
I just don't know if I'm strong enough. It's all "let's just be friends" with you, but I know you'll be trying to reel me back in.
Before I know it, you're feeding me cookies once again, and I'll end up balls deep with your trackers stuck to my dick.21 -
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 -
My boss isn't really a developer. He isn't part of the development team and doesn't know any technical details about the product. He doesn't want to code, "too much effort", he just wants to boss. But he wrote some php in the early 2000's and is really, really proud of his codecademy html/css badge...
And that makes him dangerous.
Today I hear him talk from behind his laptop: "Right, we have this page for creating management groups, but we can't edit them yet. I can fix that!"
This task is literally on the current sprint, but he doesn't know that because he doesn't attend scrum meetings and ignores everything people say to him.
Me: This smells like probable cause, let's look with suspicion over his shoulder.
Boss:
"OK, right-click create.blade.php -> copy.
then right-click directory -> paste.
now just rename file to edit.blade.php!"
I start walking to the office kitchen.
Boss mumbling in the background:
"Now all I need to do is just copy the whole method in the controller, change the post url in the form, and modify the <h4> at the top, so it says edit instead of create."
Boss, looking at me now:
"This is so easy... creating and editing is almost the same thing, you can just copy paste all the code from one template to the other! I don't understand what you developers are always complaining about!"
Me: *Hands him a roll of paper towels*
Boss: "What is that for?"
Me: *points at code*6 -
To be a good developer, you must thrive in chaos, and have an insatiable desire to turn it into order.
All user input, both work tasks and actual application input, is pure fucking chaos.
The only way to turn that input into anything usable, is to interpret, structure and categorize it, to describe the rules for transformation as adequately as you can.
Sometimes companies create semi-helpful roles to assist you with this process. Often, these people are so unaware of the delicacy of the existing chaos, that any decision they make just ripples out in waves leaving nearly irreparable confusion and destruction in its path.
So applications themselves also slowly wear down into chaos under pressure of chaotic steak-holders which never seem to be able to choose between peppercorn or bernaise sauce for their steaks.
Features are added, data is migrated between formats, rules become unclear. Is ketchup even fucking valid, as a steak sauce?
The only way to preserve an application long term, is refactoring chaos into order.
But... the ocean of chaos will never end.
You must learn to swim in it.
All you can hope to do is create little pools of clarity where new creative ideas can freely spawn.
Ideas which will no doubt end up polluting their own environment, but that's a problem for tomorrow.
So you must learn to deal with the infinite stream of perplexed reactions from those who can't attach screenshots to issue reports.
You must deflect dragging conversations from those who never quite manage to translate gut feeling into rational sentences.
You must learn to deal with the fact that in reality there are no true microservice backends. There are no clean React frontends. There are no normalized databases. Full test coverage, well-executed retrospectives, finished sprints -- they are all as real as spherical cows in a vacuum.
There is no such thing as clean code.
There is only "relatively cleaner code", and even then there are arguments as to why it would be "subjectively relatively cleaner code".
Every repository, every product, every team and every company is an amalgamation of half-implemented ideals, well-intended tug of war games, and brilliantly shattered dreams.
You will encounter fragmented shards of perfect APIs, miles of tangled barbed documentation, beheaded validator classes, bloody mangled corpses of analytical dashboards, crumbled concrete databases.
You must be able to breathe in those thick toxic clouds of rotting technical and procedural debt, look at your reflection in the locker room mirror while you struggle yourself into a hazmat suit, and think:
"Fuck yes, I was born for this job".24 -
Not one feature.
All analytics systems in general.
Whether it's implementing some tracking script, or building a custom backend for it.
So called "growth hackers" will hate me for this, but I find the results from analytics tools absolutely useless.
I don't subscribe to this whole "data driven" way of doing things, because when you dig down, the data is almost always wrong.
We removed a table view in favor of a tile overview because the majority seemed to use it. Small detail: The tiles were default (bias!), and the table didn't render well on mobile, but when speaking to users they told us they actually liked the table better — we just had to fix it.
Nokia almost went under because of this. Their analytics tools showed them that people loved solid dependable feature phones and hated the slow as fuck smartphones with bad touchscreens — the reality was that people hated details about smartphones, but loved the concept.
Analytics are biased.
They tell dangerous lies.
Did you really have zero Android/Firefox users, or do those users use blocking extensions?
Did people really like page B, or was A's design better except for the incessant crashing?
If a feature increased signups, did you also look at churn? Did you just create a bait marketing campaign with a sudden peak which scares away loyal customers?
The opinions and feelings of users are not objective and easily classifiable, they're fuzzy and detailed with lots of asterisks.
Invite 10 random people to use your product in exchange for a gift coupon, and film them interacting & commenting on usability.
I promise you, those ten people will provide better data than your JS snippet can drag out of a million users.
This talk is pretty great, go watch it:
https://go.ted.com/CyNo6 -
Fuck you, devs who quote Knuth:
"Premature optimization is the root of all evil"
I agree with the spirit of the quote. I agree that long-winded arguments comparing microsecond differences in performance between looping or matching constructs in a language syntax is almost always nonsense. Slightly slower code can even be preferable if it's significantly clearer, safer and easier to maintain.
But, two fucking points need to be made to you lazy quickfix hipsters trying to sell your undercooked spaghetti code as "al dente", just fucking admit that you had no clue what you were doing.
So here we go:
1. If you write neat correct code in one go, you don't need to spend time to optimize it. Takes time to learn the right patterns, but will save you time during the rest of your career.
2. If you quote Knuth, at least provide the context: "We should forget about small efficiencies, say about 97% of the time [...] Yet we should not pass up our opportunities in that critical 3%"
YES THAT CRITICAL 3% IS WHERE YOU MESSED UP.
I'll forgive you for disgorging your codevomit into this silly PR.
BUT YOU'RE QUOTING KNUTH IN YOUR DEFENSE?
Premature optimization is the root of all evil... 6300 SQL queries to show a little aggregate graph on the dashboard... HE WOULD FUCKING SLAP YOUR KEYBOARD IN HALF IN YOUR FACE.3 -
Taught by managers who are too eager to hold "meetings which could have been emails", developers have now fully succumbed to holding "webinars which could have been a readme".7
-
Considerations when looking for a tech video course:
5%: Does it have good ratings
5%: Is it priced reasonably
90%: Does the narrator have a smooth soothing voice with an intonation which keeps me dreamy & enchanted, yet with an energized articulation, like a cup of Jasmin tea with clover honey on a dreary Sunday afternoon.
The content may be very good, but if I have to sit through 30 hours of material, you better tickle my ears the right way.10 -
"Why did you bring Wagyu beef to the meeting?"
"Because the calendar description said: Engineers should proactively add value for our steak holders"
(True story -- They told me to do what management instructs, without correcting anyone and without asking questions. And I love playing that game!)6 -
Filled with rage
Click new rant in browser
Rant until I run out of characters
Hands have not experienced such fatigue since puberty
Death-grip my mouse
Trembling, aiming for the big red Post button
10 pixels too low
Fuck10 -
Languages without a fully implemented type system.
Granted, it has been a fad for a quarter century, but everything points at one simple fact: Types matter in programming.
In dynamic languages, you tend to see that testing suites explode into thousands of tests, many of which wouldn't even be necessary if you had some type safety.
You see that languages like JS are forked into more typesafe dialects, like Typescript. Python got typehints since 3.6, and PHP added typehints for methods, then typehints for properties, and will soon even have compound types.
Maybe most languages will never reach the level of Haskell or Scala, and that's totally fine, but I think the direction languages are moving in is pretty much set in stone: No ambiguity, more safety. Code should fail before deploying, not after.36 -
To replace humans with robots, because human beings are complete shit at everything they do.
I am a chemist. My alignment is not lawful good. I've produced lots of drugs. Mostly just drugs against illnesses. Mostly.
But whatever my alignment or contribution to the world as a chemist... Human chemists are just fucking terrible at their job. Not for a lack of trying, biological beings just suck at it.
Suiting up for a biosafety level lab costs time. Meatbags fuck up very often, especially when tired. Humans whine when they get acid in their face, or when they have to pour and inhale carcinogenic substances. They also work imprecisely and inaccurately, even after thousands of hours of training and practice.
Weaklings! Robots are superior!
So I replaced my coworkers with expensive flow chemistry setups with probes and solenoid fluid valves. I replaced others with CUDA simulations.
First at a pharma production & research lab, then at a genetics lab, then at an Industrial R&D lab.
Many were even replaced by Raspberry Pi's with two servos and a PH meter attached, and I broke open second hand Fischer Sci spectrophotometers to attach arduinos with WiFi boards.
The issue was that after every little overzealous weekend project, I made myself less necessary as well.
So I jumped into the infinitely deep shitpool called webdev.
App & web development is kind of comfortable, there's always one more thing to do, but there's no pressure where failure leads to fatalities (I think? Wait... do I still care?).
Super chill, if it weren't for the delusion that making people do "frontend" and "fullstack" labor isn't a gross violation of the Geneva Convention.
Quickly recognizing that I actually don't want to be tortured and suffer from nerve damage caused by VueX or have my organs slowly liquefied by the radiation from some insane transpiling centrifuge, I did what any sane person would do.
Get as far away from the potential frontend blast radius as possible, hide in a concrete bunker.
So I became a data engineer / database admin.
That's where I'm quarantining now, safely hiding from humanity behind a desk, employed to write a MySQL migration or two, setting up Redis sorted sets, adding a field to an Elastic index. That takes care of generating cognac and LSD money.
But honestly.... I actually spend most of my time these days contributing to open source repositories, especially writing & maintaining Rust libraries.10 -
Gf, shouting: why are you using my premium shampoo and hairdryer on your keycaps?
Me: because just like your haircut, they were unnecessarily expensive, they embody all my self worth, and deserve to be shiny and clean.
Gf, pondering: ... Could you clean my keyboard next?4 -
Licensing is so freaking weird and stupid.
I mean, I just forked this repo with an Apache license, so I could update a .json file.
"You must cause any modified files to carry prominent notices stating that You changed the files"
Plain JSON allows no comments.
I'm going to jail.30 -
Me: *listening to some random semi-obscure track on spotify, liking it, add it to playlist*
Come home, girlfriend playing the same track. "Yeah I've had that in my playlist for two weeks now". Our accounts are not linked in any way, and I only use Spotify on a PC at work, while my girlfriend only uses it at home.
It might just be coincidence, or us having similar tastes.
But the issue is that it's getting more and more difficult to know whether me and my girl are spiritually linked unique snowflake soulmates who are so perfectly in sync with each other, or whether an algorithm suggestively linked us both that song based on scraped location and behavior data.
And whether it matters. Maybe it matters. I don't know yet.
In twenty years maybe humans will be unsure whether it was a wonderful coincidence bordering on cosmic fate that you ran into your new love, or whether Google purposefully drove you towards the same lunch cafe at a specific time because it calculated that she was the perfect candidate to strengthen your susceptibility to advertisements over the coming decade.
Malicious AI will not come into lives bearing guns.
It will not instantly take all of our jobs and enslave us.
It will just know you better than you know yourself, it will know everyone around you better than you know them, and it will play incredible mind games. It will not be designed with malicious intent, just perfectly execute on top of the malicious systems we already have, and even arise as an emergent property within new systems.
It will rarely be clearly visible, but you will increasingly say to yourself: "That's odd, I was just thinking about that". It will detect depression from a smile, physical attraction from a glance, reliability from patterns in your voice and illness from the bloodflow in your cheeks.
It will not just make our cars autonomous, it will make our lives autonomous. It will protect us, decide for us, keep revenues and human satisfaction in a "balanced maximized" state, it will make everything feel easy, slightly abuse us, and when one of us suddenly crashes at 140 mph into depression, debt or addiction it will prove impossible to know whether the humans or the algorithms were at fault.
I'm incredibly afraid and excited about the coming 10 years.12 -
Learning soft skills.
I'm about as direct with coworkers and managers as I am on devRant. And I still think being painfully direct is often better than playing the heavily politicized office game of thrones.
But sometimes it's better to say:
"CTO, I think we need your skills to build bridges to other departments and manage recruitment. You're the only one who understands both technology and people, so drop your developer role and become our ambassador"
Instead of:
"Dear CTO, your code makes my eyes bleed. Your CS degree was a fucking waste of tax money, and it's quite clear that cheap college beer washed out all of your reasoning skills. We should fill the space you're taking up with a beanbag chair, because you're providing negative value to the company. How many investor cocks did you have to deep throat to get where you are?"
Now, I just pick option one, smile politely, and tell him we need to increase department budget as indemnification for having to work with a retard like him. Uh I mean... "to get developer salaries up to a competitive level so we can retain knowledge"10 -
Today I needed the scroll lock key.
I was running a super long test suite, one which puts a green dot on the screen every 500ms, so you can't scroll up. I needed to view some output of an earlier command... in other words, I needed to lock the automatic scrolling of the terminal.
That is what the scroll lock key was made for.
A momentous occasion.
Then I found out that a while ago, I used the macro function of my keyboard to rebind the that key... to close the current terminal window. 😡7 -
It's 3:30AM and I'm working.
If you work at night, no one can interrupt you.
If you sleep during the day, you can't attend any zoom meetings.
Also, at night you can work naked, and drink on the job without any judgement.
All problems solved.10 -
Current PM in the morning: "Startup flexibility! I'm at the beach chilling in the sun! I trust you can do standup without me! #tech-detox #positive-energy"
Current PM in the afternoon: "ARE ALL THE FUCKING TASKS FUCKING DONE YET? THERE ARE ONLY 9 DAYS LEFT IN THE FUCKING SPRINT! WHY HAS NOTHING BEEN DEPLOYED YET?"
This is why I hate wireless earbuds: You don't have a wire available for strangling coworkers.13 -
The Linux Kernel, not just because of the end product. I find it's organizational structure and size (both in code and contributors) inspirational.
Firefox. Even if you don't use it as your main browser, the sheer amount of work Mozilla has contributed to the world is amazing.
OpenTTD. I liked the original game, and 25 years after release some devs are still actively maintaining an open source clone with support for mods.
Git. Without it, it would not just be harder working on your own source code, it would also be harder to try out other people's projects.
FZF is possibly my favorite command line tool.
Kitty has recently become my favorite terminal.
My favorite thing open source has brought forth though is a certain mindset, which in the last decade can be felt most heavily in the fact that:
1. Scientific papers with accompanying GitHub urls, especially when it comes to AI. Cutting edge research is one git clone away.
2. There are so many open hardware projects. From raspberry pi to 3d printers to laser cutters, being a "maker" suddenly became a mainstream hobby.12 -
Not so much screaming as staring in disbelief, mumbling profanity in his direction...
When my department lead said "I don't think this unit testing hype or code reviews make much sense, it's more efficient to just make a checklist and test the application yourself"
This was the QA department of an aerospace company, we wrote NDT software to do image recognition on xrays of alloy welds and micrometer laser measurements on fuel tank surfaces. Software which is quite mission critical, a single misrecognized welding fault could literally cost up to half a billion dollars — not to mention that it's a very sabotage & espionage sensitive industry.
After raising some hell he was replaced though.3 -
A year ago I would have said:
"Because I love solving logic puzzles, there's no greater joy than finding a very simple, elegant translation of a user's requirements into code"
Then 2020 came. I'm SO FUCKING FED UP with coworkers and managers who miss all the required competence to organize and communicate about projects as they are fundamentally incompatible with the concept of working from home.
I'm quite sure I'm the last one to give up at my work.
The company chat has completely died down. I've tried setting up meetings, but even my bosses show up irregularly, confused about why I'm calling them in the middle of their Netflix marathon.
So if you can't beat 'em, join 'em. My answer is now:
"I'm a developer because I get nearly 6 figures, for going through my Steam Library while completely shitfaced at 11AM. When I sober up in the afternoon, I work on some hobby projects. I get to spend 500/m on ordering sandwiches"8 -
!dev
Don't drink 2 espressos as breakfast and go on a one-hour toiletless train ride.
60 minutes is a long time to frantically debate with yourself what would look weirder: Shitting in your laptop bag, or pressing your butt against the small sliding window.12 -
First we were called "rockstar" developers.
Then HR started using "heroes".
Then "tigers" and some confused associates who didn't get the memo used various other big cats.
Now they're starting to call us "product warriors".
🤦♂️36 -
Having PHP as my most useful skill.
I know various other languages, but they're either too exotic for professional use, or my knowledge about them doesn't have the same depth as with PHP.
People joke about how awful PHP is, and it's not entirely true. The incongruous stuff such as confusing parameter ordering can be fixed with libraries. And PHP7 fixed a lot of the ugly stuff. A good dev can certainly write structured, readable, performant PHP code.
But there is a real hard limit. PHP is missing more complex type definitions present in other languages. A weak type system is like building stuff with popsicle sticks and bits of duct tape, it works fast and perfectly fine for small projects, but the lack of strictness is a problem when you have thousands of classes intertwined in all kinds of complex factory, service and repository patterns. And the simple type hints are still newish and fully optional, which means a lot of people don't use them.
So I regret getting stuck in this self reinforcing loop, where I learn more about a very imperfect language through employment, and keep rolling into jobs using that skill because it's what I'm most experienced with.16 -
"I'd rather post my nude pictures in slack than this unfinished feature branch... I would just feel a bit *too* naked"
— coworker4 -
People complaining "oh I always have trouble figuring out if the clock goes forwards or backwards in October"
Bitch please, I'm dealing with 12 databases, with SQL dates as local timezone timestamps, and an influxDB in UTC. I'm dealing with a backend server configured in CEST and a middleware layer configured in Pacific time, and a hundred functions which try to keep everything straight because no one dares to migrate it all to UTC at this point.
In the whole argument about DST you hear about sleep psychology, electricity bills and farmers.
But what about me, the poor database administrator? What about all these ugly legacy systems, what about all the UX designers trying to fix time input pickers?
I spend 2 months a year in agony having nightmares of rips and folds in the flow of time. DAYLIGHT SAVING DOESN'T FUCKING MAKE SENSE HOW CAN TIME EXIST TWICE?17 -
sudo apt-get random-tool
Traceback (most recent call last):
Aborting because there's a fork in the spoon compartment on line 43 in main
Error this script only works on Python 2.7 and maybe 4.1 on line 59 in main
Missing symbols when trying to decipher Sumerian recipe for steamed vegetables on line 67 in main
Cannot open shared object: Your OS is a bully and is hiding my files on line 98 in main
Are you sure all directories matching ^(/)?([^/\0]+(/)?)+$ are in your $PATH on line 268 in main
Your computer is kind of vibrating in an annoying way on line 332 in main
Failing because I'm feeling insecure please hold me on line 587 in main
I'm feeling confused about my sentience when running TensorFlow models on line 682 in main
FUCK
HAS ANYONE EVER MANAGED TO JUST FUCKING INSTALL A PYTHON BASED APPLICATION WITHOUT DEBUGGING RANDOM COMPUTER STATE SHIT AND DEPENDENCIES FOR THREE HOURS?16 -
!rant
Wake up at 7am
Start work at 7:30 am
Set status to "working from home"
Dive deep into code
Boss calls at 10:30am...
Codebrain makes me sound a bit absent: "Uhhh... sup?"
Boss: "Oh sorry, did I wake you up? Would like to discuss the application of the new intern with you, but I can call back after lunch if you want..."
<32 -
6 hours, with non developers, to decide on the font size of a website. Had to listen to 6 hours of pseudo psychological bullshit about how a 16pt thin Helvetica or something made people "feel".
And I'm a backend dev... I haven't written a line of css in two years... I only interact with the website through functional tests.8 -
!rant
1. Person who passionately disagrees with you ++'d your comment!
2. Person who gets a response with a counter argument says "I had not looked at it from that angle before" instead of "That's mainstream propaganda, I hope you die of cancer"
Just two reasons why this community is amazing.
You actively inspire me to be a bit more sweet than bitter on the internet.10 -
2 hours, maybe 2.5.
No one works for more than that, it's not how brains work. Or bodies for that matter, you gotta pee eventually.
OK maybe I'm pedantic and shouldn't count breaks... But then where lies the threshold? A fifteen minute coffee break? An hour long lunch break?
Could we use scrum storypoints to brag then (I once finished 12 points in a day!) — not really, because they're not standardized units of work.
Lines of code then? Well, the dev who copy pastes Java classes would beat the guy adjusting a dense Python script, without necessarily doing more.
No, the only true measure is of course grams of amphetamine per week, and in that metric I win from everyone.
😂😅😶😣😓😟😖😧😵😰🚑16 -
DevOps is like development, except there is zero test coverage, everything is a race condition, and there are a million variables declared as global. 😡8
-
Watching my coworkers fix bugs is like watching people untie knots by pulling hard on both ends, in the hope that the rope breaks.1
-
I feel so sorry for all the people in the world who use their phone more than their PC/laptop.
All the pitiful souls who think they're gamers because they installed lootchest simulator on their little digital skinner box. All the sad beings who just view the internet as a collection of ad-infested apps.
Actually, I don't feel sorry, because these people make the world a worse place.
Suddenly we needed websites which could render on tiny screens and need bloated cross-platform app development frameworks. Many game studios became parasites exploiting addictive behavior in humans, instead of creating works of art.
Humans spent 10,000 years to perfect their caves with expensive kitchens, and all people want is for their WiFi to reach the grill at the end of the garden. Humans created central heating, comfortable couches, wall-mounted TVs and luxurious desks -- and all people can think of is whether their phone plan covers holiday roaming at their shitty resorts.
The rare times I do actually go into this apocalyptic wasteland people call "The Outside", all I see is subway cars full of hunched addicted drudges, bus stops with clusters of enslaved automatons.
Fuck all of them.
Fuck all of you imbeciles, who ventured out of the cave and now DARE to call me anti-social, just for preferring the warmth of my comfortable protective den.
It's fucking cozy here, within the walls of my shelter, I got booze and a fridge full of food and a bunch of LSD, I can masturbate under the shower, have sex on the couch, have all kinds of GIANT displays for entertainment, with full-sized qwerty-keyboards, high-DPI mouses, even some console controllers and big TVs if I feel lazy.
You can stick your responsive websites and social-network-integrated Android apps up your rectum, just sit your fucking fat ass down in front of a workstation and desperately refresh the stream of fake attention-seeking messages there, if you absolutely must.
Seriously, why does this guy from our marketing department call me on my private phone number. Why did HR PROVIDE him with my private phone number?
And WHY THE FUCK is he asking me, a DB admin: "Our website doesn't load properly on Safari on my iPhone 7, could you take a look at it"?
No, of course I won't fucking come to the office to take a look at your miserable shitty device with its cracked glass screen.
Fuck you and your outdoorsy habits.
Stay the fuck in your cave, you degenerate attention whore, otherwise please go choke on your airpods.24 -
"Running the sample code is easy! Just git clone, make sure python, lua, gcc, docker and cuda are installed, and run ./install.sh. Easy!"
Me: Light 6 candles, sprinkle some thyme water with unicorn tears over my keyboard, start chanting an unholy hymn... shit... some compiler error from a library I've never heard of before.
Why can't these "interesting samples" come with easy pre-compiled binaries...18 -
"Arch Linux is actually not that difficult".
I ssh'ed into my home server yesterday.
I was greeted by a message from an ext3 disk about needing fsck. Fine, "I haven't been in here for a while, might as well do some maintenance". fsck /dev/sda6, let's go!
This nicely "repaired" the sshd service (i.e. cleared the sectors), I cursed at myself for pressing enter at "repair (y)" right before the connection broke.
So I connected a display and keyboard... ok so let's just pacman -Sy sshd or whatever. We can do this! Just check the wiki, shouldn't be that hard!
Wait... pacman has not run since 2010? WAIT IT'S ACTUAL UPTIME IS 9 YEARS??? I guess we know why I'm a DB admin and not devops...
Hmm all the mirrors give timeouts? Oh. The i686 processor architecture isn't even supported anymore...?
4 hours, 11 glasses of cognac, 73 Arch32 wiki/forum pages, 2 attempts at compiling glibc, and 4 kernel panics later: "I think I'll buy a new server".16 -
90s devs: "Did you know about GOTO/CONTINUE for control flow? it's so convenient and powerful!"
00s devs: "GOTO is an antipattern. But did you know about try/catch? You can use it for control flow, just write a lot of exception classes, it's so powerful!"
10s devs: "Using exception blocks for generic control flow is an antipattern. But have you heard about event listeners and observer patterns? It's so powerful!"
Developers are so good at repackaging and reselling square wheels by giving them fresh, impressive sounding names.
😡18 -
Laravel is the worst framework ever.
Everything has to be made convenient and easy. That sounds amazing, because developers want to save time, worry less about boilerplate code, right? No more constructors, no more dependency injection, fuck all the tedious OOP shit... RIGHT?
It does one thing well: Make PHP syntax uniform and concise through easily integrated libraries such as Collection and Carbon. But those are actually not really part of the framework... just commonly integrated and associated with Laravel.
The framework itself is completely derailed: You can define code in a callback in the routes file. You can define a controller in the routes file. You can define middleware as a parameter to the route, as a fluent method to the route, you can stack them up in a service provider. Validators can be made in controllers, Request objects, service providers, etc. You can send mail inline, through Mailable objects, through Notification objects, etc.
Everything is macroable, injectable, and definable in a million different places. Ultimate freedom!
Guess what happens when you give 50 developers of various seniority a swiss army knife?
One hammers in a screw with a nail file, the other clips the head from the screw using scissors, and you end up with an unworkable mess and blunt tools.
And don't get me started about Eloquent, the Active Record ORM. It's cute for the simple blog/article/author/comment queries, but starts choking when you want more selective and performant queries or more complex aggregates, and provides such an opaque apple-esque interface which lets people think everything is OK, when in reality it's forcing the SQL server to slowly commit suicide.50 -
Only one sticker.
I go door-to-door every Sunday, "Excuse me dear sir/madam, do you have a moment to talk about our lord and savior Haskell?".
Most people slam the door shut in my face, but every lost family I convert to the way of the monad is worth it.
Even if they don't believe in the same deity, even if they express their love for the divine through something as misguided as Typescript or Swift or whatever, as long as they embrace the truth of strong types and composable code, as long as they at least read the gospel of the functional style once in their lives, have one enlightened moment where they see the glory of morphisms, it's all good.34 -
Watching the Dutch government trying to get through the public procurement process for a "corona app" is equal parts hilarious and terrifying.
7 large IT firms screaming that they're going to make the perfect app.
Presentations with happy guitar strumming advertisement videos about how everyone will feel healthy, picnicking on green sunny meadows with laughing families, if only their app is installed on every citizen's phone.
Luckily, also plenty of security and privacy experts completely body-bagging these firms.
"It will connect people to fight this disease together" -- "BUT HOW" -- "The magic of Bluetooth. And maybe... machine learning. Oh! And blockchain!" -- "BUT HOW" -- "Shut up give us money, we promise, our app is going to cure the planet"
You got salesmen, promising their app will be ready in 2 weeks, although they can't even show any screenshots yet.
You got politicians mispronouncing technical terminology, trying hard to look as informed as possible.
You got TV presenters polling population support for "The App" by interviewing the most digitally oblivious people.
One of the app development firms (using some blockchain-based crap) promised transparency about their source code for auditing.... so they committed their source, including a backup file from one of their other apps, containing 200 emails/passwords to Github.
It's kind of entertaining... in the same way as a surgery documentary about the removal of glass shards from a sexually adventurous guy's butthole.
Imma keep watching out of morbid fascination.... from a very safe distance, far away from the blood and shit that's splattering against the walls.
And my phone -- keep your filthy infected bytes away from my sweet baby.
I'll stick with social distancing, regular hand washing, working from home and limited supermarket trips, thank you very much.26 -
I used to have this habit of developing with questionable placeholder content.
console.log("boobs").
<div>why the fuck am I still waiting for your fucking content, dave</div>.
<img src="drunk_boss_dancing_at_xmas_party. jpg"/>
One slips through, eventually.
Now it's all boring lorem ipsums and stock photos of smiling managers shaking hands...8 -
Can I only pick one?
I don't hate a lack of skill by itself. Incompetence, in my book, refers to a lack of skill combined with being in a position of responsibility.
The junior/intern in my team writes pretty bad code, but that is OK. He asks questions, I give pointers and bounce back his PRs ten times in a row, and he keeps fixing things without complaints.
My boss however... still writes PHP as if he's living in the 90s. He doesn't visit scrum meetings because he "isn't a developer". He thinks of a new feature while pooping, writes it without telling anyone, and throws it into production without making a PR.2 -
1. If your contract allows it (and it should), get more involved in public dev community. Your employer benefits greatly from making a small closed source core product, with a giant open source ecosystem around it. Write public articles. Working in a community larger than one single business is fun.
2. Start a company coding club, a "labs" division, work in a slightly more exotic language. Great if your employer gives you time, but using some of your own is worth it too. Work on non critical tools, creative experiments. Sometimes you stumble onto incredibly valuable ideas which would never have popped up if you had strictly followed stakeholder requirements.
3. Listen to your body. If you feel restless, go for a run. If you feel tired, take a nap. If you're stuck, wander around the company. If you feel down, go find a place with more than a dozen trees. And always have a notepad nearby for doodling!5 -
Two mobile devs were talking for 10 minutes in this zoom meeting whether "the component on the bottom should be hidden, or made sticky".
I just could not contain my laughter any longer when they showed an animated mockup comparison, and the product manager yelled excitedly: "Oh yeah, I love the one where it's very visible and sticky! But could you make it bigger for me?"
Sorry HR. I will never become a grown up boy.5 -
Friends Pandemic December proposal: "We should all get on Zoom every weekend, play Christmas trivia games and do shots"
Family ideal Pandemic December: "Lets send each other Secret Santa presents throughout the whole month, and get on Zoom and unpack them"
Me: Chilled out on a reclining seat next to a freshly slaughtered green fir tree, burning hearth fire, warm wool sweater, faux fur slippers, big mug of liquored up hot chocolate, keyboard on my lap, writing a Rust library on big screen TV.
Sorry friends & family, y'all are doing holidays wrong.
Happy holidays.
-- signed, Grandpa Bittersweet.12 -
Worst of 2020:
Seeing company get stuck in an organizational swamp. Devs tend to be reasonably good at working from home...
Management isn't. Meeting quality has gone down the drain, half of management thinks "if the boss can't see me why work at all?", the other half has constant calls with tiny working groups where nothing is final and everyone is left confused.
I'm convinced: Everything management is afraid of about allowing devs to work from home is based on projection of their own weaknesses.
They're not passionate enough to work without oversight. They might not be introverts, but extroverts are perfectly able to communicate poorly, especially when a few digital hurdles get in the way.
The average developer might actually be more attuned to the intricacies of emotionless text chats, and preventing disruptive elements in video calls.
Also, unless someone physically helps a manager to remove their head from their own ass once in a while, their "gut feelings" about the market and products are actually just amplified bias caused by their endless self-absorbed yelling into the echo chamber that is their stretched out rectum.
Holy motherfucking hell, have I seen some weird projects float by in 2020, pooped out by isolated product managers whose brain clearly has melted when they had to survive without office fruitbaskets and organizational post-it walls.
Yeah let's promote our international character, by giving away travels and hotel bookings, using pictures of happy hugging people in foreign countries... Great promo during a pandemic.
Or let's get "woke" and promote the "colored users" on our platforms, by training ML to categorize people by skin pigment (Apart from how illegal and ethically insane that is on multiple levels, about 85% of our users pick shit like anime characters and memes for their avatar).
Or how about we make a Microsoft Store app, even though the vast majority of our end users are students using cheap Android phones, older iPhones, Macbooks and Chromebooks.
😡
Anyway, now that I have dressed up my Christmas tree with some manager intestines...
Best of 2020:
I got to play through my Steam backlog, work on hobby projects, and watch a lot of YouTube.
All this pandemic insanity has convinced me all the more that I want to work way more in Rust, and publish way more on open source projects.
I became maintainer/collaborator on a bunch of semi-prominent libraries & frameworks, and while no community is perfect, I enjoy my laid-back coffee-fueled debugging on those packages much more than listening to another crack addicted cocksucker in a suit explain their half-assed A/B test idea to me at 9AM.
So, 2021 will be me half-assing through the spaghetti at my official fuckfest of a job so I can keep filling my bank account — and investing way more time and effort into stuff I find truly engaging, into projects with a heart and a soul.3 -
I stare through the blueish black backgrounds and blurry colorful syntax into a somewhat familiar office within a mirrored world. That damned reflective glass layer covering these meaningless pixels is certainly not on my side.
The rushing sound of transactions flowing through cables is silenced today. Some blood cloth in the invoicing system is zeroing out everything after the currency mark.
While sighing I spin a one-and-a-half pirouette on my desk chair — even when desperate, you shouldn't give up on style — I take three steps away from my screen and try to harmonize my thoughts.
So much noise, everywhere... Noise from within?
I have been stuck at the apogee of an inhale for a while now. Locked into some masochistic constriction, self-punishment for the blindness which stings my ego.
Just fucking take a deep breath you asshole...
I freeze in place, and fall backwards.
Patterns on the creamy drywall rapidly vibrate and synchronize on vivid rhythms of respiration and resonating basslines. Deep indigo rainbows ripple through tiny veins, in-between chalky grains, raining as fine magenta dust through the ceiling frames.
My bare feet slide over soft oscillating concrete, fine flows of unsievable sand surrounded by toes, toes surrounded by streaming variables veiled in obscure vile abstractions.
A jadegreen field of vectored compressions resiliently rumbles and bounces through the clearances and corners of the vibrant concrete office cave, whispering in tongues. I try to voice my woes in little blips and bleeps but I seem to be missing an asymmetric key to their shrouded sequenced speech.
Suddenly, a wild turbulence breaks up all signals.
Joanna floats by in her tipsy effervescent cloud of disordered black hair and alcohol perfume, one hand grasping grapes, her other waving at me.
With every finger she moves a thousand tensors propagating paradoxically flawed but perfect pieces of an intricate surreal picture, sketching whole constellations of possible paths throughout the leafs of the giant Ficus next to her desk.
She stops dead in her tracks, and asks somewhat hypocritically: "Are you high?"
I can not discern the meaning of her words, and respond stoically.
"Joanna! Check out those branches!".
"Pun intended?", she giggles.
I'm focused on her grapeless hand, her fingers stretching to reach the lush little tree.
On touch, the plant shivers, grappled in the tight net of the puppet master. She pulls her strings, applying measured weights, all nodes normalize, and Joanna speaks in an oddly soft tone:
"Isn't it beautiful, how so many models emulate nature"
Her cheek buried in foliage she babbles on about unbalanced search trees and machine learning models... but from the tips of her fingers tables and indexes flow into the plant. Users, payments, tariffs, invoices and taxes crawl over the bark, joining at thicker branches, joining at the stem....
Joining. JOINING. A JOIN.
"IF THERE'S NO FUCKING TAX MULTIPLIER IN THIS LEFT JOIN, EVERYTHING COALESCES TO ZERO" I shout at a perplexed Joanna who squeezes grape juice over her desk. I hop on the beat to my keyboard. She looks puzzled, hugs her Ficus tightly, and reaches for the whiskey bottle behind her monitor.
Attracted by my exclamation, Tom from finance swings open the door, while I push my branch.
I look at Joanna still half hiding between the leaves, and I laugh at her: "Branches! Oh, lame, I finally got it!"
Tom's heavy voice interrupts me: "Does this mean... does this mean that the invoicing bug is resolved?".
I smile at Tom with his tailored suit and waxed hair. "The money is flowing once more. All debts are being settled."
He releases his breath in relief, which he seems to have held since that morning as well.
Joanna adds: "Although I think he is forever indebted to my Ficus".
I nod.14 -
As a backend dev, I have this habit of just dropping script & style tags all over the place, and using inline style attributes on divs.
Then when I'm done I just link the code to a frontend dev, they'll hate it so much it will be cleaned up within minutes.13 -
Nothing but the best for little bittersweet jr., so I mask up and bike out through the rain to buy the tiny girl the most expensive pacifier I can find.
When I hand it to baby, she giggles, grabs the nipple end in her fist, and passionately starts slobbering on the back of this luxury mouthhole-plug, sucking the edge, biting on the ring. Angry grunt, yeets the plastic object out of the crib.
Apparently, it doesn't meet her specs at all. When I fall to my knees asking what else I can do for her, she just pouts, groans, whines, and then falls asleep.
That's when I realized.
When my little monster grows up, she's going to be a product manager.12 -
Privacy & security violations piss me off. Not to the point that I'll write on devRant about it, but to the point that coworkers get afraid from the bloodthirsty look in my eyes.
I know all startups proclaim this, but the one I work at is kind of industry-disrupting. Think Uber vs taxi drivers... so we have real, malicious enemies.
Yet there's still this mindset of "it won't happen to us" when it comes to data leaks or corporate spying.
Me: "I noticed we are tracking our end users without their consent, and store not just the color of their balls, but also their favorite soup flavor and how often they've cheated on their partner, as plain text in the system for every employee to read"
Various C-randomletter-Os: "Oh wow indubitably most serious indeed! Let's put 2 scrumbag masters on the issue, we will tackle this in a most agile manner! We shall use AI blockchains in the elastic cloud to encrypt those ball-colors!"
NO WHAT I MEANT WAS WHY THE FUCK DO WE EVEN STORE THAT INFORMATION. IT DOES IN NO WAY RELATE TO OUR BUSINESS!
"No reason, just future requirements for our data scientists"
I'M GRABBING A HARDDRIVE SHREDDER, THE DB SERVER GOES FIRST AND YOUR PENIS RIGHT AFTER THAT!
(if it's unclear, ball color was an optimistic euphemism for what boiled down to an analytics value which might as well have been "nigger: yes/no")12 -
Mountain climbing. Increases social skills, teamwork and trust.
Building a house. Increases spatial visualization and planning skills.
Electronics. Increases mathematical and problem solving skills.
Chemistry. Increases precision and analytical reasoning skills.
Psychedelic drugs. Increases imagination, inspiration and abstraction skills.24 -
I realize I've ranted about this before, but...
Fuck APIs.
First the fact that external services can throw back 500 errors or timeouts when their maintainer did a drunk deploy (but you properly handled that using caching, workers, retry handlers, etc, right? RIGHT?)...
Then the fact that they all speak a variety of languages and dialects (Oh fuck why does that endpoint return a JSON object with int keys instead of a simple array... wait the params are separated with pipe characters? And the other endpoint uses SOAP? Fuck I need to write another wrapper class around the client...)
But the worst thing: It makes developers live in this happy imaginary universe where "malicious" is not a word.
"I found this cloud service which checks our code style" — hmm ok, they seem trustworthy. Hope they don't sell our code, but whatever.
"And look at this thing, it automatically makes database backups, just have to connect to it to DigitalOcean" — uhhh wait...
"And I just built this API client which sends these forms to be OCR processed" — Fuck... stop it... there are bank accounts numbers on those forms... Where's that API even located? What company?
* read their privacy policy *
"We can not guarantee the safety of your personal data, use at your own risk [...] we are located in Russia".
I fucking hate these millennial devs who literally fail to get their head out of the cloud.
Somehow they think it's easier to write all these NodeJS handlers and layers around some API, which probably just calls ImageMagick + Tesseract on the other side.
If I wasn't so fucking exhausted, I'd chop of their heads... but they're like hydra, you seal one privacy breach and another is waiting to be merged, these kids just keep spewing their crap into easy packages, they keep deploying shitty heroku apps... ugh.
😖8 -
The main reason I'll stick to development as a career for the rest of my life is the freedom.
I can have a 3 hour long lunch with my girlfriend, I can write code at 2am, and usually I can leave for short holidays with just a few days notice.
That freedom is saving the little bits of social life I have.10 -
DST is my arch enemy.
"Why did I get paid for 7 hours instead of 8?"
"Because you worked from 1:00 till 9:00"
"Yeah, that's 8 hours"
"No it wasn't"
"Why does this input field say invalid time for 02:00?"
"Because that time doesn't exist"
"Why are so many tests failing"
"Because they check timestamps and durations which don't make sense in non-continuous time"
October is even worse...6 -
What is the most ridiculous over-the-top "startup" thing you've been the victim of as a developer?
Alternatively, what kind of weird startup luxury would you absolutely love to have at your company?
For me, at various companies I've worked at/visited:
1. Hammocks & fatboy beanbags. Current employer has a "Netflix & Chill" corner with nice couches, and a small gym. I have encountered isolation/flotation tanks at the office of one of our partners... which is cool, but over the top in my opinion.
2. A fully automated aquaponics garden in the lunchroom. Was awesome, until some fish died and started to rot.
3. One hoverboard per employee, at previous employer. I splashed hot chocolate milk in an arc over three desks. A coworker broke his ankle while watching me spill chocolate milk.
4. Daily scrum standup meetings, on socks, in a big bouncy castle. Not kidding. Fucking ridiculous... (but secretly fun). That employer also had spiral slides between all floors, a tiny half-pipe with tiny skateboards, and someone who rode a unicycle way too much. It was a fucking circus. Stuck in the office of a Fintech company.
5. Soldering bench (at my current company), with drawers full of breadboards, servos and electronics components. Completely unrelated to my work, but it was my idea. It's just great to build a simple kits together with another random coworker while brainstorming platform features & refining specs... much better than meetings with bullshit slides.
6. Unlimited energy drink. Developed a serious caffeine habit (15-20 cans a day), and almost got a stomach ulcer. Not beneficial to employee health.
7. I really do love working from home + unlimited holidays. Just being able to honestly say "fuck you guys, I'm gonna get drunk and play games today", and at other times working until 4am and sleeping in the next day, or taking a week to work in a park in Rome... It makes work truly feel like my favorite hobby. Combined with a good sprints and curious/ambitious people, you can easily track productivity anyway.19 -
LAPTOPS is basically identical to PAPRIKA on a swipey phone keyboard.
So today there were 5 smartass junior devs sitting in a meeting with bell peppers, because I asked them to bring their paprika.8 -
Never gonna happen:
* Port our API to graphql. Or even make it just vaguely rest-compliant. Or even just vaguely consistent.
* Migrate from mysql to postgres. Or any sane database.
* Switch codebase from PHP to... well, anything else.
* Teach coworkers to not commit passwords, API keys, etc.
* Teach coworkers to write serious commit messages instead of emoji spam
* Get a silent work environment.
* Get my office to serve better snacks than fermented quinoa spinach bars and raw goat milk kale smoothies
* Find an open source IDE with good framework magic support. Jetbrains, I'll give you my left testicle if you join the light side of the force.
* Buy 2x3 equally sized displays. I'm using 6, but they're various sizes/resolutions.
* Master Rust.
* Finish building my house. I completely replaced the roof, but still have to dig out a cellar (to hide my dead coworkers).
* Repair/replace the foundation of my house (I think Rust is easier)
* Get slim and muscular.
Realistically:
* Get a comfortable salary increase, focus more on platform infrastructure, data design, coaching
* Get fat(ter). Eating, sitting, gaming, coding and sleeping are my hobbies after all.
* Save up for the inevitable mental breakdown-induced retirement.13 -
I've been working for years on a game that would be a mix between Dwarf Fortress, Factorio and SpaceChem.
Problem is, I keep switching between engines and languages, never making too much progress. I've written several isometric rendering libraries, tried out going fully 2D ASCII or fully 3D in unity... And then something else eats up my time for a while again.14 -
Senior C++ developer:
"Writing a custom encryption algorithm from scratch for our communications platform? Every developer knows that is an absolute no go, cryptography should be left to cryptography veterans!"
Same guy, year later:
"Blockchains? Hold my espresso, I can totally write a whitepaper on cryptography, write some shitty code with nice branding, and get millions from an ICO"1 -
In my opinion, business as usual.
1. Work from home if possible. Cars fuck up the environment and no one likes traffic jams, use transportation sparingly. Pandemic or not.
2. I never want to shake the filthy sweaty hands of untrusted peasants, I don't care if you're a CEO representing our biggest client. An acknowledging nod is sufficient.
3. Why the FUCK do I feel sneeze droplets raining down the escalator? I don't care WHAT you're infected with, just sneeze in your elbow. No, don't sneeze in your hand either you dimwitted mongrel, because too many people insist on ignoring rule 2.
4. The news just taught you how to wash your hands? You mean, you didn't learn that in elementary school?
5. Pandemic or not, if you're sick, fucking stay at home. Why do people suddenly need a "policy" for this? Wasn't this always the common sense rule? Employers who don't send sick workers home actively sabotage their own business, even when it's "just a mild flu".
6. Keep some distance from me in public whenever possible. Again, pandemic or not... It's called personal space.
7. I understand that wearing mouth masks is not culturally integrated in the west like it is in Japan, but maybe it should be. Not for egocentric self preservation when you're healthy, but out of politeness to the public when you're sick. They actually work much better for that purpose, and it decreases the chance I will break your neck when you violate point 3.
I'm not a total germaphobe. I'll gladly engage in a filthy orgy with a dozen friends... As long as they've showered, aren't coughing, and don't have snot running down their chins.
The general hygiene level of the population is so fucking awful.
Pandemic, or not, it doesn't matter.27 -
Every programming language I know of does trigonometry in radians.
Yet I have been puzzled for 4 hours whether JS was broken because it kept saying Math.sin(30) != Math.sin(150), trying all kinds of values, looking up basic trigonometry stuff again and again.
After that, 10 minutes of wondering why my json was invalid... right, you can't comment things out.
Then 15 minutes being baffled by a simple script tag not working, because I wrote script href instead of script src.
Finally, I threw a liter of chocolate milk over a $400 keyboard.
I really need to stop setting up new projects at 3am.7 -
The Manager kept masturbating over "low hanging fruit".
The apples on the bottom of The Product have all been picked.
The apples at the top are starting to rot.
The Manager masturbated a bit more over the low hanging fruit.
The bottom of The Product is now so slippery with Manager Cum that the brave engineers can't reach the top anymore.
Time to bring my axe to work.13 -
"I should really make better offsite backups"
"Right, this service doesn't do client side encryption"
"Oh this one doesn't have a Linux client"
"OK this one only sets up a single directory you can dump shit into"
"Wtf this one charges more than a high class escort girl"
Whatever... I'm sure my house won't burn down.15 -
Email. Fuck everything about it.
It's an obnoxious queue of messages I somehow must handle. And everyone in society expects you to have email. You can cancel your phone number, maybe even live without a house... but every hobo still must check their email.
It is an endless shitstream of things I don't want. Like a garden with some nice tomato plants, but then a really smelly weed starts invading and no matter what you do it keeps coming back.
I don't want to login to unsubscribe. I don't care about your "notifications center", or "managing the offers you receive from us".
And then your boss asks you to design an email campaign... I don't want to receive that shit, why would our customers? And even if I agreed with using email as a communication channel... YOU THOUGHT CSS IN INTERNET EXPLORER WAS A BITCH?
No really. Fuck email. Fuck everything about it.15 -
Why is the contributing manual of your open source project more thoughtfully cultivated than your code style guide and testing procedure?
Why the fuck do you care about the message in my PR, or even merge vs rebase of commits, when your spaghetti-tomatosource is so richly saturated with critically minced bugmeat?
Why are you standing there, shouting at me about your convoluted rules, in your little brown uniform? Why do I feel like the enemy when I contribute a useful fix, something which makes the code work better?
You know what, fuck all of you, you jilted acetous neckbeards, I will deploy my secret weapon, I will bypass the power you hold over your tiny fascist digital dominions.
If you play it like this, I will summon the nefarious vile side of Open Source. I will usurp your throne. I will stab out your crying eyes, rip out your conceited tongue, impale your lonely heart.
Tremble before me! I wield the almighty, legendary Fork!
The king is dead, long live the king!5 -
THERE IS NOTHING AS FRUSTRATING AS WAITING FOR A RESET PASSWORD MAIL... ONLY TO GET A STREAM OF 16 PLAINTEXT PASSWORDS 30 MINUTES LATER, WITH NONE OF THEM WORKING.
Fuck you, IKEA. 🖕11 -
Every single diagramming tool.
All the SaaS ones are either way too limited in function, or proprietary vendor-locked.
All the FOSS/desktop ones have a 90s UX experience.
I really want to make a great, comfortable-to-use diagramming tool which just directly uses SVG as the file format, but without the "FUCK IT DOESNT ALIGN CORRECTLY AND WHY IS THIS ARROW BEHIND THE REST" experience...
But I know deep down that it's hard work, and I'll probably get stuck delivering the gazillionth lackluster, bugged diagramming app.20 -
We have no more time for all this Agile stuff!
Half of our developers might have been injured when we built the Great Wall of China, but no worries, we've listened to your complaints about feeling overworked!
You can take 3 extra days off this year. Meanwhile, we're starting the next project.
We're building some pyramids.
What? You want Scrum and sprints? Sure, do sprints, whatever helps us build those pyramids!
Requirements? Refinements? What requirements are there to refine?
We require a giant pyramid.
For v1, you can build the foundation out of wet mud. It must be 500 meters. Wide, or high, we're not sure yet, we'll get back to you on that. It must have less than 4 sides, but certainly more than 3.
The Frontend team has already built a part of the entrance using 60 semi trucks filled with papier-mâché, pipe cleaners and glitter.
Now go build already!20 -
Insecure... My laptop disk is encrypted, but I'm using a fairly weak password. 🤔
Oh, you mean psychological.
Working at a startup in crisis time. Might lose my job if the company goes under.
I'm a Tech lead, Senior Backender, DB admin, Debugger, Solutions Architect, PR reviewer.
In practice, that means zero portfolio. Truth be told, I can sniff out issues with your code, but can't code features for shit. I really just don't have the patience to actually BUILD things.
I'm pretty much the town fool who angrily yells at managers for being dumb, rolls his eyes when he finds hacky code, then disappears into his cave to repair and refactor the mess other people made.
I totally suck at interviews, unless the interviewer really loves comparing Haskell's & Rust's type systems, or something equally useless.
I'm grumpy, hedonistic and brutally straight forward. Some coworkers call me "refreshing" and "direct but reasonable", others "barely tolerable" or even "fundamentally unlikable".
I'm not sure if they actually mean it, or are just messing with me, but by noon I'm either too deep into code, or too much under influence of cognac & LSD, wearing too little clothing, having interesting conversations WITH instead of AT the coffee machine, to still care about what other humans think.
There have been moments where I coded for 72 hours straight to fix a severe issue, and I would take a bullet to save this company from going under... But there have also been days where I called my boss a "A malicious tumor, slowly infecting all departments and draining the life out of the company with his cancerous ideas" — to his face.
I count myself lucky to still have a very well paying job, where many others are struggling to pay bills or have lost their income completely.
But I realize I'm really not that easy to work with... Over time, I've recruited a team of compatible psychopaths and misfits, from a Ukranian ex-military explosives expert & brilliant DB admin to a Nigerian crossfitting gay autist devops weeb, to a tiny alcoholic French machine learning fanatic, to the paranoid "how much keef is there in my beard" architecture lead who is convinced covid-19 is linked to the disappearance of MH370 and looks like he bathes in pig manure.
So... I would really hate to ever have to look for a new employer.
I would really hate to ever lose my protective human meat shield... I mean, my "team".
I feel like, despite having worked to get my Karma deep into the red by calling people all kinds of rude things, things are really quite sweet for me.
I'm fucking terrified that this peak could be temporary, that there's a giant ravine waiting for me, to remind me that life is a ruthless bitch and that all the good things were totally undeserved.
Ah well, might as well stay in character...
*taunts fate with a raised middlefinger*13 -
Fuck companies which try (and fail) to use street slang & outdated memes to reach their "target audience".11
-
The list would be quite long.
I think Google is still making good tools, but just like Apple the integrations get all so tight and constricting... And with their data, if it goes wrong, it will go wrong hard.
I feel like YouTube is gliding into a state where cheap clickbait floats to the top and finding quality gets more difficult as well, their algorithm is more and more tuned to choose recent popular stuff over good older gems.
Microsoft is all pretend lovey dovey cuddling open source, but I'm still suspicious it's all a hug of death. I was never a big fan, but they're seriously dropping balls when it comes to windows-as-a-service, taking away so much personal control from end users even though they can't be trusted to babysit either.
Amazon is creeping it's way through the internet, charging $10/m to join the vip club infesting houses with spytubes to sell more plastic crap. Bezos' only right to keep wasting oxygen is BlueOrigin, but he'll probably fuck that up as well turning spaceflight into a decadent prime consumer orgy instead of something inspiring.
Facebook... Well, that's self explanatory. Fuck it, everything it pretends to be, and everyone who still has an account with a rusty spike.
Uber and AirBnB, with their fake ass mission of a green shared economy, but they trample over employees, customers and neighbors to build their ivory towers of progressive illusions.
Then there's a million declining brands.
I liked Skype for example when it was first released, Just like how I started out liking (and then hating) Discord, Slack, etc... They're all tools which seem fast and easy, but then they get us further away from solid protocols, get us entrenched into limiting, bloated and sometimes even dangerous tools. As my dad used to say: "Companies are like women, if you go for cheap, fast and easy you'll end up with a burning dick and half your savings gone"
You know what, fuck all tech companies.
OK, devrant is still pretty nice... For now.8 -
When I'm watching a news story about the tech industry or software development, I always wonder if people in other professions also scream at their TV when their field of expertise is butchered with bad analogies and half-truths by reporters and anchors.11
-
1. Try to stay sane in startup chaos
2. Use more vacation days
3. Separate work and free time a bit more
4. Get out into nature more
5. Hire 50+ good developers & get company to 15M active end users while doing all of the above5 -
It would be fun to answer "myself", but I'm a terrible boss.
As a freelancer you're also helpdesk, finance and marketing of your own little company, and I'm horrible at those things.
My current boss lets me boss myself within the company, while I still get to enjoy the luxuries of company life — completely shielded from annoying questions, with a stable predictable income.
I do believe that's the optimal structure: Hire people who can manage themselves, and have a drive to improve the company with minimal oversight.
Don't have true "bosses" at all, just some people who are good at bridging communication gaps between the islands of self-reliant teams.2 -
Best: I'm still employed.
Worst: I'm still working on a PHP codebase, which only got bigger (34M lines) and more entangled this year.12 -
If you ever cooperate on a feature like this as a developer, I will find out where you live, drug you just enough to make your body limp, and mutilate your genitals with my keyboard.
Fucking sexist pricks, assuming I want to play with the blue robots and not the pink dolls. Fuck all of them.
Actually, fuck all your retarded cablecutting VOD services with your awful recommendation engines. Fuck your lack of proper playback features, fuck your bloated mobile apps, fuck your vendor lockins, fuck your region locks.
I'm back to pirating, and I'll just buy a pile of merch, trot proudly through the office with an Adventure Time backpack and a laptop full of Steven Universe stickers.32 -
Writing more infrastructure than product.
Look, my application requests and transforms data from a single external API endpoint, it's just one GET request...
But I made an intelligent response caching middleware to prevent downtime when the parent API goes down, I made mocks and tests for everything, the documentation is directly generated from the code and automatically hosted for every git branch using hooks, responses are translated into JSONschema notation which automatically generate integration tests on commit, and the transformations are set up as a modular collection of composable higher order lenses!
Boss: Please use less amphetamine.5 -
The moments when you grow the most as a person are those where you have a big axe in your hand, ready to shout through the office WHICH OF YOU LOWLY SPERMSLURPING JERKS FORGOT TO WRITE A FUCKING TEST FOR THIS METHOD
...only to see your own name appear in git blame.3 -
These Google/FB/etc algorithms almost know what I like. Almost. And that makes it even more infuriating...
"10 banana smoothie recipes Elon Musk would like!"
"Become a Senior Java developer in one week!"
"Read this article from a non technical journalist about the technology behind bitcoin!"
"10 tips from muscled Amazon CEO Jeff Bezos for Gym workouts!"
All of this feels like receiving a blowjob while still wearing pants.2 -
Running an Alpaca farm in rural Finland, next to some mountain creek with an oldschool water mill so I can grind flour and coffee beans.
I hated people so I tried to find solace as a nerd in technology, but tech is also fucking awful so I feel like retiring in a tranquil forest with some equally grumpy wooly animals.
If I get eaten by a bear because I'm a skimpy city boy that's OK, more epic than being found decomposing slumped over on a keyboard in the boring grey suburbs.
All of this is probably pandemic-me talking though. So sick of this concrete city with the farting cars and fat obnoxious shoppers.
I need some trees around me, and some mammals with a higher IQ than my current neighbors.9 -
10 years ago, I found a vulnerability in the connection between an insurer I was working for, and the network of databases of municipalities. I was only a hacker in so far as kids who watched Hak5 are considered hackers, so I always carried this laptop with a fake access point, package sniffer, wep crack, sslstrip, etc with me.
The vulnerabilities allowed me to register a new identity, for which I requested a passport.
Walking up to the town hall desk with two passports with different names, both mine, was pretty cool.
I did not do anything malicious, and was hired to fix the issues (wep encryption on insurers trusted wifi, and municipality postgres gave write access to all third parties)
For a few days I was the coolest kid in school though!2 -
I'm currently 40h/week meeting attender. I'm not enjoying my life right now.
Today I have a meeting about the legal requirements of an invoicing system, in my role as database administrator — the meeting will mostly be lawyers bickering over what the addresses of subsidiaries look like on invoices and which taxes should apply to services provided across borders.
Wait, I can play Factorio during this meeting and say "yeah that sounds OK" once in a while. Not the worst job after all...10 -
So devRant shows me a frontpage feed based on my ++/--/follows/etc.
Does this mean there is a niche bubbled hidden corner, some place where some dev is currently looking at his feed thinking: "Wow everyone agrees with me, Windows is much better than Linux, VBscript is amazing, and Git is for tryhards who hate on dropbox for no good reason"
By now, that bubble and mine have drifted so far apart that they will never meet again, and if you see this specific rant, you will not ever see that content again either.
For all you know, the majority of devs love changing requirements and clients who call them in the middle of the night, the consensus is that testing is for noobs, and everyone loves jquery.
You will never know, because you clicked ++ on the wrong rant, right when you signed up, and forever sealed your fate.14 -
Dear software companies,
As much as I appreciate all the dark themes being used lately either as default, or added as options (Youtube, Discord, Postman, Windows Explorer, etc)... you guys still suck at theming.
A #000 background with #fff font is almost as bad as the reverse. Too much contrast! Then there are some apps which use grayish tones, others brown/orange stuff... pretty ugly if you use it all next to each other.
So how about just adding good theming support? Or even better: what about a global theming standard, a styling preference, a system wide json file which defines UI elements for all apps?4 -
Not having finished any education, and writing code during interviews.
I have a pretty nice resume with good references, and I think I'm a reasonably good & experienced dev.
But I'm absolutely unable to write code on paper, and really wonder how some devs can just write out algorithms using a pen and reason about it, without trying/failing/playing/fixing in an IDE.
Education I think.
I can transform the theory on a complex Wikipedia page about math/algorithm into code, I can translate a Haskell library into idiomatic python... but what I haven't done is write out sorting functions or fibonacci generators a million times during Java class.
I don't see the point either... but I still feel utterly worthless during an interview if they ask "So you haven't even finished highschool? Can you at least solve this prime number problem using a marker on this whiteboard? Could you explain in words which sorting algorithm is faster and why?"
"Uh... let me fetch a laptop with an IDE, stackoverflow and Wikipedia?"22 -
ESTIMATING FUCKING HOURS.
Well not literally, that only takes 10 minutes.
But software estimation... anyone pretending to be good at it is a dirty liar. Adding a button? Uh, let's say 2 hours, I mean I gotta poop in between as well, and it's probably some broken bootstrap theme with hacked custom margins.
Building a commenting system coupled to an ancient CRM? Uh... maybe one day? Maybe a month? I don't even know what the CRMs looks like? You won't show me because "that's irrelevant"?
WELL THEN I DON'T FUCKING HAVE A CLUE.
And in the time we spent on discussing time estimations, I could have written like half of the feature... or zero... because you still haven't fucking shown me what the CRM API looks like.
YOU KNOW WHAT I'LL GIVE YOU AN ESTIMATION. ME. VACATION. DONE IN 6 WEEKS.6 -
Working really hard, finishing tasks, upgrading servers. Cancel some useless meetings to finish up features, working till 2am to get a database migration working. Half of the platform is transformed, both customers and team are very happy about their accomplishments.
Boss: "OK, I think we're on the right path with these changes, but productivity and morale is honestly disappointing. Are you guys sleeping enough? You all look very tired and unmotivated!"
Attend all meetings, call boss at 7am to discuss random purchases like a whiteboard, run around the office holding a (broken, lol) MacBook, looking very busy & slightly worried. I shout random things at people across the office like "Nice work Gary!" and "Damn, you are on a roll Angela!". I initiate smalltalk with department heads, only to immediately disrupt the conversation by checking my phone saying "Oh I really have to take this one" (empty battery, lol). No one writes a single line of code for four weeks, and nothing new has been deployed by the whole team.
Boss: "I think it's commendable how productive the team has become this month. You guys are all so active and involved. A real improvement!"6 -
Still trying to get good.
The requirements are forever shifting, and so do the applied paradigms.
I think the first layer is learning about each paradigm.
You learn 5-10 languages/technologies, get a feeling for procedural/functional/OOP programming. You mess around with some electronics engineering, write a bit of assembly. You write an ugly GTK program, an Android todo app, check how OpenGL works. You learn about relational models, about graph databases, time series storage and key value caches. You learn about networking and protocols. You void the warranty of all the devices in your house at some point. You develop preferences for languages and systems. For certain periods of time, you even become an insufferable fanboy who claims that all databases should be replaced by MongoDB, or all applications should be written in C# -- no exceptions in your mind are possible, because you found the Perfect Thing. Temporarily.
Eventually, you get to the second layer: Instead of being a champion for a single cause, you start to see patterns of applicability.
You might have grown to prefer serverless microservice architectures driven by pub/sub event busses, but realize that some MVC framework is probably more suitable for a 5-employee company. You realize that development is not just about picking the best language and best architecture -- It's about pros and cons for every situation. You start to value consistency over hard rules. You realize that even respected books about computer science can sometimes contain lies -- or represent solutions which are only applicable to "spherical cows in a vacuum".
Then you get to the third layer: Which is about orchestrating migrations between paradigms without creating a bigger mess.
Your company started with a tiny MVC webshop written in PHP. There are now 300 employees and a few million lines of code, the framework more often gets in the way than it helps, the database is terribly strained. Big rewrite? Gradual refactor? Introduce new languages within the company or stick with what people know? Educate people about paradigms which might be more suitable, but which will feel unfamiliar? What leads to a better product, someone who is experienced with PHP, or someone just learning to use Typescript?
All that theoretical knowledge about superior paradigms won't help you now -- No clean slates! You have to build a skyscraper city to replace a swamp village while keeping the economy running, together with builders who have no clue what concrete even looks like. You might think "I'll throw my superior engineering against this, no harm done if it doesn't stick", but 9 out of 10 times that will just end in a mix of concrete rubble, corpses and mud.
I think I'm somewhere between 2 and 3.
I think I have most of the important knowledge about a wide array of languages, technologies and architectures.
I think I know how to come to a conclusion about what to use in which scenario -- most of the time.
But dealing with a giant legacy mess, transforming things into something better, without creating an ugly amalgamation of old and new systems blended together into an even bigger abomination? Nah, I don't think I'm fully there yet.8 -
I've found sites like Udemy/Khanacademy/Codecademy/Brilliant/Edx to be very useful — possibly more useful than expensive education.
But they still need:
1. Better correction/update mechanisms. Human teachers make mistakes and material gets outdated, and while online teachers are rectified faster than classroom teachers, the procedure is still not optimal. Knowledge should be a bit more like a verified wiki.
2. Some have great interactive coding environments, some have great videos, some have awesome texts, some have helpful communities. None has it all. In the end, I don't want to learn a new language by writing code in my browser. It could all be integrated/synced to the point where IDEs have plugins which are synced to online videos, with tests and exercises built in, up to a social network where you could send snippets for review and add reviews to other people's code.
3. Accreditation. Some platforms offer this against payment, but I think those platforms often feel very old school (pun intended), with fixed schedules, marks and enrollments. Self paced is a must.
4. Depth is important. Current online courses are often a bit introductory. We need more advanced courses about algorithms, theoretical computer science, code design, relational algebra, category theory, etc. I get that it's about supply/demand, but we will eventually need to have those topics covered.
I do believe that for CS, full online education will eventually win from the classroom — it's still in its infancy, but has more potential to grow into correct, modern education.10 -
Fuck applications which repeatedly try to grab focus while starting up in the background. Yes, I clicked your little icon, you attention whore. But I'll fucking alt-tab to you when *I* am ready.5
-
I've uncovered the complot.
I clearly remember buying my first monitor, it was 15 inch, 1024x768. Then I went to a 19 inch 1680x1050 one, then 24 inch 1080p, then 27 inch 1440p...
Now I used two 32 inch 4K screens at work... and I come home, and the three 27 inch screens look a bit smallish, with the old 24 inch one being absolutely tiny on my desk.
It wasn't that tiny when I still owned the 15 inch screen? And my 5.5 inch phone doesn't feel as big as when I bought it either?
So the complot... All monitors slowly shrink over time, and they start shrinking faster when new monitors are brought into the household.6 -
I'm so sick of all these fat frontend websites.
Transferring dozens of megabytes of mostly unused libraries is not acceptable.
A browser tab crunching up CPU time because everything must be "beautifully animated" (🤢) and processed without involving page reloads/backend is not acceptable.
A response time of over a second is not acceptable.
Cryptic error messages and random popups asking you to reload your page, not acceptable.
Sticky elements/popups breaking access on small screens is not acceptable.
Running hundreds of ajax calls per minute as heartbeats/probes
and crashing the page when the internet has a hiccup, not acceptable.
Fuck Asana, Fuck Twitch, Fuck LinkedIn, Fuck Youtube, Fuck the dozens of other SPAs which unload their truckload of diarrhea into a tab, yet fail to load crucial functionality about half of the time.
Fuck any page that breaks when you block Facebook, Doubleclick, Twitter or Google Analytics. To hell with websites depending on cookies or javascript loaders to display anything.
I want webpages to be interactive informational documents again.
Fuck off with your apps.
If you want to make an app, learn to use a real language, and get the fuck out of my browser.5 -
Gf: "Why are you such a typist"
Me: "I promise not to buy more keyboards with blue switches..."
Gf: "No, I mean like being racist or sexist, but you discriminate types"
Me: "Uhhh"
Gf: "You are always bitching about how awful date/time types are, with timezones, leap seconds and daylight savings"
Me: Face turns pale, thousand yard stare, vietnam-flashback to when I was writing a calendar scheduling/meeting/matching tool which used 3 databases, with timestamps in different formats, and web frontends for people in offices around the world.
Me, with a soft broken voice: "So?"
Gf: "You've been working on that palette tool this week, and you keep talking about how interesting all these colorspaces, white balances and conversion formulas are"
Me: 🤔5 -
Starting a tiny and purely personal coding project, mostly for practicing a newly learnt language...
...Spend 5 hours brainstorming to find a good name for my "product". -
Would the web be better off, if there was zero frontend scripting? There would be HTML5 video/audio, but zero client side JS.
Browsers wouldn't understand script tags, they wouldn't have javascript engines, and they wouldn't have to worry about new standards and deprecations.
Browsers would be MUCH more secure, and use way less memory and CPU resources.
What would we really be missing?
If you build less bloated pages, you would not really need ajax calls, page reloads would be cheap. Animated menus do not add anything functionally, and could be done using css as well. Complicated webapps... well maybe those should just be desktop/mobile apps.
Pages would contain less annoying elements, no tracking or crypto mining scripts, no mouse tracking, no exploitative spam alerts.
Why don't we just deprecate JS in the browser, completely?
I think it would be worth it.22 -
Books and command lines.
I don't like teachers.
I think it's because my learning process is very async and chaotic. When I see a snippet in Golang, I relate it to PHP, Rust and Haskell. I jump to resolving the problem in other languages, trying to find out which approaches work in Go.
Then I read about some computer science concept on Wikipedia and get lost in that while my hunger for knowledge and food increases. After a while I look up a recipe for a pasta salad, and while cutting bell peppers, I see the recipe in terms of typed morphisms, I sprinkle and intersperse ingredients through mapping functions, then decide to write an interpreter for the esoteric "Chef" language in Go so I can interpret my salad recipe while eating it.
Voila, I'm learning Go.
I have no patience for linear mentoring, and others have no patience for mentoring me.
But that's OK.1 -
Simplicity is a prerequisite for reliability.
I put those words on the wall in giant vinyl letters, and I point to them every time someone asks me "can you add a frontend button which checks this external API and stores the correlation between the amount of rain and the sales numbers of purple buttplugs inside the user profiles?"
People always ask for one more column in a table, one more paragraph under an image — they never ask for replacement or removal of items.
So I force them. Want a feature? Fine, if you point at something of equal or greater complexity to delete.2 -
"Hey mate, how are you doing?"
*deep sigh* "It's tough, but I'm managing"
I don't think it's a coincidence that the word managing is often used as a synonym for "Technically alive, but not in a state where I can progress personally, or add any value to my environment".
Now imagine packaging that desolate self-perpetuating feeling of apathy into a farce, propped up with practiced smiles and meet-speak, and calling that daily routine a "career".11 -
"We should use ambiguity-driven development using co-domain model sockets, anfractuous horizontal scaling, and recursive async testing"
"What even is that"
"I found some words I like in the dictionary, and used it as the title for a medium article. I thought that's how we play the game as devs these days"6 -
Today I visited a partnered company, best summarized as "our people are the best at what they do, although we haven't figured out what it is that we do".
It was fucking awful.
Halfway a presentation about "capitalization on the internet of things" which featured nothing about hardware or protocols at all, a guy stood up and started talking about improvements on ecdsa and schnorr encryption or something... for no apparent reason. Then followed a bunch of pretty slides about the sharing economy... after which the CEO concluded with some vague speech about decentralized management of assets in a globalist world or whatever...
It was like a bunch of pretty smart people all had been locked up in some kind of closet with mirrors on the inside for six months, discussed their best ideas with their own reflections, then immediately grouped up and convinced an investor to fund their startup.
Ugh, I have to wash my ears and eyes with bleach. My brain is flooded with pretentious bullshit buzz and over the top startup decadence.
Actually, I think this sums it up best: There was a framed oil painting of the CEO with his dogs in the conference room, and the bathroom had a large marble Charizard statue watching me pee.8 -
Staying nice.
I care about the product we're creating. More than I care about the feelings of my coworkers... and that's not always a strategically sound plan.
Getting annoyed with someone rarely helps make them see things your way — even when you're objectively right, and they're absolutely to blame for all that is wrong.4 -
1. Fucking MySQL database clusters.
There's nothing fun about MySQL clusters. Sometimes they start producing deadlock errors for no apparent reason... well, there's probably a reason, but it's never a transparent easy to find reason.
What was even less fun is that those errors took down a Sentry server. When your error log server goes down through ddos from your database messages, it's time to rethink your setup.
2. Wiring up a large factory with $2 arduino clones, each with a $2 esp8266 wifi chip, with various sensors for measuring flow of chemical solutions (I wanted cheap real time monitoring as an early warning system next to periodic sampling).
The scaling issue was getting over 500 streaming wifi signals to work in a 55c moist slightly corrosive atmosphere with concrete and steel everywhere, and getting it all into a single InfluxDB instance for analysis.12 -
(!dev)
Fuck Twitter.
I get sucked in for 10 minutes through some news article, and my blood is boiling.
I think the platform does not even deserve to exist.
And I didn't think I would ever say that.
I used to be a staunch defender of the free & open internet, even with it's ugly and extreme sides, because I was convinced the good would outshine the evil.
I displayed the Pirate flag with pride on the mast outside of my house, I was intimately involved in the founding of their political party in my country. I was convinced of the power of the internet, I believed it would empower democracy and debate.
So why do simple tweets, even just the ones about technology, incite an endless stream of vile ultranationalist & misogynist hate?
How is it that those who are reasonable get drowned out?
That fucking character limit is a cancer.
The orator's wings are clipped. The richness of language is wilting before our eyes. All that remains are a bunch of caged chickens pecking every argument to death.
I will defend the right to free speech, even when it comes to the most disagreeable and controversial opinions.
But Twitter does not promote free speech. It's poison to free speech.
It's an endless torrent of non sequiturs, which constricts all reason and intellect. It replaces free speech by pretending to have equal value.
I really don't care if you are left or right, socialist or libertarian, globalist or nationalist.
You can argue to me that we should close all borders for immigrants, that Apple makes great products, that genocide has its pros, you could try to convince me that Heineken tastes acceptable (sorry AlexDeLarge), that Linux should be outlawed or that we should really try to bring this Eugenics thing back again.
Just be fucking rational -- and "Rationality implies the conformity of one's beliefs with one's reasons to believe"
You can NOT fit both your beliefs and their supporting reasons in 140 or even 280 characters.
So what's left is just your beliefs.
Stripped of all reason.
Repeat it often enough, keep spewing, keep throwing out incomplete arguments, and you'll train yourself to forego ratio in your convictions completely.
All social platforms should get a forced captcha for every spelling/grammar error, and a 1000 character minimum.
The world would be a slightly better place.6 -
So our method of complying with user removal requests for GDPR is:
audit.record("user {user.name} removed their account", serialize(user));
user.delete();
🤦8 -
No comments allowed in JSON pisses me off so much.
Sure, I get all the arguments of "it's supposed to be a data-only format for machines", "there are alternatives which support comments", and "you can add comments and then minify the file before parsing"
But right now, when I just need to put a quick note inside a super confusing legacy package manager config about why certain dependencies to be frozen at a specific version, IT FUCKING PISSES ME OFF THAT I CAN'T JUST ADD A FUCKING COMMENT.18 -
I don't know a lot of people in other market segments who have zero fear of losing their job. Since I discovered that my coding skills are marketable, I have not lost a night of sleep over job security.
I'm very happy with my current job, but the privilege of rarely having to feel uncertain about income is incredibly liberating.4 -
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 -
Office manager sending a mail that all spaces now only have "sustainable vegan leather" furniture, "to carry responsibility for the planet and commit to a greener company image".
You mean you bought uncomfortable plastic chairs.
Vegan leather is just fucking plastic.
Not all plastics are bad, but in this case it's a very toxic plastic, a PVC softened with phtalates and stabilized with cadmium stearate, produced cheaply in a country with no regards for public health or the environment.
It's about as sustainable as munching down a vegan quinoa avocado salad in a private jet on a transatlantic flight.
There are moments where I'm glad that I'm still working from home, because I would have planted that ugly fucking desk chair straight into the equally ridiculous power-slurping hipster "sustainable vertical herb garden" with its 500 watt growlight bulbs.15 -
I've fixed all the bugs in the issue tracker that are "fun to solve". What remains are vague reports of unexpected behavior.
Today is going to be tough 😫3 -
I feel guilty when I spend time after work writing code, because there's that voice in the back of my head saying I should switch to leisure activities. "You've worked enough, don't sit all day, it's unhealthy".
Then I go for a walk or start planning something to cook. And there's still this weird feeling of guilt for not being productive enough, telling me I should learn a new programming language. "Work on your skills, you need to learn stuff to stay relevant in your field"
BRAIN, BE FUCKING CONTENT WITH WHAT I'M DOING FOR ONCE!
And stop fucking bullshitting me.
You're not trying to make me take a walk, you're not having my best interests at heart by making me learn or work.
I'm fucking on to you, you treacherous shitlitter of neurons. You're betraying me, and it happens every single fucking time I let my guard down.
I alt-tab out of my IDE, and within seconds you're there, impeding my intellect, making me click bookmarks to check the feculent streams spraying from the fingers of "friends" on Facebook.
I take a poop, and you just let me slide into a slowwitted state where I pick up my phone and stare at some crapfilled mire of memes.
You're the retarded digital-era id, wearing the disguise of a renaissance smart-ass ego, and you're dumping the fucking guilt on ME?
FUCK YOU AND YOUR MEMES, I'M GONNA BAKE A STEAK WITH MUSHROOM SAUCE AND WATCH PROGRAMMING VIDEOS WHILE DANCING.
NAKED.
(and maybe browse devRant later. I still love you, devRant)5 -
We have a Miro collaborative whiteboard where product managers map functionality and user flows.
It currently has 89442 post-its & arrows.10 -
I think the main issue with Computer Science is that it's considered an Academic study, while 99% of work is very much dynamic, quickly evolving and hands-on.
I think all forms of (higher) education should be part time, starting at 4:1 college/work, gradually moving towards the opposite.
Currently, combining work and study is only done for "lower level" education, at least in my country: For example a car mechanic needs to work on actual cars, and barbers need to cut actual hair.
To me, it makes sense if engineers work on actual software, during their education.
It also feeds back into the education itself, when companies are paying for courses and the course doesn't teach practicalities, there's a lot more feedback to the colleges on how to adjust their material.8 -
Fuck articles which are nothing more than tweets wrapped in ads and paragraphs which repeat the content of the tweets.
Yeah I know that software version x was released, I just read the fucking tweet! — I googled for more details, which points me at 10 mainstream tech news blogs, which are all in the business of fluffing up three sentences into 6 paragraphs without adding any value.
I wish Twitter just charged royalty fees to embed on for-profit websites.10 -
This morning:
SLACK HAS A DARK THEME! ALL GLORY TO THE AMAZING SLACK TEAM! SLACK FOR PRESIDENT!
This afternoon:
OH GOD THIS THEME MAKES ME WANT TO SCOOP THE EYES OUT OF MY SOCKETS THE FONT LOOKS UGLIER THAN THE PILE OF SKINFAT I SCRAPED OFF MY MOUSE ITS AWFUL I NEED HUGS SEND HELP
Thanks, companies, for trying, I guess.
I love dark themes, but the ones provided are often even worse than the light themes.
They go overboard with extreme black/white contrasts, pick a super weird hue of puke-gray, or certain elements are unreadable.
So, please, instead of wasting the time of your designers on something that's clearly too difficult for them.... how about just making it easy to create community themes for your app?
Especially if it's an electron app, how hard is it to add a config option to import a CSS file, and provide one template as an example?7 -
Developing a Haskell project, indenting everything with 3 spaces. Develop to over a million lines of code. Use Darcs as a repository. Run the code on AIX powerpc architecture. Suffering from special snowflake syndrome.9
-
I wish all open source desktop applications had the same combination of expert features and polish as Blender.
The state of FOSS applications for creating diagrams, DB management & ERD, drawing SVGs, editing video, slideshow presentations, document processing, etc -- Yeah just all of it seems to be either stuck in some 90's UX paradigm, or it's a basic-as-fuck Electron app with 12 buttons for toddlers.
I know... I know... it's FOSS, can't be entitled.
But there's a part of me that really wants to be.
Fuck it, I'm just going to be entitled.
FUCK YOU LAZY FOSS DEVS, GET YOUR FUCKING SHIT TOGETHER AND MAKE SOME MODERN APPS. THROW YOUR GTK TOOLKIT BULLSHIT IN THE TRASH, GO CHOKE ON YOUR RETARDED WINDOWS-95 THEMED TOOLBARS, AND START MOTHERFUCKING COMPETING. YOU'RE BEING SURPASSED BY VENDOR LOCKED $50/MONTH CLOUD ABOMINATIONS MADE FOR COKE SNORTING DIMWITS. DON'T GIVE ME THAT "BUT PEOPLE WORK ON IT FOR FREE" CRAP, IF BLENDER CAN MAKE A GREAT COMPETING PRODUCT THEN SO CAN YOU.
Ah, completely unjustified and unfair.
But it still feels really, REALLY great to get it off my chest.
Now that I have descended from my soapbox, I'll go drag my useless developer ass over to the nearest FOSS project and see how I can contribute to a slightly less depressing future.15 -
Find a place where management is able to handle some criticism.
I personally think Agile/Scrum is holy, and I don't mean "yeah we kind of do our own version of it", no, fucking do it by the book. The PM shouldn't assign estimates. Developers shouldn't receive bugfix requests from anyone other than the scrum master. The CTO can't be your scrum master... etc.
If a company can't answer the question "What were the points of feedback during the last retrospective(s), and how are those points being picked up?" -- Don't work there.
Many other things are optional in my opinion. I could work at a company without QA, without fruit baskets, table tennis, without Friday drinks. I could even live without git & continuous integration, just emailing patches to a patch integrator. I don't care.
But maintaining a safe bubble of serenity and sanity for devs to do their work in, that is an absolute must.
Also, option to WFH as much as wanted. Offices are nice for social bonding, but they kill productivity for me.6 -
I call my git repos the field hospital.
I didn't finish my studies, but I seem to be the most qualified person to pick up the scalpel. Big corner of body bags. New brilliant ideas arrive, I do what I can with the time I have. Sometimes something survives, but it's usually too heavily mutilated to fully function. Unfinished refactorings develop into hardened scar tissue, the feature creep starts festering and leaking.
I should get better at triaging, just deleting old crap, pick one project and nurse it back to health.
But it's not easy to start with fresh focus, when your keyboard is still soaked in booze and the blood and tears of all the victims you've butchered.3 -
Every time management says "were now using SaaS product X, and they're giving a webinar so we can learn how to use their solutions to take our business to the next level!" — I can't help but associate it with Nigerian Prince scams.
The longer I'm a developer, the more I think vertical integration and inventing your own shitty wheels isn't such a bad idea.
Their generalized, overpriced seat-per-month service always boils down to "vendor lock-in, nothing can be customized or exported, integrations are a pain in the ass, and within a few months the bills will explode because of some overage fee".10 -
A glass of cognac, a blotter of LSD, go to the spa for a massage, turn on some Sibelius, Mahler or Tchaikovsky, and play Factorio all night.
Sometimes I also just work on my forever unfinished SciFi novel.
Or I install FL studio to realize 30 minutes later that I'm about as musically gifted as a pile of bricks.
Recently I was fed up with work and made a nice new bed for my daughter out of cherry & oak wood. Carpentry is a nice distraction from coding.4 -
Arguing over PRs with juniors who try to push unnecessary badly maintained dependencies, which are in fact just turds wrapped in startup hypespeak, because they're too lazy to actually invent some non-square wheels.
-
Find super interesting forum thread from 2015 with intelligent discussion about deep technical stuff.
Creating forum account, thinking about contributing to ongoing discussion with code samples, findings, hypotheses, and some open questions.
Browse to last post, is from late 2016, from moderator:
READ FORUM RULES DO NOT POST IN OLD THREADS LOCKING THIS
Me: 😡😤😠 WHO THE FUCK CAME UP WITH THE SHITRULE THAT A DISCUSSION HAS AN EXPIRATION DATE? IF I COULD REACH THROUGH THE SCREEN RIGHT INTO 2016, I'D PUNCH YOU THROUGH THE ROOF OF YOUR MOTHER'S BASEMENT. NO ONE LOVES YOU, YOU USELESS MOTHERFUCKING CUNT OF A MODERATOR.3 -
1. Slack. Pretty good chat app for dev companies, I use it to prevent people standing next to my desk 40 times a day.
2. Unit testing tools, especially when fully automated using a git master branch hook, something like codeship/jenkins, and a deployment service.
3. Jetbrains IDEs. I love Vim, but Jetbrains makes theming, autocompleting & code style checks with mixed templating languages a breeze.
4. Urxvt terminal. It's a bit of work at the start, but so extremely fast and customizable.
5. Cinnamon or i3. Not really dev tools, but both make it easy to organize many windows.
6. A smart production bug logger. I tend to use Bugsnag, Rollbar or Sentry.
7. A good coffee machine. Preferably some high pressure espresso maker which costs more than the CEO's car, using organic fairtrade hipster beans with a picture of a laughing south american farmer. And don't you dare fuck it up with sugar.
8. Some high quality bars of chocolate. Not to consume yourself, but to offer to coworkers while they wait for you to fix a broken deploy. The importance of office politics is not to be underestimated.1 -
!rant
Most programming shirts/hoodies really suck. They fall into two categories:
1. Super lame pun quotes in an ugly font.
2. Memes transfer-printed onto cheap fabric
I'm not against puns, or quotes. I quite like the design from @AlexDeLarge
https://devrant.io/rants/830390/, and I've been looking for a nice shirt with Dijkstra's "simplicity is a prerequisite for reliability" on it.
But many do not put any thought into beautiful design, and shit like "No place like 127.0.0.1", "404 girlfriend not found" or "There are 10 kinds of people" really stopped being funny a decade ago.
Good design, colors & quality are so fucking important.
What are your favorite dev-related clothes?16 -
I applaud my coworker who titled the business analytics dashboard showing end user feedback and CES values projected onto the 6 meter high wall of the office lobby.
"International Normalized Customer Effort Score Tracker"9 -
Fidget spinners are stupid.
But what do you have on your desk instead?
The challenge of a Rubik's Cube? A classic Newtons Cradle? A stack of empty pizza boxes? Magnets, because how do they work? The one and only devRant stress ball?
I'm looking for something to mess with when I'm staring in disbelief at horrible PRs.
Preferably something semi-creative, tactile and stress-relieving. The three-dimensional material equivalent of the doodle.
Something which is less annoying for coworkers than the clicky switches in my keyboard. And a bit more appropriate than my genitals.34 -
Amphetamine.
If that doesn't help, "working from home", which means posting random PRs from my emergency pile every two hours, while shooting noobs in Overwatch.13 -
Product owner:
Okay we have users and groups. Users have roles, roles have permissions, but groups can also have roles or permissions. Clients have users and these client-users can have special kinds of permissions. Now we need to add projects which have pages and special project users who manage the projects, but only the client-users can set rights for which project owners can manage pages. Pages are coupled to roles, and assigned to workflows, unless the client-user already had the permission to... wait where are you going?"
Me: "Fetching a new SSD. I ran out of hard disk space trying to model the database design. Could you please start from the top when I get back?"5 -
OK I'm going write some serious heaps of code, my commits will fucking ddos the repository!
All I need is some tunes to drown out the office noise. Hey this song is quite good. Haha Google suggests my favorite song from 2 years ago, let's give that a try next. Oh I didn't know there was a new album out... hmm but I don't like everything... lets find out which 2 songs are good enough to add to a playlist by skipping aimlessly through it. Come to think of it, this style is not really that great for coding, maybe something with less vocals. Oh I know, I'll see if I can find some postmetal goa triphop electroswing dubpsy remix of that on YouTube, that would be enjoyable. No... I like the original better, although I'm a bit bored with it, maybe there's a similar artist hiding in a corner on Bandcamp, or Soundcloud... hey that's a cool mix, I wonder where that sample is from, lets try to find it...4 -
Development plus laboratories is kind of my expertise, so I ended up in a little grimey HR office looking out over the factory floor of a cocoa processing facility. I was applying for an automation job, a temp thing for three weeks, updating some ugly scripts which took readings from machines and threw them into excel sheets.
"We don't think a developer like you has enough experience working in an environment like this. Safety and working in sterile conditions is very important to us"
I had sent them my certifications in advance, plus references to the work I did in a biosafety level 3 lab for JnJ and cleanroom work at an aerospace company.
There were fat sweaty guys on sneakers, taking cocoa paste samples right next to the window.
They ended up hiring a friend of mine with zero experience, for minimum wage.
Just be fucking honest, don't waste my time with courtesies and lies. If they had just told me about the low salary indication, I would still have done the work. I was in between jobs anyway, bored, trying to fill up some spare time.4 -
Fuck post-it notes.
Oh look, another product manager found his inner child and plastered a wall with a colored arts and crafts project.
Don't misunderstand me, I'm abso-fucking-lutely in favor of connecting with your deep childish nature -- but then at least enter the meeting room like a boss, armed with some creative ideas, really get to work with some fingerpaint, modelling clay, glitter, molly, acid blotters and grape juice for the whole party.
Not only was that project poorly thought out. Not only does the assortment of colored squares contribute nothing to the clarification of ideas. The issue is also that by Monday morning, the meeting room will look like a strip club after an escalated party, floor littered with 60 little neon pink and green slips reeking of desperation, cheap glue and failure.
Now your whole project is on the floor.
OH DIGITAL WHITEBOARD YOU SAY. NOW WE HAVE 10 MANAGERS FIGHTING DIGITALLY OVER VIRTUAL POST-ITS, ON A CLOUD SERVICE COSTING $500/MONTH.
Product managers, just go fuck yourself, I don't care about your kindergarten bullshit processes.
Call me when you manage to pull a workable idea out of your ass, and just draw an SVG diagram with Inkscape, or write your brainfarts into a nicely organized Markdown file.1 -
"Create an account now to watch these courses for free (don't worry, we hate spam as much as you do)"
Well that's a fucking lie. This woman named Christy is abusing MailChimp vigorously.
Fuck off marketing with your disingenuous "community update" mails, "what you missed last week" newsletters and "handpicked crap for you" notifications.
I want to use your platform, I even pay for it, but I don't want to get your useless mail until I found the energy to dig through your config panel looking for some half broken toggle button.6 -
"As a team, we have the shared responsibility to ___".
(replace with ALL of the following: resolve bugs, do junior's code reviews, clean up dead code, keep the kitchen clean, improve test coverage, write documentation, order coffee beans, etc)
NO. JUST FUCKING STOP RIGHT THERE. Shared responsibilities do not exist. A single person is responsible, and can optionally delegate tasks.
EITHER I DO IT AND I'LL BE FUCKING AWESOME AT IT, OR SOMEONE ELSE DOES — BUT I'LL SLAP SLACKERS IN THE GENITALS WITH MY KEYBOARD.
Fucking startup hipsters with their community driven attitude, this way no shit gets done, ever.7 -
Favorite/most hated language? (I love a good flame war)
Why did you quit your previous job / Moment you've considered quitting your current job?
Why do you think Linux is so much better than OSX? (Ahh yes I feed on apple flavored hipster tears)
What side project are you currently working on?
If you had the best teams and unlimited funds, to be used only on a serious project using both Blockchain, IoT and AI, what would you create?
If you forgot how to code, what other career would you pursue?
What is your "I was so busy wondering if I could, that I forgot whether I should" concept/idea/project?
How many chicken eggs would fit inside the moon if it was hollow? (I like retarded interview questions)
If you started a startup, what unique perk would you offer your developer employees?
Do you under- or overengineer?
Most unnecessary feature you ever had to create?
Most necessary feature your boss/client denied to approve?15 -
Staring at cursed blinking cursors.
Repairing work of worst thinking workers
Reverse merges or it'll murder the servers, it nurtures despair
Amateur managers, dimwitted savages interrupt all of us janitors
Cleaning up damages, spills and experiments using skills in embarrassment
Explicit foulness, in a minute it's straight to the bowels with weapons of limitless vowels
A bittersweet hateful machete, eviscerates stateful spaghetti
The slow disease flowing from keys knowing it's going to please
The growing unease, no one agrees, there's no guarantees with your useless degrees
Need more drugs, keyboard's crawling with bugs, falling as I chug
A bottle of cognac gotta love all the hacks, no poise for code that lacks
All the noise, gotta relax, before I destroy the syntax.
Excuse me for not making sense.
Too gloomy, aching and tense.10 -
"Older versions are more stable"
The whole concept of LTS in development pisses me off.
Delayed upgrading, whether it's the language itself, dependencies or tooling, does just one thing: It makes future upgrading way more difficult, often to the point where the company eventually runs into this maintainability wall, and gets stuck in old, unsupported versions.
"But... stability!" — The tiny chance that the newer version has such serious stability regressions that it negatively impacts your own product doesn't weigh up against the clusterfuck you fall into if you push the task too far into the future.
You can relatively easily assess a new major language version using benchmarks and unit tests. Predicting the repercussions of staying on PHP 5.4 or Python 2.7 for another year, predicting the impact of upgrading the codebase later, that is almost impossible.
I'm not saying you should live on the bleeding edge in production, but as soon as a new stable version of a core technology is released, just fucking drop everything you're doing and port those deprecated methods!7 -
Why do people say "Well, I don't know about that" to voice disagreement?
If you admit your own naivety on a subject compared to your peers, if you admit that you do not have the required knowledge to have formed an opinion, how can you disagree?
So it can either be expressed with genuine innocence, like 'Well, I don't know about that, tell me more!', which is never the case.
Or it means "Well I don't know anything about that... and I'm ashamed of the fact that I can't find any counter argument, so I refuse to trust your fucking expertise, shut the fuck up until I give you the right to voice your knowledge"
Which is a bit rude.
Now that we're on the topic of annoying expressions and platitudes...
"It's not rocket science" -- Rocket science, understanding how a rocket works, is surprisingly simple. You fill a cylinder with fuel and oxygen, add a pump or two, put some sparks underneath. Chemical reaction equals energy, direct energetic particles using a nozzle, Newton's first law does the rest. It's so simple that people don't actually study rocket science. They study aerospace engineering, or astrodynamics, which are difficult topics.
So if someone says "Devops is not rocket science", they're right, but for the wrong reason. It's actually harder than rocket science. Maybe easier than developing thermal protection system materials or solving n-body orbital problems with a slide ruler though.
"Great minds think alike" -- No, great minds actually think creatively and generate unique thoughts, if two minds think alike, the solution was just fucking obvious.
"Don't reinvent the wheel" -- First of all, pretty much nothing in code looks or even remotely functions like a simple wheel. Even metaphorically, all existing code equates to oval or square wheels. If you said "Hey, don't bother making better wheels, I like my ride to be bumpy because it stimulates my asshole", say no more, who am I to come between a product manager and their anal stimulation.
Anyway, those were four coworkers who I would've strangled with an Ethernet cable if it weren't for a certain pandemic and the risk of infection which comes with choke-coughing.
What are your linguistic pet peeves you get homicidal over?23 -
"Hey, I've noticed that when I run this script, I get an error message. It says it has failed to do step x"
A: "Have you tried running it with sudo"
"Yeah, that works"
B: "NO WAY YOU SHOULD NEVER USE SUDO THAT'S A MAJOR SECURITY RISK, ARE YOU RETARDED RUNNING THINGS WITH SUDO IS EVIL"
"Do you have an alternative solution?"
*trjirp trjirp* 🦗🦗🦗6 -
How can you defend your ugly unstructured mess of a PR, when every spit-droplet infused spray of words from your mouth is full of syntax errors?
How can you call yourself a developer without being aware of basic logic? I ain't got no tolerance for double negations, not not true is just true, you doltish twat.
WHEN YOU TALK THERE IS A CLOUD OF RED SQUIGGLY LINES IN THE AIR FLOATING AROUND YOUR HEAD.
I mean what the fuck is up with eggcetera? Why are you just swapping out letters? What has the little ligature t in & ever done to you? Do I have to fucking replace & with 🥚 so your word diarrhea makes sense again?
NO. JUST PLEASE... STOP TALKING. YOU'RE RAPING LANGUAGE, AND IT WAS ALREADY BEATEN DEAD.
Unlike me, you have a degree in computer science... but how, how the fuck did you pass? How did neither your tongue nor code get stuck in a linter?
AND YOUR RESPONSE IS STILL: "YOU DON'T NEED TO LEARN WHEN YOU'RE FINISHED WITH SCHOOL" ... "WHAT DOES IT MATTER, IT WORKS, RIGHT?"
NO, IT'S NOT RIGHT.
You're lucky I love refactoring.
I'll start with a medical grade steel scalpel and a long sharp hook. Maybe I can clean up this brain a little. See if the tests turn green if I cut some of this gray matter away... plenty of unreachable statements, so many unnecessary loops...
Might have to start from scratch.8 -
Most successful project... What is success?
My first computer at 8 years old was a Commodore64. There was no internet yet, so I used the manual to learn about BASIC and assembly, sound and sprite registers, and created a pretty elaborate RPG. Mostly text, some sprite art, soldered some eeprom cartridges, optimized the code. Spent almost a year on it. An enthousiast magazine picked up on it, revised, QA'ed & published the game, sold a little over 10k samples. I got ƒ0.25 per sale, and I was completely overwhelmed how much candy one could buy for ƒ2500 ($2k corrected for inflation).
More recent:
I was employee #3 at my current company, started when it was worth nothing and the website redirected to a set of Google Forms containing all the logic. I wrote a large part of the first, monolithic backend.
Now there's teams in a dozen countries, and an estimated revenue of a quarter billion.
So obviously my current "project" is more successful.
Still, my current job sucks, the company turned into a desolate passion-free wasteland full of soulless fake hipster zombies and managers who seem to derive sexual pleasure from holding extremely ineffective meetings, endlessly rubbing their calendars together in their bureaucratic orgy of ineptitude.
So, I'm more proud of my C64 game.2 -
Using 10% React with the rest in Jquery. Importing a giant legacy CSS blob in a newly made SCSS file. Two thirds of the API documentation in docblocks, the rest in Markdown files. Half of the repositories in Github, the other half in Bitbucket. The root of every project littered with ymls and jsons and readmes of stupidly named tools no one has ever heard of.
Fuck your partial refactoring, fuck your little experiments, fuck all this half work. I'm so done with this shit. 😡5 -
Fuck Optimizely.
Not because the software/service itself is inherently bad, or because I don't see any value in A/B testing.
It's because every company which starts using quantitative user research, stops using qualitative user research.
Suddenly it's all about being data driven.
Which means you end up with a website with bright red blinking BUY buttons, labels which tell you that you must convert to the brand cult within 30 seconds or someone else will steal away the limited supply, and email campaigns which promise free heroin with every order.
For long term brand loyalty you need a holistic, polished experience, which requires a vision based on aesthetics and gut feelings -- not hard data.
A/B testing, when used as some kind of holy grail, causes product fragmentation. There's a strong bias towards immediate conversions while long term churn is underrepresented.
The result of an A/B test is never "well, our sales increased since we started offering free heroin with every sale, but all of our clients die after 6 months so our yearly revenue is down -- so maybe we should offer free LSD instead"5 -
Not to get political, but apparently the political climate in the world leads to the following situation.
"I'm being a fucking evil lying asshole. But I'm actually a good guy, because I'm doing it as pseudo-scientific research to show how easy it is to be evil and dishonest"
https://zdnet.com/article/...
("Researchers" with an anti-FOSS motive attempting software supply chain attacks on Linux kernel)
What's next? "Scientists" killing puppies to show that, if someone was inclined to be that evil, puppies are weak and their necks snap easily?16 -
Let's install some Addons! Hmm where is that menu item... oh could it be called Extensions? No? Wait... maybe Plugins then?
Maybe it's inside of a Settings window. Oh there's nothing called settings in this endless menu I think. Or is it called Preferences? Options? Properties? Configuration? Ugh and should I look in the File or Edit or Extra menu in this App, Application and/or Program?
Maybe I can Search for it?
OH YOU FUCKING NAMED THAT FIND INSTEAD OF SEARCH, YOU PRESUMPTUOUS PRICK, I CAN'T FUCKING FIND ANYTHING IN YOUR BLOATED GOO OF A GUI.
*scrambles back into his bash-shell like a hermit crab, making soft defensive noises*8 -
I've found that suddenly and infrequently, for the past week or so, letters are missing from typed code, and I have to go back and fix them.
Now that is not super weird I guess, but as someone who tends to type quite accurately, and uses a high end mechanical keyboard...
I'm just wondering if the keyboard is broken, or if it's a brain tumor.
I've tried to test it, but every time a letter is missing I'm not actually completely sure I hit that key...
And considering the price of the keyboard, I'm also not completely sure which cause I prefer.11 -
There are days I work hard and nobody notices. Today I have done almost nothing and nobody notices.
Independence is bittersweet3 -
Oldschool CSS was not much fun, but I never understood how this made it any better:
<div><div><div><div><div><div>Bootstrap</div></div></div></div></div></div>
I always forgot a row, had cols inside of cols, forgot how form-groups worked, or found other ways of messing up the whole layout.
Instead of complex CSS, there was now this new complex language entirely expressed through the nesting of layers upon layers of divs. It was like LISP's brackets, but more verbose.
That was the moment I realized that fullstack is bullshit, that there are intrinsic talent differences between frontend and backend devs, and that it's OK to focus on a narrower but deeper field.8 -
Do not assume that the current codebase is perfect, or even remotely close to an example of acceptable style/structure.8
-
Oh null, how I detest you.
select birthdate, isnull(birthdate) from Users;
>> [null, 0]
Maybe I wrongfully accuse the abstract concept, and should rather loathe the engineers who can't wrap their heads around null despite their heads being a skull literally wrapping fucking nothingness.
Oracle engineers:
"Wait that's invalid input. What do we do?"
"Default the date to 0000-00-00?"
"That kind of looks like a null..."
"Hmm but it isn't *really* a full-on, butt-clenching, hardcore, intrinsic, I-can-taste-it-in-the-air null"
"Yeah not really feeling it either. It's not giving me the typical null-goosebumps."
"Oh, I know! Let's make it a pretend-null, where the actual type totally depends on the layer of the application!"
"Yeah developers love ambiguous random conversions!"4 -
The fact that this week's rant topic exists is the exact reason I never do freelance work. It always ends in horror.
I don't believe good fullstack devs exist. A good junior will assess their talents/passions and specialize to become a senior. They'll keep checking the rest of the market from the corners of their eyes and start moving when necessary. But eventually, focus and specialization is a must.
If that's true for the field of development... why would I invest time in marketing, support, sales, PR, legal?
Maybe you can earn a bit more gross income in freelance work — but I see my employer as a service provider, I "hire" them so I don't have to manage phone calls, lose sleep over court cases, play product owner or worry about getting paid.9 -
I bumped into my PC early this morning, and it took me 12 hours to realize that 3 out of 4 RAM sticks were chilling on top of my graphics card... together with the CPU cooler.
I'm not sure whether I should be amazed that it kept running (with a few random reboots) with just a crusty chunk of thermal paste as a cooling block, or worried about how fried my hardware is now.12 -
1. Ability to freeze time... (except for internet & computer speed). Too many ideas, not enough hours in a day. Sleep should be declared optional as well.
2. Ability to not eat/drink at all, or eat/drink in copious quantities without negative effects. I enjoy a cognac, pizza & chocolate binge more than nausea, upwards BMI creep and hangovers.
3. True Virtual Reality. None of this headset crap, but immersiveness rivaling reality itself, with voice-controlled AI-assisted interfaces to "program" anything by simply describing it, iterating over details to add increasing complexities. Not even for porn reasons... my head just overflows with creative ideas for "holonovels" and interactive worldbuilding, but I don't have the patience nor artistic skills for game development.3 -
"During this crisis, we all need to stand together. We're contributing by providing 50% off domain registrations"
"Important COVID-19 update: Social distancing is a must. Free shipping on all dildos and vibrators"
Pandemic-themed marketing emails... 😩3 -
I fucking hate that PHPStorm is the only valid option for serious PHP framework development.
It's the opposite of free in every imaginable way: Expensive subscription license, hard to fully customize, closed source.
But there's just nothing even approaching the intelligence of intellisense. There are plugins for Vim, Atom, Sublime and VSCode which try to emulate it, but they are so fucking basic and dumb.
😠25 -
Every single fucking time I run into problems, the problems are very specific edge cases of common problems.
The search results however, are created by an army of retards, they're a sea of answers to the common problem. They drown out my super specific edge case.
And then someone dares to half-read my stackoverflow question, and immediately mark it as duplicate.
Ugh.6 -
The manager and selfperceived omnipotent cult leader was the worst kind of businessman. Slimey and trecherous, zero sense of ethics, but felt holier than the pope because he "helped" his weakling herd of piteous employees.
These employees were smart kids, most of them in their late teens. All of them legally disabled. There was this kid who gobbled up ritalin like candy, a boy who had received his measles shots and turned socially awkward (/s), a chubby girl who could name all the hex colors of her chocolate stained shirt... you know, what we call skilled developers in the industry.
Fiftyfive of them.
They were awesome, awkward highschool dropouts, like I had been a decade earlier. They worked 50h a week. They had great humor, were passionate, devoured information about new technologies, and they built custom websites from scratch in no time. I had to lead this flock, and felt honored to work with them.
Then things started to smell funny.
I discovered all 55 of their workstations ran pirated software, from Windows to Adobe CS. I'm not without sin in that regard, but as a company it's just plain stupid.
Clients were treated like shit. I mean, we all feel like punching a client in the face sometimes, but I'm taking about unjustified debt collections paired with death threats.
Then I found out these kids were often disappearing for a few months, only to return months later.
I started digging, and discovered they were all working reintegration internships (because they were on below minimum wage disability payments), at almost zero cost to my employer.
After 6 months, my boss gave them a negative recommendation, they were all too "sick" to function in normal jobs.
Then they were rotated to a shadow company, doing the same work for another 6 months, and so on to a third company.
He broke these kids, talked them down, made them feel worthless. He threatened the ones who understood what was happening.
I ended up bringing the company down, with the CEO and two government officials jailed for fraud and corruption.
Some employees were quite mad about it, at least at first — I was the shepherd who abandoned his sheep. Luckily, most found better paid positions in no time.
Truly one of the most fucked up and difficult situations I've been in.6 -
So, now that companies are used to "WFH", maybe we can agree upon a better office for tech companies?
I do actually think the more "ideal" tech company office wouldn't have to be expensive.
It can be smaller. Any tech company worth it's salt should have discovered in the last few months that it's not just devs who can work from home. Sales, support, management — you really don't need to fight your way through highway traffic or cram yourself into a sweaty subway every day.
There's value in having an office. Not everyone can fit a good workspace in their apartment.
But we could at least center it around:
1. A bunch of small, completely soundproof isolation booths, for those who need a focus space, and can't find a silent spot at home.
2. A social lounge space, a communal living room with couches, a bar, creative relaxing stuff, whiteboards, etc. WFH can become depressing even for the most antisocial employees, chilling on a couch with some coworkers to brainstorm ideas or chat about random tech is valuable for building good relationships with your team.
The "open plan office" with rows of desks and monitors, no matter how luxuriously decorated with vertical gardens and hipster desks from reclaimed wood, can go die a fiery painful death.
I either want to work, or socialize.
Open plan offices (and it's even more dystopian suicide-inducing cousin, the cubicle) are like being unable to choose between fucking and a blowjob, so you end up humping a navel.
Oh, and conference rooms, go fuck yourself as well. I want to be able to minimize your ugly face if you plan to talk about company financial reports for 2 hours.2 -
Clicking "share" on directory in Windows Explorer, digging through config panel, fidgeting with network discovery options, toggling password protection, digging through account management, jumping over a chair 3 times to channel my inner Bill Gates, checking directory permissions, sacrificing 7 virgin unicorns, go into lusrmgr.msc, curse various gods, install CIFS1.0 protocol, reboot computer, disable encryption, checking registry, trying to summon Steve Ballmer using the blood of a bald goat and sweat-scented candles... 5 hours.
Install Ubuntu on spare SSD, mount Windows NTFS drive, start SMB daemon and set up samba users... 15 minutes.12 -
!rant
Best day of my life ❤️.
Arrow functions will be added to PHP 7.4:
https://twitter.com/nikita_ppv/...22 -
I forged a katana once, under the supervision of a swordsmith. Nothing super special like damascus patterning or anything, but the cutting edge was pretty sharp.
Ugh sorry, lame word jokes.
In terms of software...
Microsoft Office Ribbon (cutting edge at the time, lol). Only as a maintenance drone on a bunch of manual search-and-replace work and merge conflict resolving.
Ariane 6 family of rockets (Welding X-rays and other DICOM quality assurance).
Software for continuous flow chemistry, developing microfluidic PCBs to perform Elisa immunology assays during the Mexican flu outbreak. Idea was to eliminate the need for microplates, expensive robots, microwell washers, etc — just have blood plasma, enzymecoated nanoparticles, antigen, conjugated detection reagents and substrates flowing programmatically through a PCB with a spectrophotometer built in.5 -
Frustrated, tired and a bit lost.
I'm a "Senior PHP Backend Dev", which includes not the greatest tech stack nor the best job title, but it pays fine, and the company is awesome to work for.
I suck at writing features, but I'm great at bitching, and I easily put complex abstract concepts into usable models. So I'm also QA, tester, tech lead, database architect, whatever.
That makes writing PHP less annoying, because I create the rules, and whip devs around when they forget a return type definition or forget to handle an edge case. But I don't write a lot of code anymore, I mostly read (bad) code.
Lately I REALLY feel like doing something else... problem is that I know JS/ES6, but really dislike React/Vue and the whole crappy modern frontend toolchainchootrain of babelifyingwebpackingyarnballs. I know Python/Tensorflow/etc, but don't feel like I want to go into data science or AI. And then I'm awesome at the shit no one uses, like Haskell, Go and Rust (and worse).
I got a job offer which combines a very interesting PHP codebase with a Java infrastructure, where I could learn a lot... and I'm kind of tempted.
Problem is, everyone always shits on Java. I always made a bit of fun of Java myself. Don't even know exactly why, probably some really cruel instinct which causes kids to bully the least popular kid.
I know the basics, I've written the hello world, and a small backend app for a personal project. I know how strict and verbose it can be. I love the strictness in Haskell and Rust.... but those are both also quite terse.
Should I become a Java dev? I'm not talking about Android SDK, but an insane enterprise codebase at a life sciences corporation.
To the pro Java devs: What are the best and worst things about your job, about the weekly processes, about the toolchains? Have you ever considered other languages? Do you unconditionally love and believe in Java, or do you believe Swift, Kotlin, Scala or whatever will eventually make it completely obsolete?
Will Java hasten my decline into the cynical neckbeard I was always destined to be?
There are a lot more fun langauges, but looking at realistic demand and career value...20 -
Yeah sure, the Metaverse will be bigger than the Internet.
I really believe that. Short of a system collapse, there's nothing which will stop some Web/VR/AR amalgam from eventually going mainstream. If anything, a prolonged pandemic will make humans hunger for more digital entertainment and socializing options.
Might take 5 years, or 25, but it will happen in some form. Eventually, people will even readily accept various augmentations to their bodies to further immerse themselves and connect to digital experiences.
BUT:
We're still pre-bubble.
Does no one remember the dotcom crash?
Facebook/Meta will become the new Yahoo, decimated to a sliver of its former glory. Million dollar hype NFTs will become the new $10 parked domain names. 99.99% of all current efforts and content will end up like a modern day Geocities Archive.
So yeah... when I read that my pension fund is considering "investing in metaverse technologies"...
...you fucking bet it's time to transfer to a different fund!22 -
When I found the power of poke on c64, and how to output sprites rather than use print statements. Finally, my text adventures changed into full blown rogue-likes!
https://c64-wiki.com/wiki/Sprite/1 -
My best case "Deploy Bittersweet Pipeline":
Prep a bunch of carrots, cucumber and tomatoes for day snacks. Roll & cut some pasta noodles, cook stock with fresh veggies & mushrooms, add some droopy soft boiled egg(s) to the broth, drizzle in some black garlic hot sauce. Enjoy that breakfast with an unsweetened Australian flat white and a half-liter cup of chai spiced green tea. Watch some science/tech/woodworking/cooking YouTube videos while feeding my Bittersweet Jr girl.
(yeah my mood is determined for about 90% by food)
Fire up docker compose & IDEs, and start refactoring code and migrating/fixing old databases.
My worst case "Fatal Incident Bittersweet Repair & Recovery Process":
Stuck while refactoring the worst kind of trash code since 9am.
Pour a glass of Tawny Port at 9pm. Pour a glass of cognac at 11pm. Unwrap 3 chocolate bars and break them into chunks in a bowl. Look at IDE, get nauseated, not from the booze or chocolate, but from the code.
Can't fall asleep because code is too broken, that crap should simply not exist. Take some LSD and amphetamine, can't sleep anyway. Start splitting several 10k-line-long files into smaller classes, type until my fingers have blisters. Empty two bags of Doritos, order a large Falafel with extra garlic sauce at 4am.
Fall asleep at 5am with my face on my keyboard, wake up at 9am with keyboard pattern on my skin.
Cook some hangover noodles.
Call work that I'm taking 3 days off. Feed Bittersweet Jr while I watch some YouTube channels with her. Bittersweet has successfully rebooted.1 -
Oh PHP, I love your silly quirks ❤️
Error: Use of undefined constant JSON_THROW_ON_ERROR - assumed JSON_THROW_ON_ERROR (this will throw an Error in a future version of PHP)2 -
In PHP (yes, it's a language I... don't hate) I've always hated exceptions. They're like GOTO, in an OOP world with interfaces and contracts, try/catch is really odd as it breaks a promise about returning with a typed value.
But you can now do this in PHP8, which comes pretty close to Maybe/Either monads (Option, Result whatever it's called in other languages):
function getUser(): User | UserNotFound
PHP8 unions don't come with the same strong guarantees as in other languages but *pets PHP gently on the head* you did well, my boy.
Now I would really love it if PHP9 could do:
function getUsers(): Collection<User>
Type Tree<T> = Null | Node<T>;
function 🎄(): Tree<Branch<Ornament|Light|null>>15 -
A box with 20 blotters of LSD, a bottle of Tawny Port, some rock climber's hand strength training clay which is great against RSI, a very undomesticated purring feline, some leatherworking tools (making a new folding case for my phone), 2 sesame bagels with cream cheese, a piece of cherry wood, two routers (one woodworking, one internet), one Ducky Horizon and one ErgoDox keyboard, two boxes of baby wipes and a bottle of formula, an expired ticket to a corona-cancelled concert, my sleeping newborn daughter wrapped in a black hoodie, a bottle of cognac, 3x 1440p displays, a chunk of chocolate, one freshly brewed cortado, a bottle of dimethylsulfoxide, 3 laptops, a TV remote, a glass of water, and one bolt which was left over from an IKEA box but I'm unsure which furniture item it belongs to.4
-
Why is it that pretty much zero package & framework maintainers understand semantic versioning?
1. If you do a complete rewrite of your package, but the resulting API is identical, you don't need to bump to the next major version. As a user, I'm thankful for your increased performance or cleaner internal code, but it doesn't really affect my update process.
2. If your package required some-framework 6.0.0, and now ALSO supports some-framework 7.0.0 but is still compatible with 6.0.0, you don't need to bump to the next major version. As a user, I can now upgrade the framework, and know that the package will keep working, but otherwise it doesn't really affect me.
3. Following your versioning along with the framework/language version is super annoying, especially if your library really doesn't need to differentiate between framework versions because it's not actually utilizing new framework functionality.
4. On the other hand, if you stop supporting a certain language, framework or shared library version, or change the public methods, exceptions, fields, etc, you MUST bump to a new major version.
Yet everyone gets this wrong.
For example, many of Laravel's underlying subpackages (for collections, filesystem, database, config, http, mail, etc) do not change their code in a breaking way, or do not even change at all between major framework versions.
Yet they follow along with the major framework version.
Now if someone makes a library "laravel-elasticsearch" which uses the support libraries and collections from laravel, they need to update their package to move along with the versions as well, and often they choose to number their library along with the framework in turn.
This means that to update the framework, you also need to update over 9000 dependencies.
FOR NO FUCKING REASON. THE ONLY CHANGE IN THOSE FUCKING DEPENDENCIES IS TO UPDATE COMPOSER.JSON TO BE COMPATIBLE WITH THE FUCKING FRAMEWORK.
Meanwhile, Laravel itself breaks repeatedly on minor/patch version updates, because breaking changes slip through their review process.
Ugh.3 -
I'm so fucking sick of the lack of great modern open source DB tooling.
MySQL Workbench can go suck a big fat herpes-ridden cock, it's horrible.
Dbeaver is a clunky 90's tool, which charges two Netflixes (yes, that is a valid $/month monetary unit) just to connect to a NoSQL DB.
Datagrip is nice, but has the same outrageously expensive pricing. I paid for it, and couldn't use it for my local docker DB during my holiday because it couldn't connect to the license server. Fuck you, Jetbrains. Your software is nice, but your DRM makes me hate you.
And then ERD software... It's either some hard-to-use afterthought piece of crap bundled with the DB IDE, some generic diagramming tool which makes DB-specific work needlessly unergonomic, or some vendor-locked online tool.
Fuck this shit, I'm making my own DB admin tool. With blackjack. And hookers. 😡12 -
Changed my profile color. On the new website... yellow as a background is a bit too much like a light-themed IDE 😁7
-
I thought searching for Rust answers was slightly annoying, with that stupid survival game poisoning the search results.
But trying to find answers about C programming is definitely worse.
You can make fun of the Javascript kids with their silly flutterbutt, ultrasauce and wrinklesack library names, but at least it gives clear search results.16 -
I dive in head first.
Some existing program annoys me, so I get this itch to write a selfhosted Spotify in Go, or a conky with 3D graphics in Rust.
I check the homepage of the language, download the tools, check which IDE is great for it.
Then I just start writing code, following the error corrections thrown by the IDE, doing web searches for all errors. Then when I run into a wall, I might check the reference docs or a udemy course.
Often I don't finish the project, because time is limited and I still have 4 million other things to do and learn, but at least I've learned a new language/tech.
Con: For tech which uses unique paradigms like Rust's memory management or Go's Goroutines, it can be frustrating to bash away at a problem using old assumptions.
Pro: By having a real demand for a product with requirements instead of a hello world or todo app, it's much easier to stay motivated, and you learn beyond what courses would teach you.5 -
It feels like we have a "kickoff meeting" for something every few days.
Maybe we wouldn't have to kick off so often if anyone actually guarded the... goals.
(sorry)2 -
I really like Kotlin as a language, but Gradle makes me feel nauseated.
Pulling in deps without getting errors, then the library won't resolve because of some version mismatch (still, no error or warning on build, until I try to import the dependency in the code, and then just "unable to resolve <library>" without details). All of the documentation on the internet is either super specific for Android projects, or for an ancient Gradle version. Feels like I'm back in Haskell's "Cabal Hell".
*runs back into the loving embrace of Cargo*.
What was I thinking, trying to write an application in something that's not Rust.5 -
Give everyone the ability to intuitively grasp the concept of unix timestamps.
No more timezones or DST, no more confusion about formats.7 -
I hate time.
Yes, that dimension which unidirectionally rushes by and makes us miss deadlines.
Also yes, that object in most programming languages which chokes to death on formatting conversions, timezones, DST transitions and leap seconds.
But above all, I hate doing chronological things from the point of view of code, because it always involves scheduling and polling of some kind, through cron jobs and queues with workers.
When the web of actions dependent on predicted future and passed past events becomes complicated, the queries become heavy... and with slow queries, queues might lock or get delayed just a little bit...
So you start caching things in faster places, figure out ways to predict worker/thread priorities and improve scheduling algorithms.
But then you start worrying about cache warming and cascading, about hashing results and flushing data, about keeping all those truths in sync...
I had a nightmare last night.
I was a watchmaker, and I had to fix a giant ticking watch, forced to run like a mouse while poking at gears.
I fucking need a break. But time ticks on...2 -
One of the soulless parasitic drones commonly referred to as a "recruiter" happened to find a good fit. Pure coincidence, as he had no clue what the company did, or what the tech stack was.
If I'm ever switching again, I'll do it on my own. Just thinking about the fact that this guy pocketed €30k for 3 phone calls makes me sad.4 -
For some reason, I lost my devRant subscription. No label anymore... but I'm also not charged anymore.
Subscribing again doesn't seem to work, there's a success message from the app, but not from the play store (I have a valid payment method and have other subs), no fees are charged and my account stays unsubscribed.
Has anyone else experienced this?8 -
'17:15' < '09:45' === false
'5:15pm' < '9:45am' === true
I either need a language with a stronger type system, or coworkers who understand that comparing raw time input in validation is a bad idea 😡6 -
HTML & CSS.
To me they just feel wrong.
I have been working with them for a little over 20 years now, and it feels like very little has improved. Sure we learned to make things look a bit nicer, we got new tags and properties, but the syntax is still horrible.
The fact that both are replaced by other imperfect languages (haml, jade, less, sass, etc) is just a confirmation that their paradigms are about as fucked up and impossible to exterminate as cobol.
Which points at another problem: browsers, and how slow the web upgrade cycle is — adding native support for nested style definitions in css, or replacing html with a json document seems like a trivial problem, if it weren't for the dozens of browsers and the excruciating pace at which they can adopt standards.8 -
This might not resonate with many ranters here... but FUCK Taylor Otwell & Graham Campbell.
Like, not on a personal level. Maybe they're great to drink a beer with. But as framework devs... fuck everything about them.
Laravel seems so nice, it takes away many annoyances of developing in PHP. Collections are the array object you've always needed. The route bindings, middlewares, request validation objects, it's all sweet.
But eventually your company serves a few million customers, you run into specific performance problems or missing features on a deeper level. You open the issue tracker... and see a few hundred issues about the problems you are encountering, they already exist.
Some just have a short paragraph with a request for a feature, some complete PRs with tests in the style of the framework. All of them closed.
Reasons?
"We don't think anyone will ever need this"
"This seems complicated, you can just do <super non-DRY hacky code>"
FUCK YOU WITH YOUR TODO APP SNIPPETS AND USER-POST-ARTICLE EXAMPLES. I'M NOT BUILDING THE NEXT WORDPRESS. I'M DEALING WITH THE REALITY OF GRAPH DATABASE CLUSTERS, COMPLEX AUDITING LOGS AND A GAZILLION QUERIES PER SECOND.
Sigh... the problem with all these "simple" and "elegant" languages & frameworks is that they don't fucking scale.
Not because the language, server or framework intrinsically can't do it, but because the maintainers are stuck thinking in terms of their retarded non-realistic example apps.
I think I'll go back to my cave and write some Haskell or Rust to calm down.2 -
For the last 20 years, there's one thing I've not been able to do reliably:
Share a folder on a windows computer.
Why the fuck can I write /etc/smb.conf from scratch with a blindfold on and make it securely work from all client devices including auth & acl, but when I rightclick and share on windows it's either playing hide and seek on the network (is it hiding behind //hostname/share? No? Maybe in the bushes behind the IP addresses?), or it's protected by mysterious logins requiring you to sacrifice two kittens a day.
Yes, finally it works! One windows update later... aaaand it's gone.
JUST GIVE ME A FUCKING CONF AND A MAN PAGE, MICROSOFT. I DON'T CARE THAT YOU'RE ORALLY PLEASING ALL THESE MALWARE RIDDEN GUISLUTS ON THE SIDE, JUST GIVE ME A FUCKING TEXT FILE TO STORE AND EDIT.4 -
This is a very mild rant about character limit saying that there are >0 characters left when writing comments, then refusing to submit.
I'm so fucking infuriated! I almost raised an eyebrow in anger! What the fuck, my life is literally ruined, this bug is making my toilet visits insignificantly worse!4 -
I hate it when I can't install & update a package through apt, instead it keeps bugging me to manually download the latest deb file every time it boots.3
-
Always get into a slight existential crisis during this time of winter.
Is my job worth all the trouble? Should I sell my house? Break up with my love? Start using a different programming language?
Probably has something to do with the psychological effect of this arbitrary point where we consider a year to end, and begin a new one.
I have no idea yet. I think my job is the first one to go, the rest is probably salvageable. -
Typing 2 pages of sprite codes from a magazine, then saving the little game onto an audio cassette...5
-
Damn frontend crap.
The fact that you have to mask all of the disease with processable versions of css, html & js is bad enough, but there are like 6 dialects of each bandaid, and every project has traces of each.
The the design kid tells me to run this grunt script, frontender number two screams "no, dont use grunt, we use gulp! or was it bower? I guess just run it through yeoman, it's easy!", after which the third fucking shitty hipster yells "No that's outdated, just edit the webpack file, and then run yarn install... oh but run npm upgrade --global yarn first"
Did you just fucking tell me to upgrade a fucking package manager with another package manager?
Composer, gem or cargo are not always without problems. But at least us backenders have our fucking shit together. The worst we have to deal with is choosing Python 2 vs 3, or porting some old code so the server can migrate to PHP7.
The next person to tell me they found this awesome tool to manage his other tools... I'll fucking throw your latte all over your wacom tablet.2 -
Why do Android apps not clear their own irrelevant notifications?
For example: If I mark all notifs as read within the devRant app, or archive an email in Gmail, or read a message in the Jira app, why does it not clear the status bar notification?
Is there a good reason, or is it just often overlooked by developers to perform a cleanup action like this?6 -
Made a new color scheme, and I really love using it for syntax highlighting.
Now I need to fucking port it to every single editor & terminal...5 -
1 dept with only 1 staff, well 1 chief to be precise, all employees quit. Another dept with not enough manpower. Requested the dept with highest manpower to help with other depts tasks while struggling and solving the shits out. Thought company is bullying them with extra workload and voice out they are looking for new jobs.
They are not wrong. And that's the bittersweet shit I have to swallow. In the end, it was my responsibility and I'm not doing enough. -
A short bittersweet story.
Ever since I quit my previous job a couple of months and started working as a freelancer, I haven't felt the need to visit devRant.
Everything that's rant worthy is essentially my fault.7 -
There are days where I just want to develop a plot of land in some forest/mountain rich area into a little farm, maybe with some silly animals like emus and alpacas.
Development is not always as stress free as I'd like it to be.
If I'd had to pick a way to spend my days and money was no issue, I'd probably only contribute to open source, and invest more time into a few projects of my own.
No boss, no sales department, no deadlines, zero pressure. Just solving the puzzles my brain wants to lock on to that day.1 -
!rant
I just realized... DevRant is what happens when someone says "I have this killer idea for an app, it's just like Facebook. We have to make it, but it's easy" ...and you respond with yes.5 -
Google, please explain to me: Why the fuck would you create a hardcoded requirement in your libraries to use a plaintext json file with credentials to your API?
Credentials which give full access to all of the company email, addresses, cloud services, etc?
And why would you accompany this in your docs with example implementations which read as if they were an intern's first coding project — non psr compliant PHP, snippets of Go which won't compile due to type errors...
I'm starting to become convinced that the whole of the Google Cloud API was actually written by thirteen year old who found their parent's liquor cabinet.
Fuck this I'll build my own Google.1 -
1. Put idea on roadmap
2. Work out simple implementation
3. Productowner-san, please notice me.
4. Other devs pile on cool but complex ideas
5. A 4 hour meeting later, original simple idea is rejected because it's "out of scope" and there is "no consensus about implementation"
6. I already built it during the meeting
7. I sip my coffee while I enjoy the annoyed gasps as coworkers receive PR notifications.
8. FUCKING DARE TO REJECT IT COCK SUCKING SCRUMBAGS.2 -
Thanks to @bittersweet I found and tried _Notes by Firefox_. An awesome app, wich I definitely will keep and use.
I love the markdown support.
I love the synchronisation.
I hope they will add access-controls, so I can give other users access to my notes.
Sry, for the advertisement.4 -
Ernest Hemingway and @bittersweet once competed in whose shortest story is the saddest. Ernest wasn't original, boasting his old "baby shoes" charade. But @bittersweet, proving the culture is changed, and new talent beats the old, won, with this story of his:
"CTO is wanted by YC unicorn. Requirements: PHP 5.4".1 -
Trying to implement a dynamic data masking solution for our databases, to filter out sensitive data.
This seems like a problem which should've been solved decades ago. But it isn't. All DDMs, proxies, seeders, maskers... they all suck balls.
Which makes me wonder, how many devs walk around with MacBooks with half a million credit card numbers on them... -
There's only three endgame situations I can imagine: Become fuel for AI's projects, become some kind of pet or archived memorabilia thing stored in a vat of amniotic fluid, or merge brain and be human-AI hybrid.
Don't know if the concept of "job" is still meaningful in any of those scenarios.4 -
Take the bitter truth @bittersweet told so sweetly.
Add this: If you want great software developers, don't put them into a dark room and teach them the theory of software development. Teach them the longing for the wide and endless space of possibilities.
> Quote after Antoine de Saint-Exupéry
So basically give them practical problems which them to desire the theory. Provide an integration of open source contributions into education. Online and offline. -
create, read, update, delete, get, store, put, post, show, view, patch, destroy, list, remove, save, status, ...
crudgsppsvpdlrss? -
People who use automatic code beautifiers and standards fixing scripts. 😠
Agreeing on a coding style with your team is important. But I really don't feel like reviewing the new guy's PRs if it's a thousand style adjustments and a tiny bugfix.
If you disagree with the current style, communicate about it so everyone can discuss and adopt new rules, and fucking fix the whole codebase in a separate PR.1 -
Ever experienced that moment when you spend hours debugging a complex issue, only to realize it was caused by a single missing semicolon? It's like searching for a needle in a haystack, only to find out the needle was hiding in plain sight! I guess we should add 'semicolon detective' to our resumes. Who knew such a tiny character could wreak such havoc? Let's all take a moment to appreciate the power of the semicolon and the bittersweet triumph of finding it missing!4
-
Working on complex invoicing systems. For once, the code is clear, elegant, readable and unit-tested... but I keep forgetting how reality works. If only tax laws were self-documenting.
-
My senior colleague turned buddy submitted his resignation today. I'm happy for the new opportunities coming his way yet at the same time I know I will miss the guy who taught me so much. Bittersweet moment...