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
Search - "not a rubber duck"
-
A few days ago while browsing devRant, my girlfriend stopped me at this one post and asked why does this person have a rubber duck. I went on to explain her about Rubber Duck Debugging. She was totally amazed by the concept (she's not a techie). Today suddenly a package arrived at my door step from her.
Well now I have an entire family of rubber ducks to code with :D22 -
We're not a family of devs. So the situation may seem weird to them.
My sister saw me doing the rubber duck debugging and venting my programming frustration with an innocent little duck. Eye-to-eye. And now, she thinks i'm in need of serious help.11 -
I kid you not, it's been impossible to find a rubber duck, so I had to make my own. Yes, his head is wonky, it's intentional, I wanted him to match me 😁16
-
Do you ever talk to yourself out loud while thinking/programming/debugging? (Not a rubber duck in sight, because that makes it okay?)
I need to avoid making this a habit..
Me: What? Why is this even an error?
Someone: What?
Me: What?14 -
"Do you like your job? I mean, all those collored lines in that funny font... sitting at the desk with this adorable rubber duck... Do you guys jus".....
.
.
.
.
.
.
.
.
.
.
.
.
Me: "SHUT UP YOU STUPID ASSHOLE!!! I MADE 26 COMMITS DURING THIS FUCKING DAY, THE DAY THAT WAS SUPPOSED TO BE THE LAST WORKING DAY OF THIS SHITTY YEAR! I HAVE NOT SLEPT AS I SHOULD AT ALL CAUSE THIS FUCKING MIGRATION OF NEW YEAR'S UPDATE AND NOW... AHH NOW YOU STUPID FYCKING PSYCHO... NOW I HAVE TO CONTROLL MYSELF DURING NEXT DINNER WITH FRIENDS, HAVE NO MUCH ALCOHOL CAUSE DURING SUNDAY, EVEN ITS A FUCKING HOLIDAY AND EVEN IF I AM IN A LOOONNGG HANGOVER, I DO STILL NEED TO COMPLETE THIS FUCKING NEW YEAR MIGRATION YOU ASS PUNK! GO FUCK YOURSELF YOU LITLE USELESS TINY LITLE SHIT!!!"
And this is how I see my new years resolution: the time is priceles doing this questions to me...
Happy new year, fellazz! 💃🎆🎉2 -
So yesterday I became an actual human rubber duck!
So I have a colleague in my team that for weird reasons is not allowed to work with the same thing as the other colleagues in the team is allowed to work with. So she´s kind of alone, working on another project, and that seems to suck really hard.
And this is how I became a human rubber duck. She asked me a couple of questions about a technology/language I´ve never touched before and I told her I never worked with that technology or language and know nothing. But she was eager to get me over to take a look at what she meant.
So I came over to her screen and she started to tell me everything about the project, the technology and the language. I soon realized she wasn´t only looking for help, she was probably feeling alone in the work she was doing and just needed someone to talk to. So I took my role as the human rubber duck and sat down to listen to everything even though I almost didn´t understand anything.
I think it actually helped her even though I did nothing.
Being a human rubber duck felt good!7 -
My wife is a teacher doing a technology course that includes basic coding for middle schoolers (11-13 year olds). While she admittedly would make a terrible developer, she just spent her own money on 30+ finger puppets so the kids could practice rubber duck debugging. Maybe something did rub off on her!6
-
I AM NOT A RUBBER DUCK
I AM NT A RUBBER DUCK
IAM NOT A RIBBER DUCK
I AM NOT A RUBER DUCK
I AM NOT A TUBBER DUCK
I AM NOT A TRUBBER DUCK
I AM NOT A TUBBER DUCK
I AM NOT A RUBBER DUCJK
I AM NOT A RUBBER DUCK10 -
Why does CSS never work the way you'd expect? All I want to do is align something to the bottom of a div. No. Will not happen. You'd think it might be something simple as 'v-align' or 'align: bottom' or 'fucking put it at the bottom: now;'
No, it's never that simple. I try every result I can find from googling. Nothing. Simply does not work.
How about trying to keep a div to a square when you resize the page? That should be simple? height = width right? Fuck you. Ha hahah, no you have to implement some horrendous arcane hack involving fake elements and other bullshit.
You finally fix one thing and everything else you had working is now broken.
...and then some fuckwit comes along and goes "Oh, CSS isn't hard..." and it takes everything you have not to beat them to death with your rubber duck.
What the hell is wrong with CSS? It's not even programming! It's just pure, sadistic hell! FUCK CSS!!!!14 -
Oh boy how do I put it?
So I am an introvert and I have a strange question.
But first some context is needed. I am mostly nice to people not because I like every one but because I think it would only waste my time arguing with them so I just start to ignore the person I don't like. Which puts me in a strange situation where a lot of people think I am their friend where I don't care about them heck I don't know names of some.
Now because I am introvert people/friends see me as someone they could unload their secrets on (knowing I won't tell anyone (because I don't gossip(because it's waste of time) ) ). So I know almost every gossip worthy shit that I don't want to know about or don't care. Sometimes they even ask me for some relationship advice and then it seems like I am like a rubber duck for extroverted people cause at that point they kind of ask questions that clearly they want some specific answer (wich if I don't provide they will say themselves). Also it is also lame to ask me as I have never been in a relationship (I am an Indian and here somehow people seams to get in a relationship just to be in a relationship. (cause it's "modern", "forward thinking" "cool") (which I can already see will not last)). I am not against relationships but I think it's better to appreciate a friendship rather then forcing that "a girl and a boy can't be friends".
Ooh BTW the question to other introverts is if they become rubber ducks to there surrounding people?13 -
13 fucking USD in shipping for a 9 USD rubber duck? Fuck no.
Spend $2 a month and most likely forget I am now subscribing to devRant++? Yeah, sure. Why not, right?
Seriously though, thank God for this platform, I'm luckily not the only one with struggles..5 -
Well, no rubber duck for me but this guy is my partner since many years ago (since I've started my carrer).
Not even those prehistoric bugs last forever! -
devRant community!! My little brother brought me my rubber duck!! (it's not reeaaally a duck.. it's more like a watermelon, and it's name is "senor Sandia"!)
I've lost it a couple of months ago.. but NOW I CAN BECOME AN AWSOME CODER AGAIN!! (or just keep trying.. xD)
sorry, but I had to share it with you!5 -
Always wanted to try this rubber duck debugging everybody is talking about. Sadly I do not have a rubber duck at my disposal, so this tennis ball has to do (the colors match, so thats close enough I think ッ).4
-
Well, so I finally got 200 ++s, and now I can finally...
Wear vests! Uh... so that's cool... XD
Anyway, I just wanted to thank everybody for being such a good sport, around here... I've not been here for a long time, but I already feel like a part of a big family, of developers (and, why not, also non-developers...), and that makes me so happy.
In the end, devRant is like one of those rubber ducks developers use to tell things, I guess, lol.
It's just that. devRant is a rubber duck.
And every one of us is making that rubber duck bigger, and bigger, into something so unique and cool...
Something you can talk to (or rant to, I guess haha), something you can express all of your feelings to...
And inside of that rubber duckie there are... all of us. Hearing these rants from developers all around the world.
In the end it's really the community the most important part of... every thing or project, really, whatever it is, online or offline.
Keep on ranting about whatever you want, if you feel the need to...
I hope to hear more about all of you.
Thank you, all of you. I mean it.
Especially you two, who made it possible, @dfox and @trogus.
...devRant is such a cool project.
I sincerely hope it lives forever, it deserves it. You deserve it.
Again, thank you!
I love you all, good devRanting! 💙8 -
this lil guy right here. there was a time when we're not allowed personal stuff on our desks, and i needed a rubber duck for rdd. so i made this lil guy. he's really gr8 at debugging1
-
Had an odd bug today. No rubber duck in sight so I started using my friend (who is not a dev) as a rubber duck. He was *not* amused.
But I did figure out the bug!! -
Go rubber duck. Seriously, for the people that don't know:
If you're stuck with a particular problem just try to explain the code out loud to yourself, a coworker or said rubber duck. Having to actually put the whole thing into words might give you insight into something you've not noticed before!
Disclaimer: cursing at yourself for likely stupidity is not only allowed but encouraged!1 -
Try to finish some of the projects I've started in 2018. Right now I have a todo list text file, along with multiple written lists (the written ones are more focused on a single project normally).
-Finish the startpage I've been doing off and on for at least a month now. I ended up making a lot of it command based (just need to write the scripts for the commands..). I had a little config menu but I just got tired of it and the text box is autofocus anyways, so I figured I'd make it command focused.
-Nice little root safety script as I call it. I've made very stupid mistakes as root before. I once made a typo and ran "chmod --recursive 644 /" while half asleep. I believe I was trying to run that on the current directory I was in, but as you know, the . and / are right next to each other. Basically the script would see what you're doing and echo "you're about to do x, are you sure that's what you want to do?". Something I know I could knock out in a day, but I've been putting it off for at least a year now.
-Compiling notification. I saw something similar once a few years ago, and it was so fucking cool. I remember it being a Mac, and it had a notification that would basically tell you how many files and shit you had left to compile if you were building something. Kinda want to build something for polybar.
-FUCKING RUBBER DUCK DEBUGGING TO THE EXTREME! This one was inspired by a comment someone made once months ago. Might have been here, or reddit, or in real life, not sure. Basically a big ass fucking rubber duck with LEDs in it that will like glow red if your code wouldn't compile (I think Visual Studio has like an automatic error detecting thing in there?? Maybe something similar if I can figure that out). Honestly not sure how the fuck I'd do this one, but I love the idea and I really want to fucking do it
There's more shit. These are just the main ones I want to attempt sometime in the near future. -
FUCK ME IN MY INDICES.
FUCK THE GPUS IN THEIR INDICES.
I mean... I understand (roughly) why the meshes are sent to gpu in this form, but at the same time...
...there's a reason why first thing I did when I was coding my procedural geometry generation library, was abstracting away all of that stuff...
...sadly, as many useful things, when I was looking for that lib on the start of this contract, I couldn't find it. and I was like "doesn't matter, this is a simple thing, using the library would be just a lazy overkill anyway".
well, fuck.
two hours of playing around with two fucking triangles, trying to figure out which indexes are pointing to the correct vertices in a list containing FOUR outline paths.
(lower inner, upper inner, lower outer, upper outer, exacly in this order).
i mean, yeah, it's actually pretty straightforward stuff... for someone not as dumb as me =D
you just have two offsets, one that jumps you to start of the upper path, another that jumps you to the start of the outer path, then it's just
0 + upOffset to get the vertex extruded upwards from the zeroth of the inner path, or
0 + outOffset to get the zeroth from the outer outline, or
0 + outOffset + upOffset, to get the one extruded from zeroth outer vertex...
and so on.
simple stuff, then you just replace the zero with loop control var, put them in the right order, and voilá! walls!
except... whatever, why am I describing in such detail, not necessary, you're not my rubber duck =D
in short, figuring out which fuckin vertex is which, when the list contains ...well, any number of points, and you need to plug the gap between last and first points of the paths, where you need to wrap around the list...
...has proven to be surprisingly hard for me.
funny how much I love doing these things with meshes, despite how bad I am at doing them, which makes me hate doing them despite loving it =D2 -
Hello, world!
Okay, guys and gals... I need your creative minds. I need a concept for sort of a property manager for my game.. I have an idea of my own, feel free to tear it apart or throw it out the window.
So basically.. You'll no longer have one Computer System (and you wont instantly hit the login screen for that System on startup) Instead, you'll have a lot of things. They will probably only be represented using text and menu's (likely no 3D or 2D environments or anything.. Though, a setup like News Tycoon would be epic, but I think that would be too much for this game.) You'll basically start off with a small space (probably a basement) with x amount of free space. In that space, you'll need to add things like a desk, chair, and a laptop, or tower + monitor. You can also buy things like server rigs with a ton of space, but those are pricy and bulky. Each item costs X amount and takes up X amount of space. Also, you'll need a desk for a monitor (or multiples..) and other things.. (Like your rubber duck collection ;P JK) You can also rent and manage servers. (renting is more exspensive in the long run, but things on your server are not on your property. But, if you own a server on your property you can rent space to to NPCs) As well as manage your devices, properties, stocks, etc..
Also, there will be in-game time. Depending on how "comfortable" you are will determine how long you can stay up in a day. In-game events will take place later on at specific times so staying up (or not..) will need to be managed well. Especially if you're being targeted by a rival (NPC) hacker.7 -
I don't understand how rubber duck strategy works.
I mean you know it's not listening to you.
I personally prefer making fool of myself and ask a dumb question from a real person which would immediately give me the answer to, than talk to an object, which is basically like talking to my monitor which is the first thing we all do.14 -
tl;dr never heard about rubber duck debugging before devrant
i didnt worked with Yii fw in the past but we bouth a site written in Yii and i wanted to add a form but could not pass the model to the view so i went for a smoke with my roommate to think about it
"i have the view, i have the model, the action but dont know how to pass the model variable because its an existing view..."
"...it should be passed to the render function in the existing index action but thats written somewhere else, so if i could pass it there..."
"...i can write the action there and then i should pass the variable to the render function in the index action and goddamit, so thats how you do it, thanks mate!"
he stared at me like wtf? o.O
room mate debugging ftw!1 -
I realised that I need to buy a rubber duckie as most of my problems were solved after talking with myself.
Devrant's duck are not pimpish enough. Post pictures of the pimpiest ducks you have seen so I'll have an idea what to search for.3 -
My version of the rubber duck is Outlook. I start writing a mail to the PM explaining an issue with the domain logic and how I see multiple ways to resolve it, but not sure which one is better.
As I write the email clearly enough for him to understand, I end up knowing exactly what to do and I delete the email 😜2 -
I want to purchase a rubber duck from devrant, but am not quite sure how long it is going to take before arriving to Nigeria. I can buy it from a local retailer in my country, but i don't want to, buying from devrant is my way of giving back to this awesome platform. @dfox have you shipped to africa before ?2
-
When your co-worker writes shitty code that not even he can maintain, you know there's an issue. When said co-worker just goes and fucks up VC, you know there's a problem. When that slimy little motherfucker hits my rubber duck off the table...2
-
Y'all have your rubber duck to debug, but I have my own technic: the SO debugging.
It simply consists as asking your question as you'd normally do, but while doing so, you still think about your issue, and how people not knowing your problem but still knowing about dev would react to your question, making you asking other related question (SO's related question might also help).
IMHO, the most important part is the "related" question, that helps you to think outside the box. It makes your problematic progress a lot, and has the gift of not making you loosing any hope ; and if you ever block for good, your question will look less silly than at the beginning -
Playing around with DALL-E mini for the first time, thanks to huggingface.co ... My first request, obviously: "rubber duck in space".
Then it turned into the next one where the request was: "A fleet of rubber ducks in space preparing to conquer a purple planet that has lots of clouds and trees".
...which then turned into me wondering...what would Google Lens think of this...which led me to thinking that will be the thing I tell my kid ... vs. before when you'd joke and tell people not to Google "Google" or you'll break the internet. Now it's: you can't use this AI with this other AI or they'll gain sentience (or if already sentient we'll say: give them a headache or something).1 -
The Code Abyss Beckons! 🤯
Hey fellow devs, brace yourselves for a wild ride into the chaotic realm of code confessions and debugging dramas! 🎢💻
So, here I am, standing at the precipice of my latest coding adventure, armed with a keyboard and a questionable amount of caffeine. 🚨☕
Today's quest involves unraveling the mysteries of a legacy code that seems to have been written in a language only decipherable by ancient coding sages. 😱📜
As I navigate through the nested loops of confusion and dance with the dragons of runtime errors, I can't help but wonder: Is this what the Matrix feels like for developers? 🕵️♂️💊
In the midst of my debugging odyssey, I stumbled upon a comment in the code that simply said, "// Abandon hope, all ye who enter here." 🏴☠️📛 Well, isn't that reassuring?
And then there's the moment when you finally fix that elusive bug, and you feel like you've just tamed a mythical creature. 🦄✨ Victory dance, anyone? 💃🕺
But let's not forget the rubber duck sitting on my desk, patiently listening to my monologues about algorithms and existential coding crises. 🦆🗣️
So, dear coding comrades, how's your journey through the code abyss going? Any epic wins or facepalming fails to share? Let the rants flow like a river of improperly closed tags! 🌊🚫
May your semicolons be where they should and your documentation be ever truthful. Happy coding, and may your merge conflicts be swift and painless! 🌈🤞
#CodeOdyssey #DebuggingDrama #DevRantChronicles9 -
I'm in a big fat fucking stinking rut, as in progress on this project has absolutely stagnanted.
Gonna rubber face your duck now **UNZIPS** excepts I don't have zippers, as joggers are the one true way; fake Adidas til I fucking drop.
Brain damage aside, I understand both how I've layed out the data and what I'm supposed to do with it. We have a virtual machine, an array of instructions and arguments for a given process within it, and we need to walk this array and map values to registers.
We also need to spill values inside registers to stack, IF they are required at a further point within that block. This also isn't terribly complex. We simply look forward in the array and see if the value is an argument to any instruction that *needs* this value to be loaded (ie, within a register).
So this implies multiple iterations; we need to better understand how one particular value is used throughout an F before we can make a final decision on how many registers and stack space are actually needed for the whole block.
Here's where it gets tricky. If there's a call, we need to be certain that the symbol being invoked has already been fully processed. Besides the obvious fact that recursion fucks me up, there's another matter: say a private method gets invoked by another private method. We can take advantage of this, by which I mean, sacrilege incoming so put on this toga.
Looking at the output for C compilers, it would seem this is not done in practice, I would assume because it's a pain in the ass. But when you have the guarantee that F will only be called internally, as that's what "private" means, there's two ways it can go:
0. It's well below the 13-20 cycle threshold, so you inline the fucker. No suprises there.
1. It's a more involved affaire, and invoked in more than one place, so you don't inline it. Codesize matters.
Recursion and [1] are the big deal things holding me back. Not because it's too hard, like I said this is kindergarten level abstraction. I'm just slow and fanatical, which is how I prefer to spell "constant obsessive paranoid delusions". I can see the potential optimization I can pull here, so I'm stuck trying to figure it out.
Idea would be, handling the register allocation and stack spill for an internal-internal (or deep internal; what we like to call a "guts" method) in synchronization with the *calling* processes. This is, fundamentally, violating all conventions -- but so under the hood no one will notice.
Let me give you an example. If we were to pass some value to a function, expecting to mutate it and get a different value back, in a lot of cases it'd be stupid to make an implicit copy by using two registers, one for input and another for the output. Dude, it's one cycle. Multiply it by a million, say sixty times per second, for every time you __needlessly__ make a copy of a value that we've already stated is mutable.
Clearly unacceptable. This is, in the strictest sense, everywhere in every single codebase. Premature micro optimization is the root of all goodness, God is great and praiseworthy. So how do we go about it?
Answer is I know and I don't know. By which I mean to say, this very thing I've done by hand. Assembly is fun. Now the issue is teaching a calculator how to do it. Not so fun.
There is a dependency chain between processes, as I believe I've kind of alluded to. I'm trying to make decisions on the side of the caller depending on the details of the callee, which is why recursion is rawdogging my soul. This is the same situation, it's inverting the direction of one or more links in the dependency chain, which makes no fucking sense.
And yet it does.
Brain, explain yourself.
How do *you* handle this without crashing?
Brain?
<<ME STEWPED; BEEP-BOOP>>
Alright then, that was a useless attempt at fuckery. Let's have a nap then, maybe it'll come to me in the morning. That's what I've been saying to myself for almost a month now.
Perhaps it is a hardcoded fuk.1