HN user

seligman99

144 karma

https://seligman.dev

Posts0
Comments33
View on HN
No posts found.

I suspect this is where Windows backwards compatibility bites them a bit. I've got a very old tool [1] that uses WriteProcessMemory and CreateRemoteThread to create a thread in the command process that launched it to remotely change the directory in that process.

It works to this day, despite looking exactly like what malware would do. My tool is nothing in the grand scheme, but I suspect I'm not the only one doing these sort of shenanigans, and no doubt some big important app is doing it and can't be bothered to fix itself, so MS is stuck supporting it.

[1] https://github.com/seligman/ccd

WhisperX along with whisper-diarization, runs at something around 20x of real time on audio with a modern GPU, so for that part, you're looking at around $1 per twenty hours of content to run it on a g5.xlarge, not counting time to build up a node (or around 1/2 that for Spot prices, assuming you're much luckier than I am at getting stable spot instances these days).

You can short circuit that time to build up a node a bit with a prebaked AMI on AWS, but there's still some amount of time before a new node can start running at speed, around 10 minutes in my experience.

I haven't looked at this particular solution yet, but I really find the LLMs to be hit or miss at summarizing transcripts. Sometimes it's impressive, sometimes it's literally "informal conversation between multiple people about various topics"

Along the same lines, in the Windows world:

The current directory is managed with SetCurrentDirectory/GetCurrentDirectory, however the cmd.exe command-line shell also stores the current directory for each drive in an environment variable like "=C:", and the CRT and shell hides all environment variables that start with a "=".

It gets mightily confused if these two concepts of current directory ever diverge.

I asked it to summarize the transcript for a podcast about an episode of Star Trek. One minor issue in grammar, but otherwise, it does a remarkable job of making a summary:

In the Star Trek episode "The Cage", Captain Pike is held captive by a race of advanced televisions. He is offered a life of luxury in a cage, but he realizes that this is not the life he wants and manages to escape. The televisions watch everything on TV and have become too voyeuristic and passive. At the end of the episode, Pike makes the right choice and is able to see the difference between the falsehood of the fantasy and the difficult but more acceptable reality. This episode highlights the importance of exploration and being better than oneself, and is a reminder of the dangers of becoming too passive and voyeuristic. It also shows how technology can be used to create illusions and how these illusions can be used to manipulate people.

Yep, it takes a bit of GPU RAM. I'm using 3 machines with NVidia 3080 or better. I let them go for a few weeks over the winter break when I was mostly disconnected from the tech world. The workers prioritized podcasts I'm personally likely to want to search, and got through almost a third of my archive.

Now it's down to 1 or 2 machines depending on what's going on, so it'll take much longer to finish up, but I'm in no rush.

It's about an hour or two or a day.

This includes data from 1995 on. The early data is backfill of radio shows that transitioned to podcasts and dumped old episodes in their feed at some point. My reader itself started in 2012, I downloaded around 7000 hours of new podcasts, which works out to 1.7 hours per day. So, around 2 hours per day, since I don't listen every day, and to be fair, I haven't listened to every podcast I've downloaded, some don't interest me. But 1-2 hours of listening a day is the sweet spot for me.

Long ago I had my podcast downloader keep all files it downloads and recently I've been using OpenAI's Whisper to go through and create transcripts of the 8000 or so hours of data I have downloaded over the years.

It's very cool to be able to search through and remind myself of something I heard once. Not exactly life changing, but still, nice to be able to quickly drill down and find audio for something when a curiosity strikes me.

IPv4 Turf War 4 years ago

I took approach #3 for 5 blocks. Surprisingly, that's good enough to get on the leaderboard, at least till someone keeps a simple script running longer than me.

I do wonder what an IPv6 version of this would look like, but how it'd work, and how active it'd be.

Moreover, we did not find any 240/4 prefix in the official prefix list shared by Amazon

Yeah, so about that:

https://github.com/seligman/aws-ip-ranges/commit/2e0d9d87d4f...

They did briefly list 252.0.0.0/10 in their published list of IP ranges. The people I spoke with about this at the time either claimed it was a mistake, or the state of the world that I should get used to (it broke some surprisingly fragile scripts on my side for silly reasons).

Given they removed it from their list of IPs 27 hours later, I'm guessing I wasn't the only person freaking out. But yeah, they use it internally, and it leaks from time to time in surprising ways.

And with a little bit of coercing, it can be used the other way: To embed Python in Desktop apps giving you a fairly light-weight Python interpreter.

I used it for a little Windows macro program ( https://github.com/seligman/microkeys ) . I got it to a POC stage to solve the precise problem I have, basically I needed to be able to do some simple text parsing on whatever's in the clipboard and type out the results, so I'm happy. I'm always curious if it potentially fills a need for others as well.

A few come to mind:

A command line calculator. While it's on github, is really just made for me because I wanted something to do quick math and convert different units.

A note/todo app. Started it's life as just a text file in a git repo, but now has a web front end, a simple TUI front end, and a little backend so it can add repeating tasks or tasks future days when they come along.

I also have a little python script running to control my exterior Hue lights, turning them on at sunset and such. Just added a thing today that turns on the lights in my office to full brightness when I open Zoom. It's nice, but every time I go down the rabbit hole of home automation, my SO rightly gets annoyed at the silliness of it all.

I'll join in:

I'm building a tool called MicroKeys. It's a macro program, for Windows right now. It uses MicroPython as the script engine to let you register hot keys that do things. It's very much a work in progress right now.

I'm writing it to fill a very specific niche I have, but if it's useful to others, I'd love to hear feedback on what it could do to be better to help it come to fruition.

https://github.com/seligman/microkeys

Since we're showing things off, I made this in POV-Ray https://youtu.be/KU7V3UkRNy0

I actually made it several years ago, probably around 2007, I only re-rendered it and uploaded it to YouTube recently. I always felt there was a rather painful skill ceiling in POV-Ray. Sure, people have done some really amazing things with it, but going from something fairly simple like this to something really impressive required a level of magic and time I could never get out of POV-Ray.

Where's the line? I rented a EC2 node to calculate a fractal. It involved running a 36 physical cores machine at 100% CPU for a few days.

I paid AWS for that, but I surely impacted the lifespan of that box compared to someone else that would use it for something more traditional. AWS seems happy to let people use EC2 for whatever they'll pay for, for the most part, but does this mean that Hetzner doesn't want me to calculate the next version of my fractal on their machines?

Or has Hetzner just decided they don't want Cryptocurrencies, and that's exactly the line?