00:05:35<@JAA>I have a very important question. We all know you number things starting from 0. But what do you do if you have created 'foo' and then realise you need another one? Do you call it 'foo1' or 'foo2'? Renaming the existing 'foo' to 'foo0', as nice as it would be, is not allowed.
00:08:55<kpcyrd>the obvious answer is "name the other thing bar"
00:09:37<kpcyrd>asdf has also never disappointed
00:10:14<@JAA>Ah, giving up all pretense of order is an option, yeah.
00:10:31<SootBector>the next one is fooo
00:17:01<fireonlive>is this about fire lpipe
00:17:08<fireonlive>firepipe:P
00:17:55<fireonlive>I guess you can treat foo as de facto zero, but something tells me that 2 feels more natural
00:18:45jasons quits [Ping timeout: 272 seconds]
00:19:43yasomi quits [Client Quit]
00:20:09yasomi (yasomi) joins
00:20:33<@JAA>lol, it could be if you want. :-P
00:20:53<@JAA>Yeah, that's basically where I stand. I usually go with 2, but it feels wrong, too.
00:28:29<fireonlive>:P
00:30:19<nicolas17>JAA: Ex
00:34:05<SootBector>foofoo?
00:34:40<nicolas17>https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-createwindowexw
00:43:06<@JAA>nicolas17: So Ex, ExW, and then?
00:52:06<kpcyrd>fufu I actually want to try but didn't have the chance to yet
00:52:49<SootBector>class fu extends kung {
00:52:58<fireonlive>name all servers a uuid4
00:56:05<SootBector>ssh a-uuid41
00:59:02<DigitalDragons>foo foo_final foo_final_final foo_definitely_final foo_rev5
01:01:29<@JAA>s/definitely/really/ to make them sort correctly. :-)
01:04:41<DigitalDragons>if the list starts getting long I always make sure to prefix with ! or . so the newer versions are easily found at the top
01:07:02<nicolas17>also foo and foo2 seem fine to me
01:08:11<nicolas17>https://dbus.freedesktop.org/doc/dbus-api-design.html#api-versioning <- I don't see the point of adding a 1 everywhere on the off chance you'll want to increment it later, how is Foo -> Foo2 any more effort than Foo1 -> Foo2?
01:08:22<DigitalDragons>(in all seriousness, foo foo2 foo3 foo4 foo5 foo6 foo7...)
01:10:30<kpcyrd>^ +1
01:17:46<fireonlive>hmm yeah, might have to go the "normie" indexing route there
01:21:55jasons (jasons) joins
01:36:29<fireonlive>-+rss- A mouse for your mouth': New device allows users to scroll with their tongues: https://www.nbcnews.com/tech/tech-news/tongue-controlled-touchscreens-hit-market-year-rcna133270 https://news.ycombinator.com/item?id=38997930
01:36:31<fireonlive>๐Ÿ‘…
01:43:10qwertyasdfuiopghjkl (qwertyasdfuiopghjkl) joins
01:43:38<SootBector>finally my cat can scroll HN for me
01:54:25<nicolas17>https://support.apple.com/en-us/guide/mac-help/mchlb2d4782b/mac
01:54:44<fireonlive>nice
01:56:07<fireonlive>here's their site: https://www.augmental.tech/
01:56:18<fireonlive>complete w/ vimeo video
01:56:40<fireonlive>...of course they have a discord
01:56:59<nicolas17>I once tried enabling VoiceOver on iOS and using Discord
01:57:29<nicolas17>I got a Discord popup saying it detected VoiceOver was on, and asking if I wanted to enable extra telemetry since accessibility stuff wasn't well tested yet
01:57:46<nicolas17>I COULDN'T CLOSE THE POPUP VIA VOICEOVER
01:58:36<fireonlive>lmfao
01:58:50<fireonlive>silicon valley, man
02:17:11jasons quits [Ping timeout: 272 seconds]
02:34:32parfait (kdqep) joins
03:02:09nic9070 quits [Ping timeout: 272 seconds]
03:02:13nic90701 (nic) joins
03:20:31jasons (jasons) joins
04:18:09jasons quits [Ping timeout: 272 seconds]
04:29:33HP_Archivist quits [Client Quit]
05:20:52jasons (jasons) joins
06:16:08<nukke>I miss when apps had a single irc channel, instead of a whole "server" on discord where virtually every channel is #memes
06:20:42Arcorann (Arcorann) joins
06:21:20jasons quits [Ping timeout: 240 seconds]
06:21:21<fireonlive>yeah :(
06:52:58godane2 joins
06:55:20godane1 quits [Ping timeout: 240 seconds]
07:05:42BlueMaxima quits [Read error: Connection reset by peer]
07:25:20jasons (jasons) joins
07:25:50godane2 quits [Ping timeout: 240 seconds]
07:30:59parfait quits [Client Quit]
08:20:50jasons quits [Ping timeout: 240 seconds]
09:24:22jasons (jasons) joins
09:25:56Gooshka (Gooshka) joins
10:00:05Bleo18260 quits [Client Quit]
10:01:31Bleo18260 joins
10:10:59Gooshka quits [Ping timeout: 265 seconds]
10:22:50jasons quits [Ping timeout: 240 seconds]
10:30:25HackMii_ (hacktheplanet) joins
10:30:34HackMii quits [Remote host closed the connection]
10:33:42HackMii_ quits [Remote host closed the connection]
10:34:30HackMii_ (hacktheplanet) joins
10:39:30HackMii_ quits [Remote host closed the connection]
10:39:51HackMii_ (hacktheplanet) joins
10:52:40sec^nd quits [Remote host closed the connection]
10:52:50sec^nd (second) joins
11:26:29jasons (jasons) joins
11:52:30<kiska>fireonlive we have destroyed another emmc thing at work
12:12:20<kpcyrd>I think it was jokingly suggested in this channel, but: if I have a bunch of unix timestamps, everything is UTC, I need to group them by date, and they are always going to be well past 1970, `timestamp / 86400` actually seems like a good choice?
12:12:55<kpcyrd>like, using `timestamp / 86400` as a hashmap key or something
12:22:20jasons quits [Ping timeout: 240 seconds]
13:01:17Arcorann quits [Ping timeout: 272 seconds]
13:26:02jasons (jasons) joins
14:14:17<nukke>AT wiki hit the HN front page https://news.ycombinator.com/item?id=39039588
14:26:01Chris5010 (Chris5010) joins
14:26:47jasons quits [Ping timeout: 272 seconds]
14:30:25Matthww1194 joins
14:43:03icedice quits [Quit: Leaving]
15:17:30icedice (icedice) joins
15:30:00jasons (jasons) joins
15:57:38<nukke>https://ftp.mfek.org/Reiser/Letters/โ„–2%20Hansโ†’Fred/reiser_response.html
16:01:50mcint quits [Ping timeout: 240 seconds]
16:12:53godane (godane) joins
16:14:28godane1 joins
16:17:37godane quits [Ping timeout: 272 seconds]
16:18:28HP_Archivist (HP_Archivist) joins
16:30:17jasons quits [Ping timeout: 272 seconds]
16:48:38tbc18879 (tbc1887) joins
16:50:20tbc1887 quits [Ping timeout: 240 seconds]
16:50:20tbc18879 is now known as tbc1887
16:51:44<@JAA>kpcyrd: Yeah, nothing wrong with using int division for that.
16:52:59parfait (kdqep) joins
17:09:23<fireonlive>https://dl.fireon.live/irc/3573b0ea50c01909/linux.png
17:09:26<fireonlive>TIL
17:09:50jacksonchen666 (jacksonchen666) joins
17:13:59pabs quits [Ping timeout: 272 seconds]
17:15:22pabs (pabs) joins
17:33:51<kpcyrd>the audio thing is funny, but I'm suspecting it wasn't actually an audio file?
17:33:59jasons (jasons) joins
17:36:11<that_lurker>https://ftp.funet.fi/README
17:36:14<that_lurker>"1991 Linus Torvalds offered a small OS for public distribution which our volunteer
17:36:14<that_lurker> Ari Lemmke decided to call Linux and the name stuck... International connection was upgraded to 128Kbit/s"
17:36:48<project10>it was 'english.au'
17:37:15khobragade (khobragade) joins
17:39:15jacksonchen666 quits [Ping timeout: 255 seconds]
17:52:51jacksonchen666 (jacksonchen666) joins
17:54:29jacksonchen666 quits [Client Quit]
18:13:20h3ndr1k quits [Ping timeout: 240 seconds]
18:22:30icedice quits [Client Quit]
18:29:22Chris5010 quits [Client Quit]
18:31:50jasons quits [Ping timeout: 240 seconds]
18:33:09khobragade quits [Ping timeout: 272 seconds]
18:39:28khobragade (khobragade) joins
19:06:20katocala quits [Ping timeout: 240 seconds]
19:06:40katocala joins
19:35:38jasons (jasons) joins
19:40:51<fireonlive>https://www.404media.co/pornhub-consent-verification-policy-for-performers/ < "Pornhub is introducing an even more stringent performer verification policy, and will soon require performers upload proof of consent from their scene partners in addition to their IDs.". It doesn't mention they're going to purge any prior content without these forms, I
19:40:51<fireonlive>don't think...
19:41:24<fireonlive>that_lurker: cool :)
19:41:53<fireonlive>kpcyrd: apparently it was available on the FTP but not as part of the source distro
19:42:35<fireonlive>https://mirrors.edge.kernel.org/pub/linux/kernel/SillySounds/
19:43:34<fireonlive>i liked the signed sha256sums from 2023 lol
19:43:47<fireonlive>and the update to include .ogg format in 2021
19:48:54Chris5010 (Chris5010) joins
19:49:07<kpcyrd>fireonlive: I was wondering how they define "proof of consent", but reading the article it seems it's just an additional form and a one-time ID verification
19:50:24<fireonlive>indeed; looks like they don't have the document available yet: https://help.pornhub.com/hc/en-us/articles/4419896613651-What-Co-Performer-Verification-Tools-are-Available-
19:51:00<fireonlive>"We will soon be requiring proof of consent, such as Signed Release Forms"
19:51:11<fireonlive>so it could be something more detailed I suppose
19:51:46<fireonlive>"to approve and publish new videos" doesn't look like they're (yet) going to claw back old videos
19:51:55<nicolas17>I heard of CP videos staying on pornhub for months with nobody paying attention to user reports
19:52:43<fireonlive>was that the new york times thing?
19:53:06<nicolas17>so lol at these strict new policies, if they can't deal with bad content retroactively when reported, I doubt they can do it proactively
19:53:32<fireonlive>oh they went full purge everything (well, hide it behind a wall) after the NYT article
19:53:46<fireonlive>literally like 30 million videos available to 3 million or something
19:54:07<fireonlive>oh and after the credit card networks cut them off
19:54:36Chris5010 quits [Client Quit]
19:55:52<fireonlive>i think this was the article: https://www.nytimes.com/2020/12/04/opinion/sunday/pornhub-rape-trafficking.html
19:57:21<fireonlive>(not that they shouldn't have done more around moderation, for sure)
19:58:01<fireonlive>i think another issue was also a lack of 'content ID' to prevent people from just... reuploading videos that were taken down
19:59:37<fireonlive>ah ok, it was something like 13 million videos down to 3 or so
20:01:24<nicolas17>fireonlive: https://questionablecontent.net/view.php?comic=1414
20:03:11<fireonlive>:D
20:11:20Chris5010 (Chris5010) joins
20:16:39<fireonlive>+rss- Pwned Certificates on the Fediverse: https://www.hezmatt.org/~mpalmer/blog/2024/01/16/pwned-certificates-on-the-fediverse.html https://news.ycombinator.com/item?id=39007384
20:25:14h3ndr1k (h3ndr1k) joins
20:32:50jasons quits [Ping timeout: 240 seconds]
20:49:16thuban quits [Read error: Connection reset by peer]
20:49:46thuban joins
20:51:13HP_Archivist quits [Ping timeout: 272 seconds]
20:54:47<@JAA>I ... 'improved' ... my Bash base64 implementation to read from stdin and thereby also accept NUL bytes. :-D
20:54:59<@JAA>It no longer fits in a single message in this channel, I think, at least not with the example.
20:55:22<@JAA>b64encode(){ local -i b=0 l=0 c p=0 j e;local i;while :;do IFS= read -r -d '' -n1 i;e=$?;j=$(printf %d "'$i");((e))||{ ((b=(b<<8)+j));l+=8;};((e&&l%6!=0))&&{ ((p=6-(l%6)));((b<<=p));l+=p;};while ((l>5));do ((c=(b>>(l-6))+65));l+=-6;((b%=2**l));((c+=(6*(90<c))-75*(116<c)));((57<c&&c<60))&&((c=4*c-189));printf \\$(printf %03o $c);done;((e))&&break;done;s===;printf "${s:0:p/2}";};b64encode <<<'Hello,
20:55:28<@JAA>world!'
20:55:29<@JAA>b64decode(){ local -i b=0 bl=0 o e;local i;while IFS= read -r -d '' -n1 i;do o=$(printf %d "'$i");o+=-65;(((0<=o&&o<27)||(31<o&&o<58)||(-19<o&&o<-7)||o==-22))||continue;((o+=-6*(31<o&&o<58)+69*(-17<=o&&o<=-8)+84*(o==-22)+81*(o==-18)));b=$(((b<<6)+o));bl+=6;((bl>8))&&{ printf \\$(printf %03o $((b>>(bl%8))));bl+=-8;((b%=2**bl));};done;};b64decode <<<SGVsbG8sIHdvcmxkIQo=
20:55:51<@JAA>Already had to golf it hard to get it to work in Libera #bash, not going to try further. :-D
20:56:27<SootBector>speaking of certs, anyone using an ACME DNS challenge setup? I wondered what a good registrar/DNS hosting would be for that. we looked at gandi but API changes have broken all the scripts I found
20:57:26<SootBector>and I don't feel inclined to write any code that helps gandi out
21:09:31HP_Archivist (HP_Archivist) joins
21:22:09<fireonlive>i don't have the name of it in mind, but there's a opensource or point-it-at-here CNAME service that does that
21:22:15<fireonlive>IIRC
21:22:58<fireonlive>so you CNAME _acme-challenge.ballsonthewall.example.com to <randomid>.acmeservice.example then your script just interacts with the latter
21:24:18DogsRNice joins
21:24:56<nicolas17>interesting
21:27:28<SootBector>I'll have a look. it was also weird that gandi only offered maximum 1yr before an API token expires... so manual intervention needed every 4 renewals..??
21:31:35<nicolas17>SootBector: I think letsencrypt renews monthly by default
21:33:50HP_Archivist quits [Ping timeout: 240 seconds]
21:34:21<@JAA>No, 90 days.
21:34:32<@JAA>And you can't change it either.
21:35:14khobragade1 (khobragade) joins
21:35:47<imer>Doesnt it renew a bit early?
21:35:50khobragade quits [Ping timeout: 240 seconds]
21:35:50khobragade1 is now known as khobragade
21:36:00nicolas17 searches docs
21:36:04<@JAA>You can renew earlier, and most softwares will do after 60 to 75 days.
21:36:11<@JAA>But the certs are always valid for 90 days.
21:36:35jasons (jasons) joins
21:36:40<nicolas17>ah found it
21:36:51<nicolas17>letsencrypt/certbot renews every 60 days (the cert lasts for 90 days)
21:37:00<@JAA>Fuck certbot :-)
21:37:14<nicolas17>"This command attempts to renew any previously-obtained certificates that expire in less than 30 days."
21:37:21<nicolas17>JAA: what do you use?
21:37:31<@JAA>Caddy's integrated thing.
21:38:07HP_Archivist (HP_Archivist) joins
21:38:14<@JAA>Back when I needed something separate, I used simp_le, but it's no longer maintained I think.
21:38:45BlueMaxima joins
21:40:10<SootBector>a client can choose when to renew, but yeah
21:40:38<@JAA>Maybe certbot is usable today. At the time (when it was still called letsencrypt), it made very strong assumptions about how your system is supposed to be set up, required root, required modifying the web server config files, etc.
21:40:41<SootBector>I just don't get offering DNS API and not allowing long lived tokens
21:41:25<@JAA>I never did anything with the DNS challenge, only HTTP.
21:43:23<SootBector>lots of options in https://github.com/acmesh-official/acme.sh/tree/master/dnsapi https://github.com/srvrco/getssl/tree/master/dns_scripts
21:43:45<@JAA>Oh yeah, acme.sh is a thing, right. Never tried it though.
21:44:08<SootBector>but I spent so long before realising the two I looked at weren't going to work... hoping for a recommendation from someone with a known good setup.
21:44:55<@JAA>I'll mention that the last time I really dug around for those kinds of things was shortly after LE launched, so in 2015/16.
21:45:34<SootBector>some controversy that acme.sh changed the default provider to zerossl
21:46:01<SootBector>I quite like the idea of getssl running on a box and deploying certs via ssh
21:46:37<@JAA>Certbot still requires root. lol
21:46:40<SootBector>but think I'd prefer a simpler setup, it's only for one thing at present.
21:46:48<nicolas17>I run it without root
21:47:18<fireonlive>there's also dehydrated: https://github.com/dehydrated-io/dehydrated
21:47:18<@JAA>Its website says it requires sudo.
21:48:02<SootBector>I think only if you want it to listen for the http challenge, or edit your webserver config
21:48:04<nicolas17>I think several modes of operation of certbot make it mess with the webserver config and/or restart it
21:48:05<@JAA>And the official instructions start with installing snapd. lol, GTFO
21:48:38<nicolas17>webroot mode just throws some files in a directory and it's up to you to make the webserver serve them
21:49:01<@JAA>Ah yes, that's basically what simp_le also did.
21:49:03<SootBector>yep, that mode is working great on one of my servers
21:52:58<@JAA>acme-dns-tiny looks cute.
21:53:11<nicolas17>btw unrelated
21:53:19<nicolas17>does anyone know of a "DNS server library"?
21:54:51<nicolas17>it seems most DNS servers are either so simple that you have to specify your records in a text file and restart it to apply changes, or complex beasts that scale to thousands of requests per second
21:55:09<nicolas17>I want something I can manually hook into a sql database
21:55:43<nicolas17>the python-flask of DNS, maybe
22:02:28<imer>nicolas17: iirc powerdns has a sql database backend?
22:02:37<imer>not answering your question of course
22:03:46<nicolas17>yes, and that looks like a potentially good option, but I think you need to follow their database schema that stores "DNS records"
22:04:08<Barto>SootBector: my nitter instance uses a wildcard certificate obtained with the DNS acme challenge, DNS is hosted in infomaniak
22:05:01<nicolas17>with a more generic library I could abuse DNS to lookup TXT x._data.example.com and get y, from a database that already maps x to y
22:06:13<nicolas17>and then every recursive DNS server is a caching server for my "API" >:)
22:07:42<SootBector>Barto: I'll look them up, is that with certbot or..?
22:11:13<nicolas17>another interesting abuse of DNS is software checking for updates, make a TXT record with the latest version number
22:11:33<fireonlive>clamav does taht
22:11:35<nicolas17>again you get free caching, and you appease paranoid people because your server can't log their IP address (it gets the IP address of the recursive resolver, not the client's)
22:12:06<fireonlive>https://blog.clamav.net/2021/03/clamav-cvds-cdiffs-and-magic-behind.html
22:12:22<fireonlive>`dig +noall +answer current.cvd.clamav.net TXT`
22:12:50<nicolas17>yeah so
22:13:02<fireonlive>so nothing, here's an example
22:13:09<fireonlive>shove it in your dickhole idc
22:13:14<SootBector>that's cool
22:13:24<nicolas17>fireonlive: >:(
22:13:45<nicolas17>yeah so, my question is if that's a regular DNS server where they simply update the TXT record
22:13:51<nicolas17>or something more magic
22:13:56superkuh quits [Read error: Connection reset by peer]
22:14:00<fireonlive>though you don't appease every paranoid person, because no TLS (unless you're the 0.01% that uses dnssec)
22:15:38<SootBector>have your app look up version number for every app using DNS this way.... wait
22:16:39<fireonlive>(and yes integrity not confidentiality w/ dnssec)
22:23:49Arcorann (Arcorann) joins
22:27:22<Barto>SootBector: yeah, more specifically:
22:27:25<Barto>certbot certonly \ --authenticator dns-infomaniak \ --server https://acme-v02.api.letsencrypt.org/directory \ --agree-tos \ --rsa-key-size 4096 \ -d '...'
22:27:56<Barto>and there's a module for it to understand dn-infomaniak, i also have an env var INFOMANIAK_API_TOKEN with the right value :)
22:29:58<fireonlive>what's that value? :p
22:31:50jasons quits [Ping timeout: 240 seconds]
22:32:19<Barto>tss tss tss
22:32:39sec^nd quits [Ping timeout: 255 seconds]
22:33:29<Barto>:-)
22:34:06<SootBector>thanks, I see https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_infomaniak.sh too
22:34:18<SootBector>fireonlive: it's got a 7 in it, that's all I can say
22:35:23<fireonlive>:3
22:38:58<Barto>as luck would have it, i just upgraded it now
22:39:30sec^nd (second) joins
22:39:40<SootBector>appreciate your nitter-ing
22:41:16<fireonlive>+4
22:41:19<fireonlive>er
22:41:21<fireonlive>+1
22:42:14<SootBector>if you open 4 tabs at once you can +4
22:42:40<SootBector>or is it 4 different devices? I forget
22:44:44<fireonlive>๐Ÿค”
22:44:58<SootBector>4 different limbs
22:48:00<fireonlive>https://twitter.com/jerseymikes/status/1747642100898726000
22:48:00<eggdrop>nitter: https://nitter.net/jerseymikes/status/1747642100898726000
22:48:24<fireonlive>there's one hidden reply on twitter that's nsfw, but uh idk how nitter handles those
22:48:28<fireonlive>it's not on the first page at least
22:53:44<fireonlive>https://youtu.be/GW4WyuGKsho
22:53:48<fireonlive>PoE PC!
23:10:55<imer>think nitter doesnt show nsfw stuff?
23:15:29<SootBector>depends on the instance I would think
23:17:28<imer>yeah, there's some that do, I think the main nitter.net one doesnt though
23:18:07<fireonlive>ah ok
23:19:05<SootBector>if you were an archive bot, what archive bot would you be?
23:19:07<nukke>either it's because nitter doesn't display nsfw content, or all the replies are vanilla af (most saying "this won't end well")
23:19:28<SootBector>joke's on them, they're part of the viral advert
23:19:38<fireonlive>chromebot, because it's dead
23:19:50<SootBector>:'(
23:20:38<fireonlive>๐Ÿ˜…
23:20:51<nukke>chatgpt is my archive bot. since I'm running low on disk space, I just upload documents to chatgpt and ask for a summary, discard the original and keep the summary
23:21:04<SootBector>cannot fail
23:21:05<nukke>modern problems require modern solutions.
23:21:21<SootBector>but HDDs keep getting bigger
23:21:56<nukke>motherboards keep losing SATA ports though :/
23:22:12<fireonlive>i just take a hash of the document + the filesize, then bruteforce using random characters until the hash validates again
23:22:21<nukke>LOL beautiful
23:22:24<fireonlive>:D
23:22:34<nukke>also I just puked a little
23:23:32<@JAA>I look for where it appears in the base-256 representation of either ฯ€ or e, then store that position instead.
23:23:47nothere quits [Quit: Leaving]
23:23:57<SootBector>could you offer that as-a-service ?
23:24:17systwi_ joins
23:24:27<fireonlive>x3
23:24:59systwi_ quits [Client Quit]
23:35:48jasons (jasons) joins
23:36:56<TheTechRobo>I actually wonder if that (the pi or e idea) would be a viable compression method if you had a supercomputer
23:39:13<@JAA>It wouldn't, because the positions get ridiculously large, too.
23:39:47khobragade1 (khobragade) joins
23:40:57khobragade quits [Ping timeout: 272 seconds]
23:40:57khobragade1 is now known as khobragade
23:47:38ctag quits [Read error: Connection reset by peer]
23:47:44<TheTechRobo>Then you just compress the position with the compressor! It's free storage!
23:48:08ctag (ctag) joins
23:49:15<project10>https://www.reuters.com/markets/deals/reddit-seeks-launch-ipo-march-sources-2024-01-18/
23:52:31nothere joins
23:52:59BlueMaxima quits [Read error: Connection reset by peer]
23:57:51<nukke>RIP reddit
23:58:19<nukke>sorta kinda related, this is currently on the HN frontpage: https://waxy.org/2024/01/the-quiet-death-of-ellos-big-dreams/
23:59:07<nukke>tl;dr social network that promised to be for the users. no ads, privacy-respecting alternative to other social networks... with VC funding from the very start
23:59:54<project10>Ello, Ello, Ello, is there anybody in there?!?