02:15:00 -!- craigo has quit (Ping timeout: 252 seconds).
02:17:28 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
02:20:44 -!- Lord_of_Life has joined.
02:57:37 <esolangs> [[User:SpaceByte@Vandlen't]] N https://esolangs.org/w/index.php?oldid=107010 * SpaceByte * (+45) Creating new user page.
02:59:10 <esolangs> [[Special:Log/move]] move * SpaceByte * moved [[User:SpaceByte@Vandlen't]] to [[User:Vandlen't]]: wrong user. also gonna move the bot to it's own account
03:00:32 <esolangs> [[Special:Log/newusers]] create * Vandlen't * New user account
03:07:32 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=107013&oldid=106998 * Vandlen't * (+266)
03:07:48 <esolangs> [[User:Vandlen't]] https://esolangs.org/w/index.php?diff=107014&oldid=107011 * Vandlen't * (+36)
03:25:34 <esolangs> [[User:Vandlen't]] https://esolangs.org/w/index.php?diff=107015&oldid=107014 * Vandlen't * (+82) Changed page source.
03:26:09 <esolangs> [[User:Vandlen't]] https://esolangs.org/w/index.php?diff=107016&oldid=107015 * Vandlen't * (+82) Changed page source.
03:30:15 <esolangs> [[User:Vandlen't]] https://esolangs.org/w/index.php?diff=107017&oldid=107016 * Vandlen't * (+82) Changed page source.
03:31:47 <esolangs> [[User:Vandlen't]] https://esolangs.org/w/index.php?diff=107018&oldid=107017 * Vandlen't * (+82) Changed page source.
03:33:05 <esolangs> [[User:Vandlen't]] https://esolangs.org/w/index.php?diff=107019&oldid=107018 * Vandlen't * (+82) Changed page source.
03:34:02 -!- Sgeo has quit (Read error: Connection reset by peer).
03:35:48 <esolangs> [[User:Vandlen't]] https://esolangs.org/w/index.php?diff=107020&oldid=107019 * Vandlen't * (+82) Changed page source.
03:38:05 -!- Sgeo has joined.
03:41:23 <esolangs> [[Esolang talk:Help]] https://esolangs.org/w/index.php?diff=107021&oldid=24504 * Vandlen't * (+393)
03:41:33 <esolangs> [[Esolang talk:Help]] https://esolangs.org/w/index.php?diff=107022&oldid=107021 * Vandlen't * (+7)
03:44:50 -!- razetime has joined.
03:56:20 -!- razetime has quit (Ping timeout: 260 seconds).
04:40:05 -!- razetime has joined.
05:10:12 -!- razetime1 has joined.
05:11:25 -!- razetime has quit (Ping timeout: 246 seconds).
05:11:25 -!- razetime1 has changed nick to razetime.
05:30:00 <esolangs> [[User:Vandlen't]] https://esolangs.org/w/index.php?diff=107023&oldid=107020 * SpaceByte * (-24)
05:49:05 -!- razetime1 has joined.
05:50:03 -!- razetime has quit (Ping timeout: 248 seconds).
05:50:03 -!- razetime1 has changed nick to razetime.
05:53:27 -!- tromp has joined.
06:06:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
06:10:41 -!- bgs has joined.
06:28:06 -!- tromp has joined.
06:45:02 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:05:32 -!- bgs has quit (Remote host closed the connection).
07:29:58 -!- tromp has joined.
08:01:29 -!- Sgeo has quit (Read error: Connection reset by peer).
08:07:51 -!- razetime has quit (Ping timeout: 255 seconds).
08:30:49 -!- razetime has joined.
08:32:43 -!- b_jonas has quit (Read error: Connection reset by peer).
09:20:15 -!- razetime1 has joined.
09:21:05 -!- razetime has quit (Ping timeout: 252 seconds).
09:21:05 -!- razetime1 has changed nick to razetime.
09:24:00 -!- razetime1 has joined.
09:25:55 -!- razetime has quit (Ping timeout: 256 seconds).
09:25:55 -!- razetime1 has changed nick to razetime.
09:29:08 -!- razetime1 has joined.
09:30:27 -!- razetime has quit (Ping timeout: 256 seconds).
09:30:27 -!- razetime1 has changed nick to razetime.
09:34:01 -!- razetime1 has joined.
09:34:59 -!- razetime has quit (Ping timeout: 256 seconds).
09:34:59 -!- razetime1 has changed nick to razetime.
09:38:28 -!- razetime1 has joined.
09:39:31 -!- razetime has quit (Ping timeout: 256 seconds).
09:41:29 -!- razetime has joined.
09:42:38 -!- razetime1 has quit (Ping timeout: 246 seconds).
10:03:38 <int-e> what the zork is this, https://www.gog.com/en/game/colossal_cave
10:11:40 <shachaf> Hmm, it's no Zork: Grand Inquisitor.
10:12:29 <int-e> Enjoyable, but weird.
10:14:26 <int-e> I have it on, hmm, CD-ROM, I think. Not boxed, just a CD case.
10:15:45 <int-e> (It's always hard to be sure whether it's CD-ROM or DVD; they look the same.)
10:30:13 -!- wib_jonas has joined.
10:30:27 <wib_jonas> int-e: (cdrskin -minfo) with libburn installed
10:33:02 <int-e> wib_jonas: I don't have the physical media at hand, it's buried in a box nearby.
10:34:11 <int-e> Otherwise I'd probably know... there's usually a logo on the disk
10:34:26 <int-e> (and the case too)
10:34:55 <wib_jonas> ah yes, they're certainly hard to distinguish that way
10:36:40 <wib_jonas> "usually a logo on the disk" => I think the ones that you can print on with a printer and the ones that you can kind of print on with a DVD burner if you flip the disk don't have a logo. they may still have some text on the plastic just closer to the center from where the metal film ends, but I'm not sure you can interpret that text.
10:38:44 <shachaf> Man, the good old days when compact discs were how you transferred data.
10:39:40 <shachaf> Is the following true? If you have a systematic n+p erasure code, and you can recover all n data shards from any subset of n shards, then you can't recover any missing data shard from a subset smaller than n shards.
10:40:23 <int-e> wib_jonas: Yeah, I realize that the logo is kind of optional and could be a lie. But somehow, original media tend to both include a logo and not lie ;-)
10:40:45 <wib_jonas> what does "systematic" mean in that?
10:40:55 <int-e> There's probably some trademark protection to ensure that.
10:42:13 <wib_jonas> https://en.wikipedia.org/wiki/Erasure_code#Near-optimal_erasure_codes suggests that without the systematic bit it's not true
10:42:58 <wib_jonas> oh, systematic means that some of the shards have the data split but without further transformed
10:43:03 <int-e> shachaf: that's obviously false? imagine that you have one of the direct-mapped shards
10:43:49 <wib_jonas> it would have to be a secret-sharing code, which is kind of the opposite of systematic, for that to be true
10:44:15 <int-e> shachaf: let's make this even more silly: imagine p = 0.
10:44:30 <shachaf> Then you certainly can't recover any missing data shard.
10:44:47 <int-e> ah, that's what you mean by "missing".
10:44:58 <shachaf> Right, I should have phrased that better.
10:45:14 <shachaf> Recover any data shard from a set of other shards that's smaller than n.
10:45:18 <int-e> I, uh, missed that word when reading.
10:45:59 <wib_jonas> I think it's still not true in theory then, but may be true in practice
10:47:40 <wib_jonas> because if you make each shard just one bit, and take a set of shards that differs in just one bit from an invalid combination, then you can recover the bit on the shard where it differs from that invalid combination
10:47:57 <wib_jonas> but this isn't a complete proof because maybe you can't slice to single bits in such a code
10:48:28 <shachaf> Slicing to single bits limits you severely for erasure codes.
10:49:07 <int-e> shachaf: Yeah, it's true, by counting. If you have m+q < n shards, then you can fill that up to (n-q)+q = n shards filling in any values you like for the missing shards, and each of the resulting data has to correspond to data from some n original shards.
10:50:08 <int-e> "the missing shards" -- I mean the n-q-m originally missing shards that you're adding when filling up.
10:53:13 <int-e> the number of original and parity shards that survived erasure, respectively.
10:54:21 <int-e> It's not really necessary to distinguish those, I guess... but it helped me to think about this.
10:55:55 <shachaf> I see the argument. That's pretty good!
10:56:00 <int-e> (Are you aware of a standard convention for naming those numbers?)
10:56:31 <shachaf> Specifically, I guess, imagine you could recover a data shard using n-1 other shards. Then you'd have n shards, which lets you recover everything.
10:56:38 <shachaf> But there should never be a situation where you can recover everything from n-1 shards.
10:57:42 <shachaf> (Or should there? I guess that still needs to be proved but it seems more straightforward.)
10:57:45 <int-e> Now that's just plain counting... B^(n-1) < B^n, where B = 2^b is the number of possible values per b-bit block.
10:58:04 <int-e> except for the useless case b = 0.
10:58:50 <shachaf> Right, I was imagining maybe some encodings let you recover all the data from n-1 shards, but that would be magic pigeonhole-violating compression.
10:58:50 <int-e> (You have a 0-bit block? Wait, don't tell me, I think it's this: )
10:59:27 <int-e> (What an amazing magical trick, amiright?)
10:59:58 <shachaf> I lost a (-∞)-bit block, can you figure out what its value was?
11:00:19 <int-e> I have trouble making sense of that.
11:00:48 <shachaf> I'm making up a number of bits for an uninhabited type.
11:01:04 <shachaf> I guess calling log(0) -∞ or something.
11:01:09 <shachaf> Anyway, thanks, this is great.
11:01:42 <int-e> Ah. So it doesn't make sense in a very formal, uh, sense.
11:01:44 <wib_jonas> shachaf: if it's not an optimal erasure code, then it will store a little bit less net data than you can fit on the required number of shards, right?
11:03:04 <int-e> https://www.merriam-webster.com/thesaurus/sense ...that desn't really help.
11:03:20 <shachaf> Not very formal. Also, I was lying, I didn't ever have an inhabitant of an uninhabited type. I wish!
11:03:49 <int-e> It was a vacuous thought.
11:03:58 <shachaf> wib_jonas: That sounds reasonable.
11:05:11 <shachaf> People *do* make codes where you can recover some shards from a smaller set of other shards.
11:05:38 <shachaf> But I think they pay for that with needing extra shards in some other cases, for particular patterns of erasures. So you write out more data overall.
11:05:43 <int-e> That makes sense; some shards may be more important than others.
11:05:49 <shachaf> E.g. https://errorcorrectionzoo.org/c/locally_recoverable
11:06:03 <int-e> shachaf: And we've just proved that you do have to pay for that.
11:07:27 <int-e> I mean one obvious thing you can do is to have an n+p and n'+p' code side by side. But in the worst case you only survive erasure of min(p, p') shards.
11:07:35 <shachaf> So a simple thing you can do is something like this 4+3 encoding matrix: [[1 1 0 0] [0 0 1 1] [a b c d]]
11:07:44 <int-e> I imagine that you can do better.
11:08:08 <int-e> that's an instance of that, isn't it? 1+1 side by side another 1+1
11:08:49 <int-e> Oh there's a parity row, assuming [a b c d] is [1 1 1 1]?
11:09:02 <wib_jonas> ok, now imagine a code that's very far from optimal so you'd never use it in practice. stores two bits net in six shards, each shard one bit. the encoding is 00=>001000, 01=>010100, 10=>100010, 11=>110001, the first two bits are the systematic ones. you can recover the data from any 4 shards, but not always from 3 shards eg. 0???00 is ambiguous.
11:09:03 <wib_jonas> but you can recover all shards from just 00????
11:09:05 <shachaf> I think you don't want it to be [1 1 1 1], you want it to be linearly independent.
11:09:50 <shachaf> I guess I should just say, you have w,x,y,z, and your shards are w+x, y+z, and aw+bx+cy+dz
11:09:57 <int-e> shachaf: I guess I'm not in the mood to think this through.
11:10:21 <shachaf> So if you lose one of the shards in the first or second group, you can recover with just the two others in that group.
11:10:41 <wib_jonas> also from ????00 you can recover the first shard but not the others
11:10:59 <shachaf> And if you lose one shard in each group as well as a parity shard, you can still recover.
11:12:04 <shachaf> But if you lose both shards in one group, and that group's parity shard or the global one, then you're stuck. So you can't recover from all 3-failures (as we know).
11:12:43 <wib_jonas> because it works regardless the data, after choosing just which shards you haven't lost
11:12:45 <shachaf> Maybe the idea here is that a bunch of failures in one group are less likely than the same number of failures spread throughout your entire system.
11:14:26 <int-e> So there's a (probably hard) design problem here... given n + p devices with known failure probabilities p_i (1 <= i <= n+p), design an erasure code that maximizes the probability of full recovery.
11:14:46 <int-e> (not necessarily systematic)
11:15:18 <shachaf> Man, in the sort of context I'm normally thinking of this in, systematic codes are all that matters.
11:15:39 <shachaf> Though I'm not sure whether you actually get anything from being non-systematic?
11:15:43 <int-e> Though I think with linear codes we can always make them systematic if we want.
11:16:02 <shachaf> With linear codes certainly.
11:16:27 <wib_jonas> shachaf: that's usually the opposite of the normal assumption, which is that failures together in the same group are more likely than other failures. unless you have just four shards that form two groups in two ways so diagonal failures are less likely, but that doesn't work well for more shards.
11:16:32 <int-e> Are there any non-linear codes that people use in practice?
11:17:56 <int-e> Hmm. Maybe they're useful in contexts where errors are asymmmetric (so a 1 bit is more likely to be flipped than a 0 bit, or vice versa)
11:17:59 <shachaf> wib_jonas: Is that the normal assumption?
11:18:15 <shachaf> I think this grouping idea is probably common even with just regular erasure codes.
11:18:19 <int-e> The theory I know is all linear codes anyway.
11:19:14 <int-e> Except for the Hamming bound I guess, that's generic counting.
11:19:17 <shachaf> Say you're just duplicating your data: You choose two disks in your data center and write a copy of your data to each one.
11:19:24 <shachaf> And you have lots of little files so you do this everywhere.
11:19:40 <shachaf> Then if any pair of disks in your data center fails, you're pretty much guaranteed to lose some data.
11:20:28 <shachaf> Instead, you can say: Pre-group your disks into pairs in some arbitrary way (hopefully not correlated by manufacturing data or whatever). Then when you want to write a file, always write your two copies to the disks in one of the pairs.
11:20:44 <shachaf> Now the failure probability should be much lower, right?
11:21:01 <shachaf> But in the case of a failure you've lost a lot more data, and maybe the EV ends up being the same.
11:21:18 <int-e> Oh wait, I do know of some non-linear codes. Stuff like MFM, which is constrained by the frequency of bit flips. Totally different context, of course.
11:21:33 <shachaf> But that's good, you probably want to shift your EV into a tiny probability of catastrophic failiure, rather than high probability of a little bit of failure.
11:24:23 <shachaf> Hmm, I don't know this MFM thing.
11:25:42 <int-e> This, https://en.wikipedia.org/wiki/Modified_frequency_modulation
11:26:54 <shachaf> Notice that in this grouping scheme I described, you can lose a full 50% of your disks without losing any data. *And* you're not writing any more data than the theoretical optimal 1+1 erasure code.
11:27:55 <int-e> You're describing RAID 1
11:29:34 <shachaf> Sure, the 1+1 bit isn't important.
11:29:49 <wib_jonas> shachaf: I think so. the ECC on CD is designed to recover data from scratches on the metal film, that causes errors close to each other. or if you send data on a bunch of cables, then the backhoe that it summons will cut several adjacent cables. or if you send data by radio from a distant spacecraft then the noise source that masks the signal will
11:29:49 <wib_jonas> come in a spike burst that erases several bits adjacent in time.
11:29:49 <shachaf> You can group your disks into groups of 10 and use an 8+2 code or whatever.
11:30:40 <shachaf> wib_jonas: Right, that's fair, you do want to avoid those kinds of correlated failures. I was describing a thing where you pregroup your disks randomly to avoid that.
11:30:46 <int-e> Hmm, not scratches in the plastic?
11:31:16 <int-e> I thought the metal film was reasonably well protected... until the advent of super-cheap CD-R media.
11:31:33 <wib_jonas> shachaf: more importantly, if you have data on 300 hard disks, of which 100 are WD and 100 are Samsung and 100 are whatever the third brand is, then the 100 that's from one same model will have 50 failures and the other 200 will have 2 failures
11:32:08 <shachaf> wib_jonas: That sounds like an argument for constructing your groups with one of each, or something.
11:32:25 <shachaf> Then you can lose all your thirdbrand disks and still lose no data.
11:32:57 <wib_jonas> I mean this might not apply now when all the hard disks are made in one factory so the whole world's modern hard disks will fail together, but even so models might differ a bit
11:33:12 <int-e> (Hmm, I don't know what kind of material the writable part of CD-R media uses.)
11:34:36 <int-e> Technology... it's all elves and magic dust when you go deep enough.
11:35:03 <wib_jonas> shachaf: yeah, then it kind of depends on how you form the assumption. failure across your group is less likely than failure of two randomly chosen disks, so in that sense what you say is true. but I don't think that's the best way to model failures.
11:36:44 <wib_jonas> apparently the big manufacturers are WD, Seagate, Toshiba. not Samsung, they make solid-state drives.
11:39:11 <wib_jonas> shouldn've known that, I specifically bought hard disks from all three manufacturers recently, and those three were already the brands.
11:39:33 <wib_jonas> but recently means 2020-11 so not that recent
11:39:51 -!- craigo has joined.
11:40:09 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:42:19 -!- wib_jonas has quit (Quit: Client closed).
11:43:16 <int-e> why do we still call them "drives"
11:44:20 <int-e> Actually I don't know the etymology of that in the first place.
11:45:03 -!- wib_jonas has joined.
11:45:46 <int-e> Ah, it makes sense for FDD, it's the thing that makes the disk move. And that extends to HDD. But an SSD has nothing that has to be physically moved.
11:47:00 <wib_jonas> shachaf: you should model it as the groups being in the other direction, and errors are more frequent within a group, even if that's not the same groups how you divide the data to independent parts
11:47:41 <shachaf> Man, modern flash is so good.
11:47:54 <shachaf> Well, in many ways it's terrible. But still.
11:50:04 <int-e> Flash! A-ah! He's a miracle!
11:50:27 <FireFly> I guess the "drive" is just legacy at this point, like so much other terminology that gets inherited even if it doesn't necessarily strictly make sense anymore
11:50:50 <wib_jonas> int-e: I don't think it has to have a moving part. imagine "drive" as hardware "driver". the important part is that some of the complex non-repeating part that handles the mechanics or electronic logic is in the drive (the rest are on the motherboard or extension card), while the repeating part that stores lots of raw data in bulk isn't the drive.
11:50:51 <wib_jonas> for traditional removable media like floppy disks or tape this was obvious: the drive is everything but the tape or disk. for an SD card it's not so, the drive is mostly on the card itself, not the reader or motherboard. but part of your HDD or SSD is the drive electronics, even if it also has the non-drive storage part. for a HDD you can even
11:50:51 <wib_jonas> replace the drive part, because it's on a PCB that you can disconnect (loses warranty but can be worth if the data is very valuable).
11:51:00 <int-e> FireFly: We could be looking at LCD tubes. :)
11:51:01 <wib_jonas> so "drive" is a metonym for the whole drive + storage thing
11:51:24 <int-e> (But I guess flat screens lack the depth that we associated with the tubes.)
11:51:25 <wib_jonas> maybe we should call it "controller" instead of "drive"
11:51:45 <FireFly> why do we still call it "taping" to record someone when it doesn't involve a tape
11:51:55 <wib_jonas> like a RAM controller, which may still be partly on the RAM PCB but partly in a separate smaller chip than the chips that store the gigabytes
11:52:00 <FireFly> why do we call movies "flicks", etc
11:52:40 <wib_jonas> FireFly: sure, probably mostly just a legacy name
11:53:38 <int-e> FireFly: Yeah, anachronisms. When was the last time you hung up on somebody?
11:55:28 * FireFly . o O ( why do we call the computers that mostly go on the desk 'laptops' )
11:55:38 <wib_jonas> oh, that remind me, why are monitors called "screen"? is it called that from the magic cheese grater in color CRTs that has red/green/blue colored holes in different angles through it?
11:55:46 <FireFly> and the computers that mostly go below the desk are 'desktop' PCs
11:56:44 <wib_jonas> FireFly: we call movies "films" actually
11:57:45 <wib_jonas> also we call shops "stores", but that makes more sense because some people call workshops "shops" so it helps to distinguish them
11:58:28 <FireFly> calling movies "films" seems like an anachronism too :p
11:59:00 <int-e> Oh hello, OOM killer, you killed the right process, how did my whole session die?
11:59:12 <FireFly> can't imagine many of them are shot on film anymore
12:00:53 <Riviera> FireFly: https://www.imdb.com/list/ls507645320/
12:01:12 <Riviera> surely not complete, but i found this interesting
12:01:14 <FireFly> huh, well the more you know
12:05:24 <wib_jonas> that reminds me? can you point me to a webpage that tells about the various audio formats that films used on film? IIRC there were like five different generations of them, the first ones analog and the alter ones digital, and they cramped them to increasingly smaller unused spaces remaining on the film so they can be combined on the same film for
12:05:34 -!- perlbot has quit (Ping timeout: 252 seconds).
12:06:15 -!- simcop2387 has quit (Ping timeout: 255 seconds).
12:06:38 <wib_jonas> the first one is like a huge wide strip next to the image, then the next ones go to narrower strips that we can use with lower tolerance mechanical equipment, then one goes to the spaces between the cog holes, and I think we haven't got to the part yet where they go in the wedge of the rounded corners around the cog holes but that would probably
12:09:28 <wib_jonas> I'm trying. it's hard exactly because "film" is used for newer stuff that's not celluloid film and that's most of the hits
12:10:55 <Riviera> wib_jonas: https://en.wikipedia.org/wiki/Sound-on-film
12:11:53 <Riviera> probably a good starting point, many pointers in sections "Sound-on-film formats" and "See also"
12:12:56 -!- simcop2387 has joined.
12:14:27 -!- perlbot has joined.
12:22:54 <wib_jonas> ok, so there are only four areas for different sound formats apparently: one just has time code to synchronize with audio stored externally, one is the traditional backwards compatible analog one that has all sorts of variants to represent multiple sound channels, and two digital ones
12:23:56 <wib_jonas> and there are lots of experimental minor sound formats, some of which might use other areas or something
12:24:06 <fizzie> Sounds like a Technology Connections YouTube video.
12:24:58 <Riviera> fizzie: haha, i just wanted to say exactly the same :DD
12:38:34 -!- AnotherGuest67 has joined.
12:44:52 -!- tromp has joined.
12:58:30 <wib_jonas> hmm, I wonder if there were film cameras and projectors that used a synchronized pair of films with the frames alternating on them so that the time when one film is advanced between the frames can be covered by the frame from the other film
13:21:20 <wib_jonas> hmm, imagine that backwards. instead of digital audio encoded in unused parts of the film, the audio is analog on a vinyl disk, since all moviegoers know that vinyl disks have better audio quality than any other technology, while the video is on a tiny MicroSD card glued in a careful position of the back of the vinyl disk, and the player just
13:21:21 <wib_jonas> aligns that and copies the gigabytes of video data to its internal memory before it spins up the disk to play the audio.
13:36:36 <int-e> "film" -- at least "movie" is rather timeless :)
13:38:51 <int-e> "camera" though...
13:41:55 <wib_jonas> anyway, you were right, https://www.youtube.com/watch?v=tg--L9TKL0I is the Technology Connections YouTube video
13:43:29 <int-e> oh, light and sound, the marvels of electricity
13:44:39 <wib_jonas> "camera" is timeless too, that just means your photosensor is in a box where the only light can come in through the lens
13:44:58 <int-e> But I already know about sound on film.
13:45:47 <int-e> https://en.wikipedia.org/wiki/File:35mm_film_audio_macro.jpg
13:46:06 <int-e> Note the backward compatibility layers.
13:46:49 <wib_jonas> int-e: yep, Riviera linked to https://en.wikipedia.org/wiki/Sound-on-film which links there
13:50:30 <int-e> Oh, I didn't know about the 72 Hz trick (around 5:20 in the video).
13:57:45 <int-e> video gets out of sync when he mentions sound synchronization
13:58:48 <wib_jonas> int-e: he specifically says afterwards
14:01:12 <FireFly> there is a good technology connections video on that, yeah
14:01:14 <int-e> Especially since this is a real life issue we sometimes have in this digital age. Which is kind of embarrassing. (Yeah, I know, separate data streams. Also, frequently, separate processing pipelines on the production side.)
14:01:54 <FireFly> <int-e> "camera" though... <- they don't even have much of a chamber in them anymore...
14:02:43 <wib_jonas> int-e: yeah, I know. it sometimes seems to happen with capture cards. I don't understand why.
14:03:41 <int-e> Also I never made the connection between sound on film and the "track" in "sound track". Though magnetic tapes also have tracks.
14:03:41 <wib_jonas> FireFly: they do have a chamber. the sensor that detects the light is inside an opaque box that ensures that light only comes in through the lens. that's still a constant in all our cameras, I believe.
14:04:11 <wib_jonas> int-e: I think "track" is from vinyl disks mainly, since the sound track is etched in it
14:04:28 <wib_jonas> at least that's what I always assumed, but maybe I'm too young
14:04:53 <int-e> isn't that called a groove
14:05:18 <wib_jonas> so two anachronystic English words
14:05:28 <FireFly> I guess technically there still is a chamber, it's just so small especially on modern smartphone cameras
14:10:31 -!- AnotherGuest67 has quit (Quit: Client closed).
14:10:57 <wib_jonas> on modern smartphones it's small because the camera is a separately manufactured kind-of self-contained box that you may be able to replace, especially if it's not an Apple phone. I think on some photo cameras the whole chassis serves as the chamber, though I'm not sure about this
14:11:19 <wib_jonas> I'll have to look at a teardown video to make sure
14:12:38 -!- razetime has quit (Remote host closed the connection).
14:13:48 <int-e> "code unto others as you would have others code unto you"... how old is that clip?
14:19:17 -!- wib_jonas has quit (Quit: Client closed).
14:20:36 <int-e> "clip" - and another word that's been divorced from its original meaning
14:21:39 <int-e> (When's the last time you've literally cut film? I don't remember ever doing that.)
14:21:54 -!- wib_jonas has joined.
14:22:28 <wib_jonas> I was wrong, there's an inner dark chamber in at least the compact camera in (warning: destructive disassembly so may be painful to watch) https://youtu.be/gScwGhRSQFI?t=708 . it's more complicated for DSLRs where the light has to get into the separate viewfinder
14:23:53 <int-e> Yeah you'll typically need some distance between optics and the film or sensor. But it's so tiny these days compared to the original huge boxes.
14:24:25 <FireFly> oh now I'm just reminded of the videogame sense of 'clipping' and I guess gamedev/speedrun terminology is another whole can of worms :p
14:24:37 <FireFly> but yeah language just changes over time
14:24:46 <wib_jonas> yeah, lots of technology got tiny. compare the first huge hard disks to current ones for example.
14:24:58 <int-e> FireFly: Hah. Well, that's a different meaning of "clip" entirely.
14:25:00 <wib_jonas> especially current notebook hard disks
14:25:27 <int-e> Well. Hmm. I guess it still has to do with cutting things off.
14:25:28 <FireFly> int-e: kinda, but I think somewhat related?
14:25:47 <int-e> And then evolved from there.
14:25:47 <FireFly> comes from the computer graphics sense of clipping, which descends from the film sense I'd imagine
14:26:10 <int-e> More the graphics sense than the film sense.
14:26:51 <FireFly> well, I'm not actually sure but I figured the graphics sense comes from doing effects on film by physically cutting it
14:27:03 <FireFly> actually, speaking of that.. burn, dodge, screen :p
14:27:17 <FireFly> also I suppose the entire concept of 'frame'
14:27:38 <int-e> (The film sense cuts pieces of film to be reassembled... you'll cut between frames but it's not really about the image being displayed; the graphics sense is about picking out a subimage for a frame or possiblyu clip-art as part of another image.)
14:28:00 <wib_jonas> or maybe both the graphics and film sense come from the ordinary gardening meaning
14:28:07 <FireFly> I didn't know clip was used in that sense for film, I thought that was just a cut
14:28:34 <FireFly> (which hey, is another term in that vein too)
14:28:36 <wib_jonas> FireFly: well twitch uses it in the film sense of cutting a part of a longer film in the time direction
14:28:57 <wib_jonas> but cutting, clipping, or pruning are basically the same
14:29:01 <int-e> FireFly: it's perfectly analogous except it works in the time dimension
14:29:11 <int-e> which graphics doesn't even have
14:29:44 <wib_jonas> even if you cut a corner with a racecar, or make a crazy clip in Mario Kart to shorten the lap to less than half, or clip out of bounds in a platformer
14:30:26 <int-e> and then you transfer the graphics meaning... which becomes clipping planes when doing 3D projection to collision detection, which is also about plane intersections...
14:31:07 <int-e> and you end up with a quite different phenomenon that's still called "clipping" (and is actually a failure of clipping if you follow the etymology)
14:31:54 <wib_jonas> ah yes, there's also clipping in the signal dimension, which means your audio or video signal goes beyond the range of what you can represent
14:32:17 <FireFly> well the "cutting corners" sense comes more directly/obviously from like, cutting corners off with a scissor
14:32:50 <wib_jonas> who'd cut the corners from a film?
14:32:59 <wib_jonas> cutting corners comes from driving a car or motorbike
14:33:29 <wib_jonas> it lets you make a shortcut but means you're going off your designated part of the road which might be dangerous
14:33:41 <int-e> FireFly: Oh "clipping" has at least two meanings in that context.
14:33:52 <int-e> One where you barely touch an edge or something.
14:34:05 <wib_jonas> isn't that what cutting a corner means?
14:34:14 <int-e> And the other where you have a clipping *bug* that lets you through walls and the like.
14:34:39 <wib_jonas> int-e: ok, and what do you call the video game bug zipping instead of clipping?
14:35:05 <int-e> I don't call anything zipping?
14:35:17 <FireFly> wib_jonas: yes, but in my head at least that sense of cutting a corner could come from cutting corners off of a piece of paper, replacing a 90° bend with a 45° cut that is shorter
14:35:18 <int-e> Except the zip mode in Myst.
14:35:21 <FireFly> but maybe that's all wrong :p
14:35:41 <FireFly> wib_jonas: it was that sense of cutting a corner that I was thinking of the etymology of (taking a shortcut)
14:35:42 <wib_jonas> I guess zipping is when you're out of bounds and the video game has code that is meant to put you back from slightly out of bounds to in bounds and so you move really fast out of bounds
14:35:50 <int-e> And using the zip file compressor, and, well, zipping zippers on clothes.
14:35:57 <FireFly> I think clipping can lead to zipping
14:36:16 <int-e> Oh it's the zip line kind of zipping.
14:36:37 <FireFly> https://en.wiktionary.org/wiki/cut_off_a_corner
14:36:37 <wib_jonas> FireFly: hmm, maybe the car meaning comes from the traditional meaning, but I don't often cut off a *corner* from a piece of paper so I'm not sure
14:37:08 <wib_jonas> FireFly: or https://en.wiktionary.org/wiki/cut_corners#Verb
14:37:09 <FireFly> (linking that because it's interesting it has a longer form than just "cut corner")
14:39:10 <int-e> are we verbally cutting corners?
14:39:39 <wib_jonas> ouch, no, that would cause bleeding
14:40:13 <wib_jonas> and if it's inside your mouth it can't even be bandaged properly so it's harder to heal
14:40:28 <FireFly> <int-e> Oh it's the zip line kind of zipping. <- I think in games that originated with megaman, which had a bug where if you approach a wall at the right place you get quickly moved across the screen as the collision code tries to displace you
14:40:36 <FireFly> ...but it's possibly from ziplines
14:40:54 <int-e> hmm, there's also the meaning of just going fast
14:41:16 <int-e> etymology is more fun when you make up half the connections yourself :)
14:42:36 <int-e> Oh... anachronisms: https://xkcd.com/890/
14:42:47 <FireFly> I found a random website of someone speculating/guessing that "cutting corners" could be from tailoring to save material
14:43:00 <FireFly> but that's no more backed up :p
14:43:21 <FireFly> but basically along the lines I was thinking, that the "cutting" of corners might be backed by physical cutting
14:43:34 <FireFly> (and translated to shortcuts by analogy)
14:43:57 <FireFly> (... I suppose even the word "shortcut" ...)
14:45:26 <wib_jonas> I don't think that makes too much sense. how would corners help in that?
14:46:47 <int-e> The racing story (you have a track to follow; it's shorter if you cut a corner) is so damn plausible.
14:47:07 <wib_jonas> int-e: sure, but why is that called "cut"?
14:47:28 <int-e> because it looks like you're cutting off a corner?
14:48:24 <int-e> Also... shortcut. Which may be circular.
14:48:49 <int-e> there's things like "cutting through the woods"
14:48:50 <FireFly> conveniently a shortcut is the shortest cut you can make, like, mathematically :p
14:48:59 <int-e> Which might be related?
14:49:10 <FireFly> true, I wonder what order those came in though
14:49:16 <FireFly> I could see "cutting" as short for "shortcutting"
14:49:25 <int-e> and that one might be from cutting down trees to make a path
14:49:36 -!- craigo_ has joined.
14:49:39 <FireFly> (and now we're truly going in circles)
14:49:40 <int-e> or brush, at least
14:50:02 -!- craigo_ has quit (Read error: Connection reset by peer).
14:50:02 <int-e> which is something you might even do with a sword rather than axes or saws
14:50:09 <wib_jonas> FireFly: "cutting" for "shortcutting" is not an explanation, you still have to explain why "shortcutting" is called that instead of "shortgoing" or somethi8ng
14:50:32 <FireFly> yes, I just mean that the "cutting through the woods" might be more recent
14:50:43 <int-e> Anyway, I'm firmly back at "I don't know". But it's still fun to speculate.
14:51:02 <FireFly> what's the german word for a shortcut?
14:51:28 <wib_jonas> I think I saw a discussion recently on what meaning of "wing" came from which other meaning
14:52:38 <FireFly> what other sense than to "wing it" as in improvise?
14:52:52 <int-e> (clearly that's people gathering and having fun in the right part of a building, while the left part complains about the noise and vouches to have a left-wing party some day)
14:53:12 -!- craigo has quit (Ping timeout: 255 seconds).
14:53:59 <int-e> "winging it" is a good one... I have no theory for that one
14:54:28 <wib_jonas> I don't remember, something about almost crashing or crashing with a vehicle (presumably originally an airplane that has a wing) or missing or almost missing the vehicle with a missile
14:54:41 <int-e> something something world war I air fights something
14:55:19 <int-e> (I typed that before I read wib_jonas's message)
14:55:44 <FireFly> https://english.stackexchange.com/a/353390 oh fun
14:55:56 <FireFly> [ORIGIN: from theatrical slang, originally meaning [to play a role without properly knowing the text] (either by relying on a prompter in the wings or by studying the part in the wings between scenes).]
14:56:18 <FireFly> so truly from a "fuck it, we'll do it live" sense :p
14:56:35 <int-e> "prompter in the wings"
15:02:03 <wib_jonas> also I was recently looking up and talking about elsewhere something about chess. so there's this semi-mythical story where the ancestor of chess the game comes from India, and the pieces represent the four "branches of military": pawns for infantry, knights for cavalry, bishops for elephantry, and rooks for chariotry (represented by a camel).
15:02:03 <wib_jonas> except that some websites say, equally confidently, that the rooks come from elephantry and the bishops from chariotry. I only found one website that mentions both and confronts the ambiguity of what the elephant represents.
15:04:33 <wib_jonas> there's evidence for both. the modern name of the bishop comes from words from elephants in french and russian and more languages. but there are also claims that in some indian languages it's the name of the rook that's comes from the elephant. there are old chess sets that use an elephant to represent one of the rook or bishop, and in at least one
15:04:33 <wib_jonas> the elephant clearly represents the rook (usually I can't tell from looking at the figures which represents which). and it gets muddled because sometimes the king and queen (or just one) are represented by elephants, or that plus the bishop or knight.
15:05:31 <wib_jonas> it gets especially funny when they claim that the elephant originally represented a piece that's the precursor of the bishop that moves exactly two squares diagonally and, according to some sources and/or in some variants, it can leap over a chess piece doing that.
15:06:48 <wib_jonas> http://history.chess.free.fr/india.htm is the one website that mentions the ambiguity of which piece the elephant represents
15:08:23 <wib_jonas> oh, and it gets hard to search because "elephant chess" usually takes you to some opening called the "elephant gambit". the name of that may be related to the piece, whichever it is, but that doesn't help.
15:32:57 <wib_jonas> question. how do I clone a remote git repository, but filter out some subdirectories that have too much data, to conserve disk space, because the maintainer put large files that I don't need into a git repository together with small files that are useful for me
15:33:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:37:48 <int-e> Hmm https://git-scm.com/docs/git-sparse-checkout has positive and negative patterns in its cone mode
15:38:58 <int-e> But does that only work with checkouts or does it also prune the store? Idon'tknow.
15:38:59 <wib_jonas> int-e: isn't that only for workspaces as opposed to the objects stored in my repo?
15:39:02 <sknebel> git clone --filter can do it, and e.. filter files over a certain sizes
15:40:36 <wib_jonas> sknebel: I'll look at that, thank you.
15:41:22 <int-e> hmm, --filter doesn't seem to support path names?
15:42:10 -!- bgs has joined.
15:47:14 <wib_jonas> yeah, probably because it filters individual objects, and those don't have path information in them
15:47:33 <fizzie> Mercurial can do narrow clones with path-based inclusion/exclusion.
15:47:43 <fizzie> Doesn't help much with a Git repo, of course.
15:47:48 <wib_jonas> apparently it does do some recursive thingy
15:48:05 <sknebel> ah right. afaik you need to combine filter and sparse-checkout
15:48:22 <sknebel> using filter to prevent the blobs being downloaded in the initial clone
15:48:39 <sknebel> and then sparse checkout to only checkout (and thus force to be downloaded) what you need
15:48:56 <sknebel> and no, none of this is particularly user-friendly ...
15:49:56 <sknebel> https://docs.gitlab.com/ee/topics/git/partial_clone.html#filter-by-file-path
15:49:56 -!- tromp has joined.
15:49:59 <wib_jonas> fizzie: well that depends on how much git compatibility Mercurial has. git has an open format so multiple vc software read it, but usually they read it just enough to say you can convert your existing git repo to their repo once.
15:56:56 -!- Sgeo has joined.
16:04:48 -!- wib_jonas has quit (Quit: Client closed).
16:35:07 <esolangs> [[Bruhfunk]] https://esolangs.org/w/index.php?diff=107024&oldid=105541 * Nurdle * (+0) /* External Resources */
16:48:18 <int-e> Oh, --filter reads a specification from a blob. So you have to dump a file into the repo (not necessarily in the master branch) that contains a spec like '/*\n!/excluded-directory', then refer to it when cloning like `git clone file://src dst --filter=sparse:oid=sparse:sparse --sparse, and then populate .git/info/sparse (say, git cat-file sparse:sparse-checkout > .git/info/sparse-checkout , and...
16:48:24 <int-e> ...then checkout. Oh and this only works if the source repo enables uploadpack.allowFilter)
16:50:20 <int-e> Maybe even --global if it's remote? Unclear; my test seems to have worked with a local setting, but I only used file://.
16:56:36 <int-e> Also works for ssh protocol; I guess the global option remark is for serving via https, where repo configurations may be untrusted.
17:17:22 -!- b_jonas has joined.
17:23:07 -!- __monty__ has joined.
17:57:31 -!- tromp has quit (Read error: Connection reset by peer).
20:10:18 -!- fungot has quit (Remote host closed the connection).
20:11:36 -!- fungot has joined.
20:23:56 <b_jonas> can you turn any file into a zip file containing it by just reading it and appending to it, i.e. in place and writing nowhere but past its original end?
20:26:26 <fizzie> I think there's a mandatory "local" per-file header in front of each file entry.
20:26:39 <fizzie> (In addition to the central directory at the back.)
20:27:25 <fizzie> https://en.wikipedia.org/wiki/ZIP_(file_format)#Local_file_header "-- is immediately followed by the compressed data."
20:27:32 <fizzie> So I suspect the answer is no, sad as it is.
20:28:37 <fizzie> Unless you count writing a (potentially compressed) redundant copy of the original file past its original end, but that seems like it shouldn't count.
20:34:15 <esolangs> [[OISC]] https://esolangs.org/w/index.php?diff=107025&oldid=106556 * Joaozin003 * (+1) /* List of OISCs */
20:53:16 <b_jonas> pity with the global header being at the end
21:20:45 -!- b_jonas has quit (Ping timeout: 255 seconds).
21:50:50 -!- bgs has quit (Remote host closed the connection).
22:10:22 <fizzie> One of these days I'll actually get a rsync command correct the first time around. I keep forgetting how it interprets a trailing slash in the source/destination specification.
23:02:44 -!- fungot has quit (Remote host closed the connection).
23:15:38 -!- fungot has joined.
23:22:27 <FireFly> at least GNU tar(1) is easier these days, you can just tar xf and have it handle compression automagically
23:30:12 -!- craigo has joined.
23:30:20 -!- craigo has quit (Read error: Connection reset by peer).