Details
-
AboutEnthusiast of strict, safe, elegant and beautiful programming languages. Allergic against boilerplate. Certified hater of clown languages like JavaScript. 📱 Developer of JoyRant, the unofficial devRant iOS app that doesn’t crash.
-
SkillsSwift, SwiftUI. I have a truly large list of other skills which this margin is too narrow to contain.
-
LocationGermany
-
Github
Joined devRant on 6/30/2017
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
-
Have you tried chatgpt's text-to-speech feature?
It’s so much better than anything that I tried before. You can even choose different "personalities" or tones or whatever.
I‘d even say that it‘s perfect. I can’t think of anything that could be improved in terms of how well it pronounces words and puts emphasis on specific words. It’s 100% natural sounding.11 -
MS has added copilot to Outlook and placed the button in that left side bar where the other buttons are.
Thing is, that‘s the only colorful icon there.
Now every time I look at this bar, this icon always stands out. It looks like this is the selected icon, even if something else is selected.
For me this is a great example of shit UX.
They probably made it on purpose so that people are constantly reminded that COPILOT IS INTEGRATED IN OUTLOOK NOW.
They don’t care about good UX, they just want to smash it into your face.8 -
"I like being right so much that, when I’m proven wrong, I change my mind."
Such a great quote! Found it in the comment section of a youtube short :)2 -
Games which have a save point or checkpoint system: FUCK YOU!
This is a technical limitation that was present in game consoles in the 90s.
There is no fucking need to implement save points in games made today!
It serves no purpose other than to generate frustration for the player and make the player redo the same section of the game again and again when he fails.
Oh how much fun it is to repeat 20 minutes of tedious shit as a punishment because I fell into your cheap trap and died!
And even if I don‘t fail, I want to be able to stop the game at any time and continue later where I left off. Is that too much to ask?
I don‘t want to be forced to progress in the game until you decide that NOW, after 20 minutes is the time that I am allowed to quit playing.
This is a fucking design decision. Don’t make your design suck to imitate the games from the past that did it for technical reasons!11 -
I think the jobs of people who say that they will be replaced by AI must be so mundane that they probably will and should be replaced by AI.7
-
The most precious substance in world isn’t oil or gold or even printer ink. It’s anti-matter.
- PBS Spacetime14 -
Fasching/Karneval is the most retarded German annual tradition by a long shot.
I honestly don‘t get the obsession that so many people have with it.3 -
Some people have a very confusing way of communicating things…
And you need to painfully pull out of them every bit of information.
Colleague:
```
ITEM_ID <- only this will work
1200
1201
1300
1301
1400
1401
```
Me:
What does this list mean?
(I want to know if this is supposed to be a white list, but that doesn‘t make sense business wise)
Colleague:
*explains what the ITEM_ID means*
Me:
(Yeah I know what it means)
Are those ids in the list examples or the only possible values?
Colleague:
Yes, examples. But there are restrictions. Not all will work.
Me:
(Ok this is confusing again)
What are the restrictions?
Colleague:
*Explains the restrictions.*
(Those have nothing to do with the list)15 -
I can‘t respect religious believe from an intellectual point of view and I believe that religion does more harm than good in general.
But, I do respect the opinion that some atheists have, about religion being good for some people and that it can improve their lives.
I strongly disagree but I respect this opinion.
I have recently realized this after watching some stuff about atheism and theism.36 -
Why the hell do languages like Kotlin (Java) and C# handle dates and datetimes so needlessly complicated?
There are multiple types with different implementations and concepts like local time or time zones represented by those types. Some of them have capabilities like serialization, some of them don’t.
Parsing and encoding is tied to the types.
Why? Take Swift as an example:
It has one single Date type (including time) which represents a point in time independent of any calendar, time zone, encoding or format.
There is a DateFormatter to parse from APIs from iso or timestamps or whatever and to format to UI as a string in any language (localization), for any region, in any format.
If you just want a container for the date time components themselves (which the concept of local date time seems to be in those languages), you can use the DateComponents type. If you are interested in dates from the perspective of a calendar, there is a Calendar type.
Everything makes sense and the different concepts are decoupled from each other as they should be.
Damn! My memory about C# is a bit hazy but Kotlin, I’m disappointed in you! Date handling is a horrible mess!
Ok, I guess I can blame it on Java and JVM.6 -
Here is my idea for a time machine which can only send one bit of information back in time.
@Wisecrack has asked me about it and I didn’t want to write it in comments because of the character limit.
So here we go.
The DCQE (delayed-choice quantum eraser) is an experiment that has been successfully performed by many people in small scale.
You can read about it on wikipedia but I'll try to explain it here.
https://en.wikipedia.org/wiki/...
First I need to quickly explain the double slit experiment because DCQE is based on that.
The double slit experiment shows that a particle, like a photon, seems to go through both slits at the same time and interfere with itself as a wave to finally contribute to an interference pattern when hit on a screen. Many photons will result in a visible interference pattern.
However, if we install a detector somewhere between the particle emitter an the screen, so that we know which path the particle must have taken (which slit it has passed through), then there will be no interference pattern on the screen because the particle will not behave as a wave.
For the time machine, we will interpret the interference pattern as bit 1 and no interference pattern as bit 0.
Now the DCQE:
This device lets us choose if we know the path of the particle or if we want wo erase this knowledge. And we can make this decision after the particle hit the screen (that is the "delayed" part), with the help of quantum entanglement.
How does it work?
Each particle send out by the emitter will pass through a crystal which will split it into an entangled pair of particles. This pair shares the same quantum state in space and time. If we know the path of one of the particle "halves", we also know the path of the other one. Remember the knowledge about the path determines if we will see the interference pattern. Now one of the particle "halves" goes directly into the screen by a short path. The other one takes a longer path.
The longer path has a switch that we can operate (this is the "choice" part). The switch changes the path that the particle takes so that it either goes through a detector or it doesn't, determining if it will contribute to the intererence pattern on the screen or not. And this choice will be done for the short path particle-half because their are entangeld.
The path of the first half particle is short, so it will hit the screen earlier.
After that happened, we still have time to make the choice for the second half, since its path is longer. But making the choice also affects the first half, which has already hit the screen. So we can retroactively change what we will see (or have seen) on the screen.
Remember this has already been tested and verified. It works.
The time machine:
We need enough photons to distinguish the patterns on the screen for one single bit of information.
And the insanely difficult part is to make the path for the second half long enough to have something practical.
Also, those photons need to stay coherent during their journey on that path and are not allowed to interact with each other.
We could use two mirrors, to let the photons bounce between them to extend the path (or the travel duration), but those need to be insanely pricise for reasonable amounts of time.
Just as an example, for 1 second of time travel, we would need a path length about the distance of the moon to the earth. And 1 second isn't very practical. To win the lottery we would need at least many hours.
Also, we would need to build the whole thing multiple times, one for each bit of information.
How to operate the time machine:
Turn on the particle emitter and look at the screen. If you see an interference pattern, write down a 1, otherwise a 0.
This is the information that your future you has sent you.
Repeat this process with the other time machines for more bits of information.
Then wait the time which corresponds to the path length (maybe send in your lottery numbers) and then (this part is very important) make sure to flip the switch corresponsing to the bit that you wrote down, so that your past you receives that info in the past.
I hope that helps :)9 -
Let‘s talk about time travel and the bootstrap paradox (look it up if you don‘t know what it is)
I think that I have a solution for this paradox, but it requires the many worlds interpretation (quantum mechanics) to be true.
I‘m in the many worlds camp anyway.
So, how can an object exist in a time loop? The paradox is that it looks like it has no origin. It wasn‘t created. It just exists.
What if the act of time travel puts you into a different world, just like any decision puts you into a different world?
I‘d argue that the object has an origin and it was created. But it was created in a different world (different timeline, if you will). The person who observes the object in a loop is not in the same world as the person who observes the object being created.
After its creation, the object has entered the loop and by traveling in time it also traveled into a different world, where the creation event never happened.
This also solves the grandfather paradox in my opinion, because there is no contradiction when you go back in time and kill your grandfather. You are in a different world. You will never be born in that world, but so what, you are from a different world.
What do you think?11 -
I have finished my project for a new devrant sdk in swift:
https://github.com/WilhelmOks/...
(Yes, the readme is missing and I will add it later 😅)
And I built it into JoyRant (build 32), which required quite a bit of refactoring.
I think I tested everything but let me know if you find any problems.
You will need to logout and log in again.
The downvote reason feature isn‘t there yet (in JoyRant), but now I have a good basis to add it 😄
Yes, implementing a whole new SDK just for one little feature is overkill, but I had fun doing it and I wanted to have a nice, clean and extensible code base which I can work on in the future. 😌26 -
Another weird property of the devRant API:
For every POST request the url parameters need to be passed in the http body instead of in the URL, like this:
app=3&user_id=42
Wtf why?22 -
Currently implementing a Swift devRant SDK and encountered something very stupid:
The json value for attached image is an object (dictionary) when there is an image but it‘s an empty string "" when there is no image.
So two different types for the same property.
I hate this kind of crap.
Why not make it null or omit that property when there is no image?
Now I need to add ugly as fuck custom decoding code for this object.25 -
Yesterday‘s Windows 11 update brought back an old bug which I haven’t seen since Windows 8 or so.
The EN keyboard layout is added in the task bar UI but it‘s not actually there when you try to remove it in the settings.
Fucking hell! Why even make new versions of Windows if it‘s all the same pile of shit?
That‘s not the only old bug that persists across multiple major Windows versions!3 -
I think I‘ll bite the bullet and write my own version of SwiftRant (Swift REST API for devRant) with modern concurrency and a clean implementation and without semaphores and force unwraps which cause app crashes.9
-
I just released JoyRant build 30 with some improvements:
* fixed user-mention text insertion for iOS 18
* improved text selection in rants and comments to make it easier to quote specific parts of comments. See screenshot.
TestFlight link:
https://testflight.apple.com/join/...
I'm curious to know who uses JoyRant here.
I can see 48 users in TestFlight but there are probably many duplicates.5 -
End of the year. Management announced that the project that our team has been working in for more than 4 years, will be killed.
Shit.13 -
Dear great ux lords at ms azure devops, could you make the whole freaking button clickable instead of just the text inside of the button?10
-
Space Age, the expansion for THE game for programmers, Factorio, will be out tomorrow.
Who else will be playing the shit out of it?12 -
So, when hovering on that element in the bottom task bar in Windows 11, it shows those two icons (wifi and sound) grouped together.
Left click anywhere on that button and it opens the same menu.
But if you right click, now it suddenly depends if your cursor was on the one or on the other icon. It opens different menus!
Great UX! Good job, MS!15 -
The disabled option cannot be disabled if the UI element is disabled. 🩼
Each of the 3 words "disabled" has a different meaning.5 -
I‘m curious what you guys think about puzzle games with timers.
I personally hate it to be pressured by the timer. And I hate it when the puzzle resets and I need to start from scratch because I ran out of time.
I prefer to take my time and think about the next move rather than rapid fire my moves by intuition and hoping to get lucky.
Yet so many puzzle games have timers. Is this just lazy design? Do you like timers? What do you think about this?12 -
So I’ve requested images for the dark mode because the existing images are very bright and look bad when dark mode is enabled.
After a few days the designer says that it’s done and sends me the figma link.
And what do I see there? He added the screens but in dark mode with the same bright images! 😂
I mean… even if he misunderstood me… doesn’t it look odd to him?4