HNHacker News
TopNewBestAskShowJobs

ycombiredd

339 karma · joined June 14, 2022

github.com/scottvr HN @ paperclipmaximizer dot ai
submissionscomments
ycombiredd··on LinkedIn is the worst social media I've ever seen
Same happened to me, but by the time they gave me my account back (though now “unverified”, even though I had to scan my DL for them to unsuspend my account - and even though I was premium and verified before the suspension btw - though the hatred is still there, the rage-motivation to document the insanity had devolved into apathetic sadness (with much help of the general state of the current incarnation of the job market) so I’ve said nothing until this meager reply.

But specifically, what had occurred was that I noticed I had nearly fallen for an LLM-bot clone or takeover account from my contacts in my DM directing me to this “great recruiting firm” that looked to be just an identity docs siphoning scheme.

That caused me to notice a bunch of new 1st-degree connections I hadn’t added, all of which were profiles purporting to be Chinese AI researchers. No clue if they were real people and I didn’t spend time to investigate before doing exactly what you describe - change of password and enable 2FA, with the added step of trying to report the suspicious circumstances to the obvious security@ etc email addresses… ALL attempts of which bounced with messages telling me to use the LinkedIn platform to report security issues, as those email addresses are not monitored. (lol)

Of course, when I reluctantly tried to capitulate and report the matter using the links from the bounce messages, I found I could not, since my account was suddenly suspended for “suspicious activity”, and the kicker was that in order to unsuspend it, they wanted me to upload scans of my government ID! Yes, they wanted me to do the suspicious sort of activity I was wanting to report was happening on their platform in order to use the very platform I suspected someone had already pilfered my identity through. I waited a week or so, too disgusted and angry and ready to write them off until, well.. oh yeah, a job. my contacts. sigh

Of course, that’s also another example of the insecure patterns companies force on their users and employees while at the very same time giving them training to not do exactly those things, and exhibiting all the red flags they point out the employee needs to be aware of as indicators of phishing, etc.

I was with a company that outsourced their security policy training and compliance to a company that sent “URGENT” emails from phish looking custom domains incorporating our company’s name, and all the other red flags that told me not to do the things it asked. (so I didn’t, and instead reported each one to our internal security team. It was funny until it wasn’t.)

Hey… Nice. There’s that therapeutic rage-typing I never got around to, and this comment almost brings my comment back on topic. I feel a little better anyway. Thanks all!

ycombiredd··on Ratzilla
I swear this isn’t an “rtfm” dig, but in the case that this report of flickering is the first you’ve been made aware of it (and so you haven’t dug into it yet) I recently had to deal with this when experimenting with WebGL for the first time and found this thread to be full of information. https://stackoverflow.com/questions/19764018/controlling-fps... A few of the suggestions “work”, but in the end I went with the accepted answer, only modified to use window.performance.now() rather than Date.now() from the accepted answer.

There are more suggestions that make sense but I haven’t tried that include using multiple threads, calling setInterval/setTimeout in a separate thread for CPU work from the rAF() call (which is GPU and should not update if there is nothing to update) but this wasn’t immediately helpful to me so I went with the elapsed time test and explicit frameRate. There are some potential sync issues over time but they are discussed in the SO thread and additionally on the mozilla developer site, where they also discuss syncing to an audio clock at 60 Hz.

ycombiredd··on ScatterBrain: Unmasking the shadow of PoisonPlug's obfuscator
They reference an earlier analysis from PwC that does show some decompilation pre and post deobfuscation.

https://www.pwc.co.uk/issues/cyber-security-services/insight...

ycombiredd··on ScatterBrain: Unmasking the shadow of PoisonPlug's obfuscator
So what I was suggesting is I guess a detector of compiled (lol and possibly in need of deobfuscation now that I think of it, but that’s apparently a solved problem) code that generates the type of code you mention, in order to find a copy of the compiler, and not the compiler’s obfuscated output of malware, but as I try to clarify that in this reply and realize that the binary we would be trying to flag would probably be both of these things, it occurs to me that a) your near-turing-complete comment holds even if my original target wasn’t communicated clearly and b) if said copy of the compiler does already exist somewhere in the wild, it may well be picked up as a submitted sample based on an IOC anyway, since I have to assume the threat actor obfuscated their compiler binary by building it with a copy of itself. :-)
ycombiredd··on ScatterBrain: Unmasking the shadow of PoisonPlug's obfuscator
They mention that they do not have access to the threat actor’s obfuscating compiler itself, but while reading the analysis it occurs to me that given they have released a purpose-built deobfuscator, that they could certainly develop a ScatterBrain-like compiler and then I wonder if doing so might enable creation of useful heuristics that might reveal the quiet existence of ScatterBrain compiler in some sample, archive, darknet tools repo, compromised host, torrent, etc.

Just as they have supplied IOCs, perhaps they could provide reasonable signatures or heuristic rules that scanners in various places might ingest and apply that might allow for the discovery of some latent copy of the compiler itself, which could be useful in and of itself, as well as for all of the possible breadcrumbs and inferences that could be made based on where/when it was spotted, if it was.

ycombiredd··on Antiqua et Nova: Note on the relationship between AI and human intelligence
For the lulz, I pasted the first two sections into a few “LLM Detectors”. I was not expecting such wildly varying results, which puts this comment more into the irrelevant tangent category than any sort of reliable commentary, but since I have the results of this small test, I’ll post them here. I offer no opinions on the quality or reliability of the detectors, nor even do I assume to know really what their outputs represent with these numbers but - largely because they each have such different opinions, I find them interesting.

justdone.ai claims “90% ai-generated text”

GPT-Zero says “16% probability … text was entirely written bi ai”

decopy.ai - “60% probability text was written by ai”

grammarly.com - “8% of this text appears to be ai generated”

For whatever that is worth.

ycombiredd··on Yek: Serialize your code repo (or part of it) to feed into any LLM
Optician and Boomerang are exactly what I read up on during my excursion down the rabbit hole. And I was quite surprised that to the best of my recollection I had never heard of Augeas before.

Thank you for the rest of the links!

ycombiredd··on Peanut Butter Day: Going Nuts over NIST's Standard Reference Peanut Butter (2016)
Relevant SRM #2387 use case https://github.com/scottvr/PBVD?tab=readme-ov-file#future-ex...

The PB is ~1/3 of the entire materials cost. ;-)

From the BOM:

…

  NIST Standard Peanut Butter 1 jar $150 $150
  Laser Safety Goggles 1 pair $25 $25
  Total Estimated Cost - - $520
ycombiredd··on How to visualize your Python project's dependency graph
Sorry it wasn’t more clear; I’ll have to update the docs to make it more obvious.

But in the README, specifically in this section here https://github.com/scottvr/chimeracat/?tab=readme-ov-file#cl... , if you click/tap the rightward-facing triangle/arrow, it should expand a pasted example report.

ycombiredd··on How to visualize your Python project's dependency graph
I have a tool that I made to aid in pair-programming with LLMs that your question has caused me to realize that said tool’s reporting (without making use of its code summarization and concatenation functionality) might be useful to folks such as yourself, so I have updated the CLI and documentation to allow for simple generation of dependency relationship reports on their own, which may provide at least some of what you’re looking for.

I’ve embedded a sample report near the top of the README; toggle the little black triangle to expand/collapse said example report.

https://github.com/scottvr/chimeracat/

If it is helpful, that’s great - and I hope it is - but if it’s not, feel free to suggest functionality, or contribute some, or open an issue, or whatnot.

Cheers!

ycombiredd··on Yek: Serialize your code repo (or part of it) to feed into any LLM
Hey, just wanted to come back from the rabbit hole you lead me to the entrance of and thank you for introducing me to lenses in the context of code; I was unfamiliar.
ycombiredd··on Yek: Serialize your code repo (or part of it) to feed into any LLM
“lessthan three” ;-)

Thanks again.

ycombiredd··on Yek: Serialize your code repo (or part of it) to feed into any LLM
while I hope you mean it is hilarious in the same spirit that I write most of my stuff (“ludicrous” is a common phrase even in my documentation), I did want to ask that if you meant that in more of a disparaging way, that you could flesh out any criticism.

Of course, if you meant “hilarious” similarly to how I mean “ludicrous”, thanks! And thank you for taking the time to look at it. :-)

ycombiredd··on Gauntlet AI is an intensive 12-week AI training
“Copyright © 2024 — BloomTech Inc.”[1]

Isn’t this the same BloomTech founded by Austen Allred that was subject of all of the hubbub for running coding bootcamps (“Lambda”, “BloomTech”) that got into all sorts of trouble a while back for (according to the US Government) deceiving students? [2]

“government agency banned Allred from student-lending activities for 10 years and permanently banned BloomTech from all consumer-lending activities. In addition, BloomTech must pay $64,000 and Allred must pay $100,000 in civil penalties, which will go toward a victim relief fund” [3]

Maybe that explains the “free of charge” part of it. lol

sources:

1 https://www.gauntletai.com/

2 https://www.consumerfinance.gov/enforcement/actions/bloomtec...

3 https://www.businessinsider.com/bloomtech-lambda-school-aust...

ycombiredd··on Yek: Serialize your code repo (or part of it) to feed into any LLM
i guess I shouldn’t be surprised that many of us have approached this in different ways. it’s neat to see already multiple replies of the sort I’m going to make too, which is to share the approach I’ve been taking, which is to concatenate or to “summarize” the code, with particular attention on dependency resolution.

[chimeracat](https://github.com/scottvr/chimeracat)

It took the shape that it has because it started as a tool to concatenate a library i had been working on into a single ipynb file so that I didn’t need to install the library on the remote colab, thus the dependency graph was born (as was the ascii graph plotter ‘phart’ that it uses) and then as I realized this could be useful to share code with an LLM, started adding the summarization capabilities, and in some sort of meta-recursive-irony, worked with Claude to do so. :-)

I’ve put a collection of ancillary tools I use to aid in the pairing with LLM process up at https://github.com/scottvr/LLMental

ycombiredd··on I created an open-source Hardware Hacking Wiki – with tutorials for beginners
I can’t help but have the thought that the Joel_McKay in this conversation is itself an LLM having been prompted to flippantly disregard and downplay mentions of a.i., and LLMs specifically.

I’m not saying it is true , but I am saying it made the tone and content of his messages in this thread seem a lot more self-consistent and explainable when I re-read them with that context in mind. :-)

(@Joel_McKay: apologies for downplaying your sapience - human, LLM or otherwise.)

ycombiredd··on Show HN: A singing synthesizer for the browser with automatic 3-part harmony
in Chrome, on my iphone, I can get a cool effect that looks like a glitch, but I wonder if it is a feature. If I hold a note a certain way, where the browser does a “select all”, and then drag my thumb, it drags a thumbnail of the page. When I release it, it keeps the first note and starts a new one using the new position of my thumb. I can create my own harmonies this way instead of the default parts that appear when I hold the note in place.
ycombiredd··on FizzBuzz in Powerchords
Did you post this to deliberately nerdsnipe folks for your amusement? If so, I hope you are adequately amused.

At first glance, the choice of mm:ss timestamps glared at me as decidedly non-musical. You clearly stated it was 4/4 and the tempo is defined as 120bpm, so why not use measures and beats? Additionally, even if we stick to mm:ss notation, your resolution of 1s causes your instructions to execute at 1/2 the system's capability (essentially you are limited to playing at half speed, 60bpm but there's no way to tell what the note duration is supposed to be in musical notation from this; that is, if those are 8th notes, for instance, at 120bpm, your execution is even slower.)

So we'd want to, at the least given this one example, increase the resolution to support half-seconds, so mm:ss.d. But this requires someone to do the math from the tempo to the current time, and it isn't very musical. So, to fix this, I suggest a "measure.beat" notation, that is:

    1.1 ...
    1.2 ...
    1.3 ...
    1.4 ...
    2.1 ...
    ...
    2.4 ...
    3.1 ...
    ...
So let's add to your __init__():

        ...
        self.current_measure = 1
        self.current_beat = 1
and change your _generate_timing() to:

    def _generate_timing(self) -> str:
        """Generate timestamp in measure.beat format"""
        return f"{self.current_measure}.{self.current_beat}"
and in _add_instruction, change your current_time incrementor to:

        self.current_beat += 1
        if self.current_beat > 4:  # In 4/4 time
            self.current_beat = 1
            self.current_measure += 1
But... then the "we're not monsters" 4/4 constraint nagged at me.

Some of us are monsters:

    ...
    beats_per_measure, beat_value = self.time_signature
    # and other such updates
    ...
all together, gives us output like this:

    // Guitar Code Translation
    // Time signature: 4/4
    // Tempo: 120 BPM
    // Standard tuning
    
    1.1 - Palm mute E5                   // Read input
    1.2 - Palm mute E5                   // Read condition       
    1.3 - Palm mute E5                   // Read input
    1.4 - A5 [sustain]                   // Write output and return
    2.1 - Palm mute E5                   // Read input
    2.2 - Palm mute E5                   // Read condition       
    2.3 - G5 -> D5 [sustain]             // Evaluate condition   
    2.4 - Palm mute E5                   // Read input
    3.1 - A5 [sustain]                   // Write output and return
    3.2 - Palm mute E5                   // Read input
    3.3 - Palm mute E5                   // Read condition       
    3.4 - G5 -> D5 [sustain]             // Evaluate condition   
    4.1 - Palm mute E5                   // Read input
    4.2 - A5 [sustain]                   // Write output and return
    4.3 - Palm mute E5                   // Read input
    4.4 - A5 [sustain]                   // Write output and return
    
or, monstrously, this:

    // Guitar Code Translation
    // Time signature: 7/8
    // Tempo: 90 BPM
    // Standard tuning
    
    1.1 - Palm mute E5                   // Read input
    1.2 - Palm mute E5                   // Read condition       
    1.3 - Palm mute E5                   // Read input
    1.4 - A5 [sustain]                   // Write output and return
    1.5 - Palm mute E5                   // Read input
    1.6 - Palm mute E5                   // Read condition       
    1.7 - G5 -> D5 [sustain]             // Evaluate condition   
    2.1 - Palm mute E5                   // Read input
    2.2 - A5 [sustain]                   // Write output and return
    2.3 - Palm mute E5                   // Read input
    2.4 - Palm mute E5                   // Read condition       
    2.5 - G5 -> D5 [sustain]             // Evaluate condition   
    2.6 - Palm mute E5                   // Read input
    2.7 - A5 [sustain]                   // Write output and return
    3.1 - Palm mute E5                   // Read input
    3.2 - A5 [sustain]                   // Write output and return
    
Of course, this brings to mind the topic of clock cycles per opcode, etc. Actually, it brings to mind all sorts of nerdsnipe-y things.

To the main point of Turing completeness: I'm not an expert in this area, but I think aside from the finite fretboard length (and maybe this is a semantic issue or a philosophical one but...) your implementation, even assuming an infinite fretboard length leaves me feeling funny wrt "memory".. it feels more like a translation or log stream of execution of the AST and not an actual way to store or manipulate data. I don't have a solution yet, but a capo keeps popping into my head as wanting to fit in somewhere.

Thanks (both honestly and sarcastically) for the diversion/snipe. I have forked the repo and the above suggestions are reflected in my fork. I can send a PR. ;-) https://github.com/scottvr/turing_complete_guitar (Also, I was tempted to rename my fork "tuning_complete_guitar)

Hopefully I'll stop here, but that capo in my head keeps pestering me to carry on.

Also, that hardcoded "Standard tuning" is asking me to investigate what could be added with alternate tunings. Ugh.. sniped!

ycombiredd··on Show HN: Tunnelling TCP through a file
Hah! You answered my question re how is it different. It’s strange… I re-read your comment twice a with a furrowed brow: “provided by RDP like in the example” and kept thinking to myself “what? There was a screenshot clearly showing…” yada yada SMB. So I went back to the look at the image in the readme. /smh. You know how they say eyewitness testimony is often among the least accurate, even immediately after the incident in question, yet the eyewitness is always so sure, “but I just saw it and…” Wow. Mind playing tricks on me.

Anyway, you’re right, there was no SMB involved in that readme. :-) So strange when you can’t trust your own eyes or short-term memory. Crazy.

ycombiredd··on Show HN: Tunnelling TCP through a file
That’s cool. A question that immediately comes to my mind is this: how is this different than using the Windows SMB native support for named pipes over the IPC$ share? From your example it would seem the users on both sides of the share would require the same AAA for your implementation as would be required to use IPC$ via SMB.

If that is indeed the case, (I am not a Windows pr SMB expert, so perhaps you will tell me it is not the case and to be clear, I am not asserting that it is or trying to say anything negative; I am just curious and you seem like a pretty likely source to be able to answer the question, since something motivated you to write this tool)

One difference would seem at first brush is that a named pipe used for this would not need to be periodically truncated in 10 minute intervals to prevent runaway file growth. Again, not knocking what you’ve made at all, I’m genuinely curious for the answer.

ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
Yeah, it's text-only, like the really original Zork games. I'm working on more documentation, but first I've got some issues to resolve in code. Thanks!
ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
@quuxplusone and all I fixed my dunderheaded debug output commit that meant the "outputs ZIL" was a lie. This temporarily puts us back to a state where the Things have no locations in the ZIL, but I am working on that. I just wanted to show that it is back on track. Thanks Q+1!

https://github.com/scottvr/wadzilla/commit/b92f90070726088ba...

ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
Yeah guys, I was just joshing, and actually if it isn’t obvious, I was joshing in a positive way (hence the “spirit” comment; I think it’s a good idea.)

In the mean time, I tried to document the limitations and make it clear that I didn’t consider it plug-and-play, and that I will appreciate feedback, bug reports, and PRs.

I will prioritize addressing things from the comments here, as well as taking advantage of the documentation talk are graciously writing. ;-)

ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
Hey thanks for documenting the prereq steps! :-)

I am working on some additional progress toward making it plug-and-play. I’ll work on a demo.

Thanks for the feedback, quuxplusone (and everyone)!

ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
I don’t know how you can possibly think exercises implementing ludicrous ideas are unnecessary, nor why you consider either Doom or Zork irrelevant to the IT industry.
ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
While that does often describe me, I take it you didn’t actually look at the code.
ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
No argument from me; your suggested names are spot on for the game comprised of the resultant melange. Albeit, I still maintain that Wadzilla is the exactly correct name for the tool that creates the mashup.

Also.. screenshots? Of text. Text describing a 2.5D world comprised of 2D graphics rendered in 3D for presentation on a 2D display in our 3D world? Yeah, you’ve got the spirit! :-)

ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
Cool. The point here is more about the actual (ludicrous) technical process, than about replicating the mythos and playability, but it would be amazing if an actually enjoyable Doom IF in its own right emerged from the process.

Also, I appreciate you turning me on to the existence of glulx.

ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
Yeah, and I know that it would be far easier and probably immensely more playable and practical to just craft a good prompt for an LLM, presto! Play Doom in Zork with ChatGPT. The ludicrous technical implementation is actually the point though in this case.
ycombiredd··on Show HN: Wadzilla. Play DOOM in Zork
Well I certainly have now!

I hoped that proffering this idea here would be fruitful and prosperous, and already I am satisfied. Thanks.

← PreviousPage 4 of 5Next →