Details
Joined devRant on 7/15/2022
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
-
Do you believe in Spanky? I hope so, because Spanky is the one and only true being that made the universe and all of us.
If you don‘t believe in Spanky you will go to hell and will be tortured for all eternity.
Spanky loves you and has a personal relationship with every one of you.
The evidence for the existence of Spanky is everywhere and completely undeniable.
Just look at the trees. Aren’t they great?
Also We have the Spanky Bible, written by Spanky himself which says that Spanky exists. That is historical evidence right there.
Spanky is completely invisible and can’t be heard or touched, but you need to believe anyways.
Spanky chose to be hidden, even though he has made himself apparent to his people in the past, as it says in the Spanky Bible, which is true. Spanky wants to test your faith, so that you believe in him without evidence. Believing without evidence is a virtue and the requirement for being a good person.
Speaking of good person, if you don’t believe in Spanky, you not only go to hell for your sins, you also are a very evil person without morality. Because morality can only come from Spanky.
So, please, for the sake of your eternal soul, believe in Spanky.11 -
Cool, Snek has a new few members with new input to work on for now. It's still not released guys, it takes some tweaking. But i'm happy, earlier this day I went to beach, and when i came back, in the general chat there were 1200+ new messages. Holy fuck. I keep on preparing it for when it's needed. But I do hope to say within a month or so that it's <stable>. Finished, will never be the case! So many ideas to implement. One of the priorities is now, what you can do with the Snek app, because it's a lot, it has some sick features. Live typing was not appreciated by everyone but it's possible to disable it with /live.
Meh, stay tuned, will spam next month or so again. Happy that the cert is renewed and we can continue talk here.3 -
Working on some linux shell/terminal stuff and chatgpt really is both a saint and a curse
It's super helpful but like half the stuff it tells me is just flat out wrong
Never forget to double check guys! -
I don't like how tech companies are advertising they will sell you "peace of mind"
better question is why did you take it away in the first place, eh? so if you took it away in the first place why would I trust you to fix the issue you caused? talk about insanity, doing the same thing over and over again expecting different results -
Modern smartphones: "Powerful", "marvelous", but corporate overlords dictate what you actually get to do with it.
They lock your bootloader and prevent you from installing third-party operating systems.[1] Now they are starting to block third-party app installation only in certain situations, but this will sure as hell escalate.[2]
They block you from using the MicroSD card properly or take away the memory card slot entirely, decide what you are allowed to screenshot[3], and they lock your user data (like browsing history and saved pages) away from yourself to "protect you" from imagined evils. But this "protection" is actually the curse.
They also refuse to implement features people ask for like always starting with the rear camera regardless of the last used camera[4] and let the user backed up saved pages[5]. Something as simple as turning the flashlight on and off while recording a video took over a decade for Samsung to implement when shouldn't have taken a single afternoon.
----
Sources:
[1] Xiaomi prevents unlocking the bootloader but graciously allows it seven days after purchase. I believe that as the buyer, you should be able to install any operating system you like.
[2] (added through edit, hence last) Since Android 16, Google blocks APK installations during phone calls, supposedly to protect against scammers. But if history teaches us anything, it means this will quickly escalate and end with APKs being blocked completely or only installable through ADB, which requires an external computer and a USB cable.
[3] Google and Apple let app developers block users from taking screenshots. This is, for example, used by WhatsApp to prevent screenshots of profile pictures, even though everyone knows one should not put something in a visible spot on the Internet that one does not wish to be preserved. I believe people should have the freedom to screenshot anything that appears on their screen, like desktop operating systems (Windows and Linux) do. The buyer deserves to have the final say on a device they paid for.
[4] https://r1.community.samsung.com/t5...
[5] https://forum.developer.samsung.com/...8 -
The nightmare of all AI users is when this shows up: https://devrant.molodetz.nl/Screens...
The content what it said was even worse. Of course, it doesn't have the ability to do it. But imagine if it had, it was a false positive.1 -
What have I done today?
Nothing. Stayed naked all day and smoked weed.
Well I did my budget for the month and send my bills.
Tomorrow I'm paid.
Can't wait to receive my 8 strings guitar omg7 -
Okay, summary of previous episodes:
1. Worked out a simple syntax to convert markdown into hashes/dictionaries, which is useful for say writing the data in a readable format and then generating a structured representation from it, like say JSON.
2. Added a preprocessor so I could declare and insert variables in the text, and soon enough realized that this was kinda useful for writing code, not just data. I went a little crazy on it and wound up assembling a simple app from this, just a bunch of stuff I wanted to share with friends, all packed into a single output html file so they could just run it from the browser with no setup.
3. I figured I might as well go all the way and turn this into a full-blown RPG for shits and giggles. First step was testing if I could do some simple sprites with SVG to see how far I could realistically get in the graphics department.
Now, the big problem with the last point is that using Inkscape to convert spritesheets into SVG was bit of a trouble, mostly because I am not very good at Inkscape. But I'm just doing very basic pixel art, so my thought process was maybe I can do this myself -- have a small tool handle the spritesheet to SVG conversion. And well... I did just that ;>
# pixel-to-svg:
- Input path-to-image, size.
- grep non-transparent pixels.
- Group pixels into 'islands' when they are horizontally or vertically adjacent.
- For each island, convert each pixel into *four* points because blocks:
· * (px*2+0, py*2+0), (px*2+1, py*2+0), (px*2+1, py*2+1), (px*2+0, py*2+1).
· * Each of the four generated coordinates gets saved to a hash unique to that island, where {coord: index}.
- Now walk that quad-ified output, and for each point, determine whether they are a corner. This is very wordy, but actually quite simple:
· * If a point immediately above (px, py-1) or below (px, py+1) this point doesn't exist in the coord hash, then you know it's either top or bottom side. You can determine whether they are right (px+1, py) or left (px-1, py) the same way.
· * A point is an outer corner if (top || bottom) && (left || right).
· * A point is an inner corner if ! ((top || bottom) && (left || right)) AND there is at least _one_ empty diagonal (TR, TL, BR, BL) adjacent to it, eg: (px+1, py+1) is not in the coord hash.
· * We take note of which direction (top, left, bottom, right) every outer or inner corner has, and every other point is discarded. Yes.
Finally, we connect the corners of each island to make a series of SVG paths:
- Get starting point, remember starting position. Keep the point in the coord hash, we want to check against it.
- Convert (px, py) back to non-quadriplied coords. Remember how I made four points from each pixel?
. * {px = px*0.5 + (px & 1)*0.5} will transform the coords from quadriple back to actual pixel space.
· * We do this for all coordinates we emit to the SVG path.
- We're on the first point of a shape, so emit "M${px} ${py}" or "m${dx} ${dy}", depending on whether absolute or relative positioning would take up less characters.
· * Delta (dx, dy) is just (last_position - point).
- We walk from the starting point towards the next:
· * Each corner has only two possible directions because corners.
· * We always begin with clockwise direction, and invert it if it would make us go backwards.
· * Iter in given direction until you find next corner.
· * Get new point, delete it from the coord hash, then get delta (last_position - new_point).
· * Emit "v${dy}" OR "h${dx}", depending on which direction we moved in.
· * Repeat until we arrive back at the start, at which point you just emit 'Z' to close the shape.
· * If there are still points in the coord hash, then just get the first one and keep going in the __inverse__ direction, else stop.
I'm simplifying here and there for the sake of """brevity""", but hopefully you get the picture: this fills out the `d` (for 'definition') of a <path/>. Been testing this a bit, likely I've missed certain edge cases but it seems to be working alright for the spritesheets I had, so me is happiee.
Elephant: this only works with bitmaps -- my entire idea was just adding cute little icons and calling it a day, but now... well, now I'm actually invested. I can _probably_ support full color, I'm just not sure what would be a somewhat efficient way to go about it... but it *is* possible.
Anyway, here's first output for retoori maybe uuuh mystery svg tag what could it be?? <svg viewBox="0 0 8 8" height="16" width="16"><path d="M0 2h1v-1h2v1h2v-1h2v1h1v3h-1v1h-1v1h-1v1h-2v-1h-1v-1h-1v-1h-1Z" fill="#B01030" stroke="#101010" stroke-width="0.2" paint-order="stroke"/></svg>4 -
Jira is gradually turning from a somewhat serious coworking tool into some sort of bloated social medium for kids with ADHD.10
-
I've finally put two and two together about my mother and why she acted the way she did with me my whole life.
Since four years old, she told me again and again that I will be a programmer and "earn as much as Bill Gates". Then, in fifth grade, without asking me, she made me take regular programming classes I was really bad at. Then, again without asking me, she sent me to an experimental, highly intensive CS learning program in my uni that accepted kids two years before they finish the high school to throw a metric ton of math, C and hardware design at them. After a year there, I completely lost the ability to enjoy videogames (at 15 years old). By the end of the program (four years), I started experiencing bipolar symptoms.
Then, at the age of 19, she insisted that I take the first draft order and join the army. The military service in russia is mandatory, and it's notorious for breaking people no worse than russian prison does. Knowing that I'm weird and autistic (I was stacking things as a kid), and knowing that the army _loves_ breaking weird people to keep them in line, she just wanted to break me. For context, draft orders are sent out en masse, and everybody dodges them with no repercussions. When they're 28, they just pay a small "fee" (a bribe) to get the military id. You can't be conscripted after you're 28.
I don't know my father. I have a stepdad though. My mother and my stepdad had a kid, nine years younger than me, and of course he was loved by my stepdad way more than I was.
I can recount a lot of instances where she was cruel to me, but oh how subtle and passive-aggressive she made it to be. Also, when I was bullied at school, she insisted on not changing schools, but rather for me to man up.
Her plan was to make a highly paid but mentally broken drone that would be a strong, steady stream of money while she enjoys a "proper" family with her husband and a "proper" child.
It's so unfortunate that the bastard kid turned out to be bipolar, and that bipolar disorder resets one's entire worldview from time to time, nullifying two decades of conditioning, isn't it?
Dear woman I crawled out of, I'm either wrong or right. If I'm wrong, and you did all this (and waaay more of cruel and fucked up shit) to me without any strategy in mind, because you wanted to, then congrats, you're a psychopath. If I'm right, and it was all a strategy, then you knew what you did was wrong, and every single time you did it took a bit of your soul away from you, because that's what evil does. Given that your scheme failed, was it worth it in the end?21 -
So as mentioned by people earlier, devRant certificate is expired. Well, three things to do:
1. use dr.molodetz.nl for using devRant with a certificate.
2. write down snek.molodetz.nl or molodetz.online for when it really goes down, we're building a new community there. It's not ready yet, but is already in use for a long time. Literally everyone welcome. Just like dR, no moderation, freedom.
3. let's hope on not to loose too many friends!
devRant is a great site, but the wholesome, respectful community, is made by made by people.26 -
Had my wisdom teeth removed today. Not feeling my entire jaw is a bit strange but I don't believe I had any other strange effects from the sedation and I've been assured that I didn't say anything embarrassing.
Not having those teeth there anymore feels weird. They grew in well, but one developed a cavity that was causing me a headache that has been getting worse for the last 6 weeks.6 -
Sometimes, Google's solutions are worse than the problem they intend to solve.
For example, Google ReCaptchas are worse than spam, especially those with the pictures that fade extremely slowly on purpose. Unlike bots, humans are likely to not finish deliberately annoying captchas to save their precious time. (see http://archive.today/2022.06.25-110... )
In Chrome (mobile version), pull-to-refresh saves the one second it takes to reach for the refresh button in the submenu, but poses a threat of accidental refreshes each time you swipe down intending to scroll up. Over two thousand people have complained about this. ( http://archive.today/2025.02.26-153... )
With Android 4.4, Google blocked write access to memory cards (MicroSD) from all user-installed apps with the exception of app-specific folders so apps can not leave files behind when uninstalling. Google provided no option to change this. (source: http://web.archive.org/web/... )
But for unwanted files, there is already a delete button! Why take away the freedom to use the MicroSD card properly?
Google crippled the usefulness of memory cards for this nonsensical reason.
Google solved these problems with solutions that are worse than the problem.3 -
The junior made some work on the frontend, and... well, it's genuinely good. Nice component, looks good, he used tailwind and the framework properly. It's easy stuff, but he pulled it off nicely and that's how you move from toy projects to complex stuff anyways. This is not a rant, that kid is growing nicely. Let's go.2
-
Kotlin's existence is a global disaster! It's like a piece of dog shit! When I try to reference a Kotlin-developed JAR like 'openai-java-core' in my IntelliJ Maven project, it always fails to load properly. The system keeps showing me 'Cannot resolve symbol 'Xxx''. Kotlin shouldn't exist at all! It deserves to be eradicated!6
-
spent the whole week working on a bug fix last week.
implemented a method to filter some data to make it easier to use in the HTML template.
friday's session with other programmers to review code went well, they said the method is pretty good and works nice. (I must admit there was an elusive bug that prevented the component to render and none of us could figure it out)
i get back on monday to a message from the lead saying the code is unusable and they reverted to the previous (convoluted) way of doing things and i should do the same in the future. just copy their work.
i check the typescript class. fucking method that was used (which he told me not to use and I should copy and work off of), he went and just changed the method's name, and the body is EXACTLY the same as his existing method.
this code base is ridden with re-used methods (I managed to extract two reused ones into a service some time ago), the use of any for 90% of method return types and variables...
WTF. I am losing all of my respect for seniors and faith in this company.
This is why I am burned out. You are farting against a hurricane and everyone else's shit is coming back onto you. This is fucking insane. Or am I insane?10 -
Fuck, ate a huge deluxe cheeseburger from Red Robin and felt fine. Fast forward to this night and fucking tomato sauce makes me feel like I ate a bowling ball. Doubt it was the pasta
-
Yo @Lensflare, JoyRant beta expired again. It says I should update my iOS to 17 to continue testing, but my phone only supports 16. What should I do?53
-
I don't care, skeuomorphism like iOS 6 or window 7 aero was the peak of design and you can't convince me otherwise2
-
when you end up in the ER with excruciating pain early on a Saturday morning from persistent inflammation from chronic job stress and getting sick more than normally, you gotta change jobs.
no amount of money is worth your health.
(the drugs they gave me were pretty fun though, but not something I ever want to go through again)6 -
In my latest installment of "Swift, WTF?", we look at the "if" conditional in terms of the Swift convention of:
if let x = y { /* ... */ }
so what this does :
1. declares x in the scope of the braced code
2. sets x to y (an ahem, "optional")
3. decides if x is not *nil*, then executes the braced code.
This is very similar in both the visual and the operation to the C code of:
if (int x = y) { /* ... */ }
1. declares x in the scope of the braced code
2. sets x to the value of y
3. if x is not zero, then executes the braced code
which is considered *exceptionally* poor style.
Neither the C nor the Swift construct result in a legitimate boolean value of "true" or "false", although C comes closer than Swift.
In the Swift case the *imaginary* "nil" value has to be interpreted as "false" and thus there must be extra code is for the conditional to check on whatever constitutes the **actual** value of nil in Swift and then set the condition to "false".
(remember boys and girls, "optionals" are not real, they are an imaginary language construct of Swift and have no legitimate counterpart in the CPU operations with memory and registers)
At least in the case of C, if the value of x is zero or NULL (which is 0) then it is technically a "false" which in C is 0. Regardless, it is really poor programming and anyone doing that on my team gets an ear full.
But in Swift this obfuscation of code is common and condoned! Well, why not put more of the program in the condition of the if? In fact, stuff the whole thing in there.. why not? 🙄
This just reenforces my opinion that Swift is not a bird but the stuff that comes out of the underside of the bird. 🐦💩19 -
lmao remember that time I worked for a very respectable payment company for 2 months and made banks before they told me i couldn't use linux (like fuck off lmao) so I quit.
Turns out they were willfully moving drug and whore money lmao
motherfuckerz6 -
vibes ain't flyin' can't deadass sigma no cap lit ohio level 7900 fam, you're ngmi on god rizzling gyatt.4