Joined devRant on 3/10/2019
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
I couldn't care less for aggressive 20 year old devs opinions.
Everytime I see a post where someone is being an asshole making strong comments about software, I'm like "oh, how cute, he's trying to be taken seriously by insulting others".
Then I check history and it's just a flow of hateful comments and memes...
(I do mind respectful and humble 20 year olds though)13
A peeve of mine is when someone in the software industry denigrates a technology/tool/framework outside of his role eg webdevs on sysadmin stuff or viceversa.
I'm not trying to shame anyone for having subjective experiences, I just think that if you're gonna talk about tools that are not on your domain, then you need to be twice as humble as usual.
I'm a webdev and I don't post around how I KNOW how to make ssh secure, while other people devote their entire careers to that and all related matters.
What prompted me is seeing some not webdevs do this here that seem to be sysadmins/devops (can't tell for sure since I don't know them), but in real life, I've seen people from any role do this, webdevs too, even testers!
Imagine you had cancer, and you had a tumor extraction, and the oncologist said to the surgeon "step aside son, let me show you how to deal with cancer".4
There's very little good use cases for mongo, change my mind.
Prototyping maybe? Rails can prototype, create/update/destroy db schemas really quickly anyways.
If you're doing a web app, there's tons of libs that let you have a store in your app, even a fake mongo on the browser.
Are the reads fast? When I need that, use with redis.
Can it be an actual replacement for an app's db? No. Safety mechanisms that relational dbs have are pretty much must haves for a production level app.
Data type checks, null checks, foreign key checks, query checks.
All this robustness, this safety is something critical to maintain the data of an app sane.
Screw ups in the app layer affecting the data are a lot less visible and don't get noticed immediately (things like this can happen with relational dbs but are a lot less likely)
Let's not even get into mutating structures. Once you pick a structure with mongo, you're pretty much set.
Redoing a structure is manual, and you better have checks afterwards.
But at the same time, this is kind of a pro for mongo, since if there's variable data, as in some fields that are not always present, you don't need to create column for them, they just go into the data.
But you can have json columns in postgres too!
Is it easier to migrate than relational dbs? yes, but docker makes everything easy also.8
I never liked when rappers do the bridge on emotional songs.
the song starts like "ooohh, baby I love you, you know we're for each other, bla bla",
then the rapper comes up with some raw shit like
"baby you know that this cum is only for you,
we're meant for each other, you suck me so good,
you know that you moan when I raw in your ass"
bro, wtf... it was a gentle romantic song...
or when the singer is depressed, has dilemmas about life
and the rapper's like "im rolling on my mercedes bitch"
it actually sounds like rapper is intentionally making the singer look like a pussy.
now, before some troll comments that I'm an idiot dinosaur that can't understand hip hop, let me say:
I like hip hop, I'm not gonna make a fool of myself by name dropping rappers from the past or today, as if you needed credentials to emit any option about the genre. I will only say that I've been listening on and off since I was 15.
And I like emotional songs as well, any genre.
The problem is that I feel a sort of disconnect between the singer and rapper of a song.
You can't have one performer be like "I feel sad, life is hard" and then the other like "I GOT HELLA MAD DICK NIGGA, CHOKE ON MY CUM", in the SAME fucking song.
They are completely opposite emotions,
That works in movies, eg: a romantic slasher film, but that shit works because it's feature length.
There's enough time to make transitions and to let the mood slowly change.
Meanwhile, these guys are trying to stitch these things together in 3 fucking minute songs.
But this shit dominates the charts, so ¯\_(ツ)_/¯4
devrant is the only community that I feel comfortable in.
I've been browsing since 2000 and been in many communities online so far, so that's saying a lot.
I've seen supportive comments towards me and others here, and that really makes me feel less hopeless.
I think the internet in general makes you feel like you're a number. Click the like and the sub button, just be one more in a million.
But here, you matter.
If you try to post something and you are sincere, but humble people will ++ and say nice comments.
If you get upvoted, you can WHO did it and what their online persona looks like.
It feels very organic and personal, which is saying a lot for a place like the internet.
In the standard online experience, people online take advantage of the anonymity to say shit they wouldn't online:
anything, from troll shit to presumptuous comments.
I don't understand how some people can connect being anonymous with denying themselves as moral beings.
Do these people walk around in real life fighting with every person that has an opposite point of view?
There's actual people out there that will read this post and think "what a fucking boy scout".
Sorry for having emotions.
how many fucked up people are there, so that devrant feels like a goddamn mirage?11
I wasn't sure what to say at the moment, but then I thought of something.
Lodash is the most depended upon package in npm. 90k packages depend on it, more than double than the second most depended upon package (request with 40k).
Lodash was also created 6 years ago.
This means lodash has been heavily tested, and is production ready.
This means that reading and understanding its code will be very educational.
Also, every lodash function lives in its own file, and are usually very short.
This means it's also easy to understand the code.
You could start with one of the "is..." (eg isArray, isFunction).
The reason for such choice is that it's very easy to understand what these functions do from their name alone.
And you also get to see how a good coder deals with js types (which can be very impredictible sometines).
And to learn even more, read the test file for that function (located in tests/<original file name>.js. For the most part they are very readable and examples of very good testing code.
Here's the isFunction code
Here's the test for isFunction
The one thing you won't learn here is about es5, 6, or whatever.3
I'm not enjoying my current experience with the web.
I feel sad, alone most of the time.
Let me disclaim first that I don't have like an apocalyptic view of the world, I actually think it's improving (in very broad terms).
I also understand that the web is a complex thing and everyone being happy with is going to be very unlikely, specially as more and more people use it, since the entropy will naturally increase.
I don't have solid evidence of what I'm saying next and I'm not even entirely what exactly I'm saying, but maybe I'm onto something.
I feel that when the internet first started, businessmen were like "meh, geek stuff".
But slowly, things changed, and every greedy person tried to just fucking unload his greed filled cum onto it
And now it feels like 1984. And I hate when people reeeee 1984. But it does feel like it.
The ads are like "ok, I know you like that other shit, but CHECK THIS SHIT OUT".
It's AI driven to maximize profits, with little care for people happiness.
I miss when youtube had related videos. The algorithm wasn't perfect but at least it was exactly that, related videos.
Now though, youtube likes to be smart. But not smart in a way that enriches your youtube experience.
It's smart in a way that maximizes ad revenue.
"what? did you think we were going to use AI to make you happier? that we were going to enrich your youtube experience?
NO MOTHER FUCKER! OF COURSE NOT. We're gonna use it to show you whatever shit that will make us richer faster."
Controls for customizing the recommended videos behaviour? Pff, no.
They're gonna decide for you what it is that you like
They're going to decide what you should be watching.
Everytime i turn on my samsung tv, the youtube app recomends me watching "BETTER THAN SEX EYE LINER". Jesus christ, what the shitcum, I'm the only motherfucker on the house that uses youtube, and I couldn't care less about this cunt's disguised ad video, let alone fucking eye liners.
Why youtube, why do you promote whatever porn video VEVO uploads?
Why do you ruin every youtube rewind?
Why do you pander to the lowest common denominator?
Why can't you be shining beacon, a moral company considering you're a cultural icon?
Fuck you youtube, and while we're at it, fuck you too samsung, I must have been drunk the day I bought this shitty closed source software piece of shit "smart".
And these are just 2 companies. The internet is FILLED with these greedy bastards. They have no passion for their products, for making people happy. They only have passion for the MUNNNEY.
Thanks a lot business schools, thanks a lot CEOs of the world, thanks for making the world a happier place.
Ok, now that I said that, I want to back up a bit.
Youtube may bot be perfect, but it's ad revenue system enables some youtubers I love to be able to make that their careers.
I appreciate that, so maybe youtube isn't that bad... so sorry for saying those horrible things man!9
I just found out my headphones become noise cancelling if I gently push them a bit through my ears. I can finally focus with noise around me, yay!
This is not an euphemism for sticking something up my butt.
I'm compensating for @rutee_07 absence, is this good enough @oreru?6
writing library code is hard.
there are sooo many details that go into writing good libraries:
designing intuitive and powerful apis
deciding good api option defaults, disallowing or warning for illegal operations
knowing when to throw, knowing when to warn/log
handling edge cases
having good code coverage with tests that doesn't suck shit, while ensuring thry don't take a hundred years to run
making the code easy to read, to maintain, robust
and also not vulnerable, which is probably the most overlooked quality.
"too many classes, too little classes"
the functions do too much it's hard to follow them
or the functions are so well abstracted, that every function has 1 line of code, resulting in code that is even harder to understand or debug (have fun drowning in those immense stack traces)
don't forget to be disciplined about the documentation.
most of these things are
deeply affected by the ecosystem, the tools of the language you're writing this in:
like 5 years ago I hated coding in nodejs, because I didn't know about linters, and now we have tools like eslint or babel, so it's more passable now
but now dealing with webpack/babel configs and plugins can literally obliterate your asshole.
some languages don't even have a stable line by line debugger (hard pass for me)
then there's also the several phases of the project:
you first conceive the idea, the api, and try to implement it, write some md's of usage examples.
as you do that, you iterate on the api, you notice that it could better, so you redesign it. once, twice, thrice.
so at that point you're spending days, weeks on this side project, and your boss is like "what the fuck are you doing right now?"
then, you reach fuckinnnnng 0.1.0, with a "frozen" api, put it on github with a shitton of badges like the badge whore you are.
then you drop it on forums, and slack communities and irc, and what do you get?
half of the community wants to ban you for doing self promotion
the other half thinks either
a) your library api is shitty
b) has no real need for it
c) "why reinvent the wheel bruh"
that's one scenario,
the other scenario is the project starts to get traction.
people start to star it and shit.
but now you have one peoblem you didn't have before: humans.
all sorts of shit:
people treating you like shit as if they were premium users.
people posting majestically written issues with titles like "people help, me no work, here" with bodies like "HAAAAAAAAAALP".
and if you have the blessing to work in the current js ecosystem, issues like "this doesn't work with esm, unpkg, cdnjs, babel, webpack, parcel, buble, A BROWSER".
with some occasional lunatic complaining about IE 4 having a very weird, obscure bug.
not the best prospect either.4
I don't like when
you have a couple of years of experience with some language and you're like "I should read a good book about it, and have some proper solid foundation instead of playing by ear".
So you get a book and what follows is a very jarring experience.
Because for the first 8 chapters they get into the basics of the language.
You're occasionally like "interesting, I did not know that".
But for the most part you're like "yes, for fucking christ I know that, everybody knows that",
or you complain about the author being redundant,
or about the outdatedness of the book, since most documentation is now in the interwebs
or you reach flawed conclusions out of frustration like "this isn't making me any money, I could get on upwork, or do some bounties instead of wasting time on this"
then you start to skim through the pages like "I know this, and this, and this" until you realize you're in some page you have no fucking idea what it's talking about, as if you ended up on the wrong side of town
so you start backtracking (frustration is going critical at this point)
but backtracking is annoying because it's not well defined where you stopped getting it, as if in page 33 you were getting it 100%, but 0% on page 34, it's more like a gradual, irregular decrease,
so you have no idea where to start re reading from.
you just shove that shit into the wall at that point.
Some of these are learning discipline problems.
I guess there are ways to mitigate them, such as writing down questions of things not understood, co reading, etc.
But the one thing I don't think I can't get past is when authors write like shit,
like being redundant, using different words to say the same shit
or using confusing sentences that can mean different things at the same time,
or using the incorrect terminology, eg: if I were teaching OOP, saying shit like "classes create objects" but later on saying something like "classes create instances".
They usually nail the definitions the first time, but then use different terms for the same thing. It's shit.
And I think that's a writing culture that I hate.
From school you are taught to bot repeat words.
To say the same shit in different ways.
To be descritive, but vague.
That's absolutely shitty for programming in my opinion.2
I've come to notice that mindful meditation does some good things to me.
And by "mindful meditation" I mean my subjective experience based on the shitty articles and videos I saw online, aka, I close my eyes and focus on how my breathing feels...
spoiler: it doesn't fix my depression and anxiety. The good thing that it does to me is that I seem to be more focused and to bump into simple solutions to problems I have everyday instead of freaking out about them.
So while it doesn't fix it, it does help a bit with anxiety.
The problem is that it's very, very, very goddamn hard to meditate to me.
I try to focus on my breath and not think for like 10 minutes. Even for 10 minutes, the experience is jarring.
I have this insane urge to just do something immediately. It's not a painful experience or anything or bad for my mental health so far, I just get massive urges to start doing something else, like, for example, I can't wait to start working.
So it's as if it decreased anxiety, but increases adrenaline or whatever? I dunno.
Disclaimer: I don't care much about the religious aspect at all, which is kind of problematic because 95% of what you find online is just biased religious marketing, and I avoid that like the plague.8
I cannot take this shit seriously.
I don't feel like reading the rest of it
Title: fuck typescript
1st line: well, actually I love typescript12
My wife took the kids to the mall.
I work from home.
me: fuck yeah, I'll be able to work now, since I focus a lot more when there's a lot of silence in the house, looking forward to this coding session
me: *takes the fattest 2 hour nap*
I guess I was tired...4
I like js and node in general.
But there's this thing I hate about NodeJs...
The blogs. The goddamn blogs.
Every goddamn blog post. Is code. Dozens of lines of code.
Oh, so you want X feature? Just copy paste this shit.
I swear to god, blog posts are the source versioning system to these people.
What they should instead is
a) Create a package.
b) Add tests to it.
c) Present the package to the reader with some minimal code.
But I'm a getting a huge impression that node blog writers want you to copy the code in their post, paste it in your project, and be happy with it.
Now, I'm not assuming that every person posting in medium.com is a software engineer (and by engineer I mean an engineer, not some fuckwad who begs for github stars on dev communities).
The problem to me is that they fucking SATURATE the goddamn search results.
The same goes for finding an npm package for your need, because there are so many low quality packages it's saturated too, you have too plow this stinking pile of projects that have very low quality,
and there's not a really good npm finder out there. Half of them are dead, some look and load like shit, and npm search has a low barrier for good code.
Me on rails, OTOH "ok, I need this thing", I google that and I swear to [-∞,+∞] I find GOOD packages, well designed, no cookie cutter bullshit, no obscure marketing shit on the README.md, it is very clear what this shit does, and the api is designed for HUMANS.
and it actually takes very little time to know if there's no such package.
I don't have to read dozens of fucking my-fuck-blog.io (jesus christ, the io domain has become such a fucking joke, it got fucking abused to death, there are some cool sites out there using it, but my god, James H. Marketing likes to just absorb everything he can, and the internet was not going to be a fucking exception)
does all of this make sense?4
This is something I'm proud of about myself as a developer, which is rare.
My setup with the Alt key.
All the keys in my left hand (as in, for all the keys in my left hand region, qwerasdfzxcv)
have their Alt and AltShift combinations mapped to (almost) all the special chars related to programming.
Alt + z -> /
AltShift + z -> \
Here's me typing them in 2 seconds.
And, on my right hand, I emulate the arrow keys movement:
Alt + hjkl moves chars
AltShift + hjkl moves and selects chars
AltCtrl + hjkl moves words
AltCtrlShift + hjkl moves and selects words
Alt + n. backspaces/deletes chars
AltCtrl + n. backspaces/deletes words
And the best of them all:
Alt + space -> <return>
AltShift + space -> Shift+<return> (which does a newline in chat editors like fb messenger)
AltCtrl + Space -> Ctrl+<return> (which can do the submit in some forms, like send email in gmail)
Now, my hand sits for real on the home row and rarely moves because it's not there just for vim, but for the entire system as well.
This setup is very compliant with my little mouse use, since I use vim, and the vim extension for chrome.
I still use and need the mouse for some tasks.
Another one huge benefit is that I don't have a problem remembering where the keys are. This is a problem I can have because I go between different keyboards because of having used different keyboards: argentinian, american, japanese and now brazilian (I'm not trying to be cool, it's just a series of circumstances that led me to using different keyboards).
At the same time, this thing might have become a hinderance because it's not as easy for me going to a different keyboard.
Regarding implementations, when I used MacOS I used Karabiner, insanely clean interface.
On linux, I have to create my own mapping in X.1
Just a couple of things I'm thinking,
Alacritty in my main terminal, but I have a Hyper terminal (secondary, since it's pretty but not as fast) for thoughts.
I'm not even sure if you can call them thoughts. I would say mental diarrhea.
Most of the sentences are ridden with expletives, and very emotional. I attached a picture where you can see that there is
* some special characters, result of me light smashing the keyboard (I say light as in, I'm very angry but not as angry to not appreciate my single computer).
* a final sentence with some really nasty message.
* a lot of gibberish as well, don't use this as a spanish learning tool.
If you're curious about what's causing me grief, it's trying to make jest work with a vue-cli existing project. I encountered a couple of gotchas that ground my gears.
I estimated this bitch ass task to take like 2 hours tops, but I'm like 4 hours on this already, so I'm halfway broken.
Also, another comment:
While seeing the picture of the dutch devrant meetup, I think to myself "man, there's no way I would not feel awkward in that situation.
But then I noticed the beer and was like "oh, that helps".
I want to code my side project.
Work is trivial, repetitive, irrelevant.
I wished I was rich so I could work on shit I'm actually interested worked in.2
I love my job,
this is how my normal day goes:
me: *turns on computer*
computer: Good morning, erandria. What will your first sequence of the day be?
Please, don't take this post seriously. I wrote it from anger.
I hate a lot of humans.
I was at a church today because family ties. I'm agnostic. That sums it up.
And now, I'm at a mall, and it's crowded, and I'm bumping into a lot of people with very low common sense. These fucking apes here have ZERO walk awareness. And a lot of them probably drive, which scares me.
When they make a line in a food shop, and the line gets too big, they curve the line so that the line can continue, like an L, but they leave TOO LITTLE GODDAMN SPACE TO WALK THROUGH!
There's a narrow ramp, next to some stairs, that I use to get to the nursery of the mall, but it also leads to the bathrooms. A lot of these disgusting beings use the ramp. Jesus fucking christ, USE THE SHITTIN FUCKING STAIRS.
tiday I was walking with the stroller the 9 month old which was (thank you alpha omega) sleeping.
I see one of those nice comfy couches, and there's a couple hugging in it but there's an empty spot. I come closer and it's occupied by their trash, some cups with ice cream.
I could not believe my eyes.
That shit's expensive. I would never leave shit with ice cream in my couch, and it's also a horrible gesture because it looks like you're denying it from others with your trash.
I just stared the trash down like really disappointed. They took the trash but I moved on because I was very salty at that point.
I find a seat next to a dad and his kid. I sit down, relieved. His daughter comes over, and almost yelling complains about him buying his brother.
I stared this little shit straight in her face because she could wake up my kid. She and her family was totally oblivious.
These are just minor events, but I come across a plethora of situations like this every day, like people turning on their turn lights 1/2 second before turning, or people that I meet on the street giving me fucking advice on raising kids.
That's the average mall experience. It's a place where selfful people thrive.
I shit you not, sometimes I imagine that a meteor strikes earth and while it makes me sad that all the people I consider kind will die, I orgasm at the thought of these filthy parasites just evaporating.
But then I realize that I'm being very cruel and intolerant. And feel guilty.
Sometimes I think that I should live in Japan or a similar place.
Japanese city people are very organized.
But then I remember that Japan has a suicide problem. And that it has a poverty problem. And a lot of outcasts. And that they barely have sex.
I'm at a church right now because of ties.
I'm a post christian agnostic.
I'm so not chill right now.
OTOH, 1k internet points yay13
I think the reason why git beginners have a hard time with it is because the api is a bit untuitive.
For example: if you want to "unstage" staged changes, you run git reset, and if you want to "delete" those changes from your working copy, you git checkout those files.
But then, you find out that you can do all of that if you git add . and git reset --hard.
So you're like "huh..."
And then you discover that if you end the resethard with a branch name/commit id then you also make current branch point to the commit or that branch/commit (respectively).
So you're like "huh..."
And also if you add a commit id or branch name to git checkout, you change the current branch to specified/enter detached state with HEAD pointing to that commit (respectively).
Oh and you don't use git branch to create branches, you use git checkout -b because it's a lot shorter.
So here's a rundown: git reset mutates things related to files, but also mutates things related to branches.
git checkout also mutates things related to files and mutates things related to branches too (in a diff way). Also, creates new branches.
I don't think this is intuitive. We users use the same commands for different purposes with just a different flag.
Commands shouldn't mutate different types of things. But don't composite commands (as in, "smart" commands that mutate different things) shoudln't be a flag in an existing command, it should be a single new command of its own.
Maybe if I reread the internals of git now, I'll be able to disgest the dozens of technical terms they throw at you (they are many). And in my mind, the api will cognitively fit to the explanations.
Here's another one that feels weird too.
If you want to make your changes start on top of someone else's commit, you do git rebase.
But git rebase -i can be used for that, and also to delete, modify changes or message of, reorder or combine previous commits of the current branch.
Maybe the reason why several things we do overlap with the same commands is because they internally do similar things, and while not separating those commands might make it less intuitive, it makes them more sensible? i dunno...
disclaimer: I'm not setting this opinion in stone though, and am aware that git was created by one of the most infuential programmers.7
there are 2 types of programmers:
the ones that circlejerk try to relate with programming nuances and annoyances through cringe awful memes.
and the ones that circlejerk complain about those cringe awful memes.
oh, there's also the chill people that dgaf at all3
I'm watching this programmer on youtube, trying to hone my skills, but there's this huge thing blocking the screen...
(disclaimer: I can an egoholic too)
My doctor told me my Vitamin D is very low, that I should get some sun.
My dermatologist wants me to stay off the sun to protect/prevent moles.
My wife left to pick up our oldest kid from school and to later buy her outfits to start ballet.
I work from home, but am still on work hours. I sit on the couch next to our baby that is sleeping.
my wife when she leaves: look, she's asleep, just bring your laptop here and try to work.
me: ok I will
(10 minutes later)
me: ok I'll get the laptop now
me: *get up, pick the laptop, sit down again*
baby: wakes the fuck up
I swear to god this thing has fucking movement sensors.8
Just an advice:
Keep in mind that you can now have ES modules in nodejs with the esm package. And it's a zero config install.
For those that don't know, in js ES modules is the import/export syntax and is a huge upgrade from cjs (the require syntax) because you find out "pre runtime" when a specific import is non existent.1
What would you change if you were the owner of a site like devrant?
I've been in devrant for weeks now and the thing I like the most of it is the community (at least most of it).
If you are going through a bad time, they wish you well.
People here also seem to have very decent work experience.
In general, they seem to be open towards other technologies and honest about their shortcomings.
I also like that the site (for better or worse) is not insanely moderated.
For example, in reddit, it's very easy to get a post removed because it doesn't abide to the rules. They can be rudiculous strict, and mods can be trigger happy.
I'm not denying the existence of any moderation here, but for example I've seen some pretty graphic sexual comments, and I appreciate that anything goes (except being a dick ofc).
And I guess that the fact that the community is so chill has to do with that, there's not a huge need for moderation (unless I'm totally oblivious).
But how do you keep a community like that?
I've seen people complaining about the influx of new users and the spam of shitty memes.
How do you keep devrant cool while letting new people join?
I think a necessary thing is that you separate the people into 'universes' and each universe has a limit of x users. And somehow the users are distributed in a way that the average level of 'user likes the universe they're in' is maximum.
Now, how do you create that? Not sure, maybe you let users vote whether they like the other users or not (such votes being hidden to others ofc) and let users switch unis if they don't like them.
What ideas do you have?12
Today I had my first decent pull request accepted.
It wasn't the biggest problem, but it made a chrome extension not work, and the author and other users couldn't figure it out.
The author seems very chill and called me 'the man' and offered me a drink.
It felt nice.1