08:19 <+bridge> [ddnet] kangarro 08:58 <+bridge> [ddnet] Anyone have any idea how I can figure out what some program is blocking on? 09:03 <+bridge> [ddnet] pro-tip-update: not if you are io bound : 09:03 <+bridge> [ddnet] ( 09:04 <+bridge> [ddnet] fs bound* 09:05 <+bridge> [ddnet] I so hoped exfat would be enough but the insane number of files we have in data/ger killed it 09:05 <+bridge> [ddnet] each time it tries to check if a file exists it now needs to travel down the linked list of files 09:09 <+bridge> [ddnet] I have a 64 megabyte directory entry, beat that 😛 13:10 <+bridge> [ddnet] Q: Does anyone know whether I can create a ext4 filesystem inside a file? 13:11 <+bridge> [ddnet] I see no reason why not 13:12 <+bridge> [ddnet] mh, @heinrich5991 do you know any fs with good cross platform support? 13:14 <+bridge> [ddnet] any *good* fs? ^^ 13:14 <+bridge> [ddnet] fat32 has very good cross platform support 13:14 <+bridge> [ddnet] dunno about exfat, maybe that? 13:14 <+bridge> [ddnet] yes 😄 13:14 <+bridge> [ddnet] Exfat uses linked lists, it's absolutely awful for lookups 13:14 <+bridge> [ddnet] what does cross-platform mean for you? windows/linux? or windows/macos/linux? 13:15 <+bridge> [ddnet] perhaps even ntfs? 13:15 <+bridge> [ddnet] windows/macos/linux is preferable but I'm okay with macos/linux 13:15 <+bridge> [ddnet] maybe zfs has a macOS port, it's born in bsd too 13:15 <+bridge> [ddnet] it does, I think 13:15 <+bridge> [ddnet] just windows has bad support 13:15 <+bridge> [ddnet] lemme google 13:16 <+bridge> [ddnet] windows needs minimal support, if I can browse files and copy, files on windows that's a win, I'd mainly be using this on macOS and linux 13:16 <+bridge> [ddnet] https://openzfsonwindows.org/ 13:17 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/869538887721177108/logo.png 13:17 <+bridge> [ddnet] :kek: 13:17 <+bridge> [ddnet] I guess zfs it is, ext4 on macOS is annoying af 13:17 <+bridge> [ddnet] try it first! 13:17 <+bridge> [ddnet] before settling 13:18 <+bridge> [ddnet] it will take me so long to copy these files off of the exfat partition 😦 13:21 <+bridge> [ddnet] @Learath2 if its not too much of a hassle, could you build the twmap binaries from source (master branch)? 13:21 <+bridge> [ddnet] I want to get a fix in but I don't want to spam versions 13:21 <+bridge> [ddnet] Sure 13:22 <+bridge> [ddnet] awesome :) 13:24 <+bridge> [ddnet] I'm trying to decide whether to upgrade to Big Sur or not 13:28 <+bridge> [ddnet] exfat partitions can't be resized.... 13:29 <+bridge> [ddnet] @Patiga updated to master 13:29 <+bridge> [ddnet] nice! 15:28 <+bridge> [ddnet] @Patiga u know u can add -alpha.0 15:28 <+bridge> [ddnet] -alpha.1 15:28 <+bridge> [ddnet] -beta.0 15:28 <+bridge> [ddnet] for versions you dont think are ready 15:28 <+bridge> [ddnet] on cargo 15:28 <+bridge> [ddnet] they will be marked as pre released 15:29 <+bridge> [ddnet] and wont show up by default 15:29 <+bridge> [ddnet] ah I didn't know that, interesting 15:29 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/869572323890565170/unknown.png 15:30 <+bridge> [ddnet] https://crates.io/crates/paypal-rs 15:30 <+bridge> [ddnet] example 15:30 <+bridge> [ddnet] although my problem isn't that I don't think that those versions are incomplete, its just that I don't see the point in spamming them 15:31 <+bridge> [ddnet] i think if u have a fix and itsi mportant it should be released tho 15:33 <+bridge> [ddnet] eh I don't think anyone except for the ddnet bot is using that right now, and its not improbable that I need to do another small fix again in the next few days 15:33 <+bridge> [ddnet] ah ok 15:34 <+bridge> [ddnet] but yeah, if it was used more a quick release would be good 15:43 <+bridge> [ddnet] @heinrich5991 for some reason libtw2 doesn't expose `server_version` in th files 17:14 <+bridge> [ddnet] https://github.com/e2tools/e2tools has some userspace programs to interact with ext2/ext3 filesystems in files 17:15 <+bridge> [ddnet] but ofc you can also mkfs or mount any file just like you do /dev/sd?? nodes 18:08 <+bridge> [ddnet] someone knows a good name for a "CMS" focused on blogging (and not a static generator) made in rust 18:08 <+bridge> [ddnet] project 18:18 <+bridge> [ddnet] sentencepress 18:18 <+bridge> [ddnet] SentencePress 18:19 <+bridge> [ddnet] SentencePress :Kapp: 18:35 <+bridge> [ddnet] :monkaS: 19:25 <+bridge> [ddnet] Static content Rust element extention Network yielder 19:26 <+bridge> [ddnet] Request: Editor feature that allows to duplicate existing layers but not what is mapped in them just the layer values 19:31 <+bridge> [ddnet] secure password hashing :monkaS: 19:31 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/869633002290937896/unknown.png 19:32 <+bridge> [ddnet] oh brand-new(tm) hashing algo xd 19:33 <+bridge> [ddnet] @gerdoe from 2015 19:33 <+bridge> [ddnet] @Ryozuki\: for wat u code pw hashing in rust? 19:33 <+bridge> [ddnet] u should use it 19:33 <+bridge> [ddnet] whenever u can 19:33 <+bridge> [ddnet] @gerdoe https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html 19:34 <+bridge> [ddnet] https://www.password-hashing.net/ 19:34 <+bridge> [ddnet] do you know any *better* and newer algo xd 19:34 <+bridge> [ddnet] no 19:34 <+bridge> [ddnet] argon2 is the best 19:34 <+bridge> [ddnet] maybe nsa has something hidden 19:34 <+bridge> [ddnet] that's why i called it brand-new 19:34 <+bridge> [ddnet] argon2 is brand new 19:34 <+bridge> [ddnet] by crypto standards 19:34 <+bridge> [ddnet] ye 19:35 <+bridge> [ddnet] ? 19:36 <+bridge> [ddnet] @ChillerDragon do u see why i asked a name for a cms earlier 19:36 <+bridge> [ddnet] xd 19:36 <+bridge> [ddnet] im coding it rn 19:36 <+bridge> [ddnet] watrs a cms 19:36 <+bridge> [ddnet] :monkalaugh: 19:37 <+bridge> [ddnet] content management system 19:37 <+bridge> [ddnet] the most famous is wordpress 19:37 <+bridge> [ddnet] im making my own in rust 19:37 <+bridge> [ddnet] content management system 19:37 <+bridge> [ddnet] ah sure 19:37 <+bridge> [ddnet] i was about to say use wordpress xd 19:37 <+bridge> [ddnet] rustpress ftw 19:38 <+bridge> [ddnet] coming sooon https://github.com/edg-l/rustpress 19:38 <+bridge> [ddnet] image.png 19:38 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/869634948942954566/image.png 19:38 <+bridge> [ddnet] lol 19:39 <+bridge> [ddnet] xd 19:39 <+bridge> [ddnet] its fake domain! 19:39 <+bridge> [ddnet] u scammer? 19:39 <+bridge> [ddnet] yes 19:40 <+bridge> [ddnet] Ryo = indian tech support 19:40 <+bridge> [ddnet] lol no 19:41 <+bridge> [ddnet] ryo = pro based rust programmer 19:41 <+bridge> [ddnet] :greenthing: 19:42 <+bridge> [ddnet] based 19:43 <+bridge> [ddnet] I have found another thing that needs immediate attention in rust 19:43 <+bridge> [ddnet] @heinrich5991 when we are using `net_addr_from_str(...)` for ipv4 parsing, should we set `addr->port = 0` when no port is given? 19:44 <+bridge> [ddnet] The Read trait needs a bit of a redesign to expose whether it's buffered and needs a way to read into uninitialized buffers while at it 19:44 <+bridge> [ddnet] if u set port to 0 u get uid 0 and have a local root exploit over your NAT 19:44 <+bridge> [ddnet] nothing can be uninit in rust 19:45 <+bridge> [ddnet] also its not buffeded unless u use bufwriter 19:45 <+bridge> [ddnet] bufreader 19:45 <+bridge> [ddnet] same with ipv6 right? 19:45 <+bridge> [ddnet] https://doc.rust-lang.org/std/io/struct.BufWriter.html 19:45 <+bridge> [ddnet] Yes einstein. Thus I said it needs attention :D 19:45 <+bridge> [ddnet] no its perfect 19:46 <+bridge> [ddnet] You are so drunk on koolaid :D 19:46 <+bridge> [ddnet] xd 19:46 <+bridge> [ddnet] im messing with u 19:46 <+bridge> [ddnet] but i dont see anything wrong rn tbh 19:46 <+bridge> [ddnet] i know when im using a bufwriter 19:46 <+bridge> [ddnet] and there is https://doc.rust-lang.org/std/mem/union.MaybeUninit.html 19:46 <+bridge> [ddnet] @Ryozuki\: is not the only weeb doing rust https://www.youtube.com/watch?v=7LX6WIEtfog 19:46 <+bridge> [ddnet] omg chillerdragon 19:46 <+bridge> [ddnet] ur video embed is too big 19:47 <+bridge> [ddnet] axaxaxax 19:47 <+bridge> [ddnet] If you can't know whether something implementing Read is buffered. So your apis performance characteristics vary widely 19:47 <+bridge> [ddnet] @Learath2 19:47 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/869637084816736336/unknown.png 19:47 <+bridge> [ddnet] !!!!!! 19:47 <+bridge> [ddnet] not only my video embed is big if you know what i mean ;) 19:47 <+bridge> [ddnet] how u cant know? 19:47 <+bridge> [ddnet] the idiom here is to just accept a object that has a Write impl 19:47 <+bridge> [ddnet] and user decided to use bufwrite 19:47 <+bridge> [ddnet] or 19:47 <+bridge> [ddnet] u can wrap it urself 19:47 <+bridge> [ddnet] u always know if its buffered 19:48 <+bridge> [ddnet] user can decide to use* 19:48 <+bridge> [ddnet] The initialized thing heinrich already wrote a solution to and the std uses an adhoc variant of it. You can initialize the buffer as you go to preserve safety 19:49 <+bridge> [ddnet] to this day i have yet to use unsafe 19:49 <+bridge> [ddnet] :greenthing: 19:49 <+bridge> [ddnet] You can always wrap, but then you need to accept double wrapping too, which increases overhead. serde_json is rolling an extra function to get around it 19:49 <+bridge> [ddnet] use alkahest instead serde_json!11! 19:50 <+bridge> [ddnet] wat 19:50 <+bridge> [ddnet] Who is an alkahest? 19:50 <+bridge> [ddnet] you can achieve zero copy json serialization with serde iirc 19:50 <+bridge> [ddnet] serde already is perfomant 19:50 <+bridge> [ddnet] Xingese alkahestry to deserialize json? 19:51 <+bridge> [ddnet] https://crates.io/crates/alkahest 19:51 <+bridge> [ddnet] i guess he means this 19:51 <+bridge> [ddnet] > Key differences of Alkahest from other popular serialization crates is zero-overhead serialization and zero-copy lazy deserialization. 19:51 <+bridge> [ddnet] Heh, check out how the buffered reader issue makes serde json 10 times slower than pythons shitty json lib :D 19:52 <+bridge> [ddnet] sources? 19:52 <+bridge> [ddnet] It's an edge case. If you load the file entirely first it faaar outperforms python 19:53 <+bridge> [ddnet] https://github.com/serde-rs/json/issues/160 19:53 <+bridge> [ddnet] Maybe specializations will get stable some day, that'd help this too 19:54 <+bridge> [ddnet] btw serde_json::from_str is the one u will end up using most 19:54 <+bridge> [ddnet] specially in web apps 19:54 <+bridge> [ddnet] iirc 19:55 <+bridge> [ddnet] And rust#78485 is the uninit thing I mentioned. I used heinrichs nice wrapper for now 19:55 <+bridge> [ddnet] im 2 lazy to check 19:55 <+bridge> [ddnet] if u dont give a link 19:55 <+bridge> [ddnet] :greenthing: 19:55 <+bridge> [ddnet] https://github.com/zakarumych/alkahest 19:55 <+bridge> [ddnet] https://crates.io/crates/alkahest 19:55 <+bridge> [ddnet] 19:55 <+bridge> [ddnet] https://github.com/zakarumych/rust_serialization_benchmark 19:55 <+bridge> [ddnet] kill the embeds 19:55 <+bridge> [ddnet] xd 19:55 <+bridge> [ddnet] u 19:56 <+bridge> [ddnet] https://github.com/rust-lang/rust/issues/78485 ur like chiller ryo. Big lazy 19:56 <+bridge> [ddnet] considering the amount of features serde has 19:56 <+bridge> [ddnet] and how general it is 19:56 <+bridge> [ddnet] its impressive its this fast 19:56 <+bridge> [ddnet] its some black magic 19:57 <+bridge> [ddnet] Macromagix and some very tight optimization to limit the amount of llvm ir emited to begin with 19:57 <+bridge> [ddnet] > The current design of the Read trait is nonoptimal as it requires that the buffer passed to its various methods be pre-initialized even though the contents will be immediately overwritten. This RFC proposes an interface to allow implementors and consumers of Read types to robustly and soundly work with uninitialized buffers. 19:57 <+bridge> [ddnet] ok i agree 19:57 <+bridge> [ddnet] i hope they implement something 19:58 <+bridge> [ddnet] good thing about rust being a community 19:58 <+bridge> [ddnet] I browsed around it serde source a bit today. Learned some very nice rust trixx 19:58 <+bridge> [ddnet] :greenthing: 19:58 <+bridge> [ddnet] oh lol he didn't insert his own crate as benchmark object 19:58 <+bridge> [ddnet] i should too 19:58 <+bridge> [ddnet] but im 2 lazy 19:58 <+bridge> [ddnet] its true when u work coding u lose some passion to do it in free time 19:58 <+bridge> [ddnet] but i still code rust 19:58 <+bridge> [ddnet] :feelsbadman: 19:59 <+bridge> [ddnet] lmao 19:59 <+bridge> [ddnet] actualyy he sent me results 19:59 <+bridge> [ddnet] xd 19:59 <+bridge> [ddnet] so thought it's here 19:59 <+bridge> [ddnet] :monkaS: not enough tabs 19:59 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/869640240011292692/unknown.png 19:59 <+bridge> [ddnet] actually he sent me results 20:00 <+bridge> [ddnet] @Learath2 cool post about the future rust features 20:00 <+bridge> [ddnet] https://lazy.codes/posts/awesome-unstable-rust-features/ 20:00 <+bridge> [ddnet] tabs gang xd 20:00 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/869640380998619136/unknown.png 20:00 <+bridge> [ddnet] lmao 20:00 <+bridge> [ddnet] 2 small 20:00 <+bridge> [ddnet] press ctrl-w 21:37 <+bridge> [ddnet] 15 damn hours I ran rsync and it's not even close to being done with copying 21:37 <+bridge> [ddnet] GOD 21:38 <+bridge> [ddnet] are they not SSDs? 21:38 <+bridge> [ddnet] No it's not even the drives speed that's the issue... 21:38 <+bridge> [ddnet] it's exfat 21:38 <+bridge> [ddnet] oh right 21:38 <+bridge> [ddnet] :kek: 21:38 <+bridge> [ddnet] kinda funny how for a while that was the flash drive standard 21:38 <+bridge> [ddnet] or was 21:39 <+bridge> [ddnet] and it's just painfully slow 21:39 <+bridge> [ddnet] I think I'll just download it again, there is no way this copy from disk to disk will end 21:39 <+bridge> [ddnet] nor is there anyway I can copy it back 21:39 <+bridge> [ddnet] doesn't btrfs also suck tho 21:39 <+bridge> [ddnet] is ext4 king 21:39 <+bridge> [ddnet] don't say anything about btrfs, sounds like something @Ryozuki would like 21:41 <+bridge> [ddnet] i heard its not as mature, i just used it once to have a shared folder with windows 21:41 <+bridge> [ddnet] i didnt want to use a propietary format like ntfs 21:41 <+bridge> [ddnet] hail stallman 21:42 <+bridge> [ddnet] i think it has security/stability issues last i checked 21:42 <+bridge> [ddnet] but maybe it's better now 21:43 <+bridge> [ddnet] ext4 isnt perfect either 21:43 <+bridge> [ddnet] filesystems are hard 21:44 <+bridge> [ddnet] I'm this close to just keeping a chart of offsets on the wall and writing to the disk raw 21:45 <+bridge> [ddnet] :monkaS: 21:45 <+bridge> [ddnet] how large is it 21:45 <+bridge> [ddnet] @Learath2 exfat uses linked lists right? 21:45 <+bridge> [ddnet] so btrfs uses b trees 21:45 <+bridge> [ddnet] b trees :POG: 21:46 <+bridge> [ddnet] reading some kernel lore i read stuff like red black tree 21:46 <+bridge> [ddnet] gotta figure out what it is 21:47 <+bridge> [ddnet] https://en.wikipedia.org/wiki/Red%E2%80%93black_tree 21:47 <+bridge> [ddnet] must be this 21:47 <+bridge> [ddnet] > In computer science, a red–black tree is a kind of self-balancing binary search tree. Each node stores an extra bit representing "color" ("red" or "black"), used to ensure that the tree remains balanced during insertions and deletions 21:47 <+bridge> [ddnet] fancy names 21:49 <+bridge> [ddnet] yea red-black trees are cool 21:49 <+bridge> [ddnet] im a sucker for anything strictly efficient but annoying to implement 21:50 <+bridge> [ddnet] i think we learned to do red-black trees on paper in college 21:50 <+bridge> [ddnet] but i have no idea how now lol 21:50 <+bridge> [ddnet] i always get the urge to impl these kind of stuff but rust is nto friendly for this 21:50 <+bridge> [ddnet] and i dont want to touch c right now 21:51 <+bridge> [ddnet] all languages suck 21:51 <+bridge> [ddnet] use zig/nim 21:52 <+bridge> [ddnet] no 21:52 <+bridge> [ddnet] rust is the best 21:53 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/869668772775075930/unknown.png 21:53 <+bridge> [ddnet] :greenthing: 21:55 <+bridge> [ddnet] bar to entry is too high, and im not even sure it's entirely worthwhile when competing languages have improved safety/correctness alongside it 21:56 <+bridge> [ddnet] still, rust is the best for what it set out to achieve, but i think if you're working on a project that requires people with a general CS background, it makes sense to use something else 21:56 <+bridge> [ddnet] my opinion will probably change a bit when i learn rust, but i doubt it will be by much 21:57 <+bridge> [ddnet] which 21:57 <+bridge> [ddnet] lol i think ppl with a general cs background fit even more 21:58 <+bridge> [ddnet] i didnt like rust the first time i tried it, some months passed and i tried it again 21:58 <+bridge> [ddnet] i got hooked 22:00 <+bridge> [ddnet] i actually might be wrong about this, my impression was that nim and zig had some safety improvements but i find nothing about safety specifically when i search for it 22:00 <+bridge> [ddnet] if u tried c++ 22:00 <+bridge> [ddnet] u should learn rust 22:01 <+bridge> [ddnet] u will know why ppl love it 22:01 <+bridge> [ddnet] i dont know either lol 22:01 <+bridge> [ddnet] rip 22:01 <+bridge> [ddnet] my background is java, python, js, php, lua 22:01 <+bridge> [ddnet] the thing about rust is that it provides safety while having c++ speed 22:01 <+bridge> [ddnet] eh python first 22:01 <+bridge> [ddnet] c* 22:01 <+bridge> [ddnet] and then it's in order 22:01 <+bridge> [ddnet] they say programmers mature towards static languages 22:01 <+bridge> [ddnet] i mean tons of languages have c speed nowadays. 22:01 <+bridge> [ddnet] :monkalaugh: 22:02 <+bridge> [ddnet] saying "use rust" because c speed is silly 22:02 <+bridge> [ddnet] crystal, nim, zig 22:02 <+bridge> [ddnet] use rust cuz its safe 22:02 <+bridge> [ddnet] right yea 22:02 <+bridge> [ddnet] but im just saying 22:02 <+bridge> [ddnet] if u dont use unsafe and do a program in rust it wont crash 22:02 <+bridge> [ddnet] speed is no longer really an issue 22:02 <+bridge> [ddnet] u can also have thread safety 22:02 <+bridge> [ddnet] tons of compiled langs now that outperform c even 22:02 <+bridge> [ddnet] and the type system is amazing 22:02 <+bridge> [ddnet] ? which 22:02 <+bridge> [ddnet] thats not true 22:03 <+bridge> [ddnet] most compiled langs use gc 22:03 <+bridge> [ddnet] in like 5 years people will be like why do we hold c to be the gold standard 22:03 <+bridge> [ddnet] go 22:03 <+bridge> [ddnet] hi I have a question Who can look private 22:03 <+bridge> [ddnet] anyway i gotta focus on my dota ranked 22:03 <+bridge> [ddnet] brb 22:05 <+bridge> [ddnet] i gotta get back to work but i saw some benchmarks that showed crystal was really fast 22:05 <+bridge> [ddnet] also if you want a technical, totally not practical case, for numeric/array computations fortran is still better than c 22:17 <+bridge> [ddnet] One of the linked lists is 64 megabytes now 22:17 <+bridge> [ddnet] writing a new file takes about a minute to traverse down 22:17 <+bridge> [ddnet] jeez 22:20 <+bridge> [ddnet] just 1.5 million files to kill exfat 22:20 <+bridge> [ddnet] I'm like so close to just deleting the entire thing 22:21 <+bridge> [ddnet] i would not hold it against you 22:21 <+bridge> [ddnet] what data is on it? 22:21 <+bridge> [ddnet] the first 3 years of teehistorian 22:21 <+bridge> [ddnet] .......ehhhhhhh xD 22:21 <+bridge> [ddnet] who knows if it will be useful 22:22 <+bridge> [ddnet] deen and heinrich also have copies, so it wouldn't be gone either, but at this point I wasted 3 days messing around with this and am annoyed 22:23 <+bridge> [ddnet] are you on vacation currently? 22:25 <+bridge> [ddnet] I'm about to go on one and if I don't archive some files before I go my server will be very sad 22:25 <+bridge> [ddnet] no disk space = no good 22:26 <+bridge> [ddnet] I wrote 3 tools to parse and collect information about files inside exfat directories, so there is that 23:40 <+bridge> [ddnet] c-enum is pain wooaah 23:44 <+bridge> [ddnet] literally thought about splitting enums in mapitems.h 23:44 <+bridge> [ddnet] and now stuck on validating enums