Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "foot shot"
So I asked my company's tools team to fix a bug in their tools related to testing a major feature of our project. They downgraded it to "low priority" because it's "user-specific". I asked how can this be user-specific when it's a major feature. They came back with "well, you're the only one testing it"... Right...
I found this on a wiki with Haskell Humor... it's interesting...
How to Shoot Your Self in the Foot With Haskell: Putting the unsafe in unsafePerformIO!
You shoot the gun, but the bullet gets trapped in the IO monad.
Couldn't match expected type 'Deer' against inferred type 'Foot'.
While compiling your program the compiler produces a type error long enough to overflow a kernel buffer, overwrite the trigger control register and shoot you in the foot.
After trying to decipher the type errors from the compiler, your head explodes.
After you've finally found a way to circumvent the type system and shoot yourself in the foot, Oleg appears out of nothing and shoots you in the foot for coming up with it before him.
You shoot the gun but nothing happens (Haskell is pure, after all).
Your foot is fine, until you try to walk on it, at which point it becomes mangled.
You have a shootFoot function which you've proven correct. QuickCheck validates it for arbitrary you-like values. It will be evaluated only when you end up at the hospital. You hope this doesn't come to pass, as it actually returns a bullet-ridden copy of yourself and you don't want to be garbage-collected.
foreign import ccall "shootparts.h shootfoot" shoot_foot :: Gun -> Programmer -> IO ()
shootSelfInFoot = unsafePerformIO . shoot . foot $ self -- Shoot self in foot 0 or more times depending on evaluation order
No instance for (Target Foot)
arising from use of `shoot' at SelfInflictedInjury.hs:1:0
Possible fix: add an instance declaration for (Target Foot)
In the expression: shoot foot
You go to shoot yourself in the foot but the bullet is in the ST monad and the gun is in the IO monad, so you can't.
You ask Haskell to shoot you in the foot but by the rules of lazy evaluation you don't need the result yet so it doesn't happen.
You decide to shoot yourself in the foot but get distracted devising a ballistics algebra and wondering if you can do the calculations in the type system.
You want to shoot yourself in the foot but realize there is no Gun datatype so use Arrows instead.
You shoot in the direction of your foot, but since you are inside the STM monad you can just retry until you figure out what to do.
You shoot yourself in the foot, but you are perfectly fine as long you just don't evaluate the foot.
You shoot yourself in the foot, but nothing happens unless you start walking.
Don't forget about memory consumption! If you don't look, the bullet causes heap overflow. If you look, the bullet causes stack overflow.
You *appear* to have deliberately shot yourself in the foot, and yet your program actually runs perfectly OK due to lazy evaluation. (So long as you remember to not look at your foot...)
You aim the gun at your foot, pull the trigger and remove the clip. When you look at your undamaged foot, the hammer clicks on an empty barrel.1
I was too concerned whether or not I should extend a feature, that I forgot to check if I could do so.
Now I've shot myself in the foot by breaking half of the feature and my only solution to make this work out as intented are quite ugly.
10/10 would do so again. Programming like a retard is the way hobby projects are meant to be. Best learning experience you could hope for.
Also, bless git for giving me a second chance in case I've gone full retard mode.4
TL;DR: Fuck fucking Arch fucking Linux. Gentoo. Yay or nay?
So over the last few days my arch install has gone to hell. A small install of a package brings up some other update as it needs an updated version, then shit starts to segfault. I've been compiling anything and everything from sources rather than using pacman, and it works great. My DE has an issue with animations and does a FULL FUCKING KERNEL PANIC when I as simple as change what virtual desktop I focus. I'm genuinely so fucking done with Arch and I wish to change. I'm not touching Ubuntu with a 10 foot pole, nor any other Debian shit, so I'm wondering whether Gentoo might be it. Anyone got experience with it? Worth a shot for an experienced linux user?12
I shot myself in the foot again!!
These incident usually happen at restless night.
Some night I become too restless so I do what any programmer would do, I program.
The "novel" idea just come up and I code until I become too tired. I usually finish the prototype of the project before I fell asleep.
I usually found out that I have reinvent the wheel the next morning! Great. My "novel" idea is not too "novel" after all.
It is hard to find the novel project these day since it is too hard to beat the decade of collective intelligence of programmer.8
Every once in a while the flexibility of dynamic types comes back and bites you in the ars:
So I created method that returns the date significance (day, month, year) or null when no date is set.
I chose a class constant DAY with the value 0.
This is not a problem in if statements as I always use === but in this case a switch made more sense. And as you can guess no date set (NULL) was handled in the self::DAY (0) case... 😐😑😶 Silently resulting in wrong results when no date is given! #£#@$& (and other comic swearing symbols)
Even though php7 finally has decent type hinting resulting in much clearer defined API's we can still go very wrong.
More love to Go for less verbose static typing! To bad we can rarely use it at the office 😥2
Might of just shot myself in the foot. Asked user on screen record to open dev tools by pressing f12 and click into console so I could visually see if any errors occur.
What have I done...the questions and confusion are overflowing.