mircea_popescu: funny how rereads work! so back in 2013, i think all http://trilema.com/2013/the-doctrine-of-total-depravity/ is "religion is bs". but today -- all it really says is that protestantism has fuckall to do with any kind of abstract faith. it was attempt to organize takeover from day one and naught else. the only protestant faith really is a sort of half-republic, "this is the instrumentality of taking over". nobody among their r
mircea_popescu: "APOLOGIA PRO NOMINE MEO. Out of consideration (in part) to such readers as may read this book I have assumed a name by which they may refer to me (if ever he or she may wish to do so kindly) in the same manner at least twice running--a feat of pronunciation which few of my English acquaintances have performed with my natal name. But there is also another reason, considerate of the author. I have been told that there are writ
mircea_popescu: ers whose works would have been famous if only their names could have been familiarly pronounced--Polish and Russian writers for the most part, I gather.
mircea_popescu: Since I had already taken every other precaution but this to deserve their more fortunate fate, in changing my name I have, I hope, robbed my readers of their last excuse for my obscurity."
mircea_popescu: the punch line, being, i suppose -- guess the fellow's name.
billymg: asciilifeform: everything seems in order with the new box
asciilifeform: billymg: ty for confirming. and dun hesitate to ask if you have q, here or in #p
billymg: i seem to have lost voice in #p again (perhaps from bouncer disconnect -- which will be moving to the new box as soon as i have time to setup)
mircea_popescu: "Once (in those far-off peaceful days when men still had enough grammatical sense to know that the word "pacifist" does not exist, but that the less convenient "pacificist" does) " << lulz.
mircea_popescu: it's funny how the neologisms of pantsuit are all "created last sunday", so to speak. "egotism" ? "altruism" ? meaningless drivel from the pap mills.
mircea_popescu: meanwhile in "female interest" webtardation : "Areas of Interest Select all that apply. Vaginal Steaming Womb, Wine & Wellness Night Broth Lessons (individual or group) BROTHrive Membership".
BingoBoingo: Then there's the grow shops of which "Tu Cultivo" is the only one I can recall off hand that doesn't have Grow in the name.
BingoBoingo: SoulMedicine Grow, Juana Grow, Dr. Grow, the list goes on Gro
Mocky: with >80% foreigners all speaking english, the Qataris fear becoming ESL. signage is dual language because Arabic is mandated. in 2012 they passed a law mandating universities switch from english to arabic for all degree for all degree programs other than sci/eng/med. in 2016 further law mandating arabic for gov agencies, contracts, schools
Mocky: unrelatedly, i saw the craziest thing leaving the air port. there are a lot of indian dudes around doing public works type labor jobs. landscaping, pickup up trash, construction etc. I saw one, and i swear he was mowing the grass with a chain saw, all squatted down. now maybe he was cutting something else, but there was nothing else there! and damn if the that lawn wasn't pristine as a golf course
BingoBoingo: Here they do entire parks using string trimmers
asciilifeform: !Q later tell phf i recently found that lcd panel made by (defunkt) 'pixelqi co', pq3qi-01 , is still sold by chinese ( i have nfi if clones, or old stock ), ~100 $ ea; the thing toggles from 1024x600 colour/backlit into a 3072x600 greyscale reflector thing, worx with various lappies ( sadly not x60, it's a 16:9 )
lobbesbot: asciilifeform: The operation succeeded.
asciilifeform: draws 400mW in reflector mode (~1/5 of what colour panel of that weight class eats) .
asciilifeform: pretty clever, imho : they had some electrochemical mechanism for turning the colour filters on subpixels into transparent.
asciilifeform: also somewhat unusually, there's a full datashit for the thing ( i.e. could drive with fpga; and there's a chinese hdmi/dvi board for it, ~20bux )
bvt: Apparently those addresses are used as 'poor man's RNG'
phf: bvt: i think the conclusion of yesterday's thread was that using mktemp is a bad idea, and that it's better to rewrite temp_file_name to be self contained, i.e. get rid of mktemp pragma and have temp_file_name do its own random string/stat loop
lobbesbot: phf: Sent 1 hour and 48 minutes ago: <asciilifeform> i recently found that lcd panel made by (defunkt) 'pixelqi co', pq3qi-01 , is still sold by chinese ( i have nfi if clones, or old stock ), ~100 $ ea; the thing toggles from 1024x600 colour/backlit into a 3072x600 greyscale reflector thing, worx with various lappies ( sadly not x60, it's a 16:9 )
bvt: I understand this, but still it's better to drop the vpatch, at least in the logs, in case someone else stumbles upon this problem.
phf: i like that ada will create a temp file for you and then clean it up on empty string, though that's a bit too magical (the interface, not the behavior)
bvt: that was a wtf moment for me, i'm not used to such service from the runtime
phf: well, it's also a reason why bug wasn't caught in development. a sequence of wtfs: linux man page says mktemp should be 3 or more X's, so project builds on a non-musl build. meanwhile POSIX mandates there to be exactly 6 X's, so a musl build fails to produce a random string, returning instead a blank one, which is when gnat decides to not only generate a temp file but also do cleanup.
bvt: did you use ave1's gnat or the adacore-provided distro? My understanding is that it should work with both, taking 2 different code paths, and fail only with gnat17.
phf: i've used a variety, including the two you mentioned. ave1's, adacore 2016 and 2018 on linux and mac
phf: bvt: you know you could take a stab at proper temp_file_name :> it'll have to be written anyway, to fix this bug. i suspect by the time someone else runs into this issue, a replacement will already be available.
bvt: i will give it a try. i'm still learning ada, will have to take a look at how strings and interfacing with C are done properly.
asciilifeform: phf, bvt : i thought of a possible algo for sane tmp file creation that dun need rng or global counter. 1) pick a file name in tmp dir, if none exists, take empty string, as string S 2) produce S' = H(S) , H is hash (e.g. keccak) 3) stat(S') ; if already exists, take S'' = H(S') and repeat .
phf: bvt: this doesn't need much C, it's a loop with a termination condition of not Ada.Directories.Exists(Filename), and the tricky part is the construction of said Filename. it could be a Prefix ("vpatch.") + keccak hash(salt + pid + time + ???).
phf: asciilifeform: nah, you want a random seed always, because you're trying to avoid race by producing a least likely collision. the race will always exist between existance check and initial creation
bvt: right, Ada.Directories.Exists was the missing piece.
asciilifeform looked, didn't find, assumed that i simply didn't look hard enuff
bvt: there is a recent linux O_TMPFILE flag to open(2), but i'm not sure we want to use that
phf: asciilifeform: well, temp_file_name makes a temporary _name_, if you're relying on an atomic create, then you need to change the interface, where you try and create a temp file, and then bail. in that case though you don't even need any randomness. just use a counter
asciilifeform: phf: counters won't behave well with '9000' parallel processes.
bvt: and i'm don't know yet if files created this way can be mv'ed to file system
phf: asciilifeform: counters exhibit exactly the same problem as a non-random seed
asciilifeform: phf: also can lock a fixed name in /tmp when incrementing counter or whatever wants to be atomic. tho imho it's ugly
asciilifeform: i suspect however that any solution that works across generic unixdom (i.e. doesn't marry linux) will appear similarly ugly
bvt: perhaps better way would be to create a temporary directory (for which there is atomic create-or-die) at the vpatch start, and place all temporary files there?
asciilifeform: if you have a working rng, all you gotta do is take 256 bits from it, and no need to stat() or anyffing; the chance of collision is coupla orders of magnitude smaller than asteroid flattening the machine
phf: bvt: as of right now there's only one temporary file at a time during a vpatch run, so you're essentially in the same situation temp file name or temp directory anme
phf: asciilifeform: i believe that was the real conclusion of yesterday's conversation: you want easy access to a real rng from any republican process at any time, and that makes a lot of idiotic problems go away
phf: but it also seems that before that becomes reality we either have to patch linux kernel or implement a rng daemon or somesuch
asciilifeform: phf: if vpatch in particular cannot be made to work 100% reliably on existing kernels, we'll have bootstrapping boojum.
phf: tmp file gets created when you have any sort of patching operation, gets cleaned up when you no longer need it. but you could conceivably have it for the duration of the runtime. (except instead of doing file move at the end of a single file patch, you do file copy)
phf: asciilifeform: so the posix solution is to call open with O_CREAT | O_EXCL, which will attempt to create but will signal EEXIST if the file already exists. curiously default behavior O_CREAT will simply clobber
asciilifeform: phf: seems like oughta work ( aside from boxes where /tmp is on nfs drive, but that's a perversity imho )
bvt: i will have a look at what primitives i need for the implementation today and tomorrow, and will come back here if i get stuck on something.