SkillsJava, HTML, CSS, some JS, a bit of C#, C/C++, vim, LaTeX, Linux
Joined devRant on 7/14/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
I love "mature" projects. I just deleted an angular router guard that was apparently only added for debugging in 2018, and the only route it was guarding was deleted in 2019.
In total, this one guard took multiple hours of work due to angular updates and such causing it to break compilation.
Not a single person thought about removing, or even rewriting it. This might be due to two things: the people that were part of this team back then are no longer in the company, and guard was called "AuthGuard"1
Adobe, the company with virtually limitless budget, somehow created possibly the worst CMS to grace this earth (at least from the UX perspective). Meet Adobe Experience Manager, or AEM for short.
For starters, there's two executable jars: author and publis. Author is where you make all your pages, publish is the "final" preview. Except they're the same jar file. It's deciding which mode to run in based on the jar filename. The filename is also how you configure things like which port it's running on.
Publishing pages (sending them to the publish app) looks simple: select the page you want, press a button and it's ready to view. Except it's not. In order to publish a page and have it visible, you also need to publish the entire directory structure this site is in. So if you have the page in a directory "my-site/en/pages/home", you have to publish "my-site", then "en", then... The real kicker is that when you press "publish" on a page there's a checkbox that asks if you want to also publish everything that's linked to this page, that seemingly doesn't do anything
Ok, enough about publishing. Let's focus on the absolute monstrosity that is the "author" environment. When you first open it, you're greeted with a pretty layout with transitions and animations that's clearly meant for the editors. This is where you make folders and pages, and this is where you publish them. It's worth mentioning that these "folders" exist only in AEM, not on your disk. This part is actually ok, and if it wasn't for the shit publishing ux I'd say it's good.
But that all was just the surface level stuff. You see, AEM is much more complicated than that. It's not _just_ a wisywyg HTML editor with some customizability sprinkled in. No, sir. It's practically an entire Unix-based operating system. You can open "crxde lite", or like I like to call it, the "os view" to see the entire unix-like directory tree. Just don't be surprised by how it looks. We're in admin/developer territory here, so better get used to the UI that'd make Windows Vista jealous.
The "os" comes with a bunch of apps. Aside from the designer view and crxde lite, there's a replication manager, GraphQL browser, user manager, asset manager and many more. Each app comes with its own UI style and even worse UX than the previous ones. Oh, by the way. I hope you have plenty of ram, cause all those apps are constantly loaded in memory.
Did I mention that the entire thing is written in Java? And I really mean the _entire_ thing. From what I can see, even the frontend JS is generated from Java classes.
So, TL;DR: it's shit. Stay the fuck away from it, and don't use it unless you absolutely have to. Or you're a masochist that wants to make a living out of it. If you know your way around AEM, you're practically guaranteed a well paying job2
My team got a new member. It's all great and stuff, except my gay ass finds him hot. I have no idea how that'll work out, but I foresee some awkward moments in my future...11
Fucking hell. Typescript is configured to require explicit typing of everything "because sometimes it does weird conversions". But because temporary variables can have weird types used just there (like arrays of various objects), there is a lot of variables typed as any.
That's bad on its own, but whatever. The real kicker is that eslint is set to throw warnings whenever it sees any, "so that people don't just put any on everything". I guess that was a failure...
I asked around and it turns out that TS and eslint were configured by two teams independently that merged when the project was new young, and it sort of stayed that way. No one from the original team is even working in the co panu anymore, yet this clusterfuck still lingers on, and even spreads to every new project that team starts8
Today I got a chance to completely unironically say "it's not a bug, it's a feature".
It wasn't anything that would qualify as a bug. It was a new button for a new feature. But it broke automatic tests, so the tester called us and said it's a bug. He even added it to our backlog. Meanwhile our entire team was laughing our asses off. Can't wait to label it as won't fix, with a comment "it's a feature"4
Every single css tutorial:
"Don't use !important"
Meanwhile in the codebase I'm working with at least half the classes have !important on one or more properties9
Does the entire project count? A startup got quite a lot of funds, decided to outsource. They did release a project to production, but then they decided to make a "new and improved" version that was supposed to do three times as much as the first one.
Problem was, the first product didn't have any customers. I'm not talking "not enough to pay for hosting". I mean exactly 0 customers. For half a year.
Needless to say, the money ran out. The v2 got scrapped first, then v1 got shut down
So in a sense the whole project was pointless. Or it was a money laundering scheme. Who knows at this point
I hate it when people keep telling me to switch to something, especially when I'm not even talking about it.
Recently I complained on a discord server that Ubuntu doesn't heave docker in their repos, instead they have a package called "docker" that apparently installs some kind of gui. One of the guys there went on a rant how podman is so much better than docker. I respond that it's not up to me, and that I have to use docker even if I wanted to learn switch. He gets almost aggressive praising podman and almost insults me for being stubborn.
Like, I get that you're passionate about something and want people to know about it. But sometimes people have to use something inferior because of outside factors. And not gonna lie, that dude made me want to stay away from podman9
JS, where everything says it makes your life easier, unless you just want to add some interactivity to a website instead of making an entire node.js app.
I've been trying to get Jest (for unit testing) to recognize my TS modules, but apparently it's not supported and the last update about anything relating to that was almost a year ago (a single feature request).
Their solution: write a custom mapper, don't use typescript or don't use modules. Fucking great.
I'm not even gonna mention all the hours it took me for the modules to be recognized by the browser at all5
Context: one of my dad's friends is a veterinarian and he's opening a new clinic. My dad is renovating the building and I'm supposed to handle the IT part (Ethernet cables, server, laptops etc.).
Last Monday I get a phonecall from the veterinarian (which I'll be calling boss from now on) that he plans to open the next Monday. I ask him what hardware is bought and if anything is already done. As you can probably guess, the only hardware bough are Ethernet cables (with no plugs) that my dad run under the floor half a year ago.
After a brief wtf?! I asked him what he needs. The conversation goes like this (shortened a bit):
> What do you want/need?
< Make it good
< Make it so that the network lasts for years
> Ok, but what do you want? Do you want cameras? WiFi? How many PCs and laptops? What software will you use for client/patient management?
< Yes, I want cameras. Look around and decide where would be best. Clients won't need WiF, so don't botheri. I think one pc and two laptops will be fine.
> Ok, what software do you use? What does it need on the server?
< Don't worry about that. I signed a deal for a monthly subscription. I got a special offer where if I sign it for at least a year I get 10% off.
// We had this conversation about 2 month earlier. I was against cloud software because internet here is flaky at best and if the company goes out of business he loses all client data
> Why would you do that? I told you it's a bad idea because [above comment]
< Yeah, but [his employee] convinced me. He said that with cloud he'll be able to check that stuff even from his home.
> I could've set it up so that he could do it anyway. Whatever, did you get an internet connection to the building?
< Well, I've been considering getting LTE...
> Stop. You already made one mistake. If you also get an unreliable internet you risk having to close the clinic when you lose connection due to storm.
// Here he tried to argue a bit, but I was able to convince him to not do the stupidest thing he could
< Oh, and can you make it so that when I'm here I have internet on my phone and laptop?
At this point I just wanted to smack him in the face.
Anyways, a week and a half later the clinic is still closed. Not just because half of the stuff needed arrived last Friday, but mostly because the building is not usable yet. The renovations on second and third floor haven't even started yet.
And there is still no internet connection. Last Friday I even went to a local ISP (with his permission) to get everything done and he just has to go and sign the contract. When I asked him today about it he said he still hasn't been there.1
This semester in college we're supposed to learn some machine learning using mostly Matlab. The first laboratories (technically the second, but the first we actually do something) we're learning basics of Matlab.
We were given an instruction PDF that talks about assigning variables, creating functions and classes, and some basic operators.
A the end of the instruction are exercises, but the thing is, they require knowledge of a lot of Matlab functions, like linspace, reshape, random numbers, vectors and matrices, but it does not tell anywhere about then or how to use them.
An example: exercise 4 tells us to read docs about 'ezplot' and plot sin^2(x).
Then, exercise 5 tells us to generate a 100 element linear space for -2pi to 2pi, calculate the sigmoid value of each point and plot it.
The professor looked personally offended that we had no idea what a sigmoid is and that we were all struggling to calculate it. He almost shouted at us for trying to use ezplot (which we assumed is what we're supposed to use based on exercise 4) instead of regular plot do visualize it.
I fucking hate this kind of professors.
Also, the real fuckfest is in the last exercise. I'll try to translate it to English as close as I can:
Create a 100 element vector of random positive integers and then save it as a matrix with the amount of rows equal to the amount of unique values in the vector and 100 columns and then for each element of the original vector encode it's value in the form of 1 in the field whose index equals the value of that element increased by one.
Yes it's all in one sentence, and no, nowhere in the instruction does it say how to do any of that.
Also, we have a test about all of that tommorow and I don't think anyone will pass it2
I was going to work on a group project in C++ today. I thought to myself, how hard can it be to git clone it, open it in Visual Studio and run it. Boy was I wrong.
VS opened it fine, but when I tried to run it I got over 300 errors about missing headers, including windows.h. turns out I didn't have the correct version of Windows SDK installed. Installation (and download) took over 2 hours.
When it finally installed, the linker started complaining about headers not existing, even though I could see they did in fact exist. After 20 minutes of googling I finally got VS to recognize the headers as existing.
Then I wanted to start working on my part of the project. So I made new .h and .cpp files with namespaces and classes. Except I accidentally gave a variable a value in the header file, and apparently that's not allowed (because of course it's not). So I moved the assignment into the implementation file.
Apparently I can't do that either, because I have to tell what type that variable is, even though I already did it in the header. But when I do add the type in .cpp files it complains about a redefinition if this variable.
After almost 5 hours, I have wrote like 20 lines of code that doesn't even compile.
I give up. I'm going to bed. Maybe tommorow I'll manage to force VS to work2
Edit: disregard this rant, as it seems I have no idea what I'm talking about
"Filesystems encrypted with 128 bit keys are practically unbreakable with today's technology" - my OS professor.
No, I didn't mishear him saying 1024. He said 128 bits.
And yes, it's the same guy from my previous rant (the one with "Linux is just for hackers")13
When you don't trust your skills with sed:
$ git commit -am "About to break shit with SED"
Followed 10 seconds later with
$ git reset --hard # I fucking knew it
I was reading a bunch of tutorials lately, and some of them were so shitty I decided to make my own shitty tutorial, and it ended up something like this
(hope you can read it in the image. If not I'll post a link in comments)5
My OS professor just said that next week we'll be learning about bash scripts, which is fine for me except for one simple thing. We're using Windows 10 and the instructions he provided us with confirm we'll write Windows batch scripts.
I asked him about that and he shouted at me for "thinking I'm smarter than someone with a PhD in computer science".
Also the whole semester apparentyly we won't even hear about Linux, since "only hackers and some servers use it". FML.13
I just spent half an hour trying to get nginx to serve owncloud on a subdomain. I read like 10 tutorials, copied shit from 20 different example configs, only to find out I didn't set the `root` location. FML1
Follow up to my previous rant ( https://devrant.com/rants/1680373/... )
I've contacted digital ocean support and asked them about that blocked port. They said that they didn't block it and that I must've messed up with configuration. The thing is, when I set postfix to port 2525 it works perfectly fine and I can connect no problem. Will see how they respond to that...4
I've been trying to setup a mail server on my vps. Postfix is setup fine, I can send and receive mail with SSH, but I couldn't connect any mail client to the server. After a couple reinstalls, following a million tutorials, I finally found the reason.
The fucking reason was that fucking digital ocean FUCKING BLOCKS THE FUCKING PORT 25 BECAUSE FUCKING SPAMMERS ABUSED IT.
Switched postfix to use port 2525 instead and everything works as it should.
Fucking digital ocean, I swear I wouldn't use it if I didn't get free 50 dollars from github student pack.
On a side note, can anyone recommend a cheap vps provider that doesn't block ports?1
So I've been toying lately with an idea for a programming language. I have an example file with everything I could think of written in it's syntax (available here: https://gist.github.com/draganczukp...). The language currently has no name and no compiler/interpreter.
What do you guys think? Would you use it as is? After some tweaks? Or maybe not at all?
Do any of you have any resources about writing a compiler/interpreter from scratch?3
Today Windows notified me that I can update to the new Spring Creators Update. It didn't just start updating without my permission, which looking back should have been the first red flag. An hour later I started the update and left for classes for a few hours.
I came home and I was shocked. It updated successfully, everything was working fine, no apps were missing. I thought something must've went wrong, and just to make sure it updated correctly, I tried booting Linux and it booted without a problem. I'm currently on the phone with MS support to resolve these issues. The update must be broken, I can't see any other explanation. /s
But for real now. Windows isn't designed just to annoy you. Yes, it will update without your permission, but only if you've postponed it for weeks. I'm using systemd-boot as my Linux bootloader and Windows updates don't seem to affect it in any way, maybe it's something to do with GRUB. I've never seen Windows uninstall anything during update.
Yes, Windows 10 isn't perfect and has some bugs, but that's what updates are for. You know, the same updates you refuse to install. And whether you like it or not, Win10 is here to stay, especially since it has almost no competition for desktop use.9
Just spent 4 hours finishing a bullshit assignment for a bullshit class for college. I've never been so close to actually kick my PC as when I was trying to make MS Word put a fucking table *above* some text instead of *in the middle* of a fucking word. For context: I've played 5 hours of DS3 fighting pontiff sulyvahn and didn't rage.
The worst part: it's a fucking group assignment, so I can't use something like latex, since in the only one who knows it. Even then, I would have to make sure I'm using the correct font, since the professor only allows one specific font *and* he sometimes checks it. No idea how, since we print it, but he failed some people because of wrong font.
So I decided to install Arch on my Vps.
Problem: no connection from Vps to internet.
Info: I have terminal access from my hostings panel.
Solution: basic troubleshooting and Google
Problem: this hosting uses outdated install image with broken systemd-networkd.
Solution: install networkmanager
Problem: no internet
Solution: download networkmanager and dependencies on my laptop
Problem: How do I upload them?
Solution: put them in a tar archive, then base64 it and copy paste it via the panel.
Problem: That base64 is over 30MB. No browser lets me copy and paste so much text.
Solution: Write a quick and dirty Java that reads a .txt file and presses buttons.
Problem: Browser freezes after one second
Solution: Thread.sleep(10) after each character, and Thread.sleep(1000) after 10k characters for the browser to catch up.
It's currently going and I have no idea how long it will take. I'll post an update when it finishes.
And people ask me why I love programming. It can help solve so much problems with so little work.
Edit: according to some quick calculations this will take about 5-6 hours, so I'm cancelling it, sine it's past midnight now. I'll start it up tommorow before going to college1
I've recently seen some rants about tabs vs spaces. The main argument for spaces seems to be "different editors define tabs diffently". Can someone ELI5 what does it mean? Should tab always be one character '\t'? I understand that it can be displayed with different width (usually configurable), but it still seems to me to be more uniform across editors, while for spaces some editors indent with 2 spaces and some with 4.
Please don't start a war in the comments. I don't want any other arguments for either of them. I just want to understand that one specific argument.2
I'm in college and I'm renting a room. It has 100mb/s WiFi, so that's neat, but...
I just learned that the password for the router's admin panel is the default one. Ffs, why didn't they change it? They know I'm studying IT. Do they not realise just how much power this gives me? I can get a raspberry pi, set it up to act as a DNS and spy on everyone using this WiFi.
On the plus side, I also learned from that, that we are not limited to 2.4GHz, but we can also use 5GHz (although on a different SSID).6
Just came home from a coding... convention? Meeting? Group coding?... organized at my University. We basically were split into groups of two people and we had to code the Game of Life using any language and libraries we wanted with various limits, like max 5 lines per function, or no loops, tables and ifs. After each challenge we had to erase all of our code and start again with another person. It was the best 7 hours I've spent in a long time. I wish there were more things like that organized here.4