←2015-10-20 2015-10-21 2015-10-22→ ↑2015 ↑all
00:00:32 -!- hppavilion[1] has joined.
00:03:46 <hppavilion[1]> Hm...
00:03:54 <hppavilion[1]> What particularly strange fields are there?
00:04:06 <hppavilion[1]> (the Reals make up a field, don't they?)
00:04:06 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:04:53 <hppavilion[1]> Or rings.
00:04:56 <hppavilion[1]> Or anything like that.
00:05:58 * hppavilion[1] rings the EsoBell
00:08:42 <boily> we have an esobell?
00:09:04 <hppavilion[1]> Yes. We do.
00:09:47 <hppavilion[1]> It's a psionically-driven bell that calls out to all denizens of #esoteric. It only calls the subconsious, though.
00:10:16 <ais523> right, it made me check the channel
00:10:30 <ais523> (or perhaps that's just the way that #esoteric's name turns green in my IRC client)
00:11:45 <hppavilion[1]> The green is just programming. The Esobell affects your subconsious; only those who care about what is being said can really perceive it, and even then, "perceive" is a strong word for it.
00:13:56 <kallisti> hello did someone call me?
00:14:07 <kallisti> I felt a strange sensation. It's kind of hard to describe
00:14:37 <hppavilion[1]> That would be the esobell. Read up next time.
00:14:48 <hppavilion[1]> xD
00:15:00 <kallisti> oh I see
00:15:34 <kallisti> I'm not sure what would make a field "strange"
00:16:06 <hppavilion[1]> I'm looking for strange fields/rings that I can implement calculators for (similar to that first calculator we've all implemented, that asks for two numbers and an operation then returns the result) that uses something other than just the normal numbers we all deal with regularly
00:16:15 <hppavilion[1]> kallisti: Esoness.
00:16:38 <kallisti> well it's just that a field by definition obeys pretty normal ass laws
00:16:46 <kallisti> so for it to be "strange" it would just have to be related to quirky objects
00:16:49 <kallisti> which isn't all that internet .
00:16:52 <kallisti> uh, interesting
00:16:55 <kallisti> but also not very internet
00:17:15 <hppavilion[1]> I just want to deal with something other than numbers with a calculator xD
00:17:45 <hppavilion[1]> For example, I could do Kleene algebra, but then I thought "I wonder if there's anything more interesting".
00:18:32 <kallisti> uh... functions over fields are fields
00:19:10 <kallisti> look at the Num instance for (->) defined by lambdabot
00:19:31 <hppavilion[1]> Hm...
00:19:52 <kallisti> > (+5) * (+10) $ 12
00:19:54 <lambdabot> No instance for (Show a0)
00:19:54 <lambdabot> arising from a use of ‘show_M8463575583549700228385’
00:19:54 <lambdabot> The type variable ‘a0’ is ambiguous
00:20:00 <kallisti> hm
00:20:06 <kallisti> maybe it's not the same
00:20:30 <kallisti> should be like: (*) f g x = f x * g x
00:21:03 -!- ent0nces has joined.
00:21:27 <boily> `relcome ent0nces
00:21:29 <HackEgo> ent0nces: 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.)
00:22:01 <ais523> hppavilion[1]: does the esobell work on #esoteric /regulars/ only, or on any esolanger?
00:23:37 <kallisti> @instances Num
00:23:40 <lambdabot> (Data.Fixed.Fixed a), (Shrink2 a), Blind a, CReal, Complex a, Double, Expr, Float, Int, Int16, Int32, Int64, Int8, Integer, Interval a, Large a, Natural, Product a, Ratio a, Small a, Sum a, Sym a, Word, Word16, Word32, Word64, Word8
00:23:49 <ais523> Shrink2?
00:23:58 <kallisti> :t Shrink2
00:24:00 <lambdabot> a -> Shrink2 a
00:24:04 <kallisti> @src Shrink2
00:24:04 <lambdabot> Source not found. I don't think I can be your friend on Facebook anymore.
00:24:25 <kallisti> > Shrink2 5 * Shrink2 10
00:24:26 <lambdabot> Shrink2 {getShrink2 = 50}
00:24:33 <kallisti> waow
00:24:42 <ais523> was the collection of insults in @src to at least make it more interesting when it inevitably fails to find whatever you're looking for?
00:24:42 <kallisti> @help
00:24:42 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
00:24:45 <fizzie> What's a 'Small a'?
00:24:47 <kallisti> @list
00:24:47 <lambdabot> What module? Try @listmodules for some ideas.
00:24:51 <kallisti> @listmodules
00:24:52 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search slap source spell system tell ticker todo topic type undo unlambda unmtl version where
00:24:54 <hppavilion[1]> ais523: Usually it only affects denizens of the channel, but it has been known to trigger avid esolangers who haven't discovered the channel or who have but aren't very active
00:25:02 <kallisti> @list base
00:25:02 <lambdabot> base has no visible commands
00:25:11 <kallisti> @list instances
00:25:11 <lambdabot> instances provides: instances instances-importing
00:25:26 <kallisti> hm, guess you can't find the instances that are defined for a type?
00:25:31 <kallisti> rather than the instances of a class?
00:25:34 <kallisti> @instances Shrink2
00:25:35 -!- variable has quit (Quit: 1 found in /dev/zero).
00:25:36 <lambdabot> Couldn't find class `Shrink2'. Try @instances-importing
00:26:16 <ais523> @unlambda ``.a.b.c
00:26:16 <lambdabot> ab
00:26:16 <kallisti> Shrink2 is probably just some kind of newtype wrapper that has specific instances
00:26:34 <ais523> I didn't realise lambdabot had an unlambda interp
00:26:57 <ais523> @unlambda ```sii``si.a
00:26:57 <lambdabot> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
00:27:24 <kallisti> I wonder if anyone's made a Haskell compiler targeting unlambda.
00:28:19 <ais523> I wonder if anyone's made an Unlambda impl that has vaguely efficient integers
00:28:32 <boily> unlambda has integers?
00:28:35 <kallisti> yeah that was my first thought "integers would be annoying"
00:29:09 <ais523> boily: it has church numerals, most vaguely functional languages do
00:29:22 <kallisti> yeah you just use church numerals.
00:29:27 <ais523> @def church2 f x = f f x
00:29:28 <lambdabot> .L.hs:158:17:
00:29:29 <lambdabot> Occurs check: cannot construct the infinite type:
00:29:29 <lambdabot> t1 ~ t1 -> t2 -> t
00:29:32 <ais523> err
00:29:34 <ais523> @def church2 f x = f (f x)
00:29:35 <lambdabot> Defined.
00:29:42 <ais523> @def church3 f x = f (f (f x))
00:29:44 <lambdabot> Defined.
00:29:54 <ais523> @def dechurch x = (x (+1)) 0
00:29:56 <lambdabot> Defined.
00:29:57 <kallisti> church numerals + bijection between integers and naturals = tada! integers
00:30:09 <ais523> > dechurch church2
00:30:12 <lambdabot> 2
00:30:12 -!- bender| has joined.
00:30:18 <ais523> > dechurch (church2 . church3)
00:30:20 <lambdabot> 6
00:30:23 <ais523> > dechurch (church2 .church3)
00:30:25 <lambdabot> 6
00:30:25 <ais523> err
00:30:27 <ais523> > dechurch (church2 church3)
00:30:29 <lambdabot> 9
00:30:39 <ais523> > dechurch (church3 church3 church3)
00:30:41 <lambdabot> *Exception: stack overflow
00:30:55 <ais523> > dechurch (church3 (church3 church3))
00:30:56 <lambdabot> 19683
00:30:59 <kallisti> is there any effective difference between church numerals and peano arithmetic? they seem more or less to be the same representation
00:31:56 <ais523> they seem different to me
00:32:05 <ais523> peano arithmetic is heavily based around a successor function
00:32:20 <ais523> and the successor function is nontrivial to write in church arithmetic (you can do it but it's much more complex than some others)
00:32:43 <ais523> you convert a church numeral into a peano number by giving it a successor and zero function as arguments
00:33:03 <kallisti> ah right
00:33:05 <ais523> so you can think of church numerals as being represented as parameterizations of peano arithmetic
00:33:38 <kallisti> yeah I was just thinking visually they look similar
00:34:39 -!- bender| has quit (Ping timeout: 240 seconds).
00:34:55 <kallisti> they look the same but they use different mathematical representations
00:36:43 <kallisti> if you had a church number and you wanted to convert it to Peano you'd write f S Z, right?
00:37:08 <kallisti> so church numerals are like a fold function for peano numbers.
00:37:40 <ais523> kallisti: right
00:44:14 <kallisti> the Recuderon is similar to unlambda / lambda calculus / system F with a specialized integer constructor
00:50:03 <oerjan> <hppavilion[1]> What particularly strange fields are there? <-- well i mentioned p-adic fields the other day, and then there are galois fields. the fields of meromorphic functions are also nice...
00:50:15 <hppavilion[1]> Oh yeah.
00:50:34 <oerjan> then there's the field of one element, which manages to be interesting despite not existing.
00:52:06 -!- ^v has joined.
00:53:37 <oerjan> <kallisti> uh... functions over fields are fields <-- nope, you get things that you cannot divide on other than (const 0). (the nice thing about the meromorphic functions are that they evade this.)
00:55:22 <oerjan> <kallisti> look at the Num instance for (->) defined by lambdabot <-- i think that was removed
00:55:41 * oerjan is in backscroll, in case it wasn't obvious
00:55:43 <kallisti> R I P
00:57:27 <kallisti> so it's a ring
01:00:04 <oerjan> <ais523> and the successor function is nontrivial to write in church arithmetic [...] <-- nothing compared to predecessor
01:00:10 <ais523> indeed
01:00:32 -!- variable has joined.
01:03:36 <oerjan> i did write deadfish in unlambda. it's probably not a good idea to square to much in that one.
01:03:41 <oerjan> *too
01:04:37 <oerjan> hm it's possibly you won't even notice until you try an o command (and possibly d)
01:04:41 <oerjan> *possible
01:04:56 <kallisti> what does predecessor look like?
01:04:58 <oerjan> or wait, maybe the 256 check makes it strict enough.
01:05:18 <kallisti> seems... difficult
01:07:52 -!- callforjudgement has joined.
01:07:57 -!- ais523 has quit (Read error: Connection reset by peer).
01:08:02 -!- callforjudgement has changed nick to ais523.
01:08:35 -!- mihow has quit (Quit: mihow).
01:14:13 <tswett> So, I think I've come up with two English words that are both extremely common, but when you put one after the other, you get a phrase which is extremely rare. It probably just can't appear in any valid English sentence.
01:14:17 <tswett> Spoiler: the phrase is "the and".
01:14:23 <FreeFull> > 3^(3*3)
01:14:25 <lambdabot> 19683
01:15:15 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
01:15:31 <kallisti> yeah I agree the and in that phrase probably isn't valid english. :>
01:15:55 <boily> I disagree. the English is valid, and the the and moreso.
01:16:29 <kallisti> why can't it be the the and the and together making it invalid?
01:17:34 <FreeFull> tswett: 'the "and"' might occur sometimes
01:17:50 <tswett> /thə thʌ ənd thi: ænd/
01:17:53 <FreeFull> "and the" is definitely a lot more common
01:17:55 <tswett> FreeFull: it certainly does.
01:18:12 <kallisti> ITC: irresponsible lack of quotation marks usage. BUT IS IT INVALID ENGLISH? (warning: you will be labeled a dirty prescriptivist if you disagree with me)
01:18:31 <shachaf> nothing wrong with not using quotation marks hth
01:18:44 <oerjan> kallisti: you can basically encode \n -> fst (n (\(x,y) -> (y,y+1)) (0,0))
01:18:52 <boily> /θʌ/?
01:18:54 <tswett> I assert that a phrase such as "the the and the and" is obviously not a real usage of the phrase "the and".
01:19:01 <tswett> boily: doink
01:19:02 <ais523> > (3^3)^3
01:19:03 <lambdabot> 19683
01:19:17 <tswett> /ðə ðʌ ənd ði: ænd/
01:19:28 <kallisti> it is an imaginary usage of the phrase within the imaginary plane of english phrases.
01:19:43 <tswett> The complex plane?
01:19:52 <kallisti> nope
01:20:29 <FreeFull> tswett: How about "the of"?
01:21:56 <tswett> FreeFull: hmm. Yeah, that also seems illegal in all contexts.
01:22:18 <oerjan> presumably, you want a usage in which both the "the" and the "and" are used rather than mentioned.
01:22:22 <boily> the the and of the the of.
01:22:25 <ais523> FreeFull: you can interpret "of" as a proper noun, at a stretch
01:23:07 <ais523> sort-of like TURKEY BOMB, except with an of instead of a TURKEY BOMB
01:23:17 <oerjan> hm this doesn't work in norwegian because the word for "the" is also a pronoun.
01:23:33 <FreeFull> Polish doesn't have a word for "the"
01:24:03 <oerjan> (or several, if you consider number/gender)
01:24:07 -!- doesthiswork has quit (Read error: Connection reset by peer).
01:24:15 -!- doesthiswork has joined.
01:25:11 <boily> oerjan: I, you, he, she, the?
01:27:13 -!- doesthiswork1 has joined.
01:27:13 -!- doesthiswork has quit (Read error: Connection reset by peer).
01:27:49 <oerjan> boily: "den/det" ~ it, "de" ~ they
01:28:27 <oerjan> also the "of" doesn't work if you're willing to use slightly archaic grammar
01:29:04 -!- doesthiswork has joined.
01:29:04 -!- doesthiswork1 has quit (Read error: Connection reset by peer).
01:29:04 <oerjan> (you can then have prepositional phrases before the noun)
01:30:02 -!- hppavilion[1] has joined.
01:30:02 -!- doesthiswork has quit (Read error: Connection reset by peer).
01:30:05 -!- doesthiswork1 has joined.
01:31:27 <hppavilion[1]> I realized something about DRM and shit.
01:31:30 <boily> notre fungot, qui êtes aux cieux, que ton baragouinage soit sanctifié, protège-nous de la grammaire norvégienne...
01:31:30 <fungot> boily: the seventh bit set, and their abbreviations. the color ram which is used. the variable(s) in the character, and therefore most advanced. the
01:31:45 <FreeFull> hppavilion[1]: What did you realise?
01:31:46 <hppavilion[1]> You know how you can't make a proprietary application in Python because then people can crack it?
01:32:20 <hppavilion[1]> Really, you can. Just make sure to bundle the code into an executable ahead of time
01:32:25 -!- boily has quit (Quit: THORN CHICKEN).
01:32:27 <kallisti> oerjan: oh I see so you pass a tuple to the church numeral. the wikipedia definition was confusing me
01:32:37 <hppavilion[1]> Any proprietay application will be broken someday; it's just a matter of time.
01:33:16 <hppavilion[1]> If you implement it in Python or something, it will be cracked more easily, but that doesn't matter; society has conditioned us not to pirate software like that and the ones who it didn't work on will pirate it anyway.
01:33:33 <kallisti> same with open source applications, we will all fall victim to the heat death of the universe.
01:33:37 <hppavilion[1]> (Of course, that doesn't mean it isn't /slow/, and if the application has trade secrets, then...)
01:34:06 <Sgeo__> Meh, proprietary is a legal thing, ease of access to source is a technical thing
01:34:39 <hppavilion[1]> Yep.
01:35:06 <hppavilion[1]> My point is that you might as well make a major application that you plan on selling in Python if speed isn't a concern.
01:35:16 <kallisti> doesn't the py2exe stuff just bundle the python bytecode interpreter and point it to your compiled scripts?
01:35:22 <kallisti> seems pretty easy to reverse engineer
01:35:36 <oerjan> kallisti: that's probably more efficient somehow, if my brain could grasp it
01:35:41 <pikhq_> Stupid work, injecting virons into me.
01:36:42 <hppavilion[1]> kallisti: I know, it is easy to reverse engineer
01:36:54 <hppavilion[1]> My POINT is that it doesn't matter how easy it is to reverse engineer
01:37:16 <kallisti> oh, sure
01:37:30 <hppavilion[1]> It'll be broken eventually no matter what you do and the pirates are going to pirate it; but most of your buyers think piracy is evil and thus won't
01:38:17 <kallisti> I agree with that. I didn't get that from what you were saying though. sounded like you were saying that bundling an exe was "the solution" to Python being easy to crack.
01:38:22 <hppavilion[1]> Now, you file is still pretty big and it's slow, but if that doesn't matter then you might as well just use python.
01:39:03 <hppavilion[1]> kallisti: Ah, no. You do probably need to make it an exe (else it's too complicated for some people), but otherwise you're fine.
01:39:35 <kallisti> I used to really enjoy Python... when it was the only language I knew... when I was only two years or so into learning how to program... and singing guido's praises like a mindless drone with the other really bad Python programmers that make up the "Pythonic programmer community"
01:42:00 <kallisti> it's an okay language, I guess. it's hard for me to like it now. It's like Ive escaped some kind of secret brainwashing cult
01:42:52 <kallisti> programming languages. scary stuff.
01:43:22 <pikhq_> Python doesn't suck. I think that's its primary strength.
01:43:28 <kallisti> yeah pretty much
01:43:46 <kallisti> could be worse. I could have drank the Scheme or Ruby kool-aid. I've heard that stuff is pretty potent.
01:45:11 <shachaf> I was fairly about Ruby for a while.
01:46:26 <kallisti> I think at some point in the programming experience you go from being resistant to other methodologies other than your favorite pet idea, to being able to adapt what you've learn from different tools when using others.
01:46:42 <kallisti> at least that's been my experience
01:48:33 <kallisti> I think it goes hand-in-hand with understanding that, what originally seemed like very divergent modes of expressing a computation are actually representing the same underlying ideas.
01:58:20 <hppavilion[1]> asyncronous while would be useful
01:58:49 <hppavilion[1]> Exit the while loop the MOMENT the next atomic operation finishes after the condition stops being "true"
02:00:03 -!- aretecode has quit (Read error: Connection reset by peer).
02:02:59 -!- variable has quit (Ping timeout: 240 seconds).
02:03:31 -!- aretecode has joined.
02:21:08 -!- ent0nces has quit (Ping timeout: 244 seconds).
02:21:49 -!- ent0nces has joined.
03:04:17 -!- shikhin has joined.
03:10:03 -!- bb010g has quit (Quit: Connection closed for inactivity).
03:12:30 <kallisti> hppavilion[1]: pretty sure there's something like that in the JS async library
03:12:41 <hppavilion[1]> Huh
03:14:27 <kallisti> hm maybe not
03:14:38 <kallisti> not exactly in the way you described
03:15:38 <kallisti> but most of the iteration functions in async.js allow you to simply break out of the loop by calling the continuation with an error result (or not calling it at all, though I'm not sure you'll get a result at that point)
03:16:05 <kallisti> https://github.com/caolan/async#each
03:16:08 <kallisti> like this one for example
03:16:42 <kallisti> looks like there's async.whilst
03:16:48 <kallisti> Repeatedly call fn, while test returns true. Calls callback when stopped, or an error occurs.
03:16:55 <kallisti> whilst(test, fn, callback)
03:16:59 <kallisti> test() - synchronous truth test to perform before each execution of fn
03:17:06 <kallisti> fn(callback) - A function which is called each time test passes. The function is passed a callback(err), which must be called once it has completed with an optional err argument.
03:17:11 <kallisti> callback(err) - A callback which is called after the test fails and repeated execution of fn has stopped.
03:17:54 <kallisti> I used async.js quite a bit when working on an express-based website. it's pretty handy.
03:18:19 <kallisti> async.during is similar but uses an async conditional
03:19:46 <kallisti> async.waterfall is pretty nice, though it's basically a continuation monad. javascript would be so much better with something like do notation.
03:22:08 <oerjan> apparently since 2010 wikipedia has disagreed with our wiki on what "turing tarpit" means https://en.wikipedia.org/w/index.php?title=Turing_tarpit&diff=343527061&oldid=343523576
03:22:13 <kallisti> for all javascript's flaws, and as much as Python "doesn't suck", I can safely say that creating something like async.js in Python would be completely impractical
03:22:25 <kallisti> because of the lack of a multi-line lambda construct in Python
03:22:54 <kallisti> this is the biggest flaw of Python IMO
03:23:05 <ais523> oerjan: verifiability, not truth ;-)
03:23:21 <ais523> (that said, the sources may have been correct at the time, and we may have forcibly redefined the phrase from under them)
03:24:22 <oerjan> well this was spurred by this recent edit https://en.wikipedia.org/w/index.php?title=Esoteric_programming_language&action=edit&undoafter=681716919&undo=686669920
03:24:31 <kallisti> I think ais523 is right on this one
03:24:45 <oerjan> in other words, someone forced the article about esolangs to use the wp definition
03:24:54 <kallisti> a lot of stuff on wikipedia around that time had something of an "esolang bias"
03:25:05 <kallisti> probably as a result of contributors from this community
03:25:07 <ais523> oh right, the Esolang AfDs
03:25:12 <ais523> it's actually sort-of the other way round
03:25:29 <ais523> Esolang was originally created in order to have somewhere to store all the esolang articles that Wikipedia wouldn't accept
03:26:27 <kallisti> original research lack of sources not notable etc
03:26:33 <kallisti> makes sense
03:26:49 <kallisti> but I think we're talking about different instances of time
03:26:57 <kallisti> 2010 isn't exactly when the esolang wiki was made was it?
03:27:02 <ais523> https://en.wikipedia.org/wiki/User:Ais523/esolangafd
03:27:05 <oerjan> the question is, what should that last link be saying
03:27:11 <oerjan> (that i gave)
03:27:35 <ais523> it was happening often enough that I created a useful navbox to put on any future mass esolang nominations, so that people could easily find the previous cases
03:27:37 <oerjan> it makes no sense to include turing tarpits in the article if it isn't using our definition
03:28:18 <kallisti> friendly reminder that I originally created this when I was 15 https://en.wikipedia.org/wiki/Wikipedia:Don%27t-give-a-fuckism and it has somehow survived 5 deletion nominations.
03:28:23 <kallisti> wikipedia is weird
03:30:12 <ais523> oerjan: I don't know, WP-turing-tarpits tend to be esolangs too
03:30:26 <kallisti> metaspace wikipedia is pretty much anything-goes though
03:30:32 <kallisti> it's pretty hard to get deleted there
03:30:34 <ais523> given that the implication is still that they're excessively low-level to the point of unusability, just that they don't have golfed specs
03:30:49 <ais523> kallisti: I patrol the weird namespaces sometimes
03:30:58 <ais523> it took me a year and two tries to get a corrupted page in TimedText: deleted
03:31:15 <ais523> https://en.wikipedia.org/wiki/Wikipedia:Miscellany_for_deletion/TimedText:Depeche_mode_pipeline.ogg.en.srt_%282nd_nomination%29
03:31:30 <ais523> one of the more ridiculous page names of pages I've created
03:31:41 <kallisti> I'm not familiar with that namespace
03:31:47 <ais523> it's for subtitles
03:32:04 <kallisti> oh, must be new. or, well, newer than when I stopped caring about wikipedia editing.
03:32:12 <ais523> yep, reasonably new
03:32:15 <kallisti> which was probably around 2008-2009 maybe?
03:32:20 <kallisti> maybe earlier
03:33:25 <kallisti> https://en.wikipedia.org/wiki/User:The_prophet_wizard_of_the_crayon_cake your user page will never be as cool as mine. B)
03:35:38 <ais523> my userpage used to have a clock written in pure wikimarkup
03:35:46 <ais523> but I blanked it a while back when I retired
03:35:53 <ais523> and now that MediaWiki supports Lua it'd be way less impressive
03:36:03 <kallisti> oh didn't know that
03:36:25 <kallisti> I wonder why they chose Lua
03:36:29 <kallisti> easy to sandbox?
03:39:13 <kallisti> IIRC the lua runtime has some pretty nice features to restrict IO
03:39:40 <Xe> i use lua a lot because it is easy to embed and doesn't reek of ass
03:40:02 <kallisti> yeah Lua as a language is pretty solid. my primary complaint with Lua is the desert of standard libraries
03:40:14 <oerjan> ais523: however, there are few esolangs that are _not_ wp-turing-tarpits.
03:41:31 <ais523> indeed
03:41:46 <ais523> Funge-98 is an exception here
03:42:45 <kallisti> it's not hard to make a decent dynamically typed language. strong typing, arbitrarily complex anonymous functions, no weird type coercions (see: strong typing), extensible runtime based largely on some kind of hash/table structure.
03:42:50 <kallisti> yet somehow everyone fucks it up
03:45:18 <ais523> I like the typing discipline in which everything is a string and strings that look like ints or floats are optimized internally, but it doesn't work so well for functions
03:45:50 <kallisti> if you go down that road you need to not overload your operators with 5 million different special cased coercion rules
03:46:01 <kallisti> something like perl where you have int-context operators vs string context operators
03:46:15 * oerjan makes some noise https://en.wikipedia.org/w/index.php?title=Talk:Esoteric_programming_language&diff=686759139&oldid=651792496
03:47:59 <kallisti> now that GHC has OverloadedLists you can actually make a pretty convincing javascript-like type coercion system in Haskell
03:48:00 <ais523> kallisti: well such a language doesn't need coercion rules
03:48:07 <ais523> it only has one type, thus no coercing
03:48:10 <kallisti> without having to call any conversion functions on syntactic literals
03:48:17 <ais523> (it does, however, need rules for how things like addition work on strings that don't look like ints)
03:48:32 <kallisti> yeah that's really not any different from what I'm saying
03:48:49 <kallisti> you've just decided to say "there aren't types. there's just operators that interpret the data different in different contexts"
03:48:51 <kallisti> which is basically weak typing
03:49:45 <ais523> kallisti: well, there's a huge difference between languages like Javascript, in which 1 !== "1"
03:49:49 <hppavilion[1]> I still want to see a Topology-Oriented Fungeoid
03:50:00 <ais523> and Tcl, in which the difference between JS-== and JS-=== isn't even meaningful
03:50:07 <hppavilion[1]> And I still don't understand topology. Anyone have any suggestions?
03:50:13 <ais523> I like Tcl-style languages and dislike JS-style languages
03:50:27 <kallisti> I'm pretty sure no one actually likes javascript weak typing
03:50:53 <hppavilion[1]> Weak typing is evil. Strong typing where you can define conversions is where it's at.
03:51:16 <kallisti> perl manages to have a sensible weak typing convention actually
03:51:26 <kallisti> eq is string equality and == is integer equality
03:51:30 <kallisti> . is concatenation and + is addition
03:51:34 <hppavilion[1]> Ew.
03:51:36 <kallisti> rather than overloading everything into == and +
03:51:40 <kallisti> see: javascript
03:51:40 <ais523> right, Perl is mostly emulating the "everything is a string" model
03:51:50 <ais523> but then it has a few corner cases because it's Perl
03:51:50 -!- shikhin has quit (Ping timeout: 260 seconds).
03:51:53 <ais523> and then they added references
03:52:09 <hppavilion[1]> I prefer Python. Of course. xD.
03:52:47 <kallisti> I've been enjoying my Lua hacking while working on dota 2 mods actually
03:52:48 <hppavilion[1]> Someone should change the front page to Thue or Emmental or something. Then we'd get too many derivatives of a different language instead.
03:53:34 <kallisti> the only problems I have with Lua is lack of good libraries (which I think I mentioned), and lack of a decent module system. only one of those is really a problem with the language, and a sensible module system could easily be added to it (something like require.js or node.js module system for example)
03:53:36 <kallisti> but no one has done it yet.
03:54:08 <ais523> hppavilion[1]: I think the plan was to change it to Funciton, but nobody's written a blurb for it
03:54:11 <oerjan> hppavilion[1]: it's already been Emmental
03:54:20 <hppavilion[1]> Oh.'
03:54:29 <kallisti> oh yeah lack of assignment-as-expression is pretty annoying ,but not the end of the world
03:54:40 <kallisti> and nothing like perl's //
03:54:52 <hppavilion[1]> Right, right. I like assignment-as-expression, even though I've never used it.
03:54:54 <ais523> strangely enough, nobody's nominated Thue yet
03:55:00 <kallisti> most of my code in Lua is literally just getting stuff from tables then checking for nil, then doing stuff with the table
03:55:06 <hppavilion[1]> I NOMINATE THUE!
03:55:07 <hppavilion[1]> I NOMINATE THUE!
03:55:07 <hppavilion[1]> I NOMINATE THUE!
03:55:08 <kallisti> when it would be more sensible to have a built-in construct to do it
03:55:18 <oerjan> hppavilion[1]: there's a page to put nominations hth
03:55:23 <hppavilion[1]> Oh.
03:55:33 <ais523> you can only nominate once, though
03:55:35 <hppavilion[1]> Where?
03:55:38 <oerjan> the only thing we lack is a page for people to suggest blurbs
03:55:45 <ais523> http://esolangs.org/wiki/Featured_languages/Candidates
03:55:54 <ais523> err, until the language gets accepted
03:55:57 <ais523> we were planning to change it more often
03:55:58 <kallisti> give Lua a decent module system, or give Python multi-line lambdas. and I'd be happy with that.
03:56:03 <ais523> but all the admins are too busy
03:56:18 <Sgeo__> Meh, I think I responded to spam
03:56:26 <ais523> uh oh
03:56:49 <Sgeo__> Hopefully the worst that could happen is I made a fool of myself and/or signed up for more spam
03:57:21 <Sgeo__> It was from some gmail address telling me to connect to someone with the same name. I just said "Who is this?", but the reply-to was different
03:57:28 <HackEgo> [wiki] [[Featured languages/Candidates]] N http://esolangs.org/w/index.php?oldid=44815 * Hppavilion1 * (+129) Attempted to nominate a language. May have instead turned Amsterdam into smoldering ruins.
03:57:53 <HackEgo> [wiki] [[Featured languages/Candidates]] M http://esolangs.org/w/index.php?diff=44816&oldid=44815 * Hppavilion1 * (+4) Fixed (?) formatting
03:58:04 <hppavilion[1]> I should really learn how wikimarkup works.
03:58:10 <ais523> Thue is a good nom, anyway
03:59:14 <hppavilion[1]> What happens next?
03:59:38 <oerjan> at the current rate of progress, heat death hth
03:59:39 -!- shikhin has joined.
04:00:21 <ais523> you need to persuade one of the admins to write a blurb for a featured article and get it onsite
04:00:28 <hppavilion[1]> http://esolangs.org/wiki/Placement is awesome xD
04:00:30 <ais523> and we're all busy, lazy or both (except possibly fizzie)
04:00:34 <hppavilion[1]> Oh no.
04:01:01 <kallisti> lol placement
04:01:38 <hppavilion[1]> I need to think of a good language for a name I just thought of...
04:02:42 <HackEgo> [wiki] [[Kleinfunge]] N http://esolangs.org/w/index.php?oldid=44817 * Hppavilion1 * (+108) Reserved Page
04:03:10 <kallisti> one day humans will adapt to a zero entropy environment
04:03:13 <hppavilion[1]> (Not that language)
04:03:14 <kallisti> and heat death will be irrelevant
04:03:18 <hppavilion[1]> True fact.
04:03:18 <ais523> I'm not sure lahey-lines really work on a klein bottle
04:03:39 <hppavilion[1]> ais523: I was just naming the Topoligical Funge
04:03:53 <hppavilion[1]> It has nothing to do with klein bottles, really.
04:03:58 <ais523> so I assume it's a -93 derivative? (presumably you just swap both x and y coordinates when wrapping from one side to the other?)
04:03:59 <ais523> ah right
04:04:41 <hppavilion[1]> AFK
04:07:11 <kallisti> ais523: btw using === as an example of javascripts type system is kind of pointless because it's pretty much the only operator that does explicit strong typing
04:07:21 <ais523> kallisti: *
04:07:22 <ais523> +
04:07:37 <ais523> admittedly I can't think of others offhand but it wouldn't surprise me
04:07:49 <ais523> IIRC == isn't even transitive
04:07:59 <kallisti> I'm pretty sure + is not strongly typed because it coerces stuff
04:08:15 <ais523> kallisti: "1" + "2" versus 1 + 2
04:08:24 <ais523> it doesn't coerce consistently, thus it's aware of argument types
04:08:36 <kallisti> yes but 1 + "1" is "11"
04:08:40 <ais523> so not 100% strongly typed, but not 100% weakly typed either
04:09:06 <ais523> which is my point, JavaScript isn't sufficiently weakly typed to work as a weakly typed language
04:09:07 <kallisti> is that even a requirement of weak typing?
04:09:14 <ais523> kallisti: they're extremes
04:09:14 <kallisti> to be unaware of argument types?
04:09:27 <ais523> in 100% weak typing, types don't even exist really
04:09:44 <ais523> you only have one sort of data and talking about what "type" it is is meaningless, it just self-coerces
04:09:55 <ais523> *datum, I guess
04:10:29 <ais523> I guess the strongest possible typing is in languages like OCaml, where you can't even add two floats with the same operator you use to add two ints
04:11:22 <kallisti> well I wouldn't say that polymorphism removes strong typedness
04:11:23 -!- MDude has changed nick to MDream.
04:11:34 <kallisti> weak typing is a really ambiguous concept though
04:11:58 <Sgeo__> Crud, Yahoo Pipes is shut down
04:12:30 <ais523> kallisti: polymorphism doesn't, it can only exist in the presence of at least moderately strong typing though
04:12:43 <ais523> otherwise you don't have enough of a type to be polymorphic /on/
04:12:54 <kallisti> I guess polymorphism does kind of imply some form of weak typing. with typeclasses in Haskell you can completely emulate every minute detail of a perl or javascript-esque type system
04:13:18 <kallisti> but in doing so you basically work with only one type, which is what I think weak typing is all about really, a kind of polymorphic universal type
04:13:48 <MDream> Yahoo pipes seemed neat, but I never figured out how to make it loop back on itself and filter well enough to really mess with it.
04:14:16 <ais523> kallisti: right
04:15:06 <MDream> Would have been fun to throw together an emulator in it, or kind of recursive Twitter chatbot.
04:15:35 <hppavilion[1]> So is there some way I can easily encode Kleinfunge's topology?
04:15:45 <hppavilion[1]> Like, how a "straight" line moves, for example?
04:15:54 <hppavilion[1]> And how wrapping works?
04:16:35 <MDream> Yes.
04:16:36 <hppavilion[1]> (I'll probably make them two separate commands, l and w perhaps)
04:16:51 <MDream> https://en.wikipedia.org/wiki/Klein_bottle Look at the section on construction.
04:17:18 -!- JesseH has joined.
04:17:41 <MDream> It's just a torus with one axis mirrored along the wraparound edge.
04:18:40 <kallisti> I was thinking of what would make the most sense for a weakly typed Haskell environment
04:18:47 <kallisti> and I think it's basically just the Convertible typeclass
04:18:47 <MDream> Unless kleinfunge isn't to be neccesarily topologically equivalent to a klein bottle.
04:18:57 <kallisti> with a library of functions that are overloaded on it
04:19:26 <kallisti> if' :: (Convertible b Bool) -> b -> a -> a -> a
04:19:49 <kallisti> it gets kind of weird with number types though
04:20:01 <kallisti> because you have to pick an arbitrary number type and assume everything that's number-like has a convertible instance for it
04:20:40 <kallisti> actually I guess you could just use Num
04:20:50 <kallisti> (Convertible a n, Num n) should work fine no?
04:21:19 <Sgeo__> @oots_update and the Order of the Stick Automatic FB page are on manual operation until further notice.
04:21:19 <lambdabot> Unknown command, try @list
04:21:56 <kallisti> the other approach is to have a WeakType typeclass that explicitly defines the set of things that you convert between: toBool, toString, toList, toObject, toNum, etc
04:23:06 -!- JesseH has quit (Remote host closed the connection).
04:24:27 -!- jaboja has quit (Remote host closed the connection).
04:24:32 -!- aretecode has quit (Ping timeout: 265 seconds).
04:24:47 <HackEgo> [wiki] [[Kleinfunge]] M http://esolangs.org/w/index.php?diff=44818&oldid=44817 * Hppavilion1 * (+24) Created empty wikitable (hopefully)
04:28:03 <oerjan> so i saw scott aaronson misspelling asperger as aspberger, and wanted to check in google to be sure. then i suddenly got the idea of seeing how well google's suggestions know me, by pushing one letter at a time and see if i needed 3 or 4 before it showed up.
04:28:11 <oerjan> turns out i just needed 2
04:28:31 <kallisti> do you think there would be any benefit to being able to locally define instances in Haskell, rather than doing the newtype kind of stuff?
04:29:26 <kallisti> I've talked to people that want that kind of functionality, but to me newtyping and redefining instances along with GeneralizedNewtypeDeriving seems like a better approach
04:29:44 <oerjan> kallisti: edwardk has pretty good arguments for not allowing more than one instance of each class+type
04:29:59 <kallisti> how often do you want to have an instance for only one expression? enough to warrant writing an entire typeclass instance for it?
04:30:35 <kallisti> unless you have a way to name instances, and keep them out of bounds somehow until someone decides to bring them in
04:30:51 <oerjan> kallisti: have you seen the reflection library twh
04:31:13 <kallisti> I don't know what twh is
04:31:13 <pikhq_> oerjan: We're pretty good at inference HTH.
04:31:17 <kallisti> but I have seen the reflection library yes
04:31:51 <oerjan> in any case, you basically _need_ to define a type to avoid incorehence. but you could do that locally as well...
04:32:26 <oerjan> this may all become moot once goldfire gets pi types working.
04:32:31 <ais523> kallisti: "that would help"
04:32:39 <ais523> oerjan has an entire set of local acronyms, mostly ending in h
04:32:47 <ais523> that you get used to after a while
04:32:58 <oerjan> has it been that long
04:33:00 <kallisti> I could see the merits of being able to define the body of an instance declaration, then store it away into a name, without bring it into "scope" of the instance resolution mechanism
04:33:09 <kallisti> and then have a way to do like: let instance MyNameInstance in ...
04:33:26 <ais523> when he uses them, it gives me the impression that he's bitter about something
04:33:41 <kallisti> but you can do the same stuff with newtypes, in a more principle way.
04:33:44 <HackEgo> [wiki] [[Kleinfunge]] M http://esolangs.org/w/index.php?diff=44819&oldid=44818 * Hppavilion1 * (+1094) Added commands (nowhere near complete)
04:33:50 <kallisti> *principled
04:34:26 <oerjan> hm acronyms as neurotic tics...
04:34:31 -!- aretecode has joined.
04:34:39 <HackEgo> [wiki] [[Kleinfunge]] M http://esolangs.org/w/index.php?diff=44820&oldid=44819 * Hppavilion1 * (+0) Fixed a command character
04:34:40 <kallisti> for overlapping purposes you'd give the locally bound instance priority over everything else, even instances with the OVERLAPPING pragma
04:35:11 <kallisti> speaking of OVERLAPPING and friends. I wonder if they'll ever make that part of the language syntax
04:35:16 <kallisti> instance overlapping ...
04:35:22 <kallisti> instead of {-# OVERLAPPING #-}
04:36:15 <kallisti> "think of all the code we'd break" -- GHC devs, 1991-2015
04:37:22 <HackEgo> [wiki] [[Kleinfunge]] M http://esolangs.org/w/index.php?diff=44821&oldid=44820 * Hppavilion1 * (+2) Wikimarkup error
04:37:56 <hppavilion[1]> kallisti: I think they started saying that /before/ GHC was developed or started or conceived of or possible under the current laws of physics.
04:38:28 <oerjan> well, i dislike that those pragmas change the semantics of code
04:38:33 <kallisti> "but what if we break code that expects a completely different compiler named ghc in PATH?" -- GHC devs, 1991
04:38:45 <oerjan> anything that does should be triggered by a LANGUAGE one
04:39:07 <kallisti> oerjan: I honestly think that's the reasoning behind having them as pragmas. somewhere, someone named variable overlaps, overlapping, or overlappable
04:39:17 <kallisti> and they don't want to force that guy to do a find-replace on his source. :P
04:39:37 <oerjan> that was the original intent of the pragma system, that anything other than LANGUAGE could be ignored by a compiler that doesn't understand it, and code will still work fine.
04:40:00 <oerjan> possibly less efficiently, but it will still have the same meaning
04:41:04 <kallisti> it's definitely not a thing they should continue doing
04:41:14 <kallisti> imagine if type families and other syntax changing extensions used pragmas instead...
04:41:20 <kallisti> type {-# family #-} ....
04:41:33 <hppavilion[1]> OK, so I've added a thing to Kleinfunge that allows you to change the direction of down.
04:41:51 <kallisti> I guess it wouldn't work with type families because the rest of the declaration is completely different
04:41:55 <kallisti> from a normal type declaration
04:42:09 <kallisti> whereas the instance declaration is completely the same other than the overlap* qualifier
04:43:36 <kallisti> oerjan: I guess the problem with using a new LANGUAGE pragmas is that they already had an existing pragma called OverlappingInstances and it would get pretty weird to make a new extension with a slightly different name
04:43:49 <oerjan> kallisti: "family" is ok because it's not in a position that can be confused. indeed you can still use it as an identifier with type families enabled.
04:43:51 <kallisti> PerInstanceOverlappingInstancesPragmaThing
04:43:59 -!- Wright has quit (Ping timeout: 264 seconds).
04:44:16 <oerjan> kallisti: well i guess that's why they did it
04:45:03 <oerjan> and that they couldn't find a place to put just "overlapping" where an identifier couldn't be
04:45:24 <kallisti> and then if they made it so that you use OverlappingInstances, but now you have to have the pragmas... that breaks all the code that was previously using OverlappingInstances and expecting implicit module-wide behavior
04:45:53 <kallisti> I think PerInstanceOverlappingInstances would have worked, though it's a pretty cumbersome name. :P
04:46:13 <kallisti> the nice thing about LANGUAGE pragmas is that the compiler can error if it doesn't support the extension
04:46:15 <hppavilion[1]> :(
04:46:24 <kallisti> in this case there's no precedence for an OVERLAPS pragma so other compilers just silently ignore it
04:47:05 <oerjan> i suppose at least the code will _eventually_ break
04:47:27 <oerjan> if the overlap is actually used. hm, i guess that's good enough in a sense.
04:47:32 <kallisti> right but Hasell ain't about that life
04:48:09 <hppavilion[1]> Which life?
04:48:13 <hppavilion[1]> The thug life?
04:48:19 <kallisti> hm, I guess the overlap would be a compile error still right?
04:48:24 * hppavilion[1] apologizes profusely
04:49:12 <kallisti> I think, in the old system, if there was ever a situation where the overlappable/overlapping system came into effect, it would have already resulted in a compile error, right?
04:50:10 <kallisti> it only happens in situations where they're equally specific instances
04:50:24 <kallisti> then it chooses based on incoherence/the new overlap pragmas
04:51:36 <oerjan> oh actually they are breaking code
04:51:47 <oerjan> @let type Test family = family
04:51:47 <lambdabot> Parse failed: Parse error: family
04:52:04 <oerjan> that breaks even without the extension enabled
04:52:27 <oerjan> too many cooks
04:53:05 <kallisti> @let family = 2
04:53:07 <lambdabot> Defined.
04:53:13 <kallisti> huh
04:54:06 <kallisti> oerjan: are you sure it breaks without the extension?
04:54:43 <kallisti> oh it does
04:54:45 <kallisti> in ghci at least
04:55:20 <oerjan> i did, like, check
04:55:40 <kallisti> but are you SUUUUURE?????
04:56:18 <kallisti> fails in normal ghc too
04:56:20 <kallisti> might be a bug?
04:56:56 <oerjan> yeah
04:58:13 <kallisti> I could be wrong, but I'm pretty sure "family" is a valid type variable identifier in a Haskell2010 type declaration
04:58:30 <oerjan> me too
05:01:16 -!- doesthiswork1 has quit (Quit: Leaving.).
05:03:05 <oerjan> reported https://ghc.haskell.org/trac/ghc/ticket/10996#ticket
05:04:36 <kallisti> nice
05:05:51 <oerjan> it should be easier to fix than some the other "GHC uses one LALR(1) parser grammar regardless of extensions enabled" bugs
05:06:18 <oerjan> *some of
05:07:08 -!- ent0nces has quit (Remote host closed the connection).
05:09:46 <oerjan> so the reason why family can still be allowed as a _value_ identifier, i think, is that the lexer knows whether type or value identifiers can follow.
05:10:26 <oerjan> (even with TypeFamilies enabled)
05:10:27 <kallisti> > undefined :: family
05:10:29 <lambdabot> <hint>:1:14: parse error on input ‘family’
05:10:41 <oerjan> > family :: undefined
05:10:42 <lambdabot> No instance for (Num undefined1) arising from a use of ‘family’
05:10:42 <lambdabot> Possible fix:
05:10:42 <lambdabot> add (Num undefined1) to the context of
05:10:52 <oerjan> wat
05:10:58 <oerjan> :t family
05:10:59 <lambdabot> Num a => a
05:11:03 <kallisti> family = 2
05:11:08 <oerjan> ...oh right
05:11:43 <oerjan> @let type hi :++ there = (hi, there)
05:11:45 <lambdabot> Defined.
05:12:04 <oerjan> s/hi/family/ and you see that things get weird.
05:12:42 <kallisti> ah yeah
05:13:01 -!- variable has joined.
05:13:02 <kallisti> you could almost say
05:13:06 <kallisti> Haskell isn't a family-friendly language. :3
05:13:10 -!- variable has quit (Remote host closed the connection).
05:13:27 <oerjan> i suppose you _could_ hack around it, since :++ cannot follow type family
05:13:31 <kallisti> well, glasgow haskell
05:13:44 <oerjan> (with family as the keyword)
05:14:07 <kallisti> yeah it's possible to disambiguate due to the forced uppercase restriction on monomorphic type names
05:14:23 <oerjan> um no
05:14:58 <oerjan> it's because you can always distinguish an operator from an identifier
05:15:32 <oerjan> or do you have a different example in mind that would break
05:15:51 <oerjan> oh wait
05:16:01 <oerjan> you mean because "family" couldn't be one, right
05:16:20 <oerjan> i think you mean "constructor" not monomorphic
05:16:26 <kallisti> right
05:16:28 <kallisti> type constructor
05:16:52 <kallisti> @let type x = y
05:16:53 <lambdabot> Parse failed: Illegal test declaration
05:17:03 <oerjan> wat
05:17:54 <kallisti> basically I'm just saying that the only time you can have "family" after "type" is a) you have TypeFamilies enabled b) you're defining a type operator
05:18:18 <oerjan> yeah
05:18:19 <kallisti> or any lower case identifier, for that matter
05:19:37 <kallisti> I'm honestly surprised no one has reported that parse error yet
05:19:53 <kallisti> it must be really new or just no one names anything family anymore
05:21:07 <oerjan> it's probably because nearly everyone uses 1-char type variable names
05:21:15 <oerjan> or 3 at most
05:24:30 <kallisti> https://ghc.haskell.org/trac/ghc/ticket/10800
05:24:41 <kallisti> jesus, up to 2 million type-level terms in the simplifier
05:27:28 <oerjan> hm so 7.10.2 didn't fix all those
05:28:27 <kallisti> https://ghc.haskell.org/trac/ghc/ticket/8582 this would be really nice to have. making pattern synonyms work with record syntax
05:28:46 <kallisti> helps with some of the complaints people have about records not being extensible
05:29:08 -!- shikhin has quit (Quit: leaving).
05:39:22 -!- variable has joined.
05:44:00 -!- variable has quit (Remote host closed the connection).
05:44:39 -!- tromp__ has joined.
05:45:45 -!- tromp has quit (Remote host closed the connection).
06:24:29 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
06:25:48 -!- AnotherTest has joined.
06:29:59 -!- AnotherTest has quit (Ping timeout: 240 seconds).
06:50:58 -!- aretecode has quit (Read error: Connection reset by peer).
06:53:37 -!- aretecode has joined.
07:01:51 -!- ais523 has quit.
07:07:10 -!- lleu has joined.
07:07:11 -!- lleu has quit (Changing host).
07:07:11 -!- lleu has joined.
07:12:47 -!- aretecode has quit (Read error: Connection reset by peer).
07:15:37 -!- aretecode has joined.
07:17:33 -!- ^v has quit (Ping timeout: 268 seconds).
07:33:57 -!- Patashu has joined.
07:44:56 -!- hppavilion[1] has joined.
07:51:46 -!- hppavilion[1] has quit (Read error: Connection reset by peer).
08:33:39 -!- mauris has joined.
08:35:12 -!- augur has quit (Ping timeout: 244 seconds).
08:36:25 -!- Phantom_Hoover has joined.
08:38:50 -!- mauris has quit (Ping timeout: 260 seconds).
08:42:42 -!- oerjan has quit (Quit: Nite).
08:43:31 -!- teuchter has quit (Read error: Connection reset by peer).
09:10:34 -!- AnotherTest has joined.
09:32:01 -!- augur has joined.
09:37:09 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
09:39:46 -!- ais523 has joined.
09:45:28 -!- J_Arcane has quit (Ping timeout: 265 seconds).
09:46:39 -!- Phantom_Hoover has joined.
09:58:23 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
10:05:46 -!- ais523 has quit.
10:07:24 -!- myndzi has quit (Quit: .).
10:07:40 -!- ais523 has joined.
10:11:03 -!- ais523 has quit (Client Quit).
10:11:16 -!- ais523 has joined.
10:19:44 -!- bender| has joined.
10:20:49 -!- J_Arcane has joined.
10:23:59 -!- bender| has quit (Ping timeout: 240 seconds).
10:24:37 -!- aretecode has quit (Ping timeout: 265 seconds).
10:24:56 -!- bender| has joined.
10:37:13 -!- boily has joined.
10:38:24 -!- ais523 has quit.
10:39:07 -!- ais523 has joined.
10:58:41 -!- ais523 has quit.
11:02:42 -!- ais523 has joined.
11:03:45 -!- ais523 has quit (Client Quit).
11:12:33 -!- jaboja has joined.
11:24:35 <boily> @massages-loud
11:24:35 <lambdabot> You don't have any messages
11:24:51 -!- boily has quit (Quit: PINPOINT CHICKEN).
11:42:25 -!- ais523 has joined.
11:42:47 <int-e> @botsnack
11:42:47 <lambdabot> :)
11:42:59 <int-e> @uptime
11:42:59 <lambdabot> uptime: 23d 14h 38m 13s, longest uptime: 1m 10d 23h 44m 29s
11:52:22 -!- ais523 has quit.
12:12:26 -!- Patashu has quit (Ping timeout: 252 seconds).
12:12:34 -!- TieSleep has changed nick to TieSoul.
12:15:20 -!- mroman has joined.
12:15:29 <mroman> fnord
12:16:27 <b_jonas> wait, it was complaining about the missing const?
12:16:30 <b_jonas> fuck you, compiler
12:16:49 <izabera> http://imgur.com/gallery/tPZ7e :o
12:21:44 -!- sine` has joined.
12:50:03 <Jafet> Mercator puzzle: https://gmaps-samples.googlecode.com/svn/trunk/poly/puzzledrag.html
12:56:48 -!- JesseH has joined.
13:03:08 -!- JesseH has quit (Remote host closed the connection).
13:04:32 -!- doesthiswork has joined.
13:09:46 -!- `^_^v has joined.
13:11:04 -!- JesseH has joined.
13:28:12 -!- myndzi has joined.
13:32:21 -!- jaboja has quit (Ping timeout: 255 seconds).
13:38:05 <fizzie> Hey, I got Finland as a separate piece. Is that always the case?
13:38:28 <fizzie> Looks that way, at least reloading seems to get the same puzzle.
13:38:39 <fizzie> I was expecting it to randomly select a subset of countries.
13:38:53 <b_jonas> fizzie: the pieces are always the same, I think
13:39:09 <b_jonas> but four of them don't seem to match anywhere
13:39:25 <fizzie> I did get all 15 in.
13:40:30 <b_jonas> oh
13:40:34 <b_jonas> I think now I'm only missing four
13:40:36 <b_jonas> no
13:40:38 <b_jonas> three
13:42:22 <b_jonas> oh!
13:42:24 <b_jonas> now only two missing
13:43:03 <fizzie> I redid most of it, but now I'm missing one.
13:43:05 <b_jonas> ah
13:43:07 <b_jonas> only one now
13:43:19 <fizzie> Done.
13:43:19 <b_jonas> ah!
13:43:20 <b_jonas> solved
13:43:23 <b_jonas> all done
13:44:08 <b_jonas> the difficult ones are Mauritania, Peru, Saudi Arabia.
13:44:09 -!- doesthiswork has quit (Quit: Leaving.).
13:48:07 <fizzie> Well, Mauritania does have a pretty distinctive shape.
13:48:26 <fizzie> Although I first thought it might've been a US state, those tend to be quite straight-edge too.
13:48:47 -!- |f`-`|f has quit (Ping timeout: 264 seconds).
13:49:19 <fizzie> Also I somehow assumed that South Africa's hole was a body of water.
13:49:23 <b_jonas> fizzie: probably I just don't know much about africa
13:49:30 <b_jonas> oh, South Africa was easy
13:49:34 <b_jonas> and Madagascar too
13:49:41 <b_jonas> but the two central african ones are tricky
13:50:49 <fizzie> I mostly just did pattern-matching on the country boundaries on the underlying map, I'm not good at all at a priori recognition of country shapes.
13:50:55 <fizzie> Well, except for Finland.
13:53:04 -!- |f`-`|f has joined.
13:55:41 -!- MDream has changed nick to MDude.
14:21:43 -!- jaboja has joined.
14:53:10 -!- aretecode has joined.
14:53:21 -!- Frooxius has quit (Quit: *bubbles away*).
15:01:07 -!- nisstyre has quit (Quit: WeeChat 1.3).
15:02:02 -!- bender| has quit (Ping timeout: 246 seconds).
15:07:44 -!- ^v has joined.
15:12:15 -!- `^_^v has quit (Quit: This computer has gone to sleep).
15:37:54 -!- ^v has quit (Ping timeout: 260 seconds).
15:41:58 -!- J_Arcane has quit (Ping timeout: 244 seconds).
15:42:26 -!- shikhin has joined.
16:07:57 -!- shikhin has quit (Quit: leaving).
16:09:41 -!- mauris has joined.
16:22:26 -!- `^_^v has joined.
16:24:42 -!- aretecode has quit (Ping timeout: 265 seconds).
16:29:48 -!- aretecode has joined.
16:34:59 -!- `^_^v has quit (Quit: This computer has gone to sleep).
16:36:57 -!- atrapado has joined.
16:37:59 -!- ent0nces has joined.
16:54:37 -!- Phantom_Hoover has joined.
16:56:06 -!- mroman has quit (Quit: Lost terminal).
17:19:22 -!- mihow has joined.
17:23:35 -!- gamemanj has joined.
17:25:26 -!- ocharles__ has quit (Ping timeout: 240 seconds).
17:26:39 -!- ocharles__ has joined.
17:29:32 <mauris> @tell mroman aw jeez, burlesque's EveryNth (en) doesn't start at the first item in the list? :(
17:29:33 <lambdabot> Consider it noted.
17:29:49 -!- HackEgo has quit (Ping timeout: 240 seconds).
17:30:12 <mauris> @tell mroman i need, say, a list [1, 8, 15, ... 100] in steps of 7, and all i can find is Pp{pP.%1==}FO which sucks
17:30:12 <lambdabot> Consider it noted.
17:30:33 -!- HackEgo has joined.
17:35:37 <mauris> @tell mroman ok there's literally discussion about this on the PPCG question i'm solving nevermind
17:35:37 <lambdabot> Consider it noted.
17:42:33 -!- quintopia has quit (Ping timeout: 255 seconds).
17:43:06 <int-e> oh is GG back to updating early?
17:44:08 -!- shikhin has joined.
17:50:44 -!- quintopia has joined.
18:06:35 <FreeFull> mauris: What's this language?
18:10:18 -!- quintopia has quit (Ping timeout: 252 seconds).
18:16:41 -!- bb010g has joined.
18:20:55 -!- jaboja64 has joined.
18:24:30 -!- jaboja has quit (Ping timeout: 260 seconds).
18:36:23 -!- jaboja64 has changed nick to jaboja.
18:39:33 -!- aretecode has quit (Read error: Connection reset by peer).
18:40:40 -!- quintopia has joined.
18:42:39 -!- aretecode has joined.
18:49:10 -!- hppavilion[1] has joined.
18:49:15 <hppavilion[1]> I wonder...
18:49:54 <hppavilion[1]> What happens when you run a church denumeraliztion algorithm (or the same for set theory) on an invalid church numeral (or set theoretical equivalent)?
18:50:13 <hppavilion[1]> Is there an algorithm primitive enough that it can generate numbers that don't exist?
18:52:01 -!- shikhin has quit (Quit: leaving).
19:06:45 -!- ent0nces has quit (Remote host closed the connection).
19:12:25 <gamemanj> numbers that don't exist... that's confusing
19:21:45 -!- ^v has joined.
19:58:47 -!- TieSoul has changed nick to TieSleep.
20:02:04 -!- Patashu has joined.
20:06:50 <Taneb> hppavilion[1], I have a representation of naturals based on a finite rose tree forest.
20:07:02 <Taneb> Things get interesting if you extend it to infinite rose forests
20:21:10 <shachaf> rose trees are naturally infinite, it seems
20:21:17 <shachaf> but maybe my heuristic is bad
20:26:30 -!- shikhin has joined.
20:29:51 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
20:30:04 -!- bb010g has quit (Quit: Connection closed for inactivity).
20:37:50 -!- atrapado has quit (Quit: Leaving).
20:43:46 -!- Patashu has quit (Ping timeout: 265 seconds).
20:49:08 -!- gamemanj has quit (Ping timeout: 250 seconds).
21:02:05 -!- augur has quit (Quit: Leaving...).
21:14:02 <izabera> does anyone here know why i can't set the content type in a .htaccess file? all i'm doing is Content-Type: application/jose+json
21:14:06 <izabera> and i get a 500 error
21:14:44 <izabera> do i have to enable something or what
21:15:51 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
21:18:21 <fizzie> There's normally an error log. But I don't think there is a directive called "Content-Type". You don't put headers in a .htaccess file; you put in configuration directives.
21:18:51 <fizzie> ForceType 'application/whatever' perhaps, as per http://httpd.apache.org/docs/current/mod/core.html#forcetype
21:19:10 <shachaf> you should definitely check the error log
21:19:13 <fizzie> "When placed into an .htaccess file or a <Directory>, or <Location> or <Files> section, this directive forces all matching files to be served with the content type identification given by media-type."
21:19:19 <shachaf> that server sounds pretty discontent
21:21:08 <izabera> it works <.< thank you
21:24:38 -!- augur has joined.
21:29:30 -!- hppavilion[1] has joined.
21:32:28 <hppavilion[1]> join #esoteric-dsl
21:32:50 <hppavilion[1]> Whoops. "Forgot" the /.
21:57:50 -!- J_Arcane has joined.
21:59:47 -!- Frooxius has joined.
22:04:18 -!- shikhin has quit (Ping timeout: 260 seconds).
22:10:40 -!- Wright has joined.
22:14:29 -!- oerjan has joined.
22:15:17 -!- boily has joined.
22:16:55 <boily> fungot: fungellot. I was wondering today about your diet. what do you eat?
22:16:56 <fungot> boily: cb13 vc9 vc8 vc7 vc6 vc5 vc4 vc3 vc2 vc1 vc0
22:17:09 <boily> fungot: oh, pure vitamin complexes. very efficient!
22:17:09 <fungot> boily: bit bit when set to 239 ( ef), the microprocessor to write more than one of the serial bus, in fact imply the principle, although only two physical screen lines long, at 74171.2136compuserve.com.
22:17:18 <fizzie> fungot: Bit bit bit.
22:17:18 <fungot> fizzie: switch sense line." the parts of the pointer willbe loaded into the y and x is the address bus drivers allowing the two versions of pet/ cbm by raeto west.
22:17:43 <fizzie> I think from now on, if I feel like saying "make sense" to someone, I'll say "switch sense line" instead.
22:21:00 <oerjan> bhiloy
22:22:37 <fizzie> I can't remember what that style was trained with.
22:23:16 <fizzie> fungot: What was that book, and where do I have a copy of it?
22:23:16 <fungot> fizzie: 120 open 1,1,1,"tape-file": input a: if the flag interrupt is a corresponding 1 to 7, which is available to hold incoming keystrokes until they can be changed to point to integer conversion, in order for ring modulation to be independently selected in order to arrive at an even distribution of or behind other objects on the screen, and
22:23:47 <boily> bojansoeir.
22:28:18 -!- adu has joined.
22:29:57 -!- ais523 has joined.
22:43:09 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
22:53:24 -!- ent0nces has joined.
23:00:37 -!- hppavilion[1] has joined.
23:02:29 -!- mauris has quit (Ping timeout: 265 seconds).
23:26:01 -!- hppavilion[1] has quit (Read error: Connection reset by peer).
23:30:02 -!- hppavilion[1] has joined.
23:41:00 -!- adu has quit (Quit: adu).
23:46:32 -!- sine` has left.
23:58:57 -!- ais523 has quit (Read error: Connection reset by peer).
23:59:44 <boily> `wisdom
23:59:45 <HackEgo> lambdabot/lambdabot is a fully functional bot. just don't ask about @src.
←2015-10-20 2015-10-21 2015-10-22→ ↑2015 ↑all