< 1502064191 0 :augur_!~augur@noisebridge130.static.monkeybrains.net JOIN :#esoteric < 1502064286 0 :Sgeo_!~Sgeo@ool-18b98980.dyn.optonline.net PRIVMSG #esoteric :Should I read the 80386 manual to start learning assembly? < 1502064292 0 :Sgeo_!~Sgeo@ool-18b98980.dyn.optonline.net PRIVMSG #esoteric :OSDev wiki seems to suggest that < 1502064300 0 :Sgeo_!~Sgeo@ool-18b98980.dyn.optonline.net PRIVMSG #esoteric :http://wiki.osdev.org/Learning_80x86_Assembly < 1502064305 0 :augur!~augur@noisebridge130.static.monkeybrains.net QUIT :Ping timeout: 240 seconds < 1502064377 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Sgeo_: maybe. but don't forget that cpus have changed a lot since the 386. they have out-of order execution and speculative and rollback and crazy branch condition and target prediction and multi-level caches and vector registers (which are the new general registers) and 64-bit mode and all that stuff now. < 1502064413 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :oh, and register renaming too < 1502064416 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :not all english-speaking countries have useful libraries < 1502064422 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :and fast-multiplication < 1502064524 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Sgeo_: do you want to learn how to write assembly that works or assembly that runs fast? < 1502064538 0 :Sgeo_!~Sgeo@ool-18b98980.dyn.optonline.net PRIVMSG #esoteric :I want to understand CPUs better. < 1502064541 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :assembly optimization is pretty crazy nowadays, mostly because processors no longer work anything like asm assumes they do < 1502064566 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :modern x86 basically recompiles the asm into an entirely different format on the fly < 1502064600 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :ais523: I personally care about the x86 cpu to learn how to write compiled code (C or C++ etc) that can run fast. it's rare that you actually have to write assembly, but knowing what the cpu does and caches and stuff helps when you write compiled code. < 1502064703 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's hard to know how to understand CPUs better nowadays < 1502064718 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess looking at pathological cases and understanding why they're pathological can help < 1502064734 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I suppose you could start with agner fog's optimization manual < 1502064783 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :(namely, the microarchitecture manual) < 1502064805 0 :augur_!~augur@noisebridge130.static.monkeybrains.net QUIT :Read error: Connection reset by peer < 1502064856 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :ais523: you don't need to understand it perfectly, but knowing something about it can help < 1502065212 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :one other approach, which is a bit more relaxing, is to read mysticial's stack overflow answers < 1502065221 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I would want to instead design the computer better, to not be so complicated and confusing like that. < 1502065339 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Some of the complicatedness have really good excuses. Like, you know, speed of light and how big atoms are. < 1502065453 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Yes, but I think there are better ways to deal with that. < 1502065469 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :with the speed of light? < 1502065475 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :or with the size of atoms? < 1502065513 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :less speed of light and more speed of electric charge through a medium. :P < 1502065527 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :but I guess if you did optical computing.. < 1502065579 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :imode: that matters only in the short deep circuits, like within the cpu. for between the main ram and cpu where there's only wires, no logic, the propagation speed is basically the speed of light. < 1502065621 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :You shouldn't put the out of order execution, complicated caching, speculation/rollback, etc. Make any stuff being doing explicily as part of the program instead. < 1502065626 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :then there are dumb complications, like how every x86 chip has three different types of floating point units < 1502065642 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :what? it's all subject to the speed of electric charge through a medium. transferrance of charge is NOT the speed of light. < 1502065683 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :(apparently gcc defaults to doing all floating point in sse now, if you use -ffast-math) < 1502065688 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :regardless of whether or not there's logic in the way. logic only adds switching delays, gate delays, etc. < 1502065729 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: I don't think that's a good idea. hardware guys tried that, but it turns out it only works if you assume the software guys can write magic compilers that can guess how cached each memory load actually is and the people who write the high level code want to annotate their C code with lots of hints, < 1502065754 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :and even then the machine code will be very verbose and you can't cache it properly. < 1502065775 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :out-of-order execution and register renaming and speculative branch prediction works well. < 1502065798 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the way to think about modern x86 machine code is as a compression scheme for what's actually run < 1502065803 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and one that isn't very good, at that < 1502065824 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I don't like it, as then you can't know what order it is in, and so on. MMIX has explicit branch prediction; you must specify whether you want a branch or not-branch to be faster. < 1502065828 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :the machine models probably should stay the same, but we should move to asynchronous circuits. < 1502065838 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :actually, the complexity of a modern core exists for a more fundamental reason < 1502065851 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :because memory is getting slower < 1502065853 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Then use a better compression scheme, I suppose? < 1502065873 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :most of the time the bottleneck is either memory access when people write cache-unfriendly code or decoding time when people write cache-friendly code. it's less common that the bottleneck is mispredicted jumps which is the only case when reducing the depth of the pipeline would actually help. < 1502065936 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :If I want caching I should to explicitly write in the caching instead. < 1502065960 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: tell that to stupid programmers who insist on using large arrays of 64-bit pointers everywhere when large arrays of 32-bit array indexes would work. < 1502065968 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :since memory is getting slower, there is nothing else for your doubling transistor counts to do other than to reorder more loads and stores or to cram more ways to use that memory bandwidth into the instruction decoder < 1502065977 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: it's not "if I want caching". you almost always want caching. < 1502066022 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I don't want to complicate it. You don't need so huge number of transistor and so slow memory; make faster memory then. < 1502066044 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :helloily < 1502066074 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Jafet: I have said this a few times, but what would IMO help a lot is if the cpu and OS people together found a way to increase the minimum page size from 4k, because then we could have more L1 cache, but it only works globally and some software assumes the page size is fixed, so it's really hard to do without breaking compatibility with everything < 1502066074 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric : we have. < 1502066140 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: memory throughput is plenty fast, especially if you're willing to buy expensive hardware. you can't have faster memory in latency though, because the main memory is between 0.1 to 0.3 meters from the cpu pyhsically, so the signal takes several clock cycles to propagate < 1502066152 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :what does the page size have to do with it? < 1502066180 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :that's why we need lots of on-board caches, in three levels (L3 for the whole chip, L2 per core or per two cores, and L1 with very slow latency really close to the execution units) < 1502066259 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Jafet: basically L1 cache wants to have very low latency, so it has to guess which cache slot holds your memory before it can look up the physical address in the page table cache (aka TLB = translation lookaside buffer), then verify that the address matches what the cache entry caches. < 1502066321 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :So the L1 cache can only use the low 14 bits of the address, and it practically can't have more than 8 entries for any one address because then managing it would be too slow. So L1 caches have been topped out at 32 kilobytes (8 page sizes) of data cache and 32 kilobytes of code cache per core for half a decade now. < 1502066328 0 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 240 seconds < 1502066329 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I still think there is a way to do though, by having separate addressing for the cache < 1502066358 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :And put the memory in the processor itself also microcode, that you can program your own microcode too, to improve the speed. < 1502066378 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :All cpus have that much L1 cache, but none can have more. To fix this, either you need larger page sizes, or some even more incompatible change. < 1502066414 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I am not so concerned if C codes will run extremely fast, since you can write it in assembly language if you want to code for specifically this computer. < 1502066420 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: the memory IS practically in the processor. processors have like 380 megabytes of L3 cache, and it keeps increasing. you get memory outside of the cpu too because most people want even more memory than that. < 1502066492 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Yes, but you could have separate addressing for them. < 1502066516 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :yeah. sliding memory windows.. < 1502066527 0 :LKoen!~LKoen@vbo91-1-82-238-218-67.fbx.proxad.net QUIT :Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.” < 1502066534 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :you could run a linux system off of cache alone these days. < 1502066537 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: why would that be worth? the program can't tell in advance which memory will be in L3 because that depends a lot on the multitasking, and spilling from L3 to memory doesn't really add much overhead anyway. < 1502066559 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :note that for the machines that have 380 megabytes of L3, it takes almost as long to access as the dram < 1502066572 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :imode: I think motherboards don't really support that, but that doesn't matter, because slow RAM chips are cheap anyway, so you can just put some in. < 1502066576 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Design it so that the program does know in advance, because only what the program puts there will be there. < 1502066582 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :at least for chipsets that I know of < 1502066596 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Jafet: no, not really. not in latency. It's still five times closer physically than the main memory. < 1502066605 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :hi wob_jonas < 1502066609 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :hi shachaf < 1502066617 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I ate lángos the other day. < 1502066625 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :shachaf: go on < 1502066632 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's pretty much it. < 1502066639 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you eat it sometimes? < 1502066647 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :You may even add parallel memory transfer if you want to, and then you can only address the cache, and not the external memory. < 1502066649 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :no, I don't much like it < 1502066800 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :I don't like food that's soggy with fat. That mostly comes up with ways to prepare meat, but lángos is an example too. < 1502066838 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It was very deep-fried. < 1502066889 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Exactly. < 1502066894 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Doesn't change much. < 1502066910 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is there other Hungarian food I should try? < 1502066914 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :here's a diagram claiming 40ns for the SB-E interconnect https://mechanical-sympathy.blogspot.de/2013/02/cpu-cache-flushing-fallacy.html < 1502066941 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :although I'm not sure if I should believe 65ns dram < 1502066946 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :shachaf: I can't predict what you'd like. < 1502066956 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :are you in Hungary or close somewhere? < 1502066987 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :or just ate lángos in Norway? I've seen such sold in Sweden, though I can't tell how authentic they are. < 1502066990 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :No. < 1502066994 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It was in Oakland, CA. < 1502067002 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know how authentic it was, or how to measure that. < 1502067092 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :relatedly, the mill architecture videos were p.g. < 1502067145 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Did you watch them all? < 1502067145 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :In any case, even if better architecture is possible, I care about x86_64 only, because it has the best support: most of the powerful computers have it, including anything I'll buy, and there's lots of good tools like optimizing compilers and good documentation. < 1502067153 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You should go work for the Mill folks. < 1502067242 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :No, x86_64 is too complicated and too confusing; MMIX is better, and the original x86 is also good, and also MIX, and also 6502. < 1502067253 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I did watch them all, but the plot twist in 10 was perhaps worth it < 1502067276 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: Do you like the Mill? < 1502067303 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Jafet: 10? < 1502067309 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I looked but was unable to find the proper document of it < 1502067326 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: I think the best documentation is in video form unfortunately. < 1502067330 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Did you watch the videos? < 1502067333 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :No < 1502067376 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :There are a lot of people that start projects about fancy new cpu architectures, but actually making good optimized and well-tested cpu hardware and supporting software like optimizing compilers is pretty hard, so I don't think those projects make any sense. < 1502067399 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Only a big company like Intel or AMD has the resource to be competitive in it. < 1502067401 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :You can write the program in assembly language, though. < 1502067432 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :huh, video 10 (“compiler”) is not the tenth on the website < 1502067445 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :And while it's easy to criticise Intel, and they do make mistakes, they are actually doing a pretty good work overall IMO. < 1502067448 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :well, it was that one < 1502067451 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, what's the twist in that video? < 1502067502 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :the true nature of the mill is revealed in the end, in the q&a session I think < 1502067518 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: only if you don't care about the lots of existing software written in C and other compiled languages that you'll want to run and want them to perform fast, such as the linux kernel itself < 1502067539 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Which true nature? I watched the video but it was a while ago. < 1502067604 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :and don't even try to say you'll just have two different cpus side by side, because it turns out, if you want to do thousands of operating system calls per second and low latency networking and stuff like that, that just doesn't work. < 1502067625 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Of course I will likely want the programs to run, but I can do without them going fast if making them fast means making a lot of confusion and complication, and instead write assembly languages programs when wanting to make a faster program specifically for this computer. This is always the case anyways; you will want to write assembly language program hand optimize for space and speed taking advantage of the specific features of this computer. < 1502067649 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :For example, you might use different kinds of data structures for the version of the program for different computers, too. < 1502067677 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: for some programs, you can get away with running slow. but you won't rewrite the linux kernel and all the hardware drivers. there's a lot of work going into that project. < 1502067679 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Or one version might omit some check that is needed on another implementaiton. Or whatever. < 1502067683 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :shachaf: something about how the belt is really just a better register map < 1502067692 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :but I don't remember clearly either < 1502067700 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Jafet: Ah, I vaguely remember something like that. < 1502067707 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Different computers will have different interfacing with hardware anyways. < 1502067722 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I talked to someone who worked at Intel about it and they were a bit dubious about the hardware implementation of it. < 1502067729 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But I don't really know much about it. < 1502067733 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: Do you like the Mill's instruction encoding? < 1502067740 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I don't know how it is work < 1502067742 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: There are two instruction pointers, one moving forward and the other moving backward. < 1502067828 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :My own idea a bit different, there is a microcode memory (with RAM and ROM), that you can load VLIW microcode into, and uses entirely different addressing (and even different number of bits) from the external memory, is one thing that it does. There are others too. < 1502067855 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: Do you like the Mill's belt? < 1502067856 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Programs can load their own self-modifying microcodes. < 1502067896 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is self-modifying code worth the trouble? < 1502067908 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :shachaf: Again, I don't know how it is working; you will need to explain them if I am to answer such questions < 1502067926 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I think self-modifying code is worth the trouble; I do not see why not. < 1502067953 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: The belt is like a stack, except it's a queue of some bounded size. < 1502067956 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :As long as the CPU execution is defined precisely and unambiguously, then you have compatibility. < 1502067992 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Instructions push their results onto the belt, and refer to belt positions by index (i.e. how recently a value was pushed). < 1502068031 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :When values fall off the end of the belt, they disappear. < 1502068051 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Actually I have done stuff like that before, so yes I do understand. < 1502068132 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :people try that, but IMO it doesn't work. ostensibly it saves a few bits in the encoding, but nothing else (the register renamer isn't actually a bottleneck EVERY, register reads and writes sometimes are but a belt doesn't help) and your code gets much harder to write when you need to store registers for longer or need conditions or loops. < 1502068153 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :it does sound like a good idea, I've thought about it, but I don't think it works. < 1502068220 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :as I understand it, the main point of the belt is that you get to use 512 registers instead of 16 < 1502068254 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :how does that work? don't you still need to encode all the input registers in the code explicitly, even if you can omit the output register most of the time? < 1502068308 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :we can have a plain large register array (like the one with 32 vector registers in future x86) or a large MMIX-like register stack if we just want more registers < 1502068337 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :(and that's 32 vector registers, plus the same 16 index registers you've always had) < 1502068337 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :well, the output registers are always fixed, so leaving that out does free up some bits < 1502068350 0 :augur!~augur@noisebridge130.static.monkeybrains.net JOIN :#esoteric < 1502068364 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :(and if you want even more, you can save index registers into fields of vector registers, and also efficiently use the stack) < 1502068368 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :but the videos didn't go into any detail about the instruction encoding < 1502068375 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: golfing languages have experimented with different registerish things quite a bit < 1502068379 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :I just don't believe it saves much < 1502068392 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think the optimum is to have some way to have very cheap, short-lived local values but also separate storage for longer-lived values < 1502068403 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a Mill-like belt is good at the former but not the latter < 1502068439 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :ais523: after a limit, golfing doesn't help. modern x86 extensions actually are somewhat less golfed than old x68 used to be, because being able to decode the instructions quickly is more important. so they actually have a lot of unused bits in instructions in EVEX encoding. < 1502068468 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: well, golfing helps in that it reduces cache pressure < 1502068471 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Sure, compact code still matters, but extreme golfing isn't always good. < 1502068476 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I prefer how MMIX is doing actually, although I can also think of a few other ideas about how to do < 1502068502 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and the thing about a highly golfed instruction set is that there's more scope to improve its performance as processors get better < 1502068509 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :and you lose a lot in expressability < 1502068514 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :REX encoding annoys me, it's so verbose, and yet you have to use it for basically everything on x86_64 < 1502068530 0 :doesthiswork!~Adium@207.55.82.87 JOIN :#esoteric < 1502068613 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :ais523: nah, the double prefixes (0xF0 and one more prefix byte) for old SSE code is much worse, but it was necessary for easy decoding < 1502068635 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I still think modern x86 is too messy, and modern ARM is also too messy. < 1502068637 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :but it get somewhat better with the later extensions (AVX code and AVX512 code) < 1502068675 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: sure, there's some historical craft, but a lot of it is pushed out to where it doesn't actually impact the performance if you don't use it < 1502068714 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I am not talking about historical stuff, but about the new stuff. < 1502068722 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :the mill speaker was going on about small loops very often, so I don't think his goal was to improve instruction set density < 1502068815 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :zzo38: some of it is messy, but they are getting better in the design than they used to. AVX512 actually manages to avoid the AVX stupidity o(where vector registers got split to 16 bit and 32 bit) which was only done to make it easier for operating systesm < 1502068878 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :you only affect whole registers now, which by the way means you can't have callee-saved registers because they can't save the upper part if the register is ever extended to 1024 bytes, but that ship has sailed with AVX2 anyway already < 1502068882 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :he had a plan to pipeline loops with nullable values, though (which can be implemented in a conventional CPU) < 1502068883 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :or with AVX < 1502068898 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :the vector registers all have to be scratch except for the lower 128 bits of four of them < 1502068923 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Jafet: we have efficient conditional move instructions for that < 1502068985 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :it took us quite a while, they should have added them long ago, so sadly you still have to feature test for them on x86_64, but still, they are there in all currently used cpus < 1502068989 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: even the original 8086 was pretty messy < 1502068997 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :x86 must be the worst popular asm < 1502069014 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What's a good popular asm? < 1502069021 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :6502. < 1502069027 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :ais523: yes, and it already had stupid historic cruft for marketing reasons < 1502069042 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :6502 isn't popular but it is fairly good for the scale of processor it's on < 1502069067 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :ais523: Yes, but still not quite as messy as the modern kind < 1502069069 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :you still have to move a value, though, and it could cause an instruction in the pipeline to trap? < 1502069102 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :6502's pipeline is /very/ short < 1502069106 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I do like 6502 though, as well as MMIX < 1502069133 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :6502 was good when it was new. but it's just not modern. < 1502069168 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :ARM then. AVR. MIPS. choose one, they all suck in many ways. :P < 1502069196 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Is why, I will prefer MMIX than ARM, AVR, MIPS < 1502069227 0 :tswe_tt!~tswett@unaffiliated/tswett PRIVMSG #esoteric :I think 8080 seems nice. < 1502069234 0 :tswe_tt!~tswett@unaffiliated/tswett PRIVMSG #esoteric :What's all the hype about 8086? < 1502069248 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :historic reasons. < 1502069422 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :tswe_tt: historical 8086 isn't important, except historically as in it has a lot of successors that have inherited some decisions from it that made sense at the time but are hard to support now and take a ton of time to get rid of them. modern x86_64 matters because it's the best supported high-performance cpu there is on the market now, with good < 1502069422 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :hardware and software, both well-tested and high performance. < 1502069790 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :`? charizard < 1502069816 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :wait, where's HackEgo. fungot, what did you do with HackEgo? < 1502069816 0 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :wob_jonas: yes i think everybody's just afraid i think now < 1502069819 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :when people say that arm's instruction set is good, are they referring to a subset that does not include thumb, thumb2, jazelle, neon, virtualization, or mov pc < 1502069903 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :all of the damn embeddings I've seen for binary trees have been in hypercubes, and they all waste one bit of space. < 1502069933 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :one bit per tree? < 1502069936 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :`? bulbasaur < 1502069947 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :one bit per path to a node. < 1502070002 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :it seems that I can't escape paying one bit.. < 1502070025 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Can you prove it? < 1502070038 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :certainly trying to. < 1502070079 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :you can encode any path from the root of an N level full binary tree to any of its leaves in N bits, but you can't encode a partial path. < 1502070104 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :unless I'm clinically insane, you will always have leftover bits that stand for a left traversal if left unchanged. < 1502070293 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :ah, the wonderful world of small-space information-theoretic lower bounds < 1502070311 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :you have to waste _at least one bit_ to mark the start of a valid sequence of branches. < 1502070345 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :doesn't an n-level binary tree have 2^n-1 nodes? < 1502070419 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :if it's balanced < 1502070440 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :hm. < 1502070657 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :Jafet: I'm trying to avoid integer arithmetic. calculating parent paths is not beneficial if you're dealing with paths through 1024-level binary trees or larger. < 1502070671 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :this is actually faster. < 1502070705 0 :augur!~augur@noisebridge130.static.monkeybrains.net QUIT :Remote host closed the connection < 1502070748 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :the problem reduces to "how do I store the length of a bit vector without storing the length of a bit vector." :P < 1502070912 0 :augur!~augur@noisebridge130.static.monkeybrains.net JOIN :#esoteric < 1502070929 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net QUIT :Quit: ARTICULATED CHICKEN < 1502071142 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I believe that computers do integer arithmetic in binary < 1502071189 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :that they do. but I would rather not implement arbitrarily large binary numbers just to store large paths. < 1502071208 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :now, arbitrarily large bitvectors on the other hand, that I can get behind. < 1502071209 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :But for what kind of computer? < 1502071310 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :Let's see what the weather forecast says. Does the weather cool down after this rain and storm and cold front? < 1502071352 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :if you store all paths with the same number of bits, then you do not need any extra bits < 1502071423 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :yeah, you do. if you want to store a path in a byte, you're going to store lefts as 0's, and rights as 1's. the path 101 is really 10100000, which is not the path you intended. < 1502071476 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 PRIVMSG #esoteric :A bit, but not enough. It will warm up again. Damn. < 1502071499 0 :wob_jonas!b03f1887@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.135 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1502071543 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :hmm, it seemed like there was an arbitrage opportunity for a bit < 1502071556 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Do you like the two new loader programs for MIX that I have designed? (Both need only one card, and actually the last five character positions are unused. One is for loading programs with a specific byte size, while the other one is independent of byte size) < 1502071611 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :" N O6 A O4 H N ENX E K BU I OA H A. PA N D LB E AEU ABG G 9 " < 1502071640 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :Jafet: here's the solution to that. pad the path with however many unused bits there are - 1, then pad it with a 0. so the path 101 becomes 11110101. you march forward through the bit vector and stop after the first 0. < 1502071676 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :the downside is that now your paths must _always_ start with a 0. you could fenangle it to work out an extra root node from a path, but uh.. yeah. < 1502071802 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :@wn fenangle < 1502071802 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :No match for "fenangle". < 1502071813 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :@wn finagle < 1502071814 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :*** "finagle" wn "WordNet (r) 3.0 (2006)" < 1502071814 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :finagle < 1502071814 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : v 1: achieve something by means of trickery or devious methods < 1502071814 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : [syn: {wangle}, {finagle}, {manage}] < 1502071822 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :huh, til. < 1502071833 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :never even knew it was.. really a word. < 1502071888 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :it doesn't seem tricky or devious if you just number all the nodes in level order starting from 00000001 < 1502071931 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :right. so, with that numbering, give me the path to that node. < 1502071956 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :then 101$ is 00001101 < 1502072019 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :because the real idea here is storing sparse trees, where you give me a node and I assume that every node along the path is a valid one. < 1502072074 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :so when I say "well does node X exist?", all I have to do is run over all the stored paths and check whether a partial match exists. < 1502072237 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :well, storing paths in trees is a generally poor way to store trees < 1502072271 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :what alternative would you give me? I just need to store the structure of the tree and query whether a given node exists. < 1502072384 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I might offer a parenthetical (even a balanced one) < 1502072400 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :mm. sure. that's a good way to store static trees. < 1502072412 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :hell, I have an encoding that saves a bit. < 1502072426 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :but dynamic trees. < 1502072566 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :most trees look static to me; they sway a bit sometimes < 1502072572 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :lmao. < 1502072609 0 :btiffin!~chatzilla@CPE0c473de9ff81-CM0c473de9ff80.cpe.net.cable.rogers.com JOIN :#esoteric < 1502072619 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :are you one of those people who graft branches, or turn them sideways? < 1502072670 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I would really like to not rewrite a given bit string representing a tree every time I need to insert a node. < 1502072674 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :actually, I'm not sure I've seen a paper that implements tree rotations < 1502072693 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :they only tend to cover indels, and maybe split/merge < 1502072698 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :yeah. < 1502072709 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I guess rotations reduce to split/merge < 1502072721 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :pretty much any operations imply rewriting the whole bit string. < 1502072754 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I think navarro had a paper that demonstrated logarithmic indels, splits and merges < 1502072764 0 :augur!~augur@noisebridge130.static.monkeybrains.net QUIT :Remote host closed the connection < 1502072783 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I'd rather take my chances with early matches and additive updates. the benefit to my method is that no matter how the paths arrive, the tree is final. < 1502072804 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :meaning I could send over the paths 000, 010, 110, 101 in any order and the tree would still be the same. < 1502072910 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :so I guess... I'm willing to pay the extra storage. < 1502072927 0 :contrapumpkin!~copumpkin@haskell/developer/copumpkin QUIT :Quit: My MacBook Pro has gone to sleep. ZZZzzz… < 1502072981 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :well, “demonstrates” might have been the wrong word, as this data structure has probably never been actually implemented < 1502072987 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :https://arxiv.org/abs/0905.0768 < 1502073007 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :oh yeah, I saw this. < 1502073323 0 :augur!~augur@noisebridge130.static.monkeybrains.net JOIN :#esoteric < 1502073360 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I don't think any of these bit strings are meant to be stored as bit strings < 1502073387 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :how so? < 1502073432 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :they are stored as trees, with nodes near the edge compressed into short strings to reduce size < 1502073458 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :mm. I'd store them as bit strings. efficient traversal, but inefficient updates. :P < 1502073486 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :hell, efficient storage too. < 1502073503 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :as long as you compress groups of about (log n)^k nodes at a time, the remaining n/(log n)^k pointers for the tree no longer prevent you from having the word “succinct“ in your paper title < 1502073562 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :so it's asymptotically worthwhile to interpret trees as bitstrings then store them in trees of bitstrings < 1502073599 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :perhaps xzibit would have been a good string algorithms researcher < 1502073644 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is there a word for the relationship expressed by that meme that's more precise than just "recursion"? < 1502073673 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(for reference, the "reference implementation" of that meme is "I put a car in your car so you can drive while you drive") < 1502073739 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I'm not sure, but such a word could also describe the work that someone once did benchmarking nested self-interpreters < 1502073784 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :oh, the eigenratio website still exists < 1502073930 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I've been thinking about nested self-interpreters quite a bit recently < 1502073950 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :trying to work out what sort of language would naturally have an eigenratio of 1 for most obvious ways of writing a self-interpreter < 1502073965 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also continuations < 1502074341 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :if you take a recursive unit cell grid in conway's life and run it with hashlife you should technically get an eigenratio of 1 < 1502074406 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I'd test this, but nesting a unit cell sounds like something I'd need to generate with a script and I don't care enough < 1502074527 0 :augur!~augur@noisebridge130.static.monkeybrains.net QUIT :Remote host closed the connection < 1502074843 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why would you need to nest it with a script? < 1502074888 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If you have some way to describe macrocells, you should just be able to do a simple substitution or something for the next level. < 1502074925 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :well, I would do such a substitution with a script < 1502074939 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 PRIVMSG #esoteric :gn < 1502074941 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, OK. < 1502074941 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I'm not sure if macrocell identifiers are required to be increasing < 1502074944 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 QUIT :Remote host closed the connection < 1502074948 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :that would make it more annoying < 1502074962 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :Jafet: storing trees, even partial trees, via pointers is not succint, afaict. < 1502074965 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Required by what? < 1502075030 0 :augur!~augur@noisebridge130.static.monkeybrains.net JOIN :#esoteric < 1502075079 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :apparently the nodes are numbered implicitly, so I'd have to change all the numbers when combining macrocell files < 1502075109 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is there a standard format for describing hashlife states? < 1502075140 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :yes, I think that format is called macrocell < 1502075163 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :well, not if you also want the cached results < 1502075338 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Jafet: ah right, hashlife is a good example here < 1502075355 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :it seems that nobody wants the cached results, though, not even golly, which clears the cache every GC cycle (even for results that didn't get GC'd!) < 1502075460 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :ais523: now if you had a simple functional language that, unlike a really overrated CA from 1970, could express the notion of a memoizing implementation of itself < 1502075489 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's pretty easy if you're OK with programs like if (false) while (true); not terminating < 1502075496 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but that's a pretty big restriction < 1502075715 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :so they found the unit cell and hashlife but failed to see that the resulting eigenratio is 1 < 1502075749 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :But the main point as far as this blog goes is that "Life" has a self-interpreter, and it's eigenratio is exactly 5760! — http://eigenratios.blogspot.de/2007/09/self-interpreter-for-conways-game-of.html < 1502075869 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a self-interpreter that works from finitely many starting cells would be rather more impressive :-) < 1502075884 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also should be possible, and might even be possible with the same ratio < 1502075964 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :well, you only need to invent a fast enough breeder that lays more unit cells < 1502075979 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :it would probably have a larger period that 5760 though < 1502076138 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if it fits within 11520 it would be fine < 1502076167 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the speed of light might be the absolute speed limit in Life, but if starting from a finitely large pattern, things can't escape the pattern boundary faster than c/2 in the long term < 1502076375 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Can you have a non-empty background for a finite pattern? < 1502076400 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Some sort of infinite pattern that lets you communicate information more quickly. < 1502076421 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess you would want all your patterns to preserve it. < 1502076629 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :well, a breeder for unit cells would likely have a six-digit period < 1502076743 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :(or more than six, but the unit cell seems to be made of standard parts so a fast glider synthesis shouldn't be too hard) < 1502076823 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :imode: a succinct data structure is just one that has less than O(n) overhead < 1502076880 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :not O(n), o(n). < 1502076924 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :this generously includes trees with O(n/(log n)^(1+ε)) pointers of O(log n) bits each < 1502076933 0 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :again, that is not the lower bound. < 1502076954 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ꙮ(n) < 1502077002 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: in general, yes, but I'm thinking about the specific case of an only-dead-cells background < 1502077076 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :golly supports a toroidal grid, which could be expanded to support a periodic background < 1502077148 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Presumably a periodic background is reasonably easy to implement in hashlife -- you just need to change the way you grow the grid. < 1502077180 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :yes, though having to pad it to powers of 2 would be annoying < 1502077673 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :ꙮ̃(n)? < 1502078324 0 :PattuX!uid129971@gateway/web/irccloud.com/x-lemnwisoncjzhqwf QUIT :Quit: Connection closed for inactivity < 1502078496 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't think multiocular O is a common piece of computational order notation < 1502078678 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :creationists use it to denote information lower bounds — the eyes signify irreducible complexity < 1502078704 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Nor is it a common character in Cyrillic manuscripts. < 1502078727 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Creationists? Is that people who use ꙮ_CREAT? < 1502078830 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :ꙮ̃ is used when a log gets in the eye, or perhaps a 2-by-4 < 1502082026 0 :btiffin!~chatzilla@CPE0c473de9ff81-CM0c473de9ff80.cpe.net.cable.rogers.com QUIT :Remote host closed the connection < 1502082837 0 :olsner_!?@? NICK :olsner < 1502082903 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Apparently some Java-based HTTP client interpreted "gopher://zzo38computer.org" as a relative URI, even though clearly by its syntax it isn't. < 1502082907 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :golly supports one perodic background, but that's only for b0s8 rules < 1502082933 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What's b0s8? < 1502082938 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :and where the background switches from on to off every generation < 1502082944 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :the parity hack doesn't really count < 1502082965 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :yeah, that's just an edge case < 1502082969 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :http://golly.sourceforge.net/Help/Algorithms/QuickLife.html < 1502082982 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :I think that explains it better than I could here < 1502083604 0 :xkapastel!uid17782@gateway/web/irccloud.com/x-mmdllarxexryqthk JOIN :#esoteric < 1502083905 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :What does "eigenratio" mean here? < 1502083981 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, b,s means born,survive < 1502084076 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :oh, :/ thought that page said that < 1502084437 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It does. < 1502084608 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: "zzo38computer.org" is technically a relative domain name; the absolute version is "zzo38computer.org." < 1502084618 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, for some reason it became standard to write URLs without the trailing dot < 1502084675 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :ais523: OK, but is still not a relative URI < 1502084684 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you mean it interpreted it as ./gopher:/zzo38computer.org? < 1502084734 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Yes, that is what it did, it look like < 1502084925 0 :augur!~augur@noisebridge130.static.monkeybrains.net QUIT :Remote host closed the connection < 1502085054 0 :doesthiswork!~Adium@207.55.82.87 PRIVMSG #esoteric :huh, so it did < 1502085224 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If I get a vanity TLD, can I put an MX record on it? < 1502085295 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there's no technical restriction against that < 1502085312 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there might or might not be a political one (e.g. ICANN only agreeing to sell you the TLD if you don't host anything on the TLD directly) < 1502085332 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :or, well, it's a known fact as to whether or not there's a political restriction, but not known by me < 1502085438 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :There was a URL shortener on a two-letter country TLD once. < 1502085441 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But they took it down. < 1502085473 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I bet lots of bad email regexps would reject a email address like that. < 1502085801 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :hmm https://serverfault.com/questions/154991/why-do-some-tld-have-an-mx-record-on-the-zone-root-e-g-ai < 1502086042 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Aha, Jafet++ < 1502086209 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I wonder if /bin/hostname should ship with a copy of this table < 1502086243 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :I guess that would only solve half the problem < 1502086359 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Which table? < 1502087281 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :shachaf: a table of TLDs with strange DNS records < 1502087340 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :that would be hard to update < 1502087435 0 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :seems that ai. no longer has an MX record, though it still has A, NS, and a conspicious lack of SOA < 1502087439 0 :erkin!~erkin@unaffiliated/erkin JOIN :#esoteric < 1502088248 0 :erkin!~erkin@unaffiliated/erkin QUIT :Quit: Ouch! Got SIGABRT, dying... < 1502088308 0 :newsham!~chat@udp217044uds.hawaiiantel.net QUIT :Ping timeout: 260 seconds < 1502088598 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Jafet: It looks like it has an MX record to me? < 1502088686 0 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1502088707 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is .home a generic TLD? It would make a good email address for inquiries regarding distributed computing projects. < 1502089218 0 :erkin!~erkin@unaffiliated/erkin JOIN :#esoteric < 1502089429 0 :hakatashi!~hakatashi@104.131.49.125 JOIN :#esoteric < 1502090073 0 :newsham!~chat@udp217044uds.hawaiiantel.net JOIN :#esoteric < 1502090247 0 :ais523!~ais523@unaffiliated/ais523 QUIT :Ping timeout: 260 seconds < 1502091293 0 :doesthiswork!~Adium@207.55.82.87 QUIT :Quit: Leaving. < 1502092159 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1502092750 0 :ybden!ybden@unaffiliated/ybden QUIT :Ping timeout: 240 seconds < 1502092905 0 :ybden!ybden@unaffiliated/ybden JOIN :#esoteric < 1502093577 0 :erkin!~erkin@unaffiliated/erkin QUIT :Read error: Connection reset by peer < 1502093609 0 :erkin!~erkin@unaffiliated/erkin JOIN :#esoteric < 1502094093 0 :deltab!~deltab@ds6266.dedicated.turbodns.co.uk PRIVMSG #esoteric :no (but homes and house are) < 1502094103 0 :deltab!~deltab@ds6266.dedicated.turbodns.co.uk PRIVMSG #esoteric :Wikipedia says "BT hubs use the top-level pseudo-domain home for local DNS resolution of routers, modems and gateways." < 1502094168 0 :deltab!~deltab@ds6266.dedicated.turbodns.co.uk PRIVMSG #esoteric :https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains < 1502094368 0 :hppavilion[1]!~dosgmowdo@93-231-58-66.gci.net QUIT :Ping timeout: 240 seconds < 1502095316 0 :tuu!~tuu@ip092042139004.rev.nessus.at JOIN :#esoteric < 1502096381 0 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1502099098 0 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 276 seconds < 1502100296 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Later < 1502100314 0 :\oren\!~oren@ec2-52-2-213-98.compute-1.amazonaws.com PRIVMSG #esoteric :look at this shit http://imgur.com/k86avnF < 1502100325 0 :\oren\!~oren@ec2-52-2-213-98.compute-1.amazonaws.com PRIVMSG #esoteric :How is this allowed? < 1502100478 0 :\oren\!~oren@ec2-52-2-213-98.compute-1.amazonaws.com PRIVMSG #esoteric :I think an instersection between 6 or more streets should be required to be a roundabout < 1502101507 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 JOIN :#esoteric < 1502101510 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :rello. < 1502101522 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :esolangs.orgc is down. < 1502101581 0 :xkapastel!uid17782@gateway/web/irccloud.com/x-mmdllarxexryqthk QUIT :Quit: Connection closed for inactivity < 1502105159 0 :fizzie!?@? PRIVMSG #esoteric :I can't count the number of times that has been said already. < 1502105169 0 :fizzie!?@? PRIVMSG #esoteric :I do have alerting on it as well. < 1502105232 0 :fizzie!?@? PRIVMSG #esoteric :Anyway, will set up the backup thing properly once I get home from the airport and unpack a little. < 1502105641 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net JOIN :#esoteric < 1502105741 0 :PattuX!uid129971@gateway/web/irccloud.com/x-siorzyghrimoqvzz JOIN :#esoteric < 1502106496 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric ::D < 1502106504 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :well.. I'm not pressuring you. < 1502106506 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :just informing you < 1502106522 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :it's really the least important site in my life. < 1502106728 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :the most important is int-e's cheap server :D < 1502106733 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :because it hosts the online shell. < 1502107407 0 :zseri!5e86d368@gateway/web/freenode/ip.94.134.211.104 JOIN :#esoteric < 1502107877 0 :jaboja!~jaboja@jaboja.pl JOIN :#esoteric < 1502107955 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net PRIVMSG #esoteric :fungot: can you be HackEgo? < 1502107955 0 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :boily: you you can start ' em in the paper < 1502107971 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net PRIVMSG #esoteric :ACTION starts HackEgo in the paper < 1502108875 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net QUIT :Quit: DECLARED CHICKEN < 1502110184 0 :zseri!5e86d368@gateway/web/freenode/ip.94.134.211.104 QUIT :Ping timeout: 260 seconds < 1502110487 0 :zseri!5e86d368@gateway/web/freenode/ip.94.134.211.104 JOIN :#esoteric < 1502110945 0 :heroux!sandroco@gateway/shell/insomnia247/x-xgkgcclqowhibblq QUIT :Ping timeout: 246 seconds < 1502110955 0 :heroux!sandroco@gateway/shell/insomnia247/x-ipycglhyqcgkhsqr JOIN :#esoteric < 1502111413 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :- + + + ] + > [ [ + > < > ] - > [ - ] ] [ - < - + + ] - < < - > > + < - > [ < ] + > - + ] < ] < + - < - - [ < ] > < 1502112464 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :stupid evolver produces stupid programs < 1502112479 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :hm. < 1502112493 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :has anybody ever done evolving html/css < 1502112496 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 PRIVMSG #esoteric :to fit a specific design < 1502113082 0 :Labeo!~Mutter@net-93-67-3-139.cust.vodafonedsl.it JOIN :#esoteric < 1502113340 0 :Labeo!~Mutter@net-93-67-3-139.cust.vodafonedsl.it QUIT :Quit: Mutter: www.mutterirc.com < 1502113471 0 :Labeo!~Mutter@net-93-67-3-139.cust.vodafonedsl.it JOIN :#esoteric < 1502113661 0 :LKoen!~LKoen@2a01:e35:2eed:a430:9959:f172:8004:47c5 JOIN :#esoteric < 1502113711 0 :Labeo!~Mutter@net-93-67-3-139.cust.vodafonedsl.it QUIT :Client Quit < 1502114430 0 :doesthiswork!~Adium@207.55.82.87 JOIN :#esoteric < 1502114498 0 :Labeo!~Mutter@net-93-67-3-139.cust.vodafonedsl.it JOIN :#esoteric < 1502114594 0 :mroman!a055e8dd@gateway/web/freenode/ip.160.85.232.221 QUIT :Ping timeout: 260 seconds < 1502114815 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1502115234 0 :Labeo!~Mutter@net-93-67-3-139.cust.vodafonedsl.it QUIT :Quit: Mutter: www.mutterirc.com < 1502115371 0 :erkin!~erkin@unaffiliated/erkin QUIT :Ping timeout: 255 seconds < 1502115774 0 :atslash!~atslash@static.231.107.9.5.clients.your-server.de JOIN :#esoteric < 1502116032 0 :erkin!~erkin@unaffiliated/erkin JOIN :#esoteric < 1502116077 0 :jaboja!~jaboja@jaboja.pl QUIT :Ping timeout: 260 seconds < 1502116327 0 :Mayoi!~erkin@unaffiliated/erkin JOIN :#esoteric < 1502116334 0 :erkin!~erkin@unaffiliated/erkin QUIT :Disconnected by services < 1502116662 0 :zseri!5e86d368@gateway/web/freenode/ip.94.134.211.104 QUIT :Quit: Page closed < 1502116780 0 :ais523!~ais523@unaffiliated/ais523 QUIT :Remote host closed the connection < 1502116850 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1502116929 0 :`^_^v!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1502117307 0 :LKoen!~LKoen@2a01:e35:2eed:a430:9959:f172:8004:47c5 QUIT :Remote host closed the connection < 1502117539 0 :tuu!~tuu@ip092042139004.rev.nessus.at QUIT :Remote host closed the connection < 1502117981 0 :jaboja!~jaboja@jaboja.pl JOIN :#esoteric < 1502118206 0 :doesthiswork!~Adium@207.55.82.87 QUIT :Quit: Leaving. < 1502118325 0 :__kerbal__!683238fe@gateway/web/freenode/ip.104.50.56.254 JOIN :#esoteric < 1502118345 0 :__kerbal__!683238fe@gateway/web/freenode/ip.104.50.56.254 PRIVMSG #esoteric :Hi < 1502118394 0 :__kerbal__!683238fe@gateway/web/freenode/ip.104.50.56.254 PRIVMSG #esoteric :Does anyone know exactly what is wrong with the wiki? < 1502118445 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :no, we only heard that question like a dozen times the last hours < 1502118700 0 :__kerbal__!683238fe@gateway/web/freenode/ip.104.50.56.254 PRIVMSG #esoteric :Probably CaC's fault again < 1502118982 0 :ATMunn!~ATMunn@cpe-107-11-5-29.columbus.res.rr.com JOIN :#esoteric < 1502118982 0 :ATMunn!~ATMunn@cpe-107-11-5-29.columbus.res.rr.com QUIT :Changing host < 1502118982 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 JOIN :#esoteric < 1502119090 0 :jaboja!~jaboja@jaboja.pl QUIT :Ping timeout: 240 seconds < 1502119271 0 :__kerbal__!683238fe@gateway/web/freenode/ip.104.50.56.254 PRIVMSG #esoteric :https://www.youtube.com/watch?v=HuCJ8s_xMnI < 1502119280 0 :__kerbal__!683238fe@gateway/web/freenode/ip.104.50.56.254 PRIVMSG #esoteric :One of the weirdest videos I've seen in a while < 1502119783 0 :Mayoi!~erkin@unaffiliated/erkin QUIT :Quit: Ouch! Got SIGABRT, dying... < 1502120532 0 :Bowserinator!~Bowser@unaffiliated/bowserinator QUIT :Excess Flood < 1502120542 0 :Bowserinator!~Bowser@bowserinator.tk JOIN :#esoteric < 1502120565 0 :Bowserinator!?@? NICK :Guest82305 < 1502120622 0 :augur!~augur@162.245.20.162 JOIN :#esoteric < 1502120637 0 :__kerbal__!683238fe@gateway/web/freenode/ip.104.50.56.254 QUIT :Quit: Page closed < 1502120879 0 :augur!~augur@162.245.20.162 QUIT :Ping timeout: 255 seconds < 1502120885 0 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Heh, division is weird. You could consider multiplication its "opposite", but considering modulo its opposite also makes sense. :P < 1502121047 0 :contrapumpkin!~copumpkin@haskell/developer/copumpkin JOIN :#esoteric < 1502121476 0 :Guest82305!?@? NICK :Bowserinator < 1502121477 0 :Bowserinator!~Bowser@bowserinator.tk QUIT :Changing host < 1502121477 0 :Bowserinator!~Bowser@unaffiliated/bowserinator JOIN :#esoteric < 1502121525 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 PRIVMSG #esoteric :so uh, can someone exlpain funge-98's stack stack to me? im having trouble understanding the commands it uses < 1502121694 0 :ais523!~ais523@unaffiliated/ais523 QUIT :Remote host closed the connection < 1502121764 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1502122998 0 :LKoen!~LKoen@vbo91-1-82-238-218-67.fbx.proxad.net JOIN :#esoteric < 1502124380 0 :Lord_of_Life!Elite12246@gateway/shell/elitebnc/x-nttsizgisacalxvp QUIT :Remote host closed the connection < 1502125175 0 :LKoen!~LKoen@vbo91-1-82-238-218-67.fbx.proxad.net QUIT :Remote host closed the connection < 1502126105 0 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Concept: like the "break n;" idea, but with returning values. "return<2> x;", for example, would return x and force the function that called it to immediately return x too. < 1502126227 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :that would break encapsulation a lot < 1502126244 0 :Lord_of_Life!Elite12246@gateway/shell/elitebnc/x-lqkdhsknluphgqad JOIN :#esoteric < 1502126251 0 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :exactly. < 1502126277 0 :LKoen!~LKoen@2a01:e35:2eed:a430:d4f:876d:1ef0:d378 JOIN :#esoteric < 1502126524 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch JOIN :#esoteric < 1502126983 0 :LKoen!~LKoen@2a01:e35:2eed:a430:d4f:876d:1ef0:d378 QUIT :Remote host closed the connection < 1502127480 0 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1502127492 0 :LKoen!~LKoen@vbo91-1-82-238-218-67.fbx.proxad.net JOIN :#esoteric < 1502127571 0 :erkin!~erkin@unaffiliated/erkin JOIN :#esoteric < 1502127692 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch QUIT :Read error: Connection reset by peer < 1502127711 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 JOIN :#esoteric < 1502127867 0 :augur!~augur@noisebridge130.static.monkeybrains.net JOIN :#esoteric < 1502127955 0 :augur!~augur@noisebridge130.static.monkeybrains.net QUIT :Remote host closed the connection < 1502128033 0 :augur!~augur@noisebridge130.static.monkeybrains.net JOIN :#esoteric < 1502128724 0 :zseri!5e86d368@gateway/web/freenode/ip.94.134.211.104 JOIN :#esoteric < 1502128933 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 QUIT :Ping timeout: 276 seconds < 1502130031 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 JOIN :#esoteric < 1502130328 0 :LKoen!~LKoen@vbo91-1-82-238-218-67.fbx.proxad.net QUIT :Remote host closed the connection < 1502131119 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 QUIT :Ping timeout: 255 seconds < 1502131553 0 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1502131701 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch JOIN :#esoteric < 1502132593 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :rdococ: that operation exists in INTERCAL < 1502132602 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in fact, it's the only way to do flow control in INTERCAL-72 < 1502133094 0 :erkin!~erkin@unaffiliated/erkin QUIT :Quit: Ouch! Got SIGABRT, dying... < 1502133218 0 :ais523!~ais523@unaffiliated/ais523 QUIT :Ping timeout: 240 seconds < 1502134508 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch QUIT :Ping timeout: 240 seconds < 1502134842 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch JOIN :#esoteric < 1502135321 0 :LKoen!~LKoen@2a01:e35:2eed:a430:7c0e:869e:a1a:1e57 JOIN :#esoteric < 1502136069 0 :LKoen!~LKoen@2a01:e35:2eed:a430:7c0e:869e:a1a:1e57 QUIT :Remote host closed the connection < 1502136089 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 JOIN :#esoteric < 1502136124 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :ais523: I don't think that's the same. Intercal has multi-level return, that is, it can pop multiple entries from the return stack and return to the last one popped. < 1502136165 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :how is this different? < 1502136167 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :You could actually emulate that in GW-BASIC, which has a form of the RETURN statement that pops the return stack but jumps to a constant line in the statement. < 1502136184 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :myname: I think the original question was a multi-level break. As in, from while or for or do-while loops < 1502136215 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :it was a multi-level return like the existing multi-level break < 1502136234 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :oh, that was the question? < 1502136239 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :sorry then < 1502136242 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :I didn't follow < 1502136465 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch QUIT :Ping timeout: 248 seconds < 1502136510 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 JOIN :#esoteric < 1502136595 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1502136875 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Do you know when to expect fixing esolang wiki? < 1502136937 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :wob_jonas: Yes, I have used that before, using RETURN to jump to a different line number (and have used it once to RETURN to the next line which is a RETURN to a constant line number, even) < 1502137052 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 QUIT :Ping timeout: 255 seconds < 1502137175 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch JOIN :#esoteric < 1502137180 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :PHP has multi-level break by number, while JavaScript has multi-level break by name. (Although I happen to think goto would be a better way of doing this anyways; you don't need much more than the single-level break/continue, as well as goto) < 1502137260 0 :Cale!~cale@2607:fea8:98df:fd6a:f408:fd26:a671:ea81 PRIVMSG #esoteric :zzo38: Just throw in callCC and call it a day < 1502137300 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :callIAD < 1502137354 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 PRIVMSG #esoteric ::( why are there no good befunge-98 interpreters for windows < 1502137377 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :because developers don't use windows? < 1502137421 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 PRIVMSG #esoteric :yeah i guess < 1502137431 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 PRIVMSG #esoteric :there's not even any good online ones :( < 1502137444 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :there are < 1502137461 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 PRIVMSG #esoteric :at least, i havent found any < 1502137471 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :i don't know which one anymore, though < 1502137478 0 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :i used to have one modified < 1502137510 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :actually there are way more developers who use windows than developers who use befunge < 1502137694 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :One of the features of NNIX is that the file number has to be a constant and it does not support variable file numbers. Do you know why? < 1502137758 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :zzo38: because it's just a toy OS interface that's enough for the examples in the book, not a real complete operating system? < 1502137777 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :I think it should be fixed < 1502137813 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :zzo38: it also doesn't support modifying an already written file without erasing its data first, that's much more annying IMO < 1502137845 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :(and that's despite that the book claims it supports everything the file interface of C89 can do except remove files) < 1502137885 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :but in any case, the OS interface is extensible, an OS could add new system calls, it doesn't intend to be complete and closed like the CPU architecture itself < 1502137949 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Yes, that is another think to fix. There are a few other things too, such as adding file control interface, and perhaps a convenience function for reading/writing one value to/from $255. < 1502137962 0 :ATMunn!~ATMunn@unaffiliated/atmunn26 PRIVMSG #esoteric :myname: also, at some point ill get linux, but for now im stuck on windows so i have no choice but to use a windows or browser based one :/ < 1502137968 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :what do you mean "file control interface"? < 1502137982 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Similar to fcntl() < 1502138006 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :(Although you don't need all of the functions of fcntl) < 1502138078 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Also similar to ioctl() for some devices < 1502138157 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :again, he only needs a little of OS interface for his examples. he did say he doesn't intend to create a full operating system. < 1502138161 0 :Cale!~cale@2607:fea8:98df:fd6a:f408:fd26:a671:ea81 PRIVMSG #esoteric :wob_jonas: hah, I actually kind of like that thing about not allowing modification of files after the fact. < 1502138171 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :if you want a full OS, just imagine a unix-like running on MMIX < 1502138197 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Cale: you can modify files, it's just you can only do so if you do the equivalent of O_TRUNC < 1502138205 0 :Cale!~cale@2607:fea8:98df:fd6a:f408:fd26:a671:ea81 PRIVMSG #esoteric :aw < 1502138209 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Actually fcntl() probably isn't needed, but a few of the controls of ioctl() may be, mainly the terminal controls. < 1502138388 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :One possible way that could be done is to add additional command-line arguments to the simulator to load .so files assigned to different X values in the TRAP instructions, where 0 means to use the built-in stuff. < 1502138416 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :That way you could add one extension for connecting to the X server, one extension for music, and so on < 1502138966 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :I'm trying to rig up some method to photograph a book, for which I need to hold both the book and the camera in place. But I am failing miserably, because I'm really bad at hardware stuff, and don't have many things to use at home. < 1502139065 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :(and it shouldn't obstruct lighting, which is basically impossible since I want to get the camera close to the book) < 1502139087 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch QUIT :Ping timeout: 240 seconds < 1502139132 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 JOIN :#esoteric < 1502139948 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 QUIT :Ping timeout: 240 seconds < 1502140008 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch JOIN :#esoteric < 1502140720 0 :Cale!~cale@2607:fea8:98df:fd6a:f408:fd26:a671:ea81 PRIVMSG #esoteric :wob_jonas: There are scanners which can feed a stack of pages through, if you don't mind destroying the book < 1502140833 0 :Cale!~cale@2607:fea8:98df:fd6a:f408:fd26:a671:ea81 PRIVMSG #esoteric :There was one point when I was in highschool where I helped a friend of mine make a digital version of his mother's cookbook, and we cut the ring binding off a copy and fed it through a scanner, and then OCR'ed it... and OCR was terrible back then, so I had a lot of hand-editing to do. :P < 1502140915 0 :Cale!~cale@2607:fea8:98df:fd6a:f408:fd26:a671:ea81 PRIVMSG #esoteric :Still probably amounted to less work than typing out the whole book though < 1502141071 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Cale: I don't want to destroy the book. A flatbed scanner is a good idea in general, and I did think of it, < 1502141079 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :and I could flip pages manually < 1502141137 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :but the problem is that the scanner I have access to has a maximum scan area of only slightly bigger than A4, and this book is bigger than that. The page content might just barely fit in that area, but I couldn't position it right. < 1502141141 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :I'd need a larger scanner. < 1502141188 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Although destroying a book isn't such a bad idea actually. I didn't think of that. I can't destroy this library copy, but I might be able to locate a new or used copy of this that I can destroy. < 1502141212 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :That would make this somewhat easier, because then I only have to position the individual pages, but it's still not easy < 1502141221 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Let me check online for the price < 1502141286 0 :xkapastel!uid17782@gateway/web/irccloud.com/x-duwwzktpicgenuaz JOIN :#esoteric < 1502141315 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :the easiest way to mount a normal digital camera is by the mount on the bottom, usually < 1502141341 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :I think it's a 1/4-20 thread, you could bolt it to something solid above the book < 1502141417 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Hmm, it's not expensive. I could buy and destroy a copy. < 1502141426 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :I'd still have to figure out how exactly to photograph or scan it though. < 1502141734 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Is there somewhere I can just borrow a flatbed scanner larger than A4? < 1502142032 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :what if you scanned the pages in two parts sideways and stitched them back together < 1502142044 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :print shops would probably have a big scanner < 1502142049 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :not sure what else would < 1502142053 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Hoolootwo: would be hard to stitch them accurately < 1502142061 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :and to position the pages accurately that way < 1502142064 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :is there not software for that? :/ < 1502142075 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Yeah, but still < 1502142076 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :I guess automatedly doing it is probably hard < 1502142089 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :It would be much better if scanned together < 1502142098 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :yeah, definitely < 1502142121 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :The image quality matters here. If it didn't, I'd just shoot the pictures with the camera handheld and be done with it. < 1502142157 0 :Hoolootwo!~Hoolootwo@hooloovoo.blue PRIVMSG #esoteric :with scanning, I think you have plenty of resolution < 1502142177 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Exactly, that's why a scanner would be better < 1502142326 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Apparently this print shop has A3 sized scanners I can use (for a fee obviously) < 1502142331 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :in 600 DPI < 1502142333 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :that could work < 1502142361 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :It's not even expensive. < 1502142552 0 :sleffy!~sleffy@c-24-7-67-0.hsd1.ca.comcast.net JOIN :#esoteric < 1502142566 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Now I made up a way to make operating system interface extensions into the MMIX simulation. It is: http://sprunge.us/PAdY < 1502142789 0 :zzo38!~zzo38@24-207-56-48.eastlink.ca PRIVMSG #esoteric :Do you like this? < 1502142795 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :I think I'll order a copy of this book. < 1502142994 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Ordered. < 1502143032 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :I'll be able to get it in a few days. Then I can decide whether I want to scan it whole or cut up. < 1502143041 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Cut up would probably be more precise. < 1502143306 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 PRIVMSG #esoteric :Cale: thanks for the cut up idea < 1502143354 0 :wob_jonas!b03f1803@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.3 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1502143658 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch QUIT :Ping timeout: 240 seconds < 1502143689 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 JOIN :#esoteric < 1502143882 0 :LKoen!~LKoen@vbo91-1-82-238-218-67.fbx.proxad.net JOIN :#esoteric < 1502143962 0 :hppavilion[1]!~dosgmowdo@93-231-58-66.gci.net JOIN :#esoteric < 1502144243 0 :`^_^v!~nycs@gw.hq.meetup.com QUIT :Quit: Leaving < 1502144262 0 :`^_^v!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1502144450 0 :paul2520!~paul2520@paulkaefer.com JOIN :#esoteric < 1502144450 0 :paul2520!~paul2520@paulkaefer.com QUIT :Changing host < 1502144450 0 :paul2520!~paul2520@unaffiliated/paul2520 JOIN :#esoteric < 1502144503 0 :AnotherTest!~turingcom@2a02:1206:45b8:4a31:fe:7861:5ed:8fe6 QUIT :Ping timeout: 258 seconds < 1502144572 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch JOIN :#esoteric < 1502144828 0 :AnotherTest!~turingcom@71.189.202.62.dynamic.cgnat.res.cust.swisscom.ch QUIT :Ping timeout: 240 seconds < 1502145616 0 :btiffin!~chatzilla@CPE0c473de9ff81-CM0c473de9ff80.cpe.net.cable.rogers.com JOIN :#esoteric < 1502145743 0 :`^_^v!~nycs@gw.hq.meetup.com QUIT :Quit: This computer has gone to sleep < 1502145837 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Nite < 1502146267 0 :zseri!5e86d368@gateway/web/freenode/ip.94.134.211.104 QUIT :Quit: Page closed < 1502146604 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1502146760 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net JOIN :#esoteric < 1502147675 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net PRIVMSG #esoteric :`w -- Will HackEgo ever be again \\ S'enfargea-t-il dans un tranche de pain \\ I need my random wisdom \\ Peut-être est-il tombé dans les pommes? < 1502147695 0 :FreeFull!~freefull@defocus/sausage-lover PRIVMSG #esoteric :https://github.com/aaronduino/asciidots/ < 1502148114 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :helloily < 1502148201 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :boily bluepommel < 1502148263 0 :LKoen!~LKoen@vbo91-1-82-238-218-67.fbx.proxad.net QUIT :Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.” < 1502148295 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :fizzie: less fizzie, more fixxie twh < 1502148893 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net PRIVMSG #esoteric :QUINTHELLOPIA! < 1502148896 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net PRIVMSG #esoteric :helloochaf! < 1502148916 0 :boily!~alexandre@cable-192.222.245.222.electronicbox.net PRIVMSG #esoteric :bluepommel? < 1502148950 0 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 240 seconds < 1502149022 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oui < 1502150367 0 :augur!~augur@noisebridge130.static.monkeybrains.net QUIT :Ping timeout: 240 seconds