Details
-
AboutHave been programming since 1980.
-
SkillsC#, Typescript, React, Javascript, Sql, (PHP, Turbo Pascal, Visual basic, GW Basic, Bash, c , ...)
-
LocationSweden
Joined devRant on 6/8/2016
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
-
Going from back-end to full-stack is the worst mistake I ever made. Let's say that full-stack is full of half-assed developers who can't write decent UI so if you do well in that department they (management) won't let you touch back-end again. Now all I do is pushing pixels all day. Time for a new job.3
-
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.4
-
I swear sometimes debugging a new piece of code feels like waddling through a sewer, trying to find a clog. You are unsure where you are, everything smells, there are decades of old shit piled up by the sides and once you start tugging it turns out the entire sewer settled onto it and it's as much of a clog as it is a structural element now.3
-
It's almost weekend!
But wait! My colleague just changed some code in the production environment. Whoop! Guess what! It's broken now
Fuck you, stop bothering me. I have to celebrate weekend with non-existing friends.11 -
A brilliant letter Richard Feynman wrote to Stephen Wolfram:
CALIFORNIA INSTITUTE OF TECHNOLOGY
CHARLES C. LAURITSEN LABORATORY OF HIGH ENERGY PHYSICS
October 14, 1985
Dr. Stephen Wolfram
School of Natural Sciences
The Institute for Advanced Study
Princeton, NJ 08540
Dear Wolfram:
1. It is not my opinion that the present organizational structure of science
inhibits "complexity research" - I do not believe such an institution is
necessary.
2. You say you want to create your own environment - but you will not be doing
that: you will create (perhaps!) an environment that you might like to work in
- but you will not be working in this environment - you will be administering
it - and the administration environment is not what you seek - is it? You won't
enjoy administrating people because you won’t succeed in it.
You don’t understand "ordinary people." To you they are "stupid fools" - so you
will not tolerate them or treat their foibles with tolerance or patience - but
will drive yourself wild (or they will drive you wild) trying to deal with them
in an effective way.
Find a way to do your research with as little contact with non-technical people
as possible, with one exception, fall madly in love! That is my advice, my
friend.
Sincerely,
(Signed, 'Richard P. Feynman')1 -
now I’m starting to understand why unit testing is helpful as I’m making more and more features to the existing system I’m beginning to realize that the more shit I add the more chances I have of the existing components to fucking break for no reason this is very annoying and time-consuming11
-
Well played Alexanderr. If only, you stopped wasting time and put some aside to improve yourselves but no, you'd rather keep crying for me.
Well then, do as you please. And get rekt.6 -
I think JavaScript is great actually
Though I don't like the community
But that's not saying much, aside from maybe c++ people (who I don't actually understand so maybe that's what's going on there) I don't seem to like any communities
Mostly because they're wrong and fight over irrelevant things and don't realize they're wrong so they just keep going wrong and it makes me cringe
But javascript is nice because it's intuitive, and if it isn't intuitive to you right now just look into the thing and it'll be a second language to you later... Isn't that a skill issue?
Easy to start hard to master, perfect difficulty curve. Exploits that sunk cost fallacy. It isn't overwhelming either you only run into the edge cases slowly over time.
But there can be a point made that an easily accessible anything is just always going to turn into a cesspool because unskilled people keep contributing and thinking themselves experts, so it over time reduces quality of secondary tooling =[6 -
Last day of our current Indian offshore dev. Talked with her about an issue we had, being aware that it was about her closing time.
She actually offered to put in additional time. Asked her not to do that, I'd figure things out with her successor, and asked her to enjoy her well-deserved long Indian weekend.
Me to my PM: we're chaotic, but we aren't assholes. He smiled. :)8 -
The importance of not using static salt / IVs.
I've been working on a project that encrypts files using a user-provided password as key. This is done on the local machine which presents some challenges which aren't present on a hosted environment. I can't generate random salt / IVs and store them securely in my database. There's no secure way to store them - they would always end up on the client machine in plain text.
A naive approach would be to use static data as salt and IV. This is horrendously harmful to your security for the reason of rainbow tables.
If your encryption system is deterministic in the sense that encrypting / hashing the same string results in the same output each time, you can just compile a massive data set of input -> output and search it in no time flat, making it trivial to reverse engineer whatever password the user input so long as it's in the table.
For this reason, the IVs and salt are paramount. Because even if you generate and store the IVs and salt on the user's computer in plaintext, it doesn't reveal your key, but *does* make sure that your hashing / encryption isn't able to be looked up in a table1 -
AWS typescript: Your function name can't be longer than 64 characters
how about you tell me what the function name is and where it's located so i can find and fix it?
my code changes don't even have any 64 character length functions , they don't even have any typescript changes3 -
Trying to use authenticate a JWT token from an Azure service, which apparently needs to use Azure AD Identity services (Microsoft Entra ID, Azure AD B2C, pick your poison). I sent a request to our Azure admin. Two days later, I follow up, "Sorry, I forgot...here you go..."
Sends me a (small) screenshot of the some of the properties+GUIDs I need, hoping I don't mess up, still missing a few values.
Me: "I need the instance url, domain, and client secret."
<hour later>
T: "Sorry, I don't understand what those are."
Me: "The login URL. I assume it's the default, but I can't see what you see. Any shot you can give me at least read permissions so I can see the various properties without having to bother you?"
T: "I don't see any URLs, I'll send you the config json, the values you need should be in there."
<10 minutes later, I get a json file, nothing I needed>
<find screenshots of what I'm looking for, send em to T>
Me: "The Endpoints, what URLs do you see when you click Endpoints?"
<20 minutes later, sends me the list of endpoints, exactly what I'm looking for, but still not authenticating the JWT>
Me: "Still not working. Not getting an error, just that the authentication is failing. Don't know if it's the JWT, am I missing a slash, or what. Any way I can get at least read permissions so I don't have to keep bugging you to see certain values?"
T: "What do you need, exactly?"
Me: "I don't know. I don't know if I'm using the right secret key, I can't verify if I'm using the right client id. I feel like I'm guessing trying to make this work."
T: "What exactly are you trying to get working?"
<explain, again, what I'm trying to do>
T: "That's probably not going to work. We don't allow AD authentication from the outside world."
Me: "Yes we do. Microsoft Teams, Outlook, the remote access services. I can log into those services from home using my AD credentials."
T: "Oh yea, I guess we do. I meant what you are trying to do. Azure doesn't allow outside services to authenticate using a JWT. Sorry."
FRACK FRACK FRACK!!
Whew! Putting the flamethrower away.
Thanks devrant for letting me rant.3 -
Deleting code and cutting out half the loc in a file and eliminating complexity is the best feeling in the world 😎4
-
I spent a whole day trying to debug why the backend would stop sending data after a while (-> it filled up its connection pool)
but after I turned pooling off, there were a number of dangling Client-Idle-Read DB connections
//not using Entity Framework in these N services, it's pure SQL and DB-AccessLayer here
Never happened before, looked up conf, looked up SO
Changed connectionClose to mandatory Dispose
Still didnt work.
long story short. Turns out in 1 of the services, the DataReader to POCO static method, was disposing/closing the READER and not the CONNECTION.
I sent it as tuple instead of 2 separate variables (reader, connection), and the Item1, Item2 got mixed up (:
Totally my fault, and imma avoid name-less tuples from now on like they a plague -.- thats my 2024-resolution6 -
Ah.. the beauty of clean code.
I wrote a very cleanly written program two years ago. Proper variable names, not too many, right naming, right design pattern,.. Now I come back to it and I am able to instantly figure out the code again. It only took me half a minute.
The importance of clean code... that's something the industry needs to understand more. Well, then there's the money issue. lol5 -
My brain power allocation:
- 1% — happiness
- 1% — creativity
- 1% — work
- 97% — picking out insignificant details in my past and feeling anxious about them, imagining what could’ve been, or rigorously planning out completely hypothetical scenarios4 -
Working on opensource have some interesting challenges. For example my past employee is still stalking us on GitLab, trolling and complaining. My favorite complain of his is that we are moving too fast since he left and was replaced by a junior developer working parttime :-D2
-
Just go to GPT and get me the code today!!!
Like wtf why does every non-tech guy thinks GPT is the solution for each problem.
So, a workmate wanted a fullstack system ready in 2 days and argues that its too easy with GPT. I mean yeah GPT helps, sometimes, on frequent rare occasions. But, that can't be the solution to everything, like ask it to setup the whole backend frontend integration, will it? ask it to manage assets will it? ask it to write complex code, it fails, miserably, okay like me but that's the point. Just because random transformers pop up each week containing some random shitty weights (not always agreed) that can't replace a full stack developer. These 'attention' seeking models are as good as another tool, a bit efficient, but at the end of the day its just a tool, all it does is lessen the typing time but gives more errors too. The average time remains the same. And my non-tech manager can't understand he can't do it himself earlier using GPT. Succkkkkkkssss!5 -
If I uncheck the "stay signed in" checkbox on login, don't have it checked when I need to sign in again. Especially, don't do that and make me sign in ten times when I'm just navigating your page.
Try to avoid making the website for people like yourself, because not everyone is stupid.1 -
Laying cozy on sofa, watching yt from phone. Decide there's a need for a bigger screen but too cozy to adjust position to watch from TV. Grab trusty old chromebook running Debian from arm's reach instead. Haven't used that thing in a while. Try to connect bt headphones. Notice that the Bluetooth module is not detected according to the UI. Weird, never noticed that. Wonder what that's about. Apparently someone had fixed it in kernel already long ago, I'm on a much newer kernel. Too lazy to pick up wired headphones from across the room. Maybe I'll update the firmware, I haven't done that in a while. Oh, the script doesn't run because it requires newer glibc. Wait, I'm still on Debian 11, maybe it would be worth it to upgrade to 12. Wow, upgrading Debian is a surprisingly manual process. Wonder what I'll be doing tonight. Wait, what was I doing again?14
-
I officially got a call that i start a job from 15th december
That's my first job after graduating with a computer science degree, and it took exactly 421 days later.
This is depressing and sad. Im not even interested in starting a job. I hoped they will reject me just like the other 10,468 jobs. Im not used to getting accepted.
I have to finish my side project within these two weeks asap rn7 -
I was all gung-ho about migrating a .NET Framework 4.x 16-projects-in-1-solution 100+ table 300+ Standard Procedures "project" to a more streamlined Services based architecture with documentation and all
Until I realised the guy who's heading it, has been working on it since 2019-2020
And has kept his job because it's such a mess and no one else knows nor cares about how to navigate through it (:3 -
Hi guys I just joined like an hour ago and I have been reading a few comments/stories and I have to say this is awesome! Thanks for sharing, I look forward to read some more stories and share a few of mine too :-)4
-
My biggest flaw when working in IT: I will refuse to prioritize time- consuming work with minimal added value (cf premature optimization, 0.001% edge cases) when I have a backlog of work that will add much more, obvious value and I will not budge to manager or architect power-plays and tendencies to micromanage my responsibilities, even if it may eventually end up getting me in trouble.2
-
Pull-to-refresh is useless.
If you are a mobile app developer, please get rid of pull-to-refresh. Your users will thank you.
I have the impression that mobile app developers choose to implement the pull-to-refresh gimmick just in order to make their app comply with a design trend. It seems like a desperate attempt to appear "modern" and "fancy", not because of the actual usefulness of the gesture.
Pull-to-refresh is one of those things that are well-intended but backfire. It appears helpful on first sight, but turns out to be a burden.
It takes effort and cognitive strain to avoid triggering a pull-to-refresh. The user can't use the app relaxed but has to walk on eggshells.
Every unwanted refresh wastes battery power, mobile data (if it is an Internet-connected app), and can lead to the loss of form data.
To avoid pull-to-refresh, the user has to resort to finger gymnastics like a shorter swipe for scrolling up or swiping slightly up before down. Pull-to-refresh could even be triggered while pinch-zooming in or out near the top of a page, if the touchscreen does not recognize one of the two fingers.
Pull-to-refresh also interferes with the double-tap-swipe zoom gesture. If one of the two taps are not recognized, a swipe-down to zoom in can trigger a pull-to-refresh instead.
To argue "if you don't like pull-to-refresh, just don't use it" is like blaming a person who stepped on a mine, since the person moved and the mine was stationary.
A refresh button can be half a second away in the menu bar, URL bar, or a submenu, where it is unlikely to be pressed accidentally. There is no need for a gesture that does more harm than good.
Using a mobile app with pull-to-refresh feels like having Windows StickyKeys forcibly enabled at all times. The refresh circle animation sticks to the finger.
If the user actually wants to refresh, pull-to-refresh is slower than a refresh button in a menu if the page is not at the top, meaning pull-to-refresh is useless as a shortcut anyway if the page is in any other position than the top.
An alternative to pull-to-refresh is pull-for-details. Samsung did it in some of their apps. Pulling down against the top reveals additional information such as the count and total size of selected items.
If you own a website, add this CSS to make browsing your website on the pre-installed Android web browser not a headache:
html,body { overscroll-behavior: none; }
Why is this necessary? In 2019, Google took the ability to deactivate the pull-to-refresh gesture on their Chrome browser for Android OS away from users. On Chrome for Android, pull-to-refresh can only be disabled on the server side, not the user side. The avalanche of complaints? Neglected.
Good thing several third-party browsers let the user turn off this severe headache.12