Programming Horror

1872 readers
1 users here now

Welcome to Programming Horror!

This is a place to share strange or terrible code you come across.

For more general memes about programming there's also Programmer Humor.

Looking for mods. If youre interested in moderating the community feel free to dm @[email protected]

Rules

Credits

founded 1 year ago
MODERATORS
1
240
mallocPlusAI (sh.itjust.works)
submitted 2 weeks ago by [email protected] to c/[email protected]
 
 
2
51
submitted 2 months ago* (last edited 2 months ago) by [email protected] to c/[email protected]
 
 

With modern tools, you have to try very hard to do something stupid, because the tools (rightly) recognize you’re doing something stupid. [Andreas Karlsson] can speak to that first hand as he tried to get four billion if statements to compile.

You may ask what state space requires four billion comparisons to evaluate? The answer is easy: the range of an unsigned 32-bit integer. The whole endeavor started with a simple idea: what if instead of evaluating whether an integer is even or odd with a modulo or bit mask, you just did an if statement for every case? Small ranges like 0-10 are trivial to write out by hand, but you reach for more automated solutions as you pass 8 bits and move towards 16. [Andreas] wrote some Python that outputs a valid C program with all the comparisons. For 16 bits, the source only clocks in at 130k lines with the executable less than 2 MB.

Of course, scaling to 32 bits is a very different problem. The source file balloons to 330 GB, and most compilers barf at that point. Undeterred, [Andreas] modified the Python to output x86_64 assembly instead of C. Of course, the executable format of Windows (PE) only allows executables up to 4 GB, so a helper program mapped the 40 GB generated executable and jumped into it.

What’s incredible about this whole journey is how performant the program is. Even large numbers complete in a few seconds. Considering that it has to thrash 40 GB of an executable through memory, we can’t help but shake our heads at how even terrible solutions can work.

3
 
 
4
 
 

I have no idea how to title this post. Oh well.

A few years back I worked somewhere that had a large breach. Many practices changed in the wake of it. Developers actually had admin access prior to the change which was very nice. In an effort to restrict access but also let folks do their jobs they deployed some tool that would start all programs that "needed" admin access as an admin. This included cmd for the devs. So every time I opened cmd I had to be careful not to break something since there was no way to launch it without admin access after that change.

5
 
 

cross-posted from: https://lemm.ee/post/36467447

I am not allowed to credit the site that has this disaster. Its owner said "Nobody should see that"

6
 
 
7
17
C++23 has fixed space! (kbin.melroy.org)
submitted 7 months ago* (last edited 7 months ago) by [email protected] to c/[email protected]
 
 
8
2
float as table id (twitter.com)
submitted 9 months ago* (last edited 9 months ago) by [email protected] to c/[email protected]
 
 

9
 
 

I was looking through various RCON tools and found this. Someone does not like commit messages.

10
6
submitted 9 months ago* (last edited 9 months ago) by [email protected] to c/[email protected]
 
 

For those unfamiliar with JS: subValue (the first argument in the forEach callback) is the value contained at arr[index].

11
71
submitted 9 months ago* (last edited 9 months ago) by [email protected] to c/[email protected]
 
 
// At this point, I'd like to take a moment to speak to you about the Adobe PSD 
// PSD is not a good format. PSD is not even a bad format. Calling it such would be an
// insult to other bad formats, such as PCX or JPEG. No, PSD is an abysmal format. Having
// worked on this code for several weeks now, my hate for PSD has grown to a raging fire
// that burns with the fierce passion of a million suns.
// If there are two different ways of doing something, PSD will do both, in different
// places. It will then make up three more ways no sane human would think of, and do those
// too. PSD makes inconsistency an art form. Why, for instance, did it suddenly decide
// that *these* particular chunks should be aligned to four bytes, and that this alignement
// should *not* be included in the size? Other chunks in other places are either unaligned,
// or aligned with the alignment included in the size. Here, though, it is not included.
// Either one of these three behaviours would be fine. A sane format would pick one. PSD,
// of course, uses all three, and more.
// Trying to get data out of a PSD file is like trying to find something in the attic of
// your eccentric old uncle who died in a freak freshwater shark attack on his 58th
// birthday. That last detail may not be important for the purposes of the simile, but
// at this point I am spending a lot of time imagining amusing fates for the people
// responsible for this Rube Goldberg of a file format.
// Earlier, I tried to get a hold of the latest specs for the PSD file format. To do this,
// I had to apply to them for permission to apply to them to have them consider sending
// me this sacred tome. This would have involved faxing them a copy of some document or
// other, probably signed in blood. I can only imagine that they make this process so
// difficult because they are intensely ashamed of having created this abomination. I
// was naturally not gullible enough to go through with this procedure, but if I had done
// so, I would have printed out every single page of the spec, and set them all on fire.
// Were it within my power, I would gather every single copy of those specs, and launch
// them on a spaceship directly into the sun.
//
// PSD is not my favourite file format.
12
 
 

Jesus Christ, just add an if statement for even or odd!

13
 
 
14
191
submitted 11 months ago* (last edited 11 months ago) by [email protected] to c/[email protected]
 
 
15
 
 
16
 
 
17
 
 

what do i do in this position ?

18
 
 
19
20
 
 
21
22
23
 
 
24
 
 
25
 
 

no words

view more: next ›