frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
251•theblazehen•2d ago•84 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
23•AlexeyBrin•1h ago•1 comments

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
705•klaussilveira•15h ago•206 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
967•xnx•21h ago•557 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
67•jesperordrup•6h ago•30 comments

Reinforcement Learning from Human Feedback

https://arxiv.org/abs/2504.12501
7•onurkanbkrc•44m ago•0 comments

Making geo joins faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
135•matheusalmeida•2d ago•35 comments

Where did all the starships go?

https://www.datawrapper.de/blog/science-fiction-decline
44•speckx•4d ago•34 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
68•videotopia•4d ago•6 comments

ga68, the GNU Algol 68 Compiler – FOSDEM 2026 [video]

https://fosdem.org/2026/schedule/event/PEXRTN-ga68-intro/
13•matt_d•3d ago•2 comments

Jeffrey Snover: "Welcome to the Room"

https://www.jsnover.com/blog/2026/02/01/welcome-to-the-room/
39•kaonwarb•3d ago•30 comments

What Is Ruliology?

https://writings.stephenwolfram.com/2026/01/what-is-ruliology/
45•helloplanets•4d ago•46 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
238•isitcontent•16h ago•26 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
237•dmpetrov•16h ago•126 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
340•vecti•18h ago•147 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
506•todsacerdoti•23h ago•247 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
389•ostacke•21h ago•98 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
303•eljojo•18h ago•188 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
361•aktau•22h ago•186 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
428•lstoll•22h ago•284 comments

Cross-Region MSK Replication: K2K vs. MirrorMaker2

https://medium.com/lensesio/cross-region-msk-replication-a-comprehensive-performance-comparison-o...
3•andmarios•4d ago•1 comments

PC Floppy Copy Protection: Vault Prolok

https://martypc.blogspot.com/2024/09/pc-floppy-copy-protection-vault-prolok.html
71•kmm•5d ago•10 comments

Was Benoit Mandelbrot a hedgehog or a fox?

https://arxiv.org/abs/2602.01122
23•bikenaga•3d ago•11 comments

The AI boom is causing shortages everywhere else

https://www.washingtonpost.com/technology/2026/02/07/ai-spending-economy-shortages/
25•1vuio0pswjnm7•2h ago•14 comments

Dark Alley Mathematics

https://blog.szczepan.org/blog/three-points/
96•quibono•4d ago•22 comments

How to effectively write quality code with AI

https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/
270•i5heu•18h ago•219 comments

Delimited Continuations vs. Lwt for Threads

https://mirageos.org/blog/delimcc-vs-lwt
34•romes•4d ago•3 comments

I now assume that all ads on Apple news are scams

https://kirkville.com/i-now-assume-that-all-ads-on-apple-news-are-scams/
1079•cdrnsf•1d ago•461 comments

Introducing the Developer Knowledge API and MCP Server

https://developers.googleblog.com/introducing-the-developer-knowledge-api-and-mcp-server/
64•gfortaine•13h ago•30 comments

Understanding Neural Network, Visually

https://visualrambling.space/neural-network/
306•surprisetalk•3d ago•44 comments
Open in hackernews

Twenty Eighth International Obfuscated C Code Contest

https://www.ioccc.org/2024/index.html
359•mdl_principle•6mo ago

Comments

_kb•6mo ago
For an obfuscation comp, I love the fact they explicitly refer to and do not rewrite "index.html web pages for each winning entry".
4pkjai•6mo ago
As a noob, this is confusing me.
rawling•6mo ago
Usually web servers can be configured so if you request a directory it will look in that directory for index.html and serve it if it finds it.

This page explicitly links to name/index.html for each submission rather than just name, an ironic waste of bytes given the subject matter.

bcardarella•6mo ago
> Increased submission quantity and quality

So everybody just LLM'd this, right?

mattigames•6mo ago
Vibe obfuscation, all the cool kids are doing it.
w-ll•6mo ago
i guess that should make vibe de-obfuscation as easy
Disposal8433•6mo ago
That would be the Underhanded C Contest (https://en.wikipedia.org/wiki/Underhanded_C_Contest)
s-macke•6mo ago
LLMs can help you analyze the code, but not write it. Their ability to obfuscate is quite limited and uninspired. The last IOCCC was in 2020, so we've had plenty of time to work on it.
dyauspitr•6mo ago
What do you mean by an LLM can’t write it?
Sharlin•6mo ago
That they're bad at the exact thing this competition is about: writing clever obfuscated code.
anonzzzies•6mo ago
I would go further and say the fine tuning on code, mostly by llms generating for other llms and human sweat shops writing example code to train on is actually to teach the llms the opposite of clever code and obfuscated code. Llms try to create readable, documented code (with different levels of success). When I make them generate terse/obfuscated code, they cannot help themselves by putting too much readable things in there. I asked claude to do the moon phase one and it had the calculation correctn but could not figure out how to draw the ascii moon so it just printed the values, used emojis next to the ascii etc. But when you ask to do it with normal code, it does figure it out.
Xant42•6mo ago
Hello. I can confirm being the person that produced the shows live event and graphics and whatnot that I had a chance to see if any of the llms available could understand the code and beyond some very superficial stuff they more or less completely failed to understand any of the entries this year. Hope you enjoyed the presentation. There will be more to come in the out favorite universe channel in the future that should be fun.
AlotOfReading•6mo ago
I didn't find them useful when I wrote my entries. LLMs get confused with code that "looks like" other code, and that intentional misdirection is half the fun of a good IOCCC entry. Plus, the morality filters get annoying once you obfuscate the code. Plugging an unsubmitted entry into Gemini, it refuses to even explain it because it thinks it's malware.
rjh29•6mo ago
A four year gap since the last contest would explain both of those.
Sharlin•6mo ago
Quantity? Maybe. Quality? Extremely doubtful. But both are much more likely to be simply due to the four-year break.
nurettin•6mo ago
They said increased quality.
andrepd•6mo ago
> Increased quality

I think you can answer your own question

isoprophlex•6mo ago
https://www.ioccc.org/2024/stedolan/index.html

Reading last years entries, this image decompression oneliner outputs its own logo when passed the hash of its source code?! Pretty neat.

jama211•6mo ago
Yeah I just read that one, insane!
alexey-salmin•6mo ago
The guy obviously enjoys obscure piping commands, the other one being jq
weinzierl•6mo ago
I was wondering how the hash thing worked. Got my answer from the notes, which are otherwise hilarious.

"While terseness was preferred over obscurity, this program hopefully still lives down to IOCCC’s usual standards of clarity."

Someone•6mo ago
Also:

“Several variants of this program were considered. Several.”

(They must have tried billions of variants to find the match on md5sum. Luckily, you don’t have to compile or run the code to find that match)

smallerize•6mo ago
Since 2009, it has not been that hard to create a collision (where you control both inputs and only care that they end up with the same hash as each other). https://archive.org/details/pocorgtfo14/page/n45/mode/1up After reading this article, scroll up to the top and see that the PDF has its own MD5 hash on the cover.
SAI_Peregrinus•6mo ago
Or this gif that animates its own MD5sum: https://shells.aachen.ccc.de/~spq/md5.gif
weinzierl•6mo ago
I was mostly interested if the solution did that or calculated its own hash on the fly, for example by reading its own source. Thinking about it and considering how short the source is it must have been the former all along, but that was my motivation looking into the notes. I didn't regret it.
Someone•6mo ago
This isn’t (fully) a situation where you control both inputs. The MD5 hash code has to be a ‘program’ that produces a nice icon when processed by the program whose MD5 hash code has that value.
codethief•6mo ago
Indeed!

> By an astonishing coincidence, the number of bits in the input format is approximately the log2 of the number of MD5 evaluations that a five-year-old GPU can do in an hour.

bspammer•6mo ago
I still don't understand how it works, the source code doesn't have any obvious sections to insert data for brute-forcing. I'm as confused as the judges:

> There are no magic numbers in the program, and bits of the input map to pixels of the output in a regular way, yet it outputs a nice icon for itself, if given the MD5 hash of its own source. How?

I'm assuming the fact that MD5 is completely broken plays into it somehow...

0points•6mo ago
> By an astonishing coincidence, the number of bits in the input format is approximately the log2 of the number of MD5 evaluations that a five-year-old GPU can do in an hour.

I read this to mean he calculated a matching hash on his GPU, in order to tune the magic constants of his app to produce the desired output.

> There are no magic numbers in the program

There are several:

    long z,x,G;main(){for(puts("P1\n80 80"),scanf("%10lx",&G);3-z/2160;x=++z%81/8-5)putchar(5>x?!(16>>(x^-(x<1))+1&G<<5>>z/648*5)^49:10);}
bspammer•6mo ago
Most of those numbers aren't possible to change, 80x80 is the output size, %10 is the input size.

Changing any of the other numbers would surely impact the function of the program, I don't think you could get to a 40 bit brute-force there.

I think the brute-force was done by making non-semantic changes like variable names and changing the order of the declarations.

addaon•6mo ago
> I think the brute-force was done by making non-semantic changes like variable names and changing the order of the declarations.

Yep. You have 17 bits of entropy just in the names of three single-letter variables.

bspammer•6mo ago
Thinking about it more, I guess you can just change the single-letter variable names and positioning to quite easily get up to a 40 bit brute-force.
abcd_f•6mo ago
In 135 bytes !

This is right there in the mad scientist territory.

Incredible, pure bananas.

s_dev•6mo ago
Same guy wrote jq
ForOldHack•6mo ago
Thank you Barry Kerchival, My C programming teacher for sharing obfuscated code, and showing us utter abuse of the C pre-processor. "This does not do what you think it does."

"Recalcitrant code."

01HNNWZ0MV43FF•6mo ago
"You could hide a semi truck in 200 lines of C"
ForOldHack•6mo ago
At the beginning of the semester, we had a question about struct... Armed with the error code,she showed it to Barry. He looked at it, sat down at her machine, and typed a few lines. Compiled it, put the disks for the compiler back in the folder, put the folder and the manual in the box and threw it against the wall above the garbage can, and it landed for a two-pointer. "We will have a new compiler on Monday."

Thus ended the use of Lattus-C, and Microsoft-C for a least 4 years. We went with Manx-C, and were able to complete all the assignments for that semester.

He saved the best for later. "Read 'on trusting trust'" which blew all out minds.

You can hide whole universes inside of a C compiler.

dbacar•6mo ago
This is epic: :)

From : https://github.com/ioccc-src/winner/blob/master/2024/kurdyuk...

This code draws the current moon phase to the console. So if you’re a lycanthrope, you can monitor the phase of the moon.

#include <time.h> #include <stdio.h>

        a,b=44,x,
     y,z;main()  {!a
   ?a=2551443,x=    -b
  ,y=2-b,z=((time     (
 0)-592531)%a<<9)/     a
 :putchar(++x>=a?x     =
 -b,y+=4,10:x<0?x=     x
 *x+y*y<b*b?a=1-x,     -
  1:x+1,32:"#."[(     x
   <a*(~z&255)>>    8)
     ^z>>8]),y>  b?0
        :main();}
_kb•6mo ago
That's a bit of a hat tip to donut.c: https://www.a1k0n.net/2011/07/20/donut-math.html
dbacar•6mo ago
I didnt know that, thanks.
pelagicAustral•6mo ago
This is the exact type of thing that makes me feel like I am in the wrong line of business...
dotancohen•6mo ago
Every field has somebody five standard deviations out to the right. Don't let that mistake you into thinking you're too far to the left. The fact that you can appreciate such an accomplishment, already puts you a standard deviation to the right.
ycuser2•6mo ago
The donut is kind of cheated because it uses comments.
omoikane•6mo ago
Probably more of a hat tip to this one:

https://www.ioccc.org/2000/natori/index.html

https://github.com/ioccc-src/winner/blob/master/2000/natori/...

It's interesting how the same 2551443 bitmask appears in the time calculation for both.

repmop•6mo ago
2551443 is the length of the synodic month in seconds. The calculation being done converts the current time in seconds into a 512-wide integer range representing the lunar phase by offsetting from the lunar phase during the unix epoch.
rwmj•6mo ago
Slightly reminiscent of a 1988 entry to calculate Pi: https://en.wikipedia.org/wiki/International_Obfuscated_C_Cod... The 1988 entry uses its own source code to calculate it.
chuckadams•6mo ago
I loved the description that was attached to one version of it: "to get more precision, write a bigger program".
sgt•6mo ago
To compile this:

  cc -Wno-implicit-int -Wno-implicit-function-declaration phase.c && ./a.out
Cthulhu_•6mo ago
I'm not sure why you feel like providing instructions when they're documented in the repo just one level up from the linked file: https://github.com/ioccc-src/winner/tree/master/2024/kurdyuk...
wild_pointer•6mo ago
Compiler Explorer link: https://c.godbolt.org/z/xE8hzM189
somat•6mo ago
The entry rules are great. Highly specific in that way you know exactly how they were abused in the past.

    Rule 2
    
    Rule 2 requires that your submission satisfy BOTH Rule 2a AND Rule 2b.
    
    You may check your code with respect to Rule 2a and Rule 2b prior to
    submitting your code by giving the filename as a command like
    argument to the iocccsize(1) tool. For example:

    iocccsize prog.c

    The source to iocccsize(1) may be found in the mkiocccentry repo.

    See also the FAQ on “how to further test your submission” for more more thorough testing, including Rule 2.

    See also Rule 2a, Rule 2b, and Rule 17.

    Rule 2a

    The size of your program source should NOT exceed 4993 bytes.

    Rule 2b

    When the filename of your program source is given as a
    command line argument to the latest version of the official
    IOCCC size tool (hereby referred to as iocccsize(1)),
    the value printed should NOT exceed 2503.

    See also Rule 17.
raverbashing•6mo ago
4993 bytes, I wonder how did they came up with such a specific number
Sharlin•6mo ago
So you are allowed to store 2053 bytes worth of extra data in the filename. That's... surprisingly lenient.
GranPC•6mo ago
How would you actually read that data back from your program?
ashdnazg•6mo ago
argv[0]
GranPC•6mo ago
That would only work assuming the program isn't just compiled to "a.out". I don't think this "loophole" would work at all.

edit: Nevermind, I misread the original rule.

lapsis_beeftech•6mo ago
__FILE__
theletterf•6mo ago
Ah, obfuscated code, the mark of a genuinely human developer. :-)
tiu•6mo ago
Can https://www.underhanded-c.org/ also please come back!
pelagicAustral•6mo ago
I wonder what the future of these competitions is in the era of AI. Same for the Advent of Code.
Jaxan•6mo ago
Advent of Code is not really a competition. There is a ranking, but that’s not the point of it.
pelagicAustral•6mo ago
Wouldn't people be competing to be at the top of the ranking? I should think that the Real Madrid participates in La Liga because they want to win and not just flair their way around.
AIPedant•6mo ago
Advent of Code needs to get rid of that stupid leaderboard and display winning entrants' names alphabetically. It's not even slightly a fair competition, an entire swath of people are out of the running simply because they are too tired at 11pm (or busy with their kids etc) to solve a little puzzle. I think anyone trying to "compete" in AoC needs to reassess their priorities.

Also, I like reading the "flavor text" about the elves and whatnot. Encouraging people to ignore it seems at odds with the design of AoC.

recursive•6mo ago
It's OK to compete. And it's on not to. You can ignore the leader board.
a_dabbler•6mo ago
It's more like a marathon, sure you're in a race but people don't really care about your position in it unless you're near the front. Completing it on its own gives a feeling of achievement
gsinclair•6mo ago
The difference between the AoC leader board and the La Liga table can be measured in many millions of euros.
bashauma•6mo ago
these works are really gems, but this type code is very strange, and not useful for standard situation. AI devs will take more "normal and useful" code for learning their products than these "noisy and hard-reading" code.
VoidWhisperer•6mo ago
It would appear that someone forget to add something before putting the page up... part way down the page is 'XXX-add-show-URL-here-XXX' referring to a youtube livestream vod for the announcement of the winners

Edit: Before posting this, I looked to see if there was a repository I could contribute to to fix it, but I can't find one

s-macke•6mo ago
Livestream yesterday

https://www.youtube.com/live/UDzGwTalVAc

delduca•6mo ago
My favorite entry (and was a winner)

https://github.com/ioccc-src/winner/blob/master/2005/persano...

dogman1050•6mo ago
Ah yes, brings to mind a new engineer we hired in the early 90's with with an excellent academic record from a fine school introducing himself to the team by emailing everyone an obfuscated one-liner C program that did something cute. Several members of the team responded to him with lists of ways in which his program violated our recently create style guide. We were a fun group.
Retr0id•6mo ago
Aaaaaaa, I always learn of these after they've happened. I've wanted to enter for a long time.
deater•6mo ago
my plan to rick-roll every major coding competition continues apace. muahahaha

I actually had another entry that I felt had much more clever coding that did some nice sixel animations but from what I understand there were many entries also doing that this year

sgt•6mo ago
The question, ladies and gentlemen, that we're all waiting for; Just how many of this year's IOCCC entries were vibe coded? /s
capitainenemo•6mo ago
Unfortunate that the redesign broke all links to the old entries (which, since they've been around for decades are on quite a few sites - wikipedia for example) without redirects, and now requires using a javascript capable browser to view the entries on github (github having removed non-JS access last year).
connicpu•6mo ago
I guess the JS-free way to access would be `git clone`
capitainenemo•6mo ago
yep. certainly occurred to me. not the most practical if you just wanted to look at a single file, and still breaks the legacy links. BTW, they also made JS required to get the "clone" link off their website, although you can of course guess it most of the time.

In any case, wasn't using w3m/lynx this time, so just whitelisted the 2 domains github requires.

brirec•6mo ago
> you can of course guess it most of the time

In what scenarios is a GitHub clone URL ever different from what one what “guess”?

I’m genuinely curious — all of the GitHub git clone URLs I’ve encountered were the exact same format. (https://github.com/$user/$repository with an optional “.git” at the end of the URL)

capitainenemo•6mo ago
Github pages hosted content. But of course that was just a minor digression from the main disappointments WRT their change.
dotancohen•6mo ago
I remember being annoyed that some project which had its name changed - an action that Github gives much warnings about - still had its clone URL as the former name of the project. This was a while ago, I don't remember the details.
textlapse•6mo ago
I wonder if there is an LLM competition that can take the obfuscated code and return the unubfuscated/detailed code…
thepace•6mo ago
Claude gave me this unobfuscated C code for `long z,x,G;main(){for(puts("P1\n80 80"),scanf("%10lx",&G);3-z/2160;x=++z%81/8-5)putchar(5>x?!(16>>(x^-(x<1))+1&G<<5>>z/6485)^49:10);}`:

#include <stdio.h>

/

* PPM Pattern Generator * * This program generates a 80x80 black and white PPM image based on a * hexadecimal input pattern. The pattern is rendered as ASCII art using * bit manipulation to determine which pixels are on or off. /

int main() { long pixel_index = 0; // Current pixel being processed (0-6399 for 80x80) long horizontal_offset; // Horizontal position relative to center long hex_pattern; // Input hexadecimal pattern

    // Output PPM header for 80x80 black and white image
    // P1 = ASCII black and white format
    // 80 80 = width and height
    puts("P1\n80 80");
    
    // Read hexadecimal pattern from user (up to 10 hex digits)
    scanf("%10lx", &hex_pattern);
    
    // Process each pixel in the 80x80 image
    // Continue until we've processed all pixels
    // The condition (3 - pixel_index/2160) continues while pixel_index < 6480
    // This accounts for 80x80 = 6400 pixels plus some margin
    for (; 3 - pixel_index/2160; ) {
        
        // Move to next pixel and calculate horizontal offset from center
        pixel_index++;
        horizontal_offset = (pixel_index % 81) / 8 - 5;
        
        // Determine what to output for this pixel
        if (horizontal_offset < 5) {
            // We're in the main pattern area (central region)
            
            // Complex bit manipulation to determine pixel state:
            // 1. Calculate bit position based on horizontal offset
            int bit_pos = (horizontal_offset ^ -(horizontal_offset < 1)) + 1;
            
            // 2. Extract relevant bits from the pattern
            // hex_pattern << 5 shifts the pattern
            // >> (pixel_index/648*5) selects which part of pattern to use based on vertical position
            long pattern_bits = (hex_pattern << 5) >> (pixel_index/648 * 5);
            
            // 3. Check if the specific bit is set
            int bit_is_set = (16 >> bit_pos) & pattern_bits;
            
            // 4. Invert the bit and XOR with '1' (ASCII 49) to get '0' or '1'
            char pixel_char = (!bit_is_set) ^ 49;
            
            putchar(pixel_char);
            
        } else {
            // We're outside the pattern area - output newline
            putchar(10);  // ASCII 10 = newline character
        }
    }
    
    return 0;
}

/

* USAGE: * Compile: gcc -o pattern_gen pattern_gen.c * Run: ./pattern_gen * Input: Enter a hexadecimal number (e.g., 1234ABCD) * Output: PPM format image data that can be saved to a .pbm file * * EXAMPLE: * ./pattern_gen > output.pbm * Then input: DEADBEEF * * The resulting .pbm file can be viewed with image viewers that support PPM format * or converted to other formats using tools like ImageMagick. */
maxmcd•6mo ago
Was quite confused by this one: https://github.com/ioccc-src/winner/blob/master/2024/cable2/...
sparkie•6mo ago
Indeed. Even when you see the hidden unicode it's still not obvious what's going on.

The "salmon" string is mostly unicode TAG characters[1] which contains the printed string followed by 2 En Quad[2], which not so obviously has the effect that `putchar` returns 0 when given as it's argument. Then the defines aren't what they seem, and the body of main is never executed because it's surrounded by a while loop where the condition is 0 (due to putchar() with en quad).

[1]:https://unicodeplus.com/block/E0000

[2]:https://unicodeplus.com/U+2000

1vuio0pswjnm7•6mo ago
"Sadly, K&C-style C code does not compile well under modern C compilers."

What is K&C

Is this a typo

hencoappel•6mo ago
Guessing they meant K&R style C?
ForOldHack•6mo ago
Who is 'C?' Asking for a friend.
kmoser•6mo ago
Ritch-C?
__turbobrew__•6mo ago
Christ
bapak•6mo ago
You're probably a programmer. This is what your job looks like to everyone except programmers. Pure gibberish.
drmaximus•6mo ago
You might also be interested in the Grand C++ Error Explosion Competition: https://tgceec.tumblr.com/
Mvulane•6mo ago
Ji
sureglymop•6mo ago
This one is so cool: https://github.com/ioccc-src/winner/tree/master/2024/macke

> This is an emulator capable of running a full modern Linux system with a minimal set of features.

s-macke•6mo ago
Author here. Yes, it runs a modern Linux from a 1.6MB binary. I did everything possible to make it as small as I could. It even compiles into WebAssembly and runs in the browser.
gavinray•6mo ago

  > A full-fledged C64 emulator is included. 
You really outdid yourself, didn't you?
earnestinger•6mo ago
I’m stll waiting for the revival of the cousin, underhanded c contest.
GGByron•6mo ago
I can't imagine a better argument against using c. Isn't that the obvious, serious takeaway?
AlotOfReading•6mo ago
You can write similarly obscure code in any language. C is a particularly good language for it, but many of the entries use techniques that are broadly applicable to others.
GGByron•6mo ago
> "C is a particularly good language for it"

A particularly good language for writing bad code? Quite the euphemism.

jpegqs•6mo ago
Open the link: https://www.ioccc.org/2024/kurdyukov3/ogvm.html

Replace the text to the right of the Start button with: doomp.bin

Click the Start button.

Doom will launch in your browser.

tzury•6mo ago
this one is nice, Wordle shaped Wordle program

https://github.com/ioccc-src/winner/blob/master/2024/burton/...

  #include <stdarg.h>
  #include <stdlib.h>
  # include <stdio.h>
  #define J(J) for (\
  _ j=0; j<5; ++j) J;
  #define/*IOCCC*/I \
  \
  \
  \
        _ W,_ O,_ R,_ D,_*L,_*E


   #define A(A  )for(_ j=0;  !o&&j<5&&(k  = t[l][j]);  ++j)A&&++o;
   typedef/* ;  ; */void q;  typedef int  _ ; typedef  char/* */p;
   struct{ p a  [257],b[9][  5],c[5],d[5  ]; _ e,f; }  i;p t[78557
   ][5]; _ s,a  []={ 9,9,9,  10,13,18,27  ,39,55,1,18  ,2,1,1,35,2
   ,19,18,1,52  ,36,35,20,3  ,2,19,18,18  ,69,2,53,1,  52,37,3,20,
   36,19,35,18  ,52,86,2,53  ,70,1,69,38  ,4,21,3,37,  19,36,35,25
   ,10,+17,15,  26,9,11,12,  23,2,06,18,  13,20,22,14  ,1,24,19,21

   ,16,5,7,4,8  ,3},u=' ';_  W(p*a,p*b){  for(p*c=a+5  ;a<c;)*a++=
   *b++;return  0; } _ O(p*  a,p b){ p*c  =a+5; for(;  a<c&&*a-b;)
   ++a; return  a<c?5-(a-c)  :0; } _ R(p  *a, ... ) {  va_list b ;
   va_start(b,  a); vprintf  (a,b); exit  (1); } q D(  p*a){ if (s
   ==sizeof t/  5)R("limit"  " %d\n",s);  p*b=s[t],i,  j; for(i=j=
   0; i<7&&!j;  ++i)if(!(j=  *a==10?i:0)  )*b++=u|* a  ++; j-5||++
   s; } q L(p*  a,_ b){ for  (_ l=0,o=0,  k; l<s; o=0  ){ A(i.c[j]

   &&k-i.c[j])  A(i.a[k])A(  i.d[j]&&!O(  t[l],i.d[j]  ))for(_ f=i
   .e; f--&&!o  ; )A(i.b[f]  [j]==k)if(!  o){ J(o+=t[  l][j]==a[j]
   )o=o==5?b!=  5:0; } o?W(  t[l],t[--s]  ) :++l; } }  _ e(I){ for
   (; O<D; )L[  R++]=E[O+++  D*W];return  R; } q S( _  O,_*l){ for
   (_*s=&a[a[O  ]],*e=a[-~O  ]+s-a[O]; s  <e; ){ _ i=  *s++,j=i&15
   ,k=l[i>>=4]  <l[+j]?k=l[  i],l[i]=l[j  ],l[j]=k:i;  } } _ o(I){
   _ o=0, w=0;  for(; o<D&w  <D; )L[R++]  =E[o+D*W]>=  E[w+D*O]?E[
   o+++D*W]:E[  w +++ D*O];  return e(O,  w,e(W,o,R,D  ,L,E),D,L,E

   ); } q l( _  n,_*f){ for  (_* e=f+26,  i,j; f<e&&*  f>u; f+= i)
   { for(i=1,j  =*f/u; i <n  &&f[i]>>5==  j; )++i;for  (j=0; j <i;
   ++j)f[j] &=  31,f[j]|=a[  f[j]+a[~-9]  ]<<5; S(i,f  ); } } q v(
   _ a,_*w,_*k  ){ o(2,3,o(  0,1,0,a,w,k  ),a,w,k); o  (0,1,0,a+a,
   k,w); l(a,k  ); } p*E(p*  d){ _ l,j,k  =u,b[u] ,c[  k]; p*e[97]
   [5 ]={ 0} ;  for(l=0; l<  k; ++l)c[l]  =l; for(l=0  ; l<s; ++l)
   J(c[t[l][j]  -97]+=k)for  (l= j=7; j<  22; j+=l)S(  l,c+j-l); v

   (l,b,c);for  (l= 0; l<k;  ++l)b[c[l]&  ~-k]=l; for  (k*=3,l= 0;
   l<s; ++l) {  _ i=0; J( i  +=b[t[l][j]  -97])if(i<k  )J(e[i][ j]
   ||(e[i][j]=  t[l],j=4))}  for(l=0; l<  k; ++l)for(  p*b=0,k=j=0
   ; j<5&&(b=e  [l][j]); k=  !++j){ p c[  32]={0} ; d  =*d-120?d:b
   ; if(s>2)J(  k+=++c[b[j]  -97]>1); if  (!k) return  b; } return
   d; } p*r(p*  b){ _ k, l;  for(_ j=k=l  =0; j<5; ++  j) { signed
   char n=b[j]  ,o=b[j-~5]+  ~0x66; (o?i  .b[i.e]:i.c  )[j]=n; !o?

   i.a[n]=!++k  :O(i.d,n)||  (*(o<0?&i.a  [n]:&i.d[i.  f++])=l=n);
   } i.e += !!  l; L(b, k);  return E(""  "xyzzy"); }  _ main(_ n,
   char**v){ p  *j=i .c-97,  *l=j-11; n-  2?R("usage"  ": %s dict"
   "\n",* v):5  ; ; FILE*k=  fopen(*++v,  "r"); if(!k  ) return //
   perror(*v),  1; ; while(  fgets(j, u^  n,k)) D(j);  fclose (k);
   ; ; setbuf(  stdout, 0);  while(~-s){  printf("? "  ); while(~(
   n=getchar()  )&&n-10&&l<  j)*l++=n; l  <j&&R("inp"  "ut: guess"
   " color\n")  ;printf("%"  ".5s\n",r(l  =j+~10)); }  return 0; }
adornKey•6mo ago
4 years pause for the contest. Good to see new results. I keep a copy of this one printed on my desk. Staring at C-code to finally see the 3D-Image is kind of relaxing.

https://www.ioccc.org/2001/herrmann2/index.html

(It's an ASCII 3D-Image generator - and the code itself is a 3D-Image)

  char*d,A[9876];char*d,A[9876];char*d,A[9876];char*d,A[9876];char*d,A[9876];char
  e;b;*ad,a,c;  te;b;*ad,a,c;  te;*ad,a,c;  w,te;*ad,a,  w,te;*ad,and,  w,te;*ad,
  r,T; wri; ;*h; r,T; wri; ;*h; r; wri; ;*h;_, r; wri;*h;_, r; wri;*har;_, r; wri
    ;on; ;l ;i(V)  ;on; ;l ;i(V)  ;o ;l ;mai(V)  ;o  ;mai(n,V)    ;main (n,V)    
     {-!har  ;      {-!har  ;      {har  =A;      {h  =A;ad        =A;read       
  (0,&e,o||n -- +(0,&e,o||n -- +(0,&o||n ,o-- +(0,&on ,o-4,- +(0,n ,o-=94,- +(0,n
  ,l=b=8,!( te-*A,l=b=8,!( te-*A,l=b,!( time-*A,l=b, time)|-*A,l= time(0)|-*A,l= 
  ~l),srand  (l),~l),srand  (l),~l),and  ,!(l),~l),a  ,!(A,l),~l)  ,!(d=A,l),~l) 
  ,b))&&+((A + te,b))&&+((A + te,b))+((A -A+ te,b))+A -A+ (&te,b+A -A+(* (&te,b+A
  )=+ +95>e?(*& c)=+ +95>e?(*& c) +95>e?(*& _*c) +95>(*& _*c) +95>(*&r= _*c) +95>
  5,r+e-r +_:2-195,r+e-r +_:2-195+e-r +_:2-1<-95+e-r +_-1<-95+e-r ++?_-1<-95+e-r 
  |(d==d),!n ?*d||(d==d),!n ?*d||(d==d),!n ?*d||(d==d),!n ?*d||(d==d),!n ?*d||(d=
   *( (char**)+V+ *( (char)+V+ *( (c),har)+V+  (c),har)+ (V+  (c),r)+ (V+  (  c),
  +0,*d-7 ) -r+8)+0,*d-7 -r+8)+0,*d-c:7 -r+80,*d-c:7 -r+7:80,*d-7 -r+7:80,*d++-7 
  +7+! r: and%9- +7+! rand%9-85 +7+! rand%95 +7+!!  rand%95 +7+  rand()%95 +7+  r
  -(r+o):(+w,_+ A-(r+o)+w,_+*( A-(r+o)+w,_+ A-(r=e+o)+w,_+ A-(r+o)+wri,_+ A-(r+o)
  +(o)+b)),!write+(o)+b,!wri,(te+(o)+b,!write+(o=_)+b,!write+(o)+b,!((write+(o)+b
  -b+*h)(1,A+b,!!-b+*h),A+b,((!!-b+*h),A+b,!!-b+((*h),A+b,!!-b+*h),A-++b,!!-b+*h)
  , a >T^l,( o-95, a >T,( o-=+95, a >T,( o-95, a)) >T,( o-95, a >T,(w? o-95, a >T
  ++  &&r:b<<2+a ++  &&b<<2+a+w ++  &&b<<2+w ++  ) &&b<<2+w ++  &&b<<((2+w ++  &&
  !main(n*n,V) , !main(n,V) , !main(+-n,V) ,main(+-n,V) ) ,main(n,V) ) ,main),(n,
  l)),w= +T-->o +l)),w= +T>o +l)),w=o+ +T>o +l,w=o+ +T>o;{ +l,w=o+T>o;{ +l,w &=o+
  !a;}return _+= !a;}return _+= !a;}return _+= !a;}return _+= !a;}return _+= !a;}