←2017-08-31 2017-09-01 2017-09-02→ ↑2017 ↑all
00:01:08 <\oren\> "In the early 1970s a feasibility study was conducted for a project to build a canal from the Mediterranean Sea to the Qattara Depression in the Western Desert of Egypt using nuclear demolition. This project proposed to use 213 devices, with yields of 1 to 1.5 megatons detonated at depths of 100 to 500 meters, to build this canal for the purpose of producing hydroelectric power."
00:06:42 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
00:23:43 -!- MDude has quit (Ping timeout: 248 seconds).
00:24:01 <Hoolootwo> water doesn't do a very good job of absorbing pressure, since it's very near incompressible
00:24:27 <Hoolootwo> could a light gas like hydrogen work?
00:25:19 -!- augur has joined.
00:25:21 <oerjan> `? tanebventions
00:25:23 <HackEgo> Tanebventions include automatic squirrel feeders, necessity, Go, submarine jousting, Fueue, the universe, special relativity, metar, weetoflakes, mushrooms, sand, dragons, persistence, the BBC, _46bit, cognac, progress, sanity, the Oxford comma, and this sentence. See also tanebventions: maths. He never invents anything involving sex.
00:26:15 <oerjan> `slwd tanebvention//s;sanity;&, the grace period;
00:26:19 <HackEgo> tanebvention//Tanebventions include automatic squirrel feeders, necessity, Go, submarine jousting, Fueue, the universe, special relativity, metar, weetoflakes, mushrooms, sand, dragons, persistence, the BBC, _46bit, cognac, progress, sanity, the grace period, the Oxford comma, and this sentence. See also tanebventions: maths. He never invents anyth
00:27:24 <oerjan> `? tanebventions: math
00:27:25 <HackEgo> Mathematical tanebventions include D-modules, Chu spaces, the torus, Stephen Wolfram, Klein bottles, string diagrams, the reals, Lambek's lemma, Curry's paradox, Stone spaces, algebraic geometry, locales, and histograms.
00:28:14 <Taneb> Oh dear
00:28:21 -!- augur_ has quit (Ping timeout: 240 seconds).
00:28:26 <oerjan> it's time for some rearrangements
00:32:02 <oerjan> `? tanebvention
00:32:04 <HackEgo> Tanebventions include automatic squirrel feeders, necessity, Go, submarine jousting, Fueue, the universe, special relativity, metar, weetoflakes, mushrooms, sand, dragons, persistence, the BBC, _46bit, cognac, progress, sanity, the grace period, the Oxford comma, and this sentence. See also tanebventions: maths. He never invents anything involving
00:32:18 <Taneb> It is true that I never invent anything involving
00:33:24 <shachaf> Taneb never invents anythimble
00:33:38 <shachaf> `? mushroom
00:33:39 <HackEgo> mushroom? ¯\(°​_o)/¯
00:35:17 <oerjan> `le/rn tanebventions: food//Culinary tanebventions include automatic squirrel feeders, weetoflakes, mushrooms, and cognac.
00:35:20 <HackEgo> Learned 'tanebventions: food': Culinary tanebventions include automatic squirrel feeders, weetoflakes, mushrooms, and cognac.
00:35:58 <shachaf> `` grWp -l ' '
00:36:00 <HackEgo> haskell \ haskell' \ rules of wisdom \ speedy gonzales \ tanebventions: food \ tip
00:36:06 <shachaf> `? haskell
00:36:07 <HackEgo> Unbound implicit parameter (?haskell::Wisdom) \ arising from a use of implicit parameter `?haskell'
00:36:09 <oerjan> oops
00:36:11 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
00:36:13 <shachaf> `? haskell'
00:36:14 <HackEgo> Unbound implicit parameter (?haskell::Wisdom) \ arising from a use of implicit parameter `?haskell'
00:36:14 <oerjan> `le/rn tanebventions: food//Culinary tanebventions include automatic squirrel feeders, weetoflakes, mushrooms, and cognac.
00:36:17 <HackEgo> Relearned 'tanebventions: food': Culinary tanebventions include automatic squirrel feeders, weetoflakes, mushrooms, and cognac.
00:38:18 <oerjan> `slwd tanebvention//s.aut[^,], ..;s/wee.*rooms, //s.cognac, ..
00:38:19 <HackEgo> ​/bin/sed: -e expression #1, char 31: unknown option to `s'
00:38:39 <oerjan> `slwd tanebvention//s.aut[^,], ..;s/wee.*rooms, //;s.cognac, ..
00:38:41 <HackEgo> tanebvention//Tanebventions include automatic squirrel feeders, necessity, Go, submarine jousting, Fueue, the universe, special relativity, metar, sand, dragons, persistence, the BBC, _46bit, progress, sanity, the grace period, the Oxford comma, and this sentence. See also tanebventions: maths. He never invents anything involving sex.
00:39:08 <oerjan> that's wrong.
00:39:28 <oerjan> oh
00:39:41 <oerjan> `slwd tanebvention//s.aut[^,]*, ..
00:39:43 <HackEgo> tanebvention//Tanebventions include necessity, Go, submarine jousting, Fueue, the universe, special relativity, metar, sand, dragons, persistence, the BBC, _46bit, progress, sanity, the grace period, the Oxford comma, and this sentence. See also tanebventions: maths. He never invents anything involving sex.
00:40:53 <oerjan> `slwd tanebventions//s,maths,& or tanebventions: foods,
00:40:54 <HackEgo> Roswbud!
00:41:04 <oerjan> `slwd tanebvention//s,maths,& or tanebventions: foods,
00:41:06 <HackEgo> tanebvention//Tanebventions include necessity, Go, submarine jousting, Fueue, the universe, special relativity, metar, sand, dragons, persistence, the BBC, _46bit, progress, sanity, the grace period, the Oxford comma, and this sentence. See also tanebventions: maths or tanebventions: foods. He never invents anything involving sex.
00:43:08 <oerjan> `dowg haskell'
00:43:17 <HackEgo> 5842:2015-07-17 <Jafët> ` ln wisdom/haskell{,\\\'}
00:43:27 <oerjan> huh
00:43:55 <oerjan> `` ls -l wisdom/haskell\'
00:43:56 <HackEgo> ​-rw-r--r-- 1 5000 0 102 Oct 28 2016 wisdom/haskell'
00:44:02 -!- Sgeo has joined.
00:44:04 <oerjan> hmph
00:44:20 <oerjan> `` ls -l wisdom/haskell
00:44:21 <HackEgo> ​-rw-r--r-- 1 5000 0 102 Oct 28 2016 wisdom/haskell
00:45:12 <oerjan> `? marmite
00:45:13 <HackEgo> Marmite is a hive mind of fungal microorganisms spreading throughout the supermarkets of the Commonwealth.
00:52:39 <shachaf> `? speedy gonzales
00:52:40 <HackEgo> Sp e e d y G o n z a l e s i s t h e f a s t e s t
00:52:52 <shachaf> `? tip
00:52:53 <HackEgo> A tip is [ $ ] if you're American, [ £ ] if you're British, and if you're Japanese.
00:54:18 -!- Sgeo_ has joined.
00:55:41 -!- Sgeo has quit (Ping timeout: 240 seconds).
00:58:41 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
01:00:21 <izabera> #racism
01:02:15 <quintopia> no tips in japan?
01:02:49 <oerjan> purportedly
01:06:59 <Hoolootwo> there's a couple restaurants around here that don't take tips, mostly east asian places
01:07:22 -!- ais523 has quit (Remote host closed the connection).
01:08:31 -!- ais523 has joined.
01:12:51 <alercah> yeah tips are generally not done in asian cultures
01:13:47 <Hoolootwo> `w
01:13:48 <HackEgo> costume//Costumes are used for cosplay. Taneb sometimes invents them.
01:15:34 -!- ais523 has quit (Remote host closed the connection).
01:16:43 -!- ais523 has joined.
01:23:37 -!- kcyre has joined.
01:23:38 -!- kcyre has quit (Remote host closed the connection).
01:33:17 -!- boily has joined.
01:36:41 <boily> `5 w
01:36:46 <HackEgo> 1/1:epimorphism//An epimorphism is just a monomorphism in the opposite category. \ Э//EH? \ //You are probably using one right now! \ pun//Puns are fun. Ask shachaf about them. But beware of Muphry adding misspellings. \ shikhin//shikhin is a Malevolent God, who will promise you stuff tomorrow.
01:36:47 <boily> `n
01:36:48 <HackEgo> 1/1:epimorphism//An epimorphism is just a monomorphism in the opposite category. \ Э//EH? \ //You are probably using one right now! \ pun//Puns are fun. Ask shachaf about them. But beware of Muphry adding misspellings. \ shikhin//shikhin is a Malevolent God, who will promise you stuff tomorrow.
01:38:08 <shikhin> What? Tomorrow, dammit.
01:41:03 <shachaf> `? monomorphism
01:41:05 <HackEgo> A monomorphism is just an epimorphism in the opposite category.
01:41:27 <shachaf> So say f is a morphism.
01:41:40 <shachaf> "mono" means "(f .) is injective"
01:41:51 <shachaf> "epi" means "(. f) is injective"
01:42:00 <shachaf> "split mono" means "(. f) is surjective"
01:42:05 <shachaf> "split epi" means "(f .) is surjective"
01:42:26 <shachaf> If f is split x, then it's also x
01:42:47 -!- Sgeo has joined.
01:42:56 <shachaf> And of course if f is mono+split epi, or epi+split mono, then (f .) or (. f) is bijective, and so f is iso
01:43:37 <shachaf> mono morphin' power rangers
01:47:45 -!- imode has joined.
02:29:06 <izabera> aww the p!=np was wrong like the other 3453452 p!=np proofs
02:29:12 <izabera> who would have guessed it
02:30:16 <shachaf> sounds like solid evidence that P=NP hth
02:32:03 <boily> observing a green apple makes it more likely that a black raven is not NP.
02:33:53 <Taneb> boily, Sainsbury's was out of green apples the other day so therefor a black raven is NP!
02:43:20 <oerjan> grmble the first of every month i use to drain the laptop battery because that's supposedly good for it.
02:43:56 <oerjan> but sometimes i forget about it when i'm doing something else, and come back to discover it has turned off.
02:44:13 * oerjan hopes he found the right settings to get it to hibernate instead
02:45:08 <oerjan> at least my browser remembered the tabs this time, it seems.
02:45:36 <oerjan> vim is particularly annoying because of the way it nags when recovering stuff
02:46:27 <shachaf> vim recovery is so annoying
02:47:02 <shachaf> The standard recovery procedure: vim file; press r; save file with another time; diff two files; delete one of the files and the .swp
02:47:15 <shachaf> Is that what you're supposed to do?
02:47:29 <shachaf> It's so manual. I don't get why there isn't a simple thing to automate it.
02:47:59 <oerjan> no, i just ask it to recover, but it half panics because the recovery file is older than the saved one (probably a bug in file times or something)
02:48:10 <oerjan> and i have to deleted the swp files by hand.
02:48:12 <oerjan> *-ed
02:48:48 <Sgeo> Instruction Set where indirect addressing can only be done via self-modifying code: https://github.com/pbl64k/ShenzhenIO-Turing
02:48:48 <oerjan> <izabera> who would have guessed it <-- scott aaronson hth
02:49:14 <ais523> Sgeo: tons of instruction sets are like that, especially very old ones and toy ones
02:49:51 <Sgeo> o.O
02:51:23 <oerjan> as far as i can tell, the .swp file age must be when it was _created_, regardless of when it was changed.
02:52:13 <pikhq> Sgeo: Neat.
02:53:30 <oerjan> also not all the .swp files are in the same directory.
02:56:12 <oerjan> otoh forced reboots are my trigger for moving to the next tatham puzzle.
02:58:15 <ais523> oerjan: how old is your laptop? draining batteries is useful for nickel-cadmium batteries but basically all laptops nowadays use lithium batteries, which don't care
02:58:27 <oerjan> hm there were some tabs reopened that i had already closed
02:58:37 <oerjan> ais523: it's from 2013
02:58:53 <oerjan> i guess i can stop doing it, then
02:59:22 <ais523> I admit to occasionally having done it out of habit before remembering that modern batteries don't care
02:59:38 <alercah> lithium batteries it's actually better not to fully drain
02:59:40 <oerjan> although i'm not sure if i saw it suggested in the accompanying manual, or just old habit
02:59:41 <shachaf> But you're still not supposed to charge them to full capacity, right?
02:59:52 <ais523> I guess most people here are young enough to not be aware of the battery draining ritual
02:59:54 <alercah> not fully charging is also good, but harder
02:59:56 <oerjan> shachaf: um i'm not getting a choice for that...
03:00:18 <ais523> my laptop's BIOS has settings where you tell it how you use the battery (e.g. in my case, usually on mains power)
03:00:38 <ais523> and it has built-in rules for charging and discharging the battery in an optimal way based on that
03:00:39 <oerjan> maybe there is some setting.
03:01:12 <oerjan> it _does_ occasionally seem to drain the battery a little, even though i rarely remove the cord
03:05:31 -!- ATMunn has quit (Quit: See ya! o/).
03:07:52 -!- boily has quit (Quit: BUMPER CHICKEN).
03:30:57 <shachaf> `5 w
03:31:02 <HackEgo> 1/2:wlcom//Hi! This is a chat about unusual programming tools. For additional info, visit our wiki: <http://bit.ly/C4TUY>. (For unusual things of a contrasting sort, try http://bit.ly/19k9nf8.) \ htdh//HtDH is a classic text on How to Design Hotdogs or possibly Hogprams. It is all about functional condiments, and was co-authored by Herence Tao
03:31:19 <shachaf> n
03:31:21 <shachaf> `n
03:31:21 <HackEgo> 2/2:and Don Ho. \ //Frosty the Snowman / had a very shiny nose / And everywhere that Frosty went / the nose was sure to go. \ coulor//Coulor is the correct spelling. \ אrjan//אrjan is oerjan's first uncountable twin. He's inconsistent with the ZFC axioms.
03:52:57 -!- augur has quit (Remote host closed the connection).
03:57:31 -!- ais523 has quit.
04:08:04 -!- augur has joined.
05:01:09 -!- MDude has joined.
05:06:55 <Sgeo> "An­other im­por­tant ap­pli­ca­tion of time travel is in com­put­ing. Many newer mi­cro­proces­sors take ad­van­tage of retro­ca­usal con­nec­tions as part of their branch pre­dic­tion and cache prefetch hard­ware, en­abling much higher per­for­mance and clock speeds than be­fore."
06:37:58 -!- augur has quit (Remote host closed the connection).
06:44:35 -!- jaboja has quit (Remote host closed the connection).
07:01:32 -!- FreeFull has quit.
07:38:51 -!- augur has joined.
07:43:34 -!- augur has quit (Ping timeout: 264 seconds).
07:44:22 -!- mroman has joined.
07:59:35 -!- augur has joined.
08:03:35 -!- augur has quit (Ping timeout: 240 seconds).
08:07:14 -!- oerjan has quit (Quit: Nite).
08:16:48 -!- imode has quit (Ping timeout: 252 seconds).
08:24:49 -!- hkgit03 has joined.
08:38:50 -!- atslash has joined.
08:50:26 -!- AnotherTest has joined.
09:54:49 -!- moony has quit (Ping timeout: 255 seconds).
09:58:11 -!- Sgeo has quit (Ping timeout: 240 seconds).
09:59:18 -!- iovoid has quit (Read error: Connection reset by peer).
10:24:24 -!- Sgeo has joined.
10:37:09 -!- mroman has quit (Ping timeout: 260 seconds).
11:10:49 -!- atslash has quit (Quit: Leaving).
11:36:19 -!- zseri has joined.
11:36:55 <zseri> shrub?
11:39:23 -!- augur has joined.
11:43:36 -!- augur has quit (Ping timeout: 252 seconds).
11:52:38 -!- boily has joined.
11:54:09 -!- boily has quit (Client Quit).
12:11:12 -!- erkin has joined.
13:15:44 <\oren\> On the plus side, my city produces so much sewage that I am able to build a seaport on Shit Creek
13:54:48 -!- augur has joined.
13:59:11 -!- augur has quit (Ping timeout: 248 seconds).
14:29:33 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
14:33:36 -!- ATMunn has joined.
14:58:40 -!- AnotherTest has quit (Ping timeout: 240 seconds).
14:59:21 -!- PinealGlandOptic has joined.
14:59:36 -!- ais523 has joined.
15:27:22 -!- hkgit03 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:49:59 -!- mroman has joined.
15:50:24 <mroman> moo
15:52:11 <ATMunn> oom
16:04:47 -!- Sgeo_ has joined.
16:06:35 -!- Sgeo has quit (Ping timeout: 240 seconds).
16:13:27 <mroman> why do cpus use flags
16:13:35 <mroman> if I have three op instructions
16:13:52 <mroman> I might as well have blt target_addr, r0, r1
16:14:12 <ais523> mroman: it's typically because in old CPUs, it's easy to set flags as a side effect without losing any performance
16:14:37 <ais523> adding more ops to an instruction costs performance because the instruction takes longer to read and decode
16:17:21 <mroman> is 3 operands bad?
16:17:27 <mroman> or just different
16:17:34 <ais523> there are tradeoffs with any instruction length
16:17:52 <ais523> other things being equal, though, you want the machine code to be as short as possible so that more of it fits in the cache
16:20:15 <alercah> I dunno anything about modern microcode designs, but in older machines, it's basically free to set a flag since you can hardwire it
16:20:48 <alercah> so if it's used either extremely frequently or extremely infrequently, it has advantages over making it configurable
16:21:22 <ais523> even in modern machines, setting the flag is basically free, reading it can be rather more expensive though (because it introduces a dependency)
16:22:10 <alercah> for jumps in particular, it also lets you compress the jump instructions if they always use the same register to read from
16:25:00 <alercah> and possibly hardware optimize them too?
16:25:28 <mroman> in my case jumps are always absolute
16:25:41 <mroman> and the address always is in a register
16:26:05 <mroman> oh wait
16:26:09 <mroman> no there are also relative jumps
16:26:19 <mroman> which are 12bit one's complement
16:26:32 <mroman> so you can jump forward/back 2048
16:26:45 <mroman> times 4 even
16:26:51 <mroman> because an instruction is 4 bytes
16:26:53 <mroman> and aligned
16:26:58 <ais523> alercah: what's your opinion on skip/jump instruction sets?
16:27:04 <mroman> so you can multiply the relative address by 4
16:27:07 <ais523> where all conditionals skip one instruction if they succeed, and all jumps are unconditional?
16:27:46 <alercah> ais523: I've never used one
16:27:59 <mroman> so you can jump forwards/backwards 2047 instructions
16:28:06 <alercah> ais523: sounds nice though?
16:28:10 <ais523> I've used at least one, possibly more
16:28:17 <mroman> redcode has skips :D
16:28:20 <ais523> it seems like it'd be good for branch target prediction
16:28:40 <mroman> why?
16:28:42 <ais523> also the one I'm thinking of was on a processor with pipeline length 2, so it could implement a skip simply by flushing the pipeline
16:28:49 <ais523> mroman: because all jumps are unconditional
16:28:57 <mroman> true
16:29:03 <mroman> but you still don't know whether the jumps are taken or not
16:29:20 <mroman> so you still don't know where to prefetch stuff from
16:29:41 <ais523> mroman: it solves one of the problems with branch prediction
16:29:45 <ais523> but not the main one
16:29:49 <mroman> although this makes me wonder whether you could have two pipelines
16:29:55 <mroman> and one always fetches the thing from the jump
16:29:59 <b_jonas> ais523: as for branch prediction, you know what I'd like?
16:30:04 <mroman> and then you just switch pipeline if the jump is taken
16:30:28 <ais523> mroman: with long pipelines that doesn't work if there are multiple jumps in succession
16:30:30 <mroman> let's call it "speculative decoding"
16:30:36 <ais523> which is common with if/else if chains
16:31:56 <ais523> speculative execution is a real field of study, though, so there's probably something similar that works
16:32:04 <b_jonas> a kind of marking for a conditional jump where the programmer claims the result for the jump will be available early. when the decoder encounters such a jump, it doesn't try to predict whether the jump condition is true or false, instead it just stalls the decoder and hopes the execution unit will be able to supply the input for that condition early enough that it knows for sure whether the branch is taken, and when it knows, that's when it will continue
16:32:50 <b_jonas> and since you (the programmer) make that condition available early and not modify it in later statements, there's still statements to execute in the execution pipline when the decoder can continue working
16:33:18 <b_jonas> of course this is a bit harder to do in an architecture like x86 that has too few instructions that don't modify the flags
16:33:37 <ais523> I rather like the "delay slots" technique
16:33:39 <b_jonas> (you could do the same for an indirect jump, but that's a less common case)
16:33:47 <ais523> where all jump instructions have no effect for another X instructions, and then act immediately
16:34:19 <ais523> it needs a fairly smart compiler but it gets around all the branch instruction issues, and unlike VLIW and friends, the source code is still compact
16:34:43 <b_jonas> ais523: yes, but "it needs a fairly smart compiler but" never works in practice
16:34:56 <b_jonas> people tried that ten times
16:34:59 <b_jonas> it just never works
16:35:04 <ais523> b_jonas: gcc already has code for implementing this, I think
16:35:08 <ais523> such CPUs are used in practice
16:35:26 <b_jonas> ais523: yeah, it has now for mips twenty years later.
16:35:34 <b_jonas> doesn't bode well if you design a new cpu with it
16:35:47 <b_jonas> and I don't think the delay slot design even makes much sense with today's cpus
16:35:49 <ais523> you could just write a gcc and llvm backend at the same time
16:35:54 <b_jonas> that made sense for a fixed instruction time schedule
16:36:18 <ais523> right, it doesn't work so well with the modern parallel pipeline
16:36:26 <ais523> although it would nonetheless help to reduce branch prediction penalties
16:36:33 <ais523> even if not zero them
17:06:35 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
17:07:26 -!- Sgeo has joined.
17:10:53 -!- Sgeo has quit (Max SendQ exceeded).
17:13:30 -!- AnotherTest has joined.
17:15:21 -!- erkin has joined.
17:27:02 -!- augur has joined.
17:35:13 -!- AnotherTest has quit (Ping timeout: 248 seconds).
17:36:07 -!- FreeFull has joined.
18:03:46 <mroman> I'm designing yet another VM.
18:03:53 <mroman> mostly...
18:04:02 <mroman> it's more of an ABI layer for processes
18:04:06 <mroman> or OSes
18:04:10 <mroman> kinda
18:04:27 <mroman> the point is a VM with complete process isolation
18:04:46 <mroman> so that you can safely run programs in it
18:05:18 <ais523> mroman: "container"?
18:05:29 <mroman> it's basically a container
18:05:29 <mroman> yes
18:05:41 <ais523> are you planning to use Linux's existing functionality for that, or to write your own?
18:06:19 <mroman> I'm going to write it OS dependent as a reference implementation.
18:06:23 <mroman> *OS independent
18:07:26 <mroman> it's like an OS on top of an OS.
18:08:11 <mroman> and "selinux"
18:09:32 <mroman> part of the idea is that you can load dynamic libraries with restricted permissions
18:09:48 <mroman> meaning that if you use a math library
18:09:53 <mroman> and invoke sqrt(x)
18:10:03 <mroman> that sqrt(x) is not running in the context of the current user
18:10:06 <mroman> as current OS do
18:10:33 <mroman> if there were to be a security vulnerability in sqrt(x)
18:10:42 <mroman> you'd be very restricted with what you can do with it
18:11:05 <mroman> because it would run in a "computation only" context meaning you have absolutely zero I/O available
18:12:04 <mroman> likewise processes will be started in a restricted environment as well
18:12:08 <mroman> for example if you have a text editor
18:12:26 <mroman> which has a root directory of course (containing the binary of itself and stuff)
18:12:41 <mroman> it will only have permissions to the file opened and that root directory
18:12:57 <mroman> so if there were an error in the parsing code of that text editor
18:13:05 <ais523> mroman: so what happens if someone does sqrt(-1) and raises a signal?
18:13:07 <ais523> that's a form of I/O
18:13:09 <mroman> the damage would be _very_ restricted.
18:13:15 <ais523> or does error handling have its own rules?
18:13:44 <shachaf> Is there an esolang where the primary form of output is through timing?
18:13:57 <mroman> and by signal you mean like linux signals?
18:14:15 <mroman> no.
18:14:19 <alercah> mroman: have you seen Fuschia?
18:14:23 <mroman> computation only can't even call os functions
18:15:10 <mroman> of course, this has implications on programmers
18:15:19 <mroman> because you wouldn't design software like
18:15:26 -!- impomatic has joined.
18:15:31 <alercah> mroman: what about a hardware exception?
18:15:33 <mroman> sub parse(string path) end sub
18:15:47 <alercah> like a divide-by-0
18:15:48 <mroman> but sub parse(stream<char> path) end sub
18:15:53 <mroman> and have the I/O in a different component
18:15:59 <mroman> you'd seperate I/O from non-I/O
18:16:31 <mroman> alercah: terminates the process.
18:16:50 <alercah> mroman: that seems like a loophole
18:16:55 <mroman> why?
18:17:06 <alercah> because it's an externally-visible side effect
18:17:12 <mroman> ah
18:17:20 <alercah> and a malicioius library could crash the process at an inopportune moment
18:17:25 <mroman> you mean a div-by-zero in another component?
18:17:28 <alercah> yeah
18:17:32 <alercah> like I write the sqrt component
18:17:35 <alercah> you call sqrt
18:17:40 <ais523> but the less-malicious alternative would involve checked exceptions
18:17:43 <alercah> I decide that this time, I'm actually going to divide by 0 and crash you instead
18:17:47 <ais523> and that requires changes to the programming languages
18:17:59 <ais523> you couldn't just do it on binaries, it'd be part of the ABI
18:18:34 <ais523> (although come to think of it, ABI violations are another possibility; say the calling convention says that you're supposed to restore r10 to its original value before returning from a function, what happens if the called code doesn't?)
18:18:37 <mroman> haven't thought too much about that
18:18:45 <mroman> security wise a div-by-zero isn't too much to worry about
18:18:56 <mroman> so I haven't thought about that aspect yet
18:19:04 <alercah> ais523: yeah, or any other sort of illegal instruction
18:19:06 <mroman> worst case the process dies
18:19:09 <alercah> mroman: I think you would like fuschia
18:19:35 <mroman> what's that?
18:19:40 <mroman> "Did you mean: fuchsia"
18:19:41 <mroman> "nope. probably not"
18:20:13 <mroman> do you have a link?
18:20:15 <mroman> seems hard to google
18:20:18 <alercah> https://en.wikipedia.org/wiki/Google_Fuchsia
18:20:21 <mroman> because google likes fuchsia more
18:20:56 <ais523> didn't xkcd find that "fuchsia" is the most frequently misspelled colour name?
18:21:11 <alercah> yes because the spelling is dumb
18:21:31 <mroman> it's not
18:21:36 <mroman> it's pronounced fuchsia
18:21:37 <mroman> so
18:21:43 <mroman> how can you misspell that?
18:21:50 <shachaf> imo "colour" is the most frequently misspelled color name
18:21:56 <mroman> it's written as it's spelled
18:22:21 <ais523> the UK pronunciation is more like "fyew-sha"
18:22:29 <alercah> ^ that's how I pronounce it as well
18:22:35 <alercah> the ch before s makes me want to do a german/irish ch
18:22:54 <ais523> alercah: was that a reply to my comment? if so, how did you type it that fast?
18:22:58 <shachaf> I believe that's the US pronunciation too.
18:23:17 <alercah> ais523: I had 6 seconds!
18:23:31 <mroman> German is best language ever anyway
18:23:33 <mroman> Hat man mir gesagt.
18:23:34 <alercah> and I usually type between 80-100 WPM
18:23:36 <pikhq> How you do pronounce "fuchsia" so it makes *sense*?
18:23:45 <ais523> 8 seconds at my end
18:23:51 <pikhq> "Fuck Sia"?
18:23:54 <alercah> pikhq: I dunno. I can't even pronounce it in Irish because the vowels are wrong
18:23:57 <ais523> this is pretty worrying, I might have passed out momentarily or something
18:24:05 <alercah> ais523: when did you sleep?
18:24:11 <ais523> this morning
18:24:24 <alercah> so not sleep deprivation probably
18:24:55 <ais523> I was sent to hospital a few months ago because I fainted for no apparent reason
18:25:05 <ais523> but they couldn't figure out the cause, and it hasn't happened again
18:25:11 <alercah> ohh
18:25:14 <alercah> ouch :(
18:25:28 <ais523> didn't happen this time, though; there are a few tests you can perform to figure out if you just fainted
18:25:31 <ais523> so maybe it's unrelated
18:25:49 <mroman> pikhq: fʊχsɪa
18:25:50 <mroman> probably
18:25:53 <mroman> not an IPA expert
18:28:02 <pikhq> Ah, so "fuck sia" indeed. :P
18:29:02 <ais523> (for anyone wondering: excessive sweat, especially from the forehead; skin and especially lips are white; low blood pressure, although that's hard to self-assess)
18:29:06 <\oren\> futSsya
18:45:42 <mroman> welcome to the club
18:45:51 <mroman> of undiagnosably ill people
18:47:48 <mroman> 80WPM?
18:47:54 <mroman> That's kinda low.
18:47:58 <mroman> 100WPM is ok
18:49:09 <alercah> mroman: my limiting factor is usually deciding what to write, not the actual typing
18:49:40 <alercah> Also I use a keyboard that I value for its comfort, although it's not the fastest tool
18:49:58 <mroman> and by ok I mean good
18:50:03 <mroman> on a bad day I type 100WPM
18:50:07 <mroman> on a good day about 120
18:50:13 <alercah> on a very good day I'll hit 120
18:50:27 <alercah> I don't IRC as much as I used to and that's how I learned to type quickly
18:50:32 <alercah> programming has much lower WPM demands
18:51:12 <mroman> very few people can sustain 120WPM for more than 2 minutes
18:51:49 <alercah> needs a really good ergonomic setup
18:51:52 <alercah> and shorter nails
18:52:10 <mroman> alercah: I've been sick since uhm.
18:52:16 <mroman> 2 years
18:52:17 <mroman> or something
18:52:22 <alercah> oof :(
18:52:36 <mroman> nobody knows why
18:52:53 <ais523> mroman: I've been in the club of undiagnosably ill people for ages
18:53:15 <mroman> only measurable thing is elevated transaminasis.
18:53:26 <ais523> I have some kind of mucus-related or salivary problem that I've seen several doctors about; none could figure it out, but through numerous experiments I discovered that it could be managed simply by drinking water frequently
18:53:30 <mroman> but not elevated enough to indicate anything in particular.
18:53:38 <mroman> salivary problem?
18:53:39 <mroman> not enough?
18:54:02 <mroman> as in xerostomia?
18:54:21 <ais523> mroman: it causes excess mucus production whenever I rehydrate
18:54:41 <ais523> which has knock-on effects of its own
18:54:57 <ais523> but the easy way to prevent it causing trouble is just never dehydrating so that I never have to rehydrate
18:55:23 -!- imode has joined.
18:55:53 <alercah> weord
18:55:58 <alercah> *weird
18:56:25 <int-e> . o O ( "weord" is a weird word. )
18:56:29 <mroman> my body temperature is too high
18:56:32 <mroman> and tired all the time
18:56:43 <mroman> sometimes deliriously tired at 4pm
18:57:14 <mroman> it's gotten weirder for the last two weeks
18:57:21 <mroman> but I can't go to the doctor anymore
18:58:18 <ais523> I'd better go home, anyway
18:58:34 -!- AnotherTest has joined.
18:58:34 <ais523> I'll be online at some point later but possibly not today, maybe not even for a few days
18:59:00 -!- ais523 has quit.
18:59:00 <alercah> ais523: will you be reachable by email>
18:59:04 <alercah> ah damn
19:01:37 <\oren\> I wounder what the actual effect would be of having a container ship sail on a river of pure untreated sewage and chemical waste
19:02:32 <\oren\> in cities:skylines, the main effect is that business on the shores of Shit Creek is booming
19:03:49 <int-e> the engines could be stirring up trouble, quite literally.
19:07:58 -!- Phantom_Hoover has joined.
19:11:21 <\oren\> "Cause of accident: hull dissolved in sewage"
19:18:14 <zzo38> Hello
19:26:37 -!- sleffy has joined.
19:27:13 -!- MrBusiness3 has joined.
19:29:30 -!- MrBismuth has quit (Ping timeout: 240 seconds).
19:33:40 -!- erkin has quit (Ping timeout: 240 seconds).
19:41:46 -!- imode has quit (Ping timeout: 264 seconds).
19:42:09 -!- Phantom_Hoover has quit (Remote host closed the connection).
19:45:56 <mroman> olleho
19:46:28 -!- erkin has joined.
19:52:42 -!- erkin has quit (Ping timeout: 260 seconds).
19:56:51 -!- jaboja has joined.
20:00:38 <zzo38> You can make the calculation of leap year needing only one division operation, such as the MMIX code: DIV $0,$0,100; GET $1,rR; CSZ $1,$1,$0; AND $1,$1,3; now if $1=0 then it is a leap year, otherwise it is not a leap year. (These instructions are 63 oops in MMIX.)
20:03:01 <mroman> CSZ?
20:03:18 <mroman> $1?
20:04:20 <zzo38> The $0 and $1 are registers, while CSZ X,Y,Z means to set X to Z if Y is zero.
20:04:45 <mroman> and GET?
20:04:50 <mroman> rR?
20:05:22 <zzo38> Reads the special register rR into $1, where rR is the remainder register.
20:05:55 <mroman> ah I see.
20:06:43 <mroman> doesn't x86 div put the remainder somewhere?
20:06:45 <mroman> or was that IDIV
20:06:50 <mroman> or was IDIV for signed numbers
20:07:03 -!- Phantom_Hoover has joined.
20:07:27 <zzo38> I don't know what x86 does
20:07:51 -!- erkin has joined.
20:09:09 <zzo38> If you know, you can try to figure out the way for x86 (or even for 8088)
20:10:51 <fizzie> Both DIV and IDIV do the same -- they divide a double-wide number (in ax, dx:ax, edx:eax or rdx:rax) by a regular-sized number (the operand), and put the regular-sized quotient in al/ax/eax/rax and the remainder in ah/dx/edx/rdx.
20:19:10 <\oren\> what is a good refernece for learning to use sqlite better?
20:20:04 <zzo38> Probably the SQLite documentation.
20:23:46 <zemhill> david_werecat.antigen: points 13.21, score 35.52, rank 5/47 (+1)
20:23:50 <zseri> why are there DIV and IDIV? what's the difference between them?
20:24:13 <int-e> idiv treats numbers as signed
20:24:21 -!- Lowlight has joined.
20:24:45 -!- Lowlight has left.
20:34:07 <mroman> zseri: add and sub works for both unsigned and signed numbers (two's complement)
20:34:10 <mroman> but mul div doesn't.
20:34:12 <mroman> so there's imul and idiv.
20:38:50 <int-e> (there's also an imul r, r/m variant that works with two values of the same size, updating the first with the result; there is no mul variant for that because it would produce the same results)
20:40:55 <int-e> oh and I forgot the slightly crazy imul r, r/m, imm variant... which assigns to the first operant the second operant multiplied with the immediate.
20:41:32 <int-e> does x86_64 still have all those?
20:42:19 <int-e> apparently so
20:43:56 <int-e> With the immediate restricted to 32 bits when using 64 bit operands. Which is fine; afaiui it's really designed for indexing into arrays with large element sizes.
20:46:59 -!- augur has quit (Remote host closed the connection).
20:48:05 -!- augur has joined.
20:49:10 -!- erkin has quit (Ping timeout: 240 seconds).
20:50:32 -!- erkin has joined.
20:52:47 -!- augur has quit (Ping timeout: 260 seconds).
21:05:53 <\oren\> I am considering the idea of a massivley multiplayer game where game-logic is entirely implemented as constraints and stored procedures
21:06:07 <alercah> I don't think massively multiplayer and that design go together
21:25:41 -!- jaboja has quit (Ping timeout: 240 seconds).
21:26:36 -!- sleffy has quit (Ping timeout: 252 seconds).
21:40:29 <mroman> so...
21:40:38 <mroman> you want a mmo in sql
21:41:05 <Taneb> Massively multiplayer online database
21:41:33 <mroman> and
21:41:35 <mroman> using sqlite
21:41:37 <zzo38> SQLite has no stored procedures, although you can use triggers inatead.
21:41:39 <mroman> there's one file on a smb share
21:41:43 <mroman> and players connect to the share
21:42:26 <zzo38> Triggers in SQLite can't have statements that have WITH at start, although WITH is allowed in subqueries and so on.
21:43:02 <mroman> \oren\: If you do that
21:43:06 <mroman> I'll create distributed brainfuck
21:43:46 <mroman> fuck
21:43:48 <mroman> I'll create it even if you don't.
21:43:52 <mroman> I don't have anything to do anyway
21:45:44 <mroman> but let me do my VM stuff first.
21:46:36 <mroman> I got six months left
21:46:41 <mroman> so I gotta do something useful in that time
21:46:47 <mroman> and distributed brainfuck isn't that useful.
21:51:15 -!- jaboja has joined.
21:53:46 -!- mroman has quit (Quit: gotta go).
21:54:11 -!- augur has joined.
21:56:11 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
21:56:41 -!- Phantom_Hoover has joined.
22:24:07 -!- Sgeo has joined.
22:41:43 -!- moony has joined.
22:43:05 -!- imode has joined.
22:44:56 -!- moony has quit (Remote host closed the connection).
22:46:50 -!- AnotherTest has quit (Ping timeout: 240 seconds).
22:52:50 <zzo38> Did anyone make a hardware implementation of MIX (including punch cards and magnetic tapes and everything else like that too)?
22:56:49 -!- Sgeo_ has joined.
22:58:35 -!- Sgeo has quit (Ping timeout: 240 seconds).
22:59:52 -!- Sgeo__ has joined.
23:02:05 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
23:03:12 <zseri> bye
23:07:54 -!- zseri has quit (Ping timeout: 260 seconds).
23:10:58 -!- sleffy has joined.
23:17:21 -!- sleffy has quit (Ping timeout: 240 seconds).
23:23:56 -!- jaboja has quit (Ping timeout: 246 seconds).
23:36:24 -!- moony has joined.
23:43:32 -!- iovoid has joined.
23:43:32 -!- iovoid has quit (Changing host).
23:43:32 -!- iovoid has joined.
23:53:31 <zzo38> I made this MIX program to tell you if a year is a leap year and also what day of the week is January 1: http://sprunge.us/TdAc
23:55:03 -!- hppavilion[1] has joined.
23:56:14 <zzo38> It expects entering a Gregorian AD year number on the typewriter and then will write the result also on the typewriter.
23:56:21 -!- jaboja has joined.
23:57:09 <zzo38> Do you like this?
←2017-08-31 2017-09-01 2017-09-02→ ↑2017 ↑all