←2014-12-24 2014-12-25 2014-12-26→ ↑2014 ↑all
00:00:09 -!- Solace has quit (Quit: Connection closed for inactivity).
00:01:52 <elliott> "Yes, yes, but you ruined the plot! Okay, that was expected, but yet, after discovering my poor hashing abilities, I decided to use the thermo-nuclear option: MD5, the cryptographic hashing function, which has been studied during long years, and which is considered an excellent solution for hashing anything."
00:01:57 <elliott> this was written in 2013
00:02:02 <elliott> http://blog.httrack.com/blog/2013/07/19/md5-is-your-friend/ enjoy
00:02:53 <elliott> I thought it would be, like, "MD5 is actually fine even though it's weak", but actually it's "use MD5 for hash tables, it's INCREDIBLY CRYPTO STRONG and not that slow"
00:06:57 -!- roasted42 has quit (Ping timeout: 245 seconds).
00:09:07 -!- roasted42 has joined.
00:09:52 -!- Patashu has quit (Ping timeout: 240 seconds).
00:11:22 <oerjan> clearly an NSA mole
00:18:05 <int-e> it has been studied, that's for sure
00:20:57 -!- Phantom__Hoover has joined.
00:22:54 <int-e> elliott: we could even say that unlike some other hash functions we know whether it's secure or not...
00:22:57 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
00:23:08 <int-e> that's good, isn't it?
00:24:26 <elliott> ehe
00:27:16 -!- MDream has joined.
00:31:11 -!- bb010g has quit (Quit: Connection closed for inactivity).
00:33:21 -!- oren has quit (Ping timeout: 252 seconds).
00:34:52 -!- zzo38 has quit (Remote host closed the connection).
00:35:21 -!- oren has joined.
00:41:37 -!- oren has quit (Ping timeout: 240 seconds).
00:51:57 -!- roasted42 has quit (Ping timeout: 240 seconds).
00:53:02 -!- roasted42 has joined.
00:55:37 -!- contrapumpkin has quit (Ping timeout: 240 seconds).
01:05:35 -!- oren has joined.
01:31:02 -!- roasted42 has quit (Remote host closed the connection).
01:31:59 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
01:33:55 -!- dts|pokeball has quit (Ping timeout: 265 seconds).
01:36:17 -!- roasted42 has joined.
01:49:26 -!- MDream has changed nick to MDude.
01:50:25 -!- dts|pokeball has joined.
02:26:41 <Taneb> Are there any rules about starting IOCCC entries long before the competition is opened?
02:28:40 <pikhq> Not that I know of.
02:30:14 <Taneb> Right, I'm gonna get started
02:30:30 * oerjan imagines someone somewhere opening an old secret letter to find lady ada lovelace's IOCCC entry
02:30:39 <Taneb> Heheheh
02:31:16 -!- nisstyre has changed nick to nisscrooge.
02:31:22 -!- roasted42 has quit (Ping timeout: 240 seconds).
02:32:15 <pikhq> elliott: Wow, really? But... I mean, there's no reason to use MD5 instead of a proper hash function for hash tables.
02:32:43 <elliott> sha512 hash table!!!!
02:33:10 <oerjan> surely you should only use NP-complete hashes
02:33:26 -!- roasted42 has joined.
02:33:26 <pikhq> I mean, really. The desirable properties for a hash table hash are fast while providing a reasonable distribution of values.
02:33:41 <pikhq> Completely different from what you want from a crypto hash function.
02:34:26 <pikhq> (namely, reversing the hash and producing collisions should be God Damned Hard; speed is just kinda nice for some uses.)
02:40:29 <elliott> pikhq: good thing he didn't pick a crypto hash function but a broken one, then :p
02:40:35 <elliott> *crypto-strength
02:47:13 <oerjan> and now, pizza
02:49:12 <oerjan> maybe let it cool a _little_.
02:50:13 -!- MDude has quit (Ping timeout: 255 seconds).
03:01:29 -!- bb010g has joined.
03:08:00 <pikhq> If he just wanted fast, well, CRC32's pretty speedy.
03:09:50 <elliott> I think the point is like...
03:10:55 <elliott> "MD5 is a bit slower, but I got all these collisions with FNV-1, and MD5 isn't that slow and it's The Best so let's just use it! (I also included MurmurHash in this post without commenting on it for some reason, possibly because it is obviously better than MD5 for a hash table even if MD5 was as incredibly strong as I think it is.)"
03:11:00 <elliott> I don't know.
03:11:02 <elliott> it's a weird post.
03:11:14 <pikhq> Sounds about right.
03:11:27 <elliott> oh, he does mention MurmurHash
03:11:29 <elliott> he trusts it less than MD5
03:11:31 <elliott> lol
03:13:00 <elliott> I don't know. the post wouldn't be totally weird (though I'd still disagree with the idea that you should just use the strongest hash function you can find for your hash table) if you did s/MD5/SHA1/g or something.
03:13:11 <tromp> siphash is more secure than murmurhash
03:13:22 <tromp> and similarly efficient
03:13:34 <tromp> that's why i use it in my proof-of-work scheme
03:13:49 <elliott> tromp: right, that kind of thing would be a more reasonable post than "MD5 is the best hash function for hash tables because it is crypto strong and the best for everything (p.s. it is 2013)" :p
03:14:26 <elliott> nobody ever told djb about the speed-security tradeoff
03:15:07 <tromp> siphash-4-8 is more secure and slower than siphash-2-4
03:15:37 <elliott> just joking based on how djb crypto functions are usually fast *and* secure
03:17:40 -!- roasted42 has quit (Ping timeout: 255 seconds).
03:19:32 -!- roasted42 has joined.
03:22:51 <oerjan> <Jafet> Amazingly, the bct interpreter for eodermdrome seems to work <-- after this, my next challenge must be writing one in Feather
03:23:22 <pikhq> Man, djb.
03:23:33 <pikhq> It's weird. His crypto's great, his software is... eccentric.
03:23:57 <oerjan> with no interpreter, no spec and inventor running away at the mere mention of it, it should be suitable.
03:25:03 * pikhq still wishes someone would go drill into his teeth
03:26:24 <elliott> his software is like his crypto imo
03:26:46 <elliott> djb is more palatable in small doses which is why the latter is more successful :p
03:26:51 <pikhq> :P
03:58:21 -!- Solace has joined.
04:00:28 -!- roasted42 has quit (Ping timeout: 250 seconds).
04:01:24 -!- roasted42 has joined.
04:10:19 -!- Sprocklem has joined.
04:11:33 <newsham> did someone say "strong" and "md5"?
04:17:31 -!- nys has quit (Quit: quit).
04:24:01 -!- digitalcold has changed nick to grumblesnoutHern.
04:24:20 -!- grumblesnoutHern has changed nick to digitalcold.
04:24:25 -!- digitalcold has changed nick to digitalcool.
04:33:52 <shachaf> newsham: md5 is strong but slow, as everyone knows
04:38:59 <Solace> is there a way to ping users from another irc network?
04:39:01 -!- shikhin_ has quit (Ping timeout: 272 seconds).
04:41:12 -!- roasted42 has quit (Ping timeout: 250 seconds).
04:42:18 -!- roasted42 has joined.
04:51:17 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
04:56:39 -!- copumpkin has joined.
04:59:22 -!- arjanb has quit (Quit: zzz).
05:08:28 -!- ^v has joined.
05:23:30 -!- roasted42 has quit (Ping timeout: 265 seconds).
05:25:09 -!- roasted42 has joined.
05:30:10 -!- ^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
05:41:40 -!- contrapumpkin has joined.
05:44:52 -!- copumpkin has quit (Ping timeout: 245 seconds).
05:50:00 <lifthrasiir> shachaf: strong in preventing unintentional hash collision, weak in everything else.
05:51:02 <lifthrasiir> there is yet no practical preimage attack to MD5, but inexpensive collision generation is enough for ruining security applications with MD5
05:58:19 -!- myname has quit (Ping timeout: 255 seconds).
05:59:03 -!- myname has joined.
06:10:23 -!- roasted42 has quit (Ping timeout: 244 seconds).
06:10:52 -!- nisscrooge has quit (Ping timeout: 265 seconds).
06:13:18 -!- nisscrooge has joined.
06:14:20 <Jafet> Well, if you find SHA1 collisions, don't save them in separate files
06:15:32 -!- nisscrooge has changed nick to nisstyre.
06:15:42 -!- nisstyre has quit (Changing host).
06:15:42 -!- nisstyre has joined.
06:15:48 -!- nisstyre has changed nick to nisscrooge.
06:15:53 -!- Patashu has joined.
06:15:59 <lifthrasiir> Jafet: or zip/tar/whatever them.
06:16:36 -!- roasted42 has joined.
06:22:16 -!- roasted42 has quit (Ping timeout: 244 seconds).
06:22:38 <Sgeo> I wonder if anyone's died due to the existence of spam. Some important message getting caught in a spam filter or something
06:22:39 <Sgeo> :(
06:24:56 <oerjan> Sgeo: nah they were all killed in bizarre traffic accidents before it could happen hth
06:25:32 <oerjan> one of which was caused by spam. the canned meat version. hth..hth
06:25:36 <oerjan> hm...
06:25:43 <oerjan> stupid script
06:25:51 <oerjan> *hth.
06:27:35 <elliott> hacker news is in christmas colours and somehow I hate hacker news more than ever
06:28:58 -!- atslash has joined.
06:29:30 * oerjan assaults atslash with an atlatl at last
06:31:11 <oerjan> i mean, merry christmas!
06:31:51 <atslash> oh
06:31:56 <atslash> thanks!
06:31:58 <atslash> you too)
06:32:48 <elliott> is atslash like slashdot
06:33:19 <atslash> no
06:33:35 <atslash> atslash like atslash
06:33:37 <oerjan> elliott: you can celebrate gravmas instead hth
06:34:14 <oerjan> it's a very attractive holiday
06:34:15 <elliott> thanks but I am actually endeavouring to be as little like stallman as possible in my life
06:34:35 <elliott> One way to celebrate Grav-Mass is to decorate a tree with apples and other fruits. Glue them or attach them, but not too well! The idea is that occasionally a fruit should fall. Put them on the tree no more than 2 feet up, so that they won't get damaged or hurt anybody when they fall.
06:34:40 <elliott> Fun Grav-Mass Ideas
06:35:02 <oerjan> wait did he invent that
06:35:05 <elliott> who the fuck stands under a tree waiting to get killed by a falling apple
06:35:13 <elliott> oerjan: I've literally never heard of it except in the context of rms
06:35:14 -!- atslash has quit (Quit: Leaving).
06:35:22 <oerjan> ok
06:35:53 <oerjan> i actually was just trying to point out it was isaac newton's birthday, and then remembered it had a cutesy name
06:36:23 <oerjan> ok who else was born today
06:36:56 <Jafet> This dude from a religious story. Actually, his birthday was probably made up at some point
06:37:04 <elliott> (btw it seems rather distasteful for stallman to co-opt newton's birthday to promote it over christmas, seeing as newton was a christian himself)
06:37:43 <oerjan> you'd think
06:37:56 <elliott> (...but then stallman is not known for good taste :p)
06:38:17 <oerjan> i wonder when newton actually celebrated his birthday, he was born in january old style
06:38:31 <oerjan> (if people celebrated birthdays back then)
06:38:48 <elliott> Born25 December 1642
06:38:48 <elliott> [NS: 4 January 1643][1]
06:38:51 <elliott> the opposite, it seems
06:38:55 <oerjan> oh
06:39:25 <elliott> I don't know how old the practice of birthday celebration is but I'm pretty sure it must be well over 400 years
06:39:25 <Jafet> Co-opt stallman's birthday after he dies
06:39:44 <Jafet> Crimean secession day
06:39:49 <oerjan> Jafet: toe-mass
06:39:56 <elliott> once you have a calendar -- which is a pretty natural thing to create -- it's one of the most obvious occasions to celebrate, especially considering how sacred birth is often considered
06:40:38 <elliott> (okay, I guess you could argue occasions not specific to one person would develop first)
06:40:39 <oerjan> elliott: true but people sometimes considered other dates more important
06:41:03 <oerjan> or may have pietistic ideas about avoiding personal things
06:43:08 * elliott nods
06:43:14 <elliott> okay, I agree it's not as obvious as I stated.
06:43:18 <elliott> instead I will ask wikipedia.
06:44:05 <oerjan> hm right that pakistani guy was born today
06:44:14 <elliott> "In some historically Roman Catholic and Eastern Orthodox countries such as Italy, Spain, France, parts of Germany, Poland, Russia, Romania, Bulgaria, Serbia, Slovakia, Czech Republic, Hungary, Greece, Lithuania, Latvia, and throughout Latin America, it is common to have a 'name day'/'Saint's day'. It is celebrated in much the same way as a birthday, but it is held on the official day of a ...
06:44:21 <elliott> ... saint with the same Christian name as the birthday person"
06:44:28 <elliott> I wonder what the people not named after saints thought about that
06:44:44 <oerjan> i understand sweden also does the name day thing
06:45:02 <elliott> I like how the queen of england has an official birthday that isn't her actual birthday
06:45:20 <oerjan> elliott: i think at times it were not allowed _not_ to name your child after a child.
06:45:24 <oerjan> *saint
06:45:31 <oerjan> *giraffe
06:45:50 <elliott> The Queen celebrates two birthdays each year: her actual birthday on 21 April and her official birthday on a Saturday in June.
06:45:59 <elliott> why don't I get two birthdays
06:46:12 <oerjan> elliott: i think the dutch do that too...
06:46:24 <Jafet> Could you afford two birthdays
06:46:35 <Taneb> Gooood morning
06:46:44 <oerjan> hiiiiiiineb
06:46:50 <elliott> Jafet: the idea is that *other* people buy me things hth
06:48:06 <glguy> Only naming people after saints is a great way to overlap saints on the same name and limit the growth of the name list
06:48:09 <oerjan> elliott: you can celebrate humphrey bogart today, by making everything dark and gloomy hth
06:48:24 <Taneb> Happy Thursday, everyone
06:48:29 <glguy> You'll have to end up with saints Patrick day eventually
06:48:36 <elliott> is that like surgeons general?
06:48:36 <oerjan> happy thursday!
06:49:33 <oerjan> glguy: you mean two with the same name on the same day?
06:50:40 <glguy> Yeah, rather than saint Patrick day Mk ii later in the year... That would be ridiculous :)
06:50:57 <oerjan> you could also take a shot at celebrating anwar sadat
06:51:00 <elliott> https://en.wikipedia.org/wiki/December_25#Births what's interesting is that nobody was born on christmas between 1250 and 1461, I think probably because of a conspiracy to cover them up
06:51:31 <Taneb> oerjan, assuming the number of saints tends to infinity with time, and there are a finite number of names, eventually there would be 367 saints with the same name
06:51:34 <Jafet> Or presumably it was just more convenient for them to use a different birthday
06:52:02 <elliott> people born on christmas should get to designate an "official" birthday to stop that merging holiday nonsense
06:52:10 <glguy> I'd like to see a the value of the probability that no one was born on a single day
06:52:19 <elliott> approximately 1/big
06:52:44 <oerjan> elliott: hm
06:53:33 <glguy> I wonder how it compares to other improbables
06:54:39 <oerjan> elliott: i have a hunch there were very few people born in those years who had birthdays at all hth
06:55:31 <elliott> oerjan: no, it was a conspiracy
06:55:35 <oerjan> okay
06:55:54 <elliott> hmm, that would actually be a not impossible thing to enforce, if you wanted nobody to be born on a certain day
06:56:22 <elliott> just ensure there's a really huge taboo around having sex around nine months before it :P
06:56:30 <elliott> designate some holy period, say
06:56:32 <Solace> You have to preform three miracles to become a saint
06:56:46 <elliott> well who will elect me president so I can ensure nobody is ever born on christmas ever again
06:56:48 <Jafet> Enforce no sex? What
06:57:03 <Solace> So if i used necromancy and devil magic to preform these miracles? and the church had no proof i did
06:57:10 <elliott> Jafet: look, it's VERY PRACTICAL AND FEASIBLE
06:57:11 <Jafet> Probably simpler to rewrite all existing historical records
06:57:14 <Solace> would i become a saint through false hood
06:57:26 <oerjan> elliott: actually seeing how the list grows in the 20th century i change my suspicion: there were just very few people born at all hth
06:57:42 <elliott> oerjan: no, actually it was just that the illuminati lost their grip on power
06:58:10 <Solace> do they even exist?
06:58:31 <oerjan> Solace: nowadays the miracles tend to happen after the saint is dead afaiu
06:58:52 <Solace> wat
06:59:04 <Solace> then how can they be elected to saint hood?
06:59:17 <oerjan> this improvement clearly prevents them from cheating hth
06:59:26 <Solace> Lol
06:59:40 <Solace> but necromancy bypasses that oerjan
06:59:44 <oerjan> Solace: surprisingly people aren't usually elected to saint hood
07:00:02 <Solace> Ofc
07:00:14 <Solace> since i think its only been a few
07:00:19 <Solace> the ones with Jesus
07:00:23 <Solace> and then some
07:01:24 <oerjan> well the popes keep declaring a bunch
07:01:49 <Jafet> Maybe you get the powers after you are beatified
07:02:41 <Solace> The popes cant really elect technically
07:03:00 <Solace> it has to be preformed and elected by the whole of the church
07:03:18 <Solace> and if a pope declares its not really official
07:03:18 <oerjan> too many people born today
07:03:57 <Solace> Also [saint] john Paul [saint] being they did some good shit
07:04:03 <Taneb> You know who wasn't born today?
07:04:07 <Solace> not saint as in
07:04:15 <oerjan> Taneb: you hth
07:04:16 <Taneb> Most people, I think
07:04:25 <Solace> Oh my god he just rose the dead
07:04:29 <Solace> praise him
07:05:18 <Solace> Tommorow is the day Santa first achieved reindeer propelled flight!!
07:05:29 <oerjan> ooh
07:05:30 <elliott> @time Solace
07:05:30 <lambdabot> Local time for Solace is Thu, 25 Dec 2014 07:05:30 GMT
07:05:34 <elliott> actually today
07:05:40 <Solace> indeed
07:05:49 <Solace> really?
07:06:06 <Solace> Its still 24 here
07:06:11 <oerjan> bah he just stole the invention from the sami hth
07:07:00 <oerjan> Solace: you probably haven't set a local time zone for your computer, or something
07:07:15 <Solace> What if god was just and he probably is a higher dimensional being that just nudged the big bang and left everything alone
07:07:27 <Taneb> oerjan, Solace could be using a UK bouncer
07:07:28 <oerjan> or wait it's webclient
07:07:43 <oerjan> so probably using its time zone.
07:07:50 <Solace> runs off of sattelite data btw
07:08:22 <Solace> isnt time slower or faster in space because of gravity
07:08:37 <Jafet> http://oglaf.com/chirpnmutter
07:08:40 <Solace> like one centi-second apart from earth
07:09:10 <oerjan> Solace: yes
07:09:19 <Solace> omfg that comic
07:09:39 <Solace> i enjoy your presence jafet
07:10:07 <oerjan> clicking on an oglaf comic? oh well it's not like i have W to be NSF
07:10:47 <Solace> Dont lie oerjan you are probably dirty
07:10:51 <oerjan> ok not NSFW just disturbing to some
07:11:07 <oerjan> Solace: i confess!
07:11:13 <Solace> Ha
07:11:15 <oerjan> (but only to that i am dirty)
07:11:16 <elliott> 07:07:15 <Solace> What if god was just and he probably is a higher dimensional being that just nudged the big bang and left everything alone
07:11:20 <elliott> Solace: deism
07:11:25 <Solace> wat?
07:11:30 <Solace> never heard of it
07:11:50 <elliott> it's pretty much exactly what you said https://en.wikipedia.org/wiki/Deism
07:11:58 <Solace> So oerjan is a dirty coder
07:12:07 <Solace> i didnt even know :0
07:12:07 <oerjan> every philosophical position on god has already been invented and given a name, except for those that _actually_ make him wipe out the inventor hth
07:12:10 <elliott> Deism holds that God does not intervene with the functioning of the natural world in any way, allowing it to run according to the laws of nature. For Deists, human beings can only know God via reason and the observation of nature, but not by revelation or supernatural manifestations (such as miracles) – phenomena which Deists regard with caution if not skepticism. See the section Features of ...
07:12:16 <elliott> ... deism, following. Deism is related to naturalism because it credits the formation of life and the universe to a higher power, using only natural processes. Deism may also include a spiritual element, involving experiences of God and nature.[14]
07:12:21 <elliott> oerjan isn't much of a coder
07:12:35 <Solace> ?!
07:12:36 <lambdabot> Maybe you meant: v @ ? .
07:12:36 <oerjan> ;_;
07:12:47 <Solace> oh hi Mr lambdabot
07:13:05 <Solace> do any of the bots have Christmas stuff
07:13:46 <Taneb> ^celebrate
07:13:46 <fungot> \o| c.c \o/ ಠ_ಠ \m/ \m/ \o_ c.c _o/ \m/ \m/ ಠ_ಠ \o/ c.c |o/
07:13:46 <elliott> oerjan: you don't do it often :p
07:13:46 <myndzi> | c.c.c | ¯|¯⌠ `\o/´ | c.c.c | `\o/´ ¯|¯⌠ | c.c.c |
07:13:46 <myndzi> >\ c.c /'\ |\| | >\ c.c >\ | /^\|/´\ c.c /´\
07:13:47 <myndzi> /`\ (_|¯`\
07:13:47 <myndzi> (_| |_) |_)
07:13:54 <elliott> err, pun not intended, but ok, sure
07:14:01 <elliott> *okay,
07:14:37 <Solace> But has oerjan done stuff on the wiki
07:15:01 <oerjan> *MWAHAHAHA*
07:15:20 <Solace> well he doesnt have to do stuff to be a coDer but in context the er at the end of code means you have to be cod"ing"
07:15:25 <Solace> so its confuse
07:16:05 <Solace> That reminds me oerjan i was testing out evil laughs and i think.nyahahaha is the best
07:16:27 <oerjan> nah too high pitch hth
07:16:55 <Taneb> I prefer mwuahahaha to mwahahaha
07:17:06 <Solace> noot noot noot
07:17:12 -!- dts|pokeball has quit (Ping timeout: 250 seconds).
07:17:40 <elliott> "nyahahaha" is the evil laugh of a cat.
07:17:51 <Solace> i am cat
07:17:58 <Sgeo> Why does evil look so good? http://images7.alphacoders.com/381/381214.jpg
07:18:00 <Solace> Didnt you know elliott
07:18:20 <oerjan> Solace: i wrote a lot of https://esolangs.org/wiki/Underload
07:18:37 <Solace> Amaze
07:19:00 <elliott> Solace: that explains it
07:19:19 <oerjan> https://esolangs.org/wiki/Deadfish#itflabtijtslwi and https://esolangs.org/wiki/Deadfish#Unlambda are mine
07:19:26 <Solace> Ah yes a stack language
07:19:37 <Solace> I was just thinking of that tbh
07:20:24 <Solace> Christ on a cracker!
07:20:28 <Solace> Thats alot
07:20:39 <Solace> Deadfish#unlambda
07:20:56 <elliott> deadfish is the great unifier of our community
07:21:22 <Taneb> oerjan, isn't https://esolangs.org/wiki/Deadfish#Fueue also you
07:21:25 <oerjan> more unlambda i made hear http://oerjan.nvg.org/esoteric/interpreter.unl
07:21:38 <oerjan> Taneb: um i don't think so, actually
07:21:41 <oerjan> or is it?
07:22:04 <Taneb> It was either you are Arc_Koen
07:22:07 -!- zzo38 has joined.
07:22:08 <oerjan> *here
07:22:14 <Solace> clever dc and falcon look cool
07:22:32 <oerjan> oh i did
07:22:38 <oerjan> i'd forgotten about that
07:22:40 <Solace> Are you guys the kewl cids
07:23:02 <elliott> yes
07:23:34 <Solace> oerjan: that link is filled with broken fonts and stuff
07:23:38 <Solace> i cant read it
07:24:29 <oerjan> Solace: it's latin-1, or should be
07:24:43 <Solace> Lets see
07:24:50 <Solace> Its in raavi for me
07:24:55 <oerjan> or wait
07:25:02 <Solace> Maybe its my browser?
07:25:13 <oerjan> Solace: the problem is that it contains a character table of all 256 bytes
07:25:23 <Solace> I do have font styles locked
07:25:25 <Solace> Oh
07:25:27 <oerjan> that may confuse a lot of browsers
07:25:41 <Solace> Ill switch to Palemoon for a second
07:26:16 <Solace> Is it supposed to be all cramped like that?
07:26:23 <Solace> Or does in read down
07:27:04 <Solace> it*
07:27:25 <oerjan> <Sgeo> Why does evil look so good? http://images7.alphacoders.com/381/381214.jpg <-- pyongyang?
07:27:48 <Sgeo> The Juche Tower in Pyongyang
07:28:07 <Solace> Ah i see
07:28:16 <Solace> Well it looks pretty
07:28:28 <Solace> Doesnt understand any of that
07:30:14 <Solace> Is there any Esolang that is just Tables?
07:30:21 <Solace> Im good at tables
07:30:25 <Sgeo> The buildings near it also look good, but weird. Like, boxy art in some game
07:30:35 <Taneb> Solace, tables in what sense?
07:30:51 <Solace> Data
07:31:03 <Taneb> Hmm
07:31:05 <Taneb> SQL?
07:31:09 <Solace> Or Code that resembles Table structures
07:31:27 <Solace> Thats an esolang?!
07:31:52 <Solace> Arent esolangs supposed to be hard Taneb?
07:32:07 <Taneb> Solace, try using SQL for general programming
07:32:13 -!- roasted42 has joined.
07:32:21 <Solace> /already does
07:32:48 -!- Sprocklem has quit (Ping timeout: 250 seconds).
07:32:51 <oerjan> i think he means _only_ SQL
07:32:55 <Solace> Oh
07:33:03 <Solace> God dammit woman!
07:33:17 <Solace> I cant do that ive used SQL for two years
07:33:27 <Solace> Im tired of dat
07:33:35 <oerjan> zzo38 can, i think.
07:33:47 <Taneb> oerjan, I am 72% convinced zzo38 is magic
07:33:48 <oerjan> at least he seems to be trying.
07:34:00 <elliott> which one is the woman here
07:34:07 <Solace> Taneb what makes you say that
07:34:24 <Solace> oerjan is elliott
07:34:42 <oerjan> this i find unlikely
07:34:43 <Solace> go give your grandma a hug
07:34:45 <Solace> jk
07:34:55 <Solace> oh yorick is in here
07:34:59 <Taneb> elliott, I am not sure but I think either me or oerjan
07:35:00 <oerjan> both my grandmas are dead, would be awkward
07:35:19 <Solace> Hes on esper or is that another but same name idk
07:35:26 <elliott> maybe Solace was referring to Solace
07:35:36 <Solace> im male ;-;
07:35:45 <Solace> Its just a saying y'know
07:35:48 <oerjan> alas, poor yorick doesn't say much here
07:36:10 <Solace> The yorick on esper is very talkitive
07:36:40 <Taneb> Maybe yorick is distracted by esper
07:36:47 <Solace> So i found this great book like 4 years ago
07:37:01 <Solace> And i lost the name of it before i finished it
07:37:13 <Solace> Or minecraft Taneb
07:38:01 <oerjan> minecraft is so 2-3 years ago
07:38:04 <Solace> Thats what the yorick there does
07:38:05 <oerjan> for this channel
07:38:07 <Solace> mods it
07:38:26 <Solace> He knows alot for brainfuck and haskell tho so i wonder
07:38:30 <elliott> oerjan: 2-4 even actually I think
07:39:01 <Solace> vanilla mincrift
07:39:07 <Solace> its all about those mods
07:39:30 <Solace> Theres some cool ones to bad i dont waste money on things i dont really have time for
07:39:43 <oerjan> Solace: btw i also made this https://esolangs.org/wiki/Fueue#Brainfuck_interpreter
07:40:00 <elliott> we had a modded server, back in the day.
07:40:15 <elliott> back when health didn't work in multiplayer and you could duplicate items
07:40:20 <elliott> the good old days
07:40:46 <Solace> mods like AE and oc are pretty cool and complex
07:41:25 <oerjan> brainfuck and haskell does sound like he should be here
07:41:27 <elliott> also back when minecart boosters were a thing, and redstone was kind of broken, and...
07:41:39 <Solace> ye
07:41:50 -!- nisscrooge has quit (Ping timeout: 244 seconds).
07:41:50 <oerjan> elliott: so basically they fixed everything and now it sucks?
07:41:58 <elliott> oerjan: pretty much exactly that, yes
07:42:10 <elliott> the bugs were like half of what made it fun
07:42:17 <Solace> You can still make cool things with redstone
07:42:23 <elliott> also they tried to make it into an RPG for no reason because they don't understand the appeal of their own game
07:42:29 <Solace> its also horribly written vanilla.minecraft
07:42:33 <elliott> and added the worst ending imaginable
07:42:35 <Solace> and its been breaking lately
07:42:43 <Solace> Cuz of new staff
07:42:47 <elliott> you should see how broken it was in 2010
07:43:16 <Solace> only big updates are horses and sea temples
07:43:33 <Solace> stuff is getting harder to mod
07:44:02 <elliott> horses and sea temples...
07:44:08 <Solace> yes
07:44:55 <oerjan> what about sea horses twh
07:45:16 <Solace> I was wanting to make a thing that translates haskell into another language you want so if you dont know but know haskell so like cheat?
07:45:29 <Solace> but its probably already been done
07:45:53 <Solace> realtime translation? actually probably not
07:46:24 <elliott> haskell translated into another language would be even less readable than the original haskell
07:46:33 <Solace> Probs
07:46:34 <elliott> its semantics do not map very directly onto most other programming languages.
07:46:43 <Solace> Shhh
07:46:45 -!- roasted42 has quit (Ping timeout: 252 seconds).
07:46:47 <elliott> ?
07:46:51 <Solace> i must
07:47:03 <Solace> I MUST DEFY FATE
07:47:15 <Solace> and make this work
07:47:18 <elliott> it would be good if you didn't say things like "Shhh" and "God dammit woman!" to people who talk to you, it's pretty rude and condescending
07:47:28 <Solace> ye
07:47:30 <Solace> sorry ;-;
07:47:48 <elliott> it's ok, apology accepted :
07:47:50 <elliott> *:p
07:48:02 <Solace> Its a tick just like me scratching my skin away
07:48:06 <Solace> nvm that
07:48:15 <Solace> i wanna make dis work
07:48:31 <Solace> ofc haskell is very wonky
07:48:46 <Solace> idk brainfuck is even more wonky
07:49:08 <Solace> wink wonk
07:49:46 -!- Solace has changed nick to Solace|tablestuf.
07:49:53 <Solace|tablestuf> im gonna go do this
07:50:02 <Solace|tablestuf> wish me lakes
07:50:04 -!- roasted42 has joined.
07:54:54 -!- roasted42 has quit (Ping timeout: 256 seconds).
07:57:20 -!- roasted42 has joined.
08:01:08 -!- mitchs_ has joined.
08:02:02 -!- roasted42 has quit (Ping timeout: 265 seconds).
08:04:21 -!- mitchs has quit (Ping timeout: 252 seconds).
08:04:43 <J_Arcane> Hyvää joulua #esoteric
08:05:40 -!- augur has quit (Ping timeout: 255 seconds).
08:06:30 <elliott> hi
08:10:24 -!- augur has joined.
08:10:25 -!- nisscrooge has joined.
08:13:28 <J_Arcane> man, my haskell skills are rusty.
08:23:34 -!- roasted42 has joined.
08:27:44 -!- roasted42 has quit (Ping timeout: 245 seconds).
08:29:55 -!- roasted42 has joined.
08:31:36 <J_Arcane> > map (\x -> chr (x + 32)) [45,69,82,82,89,0,35,72,82,73,83,84,77,65,83,1]
08:31:38 <lambdabot> "Merry Christmas!"
08:32:41 <Solace|tablestuf> :0
08:34:33 -!- shikhin has joined.
08:34:44 -!- shikhin has quit (Read error: Connection reset by peer).
08:37:49 -!- shikhin has joined.
08:38:22 -!- shikhin has quit (Read error: Connection reset by peer).
08:40:37 -!- shikhin has joined.
08:40:42 -!- roasted42 has quit (Ping timeout: 265 seconds).
08:40:45 -!- shikhin has quit (Read error: Connection reset by peer).
08:45:49 -!- shikhin has joined.
08:46:18 -!- shikhin has quit (Read error: Connection reset by peer).
08:49:17 -!- roasted42 has joined.
08:58:35 -!- roasted42 has quit (Ping timeout: 265 seconds).
09:00:57 -!- shikhin has joined.
09:04:24 -!- nisscrooge has quit (Ping timeout: 245 seconds).
09:07:13 <J_Arcane> The haskell version is so much succinct than the Racket one: (apply string (map (λ (x) (integer->char (+ x 32))) '(45 69 82 82 89 0 35 72 82 73 83 84 77 65 83 1)))
09:14:38 <Jafet> > chr <$> [45,69,82,82,89,0,35,72,82,73,83,84,77,65,83,1]
09:14:40 <lambdabot> "-ERRY\NUL#HRISTMAS\SOH"
09:15:06 <oerjan> > chr . (+32) <$> [45,69,82,82,89,0,35,72,82,73,83,84,77,65,83,1]
09:15:07 <lambdabot> "Merry Christmas!"
09:15:12 <oerjan> hth
09:15:53 <Jafet> > chr . (+32) . ord <$> "-ERRY\0#HRISTMAS\1"
09:15:54 <lambdabot> "Merry Christmas!"
09:16:34 <oerjan> SUCCINCT\1
09:18:03 -!- oren has quit (Ping timeout: 252 seconds).
09:19:53 -!- oren has joined.
09:28:32 -!- roasted42 has joined.
09:33:42 -!- nisscrooge has joined.
10:06:09 <J_Arcane> In DECB: 5 FORX=1TO16:READN:N=N+32:?CHR$(N);:NEXTX:DATA45,69,82,82,89,0,35,72,82,73,83,84,77,65,83,1
10:08:21 <oerjan> what about 5 FORX=1TO16:READN:?CHR$(N+32);:NEXT:DATA45,69,82,82,89,0,35,72,82,73,83,84,77,65,83,1
10:10:27 <J_Arcane> That probably works too. I was debugging and never reverted.
10:13:10 -!- roasted42 has quit (Ping timeout: 256 seconds).
10:18:02 -!- roasted42 has joined.
10:22:48 -!- roasted42 has quit (Ping timeout: 256 seconds).
10:25:46 -!- roasted42 has joined.
10:31:00 <J_Arcane> > let 2 + 2 = 5 in 2 + 2
10:31:02 <lambdabot> 5
10:32:34 <oerjan> > let 2 = 3; 2 + 2 = 6 in 2 + 2
10:32:36 <lambdabot> 6
10:32:51 -!- roasted42 has quit (Ping timeout: 244 seconds).
10:37:57 -!- roasted42 has joined.
11:10:09 -!- Solace|tablestuf has quit (Quit: Connection closed for inactivity).
11:10:27 <myname> wtf
11:10:47 <myname> > let 2 = 3 in 2 + 2
11:10:49 <lambdabot> 4
11:10:54 <myname> :(
11:11:49 <lifthrasiir> > let -2 = 2 in -2 + -2
11:11:50 <lambdabot> Precedence parsing error
11:11:50 <lambdabot> cannot mix ‘GHC.Num.+’ [infixl 6] and prefix `-' [infixl 6] in the same ...
11:11:53 <lifthrasiir> :(
11:14:19 <Jafet> > let (-1) = 1 in (-1)^2
11:14:20 <lambdabot> 1
11:15:17 -!- roasted42 has quit (Ping timeout: 245 seconds).
11:18:13 -!- roasted42 has joined.
11:20:54 -!- oerjan has quit (Quit: leaving).
11:32:06 -!- Phantom_Hoover has joined.
11:43:20 -!- ais523 has joined.
11:50:36 <ais523> merry christmas, those of you who celebrate it today
11:50:53 <ais523> hmm, I received spam for SEO services
11:51:03 <ais523> but it reads almost exactly like viagra spam with relevant nouns swapped out
11:59:18 -!- roasted42 has quit (Ping timeout: 250 seconds).
12:00:21 -!- roasted42 has joined.
12:21:16 -!- shikhin has quit (Ping timeout: 255 seconds).
12:29:57 -!- Patashu has quit (Ping timeout: 240 seconds).
12:31:29 -!- roasted42 has quit (Ping timeout: 258 seconds).
12:31:31 <Taneb> Is your small company negatively affecting your love life?
12:35:09 -!- roasted42 has joined.
12:35:36 <Jafet> After easy, non-invasive enhancement therapy, Rajakrishnan now makes $500/day without leaving the house... find out more
13:11:56 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
13:15:23 -!- shikhin has joined.
13:30:23 -!- roasted42 has quit (Ping timeout: 244 seconds).
13:35:44 -!- roasted42 has joined.
13:39:41 -!- boily has joined.
13:40:09 <boily> JOYEUX NOËËËËËËËËËËËËËL!
14:00:28 <Vorpal> boily, hi
14:05:27 -!- Lymia has quit (Remote host closed the connection).
14:07:02 -!- Lymia has joined.
14:20:25 -!- Zuu has quit (Ping timeout: 250 seconds).
14:21:27 -!- roasted42 has quit (Ping timeout: 265 seconds).
14:26:44 <boily> Vorpal: vhellorpal!
14:27:01 -!- roasted42 has joined.
14:31:45 -!- tromp has quit (Ping timeout: 264 seconds).
14:33:05 -!- cluid has joined.
14:35:08 -!- Zuu has joined.
14:35:19 -!- Zuu has quit (Changing host).
14:35:19 -!- Zuu has joined.
14:40:31 -!- tromp has joined.
14:41:13 -!- roasted42 has quit (Ping timeout: 255 seconds).
14:42:57 -!- Zuu has quit (Ping timeout: 250 seconds).
14:46:18 -!- ais523 has quit (Ping timeout: 256 seconds).
14:48:36 <oren> メリークリスマス!!!
14:49:00 <boily> helloren!
14:50:01 <oren> 今ボイリーは
14:50:18 <scoofy>
14:50:37 <boily> すみませんが、ちょっと違いますよ
14:50:49 <boily> 「ボアリ」です
14:51:39 <boily> (フランス語の性です)
14:51:40 <lifthrasiir> what is poari?
14:51:46 <lifthrasiir> ah
14:51:55 <boily> b, not p :P
14:52:24 <lifthrasiir> indeed, I misread that
14:52:46 <HackEgo> [wiki] [[Harmful Brainfuck]] N http://esolangs.org/w/index.php?oldid=41536 * Cluid Zhasulelm * (+716) Harmful Brainfuck
14:53:33 <oren> メリークリスマス、リフスラシール。
14:53:34 <boily> also, 즐거운 성탄절 보내시고 새해 복 많이 받으세요
14:53:47 <scoofy> cool
14:53:53 <lifthrasiir> perfect!
14:53:56 <scoofy> @ harmful bf
14:54:30 <lifthrasiir> on harmful bf: so it assumes the infinitely-sized cell?
14:54:46 <cluid> oh oops! Thanks for that
14:54:49 <cluid> I forgot something really important
14:55:04 <scoofy> lifthrasiir: i believe not (hence, not Turing-complete)
14:55:05 <cluid> its supposed to be relative jumps
14:55:34 <cluid> so you need unbounded integers (including negative numbers)
14:55:37 <scoofy> "computed jump operator `*` which moves the program counter to the address in the program given by the current tape cell"
14:55:40 <lifthrasiir> scoofy, technically speaking, you can.
14:55:44 <cluid> let me fix that!
14:56:07 <scoofy> I can, what?
14:56:14 <lifthrasiir> you can make it Turing-complete*
14:56:17 <HackEgo> [wiki] [[Harmful Brainfuck]] http://esolangs.org/w/index.php?diff=41537&oldid=41536 * Cluid Zhasulelm * (+77)
14:56:27 <scoofy> possibly, *if* the jump is relative.
14:56:40 <scoofy> maybe via other ways, too, not sure.
14:57:00 <lifthrasiir> scoofy, BF can simulate TM with a finite size program, so it can immediately jump to the data area after some fixed-size simulator, and at the end of data area (which would set the tape up) it jumps back to the beginning of the simulator.
14:57:08 <lifthrasiir> it can jump back to..*
14:57:36 <scoofy> so there are 2 changes in the text now
14:57:39 <scoofy> 1) cells are infinite
14:57:41 <scoofy> 2) jumps are relative
14:57:54 <scoofy> meaning, you need a bignum library to emulate this?
14:58:03 <cluid> if you hvae any changes you want to make to it, please do! Or I can edit it
14:58:04 <mitchs_> * is an unconditional jump?
14:58:07 <cluid> its' not perfectly designede
14:58:11 <lifthrasiir> mitchs_, computed jump
14:58:17 <cluid> mitchs_, unconditional but computed, so that should be able to do conditionals
14:58:25 <cluid> but it doenst seem powerful enough +I think, maybe im mistaken
14:58:41 <lifthrasiir> ah, I found some issue with my thought: it cannot be easily terminated. :S
14:58:42 <mitchs_> thanks, good point
14:59:20 <lifthrasiir> cluid, what happens when * is run with the out-of-bound offsets?
14:59:29 <lifthrasiir> e.g. +++*
14:59:43 <scoofy> CRASH POW ZAP
14:59:44 <scoofy> of coz
14:59:52 <lifthrasiir> or launch the nethack
14:59:54 <cluid> yeah crash I dont think here anything else it coud do :P
15:00:07 <scoofy> just some heap corruption and nop slides
15:00:08 <scoofy> nothing else
15:00:13 <lifthrasiir> nop slides lol
15:00:29 <scoofy> that's Harmful Branfuck, bitchez!
15:00:32 <scoofy> after all
15:01:00 <cluid> haha
15:01:20 <int-e> cluid: you need to add some more specifics, what's the cell size (8bits signed integer?), but unless you make the sell size really tiny it should easily be TC, since all you have to implement is one particular universal machine.
15:01:38 <cluid> int-e, I've addd that unsigned integer of arbitrary size
15:01:52 <lifthrasiir> int-e, I've pointed it out above, but it would be quite hard to terminate that
15:02:25 <lifthrasiir> ah, no
15:02:26 <lifthrasiir> nvm
15:02:38 <lifthrasiir> that was about the absolute-offset variant of harmful bf
15:03:08 <lifthrasiir> the infinitely-sized-cell relative-offset harmful bf (as currently specified) is definitely TC
15:04:19 <int-e> Hmm, we discussed a language with slightly similar flavor a while back, where the problem was producing the addresses of forward jumps.
15:04:34 <cluid> yeah because we cannot write binary here like we could in MNNBFSL
15:04:45 <int-e> right. http://esolangs.org/wiki/MNNBFSL
15:06:21 <scoofy> this is able to GOTO
15:06:23 <scoofy> as far as I see
15:06:28 <int-e> cluid: hmm, if the values are unsigned then relative addresses are not an option.
15:06:32 <scoofy> via stack <-> ip manipulation
15:06:48 <mitchs_> the wiki doesn't say unsigned, i think it was just an irc typo
15:07:29 <cluid> yeah that's why I chose Integer
15:07:36 <cluid> oh opps
15:07:37 <cluid> sorry
15:07:39 <cluid> <cluid> int-e, I've addd that unsigned integer of arbitrary size
15:07:43 <cluid> correction: signed integer
15:08:11 <cluid> scoofy, yeah - there is an implemented an assembler for it which gives you labels and 'get label address'
15:08:23 <scoofy> nice
15:08:28 <cluid> its a bit complex because you have to write in binary and get all the space ready and things
15:08:36 <int-e> Anyway, I think the 8 bit signed integer cells version with relative jumps could be interesting to investigate.
15:08:42 <scoofy> possibly.
15:10:03 <lifthrasiir> int-e, it would be quite interesting if goto with offset -128/128 terminates immediately
15:10:13 <lifthrasiir> no asymmetry!
15:10:30 <mitchs_> is the program pointer incremented after a jump?
15:10:37 <int-e> lifthrasiir: right, but terminating programs is the least of my worries right now ;-)
15:10:40 <cluid> int-e, I was worried about that killing TC but I supose if you have a 'spine' in your program with notches every 128 then maybe you can get by....
15:10:43 <lifthrasiir> ;)
15:10:45 <cluid> so yes that sounds very interesting
15:11:07 <scoofy> or
15:11:28 <mitchs_> for example the program *, would it be no-op or infinite loop?
15:11:35 <int-e> at which offset does * jump to itself?
15:11:42 <scoofy> have multiple 'spines' in the center to 'guide' the jump somewhere
15:12:23 <scoofy> but
15:12:36 <int-e> (many CPUs have offset 0 correspond to the instruction following a jump, that's why I'm asking)
15:13:07 <int-e> But I guess it's prettier to have 0 jump to the * itself.
15:13:44 <scoofy> inf loop?
15:13:58 <scoofy> jmp 0 ---> 'halt and cach fire'
15:14:18 <int-e> lifthrasiir: that's also a natural candidate for immediate program termination :P
15:14:20 <scoofy> you can add a mnemonic to the assembler HCF
15:15:25 <lifthrasiir> hmm, if jmp 0 terminates, how can one make an infinite loop?
15:15:31 <scoofy> jmp --1
15:15:43 <lifthrasiir> ah, well
15:15:46 <scoofy> where opcode at -1 pos is NOP
15:15:54 <lifthrasiir> hmm
15:15:59 <int-e> alternatively, we could have -128..-1 jump to instructions before the * and 0..127 to instructions after the *, never jumping to the * itself. That would also be sort of symmeric.
15:16:01 <lifthrasiir> wait, is it possible?
15:16:11 <scoofy> why not?
15:16:27 <scoofy> does it not have NOP ?
15:16:28 <lifthrasiir> do comment characters count?
15:16:36 <lifthrasiir> towards the offset calculation, that is
15:16:45 <scoofy> UNSPECIFIED
15:16:55 <lifthrasiir> okay, so it is like an undefined behavior in C/C++
15:17:01 <scoofy> sounds like.
15:17:12 <lifthrasiir> you are free to launch the nethack or cause the earth destruction
15:17:13 <scoofy> it may, or may not. go into infinite loop.
15:17:19 <scoofy> or halt and catch fire.
15:17:21 <lifthrasiir> (I would be pleased when the latter is possible)
15:17:23 <scoofy> depending on implementation
15:17:44 -!- Zuu has joined.
15:18:00 <cluid> yes comment chars shoudl count I think
15:18:05 <cluid> otherwise it might be too hard
15:18:15 <scoofy> not really
15:18:21 <cluid> comment chars are kind of fun in MNNBFSL
15:18:23 <lifthrasiir> then `- *` is a simple infinite loop
15:18:28 <scoofy> --+-*
15:18:30 <scoofy> inf loop
15:18:32 <scoofy> without NOP
15:18:36 <cluid> hmm!
15:18:36 <scoofy> (+-) = NOP
15:18:41 <int-e> So ok. I think I'll play with a version with +-<>.,* and nops, and jumps centered on the * (* on a 0 cell loops forever), and 8 bit signed cells.
15:18:53 <scoofy> NOTE: -+ == NOP
15:18:57 <int-e> scoofy: nope
15:19:07 <scoofy> um... unless it does not wrap around properly.
15:19:07 <int-e> scoofy: you can't jump in there at an arbitrary place
15:19:23 <scoofy> sure. i'm just saying, +- is equivalent to NOP.
15:19:32 <int-e> and I just told you that it's not
15:19:34 <scoofy> (assuming wrap around)
15:19:43 <scoofy> please, explain?
15:19:46 <int-e> I DID
15:19:56 <scoofy> where
15:20:04 <int-e> if you jump into the middle of the -+ then the effect will not be a nop.
15:20:08 <scoofy> exactly.
15:20:16 <scoofy> but, if you jump to -2. it is equivalent.
15:20:19 <scoofy> to NOP.
15:20:27 <scoofy> so, just don't jump to -1 ! and it'll be OK
15:20:34 <scoofy> or, you can jump there anyways... for added fun and effect
15:20:35 <int-e> So it's not a nop in the scope of the language.
15:20:35 <scoofy> ;)
15:20:39 <scoofy> well
15:20:55 <scoofy> as long as you don't jump into the middle to skip the first part of it, it is a NOP.
15:21:03 <scoofy> if you do, then it's your fault.
15:21:16 <scoofy> this is Harmful Brainfuck, don't forget!
15:21:21 <scoofy> you have to be careful, where you jump.
15:22:01 <scoofy> (sure you can add comment chars, if you want to make it easier, and less fun)
15:26:41 -!- contrapumpkin has changed nick to copumpkin.
15:29:22 <HackEgo> [wiki] [[Cheese+++]] N http://esolangs.org/w/index.php?oldid=41538 * Cluid Zhasulelm * (+1557) Cheese+++
15:30:13 <HackEgo> [wiki] [[Brainfuck derivatives]] http://esolangs.org/w/index.php?diff=41539&oldid=41522 * Cluid Zhasulelm * (+24) /* GOTO FUCK */
15:31:04 <HackEgo> [wiki] [[User:Cluid Zhasulelm]] M http://esolangs.org/w/index.php?diff=41540&oldid=41513 * Cluid Zhasulelm * (+129)
15:33:10 <mitchs_> why is it called harmful?
15:33:22 <scoofy> 'GOTO is considered harmful'
15:33:24 <scoofy> never heard that? :)
15:33:33 <mitchs_> aha
15:33:39 <scoofy> title of a famous paper
15:34:02 <scoofy> http://www.u.arizona.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html
15:34:08 <mitchs_> i had heard of it, yes
15:34:12 <cluid> copyright_violations haha
15:34:22 <scoofy> lol
15:34:30 <scoofy> at least he's upfront about it
15:34:55 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
15:35:08 <scoofy> so, based on this article, Harmful Brainfuck will have disastrous effects on program readability and maintainability
15:35:15 <mitchs_> oh no
15:35:26 <scoofy> you won't be easily read nice structured brainfuck
15:35:34 <cluid> XD
15:36:49 <scoofy> and maintaining Harmful Brainfuck programs will be harder than with regular Brainfuck
15:37:03 <cluid> ill write an impementation in C
15:37:11 <scoofy> go ahead :P
15:37:11 <cluid> or should it be javascript
15:37:15 <cluid> what will be easiest for people to use
15:37:21 <scoofy> C sounds good
15:39:07 <mitchs_> C would be good for adding it to anarchy golf
15:44:33 <mitchs_> (assuming it turns out to be a powerful enough language)
15:47:07 <int-e> http://sprunge.us/fdDN?c ... based on the bfgolf reference implementation.
15:47:31 <cluid> oh thanks!
15:47:44 <cluid> can we please put this on the wiki?
15:47:56 <cluid> I mean link to it
15:47:57 <scoofy> no range error checking fr jump?
15:47:59 <cluid> I gues..
15:48:10 <scoofy> oh there is.
15:48:12 <scoofy> later on
15:48:18 <mitchs_> 8 bit cells could make for some awkward jumping schemes, although maybe that would be more fun for some people
15:48:23 <scoofy> indeed.
15:48:36 <scoofy> some central 'spine' in the program at 128/256 intervals...
15:49:16 <cluid> hm maybe signed ints and the two jumps. ] to go left and [ to right right...
15:49:24 <cluid> unsigned**
15:49:40 <int-e> Oh, I added some redundant checks there.
15:49:52 -!- roasted42 has joined.
15:51:23 <scoofy> i spot an error
15:51:32 <scoofy> if (a[p] == -128) {
15:51:44 <scoofy> should be 'if (a[p] == -129)'
15:51:47 <scoofy> -128 is valid
15:52:14 <scoofy> and 'if (p > MAXBUF) {' should be
15:52:19 <scoofy> if (p == MAXBUF) {
15:52:37 <scoofy> after all, if MAXBUF = 32768, then a[32768] is out of range
15:52:58 <int-e> the -128 is intentional, for symmetry. THe other one was a brainfart, but a harmless one since it's checked again below.
15:53:47 <scoofy> indeed. it's checked at 2 places.
15:54:00 <scoofy> and there's no range check for IP overflow/underflow.
15:54:43 <int-e> Yes, you can jump anywhere outside of the program space to terminate it.
15:54:56 <scoofy> except, it wouldn't terminate it.
15:55:01 <scoofy> would it?
15:55:15 <int-e> while (ip >= 0 && ip < code_len) { <-- that should do the trick
15:55:24 <scoofy> oh.
15:55:28 <scoofy> indeed.
15:56:00 <int-e> http://sprunge.us/DDLH?c -- removed the unintentional changes.
15:56:41 <mitchs_> there's no way to output 0xff ?
15:56:46 <scoofy> ' if (a[p] == -128) { ' this is probably incorrect
15:56:51 <scoofy> as -128 is valid as a signed char
15:56:55 <scoofy> -129 isn't
15:57:10 <scoofy> mitchs_, you can output it as negative
15:57:15 <scoofy> that is... -1
15:57:20 <scoofy> which is 0xFF
15:57:21 <mitchs_> er, i made a mistake then
15:57:30 <mitchs_> whatever the unsigned equivalent of -128 is
15:57:32 <int-e> mitchs_: 0x80 is the value that's omitted.
15:57:35 <mitchs_> ah
15:57:53 <scoofy> question is, why is it omitted.
15:58:00 <int-e> symmetry!
15:58:11 <scoofy> who cares about symmetry?
15:58:16 <scoofy> i care about being able to output 0x80
15:59:17 -!- scoofy has quit (Quit: Leaving).
16:00:24 -!- scoofy has joined.
16:01:22 -!- Zuu has quit (Ping timeout: 250 seconds).
16:01:24 <int-e> well, let me rewrite the thing so that it can be legally on the wiki...
16:02:46 -!- Zuu has joined.
16:03:05 -!- roasted42 has quit (Ping timeout: 258 seconds).
16:05:54 <int-e> more seriously, , was implemented wrong.
16:06:08 -!- roasted42 has joined.
16:13:34 -!- roasted42 has quit (Ping timeout: 245 seconds).
16:15:57 -!- roasted42 has joined.
16:21:03 <int-e> so how about http://sprunge.us/YXfd?c
16:22:23 <int-e> (there really aren't that many degrees of freedom for writing such an interpreter.)
16:24:28 <scoofy> looks good!
16:24:43 <scoofy> maybe the case ',' could be written shorter as, data[p] = (signed char)getchar() ?
16:25:16 <scoofy> althought that's not fully equivalent
16:25:18 <cluid> this loooks great thanks a lot!
16:25:21 <cluid> why is it ip += data[p] - 1;
16:25:37 <int-e> cluid: because there'll be an ip++ later.
16:25:38 <scoofy> cos: for (ip = 0; ip >= 0 && ip < size; ip++) {
16:25:41 <scoofy> ip++
16:25:54 <int-e> cluid: and I wanted to have 0 jump to the * itself.
16:26:31 <scoofy> so that's inf. loop
16:26:44 <cluid> ah :)
16:28:57 <scoofy> looks good! so who writes the first 'towers of hanoi' in harmful brainfuck? :P
16:36:12 -!- roasted42 has quit (Ping timeout: 250 seconds).
16:37:12 <cluid> it just sems too hard!
16:37:18 <cluid> It would be so cool if someone managed
16:41:03 -!- roasted42 has joined.
16:42:13 <int-e> Oh, I almost missed the "gotos considered harmful" reference.
16:48:52 -!- dts|pokeball has joined.
16:58:14 <int-e> scoofy: btw, casting an out-of-range integer value to a signed type has "implementation-defined" behavior; an implementation is free to specify various behaviours (ideas include wrap-around, saturation, and raising a signal).
16:58:26 <scoofy> indeed.
16:59:49 <int-e> (Then again I should probably be more careful with that putchar() call if I wanted the code to be portable. Oh and not use ints for values larger than 32767...)
17:01:30 <cluid> we should program in assembly for sureness
17:02:19 <int-e> cluid: go ahead, don't let us stop you
17:03:17 -!- ais523 has joined.
17:03:49 -!- InvalidCo has quit (Ping timeout: 272 seconds).
17:03:56 -!- InvalidCo has joined.
17:04:05 -!- cluid has quit (Quit: Leaving).
17:04:12 <ais523> oh, cluid just left
17:04:27 <scoofy> maybe, just write it in Brainfuck
17:04:27 <ais523> BF except with "goto current tape location" is almost certainly TC, despite the claims of the article
17:04:28 <int-e> POKE-d the wrong address, I bet.
17:04:32 <scoofy> for maximum portability, ya know
17:04:35 <ais523> and probably is even with 8-bit cells, although that's less obvious
17:04:52 <scoofy> you guys should implement it in brainfuck, to make it portable
17:05:57 <int-e> I guess the natural file extension for harmful brainfuck is .h :-)
17:06:58 <scoofy> .hbf
17:07:17 <int-e> that's not so harmful ;-)
17:07:39 <scoofy> and not so conveninet.
17:08:06 <scoofy> unless it is a polyglot in C and also compiles to C, i wouldn't call that 'harmful'.
17:08:24 <int-e> Ok, so the downside of the infinite loop on 0 is that one cannot process arbitrary binary data. But that's no obstacle to TC-ness.
17:08:25 -!- roasted42 has quit (Ping timeout: 244 seconds).
17:08:38 <int-e> (I guess ais523 just saw that restriction)
17:09:44 <scoofy> well, jmp 0 puts it into inf loop.
17:09:53 <scoofy> so first you have to test for zero.
17:10:01 <int-e> * is the only conditional we have
17:10:20 -!- Phantom_Hoover has joined.
17:10:46 -!- roasted42 has joined.
17:10:54 <scoofy> ummmm.........
17:11:08 <scoofy> that's tricky.
17:11:25 <scoofy> so 0x00 in data means "halt and catch fire"
17:16:52 <ais523> int-e: that means it's not BF-complete, not that it's not TC
17:17:38 <ais523> it might even be possible to write arbitrary programs in it, and get full TC (not just curly-L), via appending data to a short interp
17:19:36 <int-e> I might switch to 9 bit signed ints to make it BF-complete.
17:20:21 -!- InvalidCo has quit (Ping timeout: 264 seconds).
17:26:03 -!- InvalidCo has joined.
17:30:22 -!- InvalidCo has quit (Ping timeout: 250 seconds).
17:30:57 -!- sebbu2 has joined.
17:31:30 -!- InvalidCo has joined.
17:31:34 -!- sebbu2 has quit (Changing host).
17:31:34 -!- sebbu2 has joined.
17:32:32 -!- sebbu has quit (Ping timeout: 250 seconds).
17:37:44 -!- roasted42 has quit (Ping timeout: 245 seconds).
17:40:15 -!- roasted42 has joined.
17:50:40 <myname> how is fancy-L completeness defined?
17:51:07 -!- roasted42 has quit (Ping timeout: 245 seconds).
17:55:47 <HackEgo> [wiki] [[Harmful Brainfuck]] http://esolangs.org/w/index.php?diff=41541&oldid=41537 * 212.95.7.129 * (+939) Semantic update (* is relative), and example program.
17:57:00 -!- roasted42 has joined.
17:59:37 <HackEgo> [wiki] [[Harmful Brainfuck]] http://esolangs.org/w/index.php?diff=41542&oldid=41541 * 212.95.7.129 * (-13) fix extra spaces
18:00:50 <int-e> Maybe there should be dialects: absolutely harmful brainfuck and relatively harmful brainfuck...
18:01:14 <scoofy> heh.
18:02:04 -!- roasted42 has quit (Remote host closed the connection).
18:02:54 <Sgeo> "Version Schema
18:02:54 <Sgeo> MINOR: increased every christmas, may be API incompatible"
18:04:03 -!- roasted42 has joined.
18:04:06 <myname> where is that from?
18:04:45 -!- drdanmaku has joined.
18:04:55 <Sgeo> https://www.reddit.com/r/ruby/comments/2qcvoz/ruby_220_released/
18:21:31 -!- SopaXorzTaker has joined.
18:22:31 -!- SopaXorzTaker has set topic: The channel of returning trolls | but often spelled correctly. | /join #esolang http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/.
18:25:26 -!- int-e has set topic: The channel of returning trolls | but often spelled correctly. | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/.
18:26:17 <myname> wtf
18:26:50 <int-e> yes, my thought exactly.
18:27:07 <int-e> elliott: this may be of interest to you.
18:37:58 -!- augur has quit (Remote host closed the connection).
18:39:52 -!- roasted42 has quit (Ping timeout: 258 seconds).
18:40:14 <pikhq> Please, someone drill into my teeth.
18:41:40 -!- SopaXorzTaker has quit (Remote host closed the connection).
18:43:34 <int-e> pikhq: this might be just the thing for you: http://www.girlgeniusonline.com/comic.php?date=20090306
18:45:17 <pikhq> Yes please.
18:50:34 <int-e> Interestingly, #esolang was registered 8 years ago, but it's totally empty.
18:59:54 <int-e> And of course the founder is actually here. Hi Zuu :)
19:04:01 -!- shikhin_ has joined.
19:06:54 -!- shikhin has quit (Ping timeout: 245 seconds).
19:07:02 -!- shikhin_ has changed nick to shikhin.
19:14:52 -!- oren has quit (Ping timeout: 240 seconds).
19:33:32 -!- InvalidCo has quit (Ping timeout: 258 seconds).
19:39:50 -!- InvalidCo has joined.
19:51:34 -!- InvalidCo has quit (Ping timeout: 265 seconds).
19:53:04 -!- InvalidCo has joined.
19:59:24 -!- InvalidCo has quit (Ping timeout: 245 seconds).
20:04:37 -!- InvalidCo has joined.
20:05:29 <zzo38> Maybe something like Lisp could be made to target this format http://rpg.hamsterrepublic.com/ohrrpgce/HSZ it would probably be better than the existing compiler. It could be called "Hamster Lisp" compiler.
20:06:49 <drdanmaku> oh man ohrrpgce
20:06:56 <drdanmaku> i remember using that over a decade ago
20:07:27 <drdanmaku> those default 3d-ish smiley sprites were great
20:09:17 -!- InvalidCo has quit (Ping timeout: 240 seconds).
20:10:30 <zzo38> This format is a tree data so it seem like a Lisp like format with macros would be a good way to compile into such a thing.
20:11:31 <zzo38> drdanmaku: If you have worked with that, have you worked with BAM music files? I have written a program to convert BAM into VGM so that you can play them with VGMPlay (which includes a OPL2 emulator).
20:12:02 <drdanmaku> those words may have meant something to me back in like 2002
20:12:19 <drdanmaku> i'm just surprised this thing is still around
20:15:47 <zzo38> The modern version is license by GNU GPL, and can no longer play BAM; it converts BAM to MIDI and plays it back, resulting in it isn't very good since MIDI will play back differently depending on the computer and cannot contain OPL2 instruments.
20:23:40 <zzo38> One thing is that although fonts in OHRRPGCE are 8x8 mono, they do not use a common format; however, they are equivalent to the common format with the characters rotated and a header added.
20:24:21 <zzo38> (The header is simply a BSAVE header.)
20:24:42 <myname> did anybody said what you have to do to be fancy-L complete?
20:25:20 <zzo38> myname: Did you look in the wiki about fancy-L completeness?
20:25:29 <ais523> myname: a language is fancy-L complete if at least one program in that language is an interpreter for a TC language
20:26:12 <myname> i read it once, but i'm not clear of what to think about it
20:26:32 <myname> i'm not sure if it is less or more specific than tc
20:29:11 -!- InvalidCo has joined.
20:32:30 <zzo38> It isn't entirely clear to me either, although I can see by the wiki clearly describes what fancy-L is, although how it interacted with computation class and that stuff is unknown.
20:34:52 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
20:35:19 <myname> didn't people here mentioned something like "only fancy-L but not tc"?
20:38:47 <zzo38> Like does HQ9+B count for example?
20:38:56 <zzo38> I don't quite know.
20:40:12 <boily> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH!
20:40:17 -!- boily has quit (Quit: EMERALD CHICKEN).
20:41:03 <zzo38> Is there any such thing as some Lisp variant where you can have local names guaranteed not to conflict with outer names by for example if (CONSTANT X 42) may define a constant X as 42 but (~X (CONSTANT X 42)) does not redefine X at all from the view outside of that block (it defines an inaccessible constant)?
20:42:32 <zzo38> (And if you typed (~CONSTANT (CONSTANT X 42)) then it would be an error because the CONSTANT command is not understood.)
20:43:11 <int-e> myname: In the most recent context, the term used was "BF-complete", which includes I/O capabilities.
20:46:36 <int-e> In any case I'm happy with calling the elements of fancy-L Turing-complete, because some trivial input preprocessing is allowed, and prepending a constant string is quite trivial. But it is indeed slightly disturbing that such a fundamental concept has no universally (sic!) agreed formal definition.
20:48:20 <myname> is that a job for the eso standard group?
20:49:11 <elliott> int-e: I do not know what you mean by prepending a constant string
20:49:30 <elliott> an example fancy L is the language with exactly one program, run_bf(read_stdin())
20:50:21 <zzo38> int-e: Yes it is what the problem is, it seems, in fact.
20:50:27 <zzo38> That is what I thought too.
20:50:34 <int-e> elliott: Ah, I *want* self-delimiting programs. Then I prepend the brainfuck program to the input.
20:50:53 <elliott> I see.
20:51:00 <elliott> well, input is at the heart of the fancy L problem
20:51:27 <int-e> ^bf ,[.,]#12345
20:51:47 <elliott> you mean !
20:51:57 <int-e> !bf ,[.,]#12345
20:51:59 <EgoBot> No output.
20:52:03 <elliott> you mean !
20:52:07 <int-e> !bf ,[.,]!12345
20:52:08 <EgoBot> No output.
20:52:29 <elliott> or not.
20:52:33 <elliott> ^bf ,[.,]!q
20:52:33 <fungot> q
20:52:48 <int-e> it had to be the fourth choice, of course.
20:52:52 <elliott> int-e: ha, did you think I meant the ! at the start of the line? :)
20:52:58 <elliott> I didn't even think of that interpretation until now
20:54:11 <int-e> So anyway, with that convention, ^bf is universal, even though it's a fixed program with only one stream of input.
20:54:41 <int-e> (imo, ymmv)
20:54:46 <ais523> `! bf ,[.,]!q
20:54:57 <ais523> hmm, EgoBot is faster
20:55:08 <ais523> either that, or HackEgo's malfunctioning again
20:55:10 <ais523> `! bf ,[.,]!q
20:55:17 <HackEgo> No output.
20:55:40 <HackEgo> No output.
20:57:27 <elliott> int-e: okay, but I think the position here is that f("...!...") is really just notation for g("...", "...")
20:57:34 <elliott> and the point is to fix the first argument of g
20:57:50 -!- ais523 has quit (Read error: Connection reset by peer).
20:57:52 <elliott> the whole point is that we can argue about it all day, of course
20:58:00 -!- ais523 has joined.
20:58:42 <int-e> elliott: of course, that's the point of any self-delimiting encoding of things as strings of atoms: you can encode a stream of things in a stream of atoms.
20:59:18 <int-e> You just need to be careful not to drown.
20:59:45 <elliott> int-e: I guess the point is that (a) generally we define TCness in terms of (program, input), *not* single strings; (b) regardless, however many arguments you have, one of them has to be fixed.
21:00:33 <int-e> At least Chaitin got this right.
21:00:37 <elliott> -- e.g., note that the theory is generally in terms of "functions" rather than "computation" (which is one of the major ambiguities of TCness in terms of things like CAs and so on)
21:00:44 <elliott> *"computations"
21:01:05 <elliott> whereas bf("...!...") is a "computation" where you encode the input inside. so it's not too conventional from this perspective.
21:01:17 <elliott> (as in, there is really no "input", it's just like perl's __DATA__; a data-encoding part of the program)
21:01:26 <int-e> (Chaitin's Algorithmic Information Theory has self-delimiting programs and inputs almost everywhere.)
21:01:33 -!- Patashu has joined.
21:01:46 <elliott> I wouldn't be surprised if Chaitin had already come up with the fancy L idea.
21:08:43 <int-e> elliott: bf("...!...") <-- but this is what universal TMs do as well, encode a TM in the initial part of the tape followed by the actual TM's input, possibly recoded to compensate for mismatches in the alphabet.
21:09:14 <elliott> int-e: sure, yeah. that is one of the most perverse things about it: UTMs are often the odd one out in the way we think about TCness :)
21:10:03 <int-e> (Obviosusly I consider UTMs to be TC, though I see the potential to disagree.)
21:10:04 <ais523> elliott: some definitions of UTMs use a separate input tape
21:10:21 <ais523> normally, which only allows "read and move forwards" instructions, not moving backwards or writing
21:11:16 <int-e> Right, there are actually too many flavors of TMs as well.
21:11:34 <int-e> All morally equivalent, but that's rarely spelled out formally.
21:13:32 <ais523> it matters a lot when you're trying to define "equivalent"
21:14:16 <int-e> (Imagine implementing a chess engine on a Minsky counter machine. "Oh, see, that machine is not interactive. So you have to plan ahead, predict the machine's moves, collect all your replies and encode them all at once as input by plugging it into the following crazy formula...")
21:15:14 <int-e> (it's just the same with the bf("...!...") thing, of course.)
21:15:50 <ais523> int-e: wouldn't you give the machine a description of what you'd play in all possible situations?
21:16:08 <elliott> (uploads brain) finally, I can play chess with a computer
21:16:18 <int-e> ais523: I'm trying to be *cough* practical here.
21:16:26 <elliott> int-e: to be fair, I don't think any notion of TC cares about "interactive"
21:16:37 <elliott> the input tends to be specified up-front, formally
21:16:37 <ais523> we have a notion of BF-completeness because of this sort of thing
21:16:59 <int-e> elliott: of course not. nobody cares, since one can start as many computations as one likes.
21:17:20 <elliott> int-e: yes, why don't we just make the computations do single steps instead of looping... oh wait
21:17:38 <int-e> elliott: but we *were* discussing the role of input and output, and this really matters a lot when interaction comes into play.
21:18:42 <int-e> The scope of "nobody" was theoretical computer scientists (like myself), and I'm sure there are exceptions.
21:19:19 <elliott> it was a joke
21:19:54 <int-e> I'm serious. Mostly.
21:20:14 -!- roasted42 has joined.
21:20:31 <elliott> sounds off-topic
21:20:46 <int-e> Turing Completeness Science is no laughing matter!
21:24:16 -!- oren has joined.
21:31:31 <oren> So, about  that widechar language
21:32:22 <oren> I've decided to make it using an actual formal grammar
21:33:18 <myname> is there any real reason to not just take normal letters?
21:33:22 -!- ^v has joined.
21:34:04 <oren> The language will only accept characters that are full width
21:34:17 <oren> halfwidth chars will be used only for comments
21:37:51 -!- idris-bot has quit (Quit: Terminated).
21:38:22 -!- Melvar has quit (Quit: WeeChat 1.0.1).
21:41:55 -!- Melvar has joined.
21:45:17 <oren> data types will be such as: 整数、正整数、実数、文字列
21:45:50 <oren> that is to say, integer, unsigned, real number, character string
21:46:59 -!- idris-bot has joined.
21:47:28 <int-e> ⣾⣉⣷ ⣿⣀⣿ ⣿⣉⡷ ⣾⢉⣓ ⣿⣀⣿ ⣿
21:47:28 <int-e> ⠿ ⠿ ⠿ ⠿ ⠿ ⠿ ⠻⠤⠟ ⠿ ⠿ ⠶
21:47:51 <oren> AHRGH? 
21:48:19 <oren> int-e, what has you riled up today?
21:49:02 <int-e> I think the wide characters grew old yesterday.
21:49:22 <int-e> Also, christmas. Well, at least that's pretty much over.
21:50:07 <oren> wll i dunno how to do the quad-width double height chars you did...
21:52:09 <oren> 整数 人=
21:52:23 <oren> 12+3
21:53:02 <oren> `unidecode ⣾⣉⣷
21:53:03 <HackEgo> ​[U+28FE BRAILLE PATTERN DOTS-2345678] [U+28C9 BRAILLE PATTERN DOTS-1478] [U+28F7 BRAILLE PATTERN DOTS-1235678]
21:53:08 <int-e> I manually composed them from braille patterns.
21:53:15 -!- roasted42 has quit (Ping timeout: 272 seconds).
21:54:03 <int-e> if you script that I'll put you on ignore. promised.
21:54:30 <oren> script what?
21:54:48 <int-e> a braille-pattern based font
21:55:00 -!- roasted42 has joined.
21:55:01 <oren> i have no plans on that sounds too hard
21:56:14 <int-e> Damn, I really *am* grumpy today.
21:56:33 <oren> especially since i can get a relatively large font just by using the wide latin mode on my IME
21:57:38 <elliott> don't worry I'll be kicking if the doublewidth text thing goes on too long
21:57:50 <elliott> although I will allow it if oren speaks exclusively in japanese
21:57:51 <coppro> now I'm worried
21:58:35 <oren> そうか? OKです
22:00:04 <oren> 心配しない、コップロさん。日本語は簡単だよ。
22:00:14 <coppro> fact: I cannot read japanese
22:00:23 <coppro> I approve of this esoteric language
22:01:11 <oren> どうもありがとうございます
22:01:33 <elliott> I regret everything
22:04:00 * nortti can actually understand what oren is saying :O
22:04:13 * pikhq can as well
22:04:20 <nortti> well, with the help of kanji dictionary, but still
22:04:25 <oren> 安心しよ、エリオットさん。難しくなってば、俺は英語に喋る
22:04:42 <coppro> if I plugged it into a dictionary I could probably get the gist of it
22:04:48 <pikhq> Kanji ga kantan ssu yo.
22:04:53 <pikhq> (gomen, IME nai)
22:05:45 <elliott> nice "eriotto-san"
22:06:07 <coppro> but that's because a dictionary turns it into english ><
22:06:54 <oren> 漢字は簡単、でも文法は難しい
22:07:06 <elliott> shouldn't it be "-sama" when I'm threatening to kick you
22:07:22 <pikhq> elliott: Depends on his opinions towards being kicked I suppose.
22:08:48 <oren> 「どの」かな?
22:09:13 <oren> 江戸時代っらしいけど。
22:13:31 <Sgeo> Is The Interview a good movie? Should I watch it?
22:13:39 <elliott> no
22:15:41 <oren> でわ諸君。全角プログラミング言語の文法わ、半分ALGOLと半分LISPでいいかな?
22:16:42 <myname> hör auf
22:18:41 <oren> 流れ制御はALGOLらしい、でも数学はやっぱりLISPの方がいい。
22:19:13 <myname> oren: this is an english channel
22:19:38 <oren> エリオットの命令だよ。
22:20:45 <oren> elliott> although I will allow it if oren speaks exclusively in japanese
22:21:20 <oren> だから、日本語で話します。
22:22:09 <myname> elliott: i hate you
22:22:46 <elliott> same
22:23:02 -!- roasted42 has quit (Ping timeout: 256 seconds).
22:23:33 <oren> どうしてマイネーム怒ってる?
22:23:38 -!- ais523 has quit (Read error: Connection reset by peer).
22:23:44 -!- callforjudgement has joined.
22:23:58 <elliott> an important life skill is knowing when to stop
22:24:18 <oren> ok fine. it was fun while it lasted
22:24:49 -!- roasted42 has joined.
22:24:55 <oren> i got to say dewa shokun unironically
22:26:58 <oren> what i meant by half-lisp half algol is something like this: x=(* a (- z y))
22:28:35 <oren> because i hate the algol math-like syntax, so i'm replacing it with s-expressions
22:28:53 <oren> while retaining an algol-like control flow
22:29:44 <zzo38> How are the control flows different?
22:30:30 <oren> lisp control flow uses tail recursion, while algol uses explicit while conditions
22:30:44 -!- Phantom_Hoover has joined.
22:30:48 <oren> and often explicit counter variables
22:31:56 <oren> ``for i from 0 to N'' and such
22:31:57 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `for: not found
22:32:49 <oren> dammit can't i begin a sentence with a symbol without setting off the bots
22:33:14 <int-e> "there are a couple of things that work fine"
22:33:16 <elliott> oren: that's not accurate
22:33:35 <elliott> tail recursion is not really idiomatic in common lisp and often not optimised away, and it has a very elaborate iteration construct in LOOP
22:33:39 <int-e> . o O ( Partly thanks to elliott's diligence. )
22:33:49 <elliott> scheme isn't representative of lisp as a whole
22:34:10 <elliott> int-e: is it diligence when I only kicked it because it annoyed the crap out of me? :p
22:34:31 <elliott> oren: e.g., http://www.gigamonkeys.com/book/loop-for-black-belts.html
22:34:53 <elliott> (LOOP is kind of weird. I don't like its fairly "unlispy" mini-DSL. but it is iteration through and through)
22:35:24 <elliott> it is rather terrifyingly elaborate: http://www.lispworks.com/documentation/lw60/CLHS/Body/m_loop.htm
22:35:46 <int-e> right, that was the other thing that made me turn my back on common lisp...
22:35:48 <elliott> there is also http://common-lisp.net/project/iterate/, which a lot of people prefer due to it having more parentheses. (half-kidding.)
22:36:11 <int-e> (not just loop, but also that sort of documentation)
22:36:39 <elliott> people have this view of "lisp" as being this very clean, very functional, anti-imperative thing with a lot of recursion but actually scheme is the odd one out in its relative purity of design
22:36:44 * int-e is negative today, trying to underflow.
22:37:07 <int-e> scheme is sane!
22:37:10 <zzo38> Well, my idea of the "Hamster Lisp" would resemble more closely control flows of C, since the target binary code expects it, and the source trees would resemble the binary codes closely (other than macros).
22:37:34 <elliott> scheme is *not* exactly simple and elegant, either
22:37:45 <elliott> did you know that letrec + call-with-current-continuation is enough to implement mutable cells with no explicit mutability?
22:37:56 <elliott> or, y'know, the whole dynamic-wind monstrosity...
22:38:04 <int-e> Well, neither is Haskell.
22:38:06 <elliott> also, its strings are mutable, but they cannot change in length(!)
22:38:15 <elliott> (this despite R7RS trying to be all unicodey...)
22:39:07 <int-e> I suspect that only esoteric languages can be simple and elegant.
22:39:16 <elliott> bonus: Scheme's map can more or less either be tail-recursive, interoperate properly with call-with-current-continuation instead of breaking, or iterate through the list only once -- pick two
22:39:26 <elliott> really most of the problems are down to call/cc.
22:39:41 <elliott> it's pretty abstraction-breaking, especially in a higher-order context.
22:40:14 <int-e> So scheme minus call/cc is sane?
22:40:57 <elliott> Scheme minus call/cc is a better-behaved language that is easier to reason about. there is reasonable doubt about how useful call/cc actually is, even when you want continuations; you usually want delimited ones, like Haskell's Cont monad.
22:41:11 <elliott> see http://okmij.org/ftp/continuations/against-callcc.html for oleg's anti-call/cc propaganda
22:43:12 <elliott> I wish R7RS made it optional or something, but I think that'd be politically difficult. call/cc is shiny and fun and seems elegant in its power, people like to use it, and it's part of the image of Scheme.
22:43:34 -!- roasted42 has quit (Ping timeout: 245 seconds).
22:44:58 <elliott> here, have an implementation of IORef with call/cc and letrec: https://groups.google.com/forum/#!msg/comp.lang.scheme/7BKqC7jwZTQ/uf0buv--J7wJ
22:45:06 <elliott> warning: terrifying
22:45:23 -!- roasted42 has joined.
22:45:30 -!- dts|pokeball has quit (Read error: Connection reset by peer).
22:46:15 <elliott> you can see how this happens from the rather precise definition of LETREC:
22:46:20 <elliott> "Semantics: The hvariableis are bound to fresh locations holding unspecified values, the hinitis are evaluated in the resulting environment (in some unspecified order), each hvariablei is assigned to the result of the corresponding hiniti, the hbodyi is evaluated in the resulting environment, and the values of the last expression in hbodyi are returned. Each binding of a hvariablei has the ...
22:46:26 <elliott> ... entire letrec expres- sion as its region, making it possible to define mutually recursive procedures."
22:46:49 <elliott> in effect, call/cc lets us pull out the mutability in the definition of letrec where ordinarily it would be impossible to exploit.
22:47:57 <oren> i see. so, i'm not really talking about lisp when i say lisp, i'm talking about scheme
22:48:02 <int-e> oh, some 'h' and 'i' appear to be whitespace.
22:48:25 <int-e> font changes? or spacing?
22:50:20 -!- dts|pokeball has joined.
22:51:01 <oren> but anyway, so essentially by grammar (on paper) is looking like a chinese version of BASIC with S-exprs instead of infix math
22:51:16 <elliott> int-e: the fancy <>s
22:51:24 <elliott> you know the ones. the tuple ones
22:51:59 <int-e> right
22:52:26 <int-e> and I don't even have them... «»⟪⟫
22:52:41 <elliott> ("One sometimes hears a misleading statement that ``it is possible to implement Scheme's set! in terms of Scheme's call/cc and letrec.'' The statement mis-represents Alan Bawden's observation that according to Scheme standards and common practice, letrec is implemented in terms of set!; that hidden set! can be `pried open' with call/cc. Of course letrec can be implemented without set!, for ...
22:52:44 <int-e> here: ⟨⟩
22:52:47 <elliott> ... example, via the fix-point combinator. The inability of call/cc to express mutable state becomes clear then. Section 4.4 of Friedman and Sabry's ``Recursion is a Computational Effect'' has the detailed explanation." -- Oleg)
22:53:47 <zzo38> How would you implement law of excluded middle continuations in Scheme?
22:53:57 -!- zzo38 has quit (Remote host closed the connection).
22:55:34 -!- augur has joined.
23:03:06 <int-e> How do I unsee this term: "co-finalizers" ...
23:05:39 -!- S1 has joined.
23:05:49 -!- not^v has joined.
23:09:40 -!- ^v has quit (Ping timeout: 250 seconds).
23:12:22 -!- ^v has joined.
23:15:23 -!- cluid has joined.
23:15:39 -!- not^v has quit (Ping timeout: 245 seconds).
23:15:52 -!- not^v has joined.
23:16:15 <cluid> hi
23:16:52 <cluid> 14:55:10 <zzo38> How would you implement law of excluded middle continuations in Scheme?
23:18:47 <cluid> 8.7. Control operators and CPS translations
23:18:54 <cluid> in lectures on the curr y howard isomorphism, talks about this
23:19:04 -!- roasted42 has quit (Ping timeout: 244 seconds).
23:19:22 -!- ^v has quit (Ping timeout: 240 seconds).
23:19:32 <cluid> the ∆ may be regarded as a control operator similar to call/cc of Scheme and exceptions of ML, and the double negation embedding of classical logic into intuitionisitic logic corresponds to well-known CPS-translations
23:21:08 -!- roasted42 has joined.
23:21:23 -!- not^v has quit (Ping timeout: 240 seconds).
23:39:13 -!- ^v has joined.
23:43:28 -!- Phantom_Hoover has quit (Ping timeout: 258 seconds).
23:52:08 -!- ^v has quit (Ping timeout: 250 seconds).
23:57:42 -!- dts|pokeball has quit (Read error: Connection reset by peer).
23:59:19 -!- dts|pokeball has joined.
←2014-12-24 2014-12-25 2014-12-26→ ↑2014 ↑all