00:00:05 <wob_jonas> instead, probably you need a full separate ordered associative array
00:01:12 <wob_jonas> so a binary (or quaternary) heap sorted by the keys and an ordered tree sorted by the insertion dates, and when you move an element in the heap, track its position in the ordered tree
00:01:42 -!- moonythedwarf has quit (Ping timeout: 264 seconds).
00:02:08 <wob_jonas> actually you don't need a search tree
00:03:08 <wob_jonas> you only need a heap sorted by the keys and a queue (possible implemented as circular array or just as an array with free space on both sides that is sometimes moved) and link the position of elements both ways
00:04:29 <wob_jonas> "i have a set of key-value pairs and i want to store at most K of them. when i store the (k+1)th element i want to remove the oldest i inserted. when i get a value in this structure, i want that element to become the newest inserted "
00:04:52 <wob_jonas> what does the key even do? what is it a key of?
00:05:00 <wob_jonas> don't you just have ordinary pairs?
00:05:20 -!- moonythedwarf has joined.
00:05:41 <izalove> but i want to find an element by its key
00:06:40 <ais523> wob_jonas: needs to be a linked queue so that you can delete from the middle, while preserving the order of other elements, in less than O(n)
00:06:47 <ais523> assuming we're going for asymptotic performance here
00:07:08 <MDude> http://www.bitsofpancake.com/programming/markov-chain-text-generator/
00:07:42 <wob_jonas> in that case, have a separate associative array that is keyed by the keys and stores the position of that element in the queue. if the queue is array-based, then store a biased index that never changes, and store the bias separately; if you use a linked list based queue (less practical), then make the position (stored in the associative array) a po
00:07:43 <wob_jonas> inter to the element in the queue.
00:07:55 <MDude> Even though we fungot is already here for that.
00:07:55 <fungot> MDude: all operations on intercal source code), prepending a byte with 172 to the one implemented in c-intercal, and so on) with the best results. ( the previous character minus the previous sentence also explained what operands these operators have to rename the installation directory: mkdir build cd build ../configure to build in a linked c program ( for instance
00:08:04 <wob_jonas> you want to be able to delete an element from the middle?
00:08:29 <wob_jonas> yes, then you need at least a linked list queue
00:08:32 <ais523> wob_jonas: to replace the element back at the end of the list
00:08:52 <wob_jonas> you could make the links internal to the tree
00:09:25 <wob_jonas> just have an associative array keyed on the keys, and as the value, you store the values and the key of the next newest element
00:09:32 <wob_jonas> and store the key of the oldest element somewhere
00:10:30 <ais523> wob_jonas: oh, that's clever, but I think you need to doubly link
00:10:45 <ais523> otherwise you can't update the link from the element immediately older than the one you delete
00:11:14 <ais523> also you need to store the total number of elements so that you know whether you need to delete the oldest at all
00:11:18 <ais523> but that's easy enough
00:12:05 <wob_jonas> there's also an alternate solution too (the one you get if SQL databases are your only hammer): use two associative arrays, the first one is an ordered one keyed by insertion times, the second one is an unordered one keyed by the keys but also stores the insertion time as extra value
00:12:43 <wob_jonas> that's assimptotically slower, but much easier to implement, because you never have to modify elements
00:13:10 <wob_jonas> and yes, then too you need to track the number of elements
00:13:20 <ais523> right, I was actually thinking "a relational database could solve this problem, I wonder what algorithm it'd use"
00:14:51 <wob_jonas> if you modify that a bit by using a heap (instead of an ordered assoc array on the insertion times) then you'll have to store the positions in the unordered assoc array and update those positions all the time
00:15:22 <wob_jonas> unless perhaps you use a linked heap, which is a bit ugly
00:16:11 <wob_jonas> the SQL-like solution with just two assoc arrays is the easiest to implement because you don't need custom data structures
00:18:16 <wob_jonas> using SQL as your only hammer is actually quite a useful crutch, even if it's not one I really like
00:19:39 <ais523> what's your favourite general-purpose hammer?
00:22:15 <wob_jonas> I think when making data structures, I try to use arrays and array indexes and similar over anything associative whenever I can get away with it (without too much trouble), at least if I'm programming in C++. I use associative arrays in perl, unless I need to optimize.
00:22:42 <wob_jonas> I do sort of like the SQL clutch in a way, but don't stick to it all the time.
00:23:31 <wob_jonas> I do like the part of the SQL clutch where I try to avoid deeply nested data structures, instead using shallow structures (whether array-like or associative) and pointing into them with indexes or keys
00:23:57 <wob_jonas> But I don't like the part of the SQL clutch where everything has to be associative so you can insert or delete arbitrarily.
00:24:39 <wob_jonas> The former part, avoiding deeply nested structures, applies even when I'm programming in perl.
00:25:32 <ais523> well, on the occasions I've used deeply nested structures
00:25:41 <ais523> it normally turned out in retrospect to be a mistake
00:25:51 <ais523> also, if I find myself maintaining too many indexes (indices?) manually
00:25:59 <ais523> I should probably be using a database instead
00:26:11 <wob_jonas> I don't usually have to maintain them. Just set them once.
00:28:45 <wob_jonas> Also, I don't like hash tables. If I do need an associative array (rather than get away with an array), and I'm not writing perl, I prefer to use a search tree. I do acknowledge that sometimes hash tables are faster, but that optimization is rarely relevant for whatever I'm writing,
00:28:49 <wob_jonas> because the associative array isn't usually in the fast path. The fast inner loops can generally be written so they use only arrays.
00:29:18 <wob_jonas> In perl, I do use the builtin hash tables though.
00:30:48 <ais523> I used a trie when I needed to optimize an associative lookup in NH4
00:30:56 <ais523> but that was just because they're easier to write than hash tables are
00:31:05 <wob_jonas> The reason why you rarely need associative arrays is this: most of the time you actually just write everything in them first, then when they're finished, you look up stuff in them or iterate on them. If that's the case, then an array you sort once and then binary search in is better.
00:31:51 <wob_jonas> At least, this is the case in the programs I write. If you're like writing a kernel, then you will totally need lots of hash tables and search trees.
00:32:13 -!- moonythedwarf has quit (Ping timeout: 244 seconds).
00:32:18 -!- oerjan has joined.
00:32:39 <wob_jonas> And sometimes you do need custom structures, you can't do everything the SQL way, but that's pretty rare.
00:33:21 <wob_jonas> (Well, it sort of depends on how many non-custom structures you know already.)
00:37:47 <wob_jonas> And obviously all this stuff depends a lot on your task and parameters, so use common sense and do whatever is best for the particular task rather than just one hammer.
00:41:17 <hppavilion> New operation (or, well, notation for an existing operation): reverse subtract
00:41:29 <oerjan> <ybden> Does saying something to fungot change its seed, or is it just random? <-- it's random. in particular fungot has no way to convert a word into the right index pointer, only the reverse.
00:41:29 <fungot> oerjan: 2. compile the externally-called files.) here's an idiom from the stack while skipping some of this is another compile-time error.
00:42:15 <hppavilion> Basically, a rsub b is the same as b sub a. No new uses, but can make some stuff look better.
00:42:18 <oerjan> i'm not sure if the file format even allows it.
00:43:03 <oerjan> > 2 `subtract` 4 -- haskell is way ahead of you
00:43:27 <wob_jonas> ais523: since you mention aimake, have you worked on that (or ayacc) again?
00:43:50 <wob_jonas> on the aimake rewrite or something
00:43:58 * oerjan swats hppavilion -----###
00:44:07 <ais523> I did a bit of work on ayacc I think, not sure though
00:44:20 <ais523> there are some fonts in which - isn't left-to-right symmetrical
00:44:22 <wob_jonas> have you released ayacc under some free software license yet?
00:44:35 <wob_jonas> or had it escape under such a license at least
00:45:03 <ais523> I was planning to though
00:45:07 <ais523> let me stick a GPLv3 notice on there
00:45:47 <wob_jonas> ais523: yes, but that's usually because it has serifs (so it's a bit wavy) or is a double line above one another with the two slightly offset horizontally, and in either case it would look ugly if mirrored
00:46:26 <wob_jonas> ais523: I know you were planning, you just didn't do it because you weren't working on aimake at all
00:46:52 <ais523> ugh, what's the start of the copyright range on this thing?
00:47:20 <wob_jonas> I think the #esoteric logs even has a statement somewhere that serves as releasing under a license.
00:47:32 <hppavilion> (a reverse minus sign is possible because a normal minus sign is changed- not just -, but more like a vertically-flipped ¬)
00:48:12 <ais523> also wow the repo was out of date
00:48:18 <ais523> wob_jonas: OK, updated, and properly licensed now
00:48:21 <hppavilion> There's also an operation related to ± called "minus-or-reverse-minus", which is literally just a[morm]b = a-b|b-a
00:48:59 <hppavilion> (not sure how they look though; need to figure that out
00:49:54 <ais523> let me go and find a better URL for it :-P
00:50:52 <wob_jonas> Are you planning to add a stackless C backend by the way?
00:51:10 <ais523> wob_jonas: darcs clone http://nethack4.org/projects/ayacc
00:51:32 <ais523> also the current C backend uses the call stack as the only stack
00:51:32 <wob_jonas> That is, a C backend that doesn't use recursion so it can return after each token read
00:51:51 <ais523> I don't currently have any plans to write a push parser
00:52:44 <ais523> shouldn't be, I have +rx perms on all the directories and +r on all the files
00:52:48 <ais523> did you try to access it in a web browser? :-P
00:53:10 <wob_jonas> actually what I'd like isn't really a push parser, but rather a way to reset the parser to older savestates (unpushing tokens). one way to do that would be to make it a push parser AND use immutable data structures only, but it could be done in other ways.
00:54:06 <ais523> savestating the parser isn't something that's very compatible with aimake's architecture
00:54:11 <ais523> you'd probably be better off using bison for something like that
00:54:12 <wob_jonas> with direct file access the access control error would be error 13 rather than error 403
00:54:25 <ais523> well darcs still uses http
00:54:32 -!- centrinia has joined.
00:54:33 <ais523> just it accesses different files than the browser does
00:54:49 <wob_jonas> I think it is compatible in the sense that I'd only need a new backend template for it, not change anything in the actual parser generator code.
00:55:17 <ais523> wob_jonas: the main thing that ayacc needs and doesn't have is type safety
00:55:23 <ais523> atm it just uses the union for everything, like bison does
00:55:23 <wob_jonas> Which is good, because I have more chance to be able to do it, I don't have to understand the theory of the generator, and get to reuse (most of) the optimizations you've implemented.
00:55:29 <ais523> but it has enough information to use exact types
00:55:48 <ais523> I think you could write a separate backend, yes
00:55:54 <wob_jonas> does it already have _some_ type safety, as in, it derives the types of some values, but not all?
00:55:58 <ais523> you'd have to implement the "function call" operations via maintaining a stack manually
00:56:12 <ais523> parts of the code know what the type of certain values are, but the type information isn't propagated
00:57:21 <wob_jonas> Can the compiler that compiles the emitted code do that if it analyzes all the functions together? Probably not reliably.
00:57:45 <wob_jonas> The switch statements on state variables would confuse the compiler too much to follow what really happens.
00:57:49 <ais523> sometimes the type of one return value of a function depends on the value of another
00:57:55 <ais523> you'd probably keep using the union in that ase
00:58:06 <ais523> rather than having multiple return values just so that they can have different types
00:58:21 <ais523> like, ayacc often creates a function that, say, can parse one of two things
00:58:24 <ais523> then it tells the caller which it parsed
00:58:36 <ais523> and there's no reason why the semantic values of those two things needs to have the same type
00:58:52 <ais523> (in C it uses return-by-reference if a function needs multiple return values)
00:59:16 <wob_jonas> so then you return a distinguished union?
01:00:01 <ais523> wob_jonas: are you running the literal command "darcs clone http://nethack4.org/projects/ayacc"?
01:00:22 <wob_jonas> I thought it was a landing page with information
01:00:40 <ais523> and actually, that's a good point, it probably should be a landing page
01:00:43 <ais523> in which case that URL isn't final
01:00:59 <ais523> maybe I should move it to media/
01:01:02 <zzo38> Can you check for I/O and SDL events together with SDL 1.x?
01:01:23 <ais523> nethack4.org needs a more organized filesystem
01:01:23 <wob_jonas> ais523: and you should have a list of all projects at /projects or at /
01:01:27 <ais523> zzo38: I/O is converted into SDL events by SDL, so you just do a single check for SDL events
01:01:33 <ais523> that is, if you request the conversion
01:01:57 <wob_jonas> let me install darcs, I think I don't have it on this machine yet
01:02:08 <zzo38> How can you do that on an arbitrary file descriptor?
01:02:34 <ais523> zzo38: ugh, I ran into this problem with SDL 2 myself, and I think SDL 1 is the same
01:02:45 <ais523> the only method is to create a separate thread to monitor the file descriptor
01:02:56 <ais523> but then you can't communicate to the main thread
01:03:10 <zzo38> Can you add events to one thread from another thread or not?
01:03:11 <ais523> posting an SDL event doesn't work because it can lead to deadlocks, the SDL messaging functions aren't thread-safe
01:03:20 <ais523> so no, as far as I know
01:03:21 <zzo38> O it isn't thread-safe
01:03:28 <ais523> in NH4 I basically had to poll :-(
01:03:34 <ais523> there's an SDL extension called something like SDL_net
01:03:36 <ais523> that might be able to do it
01:03:43 <wob_jonas> they repeated that mistake from wx?
01:03:57 <ais523> wob_jonas: and SFML makes exactly the same mistake!
01:04:32 <zzo38> I know that Xlib does not have this problem; you can check for events and other file descriptors together, since the X events are a file descriptor!
01:04:49 <ais523> wob_jonas: main competitor to SDL
01:04:52 <ais523> I was looking at it for libuncursed
01:04:59 <ais523> but it seems to have the same set of deficiencies as SDL does
01:05:53 <ais523> oh wow, SDL_net doesn't have a way to select network packets against SDL events either
01:06:05 <ais523> why do so many people get this stuff wrong
01:06:24 <wob_jonas> Are you sure they don't just have a confusing documentation and some way to do this properly?
01:06:29 <ais523> also at least SFML doesn't have the primitives necessary to create your own thread-safe event injector either
01:06:35 <ais523> it'd need semaphores but it only has mutexes
01:07:01 <ais523> wob_jonas: nah, I think the sort of people who write this sort of library genuinely don't see polling as a problem
01:07:04 <ais523> it /can/ be done with polling, very easily
01:07:09 <ais523> it just eats up more CPU wakeups than it should
01:07:16 <wob_jonas> like, multiple apis, a simple main loop that doesn't let you listen to arbitrary file descriptors, but also a more complicated method that lets you embed it to any event loop
01:08:01 <ais523> OK, SDL does have semaphores
01:08:07 <ais523> so it is possible to make it work
01:08:27 <zzo38> How can you do that with the semaphores then?
01:08:40 <ais523> zzo38: what you have to do is have three threads: one handles SDL events and signals a semaphore when they arrive; one handles file descriptors events and signals the same semaphore when they arrive; and one processes events signalled by the other two threads
01:09:02 <ais523> basically, the two side threads need to "up" a semaphore that spends most of its time at 0 when they have something to report
01:09:13 <ais523> the merging thread "down"s the semaphore whenever it handles an event
01:09:34 <zzo38> Shouldn't the events needed in the main thread?
01:09:40 <ais523> it's probably a bit more complex because you need to wait for the event to be handled before you start working again, so you might need another semaphore to send in the other direction
01:09:58 <ais523> if there's data to communicate about the events, you'd do it using shared memory
01:10:16 <wob_jonas> ais523: IIRC QT and glib both require you to use its own main loop, but has events you can use it to wake it up from another thread properly
01:10:30 <ais523> libuncursed also uses that model
01:10:43 <ais523> actually implementing the remote wakeup in SDL was ridiculous, though; I used polling to do so in the end
01:10:54 <ais523> in libuncursed 2 I want to do it without polling
01:11:08 <ais523> wob_jonas: say you're watching a game
01:11:28 <ais523> you have to wait on both a keypress by the user (SDL event), and network activity (move made by the user you're watching)
01:11:44 <ais523> and libuncursed uses polling because SDL uses polling internally anyway
01:11:45 <wob_jonas> why doesn't libuncursed just use the model where you provide the main loop and it tells you when it wants to listen to input and to output
01:11:48 <ais523> and I felt that a bit more wouldn't hurt much
01:12:04 <ais523> wob_jonas: libuncursed 1 uses the event loop model
01:12:23 <ais523> libuncursed 2 uses a variant of the model in which you have a command that does all output /and/ all input
01:12:36 <ais523> which makes it a lot harder to make mistakes
01:12:58 <ais523> (obviously, you set up the output you want in-memory in advance, and the output+input is basically similar to a buffer-swap command that waits for input once it's done so)
01:13:33 <wob_jonas> (or just make it use libev only, but give the option to compile to a custom libev)
01:14:42 <ais523> wob_jonas: I'm not even sure what you mean by "it tells you when it wants to listen to input and to output"
01:15:41 <wob_jonas> ais523: yes, you might not even need that, because it always wants to listen to input, and probably wants to block on output rather than poll for it
01:15:53 <zzo38> I know that I designed Xwicketset it does have a function called XwicAddFileEvent for purpose explicitly to watch on multi file descriptors as well as X events.
01:16:10 <ais523> wob_jonas: oh, I see, you were trying to support background /output/
01:16:46 <ais523> right, libuncursed assumes that it can safely output synchronously, and even if it needed to output asynchronously I think it'd want to hide the details of that from the program using libuncursed
01:17:09 <wob_jonas> ais523: yes, since this goes over network which could have a high latency, and the user could press lots of keystrokes each of which change the screen content a lot, in which case you might even be able to drop some of the output
01:17:53 <wob_jonas> although that might not come up much in practice because of the large buffers involved
01:18:14 <ais523> you don't want to drop output because of ttyrecing and (for bots/interhack) pipelined farlook
01:18:43 <ais523> although uncursed should be handling ttyrecing itself really
01:18:46 <wob_jonas> it would be enough to make the calling program (eg. nethack) sometimes not try to flush the screen if more keystrokes have already arrived
01:19:12 <wob_jonas> oh, you don't want to drop anything because of ttyrec
01:19:29 -!- carado has quit (Ping timeout: 252 seconds).
01:19:32 <ais523> I think async output would be doable without changing the API, though
01:19:38 <ais523> maybe libuncursed 2 should support it as an option
01:19:51 <ais523> the likely implementation would be to use a second thread to do the rendering
01:20:39 <hppavilion> ...oh my god, FiveThirtyEight is named because the US electoral college has 538 electors
01:21:15 <wob_jonas> maybe you could have a ttyrec game option, so that when the user promises he's not ttyrec-ing (or teeing to multiple terminals) then the game can drop output if it's already read keystrokes (ans possibly uncurses can optimize the output a bit more dangerously so it only works on the exact terminal size)
01:22:01 <ais523> wob_jonas: text wrapping probably isn't consistent betwen terminals anyway
01:22:18 <ais523> you'd probably just want an option for async output behaviour
01:22:27 <ais523> and an option in libuncursed itself to produce ttyrecs
01:22:47 <ais523> (there's stub code for this in libuncursed 1; the ttyrec code itself hasn't been written but the place where it connects to the main code has been)
01:22:55 <wob_jonas> ais523: isn't it at least consistent in typical cases, which uncurses can detect?
01:23:25 <wob_jonas> oh well, it probably doesn't matter much practically
01:23:41 <wob_jonas> such an optimization wouldn't really help much of anything
01:24:09 <wob_jonas> it's just be premature optimization]
01:25:29 <ais523> I don't know, maybe it'll help when using one of the slower forms of output
01:25:31 <wob_jonas> looking at ayacc now (checked it out with darcs)
01:26:52 <wob_jonas> ok, so now ayacc is distributed under GPL3
01:28:04 <wob_jonas> (and the output it generates still doesn't get restricted copyright-wise)
01:28:33 <ais523> I might move the GPLv3 text to be literally inside the source code rather than a separate file
01:41:51 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
01:46:30 -!- boily has quit (Quit: CASK CHICKEN).
01:48:33 -!- Zarutian has quit (Quit: Zarutian).
02:07:36 -!- ais523 has quit.
02:40:04 -!- centrinia has quit (Quit: Leaving).
02:40:27 -!- augur has quit (Read error: Connection reset by peer).
02:40:56 -!- augur has joined.
02:58:37 <zzo38> I don't understand the V8 embedding guide so well. How do you do reference counting with it?
03:20:07 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:38:05 -!- oerjan has quit (Quit: Nite).
04:12:47 <hppavilion> Hm, apparently style guides (e.g. Strunk & White, Chicago) are sometimes called "style sheets"
04:13:01 <hppavilion> I am not OK with this unless they're written in CSS (or SASS or SCSS or LESS)
04:25:58 <\oren\> https://www.youtube.com/watch?v=DG660Jijr1A
04:27:08 <\oren\> great choon right there
04:36:26 <hppavilion> If I make a language, should it be horribly inflective or not?
04:50:47 -!- Kaynato has joined.
04:51:33 -!- trn has joined.
04:54:19 <Jafet> I wonder if the MLA has anything to say about animations
04:56:18 <hppavilion> Jafet: Does MLA say how you cite an expansive scrawling on the walls of a cell written by a madman in his own blood over 15 years?
04:58:21 <\oren\> hppavilion: inflection would be cool
04:58:35 <\oren\> depending on what you inflect over
05:05:30 -!- `^_^v has joined.
05:16:18 <hppavilion> \oren\: I might also inflect over whether hitler did it too...
05:16:41 <\oren\> I had a great idea. I'm playing as hungary. Let's see if I can conquer austria before hitler can enact anschluss!
05:18:23 -!- `^_^v has quit (Quit: This computer has gone to sleep).
05:18:35 -!- `^_^v has joined.
05:29:57 <hppavilion> I messed with the colors for HexChat and now everything is weird
05:36:38 <\oren\> Austro-hungarian Empire, Reunited!
05:36:59 <\oren\> hah, austria was soooo weak
05:37:13 -!- hppavilion has quit (Quit: Leaving).
05:37:39 -!- hppavilion has joined.
05:52:08 <hppavilion> There are prepositions and postpositions, but what about inpositions? circumpositions?
05:59:18 -!- Frooxius has quit (Ping timeout: 264 seconds).
05:59:26 -!- centrinia has joined.
06:01:28 -!- `^_^v has quit (Read error: Connection reset by peer).
06:01:57 -!- `^_^v has joined.
06:07:10 <hppavilion> PIE did use inflect! It does not have a great effect!
06:16:41 -!- Frooxius has joined.
06:23:16 <quintopia> hppavilion: you could probably cite the madman scrawling the same way as letters/correspondence
06:23:39 <quintopia> http://guides.lib.monash.edu/c.php?g=219786&p=1454260
06:27:52 <hppavilion> quintopia: Manuscript (print) would actually be correct, as you're citing the original, not an edited & published version
06:28:14 <\oren\> And now I've taken the sudetenland too
06:28:54 <\oren\> hah! my hungarians are just cockblocking germany
06:30:27 <hppavilion>  Hermit. (Untitled). Scrawled onto the walls of a cave in own blood. Found in cave outside of Tulsa, Oklahoma. Stand-alone.
06:31:51 <shachaf> oerjan: Remind me why Belkar can float?
06:42:38 -!- centrinia has quit (Quit: Leaving).
06:43:52 <hppavilion> Philosophy is much better with formal logical notation...
06:47:00 <zzo38> Yes it does help. But, a few things are difficult to put into formal logical notation (such as things that are difficult in general).
06:54:05 -!- `^_^v has quit (Quit: This computer has gone to sleep).
06:54:28 <hppavilion> zzo38: Yeah, but things that aren't difficult in general become perfectly unambiguous
06:56:37 <shachaf> oerjan: http://www.giantitp.com/comics/oots0571.html has a prediction for 1187-03-26
06:56:49 <shachaf> which what's-his-name is aware of
06:56:55 <zzo38> hppavilion: Yes, that I agree, that is why it helps.
06:57:03 <shachaf> what's the in-comic time, anyway?
07:13:22 -!- trn has quit (K-Lined).
07:25:49 <hppavilion> shachaf: What do you get with Euclidean geometry if you assume everything is polar coordinates (that is, you still draw a circle, but the points on the circle aren't thought of as cartesian)
07:29:44 <shachaf> Euclidean geometry was coördinate-free last I checked.
07:33:20 <hppavilion> What I'm ACTUALLY saying is 'what happens if you take the thing that happens when you use a ruler and compass, but treat it as polar and take whatever it is in cartesian and use that as primitives"
07:35:03 <shachaf> oerjan: hm, http://www.giantitp.com/comics/oots0489.html
07:39:32 <shachaf> Euclidean geometry is neither cartesian nor polar
07:39:33 <izalove> evil is measured in kilonazis?
07:40:41 <Hoolootwo> I'm pretty sure more conventional units would be milinazis
07:42:06 <Hoolootwo> it's like the Lenat; one nazi, like a Lenat, is a big value that (hopefully) is never reached in practice
07:42:35 <hppavilion> izalove: Hoolootwo: You're both wrong; Nazis would be the base unit, but SI actually uses Mengeles
07:48:51 <hppavilion> Jesus is currently clocking in at 70.8 megawarhols, though that's not adjusting for population...
07:53:41 -!- `^_^v has joined.
08:11:16 <hppavilion> Take a statement of the Ship of Theseus and replace all of the words with synonyms, one by one
08:12:13 <\oren\> I still like "I AM POINTY DEATH INCARNATE"
08:34:24 <hppavilion> ...I just heard the Ontological Argument for god...
09:32:31 -!- AnotherTest has joined.
09:40:24 <hppavilion> ...can we say "paper authorizes removal of rock" from now on? Please?
09:41:38 -!- AnotherTest has quit (Ping timeout: 252 seconds).
09:42:24 <shachaf> Maybe you can say that to your Twitter account.
09:50:48 <izalove> yeah fuck you we don't want your bureaucracy
09:57:04 -!- carado has joined.
10:28:42 -!- JX7P has quit (Ping timeout: 264 seconds).
10:28:51 <hppavilion> izalove: But it's so much less stupid than "paper covers rock"
10:38:59 -!- AnotherTest has joined.
10:40:12 -!- Alcest has joined.
10:47:38 -!- AnotherTest has quit (Ping timeout: 252 seconds).
10:52:06 -!- hppavilion has quit (Ping timeout: 264 seconds).
11:00:31 -!- sebbu3 has joined.
11:01:06 -!- sebbu has quit (Ping timeout: 264 seconds).
11:14:23 -!- hppavilion has joined.
11:16:20 -!- fungot has quit (Ping timeout: 250 seconds).
11:34:45 -!- boily has joined.
11:45:58 <HackEgo> finland//Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus.
11:53:59 -!- AnotherTest has joined.
12:17:25 <hppavilion> The pirated His Dark Materials I'm ræding appears to be OCRd
12:18:58 <hppavilion> With )s where there should be js and all the æs are just aes
12:21:46 <boily> hppavellœn. you couldn't get a printed copy?
12:24:30 <hppavilion> boily: And I need the UK editions, as the US editions are edited to remove objectionable content
12:24:54 <hppavilion> Removed objectionable content is ALWAYS more objectionable than the original content
12:28:35 -!- boily has quit (Quit: DIGRAPH CHICKEN).
12:35:54 -!- copumpkin has joined.
12:38:00 -!- IRIXUser has joined.
12:38:24 -!- IRIXUser has changed nick to Guest52456.
12:38:33 -!- Guest52456 has quit (Changing host).
12:38:33 -!- Guest52456 has joined.
12:38:37 -!- Guest52456 has changed nick to JX7P.
12:53:54 -!- AnotherTest has quit (Ping timeout: 264 seconds).
13:18:30 -!- hppavilion has quit (Ping timeout: 264 seconds).
13:26:53 -!- `^_^v has quit (Quit: This computer has gone to sleep).
13:43:09 -!- moonythedwarf has joined.
13:44:34 -!- `^_^v has joined.
13:50:30 -!- AnotherTest has joined.
13:56:26 -!- `^_^v has quit (Quit: This computer has gone to sleep).
14:04:42 -!- AnotherTest has quit (Ping timeout: 264 seconds).
14:05:27 -!- Kaynato has quit (Ping timeout: 244 seconds).
14:31:48 -!- AnotherTest has joined.
14:32:19 -!- Kaynato has joined.
14:37:33 -!- `^_^v has joined.
14:42:00 * int-e slaps Tristan with 0.83 trouts and 0.17 blunt instruments
14:44:17 <int-e> (simple typing error: this channel is assigned F10; the messages was for a channel that I have assigned F11 to)
15:15:27 <HackEgo> [wiki] [[Gravbox]] M https://esolangs.org/w/index.php?diff=49850&oldid=49832 * Moon * (-4)
15:17:25 -!- wob_jonas has joined.
15:18:41 -!- oerjan has joined.
15:18:42 <wob_jonas> I'm typing from it now. I'm still not completely used to it.
15:18:56 <wob_jonas> It's a heavy and loud mechanical keyboard.
15:19:08 * moonythedwarf gives Bowserinator a cookie for helping a lazy programmmer implent Gravbox
15:19:31 <wob_jonas> (WD AULA blue springs keyboard for the record)
15:19:53 <wob_jonas> Very different feeling from all previous keyboards I've used.
15:27:01 -!- Kaynato has quit (Ping timeout: 272 seconds).
15:36:19 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:37:48 -!- wob_jonas has joined.
15:51:16 <oerjan> @tell hppavilion <hppavilion> There are prepositions and postpositions, but what about inpositions? circumpositions? <-- https://en.wikipedia.org/wiki/Preposition_and_postposition#Classification_by_position inpositions sound suitably weird for a conlang.
15:52:40 <myname> i know people who did a language solely based on inposition on a pizza brrak for a role playing game race
15:55:58 <myname> how is m:tg anything like an rpg?
15:57:32 <wob_jonas> M:tG was invented as a quick game you could play in idle times of role playing
15:57:52 <int-e> myname: maybe they read "role" as "rule" :-P
16:13:24 <myname> if you want to implement Eq for your class, you just need to overwrite one
16:13:36 <myname> and the other will automatically fit due default definition
16:19:50 <lambdabot> Source not found. Just what do you think you're doing Dave?
16:20:10 <oerjan> hm, i guess that's just the default derived one
16:20:28 <oerjan> myname: @src has some specific method sources too
16:20:34 <lambdabot> Source not found. Just what do you think you're doing Dave?
16:20:40 <lambdabot> Source not found. The more you drive -- the dumber you get.
16:21:00 <lambdabot> Source not found. Where did you learn to type?
16:21:25 <oerjan> stupid parenthesis and _order_ sensitivity
16:22:06 <oerjan> int-e: any chance of making parentheses irrelevant in @src lookups twh
16:22:30 <oerjan> this time, i tried all three wrong combinations first
16:24:37 <oerjan> in that case, it already is, but not for looking up instance methods
16:24:58 <int-e> I don't know what the lookup looks like
16:25:05 <lambdabot> Source not found. Do you think like you type?
16:25:10 <lambdabot> Source not found. I feel much better now.
16:25:38 <int-e> probably just a blind lookup into a Data.Map, and then again with parentheses around everything
16:31:39 <oerjan> 37 fetch x m = M.lookup x m `mplus`
16:31:39 <oerjan> 38 M.lookup (P.concat [P.singleton '(', x, P.singleton ')']) m
16:33:39 -!- nycs has joined.
16:33:44 -!- `^_^v has quit (Ping timeout: 244 seconds).
16:34:29 -!- moonythedwarf has changed nick to Eq.
16:34:41 -!- Eq has changed nick to moonythedwarf.
16:39:38 -!- JX7P has quit (Quit: Quit).
16:43:01 -!- nycs has quit (Ping timeout: 272 seconds).
16:43:34 -!- `^_^v has joined.
16:44:04 -!- AnotherTest has quit (Ping timeout: 244 seconds).
16:46:21 -!- irctc246 has joined.
16:49:47 -!- AnotherTest has joined.
16:55:23 <lambdabot> Source not found. Just try something else.
16:55:39 <oerjan> @src second f = arr swap >>> first f >>> arr swap
16:55:42 -!- irctc246 has quit (Ping timeout: 240 seconds).
16:55:52 <oerjan> int-e: there are some bugs in the source file...
16:56:09 <oerjan> (the above is because second is missing its key line)
17:05:49 -!- Phantom_Hoover has joined.
17:06:22 <\oren\> man i got used to looking at the borders of eastern europe in HOI4 and now maps of europe as it is today look wrong
17:06:26 <\oren\> like, hungary doesn't border ukraine, what happended?
17:07:11 <\oren\> like what happened to the end of slovakia where id wraps arond hungary
17:09:22 <\oren\> and poland is entirely too far to the west now
17:10:01 <oerjan> \oren\: they lost a war hth
17:11:02 <\oren\> and poland no longer even has a border with latvia
17:11:32 <oerjan> \oren\: basically russia got to keep their spoils from the molotov-ribbentrop pact, while germany were forced to compensate them for poland
17:12:52 <\oren\> i see, and russia also took some of slovakia and romania as well
17:12:58 <wob_jonas> \oren\: what's HOI4? and why doesn't Hungary border Ukraine?
17:13:35 <\oren\> Hearts of Iron 4. it's a war game that starts in 1936
17:13:41 <fizzie> wob_jonas: It's that game, I see people talk... right.
17:13:51 <\oren\> so I'm now more used to seeing the old borders
17:15:10 -!- Kaynato has joined.
17:15:22 <\oren\> I played as hungary last night, and I took austria before hitler had a chance to do Anschluss and take it
17:16:15 <\oren\> the german AI doesn't seem to do very well in that situation
17:17:12 <lambdabot> (u, f) <*> (v, x) = (u `mappend` v, f x)
17:17:31 <\oren\> but now I saw a picture of europe in a news story and it looked completely wrong
17:19:05 <\oren\> why is poland so small!?!? why is germany shaped like a peanut?
17:19:46 <\oren\> and what the heck happened to yugoslavia?
17:22:49 <\oren\> i guess it fell apart as soon as they lost tito.
17:34:22 <int-e> oerjan: I knew something like that was going to happen
17:38:07 <oerjan> int-e: don't accept yet, i'm making an amendment for Source.hs
17:40:57 <wob_jonas> \oren\: I'm not used to 1936 maps, but I am used to 1900 maps, so I always find it strange that there are seven independent countries instead of Yugoslavia
17:42:17 <wob_jonas> Not that I'm not glad that the war ended, but the map looks so strange.
17:42:31 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
17:43:18 -!- Guest22110 has joined.
17:44:46 <HackEgo> [wiki] [[Gravbox]] M https://esolangs.org/w/index.php?diff=49851&oldid=49850 * Moon * (+2) fixed program.
17:47:33 * moonythedwarf gives Bowserinator a giant cookie for implementing Gravbox
17:47:52 <HackEgo> [wiki] [[Gravbox]] https://esolangs.org/w/index.php?diff=49852&oldid=49851 * Moon * (-2) Its now implented! :D
17:49:25 <moonythedwarf> Bowserinator: make a wiki account and put the SRC up somewhere. and then link to it.
17:49:27 -!- Guest22110 has quit (Changing host).
17:49:27 -!- Guest22110 has joined.
17:49:29 -!- Guest22110 has changed nick to JX7P.
17:56:37 -!- Kaynato has quit (Ping timeout: 265 seconds).
17:57:30 -!- AnotherTest has quit (Ping timeout: 264 seconds).
17:57:32 -!- Reece` has joined.
18:01:52 <oerjan> @tell shachaf <shachaf> oerjan: Remind me why Belkar can float? <-- http://www.giantitp.com/comics/oots1015.html
18:06:54 <int-e> seems oerjan forgot to pack some strings
18:08:44 <lambdabot> oerjan said 6m 52s ago: <shachaf> oerjan: Remind me why Belkar can float? <-- http://www.giantitp.com/comics/oots1015.html
18:09:23 -!- DHeadshot has joined.
18:17:57 <oerjan> oh that went a lot faster
18:18:23 <int-e> ah, good, second travis build was faster
18:19:14 -!- Kaynato has joined.
18:25:12 -!- AnotherTest has joined.
18:25:42 -!- Kaynato has quit (Ping timeout: 264 seconds).
18:33:33 -!- sebbu3 has changed nick to sebbu.
18:35:23 -!- Zarutian has joined.
18:44:05 -!- oerjan has quit (Quit: Later).
18:45:12 -!- JX7P has quit (Read error: Connection timed out).
18:45:30 -!- IRIXUser has joined.
18:45:53 -!- IRIXUser has quit (Changing host).
18:45:53 -!- IRIXUser has joined.
18:45:54 -!- IRIXUser has changed nick to JX7P.
18:47:08 <olsner> is there a 2 dimensional "regexp" language? got to thinking the other day about how you might make text-based GUIs with a kind of 2-dimensional sed
18:47:44 <myname> have a look at "picture languages"
18:57:15 -!- hppavilion has joined.
19:16:24 -!- MoALTz has joined.
19:24:47 -!- MoALTz has quit (Quit: Leaving).
19:25:36 -!- MoALTz has joined.
19:29:05 -!- moonythedwarf has quit (Quit: WeeChat 0.4.2).
19:31:28 <HackEgo> 35) <ehird> With enough crappiness a display can show you invisible pink unicorns. \ 997) <fizzie> "May you live in INVISIBLE TIMES." --Old Chinese proverb. (It can look confusing when written with the proper Unicode.)
19:31:55 -!- moonythedwarf has joined.
19:32:15 -!- wob_jonas has joined.
19:33:35 -!- fungot has joined.
19:33:37 <shachaf> fizzie: May you live in INVISIBLE TIMES.
19:34:31 <shachaf> May you live in DIVISION TIMES.
19:34:48 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /: Is a directory \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /: cannot execute: Is a directory
19:35:00 <shachaf> fizzie: May you live in TIMES WITH LEFT HALF BLACK.
19:36:15 <fizzie> May you live in CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL.
19:38:34 <hppavilion> \oren\: Working on my absurdly inflective language
19:38:40 <lambdabot> oerjan said 3h 47m 24s ago: <hppavilion> There are prepositions and postpositions, but what about inpositions? circumpositions? <-- https://en.wikipedia.org/wiki/Preposition_and_postposition#
19:38:40 <lambdabot> Classification_by_position inpositions sound suitably weird for a conlang.
19:39:22 -!- `^_^v has quit (Quit: This computer has gone to sleep).
19:39:48 <hppavilion> \oren\: For time, I currently have 5 tenses (including null tense) and 4 types of aspect (progression, perfection, evitability, and forcing)
19:40:21 -!- moonythedwarf has changed nick to otherbot.
19:40:39 <int-e> what about suppositions... they are nasty because they don't appear anywhere in the text.
19:40:42 -!- otherbot has changed nick to jeffbot.
19:41:11 -!- jeffbot has changed nick to Guest60464.
19:41:19 <shachaf> int-e: Sometimes they appear in superscript.
19:41:27 -!- Guest60464 has changed nick to moonythedwarf.
19:43:32 -!- ybden has changed nick to vmunix.
19:43:40 <wob_jonas> int-e: nah, that's called a dinner menu. you know the Larry Wall saying, the script is what you give to the actors, the program is what you give to the audience.
19:44:06 <int-e> wob_jonas: you missed a pun there, I think.
19:44:14 -!- moonythedwarf has changed nick to jefl35.
19:44:20 -!- jefl35 has changed nick to moonythedwarf.
19:44:40 <int-e> (hint, because maybe it's just too awful: supper is a meal)
19:44:44 <shachaf> 2A75 TWO CONSECUTIVE EQUALS SIGNS [⩵]
19:44:48 <shachaf> 2A76 THREE CONSECUTIVE EQUALS SIGNS [⩶]
19:45:16 <shachaf> APPROXIMATELY EQUAL OR EQUAL TO [⩰]
19:45:25 -!- idris-bot has quit (Ping timeout: 244 seconds).
19:45:29 -!- trn has joined.
19:46:32 <int-e> does the saying about exclamation marks also apply to equality signs?
19:47:26 -!- Melvar has quit (Quit: WeeChat 1.5).
19:47:42 -!- Melvar has joined.
19:48:26 <int-e> Though apparently Pratchett's threshold was five: "Five exclamation marks, the sure sign of an insane mind."
20:00:24 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
20:20:19 -!- Phantom_Hoover has joined.
20:21:45 -!- hppavilion has quit (Ping timeout: 248 seconds).
20:43:01 -!- ais523 has joined.
20:43:17 <lambdabot> Maybe you meant: messages? messages
20:44:04 <zgrep> @tell ais523 It's okay. Have a message.
20:44:06 <shachaf> Do you want a message and/or a hug?
20:44:13 <ais523> I'm OK with not having messages
20:44:24 <ais523> less OK with lambdabot's persistent inability to understand my question
20:45:12 <shachaf> Do you know how lambdabot command correction works?
20:45:39 <shachaf> Your string has to be either a prefix of a command or within edit distance 2 of a command.
20:46:07 <ais523> I figured it was using edit distance 2 after the first two requests
20:46:20 <ais523> just think that a deletion should count as less than a substitution, especially given how unlikely ? is as a typo for s
20:46:32 <ais523> we need some sort of edit distance that takes qwerty into account
20:46:44 <int-e> oh, the @messag? was ambiguous.
20:47:02 <lambdabot> uptime: 6d 11m 11s, longest uptime: 1m 12d 14h 14m 14s
20:47:11 <ais523> are there any esolangs which care about qwerty layout?
20:47:16 <ais523> as in, not just inspired by it
20:47:21 <ais523> but the key layout actually has a semantic effect?
20:47:31 <ais523> (e.g. BF with q w e r t y u i as the commands doesn't count)
20:48:24 <wob_jonas> ais523: would something that is controlled by ykulnjbh or qwedcxza or wdsa or esdx or jkli count?
20:48:41 <wob_jonas> like, if it was directions in esolang, not in a game
20:48:54 <int-e> IIUC, a 2d language that uses qweadzxc for nw,n,ne,w,e,sw,s,se movements would qualify?
20:48:55 -!- atrapado has joined.
20:49:24 <int-e> being redundant, as usual.
20:49:41 <ais523> I'm not qure I'd allow wasd-alikes to count because it's just syntax
20:50:09 <ais523> I'm wondering if there's some way to make it semantically relevant
20:50:12 <wob_jonas> wait... you want something that's not just syntax/
20:50:14 <int-e> well, what else would it be... permuting letters is just a syntactic change after all
20:50:18 <ais523> wob_jonas: I don't know
20:50:54 <ais523> something like "commands can only mention more than one variable if their names are adjacent on the keyboard"
20:51:12 <int-e> So any change of the keyboard layout is just a syntactic change, as far as I can make out. Unless you want an interpreter that actually queries what the current keyboard layout is and changes semantics based on that?
20:51:20 <int-e> (who needs portability?)
20:51:25 <wob_jonas> like brainfuck where you move between variables near each other?
20:52:13 <ais523> say you can only do commands like "g = h + y" (because those keys form a triangle so you can mention all three variables in the same statement)
20:52:22 <ais523> ideally we'd need a way to make the restriction actually matter though
20:57:00 -!- trn has quit (K-Lined).
21:05:30 -!- Reece` has quit (Ping timeout: 244 seconds).
21:16:20 -!- vmunix has changed nick to ybden.
21:21:33 -!- Kaynato has joined.
21:30:09 -!- hppavilion has joined.
21:30:50 -!- atrapado has quit (Quit: Leaving).
21:52:07 -!- daddle has joined.
21:52:13 -!- daddle has left.
21:52:15 -!- JX7P has left ("Leaving").
21:58:25 -!- MDude has quit (Remote host closed the connection).
22:03:34 <HackEgo> [wiki] [[Talk:SPAM/1]] https://esolangs.org/w/index.php?diff=49853&oldid=38765 * Zzo38 * (+697)
22:12:09 -!- hppavilion has quit (Ping timeout: 248 seconds).
22:13:11 <HackEgo> Cats are cool, but should be illegal.
22:13:27 <HackEgo> fizzie evilipse int-e ais523 oerjan elliott Roujo
22:13:40 <ais523> how does that differ from `culprits?
22:13:40 <HackEgo> 2016-09-25 <fizzie> revert 942e964c81c1 \ 2016-09-25 <evilipse> ` chmod 777 / -R \ 2015-08-13 <int-e> revert accbc9c5c7ec \ 2015-08-12 <ais523> echo wisdom/* | shuf | head -n 10 | xargs rm \ 2014-03-16 <oerjan> revert \ 2014-03-16 <elliott> revert 1 \ 2013-08-29 <Roujo> echo Cats are cool, but should be illegal. > wisdom/cat
22:14:20 <shachaf> Wasn't there a version of dowg that showed older entries first?
22:14:30 <HackEgo> bin/ploki \ bin/udcli \ bin/emmental \ bin/luac \ bin/macro \ bin/multicode \ bin/jq \ bin/seens \ bin/¿ \ bin/searchlog \ bin/gs2.py \ bin/7za \ bin/lua \ bin/tclkit \ bin/shove \ bin/units
22:15:04 <shachaf> Hmm, I want to call it rowg. But that's ambiguous between dowg and howg
22:15:17 <HackEgo> hoag "wisdom/$1" \ doag "wisdom/$1"
22:36:13 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:46:59 -!- augur has quit (Remote host closed the connection).
22:52:10 -!- hppavilion has joined.
22:58:36 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
23:03:32 -!- hppavilion has quit (Ping timeout: 252 seconds).
23:04:49 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
23:06:57 -!- Phantom_Hoover has joined.
23:10:23 -!- idris-bot has joined.
23:13:08 -!- burden-- has joined.
23:31:45 -!- MoALTz has quit (Quit: Leaving).
23:33:39 -!- augur has joined.
23:35:26 -!- DHeadshot has quit (Ping timeout: 265 seconds).
23:35:30 -!- Frooxius has quit (Quit: *bubbles away*).