Details
-
AboutWriting full-time embedded Rust professionally since 2019
-
SkillsC#, C++, Rust
-
LocationThe Netherlands
-
Website
-
Github
Joined devRant on 7/28/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
-
What is it with certain colleagues who "wanna write C, not C++"
Motherfucker if I see another malloc in the code I will physically asssault you.
Like damn we're failing to teach people C++ badly when a newcomer from university, who had 2 semesters of "C++" doesn't even understand RAII.
And how in gods name do software engineers with *decades* of experience get so stuck on old technologies?
Like I've seen them write 3 nested try-catch to make sure a delete is called or some mutex is unlocked....
If youre in the position of teaching others C++, please stop teaching C first.25 -
After more than 24 years in dev, I still don't use RegEx and I have no idea how to write one without using an online builder.
I also refuse any Pull requests contaning regEx..24 -
Manager: How come I go on vacation for 2 weeks and you are able to start, complete, and ship an entire sprint in that time where as when I'm around, the same amount of work takes months? I even got COMPLIMENTS from *the client* about how smoothly things went while I was gone...THIS IS COMPLETELY EMBARRASSING AND UNACCEPTABLE!
Dev: Well. I cancelled all of the status meetings, created tickets with clear expectations, didn't change those expectations, didn't add every idea that popped into the client's head during those two weeks to the current sprint, didn't pull anyone off their tickets to teach me to code, cut the budget for making degrading comments to zero, and incentivised everyone to work by allowing a half days on fridays to work on personal projects if we stayed on schedule.
Manager: THAT'S NOT YOUR JOB! I'M THE MANAGER AND ALL. OF. THOSE. THINGS. ARE. MY JOB! NOT YOURS!
Dev: ...I know.16 -
Sober, jogging and lifting again. Working steady. Back to hiking and songwriting which I gave up on a couple years ago. Feeling more productive, happy, clear headed and calmer than I've been in two years. And the amount of attention I'm getting from the opposite sex lately has been crazy.
Joined a church, though I'm not mega into organized religion or anything. Looking for a backing pianist and vocalist to help record my songs. Back to studying math, learning Russian, and working on my game in between.
The only thing I'm not getting a lot of at the moment is sleep.
Feels good man.16 -
Things that I will do during the next few weeks at work because I am an asshole:
Write an entire CLI utility in Rust for internal processes, no one on my city understands or even knows that Rust exists.
Write a small desktop app as proof of concept for another department that had made the idea some time ago in either: GnuSTEP Obj-C or Lazarus Pascal for the same reason as the Rust application.
Job security people. And I have a tendency to write things in stuff that no one else uses.8 -
So not too long ago I made a rant about this time I told my superiors of a problem and it got shot down because "We don't want to save developer time".
I warned them that the CPU was going to reach it's limit because the issue involves exponential growth on CPU usage the more we develop.
As it turned out, despite my thoughts that we wouldn't reach that limit for over a year, a new development led to it blowing up in their face today.
I am now treated as the expert on the topic and they're rushing to plan my suggested implementation in the next release.
I'm mildly amused.5 -
Worst code review experience?
Hard to pick just one, but most were in a big meeting room with 4+ other developers not related to the project and with some playing Monday-Morning-Quarterback instead of offering productive feedback.
In one code review, the department mgr reviewed the code from a third party component library.
<brings up the code on the big screen>
Mgr: "I can't read any of this, its a mix of English and something else."
Me: "Its German."
Mgr: "Then why is 'Button' in English? This code is a mess."
Me: "I'm not exactly sure how I should respond, I mean, I didn't write any of this code."
Mgr: "Yes, but you are using it, so it's fair game for a code review."
Me: "Its not really open source, but we can make requests if you found something that needs to be addressed."
Mgr: "Oh yes, all this...whatever this is..<pointing again to the German>"
Me: "I don't think they will change their code to English just so you can read it."
Mgr: "We paid good money, you bet your ass they'll change it!"
Me: "I think the components were like $30 for the unlimited license. They'll tell us to go to hell first. Is there something about my code you want to talk about?"
Mgr: "<Ugggh>...I guess not, I couldn't get past all that German. Why didn't we go with an American company? Hell, why didn't we just write these components ourselves!?"
Me: "Because you gave a directive that if we found components that saved us time, to put in a request, and you approved the request. The company is American, they probably outsourced or hired German developers. I don't know and not sure why we care."
Mgr: "Security! What if they are sending keystrokes back to their servers!"
Me: "Did you see any http or any network access?"
Mgr: "How could I? The code is in German!"
Monday-Morning-Quarterback1: "If it were me, I would have written the components myself and moved on"
Me: "No, I don't think you could for less than $30"
Monday-Morning-Quarterback2: "Meh...we get paid anyway. Just add the time to the estimate."
Mgr: "Exactly! Why do we even have developers who can't read this mess."
Me: "Oh good Lord! Did anyone review or even look at my code for this review!?"
<silence>
Mgr: "Oh...ok...I guess we're done here. Thanks everyone."
<everyone starts to leave>
Me: "Whoa!...wait a sec..am I supposed to do something?"
Mgr: "Get that company to write their code in English so we can read it. You have their number, call em'...no...wait...give me their number. You keep working, I'll take care of this personally"
In they nicest way possible, the company did tell him to go to hell.17 -
Craziest bug, not so much in the sense of what it was (although it was itself wacky too), but in what I went through to fix it.
The year was 1986. I was finishing up coding on a C64 demo that I had promised would be out on a specific weekend. I had invented a new demo effect for it, which was pretty much the thing we all tried to do back then because it would guarantee a modicum of "fame", and we were all hyper-ego driven back then :) So, I knew I wanted to have it perfect when people saw it, to maximize impressiveness!
The problem was that I had this ONE little pixel in the corner of the screen that would cycle through colors as the effect proceeded. A pixel totally apart from the effect itself. A pixel that should have been totally inactive the entire time as part of a black background.
A pixel that REALLY pissed me off because it ruined the utter perfection otherwise on display, and I just couldn't have that!
Now, back then, all demos were coded in straight Assembly. If you've ever done anything of even mild complexity in Assembly, then you know how much of a PITA it can be to find bugs sometimes.
This one was no exception.
This happened on a Friday, and like I said, I promised it for the weekend. Thus began my 53 hours of hell, which to this day is still the single longest stretch of time straight that I've stayed awake.
Yes, I spent literally over 2+ days, sitting in front of my computer, really only ever taking bio breaks and getting snacks (pretty sure I didn't even shower)... all to get one damn pixel to obey me. I would conquer that f'ing pixel even if it killed me in the process!
And, eventually, I did fix it. The problem?
An 'i' instead of an 'l'. I shit you not!
After all these years I really don't remember the details, except for the big one that sticks in my mind, that I had an 'i' character in some line of code where an 'l' should have been. I just kept missing it, over and over and over again. I mean, I kinda understand after many hours, your brain turns to mush. and you make more mistakes, so I get missing it after a while... but missing it early on when I was still fresh just blows my mind.
As I recall, I finally uploaded the demo to the distro sight at around 11:30pm, so at least I made my deadline before practically dropping dead in bed (and then having to get up for school the next morning- D'oh!). And it WAS a pretty impressive demo... though I never did get the fame I expected from it (most likely because it didn't get distributed far and wide enough).
And that's the story of what I'd say was my craziest bug ever, the one that probably came closest to killing me :)5 -
When I was in college OOP was emerging. A lot of the professors were against teaching it as the core. Some younger professors were adamant about it, and also Java fanatics. So after the bell rang, they'd sometimes teach people that wanted to learn it. I stayed after and the professor said that object oriented programming treated things like reality.
My first thought to this was hold up, modeling reality is hard and complicated, why would you want to add that to your programming that's utter madness.
Then he started with a ball example and how some balls in reality are blue, and they can have a bounce action we can express with a method.
My first thought was that this seems a very niche example. It has very little to do with any problems I have yet solved and I felt thinking about it this way would complicate my programs rather than make them simpler.
I looked around the at remnants of my classmates and saw several sitting forward, their eyes lit up and I felt like I was in a cult meeting where the head is trying to make everyone enamored of their personality. Except he wasn't selling himself, he was selling an idea.
I patiently waited it out, wanting there to be something of value in the after the bell lesson. Something I could use to better my own programming ability. It never came.
This same professor would tell us all to read and buy gang of four it would change our lives. It was an expensive hard cover book with a ribbon attached for a bookmark. It was made to look important. I didn't have much money in college but I gave it a shot I bought the book. I remember wrinkling my nose often, reading at it. Feeling like I was still being sold something. But where was the proof. It was all an argument from authority and I didn't think the argument was very good.
I left college thinking the whole thing was silly and would surely go away with time. And then it grew, and grew. It started to be impossible to avoid it. So I'd just use it when I had to and that became more and more often.
I began to doubt myself. Perhaps I was wrong, surely all these people using and loving this paradigm could not be wrong. I took on a 3 year project to dive deep into OOP later in my career. I was already intimately aware of OOP having to have done so much of it. But I caught up on all the latest ideas and practiced them for a the first year. I thought if OOP is so good I should be able to be more productive in years 2 and 3.
It was the most miserable I had ever been as a programmer. Everything took forever to do. There was boilerplate code everywhere. You didn't so much solve problems as stuff abstract ideas that had nothing to do with the problem everywhere and THEN code the actual part of the code that does a task. Even though I was working with an interpreted language they had added a need to compile, for dependency injection. What's next taking the benefit of dynamic typing and forcing typing into it? Oh I see they managed to do that too. At this point why not just use C or C++. It's going to do everything you wanted if you add compiling and typing and do it way faster at run time.
I talked to the client extensively about everything. We both agreed the project was untenable. We moved everything over another 3 years. His business is doing better than ever before now by several metrics. And I can be productive again. My self doubt was over. OOP is a complicated mess that drags down the software industry, little better than snake oil and full of empty promises. Unfortunately it is all some people know.
Now there is a functional movement, a data oriented movement, and things are looking a little brighter. However, no one seems to care for procedural. Functional and procedural are not that different. Functional just tries to put more constraints on the developer. Data oriented is also a lot more sensible, and again pretty close to procedural a lot of the time. It's just odd to me this need to separate from procedural at all. Procedural was very honest. If you're a bad programmer you make bad code. If you're a good programmer you make good code. It seems a lot of this was meant to enforce bad programmers to make good code. I'll tell you what I think though. I think that has never worked. It's just hidden it away in some abstraction and made identifying it harder. Much like the code methodologies themselves do to the code.
Now I'm left with a choice, keep my own business going to work on what I love, shift gears and do what I hate for more money, or pivot careers entirely. I decided after all this to go into data science because what you all are doing to the software industry sickens me. And that's my story. It's one that makes a lot of people defensive or even passive aggressive, to those people I say, try more things. At least then you can be less defensive about your opinion.53 -
Dev: Why do you have an identical if statement right below this one?
Manager: Because I want the code to double check, obviously.
Dev: …19 -
Do some cool shit that I’ve always wanted to do.
- learn more about machine learning and computer vision
- learn C / C++ / rust
- learn embedded systems / programming
- learn more EE centered stuff3 -
So I have a hardware project which requires two spindles to move something. Turns out one of the two i ordered has a sliiiightly smaller pitch than the other. Therefore it to moves slower than the other one and shit doesnt work.
FuckThis.exe I go to the hardware store and get two M8 threaded rods with nuts. Install it and it works. This shizz has less backlash than both spindles combined and cost 1/3 of just one propper spindle.
This is pretty much the first time I've seen the shitty solution work waaay better than the propper one.2 -
Recently I've been learning Rust & I wanted to make something useful. So, I made a Jenkins alternative. It is currently being used in our company, which feels good. So far its working great.
& I wouldn't necessaily say I'm "proud" of it, but rather I'm "thankful" that I was able to do that. Cause, Rust is pretty popular for its steep learning curve & thinking of making something like Jenkins with Rust before actually learning Rust takes a lot of courage8 -
Manager (via phone): You need to setup the CEO with access to the app IMMEDIATELY
Dev: Ok…What’s the occasion?
Manager: There is a big important meeting right now where we go over our achievements for the year and my plan was to have him log in and play around.
Dev: Likely would have been worth mentioning at this mornings standup.
Manager: Don’t be a smart ass. In fact, if you were actually smart you would have given him an account in the first place! So you’re just an ass then, what kind of idiot doesn’t give the CEO an account to an app like this?
Dev: Actually you specifically asked for him to be removed when I added him. “Unnecessary Optics” you said.
Manager: THAT’S BULLSHIT, I NEVER SAID THAT!!
Dev: It’s in our meeting minutes from 2 years ago.
Manager: STOP WRITING THE THINGS I SAY DOWN IT’S COMPLETELY UNNECESSARY.
Dev: I’ll make a note of that request
Manager: YOU ABSOL—ok looks like he’s waving me back in the room now the account must be working now bye. *click*.
Dev: Moron.9 -
Interviewer: So are you familiar with our company and what we do?
Dev: I looked at your website, looks like you build tools for managing restaurants.
Interviewer: No. That’s not even close.
Dev: ?
Interviewer: What we do is create an ecosystem of integrated data centres all orchestrated for immediate stakeholder utilization.
Dev: But the product itself…. it’s a user interface for tracking inventory. Of like…. burgers…. and bottles of wine.
Interviewer: It’s not a product! It’s a data……habitat!!
Dev: …
Dev: So does that make your users animals?
Interviewer: 😡. Unfortunately it looks like you do not see our vision and would not be a good fit for this role.
Dev: Agreed.27 -
Fuck whoever invented caramel and chocolate and particularly whoever mixed them. How am I supposed to stop eating this? It so fucking delicious.12
-
Remember that 'solo standup' I was 'shaking in my boots about'?
Should have started at 9:30
Yeah, well its O9:40... the managers aren't even here yet...
So much respect in this team!
🤡🤡🤡🤡🤡🤡🤡🤡4 -
Today, I dropped my 5900x while cleaning the computer. It's dead. pins got bent and one pin got loose.
I feel like crying... please send prayers and thoughts.
R.I.P AMD Ryzen 9 5900X 5900x 12 Cores 24 Threads 70 MB Cache 3.7 GHz up to 4.8 GHz. You will be missed.17 -
Haha kids, you're all dead wrong. Here's my story.
There is a thing called “emergence”. This is a fundamental property of our universe. It works 100% of the time. It can't be stopped, it can't be mitigated. Everything you see around you is an emergent phenomenon.
Emergence is triggered when a lot of similar things come together and interact. One water molecule cannot be dry or wet, but if you have many, after a certain number the new property emerges — wetness. The system becomes _wet_.
Professionalism is an emergent phenomenon too, and its water molecules are abstract knowledge. Learn tech things you're interested in, complete random tutorials, code, and after a certain amount of knowledge molecules is gained, something clicks inside your head, and you become a professional.
Unfortunately, there are no shortcuts here. Uni education can make you a professional seemingly quicker, but it's not because uni knowledge is special, it's because uni is a perfect environment to absorb a lot of knowledge in a short period of time.
It happened to me too. I started coding in Pascal in fifth grade of high school, and I did it till sixth. Then, seventh to ninth were spent on my uni's after-school program. After ninth grade, I drop out of high school to get to this uni's experimental program. First grade of uni, and we're making a CPU. Second grade, and we're doing hard math, C and assembly.
And finally, in the third grade, it happens. I was sitting there in the classroom, it was late, and I was writing a recursive sudoku solver in Python. And I _felt_ the click. You cannot mistake it for anything else. It clicks, and you're a changed person. Immediately, I realized I can write everything. Needless to say, I was passing everything related to code afterwards with flying colours.
From that point, everything I did was just gaining more and more experience. Nothing changed fundamentally.
Emergence is forever. If you learn constantly, even without a concrete defined path, I can guarantee you that you _will_ become a professional. This is backed by the universe itself. You cannot avoid becoming one if you're actively accumulating emergence points.
Here's the list of projects I made in the past 11 years: https://notion.so/uyouthe/...
I'm 24.7 -
Asked junior to clone a git repo
junior: tried everything it doesn't work
me: show me how you did it
junior: right clicked on the repository, 'Copy link address' then paste it into the terminal
me: put that mouse down right now!26 -
Colleague started to share their screen
Me: screen is not visible to be
Them: let me just increase the brightness of my monitor5 -
Manager: You know you did good this week, take the entire day off tomorrow
Dev: Really?
Manager: Yeah my treat.
Dev: Can you send that to me in an email?
Manager: ….I mean yeah, but I don’t see why that is necessary
*** About halfway through The next day
Manager: WHERE THE FUCK ARE YOU?! YOU HAVEN’T COMPLETED A SINGLE TICKET TODAY OR REVIEWED A SINGLE PR OR EVEN SO MUCH AS ATTENDED THE STANDUP. EXPLAIN YOURSELF!
Dev: You said I could take the day off today?
Manager: YEAH BUT YOU’RE NOT SUPPOSED TO ACTUALLY TAKE IT OFF!! I WAS GIVING YOU THE OPPORTUNITY TO SHOW DEDICATION TO THE COMPANY BY COMING IN ANYWAY BUT NO YOU THOUGHT YOU’D JUST TAKE ADVANTAGE OF OUR GENEROSITY AND HAVE AN ENTIRE DAY TO YOURSELF?! GET YOUR HEAD OUT OF YOUR ASS, THERE ARE URGENT TICKETS ON THE BOARD!
Dev: …15 -
It's nice that more and more languages are introducing async/await syntax, but by the example of Rust in particular I'm starting to wonder why we don't instead introduce this syntax for monads in general?
We could have a keyword (say, `bind`) which unwraps a value from any monad provided that the return value of the function is wrapped in the same monad. The ? operator does something a little similar, and I'll be intrigued whether it can actually be implemented for monads other than Result and Option once GATs are stabilized. In particular in the case of Rust, it would be possible to create a reference counting monad for heap-bound management of objects derived from references.9