HNHacker News
TopNewBestAskShowJobs

pillmillipedes

75 karma · joined May 9, 2026

hackernews user pillmillipedes. university student.
submissionscomments
pillmillipedes··on AI is forcing us to pay off 40 years of technical debt
to my knowledge, they detect some common intentional and unintentional infinite loop patterns, but not much more:

    for(;;) // intentional

    for(unsigned i=10;i>=0;i--)
    for(int i=0;j<10;i++)
    for(unsigned i=0;i!=100;i+=8)
    // unintentional
in C infinite loops with no side effects are UB, so detecting them is useful for diagnostics.

guaranteed termination also is needed for some optimizations. but since side-effect-less infinite loops are UB in C, a compiler doesn't have to prove that such a loop terminates, it can just assume it does. other languages may differ, but I don't think any of them prove convergence of algorithms.

a don't-mind-the-recursion flag can be `-fno-finite-loops` on clang, or a read or write to a `volatile` variable in standard C.

pillmillipedes··on Today, we hacked what we'd set out to hack: the iPhone
you can load your custom apps by usb onto any android phone.
pillmillipedes··on Small programming tricks
I once took the time to figure these out for all the languages I use

here's python:

    #'''
      normal path
    '''
      debug path
    #'''
when I comment out python code I do it with ''' ... #''' so I can uncomment it with 1 keystroke
pillmillipedes··on Faster floating point math with Rust's new API
yeah, turns out you're right. god dammit. maybe one day
pillmillipedes··on Faster floating point math with Rust's new API
Unlike Rust and Cs before C23, C23's signed arithmetic is fully specified to wrap around.

edit - nevermind, I'm wrong lol

pillmillipedes··on Paged Out #9 [pdf]
I'll try to do the first one since I think it's the most illustrative:

  1  long typedef[[]]*($)(void*($),...);  
  2  int main() {  
  3   char* str = "Hello, world.";  
  4   $ $ asm("puts");  
  5   $:&&$&&$(str);  
  6  }

(1) is equivalent to "typedef long* $(void*, ...)". '$' is the name of the defined function type.

it's obfuscated as follows:

- typedef is a specifier and can go on either side of the type, same as int const/const int

- [[ ]] is an empty list of attributes

- "void*($)" is an argument named '$' of type void*, but parameter names are ignored in declarations.

- you can put parens in declarations since sometimes you need to group prefixes and postfixes in a different order

- dollar signs in names are allowed in many c compilers (and some other c-like languages)

- "..." are variadic arguments. puts doesn't have those, but the first argument uses the same register either way so it happens to work out in this case

(4) declares a function named '$' of type '$', shadowing the type, and links it to the assembly label "puts". calling $ calls puts.

normally it looks like `int call_foo(void) asm("foo");`

(5) is parsed as: "label $: address-of-label $ and function $ called on str. the address of a label is truthy, so the function also gets called.

unary && looks for the argument in the label namespace, but other operators don't, so the two dollars refer to different things.

that's about it. if you're familiar with the c standard and some common gnu extentions, you can deconstruct the examples into their basic elements easily enough

pillmillipedes··on Show HN: Reverse Minesweeper
this is great! very nice ui, and quite challenging on the high difficulties.

reminds me of 14mv a bit - and judging by the reactions to it on steam you're going to get so many false bug reports from people not used to the long deduction chains haha

(a suggestion to try the hints near the feedback form might help curb this a bit..)

one qol thing I missed is that clicking a number to fill in the neighbours only works for crosses and not sunflowers (and doesn't work for "0" clues)

pillmillipedes··on Introducing selfie for sign-in: a new way to access your Google Account
worst case, it's not generated and they just used ai for editing without realizing it has such a distinct style. that might be the case here: in the couple of paragraphs around the "I am but one" heading the writing style seems (to me) different (more human-ish?) compared to the style at the beginning. unfortunately I also think they're quite bad, so I'm not sure what the moral here is for the author (who, true to their word, has elected to stay anonymous).

the question I asked in my comment isn't rhetorical, by the way: I genuinely think it's a pattern, and I want to look into it a bit deeper

oh and for the record, I don't suggest you disregard the article. it raises valid points and I agree with it. go read it!

pillmillipedes··on Don't put your name to bot-written content
better yet, don't put out bot-written content at all.
pillmillipedes··on Introducing selfie for sign-in: a new way to access your Google Account
why are so many websites called title-of-the-article-dot-com ai-generated?

I suppose the kind of people making them just don't have a blog or something

pillmillipedes··on Writing by hand is good for your brain
I've never heard of clutch pencils before! I'll definitely check them out since I'm not sure I'd ever put pencils and asmr in a sentence together -besides the one I'd just typed- and yet I still occasionally need one.

>pressure

the gel pen I use can write under its own weight, so it's surely less pressure than any pencil would require, unless it's particularly soft and hefty?

pillmillipedes··on I started a “dirt notebook”
I'm kind of on the opposite side of the problem here where all my notes end up as unstructured puddles of thought vomit. in classes people asked a few times for me to show them my notes - they couldn't even figure out what topic the notes were on haha

on a mobile the next best thing was replacing my obsidian's app icon (no endorsement - I don't like obsidian) with the widget that pulls up today's "daily note", whether I want it or not. on pc I have an autohotkey command that does the same for notepad.exe

pillmillipedes··on Solod: Go can be a better C
I doubt that it can. so in addition to C's quirks (which I know about), I have to care about go's quirks and solod's quirks as well? and for what? there's no solod-to-regular-go interop aiui, so just some tooling and the standard library?
pillmillipedes··on Optimizing Lua string literals to save 400 bytes
interesting! have you tried putting the compressed payload into a large block comment at the end/start of the file, and recovering it by loading your own source as bytes to prevent the compiler from mangling the payload? I'm not sure if that would work but could be worth a try...
pillmillipedes··on The infinite scroll may become endangered if controversial Calif. law passes
note that this is going after "psychologically exploitative features intended to maximize engagement" of all kinds, not just infinite feeds. it also poses an ultimatum banning people under 16 from websites that provide such addictive features to anyone.

personally I am against internet identification, and I think teenagers should be allowed on social media, so I have to ask: why only children? if these features are so bad, ban them outright.

pillmillipedes··on Ask HN: Add flag for AI-generated articles
can you give your example of a great article written by an ai or a cat?
pillmillipedes··on Backtrack-Free Cursive
not op, but from my experience overlined ts are a thing from a bygone era I'm afraid. my parents sometimes do it, but I don't know anybody under 30 who would write it this way. on the other hand I do sometimes see it written like a print т.

what you said about mixing up cursives is really interesting! I think the only case where I mix up mine is when writing a p instead of an р (the russian version typically doesn't have a loop).

pillmillipedes··on Quadrupling code performance with a "useless" if
wow, what an interesting optimization! how would you even figure out that that if is what's needed to make it faster?
pillmillipedes··on Faster binary search: from compiled code to mechanical sympathy
I think putting the buckets in eytzinger layout might help with cache locality here? though on the other hand they might all fit into cache anyways..

I'd also want to try interpolation search for this (not necessarily linear interpolation since we're doing floats) - you can take much better guesses than "it's in the middle somewhere" by not having to look at the data through a 1-bit-wide pinhole as comparison algorithms do.

pillmillipedes··on The Lindy effect in software
you might be confused as to what terrific means
pillmillipedes··on l: A new runtime for k and q
have you seen the website for the latest version of k? "barely a website" doesn't even begin to describe it

https://k.nyc

pillmillipedes··on l: A new runtime for k and q
talking about the linked parser which is clearly claude's not arthur's
pillmillipedes··on l: A new runtime for k and q
[1] seems to have the actual details on compressed vectors. looks like for each page you're storing min&max, and the values come as offsets from the min (smaller->less bits per value), did I get that right?

  primitive speedup  
  sum price 7.7x  
  avg price 33x
how does this even happen though?

[1]https://lv1.sh/blog/compression-memory-wall/

pillmillipedes··on Odin, Wikipedia and engagement farming
on mobile firefox, I'm seeing tons of numbered footnotes that don't link back to anything. is this a styling issue or what?

[4] like this

pillmillipedes··on Odin, Wikipedia and engagement farming
I know of odin, it seems alright, but it feels like every post or comment I see about what odin is like was written by its creator ginger bill.

my $0.02: if they think odin is notable enough for wikipedia and all they need is for someone to actually note it, now is the time to hire a pr firm. seriously. that's what they're there for.

pillmillipedes··on Parse, Don't Validate – In a Language That Doesn't Want You To
I don't mind discussing syntax when appropriate, but this feels like arguing over which trivial brainfuck substitution[1] is the best.

> monoid

nullables with `??` and `?.` are also give-or-take monoids. is it common though to `or` two MaybePhoneNumbers together or to apply a PhoneNumber->MaybePhoneNumber function to it? if not then why mention it?

let's see something meaningfully different like a database schema.

[1] https://esolangs.org/wiki/Trivial_brainfuck_substitution

pillmillipedes··on Parse, Don't Validate – In a Language That Doesn't Want You To
if a user with/without phone number are equally valid states to be then types won't help you much. I think it's more about writing

  class User{phone: ?PhoneNumber}
over

  class User{phone: ?string}.
pillmillipedes··on Old Computer Challenge
right, but it appears they prioritize sending a strong signal to the people this *is* for over attracting some normies. keep it smol. if I were them and I wanted to address the outgroup I might start the article with "the old computer challenge is" or "this year's old computer challenge is", for example, instead of "the old computer challenge community is".
pillmillipedes··on Parallel Parentheses Matching
interesting algorithm. if you can limit nesting depth to 255, the radix (now counting) sort version would become decently performant too. I think that's quite reasonable unless there's some unholy preprocessor-based metaprogramming going on
pillmillipedes··on The Age of the Solopreneur
sorry, I keep misreading that word as slopreneurs - though I suppose that's not entirely wrong either
Page 1 of 2Next →