< 1573603296 943604 :ArthurStrong!~ArthurStr@slow.wreckage.volia.net QUIT :Quit: leaving < 1573603442 284382 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I wonder how many system calls Linux would have if you got rid of all the obsolete ones. < 1573603616 353808 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :my asm/unistd_64.h lists 332 total, the vast majority of them seem to be neither removed nor superseded, so I'm guessing about 300? < 1573603642 83583 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Mine has 436. < 1573603661 188104 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I suspect quite a few are superseded. < 1573603661 613618 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think there might be debates about what counts as obsolete < 1573603674 825411 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :sorting them alphabetically, I came across dup/dup2/dup3 < 1573603676 4339 :b_jonas!~x@catv-176-63-13-233.catv.broadband.hu PRIVMSG #esoteric :yeah, eg. is read obsolete because we have preadv? < 1573603680 436558 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which of those would you consider obsolete? < 1573603690 920419 :b_jonas!~x@catv-176-63-13-233.catv.broadband.hu PRIVMSG #esoteric :ais523: dup, dup2 are definitely obsolete, just use the fcntl functions < 1573603699 44250 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :dup3 clearly supersedes dup2. < 1573603705 993696 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :dup isn't superseded as far as I know. < 1573603722 384460 :b_jonas!~x@catv-176-63-13-233.catv.broadband.hu PRIVMSG #esoteric :dup3 too has an fcntl equivalent < 1573603725 650141 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :dup is entirely duplicated by fcntl < 1573603728 657594 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Of course the Linux ABI is much bigger than system calls. It include /proc and /sys, and ioctls, and so on. < 1573603733 985080 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and dup3 can be written in terms of dup2 + fcntl < 1573603756 891383 :b_jonas!~x@catv-176-63-13-233.catv.broadband.hu PRIVMSG #esoteric :hmm wait < 1573603758 681005 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :/proc and /sys and friends can only be accessed via system calls < 1573603766 272978 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they're more like special cases of system calls, than ABIs in their own right < 1573603768 929895 :b_jonas!~x@catv-176-63-13-233.catv.broadband.hu PRIVMSG #esoteric :fcntl doesn't do the dup2/dup3 explicit destination file descriptor number thing? < 1573603772 821093 :b_jonas!~x@catv-176-63-13-233.catv.broadband.hu PRIVMSG #esoteric :sorry < 1573603782 954425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: no < 1573603800 25658 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although you can do a dup+cloexec mix using a single fcntl instruction < 1573603804 568454 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1573603811 709705 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which doesn't have a dedicated system call of its own otherwise (dup3 can't do it) < 1573603836 966190 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this ABI is actually something of a mess, but I guess backwards compatibility (and to some extent usabliity from asm without wrappers) is important < 1573604009 824455 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If foo() is replaced with foo2() which has a flags argument, clearly foo is obsolete. < 1573604021 835730 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Similarly foo with fooat. < 1573604059 782781 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what if the flags are rarely used, and technically unnecessary? < 1573604114 297516 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It should've had the flags argument in the first place. < 1573604116 203116 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :dup3 is probably not entirely redundant to dup2 + fcntl (there are likely some race conditions relating to exec in one thread against dup in another), but it's only weird situations where you'd need it < 1573604139 915783 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and in practice it's more likely to be used as an optimisation to reduce system call overhead < 1573604161 268275 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You mean CLOEXEC? < 1573604182 205552 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :All the system calls that make fds are getting flags arguments to support CLOEXEC. < 1573604184 394088 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :dup3 only supports one flag ;-) < 1573604206 429156 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That seems like a good reason to call the nonflag version obsolete. < 1573604257 415833 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I would expect dup2(x,y) to be preferred over dup3(x,y,z) if you didn't want to set cloexec < 1573604318 764734 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :fwiw, this is probably a good argument for all system calls to have a flags argument, even if it's initially just always-0? < 1573604327 851838 :Frater_EST!adrianbibl@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573604358 702430 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, is the Linux system call ABI guaranteed to preserve registers, other than eax? I vaguely remember that it is < 1573604372 602197 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in which case dup2 has less register pressure, in addition to not needing to zero an additional register < 1573604388 10098 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It clobbers rcx and r11. < 1573604399 424273 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh right, everything clobbers r11 < 1573604411 559539 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why? < 1573604443 998151 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in practice, r11 very rarely /actually/ changes as the result of a call, but it's been considered useful to have a register that dynamic linkers and other similar things can use as a temporary if they need to inject glue code for some sort of call or another < 1573604461 109903 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :like, at any change of control, you have a register that's safe to clobber no matter what < 1573604474 135227 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and r11 is the generally agreed-on choice for that < 1573604482 182819 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(it helps if everyone uses the same register, for obvious reasons!) < 1573604506 178245 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess this is a SysV thing. < 1573604527 119960 :Frater_EST!~adrianbib@172.242.0.73 JOIN :#esoteric < 1573604540 448763 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it probably started from there, at least < 1573604563 248844 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think calling files in /proc a special case of the ABI of open()/read() is a big stretch. < 1573604593 363056 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :$ readlink /proc/self/exe < 1573604594 908891 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :/bin/readlink < 1573604599 158078 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if that isn't a special case, I don't know what is < 1573604608 441621 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, wrong one < 1573604638 842478 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I meant /proc/self/fd/0 and friends < 1573604658 436912 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh man, I forgot Linux had name_to_handle_at and open_by_handle_at. < 1573604700 36166 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(the point being that if a process has a deleted file open, readlink on that file returns the name it had before that name was deleted, but you can nonetheless read the file directly by fd) < 1573604720 179490 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean, /proc is obviously part of the ABI, but in a really bad way, and I don't think putting the blame on read is reasonable. < 1573604724 270443 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually that probably works on /proc/self/exe too if a deleted executable is running < 1573604744 709127 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :my point is that this is a special case relating to the combination of readlink and proc, you won't find anything like it elsewhere < 1573604758 864922 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and this is because proc is basically just a set of special case for system calls < 1573604896 898938 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm confused by the name_to_handle_at API. < 1573604928 128958 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, never mind, I didn't read far enough. < 1573605058 422810 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :whoa, Linux has process_vm_{read,write}v < 1573605126 390909 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's also finally getting pidfd, apparently. < 1573605178 59573 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :process_vm_{read,write}v look like a huge efficiency gain for debuggers, and probably have other uses as well < 1573605203 549386 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :reading a target process' memory in tiny chunks via ptrace would have huge system call overhead < 1573605234 144350 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Was it previously possible to read /proc/pid/mem? < 1573605251 566025 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I didn't think of that < 1573605430 560342 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Ooh, pidfd. < 1573605472 558681 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :There are so many foofd's in Linux; signalfd, eventfd, timerfd. < 1573605485 749841 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what's the intended use case of a pidfd? < 1573605499 567496 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :at a guess, some sort of protection against PID reuse? < 1573605505 222168 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Avoiding race conditions, I imagine. < 1573605532 566526 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Yes, sending a signal to a known process without worrying about it dying and being replaced by some other process is the one I know of. < 1573605543 182902 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Also waiting for a process to exit without being its parent, maybe? < 1573605561 224650 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(or its ptracer) < 1573605587 296951 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, you can also wait for a process to exit without being its parent /or/ its ptracer by ptracing its parent, but that's probably a bit silly < 1573605723 872431 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, the man page for ptrace has been updated since I last read it < 1573605746 882994 :hppavilion[6]!~omegasome@172.98.86.92 QUIT :Ping timeout: 240 seconds < 1573605779 762061 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there's a discussion of permissions, including the mention that ptrace permission checks are based on the ptracer's real UID/GID, not its effective UID/GID (which seems like a minor security risk in the case where the ptracer is trying to suspend its own permissions) < 1573605788 47204 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Here are some obsolete system calls: accept chown creat create_module dup2 epoll_create epoll_ctl_old epoll_wait_old eventfd fchown fork fstat getdents lchown link lstat mkdir mknod open pipe preadv pwritev readlink signalfd stat symlink vfork < 1573605824 748439 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :This article says there's also a proposal for a clone flag that can make a process that can only be waited on through its pidfd, the intention being that a library can create a helper process without confusing its host application's wait calls. < 1573605885 450567 :Sgeo_!~Sgeo@ool-18b982ad.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1573605894 977705 :ais523!~ais523@unaffiliated/ais523 QUIT :Remote host closed the connection < 1573605907 361457 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1573605919 75945 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :For a Go application I wrote recently (for personal use), I did a really ugly-looking snippet to use ambient capabilities, before learning that actually the standard Go library's syscall.SysProcAttr struct has an AmbientCaps field for using ambient capabilities. < 1573605996 860650 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The man page for wait4 says that waitpid and waitid are preferred. < 1573606013 533457 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But neither one of them gives you rusage, like wait4 does! < 1573606044 153282 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Except that's not true. < 1573606056 729196 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The system call gives you rusage, but the glibc wrapper just ignores it. < 1573606070 294396 :Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net JOIN :#esoteric < 1573606274 922134 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :inotify_init is another one. < 1573606390 894940 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think it would be helpful if there were some sort of model of OS-level capabilities, plus any similar constructs at below the OS level, in terms that users could easily understand < 1573606446 756787 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :When will Linux support mmap into a ptracee? < 1573606454 887547 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in particular, there seems to be some sort of hierarachy of cans that override can'ts that override cans that override can'ts… < 1573606466 924489 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Windows has supported this forever. < 1573606478 511800 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :like, file-permitted is the strongest sort of capability, it says that the file can do this, overriding everything else < 1573606487 776843 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Without mmap you can't even guarantee finding a syscall instruction to do anything else. < 1573606677 579833 :budonyc!~budonyc@c-24-62-204-147.hsd1.ma.comcast.net JOIN :#esoteric < 1573606679 437521 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, no, there are two levels above that < 1573606702 22946 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :being run as root or suid-root and not capability-aware lets you do anything and sort-of bypasses the whole capability thing < 1573606746 261109 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :or, ugh < 1573606752 76153 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :capability bounding set is really confusing in this model < 1573606801 645202 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :removing a capability from the bounding set absolutely prevents that capability from ever again being regained by file-inheritable; however, it does not prevent it being regained from file-permitted < 1573606924 160337 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Yeah, it's not super-obvious. < 1573606929 115254 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :AFAICT, capabilities is currently a mix between several different permissions models, with system calls to choose which ones you want, and/or to prevent your descendant processes using their own system calls to change back to a different one < 1573606944 558835 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :except that the kernel doesn't force you to pick a specific model but sort of lets you blend your way between them if you like < 1573606961 651570 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :There's that table in capabilities(7) on how the ambient, permitted, effective, inheritable and bounding sets are derived on execve. < 1573607010 905499 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :But even that wasn't the full story. < 1573607085 257934 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think a sane model would look something like "processes: permitted is always a subset of inheritable; files: only inheritable permissions exist" < 1573607182 958115 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, I think you need a new category entirely < 1573607225 481207 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think files should have two permission sets: one is equivalent to "inheritable" in the current model, the other causes the process executed from that file to gain a permission as permitted if it is both inheritable and effective in the calling process < 1573607238 898092 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Anyway, all I wanted was to have one capability-aware program execute a capability-dump helper process with CAP_DAC_READ_SEARCH, and I think I got that setup right: for the capability-aware executable file, set that bit in the file's effective and permitted sets; in the capability-aware program, first add the bit to the process's inheritable set, then raise it in the process's ambient set. < 1573607296 790617 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :files don't hav effective sets < 1573607308 585701 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :just the effective bit, which could be called the "capability-unaware" bit < 1573607364 161019 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, how does the no-new-privs bit interact with all this? < 1573607448 846803 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Right, that's what I meant. < 1573607475 732449 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Arguably, it's no surprise capabilities haven't really conquered the world yet. < 1573607541 68088 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if a capability-aware program A is trying to execute a capability-unaware program B with a particular capability set, AFAICT all it needs to do is to put the capability set into its own ambient set, with no changes to B needed < 1573607568 750927 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, it also needs to put the capability into its own inheritable set, but you might consider that a part of putting it into its own ambient set. < 1573607589 477939 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(If it wasn't there already, that is.) < 1573607597 300634 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(It won't be there already if it's coming from a file.) < 1573607598 695905 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, that's part of ambient < 1573607630 87365 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, what confuses me is that inheritable seems to be at all-0s for unprivileged processes < 1573607687 865599 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this gives it a /really/ niche use; its only purpose is for a privileged program to call unprivileged helper programs in such a way that they can call file-inheritable programs in a privileged way < 1573607779 597388 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I can't think of circumstances where that would be useful, and thus suspect that inheritable capabilites aren't currently used much < 1573607849 2322 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :That's what I think too. https://lwn.net/Articles/636533/ calls them "broken". (The proposal for ambient capabilities.) < 1573608034 36286 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think a bounding set on fP (in that article's notation) is useful, but oddly neither pI nor X actually bound it < 1573608038 932131 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't think anything can bound that < 1573608064 337210 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :other than NNP, obviously, which has to outrank /everything/ to be usable securely < 1573608893 983770 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1573609284 762118 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: did you see my last edit to TPIMI? < 1573609316 544632 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oerjan: yes, I'm not sure you're right though < 1573609344 87551 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :when I have the time and mental energy, I'll write an interpreter and figure it out that way < 1573609460 518076 :zzo38!~zzo38@209.52.88.123 JOIN :#esoteric < 1573609482 242727 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :oerjan: tempted to take your advice and add Mode to the wiki. < 1573609487 402726 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :How to run PHP5 on Raspberry Pi? < 1573609500 815070 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :zzo38: is there a package in the raspbian repos? < 1573609530 259212 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :sudo apt-get install apache2 php5 ? < 1573609545 670832 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you shouldn't need apache to run PHP? < 1573609558 90863 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :only if you want to use it for CGI scripts < 1573609576 657984 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess that's a common use, but my first thought was PHP as a standalone programming language rather than as part of a web server < 1573609578 581792 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: well it seems obvious to me that the length 1 block representation needs to be the same length as the basic production sequence < 1573609592 393802 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :I only want to run PHIRC, which is the IRC client I have. (My internet doesn't work, so I use this other computer instead, which has wireless internet.) < 1573609597 640219 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you shouldn't need apache, you can use anything else, however I'm under the assumption that- < 1573609599 702076 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :nevermind. < 1573609606 704256 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you should just be able to install php5 then. < 1573609648 160212 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :It says "package php5 has no installation candidate" < 1573609656 577331 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :what distro are you running on the pi. < 1573609686 24534 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: does it have to be PHP 5 specifically, or is a newer version OK? < 1573609716 450538 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :I think many things will break with PHP 7, which is what it currently has < 1573609769 497919 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :I suppose I can try to see if the program works, but it might not work < 1573609820 705813 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the easiest way is probably to get a package for an old version of PHP from the Debian archives, see http://snapshot.debian.org/ for details < 1573609854 138574 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :php5 should be a package in raspbian... < 1573609854 480207 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although, it might not work with modern dependencies < 1573609866 122818 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :php5 is really old though < 1573609882 824208 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's probably dropped out of the archives by now < 1573609888 41356 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :sure, but it's still a required package. < 1573609915 5199 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's possible that it has a minor version number in the archives < 1573609921 879816 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: anyway, i cut and pasted into vim and rotated lines, and it seemed to fit that way. < 1573609944 492853 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :zzo38: sudo apt-cache search php I guess. < 1573609949 200224 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you don't need the sudo iirc. < 1573609953 381737 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nor the "-cache" < 1573609967 219639 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :been a long time since I used debian. arch main. < 1573609989 714239 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think «apt show "php5*"» will be more useful < 1573610033 445879 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :I tried that; it says virtual < 1573610036 84462 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :huh, raspbian doesn't have a web-searchable package mirror. < 1573610038 665074 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :that's lame. < 1573610049 233901 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if they're all virtual it means that the package doesn't exist in the repositories any more < 1573610060 460167 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so you'll need to find an old version of the package, perhaps from an old version of the repositories < 1573610066 153338 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think the assumption is that nobody would use php5 any more < 1573610082 313929 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :python 1 isn't in the repositories either < 1573610097 769217 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :https://www.raspberryconnect.com/raspbian-packages/54-raspbian-php < 1573610107 383477 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :how old _is_ php5. < 1573610134 792741 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :oof, sec support in debian ended on new year's. < 1573610135 736561 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :Is there a program for Raspberry Pi to download Usenet messages to be read later on another computer? < 1573610148 178945 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :7.0 appears to be the oldest version available from there < 1573610149 917870 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :still in jesse, though.. < 1573610261 738391 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :7.0 was released in 2015; 5.6 was the most current version before that (6 was abandoned) < 1573610302 890532 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :why was 6 abandoned? < 1573610310 490686 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :5.6 became unsupported at the end of 2018 < 1573610311 475480 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :(feels like there's a joke there...) < 1573610365 296342 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apparently they started writing PHP 6 in 2008, and abandoned it in 2014 because it still wasn't finished by then < 1573610379 509129 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :perl6 and php6. < 1573610380 59960 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the main intended feature that they failed to implement for 6 was Unicode support < 1573610411 657847 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :perl 6 was finished though, it's just that it's sufficiently different from perl 5 that many people prefer the original (including me) < 1573610449 199609 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and perl 6 eventually got renamed to reduce confusion, I think < 1573610463 544283 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's raku now < 1573610487 272889 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION discovered the name change when he saw people editing that in his wikipedia watchlist < 1573610527 287259 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :The original's still being actively developed, as well. < 1573610565 560685 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :Yes, that can be a good idea, to call it something else, since it is something else. I think Inform7 should also be renamed because it is a different programming language from Inform < 1573611176 984091 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 240 seconds < 1573611545 210199 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :I am trying to compile SQLite and now there is a temperature icon in the corner of the screen < 1573611729 812026 :zzo38!~zzo38@209.52.88.123 QUIT :Read error: Connection reset by peer < 1573612004 342106 :kspalaiologos!~kspalaiol@176.221.122.71 QUIT :Ping timeout: 265 seconds < 1573612065 7007 :zzo38!~zzo38@209.52.88.123 JOIN :#esoteric < 1573612082 375541 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :Well, it works even with PHP7, so I don't need PHP5. (I was told it wouldn't work with PHP5; they were wrong.) < 1573612306 713280 :Frater_EST!~adrianbib@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573612310 562663 :ESol5!~a@unaffiliated/asol5 JOIN :#esoteric < 1573612426 528047 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :Typing "nice gcc" and omitting "-O2" prevented it from crashing. < 1573612977 818703 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :I also invented a new esolang. < 1573613132 230424 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :It is like a subset of PostScript, although having a different syntax, < 1573613156 313623 :Frater_EST!adrianbibl@172.242.0.73 JOIN :#esoteric < 1573613180 927741 :zzo38!~zzo38@209.52.88.123 PRIVMSG #esoteric :Perhaps later I will post on esolang wiki, but right now I won't, so that I do not have to occupy the TV set right now < 1573613182 255549 :zzo38!~zzo38@209.52.88.123 QUIT :Quit: zzo38 < 1573613230 471031 :budonyc!~budonyc@c-24-62-204-147.hsd1.ma.comcast.net QUIT :Quit: Leaving < 1573613781 647788 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1573614041 266295 :pikhq!uid394595@gateway/web/irccloud.com/x-putygvflmnyxxsta PRIVMSG #esoteric :I take it zzo38 is trying to use a Pi as a daily driver? < 1573614145 272098 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :more power to him, tbh. always wanted to try a pi as a driver, if only to find a laptop case to put it in. < 1573614177 692490 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :with the raspi zero w or whatever, it's attractive. surprised a phone hasn't been made from it yet. < 1573614198 109881 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :the gpi case is a step in the right direction, though: http://retroflag.com/GPi-CASE.html < 1573614796 958731 :pikhq!uid394595@gateway/web/irccloud.com/x-putygvflmnyxxsta PRIVMSG #esoteric :It is a bit limited in some ways, but I'm pretty sure none of those limitations are a surprise to anyone < 1573614812 35845 :pikhq!uid394595@gateway/web/irccloud.com/x-putygvflmnyxxsta PRIVMSG #esoteric :Especially with the cost < 1573614900 143727 :Frater_EST!adrianbibl@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573614916 874751 :Frater_EST!adrianbibl@172.242.0.73 JOIN :#esoteric < 1573614990 685560 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :tbh using it as a thin client to access your actual workstation would be a great idea. < 1573614997 968896 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :that's cute < 1573615021 527685 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :imode: what would be the point of making a phone out of a DIY board based on a years-old phone SoC? < 1573615027 200931 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's not even a particularly 'open' SoC < 1573615036 236238 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's just another broadcom whatever < 1573615110 921600 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :kmc: it's cheap, I can buy it in bulk, and there's less I have to do to fix it. this is of course assuming there is a supply chain ready to hand you a "phone case" for a pi zero w. < 1573615145 812620 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :if there's an alternative SBC out there that has the same kind of adoption I'm down, I just haven't encountered it. < 1573615275 930697 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's going to be less powerful than a 5 year old android phone and chunkier too < 1573615339 809858 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :ACTION shrugs. < 1573615357 884933 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :power and chunkiness don't really concern me that much. I use a T430 thinkpad as my daily driver. < 1573615372 940450 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :would like a phone that's built like a toughbook. < 1573615472 191204 :Frater_EST!adrianbibl@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573616045 645213 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 268 seconds < 1573616110 39500 :Frater_EST!adrianbibl@172.242.0.73 JOIN :#esoteric < 1573617229 654058 :ESol5!~a@unaffiliated/asol5 QUIT :Ping timeout: 268 seconds < 1573617497 953812 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Nite < 1573618259 269355 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1573620704 198902 :Frater_EST!adrianbibl@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573621926 959617 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: quit < 1573625808 372454 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 265 seconds < 1573628658 354676 :Frater_EST!adrianbibl@172.242.0.73 JOIN :#esoteric < 1573630376 799656 :Frater_EST!adrianbibl@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573630477 472743 :Frater_EST!adrianbibl@172.242.0.73 JOIN :#esoteric < 1573631547 159977 :Frater_EST!adrianbibl@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573631669 344720 :Frater_EST!adrianbibl@172.242.0.73 JOIN :#esoteric < 1573634207 303686 :b_jonas!~x@catv-176-63-13-233.catv.broadband.hu QUIT :Remote host closed the connection < 1573634716 560291 :Frater_EST!adrianbibl@172.242.0.73 PART :#esoteric < 1573636290 3681 :xkapastel!uid17782@gateway/web/irccloud.com/x-oslxvqntvzyrakoe JOIN :#esoteric < 1573636308 295362 :grumble!~grumble@freenode/staff/grumble QUIT :Quit: God, you're more annoying than a creative voice mail message. < 1573636619 938587 :grumble!~grumble@freenode/staff/grumble JOIN :#esoteric < 1573645253 596758 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru JOIN :#esoteric < 1573645877 520525 :xkapastel!uid17782@gateway/web/irccloud.com/x-oslxvqntvzyrakoe QUIT :Quit: Connection closed for inactivity < 1573648829 600600 :xkapastel!uid17782@gateway/web/irccloud.com/x-sjjlfxjcldxovvjt JOIN :#esoteric < 1573651295 320443 :kspalaiologos!~kspalaiol@176.221.122.71 JOIN :#esoteric < 1573651807 605364 :ArthurStrong!~ArthurStr@slow.wreckage.volia.net JOIN :#esoteric < 1573654692 361872 :Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net QUIT :Ping timeout: 265 seconds < 1573654742 544189 :Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net JOIN :#esoteric < 1573656313 159506 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1573657597 879562 :Frater_EST!~adrianbib@172.242.0.73 JOIN :#esoteric < 1573657613 395277 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: sorry for my connection < 1573657628 594342 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1573658416 617323 :Xatenev!~I@87.190.19.178 JOIN :#esoteric < 1573658477 559681 :xkapastel!uid17782@gateway/web/irccloud.com/x-sjjlfxjcldxovvjt QUIT :Quit: Connection closed for inactivity < 1573658554 904765 :Frater_EST!~adrianbib@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573658608 364850 :Xatenev!~I@87.190.19.178 PART #esoteric :"Leaving" < 1573658724 100848 :Frater_EST!adrianbibl@172.242.0.73 JOIN :#esoteric < 1573658952 268478 :Frater_EST!adrianbibl@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573658988 381975 :Frater_EST!~adrianbib@172.242.0.73 JOIN :#esoteric < 1573659218 10950 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1573661376 983672 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 240 seconds < 1573662220 454901 :Frater_EST!~adrianbib@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573663250 269486 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1573664755 305752 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 265 seconds < 1573664874 991124 :xkapastel!uid17782@gateway/web/irccloud.com/x-gvzfvbrjjtktihmq JOIN :#esoteric < 1573666782 441179 :LKoen!~LKoen@81.255.219.130 JOIN :#esoteric < 1573666819 442978 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1573667105 397551 :Frater_EST!adrianbibl@172.242.0.73 JOIN :#esoteric < 1573667221 748250 :Frater_EST!adrianbibl@172.242.0.73 QUIT :Read error: Connection reset by peer < 1573667771 678293 :subleq!~gavin@207.173.246.52 QUIT :Ping timeout: 268 seconds < 1573667987 539215 :kritixilithos!~kritixili@gateway/tor-sasl/kritixilithos JOIN :#esoteric < 1573668173 989798 :subleq!~gavin@207.173.246.52 JOIN :#esoteric < 1573668226 956580 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: quit > 1573669722 333364 PRIVMSG #esoteric :14[[07User:CMinusMinus14]]4 10 02https://esolangs.org/w/index.php?diff=67035&oldid=66944 5* 03CMinusMinus 5* (+10) 10 > 1573669750 469432 PRIVMSG #esoteric :14[[07Nine14]]4 10 02https://esolangs.org/w/index.php?diff=67036&oldid=67019 5* 03CMinusMinus 5* (+9) 10 > 1573669765 535048 PRIVMSG #esoteric :14[[07Nine14]]4 10 02https://esolangs.org/w/index.php?diff=67037&oldid=67036 5* 03CMinusMinus 5* (+0) 10/* Fizz Buzz */ < 1573671252 298158 :laerling!~lsf@unaffiliated/laerling JOIN :#esoteric < 1573671864 450969 :kritixilithos!~kritixili@gateway/tor-sasl/kritixilithos QUIT :Quit: kritixilithos < 1573672121 519623 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1573672878 493219 :xkapastel!uid17782@gateway/web/irccloud.com/x-gvzfvbrjjtktihmq QUIT :Quit: Connection closed for inactivity < 1573672986 487644 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru QUIT :Quit: gone completely :o < 1573673504 519682 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 276 seconds < 1573675042 833538 :LKoen!~LKoen@81.255.219.130 QUIT :Remote host closed the connection < 1573675583 230317 :LKoen!~LKoen@81.255.219.130 JOIN :#esoteric < 1573675585 540784 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1573675657 318323 :kspalaiologos!~kspalaiol@176.221.122.71 QUIT :Quit: Leaving < 1573675841 974741 :LKoen!~LKoen@81.255.219.130 QUIT :Client Quit < 1573676961 592180 :nico_nico!~nico_nico@arennes-653-1-282-9.w109-218.abo.wanadoo.fr JOIN :#esoteric < 1573678410 595275 :b_jonas!~x@catv-176-63-14-170.catv.broadband.hu JOIN :#esoteric < 1573678493 595233 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru JOIN :#esoteric < 1573678650 958849 :hppavilion[1]!~omegasome@172.98.86.92 JOIN :#esoteric < 1573678657 471140 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :if I set UTF-8 encoding in a windows console, my C# program treats some inputs as if it was end of stream :o I blamed it on ConEmu first, but then I sorted it out and even fixed this behavior setting the encoding to “standard Windows unicode” UTF16-LE. Oooof, it was a nightmare. And it’s nonsense < 1573678828 654179 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :and if I don’t set it, it would be some ununicode encoding which can’t output my lovely ‘ and ’ quotes and which does mangle my lovely unicode filenames so the program thinks I gave it unexistent ones. Nightmare, and all for a program to replace a file retaining old file’s date attributes < 1573678862 621474 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :though thank gods it worked in the end < 1573680329 524253 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 276 seconds < 1573680348 270039 :Frater_EST!~adrianbib@172.242.0.73 JOIN :#esoteric < 1573680919 393631 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :Wolfram announced a prize on results regarding rule 30 :D the problems seem sensible? Here they are: < 1573680984 897271 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :Problem 1: Does the center column always remain non-periodic? < 1573680984 986633 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :Problem 2: Does each color of cell occur on average equally often in the center column? < 1573680984 986679 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :Problem 3: Does computing the n-th cell of the center column require at least O(n) computational effort? < 1573680985 23162 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :they all ask about the evolution of …000010000… where 1 is at the mentioned center column < 1573681015 608957 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :what do you think this will lead to? < 1573681054 864748 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :and how hard do you estimate these three? < 1573681086 731968 :b_jonas!~x@catv-176-63-14-170.catv.broadband.hu PRIVMSG #esoteric :arseniiv: they're probably easier than Wolfram has money. did he pose a high enough prize? < 1573681170 784148 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :$30k (USD, I presume?), but I don’t see yet if it’s for each of them or for all of them combined < 1573681182 631944 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :b_jonas: ^ < 1573681197 215806 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :the post is too long < 1573681256 324248 :nico_nico!~nico_nico@arennes-653-1-282-9.w109-218.abo.wanadoo.fr QUIT :Quit: Leaving < 1573681396 654917 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :hm I don’t see it even on its official website < 1573681467 310582 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru PRIVMSG #esoteric :it just says “$30,000 in prizes for 3 problems” and no more? I think that means it would be divided between them, evenly or not < 1573681477 33734 :ArthurStrong!~ArthurStr@slow.wreckage.volia.net QUIT :Quit: leaving < 1573681838 975041 :hppavilion[1]!~omegasome@172.98.86.92 QUIT :Ping timeout: 246 seconds < 1573682019 595450 :arseniiv!~arseniiv@94.41.12.241.dynamic.ufanet.ru QUIT :Ping timeout: 250 seconds > 1573684130 784215 PRIVMSG #esoteric :14[[07Nine14]]4 10 02https://esolangs.org/w/index.php?diff=67038&oldid=67037 5* 03JonoCode9374 5* (+178) 10/* Examples */ > 1573684144 264914 PRIVMSG #esoteric :14[[07Nine14]]4 10 02https://esolangs.org/w/index.php?diff=67039&oldid=67038 5* 03JonoCode9374 5* (-14) 10/* Swapping the Words "Good" and "Bad" */ < 1573684459 628879 :jguy!86d14a9c@134.209.74.156 JOIN :#esoteric < 1573685314 51361 :jguy!86d14a9c@134.209.74.156 QUIT :Remote host closed the connection < 1573685963 8250 :djhoulihan!~djhouliha@68.183.28.54 JOIN :#esoteric