←2015-07-24 2015-07-25 2015-07-26→ ↑2015 ↑all
00:00:21 -!- Herbalist has joined.
00:00:21 -!- Herbalist has quit (Changing host).
00:00:21 -!- Herbalist has joined.
00:00:55 <oerjan> instance Functor (Fnord t a) where fmap f (Fn g) = Fn (f . g); fmap f (Cons g b fn) = Cons (f . g) b fn
00:00:58 <oerjan> i think
00:02:49 -!- Herbalist has left.
00:03:27 <oerjan> instance Category (Fnord t) where id = Fn id; Fn f . x = fmap f x; Cons f b fn . x = Cons f b (fn . x)
00:03:43 * oerjan should test this
00:05:46 <oerjan> good, compiled on first try
00:06:58 <oerjan> shachaf: now we just need to show it has no products twh
00:07:17 <shachaf> when did i get involved in this tdnh
00:07:17 <oerjan> ok, and maybe that it actually satisfies the laws
00:07:37 <oerjan> oh wait i forgot the Category one
00:07:58 <oren> good eivng
00:08:19 <oerjan> still compiling
00:08:40 <oerjan> oren: good vineig
00:09:27 <oerjan> shachaf: well i just figured that free constructions are ideal for making something that satisfies no more laws than necessary
00:09:39 <shachaf> oerjan: whoa
00:09:42 <shachaf> innovative
00:10:02 <oerjan> I NO RIGHT?
00:10:12 <oerjan> *RITE
00:10:34 * oerjan ponders renaming Fnord to something better
00:10:49 <shachaf> oerjan: ok, now explain free topological spaces twh
00:10:51 <oerjan> FreeCF maybe
00:11:53 <oren> idea: a language that brings back line numbers
00:11:58 <oerjan> shachaf: i don't remember what those are, or if they even exist
00:12:08 <oerjan> oren: have you looked at FORTE
00:12:23 <shachaf> oerjan: a free topological space on a set is just the discrete space with that set as points
00:12:26 <shachaf> maximally boring tdnh
00:12:35 <oerjan> i think ais523 basically used up line number esolangs with that one
00:12:44 <oerjan> or wait there's also SMETANA
00:12:46 <shachaf> (the cofree topological space is indiscrete)
00:13:08 <oerjan> well we have ways to make it stop talking
00:14:05 -!- hppavilion[1] has joined.
00:14:26 <Taneb> oren, check out Whenever
00:15:01 <oerjan> hm i gave the t (now renamed base) the wrong kind
00:15:34 <oerjan> fortunately it's only used wrongly in one spot
00:16:25 <oerjan> Taneb: looks like we have a lot of line number languages, then
00:16:39 <Taneb> 3 is not that many
00:16:51 <Taneb> However I will admit the category is looking rather crowded
00:18:28 <oren> I was thinking like this: you have math, and computed goto, and nothing else tpo work with
00:19:31 <oren> so a statement is like
00:19:56 <oren> 140 goto X*10+120
00:20:20 <oren> or 140 X=Y+70
00:21:03 <oerjan> the Functor laws are obvious from the code, anyway
00:21:05 <oren> and there is no other types of stements (maybe data deifnitions for extra fortranity??)
00:21:06 * ski . o O ( "The intrinsic topology of a Martin-Löf universe" by Martín H. Escardó in 2012-03 at <http://www.cs.bham.ac.uk/~mhe/papers/> (14),"The universe is indiscrete" by Martín Escardó,Thomas Streicher in 2013-11-16 at <http://www.cs.bham.ac.uk/~mhe/papers/universe-indiscrete.pdf> )
00:21:28 <Taneb> oren, I presume you also have some arithmetic
00:21:34 <shachaf> The universe is surely connected.
00:21:43 <Taneb> oren, do we have IO (even memory-mapped?)
00:21:55 <shachaf> https://plus.google.com/+ShachafBenKiki/posts/8Vkzum3WL7G
00:21:58 <Taneb> oren, can we change the labels
00:22:00 <oren> Yeah maybe something like PRINT X
00:22:13 <shachaf> ski: this effective topos thing seems to be pretty effective
00:22:22 <oren> Or READ X," ",Y
00:22:41 <oren> I'll make a preliminary spec
00:22:47 <Taneb> I'm gonna head to bed
00:24:46 <ski> shachaf : mhm ?
00:25:07 <shachaf> i guess i should learn about it
00:25:46 <hppavilion[1]> http://www.dangermouse.net/esoteric/haifu.html
00:26:38 <Taneb> hppavilion[1], that language has no flow control!
00:26:55 <hppavilion[1]> It doesn't?
00:26:58 <hppavilion[1]> Huh
00:27:48 -!- tromp__ has joined.
00:36:59 <oerjan> the Category laws for id also clearly hold
00:39:18 <oerjan> Cons f b fn = Cond f b id . fn
00:39:22 <oerjan> *Cons
00:45:14 <oerjan> = (Fn f . Cond id b id) . fn
00:45:20 <oerjan> *Cons
00:50:45 -!- comodvs has joined.
00:54:32 * oerjan convinces himself the Category laws hold
01:03:41 <hppavilion[1]> I've decided that, based on Haifu, I'm going to create a whole assortment of esolangs based on various philosophies
01:04:06 <hppavilion[1]> As a project to "Improve understanding between cultures using programming"
01:04:12 <hppavilion[1]> But mostly just because it sounds fun
01:06:37 -!- variable has joined.
01:09:33 <oren> http://www.orenwatson.be/ideaforlanguage.htm
01:10:34 <oren> 10 PRINT "HELLO WORLD",CHR(10)
01:11:23 <oren> 20 READ CHR(N),CHR(A),CHR(M),CHR(E)
01:11:38 <oren> 30 NEXTCARD
01:12:03 <oren> 40 PRINT "HI, ",CHR(N),CHR(A),CHR(M),CHR(E)
01:12:22 <oren> 50 PRINT CHR(10)
01:14:23 <mauris_> did you invent basic
01:15:20 <mauris_> mmm, basic with only GOTO EXPR
01:16:37 <mauris_> SGN() makes it really easy to just implement a boring conditional GOTO though
01:22:01 -!- Kendrian has joined.
01:22:06 <oren> hello
01:22:25 <Kendrian> hi
01:23:13 <oren> `relcome
01:23:14 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
01:23:16 -!- boily has joined.
01:23:52 <oren> 今晩はボアリ
01:24:16 <boily> オレンさん今晩は!
01:24:22 <zzo38> It is different from BASIC clearly by such example, as normally in BASIC the READ command is for reading DATA command inside of the program, and print is automatically to next line unless you put a semicolon, and a comma in a PRINT command will make tabulation instead.
01:24:24 <boily> お元気ですか?
01:24:31 <boily> @metar CYQB
01:24:31 <lambdabot> CYQB 250100Z 08012KT 050V110 15SM FEW012 SCT050 BKN095 15/12 A3001 RMK SC2SC2AC3 SLP162
01:24:36 <boily> @metar ENVA
01:24:36 <lambdabot> ENVA 250050Z VRB02KT 9999 VCSH SCT036 NKN049 11/09 Q1010 RMK WIND 670FT VRB01KT
01:24:58 <zzo38> In such program will "NEXTCARD" mean that it only reads the first four characters from the first card, or what?
01:25:10 <boily> kørjanbanwa. the weather here is norwegianish.
01:25:21 <oren> はい元気です! これを見てて:http://www.orenwatson.be/ideaforlanguage.htm
01:25:39 <oren> yeah
01:26:00 <oren> NEXTCARD skips past the next newline character in input stream
01:26:21 <boily> オォ いいディザイン!
01:28:22 <Kendrian> How would using functions on the variables in N READ X, Y, ... look?
01:30:22 <oren> 10 READ CHR(X),HEX(Y),CHR(Z) can read "XFF00FFQ" as X='X', Y=0xFF00FF Z='Q'
01:30:46 <oerjan> bohaily
01:31:16 <Kendrian> Gotcha.
01:31:20 <zzo38> Ah, OK
01:31:33 <oren> if two number-reading ones are in a row like READ X,Y a space is allowed in betweeen
01:31:46 <oren> so READ X,Y can read "10 20"
01:31:53 <zzo38> It can make sense, if a function is defined as an input pattern (as well as an output pattern and/or a normal function)
01:32:08 <Kendrian> Might need a precedence rule for parsing that; i.e., what if I meant X to be "XFF" and Y is 0x00FF
01:32:34 <Kendrian> Just separating them with spaces sounds like the way to go.
01:33:24 <oren> spaces are skipped between HEX() OCT() and regular reads but not between CHR() and ony others
01:33:57 <oren> I'll need to document this
01:34:50 <Kendrian> I had a slow couple of days at work and started reading up on some of the esolangs. Implementing them is kind of fun, yours wouldn't be real hard
01:42:10 -!- Kendrian has quit (Quit: Page closed).
01:44:52 -!- Wallacoloo has joined.
01:45:23 -!- boily has quit (Quit: BASAL CHICKEN).
01:50:53 -!- mauris_ has quit (Ping timeout: 246 seconds).
01:58:56 <oren> people should not write the word dubstep as ワコ乃ちナモア
02:00:39 <oren> I spent 3 minutes staring at it and looking it up in dictionaries before I figured it out
02:01:18 <Wallacoloo> Oh my
02:01:29 <oren> well its more like ワ凵乃ちナモア
02:01:40 <oren> https://www.youtube.com/watch?v=AxYeBrQ6W_o
02:14:23 -!- oerjan has quit (Quit: !).
02:24:50 -!- shikhin has quit (Ping timeout: 240 seconds).
02:27:14 -!- shikhin has joined.
02:28:36 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
02:31:56 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:49:32 -!- Forge| has joined.
02:49:47 -!- Forge| has left.
02:50:00 <oren> 0h shit! ▒☺ ggg
03:16:41 -!- |f`-`|f has quit (Ping timeout: 244 seconds).
03:18:45 -!- |f`-`|f has joined.
03:39:54 <zzo38> Why doesn't the bell work in XTerm(297)?
03:55:14 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
03:56:14 -!- Wright_ has joined.
03:56:14 -!- Wright has quit (Read error: Connection reset by peer).
04:13:10 -!- MDude has changed nick to MDream.
04:16:06 -!- Sgeo_ has quit (Ping timeout: 244 seconds).
04:25:33 -!- Sgeo has joined.
04:35:26 -!- comodvs has quit (Ping timeout: 272 seconds).
05:12:22 <oren> right, it's 1 am, time to write some CGI in C!
05:17:39 <Jafet> `unicode 000D
05:17:52 <HackEgo> No output.
05:18:00 <Jafet> `multicode U+D
05:18:10 <HackEgo> U+000D <control> \ UTF-8: 0d UTF-16BE: 000d Decimal: &#13; \
05:20:23 <Jafet> What does irc use \r for?
05:29:56 -!- Wallacoloo has quit (Quit: Leaving.).
05:53:35 -!- hppavilion[1] has joined.
05:53:40 <hppavilion[1]> So
06:02:06 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
06:30:37 -!- tromp__ has quit (Remote host closed the connection).
06:48:43 -!- hppavilion[1] has joined.
06:56:59 * ski stares at hppavilion[1]
06:57:22 * hppavilion[1] does something horribly perverse, thus scarring ski for life
06:57:55 * ski idly wonders what the converse of perverse is
06:58:39 <hppavilion[1]> The inverse is something pure and unperverse. Like anything a kitten does
06:58:44 <hppavilion[1]> Not sure about the converse though
06:58:50 <oren> http://www.orenwatson.be/bbs.htm
07:00:01 <oren> my program puts the C back in CGI
07:04:05 <oren> http://www.orenwatson.be/bbssendrecv.asc
07:31:07 -!- tromp__ has joined.
07:36:30 -!- tromp__ has quit (Ping timeout: 244 seconds).
08:12:07 <fowl> Doesn't work on my mobile cellphone
08:31:50 -!- AnotherTest has joined.
08:38:03 -!- AnotherTest has quit (Ping timeout: 244 seconds).
09:25:24 -!- J_A_Work has joined.
09:31:37 -!- tromp__ has joined.
09:35:15 -!- Phantom_Hoover has joined.
09:36:02 -!- tromp__ has quit (Ping timeout: 260 seconds).
09:46:48 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
09:51:25 -!- J_A_Work has quit (Ping timeout: 244 seconds).
10:03:51 -!- x10A94 has joined.
10:45:25 -!- atslash has joined.
11:03:51 -!- FireFly has quit (Ping timeout: 255 seconds).
11:34:45 -!- EdanCorin has joined.
11:38:08 -!- FireFly has joined.
11:43:15 -!- EdanCoriin has joined.
11:46:56 -!- EdanCorin has quit (Ping timeout: 265 seconds).
12:21:00 -!- tromp__ has joined.
12:25:10 -!- tromp__ has quit (Ping timeout: 240 seconds).
12:31:36 -!- Wright_ has quit (Ping timeout: 255 seconds).
12:36:25 -!- EdanCoriiin has joined.
12:40:35 -!- EdanCoriin has quit (Ping timeout: 265 seconds).
12:43:11 -!- EdanCoriiin has changed nick to EdanCorin.
12:48:48 -!- oerjan has joined.
12:54:34 <oerjan> @tell hppavilion[1] <hppavilion[1]> The inverse is something pure and unperverse. Like anything a kitten does <-- um, don't look up "kitten catching mice" hth
12:54:34 <lambdabot> Consider it noted.
12:55:08 * oerjan <-- destroying innocence 1 step at a time
12:55:20 <izabera> a couple of steps
12:55:43 <izabera> that's evil, it can't be a single step
12:55:50 <oerjan> OKAY
12:56:47 -!- FireFly has quit (Ping timeout: 252 seconds).
12:56:50 * oerjan suddenly reminded of the kitten in Narbonic
12:58:05 <oerjan> izabera: the second evil part is where i didn't watch the whole video myself hth
12:58:58 <izabera> so you're a mathematician aren't you
12:59:31 <oerjan> somewhat, you could call it "mostly retired"
12:59:54 <izabera> are you enough of a mathematician to be able to divide two numbers?!
13:00:09 <oerjan> assuming the second one isn't 0, possibly
13:00:33 <izabera> what if the divisor is > 1234 bits long?
13:00:35 * oerjan does know long division
13:00:52 <oerjan> then i have my trusty ghci in another window.
13:01:18 <izabera> are you enough of a mathematician to be able to teach me how to divide two numbers?!
13:01:29 * izabera needs an algorithm for long division
13:01:37 <oerjan> eep
13:01:51 <izabera> no rly x.x
13:01:55 <oerjan> by hand?
13:02:18 <oerjan> because it's easier in binary if you have a computer
13:02:24 <izabera> i do have a computer
13:02:32 <Phantom_Hoover> i can do long division but only on polynomials
13:02:40 <izabera> my computer can divide numbers up to 2 ** 63 -1
13:03:02 <oerjan> ok so your problem is really with bignums
13:03:10 <izabera> yep
13:03:25 <oerjan> have you considered the gmp library?
13:03:45 <izabera> yep but that's not reinventing the wheel so i discarded it
13:03:48 <oerjan> ic
13:04:44 <izabera> also my language has basically no way to interact with gmp
13:05:17 <oerjan> step 1 is to implement addition/subtraction, bit shifting and comparison so you have the pieces for the algorithm
13:05:35 <izabera> addition/subtraction: done
13:05:42 <izabera> comparison: done
13:05:48 <oerjan> good
13:06:03 <izabera> ò_ò https://github.com/izabera/bashmathlib
13:06:47 <izabera> there's a repl, try it \o/
13:06:47 <myndzi> |
13:06:47 <myndzi> /|
13:06:55 <oerjan> left shift the divisor until its leftmost bit is in the same spot as the leftmost bit of the dividend.
13:07:14 <izabera> i'm so glad that myndzi didn't add a penis
13:07:16 <oerjan> keep track of how much you shifted
13:07:36 <izabera> what if i'm doing all my calculations in base 10?
13:07:43 <izabera> i can shift in base 10
13:07:49 <oerjan> then it becomes much more complicated
13:08:11 <oerjan> in that case, calculate multiples 1..9 of the divisor.
13:08:28 <izabera> ok got it
13:08:49 <oerjan> shift left until they have the same leftmost digit spot
13:09:35 <oerjan> let the current remainder = the dividend
13:10:09 <oerjan> find which bracket of shifted divisor multiples the current remainder is in
13:10:14 -!- GeekDude has joined.
13:10:35 <oerjan> (it's possible that it's 0-1, but only on the first step. if so, shift the divisor once right.)
13:11:02 <oerjan> btw the bracket is inclusive to the left and exclusive to the right
13:11:23 <oerjan> the lower bracket gives you the first digit of the quotient
13:11:49 <oerjan> now subtract the corresponding shifted multiple from the current remainder
13:11:49 <izabera> i don't really have to compute all of the 1..9 multiples right?
13:12:08 <oerjan> um that's why do in practice when i have to do it by hand.
13:12:11 <oerjan> *what i
13:12:27 <izabera> well but i need at most all of them
13:12:56 <izabera> i can start with 1, then test if it's > number, else test with 2, else 3...
13:13:14 <oerjan> izabera: well the thing is you'll be doing this _several_ times.
13:13:31 <izabera> oh
13:13:41 <izabera> thank you for pointing it out
13:13:57 <izabera> wow thanks a lot really
13:14:01 <izabera> i feel so dumb
13:14:43 <oerjan> although you _could_ avoid the multiplying by using a bit more subtracting, hm...
13:15:26 <oerjan> let's try that. it might not be that much worse (unless you're actually binary searching the digits, which is probably _really_ complicated)
13:16:19 <oerjan> so, don't calculate the multiples. compare the shifted divisor to the remainder. if the divisor is smaller, subtract it, and increment the result variable.
13:16:49 <izabera> i already have the multiplication
13:17:15 * izabera codes codes codes
13:17:24 <oerjan> well your choice.
13:17:38 <oerjan> it's equivalent, anyway
13:18:01 <izabera> yes but i want the division to go up to any arbitrary precision...
13:18:03 <oerjan> *smaller or equal
13:18:39 <oerjan> izabera: you're not using multiples _larger_ than 9, anyway ... for that you shift instead.
13:18:55 <izabera> yes and...?
13:19:07 <izabera> sorry i may be missing something obvious again
13:20:02 <oerjan> anyway, if the divisor is greater instead, then shift it rightwards, and also shift the result variable leftwards by the same amount.
13:20:17 <izabera> yes yes ok
13:20:34 <oerjan> (amount = 1 probably)
13:21:44 <oerjan> eventually, you shift the divisor all the way back to where it was. when it then becomes greater, either stop (if you are doing integer division), or insert a decimal point.
13:22:43 <oerjan> if you insert a decimal point, hm, now i think instead of shifting the divisor rightwards you should shift the remainder leftward.
13:23:23 <izabera> thank youu <3
13:23:24 <oerjan> those are basically equivalent, since only the relative position matters.
13:23:52 <oerjan> i hope you're testing this :P
13:24:04 <izabera> yeah
13:41:50 <Jafet> Now tempted to write a karatsuba division in bash
13:42:24 <izabera> it's gonna be slow anyway
13:42:58 <izabera> my version computes 2^1000 in 1.9s
13:50:10 <Jafet> The last time I implemented bignums, I just went with newton division. It worked well.
13:50:57 -!- mauris has joined.
13:52:25 -!- tromp__ has joined.
13:52:45 -!- boily has joined.
13:57:12 -!- tromp__ has quit (Ping timeout: 272 seconds).
13:59:00 <oerjan> right, long division is obviously not the fanciest, most efficient method.
14:00:55 -!- tromp__ has joined.
14:03:57 <Jafet> That's why I didn't implement it at all.
14:10:00 -!- Patashu has quit (Ping timeout: 264 seconds).
14:13:59 -!- FireFly has joined.
14:15:00 <Jafet> > pi ** pi :: CReal
14:15:02 <lambdabot> 36.4621596072079117709908260226921236663655
14:15:11 <Jafet> @src (**)
14:15:11 <lambdabot> Source not found. Listen, broccoli brains, I don't have time to listen to this trash.
14:16:04 <boily> int-e: int-ello. since when has lambdie included creative replies like that?
14:16:18 <Jafet> @src (^^)
14:16:18 <lambdabot> x ^^ n = if n >= 0 then x^n else recip (x^(negate n))
14:16:19 <boily> hellørjan, Jafellot.
14:17:32 <Jafet> @src (^)
14:17:32 <lambdabot> x ^ 0 = 1
14:17:32 <lambdabot> x ^ n | n > 0 = f x (n-1) x
14:17:32 <lambdabot> where f _ 0 y = y
14:17:32 <lambdabot> f x n y = g x n
14:17:32 <lambdabot> where g x n | even n = g (x*x) (n `quot` 2)
14:17:34 <lambdabot> | otherwise = f x (n-1) (x*y)
14:17:36 <lambdabot> _ ^ _ = error "Prelude.^: negative exponent"
14:18:03 -!- mauris_ has joined.
14:19:11 <Jafet> boillehy. Looks like lambdabot's got my number.
14:19:56 <boily> you have broccoli brains?
14:21:38 -!- mauris has quit (Ping timeout: 244 seconds).
14:21:55 -!- mauris has joined.
14:22:37 <Jafet> The doctor says it's romanesco. Children loathe and fear it.
14:23:00 <oerjan> helloily. since always hth
14:23:17 -!- mauris_ has quit (Ping timeout: 240 seconds).
14:23:52 * oerjan is amused that other people are still keeping the descendant of his Unlambda.hs working
14:24:10 <oerjan> and also, i'm wondering what that Int is for...
14:24:56 <oerjan> @unlambda ``.h.ii
14:24:56 <lambdabot> hi
14:25:20 <oerjan> Jafet: (**) is an actual method, so no common impl.
14:27:18 <int-e> boily: e6291f79 (Don Stewart 2007-01-06 07:07:31 +0000 136) "Listen, broccoli brains, I don't have time to listen to this trash.",
14:27:21 <Jafet> Well, cala me brese, I didn't notice that.
14:29:04 <oerjan> Jafet: is that also a brassica pun, i'm not sure i can keep up with those
14:30:09 <int-e> in fact, 876e6076 (Don Stewart 2006-12-31 10:13:48 +0000 174) "Listen, broccoli brains, I don't have time to listen to this trash.",
14:30:35 <int-e> but that was specific to @quote; e6291f79 made the insults generally available in lambdabots' Lib.Util :P
14:30:53 * boily mapoles Jafet
14:31:26 <int-e> btw is there some trick to make git annotate *not* check whether a file exists first? This is rather annoying for archeology tasks
14:31:47 <Jafet> Looks like the default implementation of x**y is just exp (y ln x)
14:31:58 <int-e> ah. need to use --
14:33:39 <boily> @src thatThingThatDoesntExist
14:33:39 <lambdabot> Source not found. Have you considered trying to match wits with a rutabaga?
14:36:46 <int-e> oh: there's this comment above the list of insults: -- Amusing insults from OpenBSD sudo
14:37:09 -!- atrapado has joined.
14:38:58 <oerjan> ok the Int is for bounding no. of steps, it seems
14:41:56 -!- boily has quit (Quit: SCOTCH CHICKEN).
14:41:59 <Taneb> Aaaaaaaah
14:43:07 <oerjan> Taneb: what's so scary
14:43:18 <Taneb> I don't know
14:43:21 <Taneb> Scrollback I think
14:44:13 <oerjan> ah
14:46:33 -!- EdanCorin has quit (Quit: Leaving).
14:52:19 -!- tromp__ has quit (Remote host closed the connection).
14:56:46 -!- MDream has changed nick to MDude.
15:03:18 <quintopia> helloily
15:07:50 -!- Frooxius has quit (Ping timeout: 246 seconds).
15:08:02 -!- Phantom_Hoover has quit (Remote host closed the connection).
15:08:48 -!- Frooxius has joined.
15:26:25 -!- Phantom_Hoover has joined.
15:41:26 -!- atslash has quit (Read error: Connection reset by peer).
15:42:06 -!- atslash has joined.
16:03:13 <oren> OK, now it's finally working
16:03:23 <oren> http://www.orenwatson.be/bbs.htm
16:10:23 -!- Wright has joined.
16:10:44 <MDude> oren: I see it.
16:10:56 <MDude> Also, hi Wright.
16:11:04 <Wright> oi
16:11:27 <oren> hi\
16:11:48 -!- mauris has quit (Ping timeout: 265 seconds).
16:36:41 -!- Phantom_Hoover has quit (Remote host closed the connection).
16:40:46 -!- Phantom_Hoover has joined.
16:40:48 -!- tromp__ has joined.
16:43:48 -!- _256Q has joined.
16:45:16 -!- tromp__ has quit (Ping timeout: 244 seconds).
16:53:16 -!- oerjan has quit (Quit: leaving).
17:05:01 -!- atslash has quit (Quit: This computer has gone to sleep).
17:07:07 -!- mauris has joined.
17:12:15 -!- mauris_ has joined.
17:15:14 -!- mauris has quit (Ping timeout: 244 seconds).
17:42:15 -!- tromp__ has joined.
17:46:41 -!- tromp__ has quit (Ping timeout: 244 seconds).
18:13:49 -!- AnotherTest has joined.
18:36:00 -!- key has joined.
18:37:17 -!- key has quit (Client Quit).
18:37:36 -!- key has joined.
18:37:48 -!- key has quit (Client Quit).
18:52:39 -!- boily has joined.
18:54:27 -!- ais523 has joined.
18:58:32 -!- Wallacoloo has joined.
19:03:19 -!- Wallacoloo has quit (Client Quit).
19:03:28 -!- Wallacoloo has joined.
19:04:41 <mroman> fnard.
19:07:25 <boily> fnard?
19:12:54 <mroman> fnord with an a
19:13:26 <int-e> how innavative
19:13:59 <boily> Sir Fungellot does not fnord, mraman fnards.
19:14:37 <Taneb> fizzie, how does fungot do its network IO?
19:14:38 <fungot> Taneb: should it do when it is the best house music?. furthermore, if s/ he? or was that fashionable exageration?" i think i'd expect slow-fast-value in a lisp compiler, traditionally ( and still have the fields side-a and side-b
19:15:45 <Taneb> ^source
19:15:45 <fungot> https://github.com/fis/fungot/blob/master/fungot.b98
19:29:40 <zzo38> "Fnard" is the new kind of "fnord".
19:30:51 <zzo38> Is that what it is?
19:31:46 <Taneb> zzo38, which esolang would you recommend for writing a Gopher server in?
19:33:18 <shachaf> Isn't zzo38's Gopher server written in BASIC or something?
19:33:26 <shachaf> No reason to use an esolang.
19:33:27 <zzo38> Taneb: I don't know yet
19:33:46 <zzo38> shachaf: I did use BASIC at first but now I will write the new one in C instead I think
19:34:53 <zzo38> If you do want to use a esolang, use whatever one you prefer to do, preferably one that you can do file access
19:35:34 <Taneb> File access and network IO
19:35:40 <Taneb> I do not know of any that can do either
19:35:52 <Taneb> Apart from Befunge-98, depending on the fingerprints the interpreter has
19:36:25 <zzo38> If you can't do network function then you could still use inetd for that though
19:37:07 <Taneb> I guess that is true
19:38:25 <fizzie> Taneb: There's a Funge-98 fingerprint for POSIX sockets.
19:38:38 <fizzie> Taneb: Well, a subset of POSIX sockets. It's IPv4-only, for one thing. And doesn't do DNS lookups.
19:38:40 <Taneb> fizzie, where is that documented?
19:38:55 <fizzie> Taneb: http://www.rcfunge98.com/rcsfingers.html#SOCK
19:39:07 <zzo38> Do make a gopher server you shouldn't need to do DNS lookups
19:39:24 <fizzie> Fun fact: from what I recall, the UNIX domain socket address family that's "nominally supported" is impossible to use.
19:39:30 <fizzie> And/or implement.
19:41:18 <fizzie> "ct=1 and pf=1 are a broken spec and should not be implemented. Usage of either of these should reflect." There used to be more about them, but they couldn't be done.
19:41:48 -!- tromp__ has joined.
19:42:43 <Taneb> Thank you fizzie and zzo38
19:46:11 -!- tromp__ has quit (Ping timeout: 256 seconds).
19:52:58 <fizzie> Vorpal was drafting a "NSCK" that would've been more getaddrinfo-ish and capable of writing IP version agnostic Funge code.
19:53:34 <ais523> zzo38: you need DNS lookups to connect to gopher sites if you know the domain name but not the URL
19:53:43 <ais523> which is the normal situation
19:57:07 <zzo38> Yes, if you are making a client
19:57:44 <zzo38> If you are making a server, you would just configure the domain name.
20:01:57 <ais523> oh yes, the server doesn't need a DNS
20:07:43 -!- mauris__ has joined.
20:11:32 -!- mauris_ has quit (Ping timeout: 265 seconds).
20:12:23 -!- mauris_ has joined.
20:15:47 -!- Frooxius has quit (Quit: *bubbles away*).
20:16:00 -!- Frooxius has joined.
20:16:00 -!- mauris__ has quit (Ping timeout: 255 seconds).
20:16:47 -!- h0rsep0wer has joined.
20:20:02 -!- __256Q has joined.
20:21:41 -!- _256Q has quit (Ping timeout: 265 seconds).
20:21:49 -!- __256Q has changed nick to _256Q.
20:22:02 -!- _256Q has quit (Client Quit).
20:22:14 -!- _256Q has joined.
20:40:41 <oren> variable names are base64-encoded 64 bit integers
20:42:08 <oren> hmm maybe that's dumb
20:42:15 <variable> oren: um, wat?
20:42:24 <oren> what is a prime close to 2^64
20:42:40 <oren> er and below it
20:42:47 <boily> variablello!
20:43:37 <oren> variable: I want to have variables in my program without storing the names as strings
20:43:42 <variable> oren: 2^64+13 ?
20:44:07 <variable> oh, and below?
20:44:36 <zzo38> What is reasonable setting for xinetd.conf (for instances, per_source, cps, max_load)?
20:45:33 <oren> ooh! https://primes.utm.edu/lists/2small/0bit.html
20:45:35 -!- Wallacoloo has quit (Ping timeout: 246 seconds).
20:47:32 <variable> oren: curious, why do you need them?
20:58:06 <oren> I want implement http://www.orenwatson.be/ideaforlanguage.htm
20:58:59 <oren> and I'mma make to code for variables more genral so I can reuse it later
21:00:35 <oren> There are a few other ideas for languages I want to try. a unified variable-sotrage solution would be useful
21:04:19 -!- ais523 has quit.
21:09:18 <variable> oren: ack
21:10:20 <oren> enq?
21:18:15 -!- _256Q has quit (Read error: Connection reset by peer).
21:31:14 -!- tromp__ has joined.
21:33:04 <zzo38> Add the stable unofficial opcodes too into 6502 codes table (mark them with asterisk or lowercase to tell the differences)
21:33:07 -!- tromp__ has quit (Read error: Connection timed out).
21:54:14 -!- ais523 has joined.
21:57:52 <HackEgo> [wiki] [[Special:Log/newusers]] create * 0x29afucks * New user account
21:58:17 <HackEgo> [wiki] [[Cellbrain]] M http://esolangs.org/w/index.php?diff=43574&oldid=40986 * 0x29afucks * (-3) NIGGA!!!!!!!!!!!
21:58:39 <HackEgo> [wiki] [[Special:Log/move]] move * 0x29afucks * moved [[Cellbrain]] to [[Lolwut u bogan cunt]]
22:01:47 <mauris_> well
22:03:45 -!- oerjan has joined.
22:07:59 -!- mauris_ has changed nick to mauris.
22:08:24 -!- atrapado has quit (Quit: Leaving).
22:11:15 <ski> zzo38 : what are you doing ?
22:11:34 -!- AnotherTest has quit (Ping timeout: 260 seconds).
22:13:15 <zzo38> ski: What do you think I am doing?
22:14:33 <HackEgo> [wiki] [[Antonio Maschio]] http://esolangs.org/w/index.php?diff=43577&oldid=8603 * 0x29afucks * (-300) Replaced content with "anus"
22:15:00 <HackEgo> [wiki] [[You are Reading the Name of this Esolang]] http://esolangs.org/w/index.php?diff=43578&oldid=18245 * 0x29afucks * (-1777) Replaced content with "Surprise Buttsecks!"
22:15:17 <HackEgo> [wiki] [[Brainfuck/w/index.php?title=Talk:Brainfuck/index.php]] http://esolangs.org/w/index.php?diff=43579&oldid=30423 * 0x29afucks * (-3665) Replaced content with "Buttsecks"
22:15:51 <HackEgo> [wiki] [[Alisj]] http://esolangs.org/w/index.php?diff=43580&oldid=40958 * 0x29afucks * (-165) Replaced content with "F7U12"
22:15:55 <HackEgo> [wiki] [[Special:Log/block]] block * Oerjan * blocked [[User:0x29afucks]] with an expiry time of indefinite (account creation disabled): Inserting nonsense/gibberish into pages
22:17:25 <HackEgo> [wiki] [[Lolwut u bogan cunt]] M http://esolangs.org/w/index.php?diff=43581&oldid=43575 * Oerjan * (+3) Reverted edits by [[Special:Contributions/0x29afucks|0x29afucks]] ([[User talk:0x29afucks|talk]]) to last revision by [[User:Oerjan|Oerjan]]
22:17:44 <zzo38> I am writing a gopher server in C right now
22:18:12 <HackEgo> [wiki] [[User talk:0x29afucks]] N http://esolangs.org/w/index.php?oldid=43582 * 0x29afucks * (+42) Created page with "'''CC0!!!!!!!!!!!!!!!!!!!!!!''' fken nuub"
22:18:56 <HackEgo> [wiki] [[Special:Log/move]] move_redir * Oerjan * moved [[Lolwut u bogan cunt]] to [[Cellbrain]] over redirect: Vandalism
22:19:45 <HackEgo> [wiki] [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:0x29afucks]]": Vandalism
22:19:53 <HackEgo> [wiki] [[Antonio Maschio]] M http://esolangs.org/w/index.php?diff=43584&oldid=43577 * Oerjan * (+300) Reverted edits by [[Special:Contributions/0x29afucks|0x29afucks]] ([[User talk:0x29afucks|talk]]) to last revision by [[User:Safalra|Safalra]]
22:19:56 <HackEgo> [wiki] [[You are Reading the Name of this Esolang]] M http://esolangs.org/w/index.php?diff=43585&oldid=43578 * Oerjan * (+1777) Reverted edits by [[Special:Contributions/0x29afucks|0x29afucks]] ([[User talk:0x29afucks|talk]]) to last revision by [[User:92.233.174.117|92.233.174.117]]
22:19:58 <HackEgo> [wiki] [[Brainfuck/w/index.php?title=Talk:Brainfuck/index.php]] M http://esolangs.org/w/index.php?diff=43586&oldid=43579 * Oerjan * (+3665) Reverted edits by [[Special:Contributions/0x29afucks|0x29afucks]] ([[User talk:0x29afucks|talk]]) to last revision by [[User:Ehird|Ehird]]
22:20:03 <HackEgo> [wiki] [[Alisj]] M http://esolangs.org/w/index.php?diff=43587&oldid=43580 * Oerjan * (+165) Reverted edits by [[Special:Contributions/0x29afucks|0x29afucks]] ([[User talk:0x29afucks|talk]]) to last revision by [[User:Oerjan|Oerjan]]
22:21:28 <ais523> huh, is that Esolang's first actual vandal?
22:21:34 <APic> lol
22:21:50 <ais523> oerjan and I did get everything between us, just checked to make sure
22:22:37 <oerjan> good
22:24:19 <HackEgo> [wiki] [[Special:Log/block]] reblock * Oerjan * changed block settings for [[User:0x29afucks]] with an expiry time of indefinite (account creation disabled, email disabled, cannot edit own talk page): Inserting nonsense/gibberish into pages, including own talk page
22:24:46 <oerjan> i figure if you spam your own talk page, you lose the block exception for it.
22:25:30 <ais523> oerjan: that is a rule, although I'd typically prefer to wait for the second time
22:26:25 <oerjan> ah
22:28:28 <quintopia> boilyhello
22:29:49 <oerjan> boi'alloy
22:31:58 <oerjan> oh it's allô
22:32:10 <oerjan> since when did that word have an elided s
22:32:33 <ski> zzo38 : i'm not sure. perhaps something relates to an emulator ?
22:36:08 <zzo38> ski: I do not quite understand you should try to be more specific please
22:36:52 <ski> you were making a remark about 6502 unofficial opcodes
22:38:41 <zzo38> Yes, oren's list of 6502 opcodes doesn't include the unofficial opcodes. The stable ones are valid in a NMOS-only program, so they can be used with any VM with the 6502 instruction set that specifies NMOS.
22:42:04 -!- Wallacoloo has joined.
22:45:59 <ski> hm, i didn't see any list of 6502 (linked or not) in here ..
22:46:33 <ski> .. backlog shows <http://www.orenwatson.be/z80machinecode.htm>, and <http://www.orenwatson.be/6502machinecode.htm> seems to work. presuming you meant the latter
22:47:56 <zzo38> Yes
22:58:21 <oren> http://www.orenwatson.be/6502machinecode.htm
22:58:28 <oren> done,
22:59:35 <oren> I've opted to represent the IGN (read byte and ignore) instructions as NOP with an eddressing mode
23:00:24 <zzo38> OK, but, the plain version is not updated yet
23:00:32 <coppro> oren: what is the point of that instruction? to interface with hardware?
23:01:00 <oren> yeah some memory-mapped stuff can make reads do things
23:01:30 <oren> for example advance to the next button on the NES controller
23:01:41 <zzo38> Yes that is one thing it can do
23:01:47 <coppro> I want someone to implement MMIX in hardware
23:01:53 <zzo38> coppro: Yes I do too
23:02:05 <zzo38> So that you can run MMIX program in hardware
23:02:32 <zzo38> Other purpose of IGN kind of stuff can be for timing purposes, or with a mapper I invented it can also be used for bankswitching
23:03:18 <zzo38> (Bankswitching registers are mapped at $1xxx and mirrored at $3xxx and $5xxx and $7xxx; furthermore the cartridge hardware doesn't care if the access is read or write, either way works)
23:05:59 <zzo38> (I know $1xxx overlaps RAM; it is done like that on purpose)
23:10:02 * ski str it being called "strobe" on Amiga
23:13:17 <zzo38> I don't know much about Amiga programming
23:22:18 <oren> the .asc is now updated
23:23:10 -!- bb010g has quit (Quit: Connection closed for inactivity).
23:24:57 <zzo38> OK
23:25:57 -!- sos has joined.
23:26:24 -!- sos has quit (Client Quit).
23:26:34 -!- Wallacoloo has quit (Ping timeout: 272 seconds).
23:26:35 <HackEgo> [wiki] [[Truth-machine]] http://esolangs.org/w/index.php?diff=43588&oldid=43013 * Nooodl * (-37) /* IRP */ execution isn't part of the program
23:29:16 <ski> zzo38 : hm, <http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node0060.html> says "S Strobe (write address with no register bits). Writing the register causes the effect."
23:29:28 <ski> so apparently not on read
23:29:39 <ais523> wow we have a lot of truth-machines
23:30:10 <ski> ?
23:30:27 <Taneb> Wow, we really do
23:30:37 <Taneb> ski, http://esolangs.org/wiki/Truth-machine
23:30:59 <zzo38> On NES/Famicom you select the next button by read, but to select the next row/column of the keyboard you need to write.
23:33:55 <mauris> we really do!
23:34:03 <mauris> i should write some more of them
23:34:32 <ais523> probably we have more truth-machines than Deadfish interps?
23:36:12 <zzo38> Did you count?
23:36:24 <ais523> no
23:36:30 <zzo38> Then, you should count
23:36:36 <ais523> otherwise I'd know for sure (barring the wiki being edited while I was counting)
23:36:39 <ski> Taneb : do you know why it's called "truth-machine" ?
23:37:00 <Taneb> You'd have to ask Keymake
23:37:00 <Taneb> r
23:37:20 <ski> it sounds to me like `Bool -> Sierpinski'
23:38:06 <ski> (`Bool' being a boolean type, `Sierpinski' being the type of "observably-true ; unobservably-false")
23:38:58 -!- Wallacoloo has joined.
23:39:06 <ais523> Sierpinski is called "void" in many languages
23:39:19 <ais523> presumably it'd only be different in languages like Agda, where it'd be some sort of monad
23:39:33 <ais523> or, well, "unit" is more common than "void" I guess
23:40:18 <zzo38> For functions that might not halt, then yes it is like the "void" in C and that stuff.
23:40:31 <mauris> i'm going to write one in this beautiful language: http://esolangs.org/wiki/Funciton
23:41:29 <ski> well, afaiui, in a language where computations are terminating (or productive, in case of codata), using `Sierpinski' as result type would be an explicit license for that computation to be semi-decidable
23:41:36 <myname> funciton rocks
23:41:37 -!- Patashu has joined.
23:41:39 <mauris> (it's a damn shame that brainfuck is featured and not this)
23:41:51 <mauris> (it's so pretty ;^;)
23:42:01 <myname> indeed
23:42:09 <ais523> ski: it's basically MaybeNonterminating ()
23:42:16 <ski> yes
23:42:39 <ais523> myname: we need a new featured article
23:42:42 <mauris> i was just thinking; is there something like MaybeNonterminating
23:42:45 <ais523> is the article itself at featured article standard?
23:42:57 <myname> look at it
23:43:01 <ais523> mauris: most total languages have it as a monad, probably with a wieldier name
23:43:17 <myname> it has lots of information, many examples
23:43:40 <ais523> it's on the shortlist already, too
23:43:43 <ais523> http://esolangs.org/wiki/Esolang:Featured_languages/Candidates
23:44:00 <ais523> sorry I've been delinquent with featured language updating duties
23:44:08 <ais523> I'm too lazy to write a main page intro for it right now though
23:44:09 <ski> `a -> Bool' is the type of detachable subsets of `a'. `a -> Sierpinski' is the type of semi-decidable subsets of `a'. and `a -> Prop' is the type of arbitrary subsets of `a' (where you can't even attempt to check that something is an element, instead you can only (sometimes) manage to prove it is an element (or not), assuming you know something more about the subset and the element)
23:44:11 <zzo38> The "MaybeNonterminating" there is something like that in Gentzen esolang I suppose, the loop operator is, I think?
23:44:18 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: a: not found
23:45:11 <mauris> `thanks HackEgo
23:45:11 <HackEgo> Thanks, HackEgo. ThackEgo.
23:45:47 -!- Patashu has quit (Ping timeout: 252 seconds).
23:46:01 -!- Patashu has joined.
23:46:49 <boily> quinthellôpia, hellôerjan!
23:47:48 -!- tromp__ has joined.
23:49:36 <zzo38> Yes there is more truth-machine there is 107 but only 78 of Deadfish
23:50:37 <ais523> both those numbers are much higher than I expected
23:50:41 <ais523> worryingly higher, in fact
23:50:53 <coppro> why worrying?
23:50:55 -!- x10A94 has quit (Read error: Connection reset by peer).
23:51:41 <ais523> how much activity's going in to this sort of thing
23:51:58 -!- tromp__ has quit (Ping timeout: 244 seconds).
23:52:42 <ais523> I guess I'm worried that Deadfish caught on so much
23:53:14 <mauris> i'm willing to bet over half of them are:
23:53:34 <mauris> "oh i made a language, let's add it to (this/these) list(s)"
23:53:38 <oerjan> ais523: they both caught on because they're about the simplest programs to write in any language
23:53:46 <oerjan> (that can do it at all)
23:53:47 <ais523> I guess
23:54:16 <oerjan> while also being sillier than the usual boring "Hello, world!" and stuff
23:54:20 <ais523> I still like the program which prints out a string of length 1, then a string of length 2, then a string of length 3, and so on, with the pattern continuing indefinitely
23:54:36 <ais523> that doesn't prove TCness, but it does make it seem a lot more likely
23:54:48 <oerjan> ais523: yeah that was the first loop i wrote in ///
23:55:00 <ais523> right, I knew someone else had done one
23:55:00 <myname> map (map take [1..]) $ repeat 1
23:55:09 <ais523> it's the first nonrepeating program I wrote in Black
23:55:13 <zzo38> Don't be so sure
23:55:19 <ais523> (which still isn't known TC, but I strongly suspect it is)
23:55:27 <ais523> > map (map take [1..]) $ repeat 1
23:55:28 <lambdabot> Couldn't match expected type ‘Integer -> b’
23:55:28 <lambdabot> with actual type ‘[[a0] -> [a0]]’
23:55:28 <lambdabot> Possible cause: ‘map’ is applied to too many arguments
23:55:38 -!- Frooxius has quit (Quit: *bubbles away*).
23:55:40 <ais523> huh, I was expecting that to work
23:55:52 <mauris> > [replicate n '*' | n <- [1..]]
23:55:54 <lambdabot> ["*","**","***","****","*****","******","*******","********","*********","**...
23:55:56 <coppro> > map (map $ take [1..]) $ repeat 1
23:55:57 <lambdabot> Couldn't match expected type ‘Int’ with actual type ‘[Integer]’
23:55:57 <lambdabot> In the first argument of ‘take’, namely ‘[1 .. ]’
23:55:57 <lambdabot> In the second argument of ‘($)’, namely ‘take [1 .. ]’
23:56:25 <ais523> > map (map $ flip take [1..]) $ repeat 1
23:56:26 <lambdabot> Could not deduce (Num [Int]) arising from the literal ‘1’
23:56:27 <lambdabot> from the context (Enum a, Num a)
23:56:27 <lambdabot> bound by the inferred type of it :: (Enum a, Num a) => [[[a]]]
23:56:37 <ais523> we're getting closer! :-P
23:56:44 <mauris> > map ($ repeat 1) (map take [1..])
23:56:45 <lambdabot> <no location info>: can't find file: L.hs
23:56:50 <coppro> what
23:56:53 <mauris> > map ($ repeat 1) (map take [1..])
23:56:56 <lambdabot> [[1],[1,1],[1,1,1],[1,1,1,1],[1,1,1,1,1],[1,1,1,1,1,1],[1,1,1,1,1,1,1],[1,1,...
23:56:58 <mauris> there
23:57:00 <coppro> > :t take
23:57:01 <lambdabot> <hint>:1:1: parse error on input ‘:’
23:57:11 <ais523> coppro: that's idris-bot syntax
23:57:18 <ais523> @type take
23:57:19 <lambdabot> Int -> [a] -> [a]
23:57:27 <oerjan> :t take
23:57:28 <lambdabot> Int -> [a] -> [a]
23:57:29 <mauris> i thought :t worked
23:57:31 <coppro> :t map take [1..]
23:57:32 <lambdabot> [[a] -> [a]]
23:57:35 <mauris> yes thanks oerjan
23:57:42 <ais523> I thought :t worked too but wasn't sure
23:58:05 <coppro> zipWith (.) (map take [1..]) $ repeat 1
23:58:13 <oerjan> ais523: oh and unlambda has the famous c-using one
23:58:13 <coppro> > zipWith ($) (map take [1..]) $ repeat 1
23:58:14 <lambdabot> No instance for (Show a0)
23:58:14 <lambdabot> arising from a use of ‘show_M725027592012689207429299’
23:58:15 <lambdabot> The type variable ‘a0’ is ambiguous
23:58:21 <coppro> Oo
23:58:30 <ais523> oerjan: not famous enough for me to remember what it is (but famous enough for me to have a vague memory that it exists)
23:58:33 <coppro> oh, I don't want zip
23:58:33 <mauris> > zipWith ($) (map take [1..]) $ repeat (repeat 1)
23:58:35 <lambdabot> [[1],[1,1],[1,1,1],[1,1,1,1],[1,1,1,1,1],[1,1,1,1,1,1],[1,1,1,1,1,1,1],[1,1,...
23:58:39 <coppro> yeah, that
23:59:00 <ais523> now I'm trying to do it in INTERCAL in my head
23:59:02 <oerjan> @unlambda ``. `cd`.*`cd
23:59:02 <lambdabot> * ** *** **** ***** ****** ******* ******** ********* ********** *********...
23:59:19 <ais523> oerjan: oh wow, that looks like a torture test for an Unlambda interp :-)
23:59:22 <ais523> cs and ds everywhere
23:59:38 <ais523> bleh, I shouldn't try to do INTERCAL in my head :-(
23:59:40 <mauris> > [[1..l]>>1|l<-[1..]]
23:59:41 <lambdabot> No instance for (Show b0)
23:59:41 <lambdabot> arising from a use of ‘show_M375440728806938459629340’
23:59:41 <lambdabot> The type variable ‘b0’ is ambiguous
23:59:50 <oerjan> ais523: the d's are actually redundant, they're only used in spots where they're equivalent to i
23:59:51 <variable> lambdabot: no
←2015-07-24 2015-07-25 2015-07-26→ ↑2015 ↑all