AboutAnalytical Chemist, Backend dev, DBA, QA/tester.
SkillsHaskell, Python, PHP, Go, Rust, JS
Joined devRant on 4/13/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
"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.8
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!33
"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
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)61
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.
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?16
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...33
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.9
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. 😫14
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. 😡8
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
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.12
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
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. 😡6
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
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. 🖕29
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.9
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.7
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.9
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!"40
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."20
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.10
Would the web be better off, if there was zero frontend scripting? There would be HTML5 video/audio, but zero client side JS.
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.28
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
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?6
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"19
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.24