←2013-03-25 2013-03-26 2013-03-27→ ↑2013 ↑all
00:00:27 -!- heroux has joined.
00:05:15 -!- TeruFSX has joined.
00:11:15 -!- heroux has quit (Ping timeout: 245 seconds).
00:12:30 -!- heroux has joined.
00:27:31 -!- heroux has quit (Ping timeout: 264 seconds).
00:28:19 -!- heroux has joined.
00:36:37 -!- heroux has quit (Ping timeout: 246 seconds).
00:37:43 -!- heroux has joined.
00:45:42 -!- impomatic has quit (Read error: Connection reset by peer).
00:50:51 -!- zzo38 has joined.
00:53:19 -!- heroux has quit (Ping timeout: 264 seconds).
00:54:11 -!- heroux has joined.
01:29:50 -!- TeruFSX has quit (Read error: Connection reset by peer).
01:35:27 -!- Bike has quit (Read error: Operation timed out).
01:36:40 -!- heroux has quit (Ping timeout: 245 seconds).
01:38:18 -!- Bike has joined.
01:38:27 -!- heroux has joined.
02:01:09 -!- Bike has quit (Ping timeout: 248 seconds).
02:02:54 -!- Bike has joined.
02:30:00 <Lymia> !bfjoust flow -+>--->(>[>>([(+)*5[-]]+>)*-1])*-1
02:30:03 <EgoBot> ​Score for Lymia_flow: 38.8
02:30:09 <Lymia> The evolver, indeed works when you give it something that already works.
02:30:21 <Lymia> Unfortunately, it's not so good at making working things ex-nillo...
02:45:50 -!- pikhq has quit (Ping timeout: 245 seconds).
02:45:57 -!- pikhq has joined.
02:46:05 <kmc> FUCK YES, Time Trumpet finished downloading
02:46:19 <oerjan> time for a fanfare
02:51:37 <Phantom_Hoover> ok wow the thick of it is amazing
02:52:28 <kmc> yes
02:52:58 <Bike> wow is that an ubik reference in the topic
02:54:42 -!- Arc_Koen has quit (Quit: Arc_Koen).
02:55:08 <kmc> yes
02:58:48 -!- copumpkin has changed nick to necropumpkin.
02:59:53 -!- Bike has quit (Ping timeout: 240 seconds).
03:00:18 <kmc> i read that book yesterday
03:02:02 -!- Bike has joined.
03:05:45 -!- Jafet has quit (Quit: Leaving.).
03:09:27 -!- oerjan has quit (Quit: leaving).
03:14:25 <Lymia> !bfjoust flow >(+)*5(>[>>([(+)*5[-]]>)*-1])*-1
03:14:28 <EgoBot> ​Score for Lymia_flow: 40.8
03:16:09 <Lymia> !bfjoust flow >(-)*5>(>[>>([(+)*5[-]]>)*-1])*-1
03:16:12 <EgoBot> ​Score for Lymia_flow: 41.5
03:16:24 <Lymia> Automating "optmizing for current hill" yay :p
03:23:16 <Fiora> wooow, that's a really good score
03:23:22 <Fiora> for something so simle, too
03:23:24 <Fiora> *simple
03:23:47 <Lymia> It's probs abuse of programs being deterministic.
03:24:37 <Lymia> There's an, uh. VERY FATAL flaw
03:24:45 <Lymia> That can't be rectified without sending the score into the gutter x.x
03:25:03 <Lymia> It assumes that the target has a decoy-- and that there's at least one space between its first decoy and its flag.
03:25:38 <shachaf> decoy++
03:26:13 * Lymia baps shachaf
03:32:30 -!- pikhq has quit (Ping timeout: 245 seconds).
03:32:39 -!- pikhq has joined.
03:39:57 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:53:42 <Lymia> !bfjoust flow >(+)*5>(>[>>([(+)*5[-]]>)*-1])*-1
03:53:44 <EgoBot> ​Score for Lymia_flow: 40.7
04:00:42 <Lymia> !bfjoust flow >(-)*5>(>[>>([(+)*5[-]]->)*-1])*-1
04:00:45 <EgoBot> ​Score for Lymia_flow: 42.0
04:06:50 -!- Nisstyre-laptop has joined.
04:22:32 <Lymia> !bfjoust flow >(-)*5>>(>[+>>([(+)*6[-]]->)*-1])*-1
04:22:35 <EgoBot> ​Score for Lymia_flow: 42.2
04:29:50 <Lymia> ais523, fizzie.
04:29:53 <Lymia> I'm curious.
04:30:01 <Lymia> Given a point P in a Bfjoust program
04:30:15 <Lymia> I wonder if it'd be possible to construct a valid string s that is the continuation of the rest of the program.
04:30:20 <Lymia> Erm.
04:30:21 <Lymia> syntatical*
04:31:09 <Lymia> Meaning, like, [+P]+ => [+([+{}]+(.)*-1)%-1]+
04:33:56 -!- Bike has quit (Read error: Connection reset by peer).
04:34:00 -!- Bike has joined.
04:42:41 -!- pikhq_ has joined.
04:42:58 -!- Bike_ has joined.
04:43:08 -!- pikhq has quit (Ping timeout: 256 seconds).
04:44:36 -!- Bike has quit (Ping timeout: 264 seconds).
04:47:08 <Lymia> The idea is, in a language that compiles to BFJoust
04:47:19 -!- Lymia has left ("Hug~♪").
04:47:22 -!- Lymia has joined.
04:48:02 <Lymia> You could write something like (try-for(300, -, try-for(300, +, nil))>)*-1
04:50:05 -!- Bike_ has changed nick to Bike.
04:53:24 <Lymia> !bfjoust flow >(-)*5>>>(>[..>>([(+)*6[-]]->)*-1])*-1
04:53:27 <EgoBot> ​Score for Lymia_flow: 43.0
05:07:39 -!- heroux has quit (Ping timeout: 240 seconds).
05:09:23 -!- heroux has joined.
05:23:30 <zzo38> Now I made a AWK program to convert selector strings from Internet Quiz Engine into SQL codes, so that you can make polls.
05:24:34 <kmc> AWK on Airships
05:25:02 <zzo38> What is that?
05:25:20 <Bike> A web framework based on passing http requests through awk scripts.
05:27:46 <Sgeo> Still better than Spring MVC?
05:28:40 * Bike plays laugh track
05:30:05 <zzo38> Is it just the entire HTTP request it received, and then it needs to response the entire response including header and data? It seem AWK to not be very good for that kinds of things.
05:30:24 <zzo38> Even if it is CGI, it still won't be very good for that purpose, I think.
05:33:02 <zzo38> You can do it if you want to, though.
05:34:21 <kmc> isn't Spring supposed to be the /lightweight/ framework?
05:34:26 <kmc> you gotta use Enterprise JavaBeans man
05:34:47 <kmc> "Millions of developers use Spring to create high performing, easily testable, reusable code without any lock-in."
05:34:54 <kmc> that last bit seems kind of weird, I guess it's a dig at C#?
05:35:12 <Bike> does it not lock you into Spring
05:35:42 <shachaf> you've discovered their evil plot
05:35:53 <Bike> D:!!!
05:35:59 <shachaf> ↁ:
05:36:34 <kmc> Bike: i think being locked into an open source project doesn't count
05:36:46 <Bike> why not
05:36:55 <kmc> because that's how the people making these decisions think
05:36:56 <Lymia> kmc, "Java culture", and "light" are mutually incompatible.
05:36:59 <Lymia> :p
05:37:14 <zzo38> kmc: Well, at least you are locked in less than if it were not an open source project, but that doesn't make it not locked in
05:37:21 <kmc> yeah
05:37:26 <zzo38> What is it called when the web framework is based on SQL instead of AWK or PHP or any other programming language?
05:37:35 <shachaf> locked into using monoids
05:37:38 <shachaf> it was so easy
05:37:43 <Bike> i just can't quit you, monoids.
05:37:43 <shachaf> the first one's always free
05:37:44 <Sgeo> kmc, the way Spring is structured, to the best of my understanding, is that the objects you create often don't have any explicit reliance on Spring
05:37:55 <Sgeo> You use Spring, but the objects you make for it don't necessarily know about it
05:37:58 <shachaf> THE JOKE IS FREE MONOIDS
05:38:13 <kmc> it's funny because in startuplandia we don't think about vendor lock-in at all, it's open source and we think about open source project lock-in
05:38:17 <zzo38> shachaf: That is easy to see.
05:38:44 <Bike> Yeah shachaf.
05:38:47 <kmc> tho, Microsoft New England Research & Development (MS NERD) was running a thing where they would give your web startup free licenses for IIS and MS SQL and whatever for n years
05:38:53 <shachaf> 'First the joke must be caught.' / That is easy: a baby, I think, could have / caught it.
05:38:55 <kmc> first hit's free kids
05:40:01 <shachaf> Did you know the most important feature of Haskell is list comprehensions?
05:40:12 <zzo38> kmc: I still don't need them though; I have better software than those ones. Shouldn't those people learn all of them to see what is better for them, at first, before buying, or even getting for *free*, the software?
05:41:11 <kmc> shachaf..........
05:41:18 <kmc> somebody says?
05:41:22 <zzo38> shachaf: I don't think so.
05:41:33 <shachaf> kmc: i accidentally read the internet
05:41:38 <shachaf> bad mistake, will not repeat
05:41:42 <zzo38> This IRC is the internet.
05:41:46 <kmc> zzo38: that takes too long and in startuplandia it is more important to move quickly than to make the absolute best technical decision at every step
05:42:11 <zzo38> kmc: Perhaps to *you* it is.
05:42:25 <kmc> to people who want to make lots of money and build successful companies
05:42:43 <shachaf> kmc's secret ambition revealed
05:42:46 <kmc> anyway though I think it's a hard sell for MSFT because there's a lot of advantage to using what everyone else is using
05:42:57 <kmc> though also some advantage to using what nobody else is using
05:43:01 <Bike> i bet you could make a cool argument about the "best" step at any given time not being the "best" step in some overall sense, with some kind of time-bound optimization problem solving formalism
05:43:01 <kmc> shit is complicated, as they say
05:43:18 <shachaf> Lots of people are using Microsoft things.
05:43:18 <zzo38> Bike: Maybe it sometimes is.
05:43:27 <shachaf> Even lots of startups, I imagine.
05:43:27 <kmc> shachaf: but not so much in web startupland I think.
05:43:35 <kmc> well, I don't know...
05:43:49 <shachaf> I tend to think more people use Microsoft things than I typically see.
05:43:53 <kmc> yes
05:43:57 <shachaf> I'm in too much of a bubble. :-(
05:44:04 <kmc> it's true that none of my friends use Windows and approximately everyone uses Windows
05:44:13 <kmc> but web startup land is also a bubble shachaf
05:44:45 <Lymia> I have to wonder how good Microsoft's SQL server/web server stuff, etc, actually is.
05:44:53 <Lymia> ... and if it's better enough to justify the cost >_>
05:44:54 <shachaf> It's not particularly obvious from using a website what it runs on, anyway.
05:45:05 <Lymia> shachaf, should be obvious by looking at the headers, right?
05:45:26 <shachaf> Lymia: I don't look at the headers of every website I use.
05:45:29 <zzo38> Unless they omitted that header
05:46:05 <shachaf> What are some web startupland places that use Microsoft things?
05:46:26 <shachaf> stackoverflow.com is one, I suppose. They don't have such a header.
05:47:18 <Lymia> I suspect you can sniff it with the approprate tools
05:47:30 <shachaf> Oh, sure.
05:47:32 <Lymia> nmap -V -p80 stackoverflow.com
05:47:50 <Lymia> -V might not be the right flag
05:47:52 <Lymia> nope
05:48:11 <Lymia> --version-all
05:48:18 <shachaf> Anyway I think it's a good default assumption that I'm in more of a bubble than I think I am.
05:48:47 <zzo38> Still, I want to make a good quality, rather than just earning money or whatever.
05:49:07 <Bike> they're not even exclusive
05:49:58 <zzo38> What is not even exclusive?
05:51:03 <kmc> shachaf: you know you're more bubbled than you think you are
05:51:30 <Bike> bubbled bubbles, unbubbled bubbles, bubbled unbubbles, and unbubbled unbubbles
05:52:04 <zzo38> OK, well, I don't know what that is, but, OK, anyways, perhaps that is what it is.
05:52:26 <kmc> yes Bike
05:53:49 <Bike> it was that or a sex joke.
05:54:30 <kmc> insert topical reference to donglegate
05:54:48 <zzo38> I may use some proprietary and surface-mount and so on if it has to and in case it might be change later on if it can be used without vendor-lock, like this.
05:54:53 <kmc> http://www.piehead.com/blog/2011/05/why-startups-could-use-net-but-don%E2%80%99t this is a p. shit article
05:55:51 <zzo38> However, other than that, I would try to make it better, rather than being forced to use inferior stuff if there is the alternative.
05:55:56 <kmc> any article that expects me to already acknowledge a consistent distinction between "developer culture" and "engineering culture"
05:55:59 <kmc> is p. shit
05:56:56 <shachaf> kmc knows the truth: if your startup doesn't have a rockstar culture, it's already doomed to fail
05:57:15 <kmc> sometimes I wonder if ninja rockstars is one of those things everyone makse fun of now and nobody actually says seriously
05:57:25 <kmc> but then I look through craigslist job ads
05:58:02 <shachaf> perhaps those ads are being cool and saying it ironically
05:58:13 <kmc> doubtful
05:58:27 <kmc> well there's this: "Here's what we're looking for: Your peers describe you as a rockstar, but the term embarrasses you. Homejoy has a culture that revolves entirely around our customers and cleaners, not our egos."
05:58:58 <kmc> 'get better peers'
05:59:27 <shachaf> you're at a fork and you see two people, a rockstar and a ninja. you can ask one of them one question.
06:00:49 <Sgeo> If the train conductors never collect my ticket, is it ok to reuse the ticket?
06:01:00 <zzo38> I think CF card is better than SD card, so I will use CF card. Blu-ray is full of stupid stuff (I mean, even other than the video format!), so I won't use that.
06:01:08 <zzo38> Sgeo: What is printed on the ticket?
06:01:09 <kmc> Sgeo: doesn't it have a date on it?
06:01:13 <Bike> It's "ok" in that you'll probably not get caught, it's not OK in that it's illegitimate
06:01:22 <Sgeo> kmc, yes, but it expires in 60 days
06:01:32 <kmc> i'm not categorically against stealing from The Man but I feel like public transit has a bad enough time as it is
06:01:41 <kmc> that's why i don't lifehack my SFO trips with the BART lost ticket hack
06:01:45 <kmc> Sgeo: what railway?
06:01:48 <Sgeo> LIRR
06:02:05 <shachaf> BART lost ticket hack?
06:02:23 <Bike> Sgeo: well, are the tickets intended to be used one time only?
06:02:32 <Lymia> !bfjoust flow >(-)*5>>>(>[..>>([(+)*6[-]]->)*-1])*-1
06:02:35 <EgoBot> ​Score for Lymia_flow: 43.8
06:02:36 <Sgeo> Bike, I think so yes
06:02:38 <Lymia> Evolver's no longer making progress.
06:02:49 <Bike> Sgeo: there's your answer then
06:02:54 <kmc> I am LIRR of the planet Omicron Persei 8
06:03:21 <kmc> shachaf: it costs more to swipe out at SFO than to claim you lost your ticket and pay the fine
06:03:46 <zzo38> No! Precisely, what is everything that is printed on the ticket? Does it say, one fare? Does it say, the date/time? Does it say you can give it to someone else?
06:03:47 <shachaf> Oh.
06:04:04 <Sgeo> It has the date and time that I purchased it
06:04:20 <Sgeo> But it's usable for 60 days after purchase
06:04:32 <Sgeo> It's one fare
06:04:44 <shachaf> is dates + thyme a good combination
06:04:56 <shachaf> i can't remember what thyme tastes like.......
06:04:59 <pikhq_> zzo38: How's about MMC?
06:05:09 <pikhq_> (yaaay, obscure formats. :P)
06:05:15 <kmc> model model controller
06:05:40 <shachaf> just do model-model-model like http://sqlonrails.org/
06:05:43 <zzo38> If it just says "one fare" then probably it is not allowed to reuse it, but, if you have to, then do
06:05:47 <kmc> shachaf: tyne and wear
06:05:57 * pikhq_ is honestly confused why that format got replaced by SD cards
06:06:02 <zzo38> pikhq_: Is MMC compatible with SD in some case?
06:06:09 <kmc> SD supports some kind of DRM and so the Powers that Be were pushing it
06:06:21 <pikhq_> zzo38: An MMC card can be read in an SD reader, but not vice versa.
06:06:33 <pikhq_> There is no *real* benefit to SD over MMC.
06:06:41 <kmc> people do write whole web apps in the database
06:06:45 <zzo38> kmc: Yes, although that feature is never used, so it wastes capacity, I think.
06:06:45 <shachaf> Why is the NYC subway so much cheaper than BART?
06:06:52 <kmc> Postgres supports JavaScript stored procedures
06:07:07 <zzo38> kmc: That is not what I mean; I mean pure SQL
06:07:10 <kmc> https://code.google.com/p/plv8js/wiki/PLV8
06:07:39 <zzo38> pikhq_: Well, I supppose so, but still I prefer CF. If you want to use MMC and SD, you still can, since adapters exist for such purposes.
06:07:51 <pikhq_> Amusingly, SD actually had a *lower* max card size than MMC.
06:07:59 <pikhq_> (128 GiB vs 4 GiB)
06:09:17 <zzo38> pikhq_: SD does at least have one thing, which is a write protect switch, but the smaller SD cards lack that feature. It might be possible to make CF cards with such a switch, too, though.
06:09:28 <pikhq_> It's also a fairly silly feature.
06:09:55 <zzo38> And I have read about the max capacity too; I think CF has more max capacity
06:09:56 <pikhq_> But yeah, not surprised you prefer CF cards. Of the commonly supported flash formats it's the one most zzo38-friendly.
06:10:18 <pikhq_> 128 PiB
06:13:51 <kmc> so did xkcd do anything interesting today
06:13:52 <kmc> looks like no
06:14:47 <shachaf> Tomorrow I fly back to SFO.
06:15:12 <kmc> will you ride the BART train
06:15:37 <shachaf> Probably.
06:15:44 <kmc> p. good train
06:16:00 <shachaf> imo it should be synchroniszed with the caltrain
06:16:10 <shachaf> missing the caltrain is p. annoying
06:16:17 <shachaf> also the caltrain should come more often
06:16:21 <shachaf> CALTRAAAAAIN
06:16:30 <kmc> caltrain is a p. shite train
06:17:07 <shachaf> when you're trying to get to palo alto caltrain has a distinct advantage over BART
06:17:10 <kmc> inter-agency timed transfers........ not in god's america
06:17:14 <shachaf> namely that it goes to palo alto
06:17:35 <kmc> when you're riding BART, not trying to get to palo alto has a distinct advantage
06:18:37 <shachaf> sadly i live in ₑₐₛₜ palo alto
06:18:53 <shachaf> ᵉᵃˢᵗ
06:19:08 <kmc> how many copies of the latin alphabet are there in Unicode
06:19:24 <shachaf> not enough
06:19:32 <kmc> where's the big .txt list of all unicode chars
06:19:35 <shachaf> Consolidated for cut-and-pasting purposes, the Unicode standard defines complete sub- and super-scripts for numbers and common mathematical symbols ( ... )
06:19:43 <shachaf> a full superscript Latin lowercase alphabet except q ( ... )
06:19:47 <kmc> ...
06:19:51 <shachaf> a limited uppercase Latin alphabet ( ᴬ ᴮ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶ ᴷ ᴸ ᴹ ᴺ ᴼ ᴾ ᴿ ᵀ ᵁ ⱽ ᵂ ), a few subscripted lowercase letters ( ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₜ ᵤ ᵥ ₓ ), and some Greek letters ( ᵅ ᵝ ᵞ ᵟ ᵋ ᶿ ᶥ ᶲ ᵠ ᵡ ᵦ ᵧ ᵨ ᵩ ᵪ ).
06:19:55 <kmc> except q...
06:20:08 <zzo38> Why do they have strange sets like that?
06:20:14 <shachaf> http://www.unicode.org/Public/UNIDATA/NamesList.txt is a partial list
06:20:19 <kmc> what the fuck
06:20:45 <shachaf> kmc: Did you think it would be complete?
06:20:51 <shachaf> How naïve.
06:21:19 <zzo38> Unicode is really crazy anyways, in many ways......
06:22:57 <Bike> why isn't C in the uppercase
06:23:08 <kmc> jesus christ
06:23:08 <Bike> C is a pretty good letter!
06:23:22 <kmc> uh Bike it's spelled "p. good"
06:23:34 <shachaf> Bike lern2#esoteric
06:23:43 <kmc> god i'm so tired and hungry and sleepy
06:23:54 <Bike> "i just can't TAKE a lack of c's right now"
06:23:57 <kmc> and hungry
06:24:01 <shachaf> imo sleep and eat and sleep and eat
06:24:08 <kmc> hmmm
06:24:10 <kmc> good plan
06:24:13 <shachaf> Are you in SF? Or was that last week/next week/something else?
06:24:16 <kmc> no
06:24:17 <Bike> hm unicode should have a character that's an apostrophe but instead of marking possession it marks multiplicity of a letter
06:24:26 <Bike> it looks exactly the same though.
06:24:27 <kmc> that was in the week of turning on of the bay bridge lights
06:24:34 <kmc> cannot remember which week is before the other one
06:24:50 <shachaf> Oh, that was a while ago.
06:24:58 <shachaf> I remember now.
06:24:59 <zzo38> Unicode is just really dumb, mostly.
06:25:32 <kmc> http://www.buzzfeed.com/awesomer/things-youll-see-on-public-transportation
06:25:37 <Bike> also i have glyphs for some of the lowercase letters but not all of them
06:25:39 <Bike> cool
06:26:44 <shachaf> lens 3.9 is out
06:26:46 <shachaf> everyone upgrade
06:26:53 <shachaf> everyone = {Bike,zzo38}
06:27:01 <kmc> whenever I see this kind of thing I always try to identify what system each photo is from
06:28:35 <kmc> nyc mta: 1, 8, 9, 18, 19, 25, 26
06:29:51 <kmc> lacmta: 4; london (?) 11; BART: 20
06:30:12 <Bike> are you.......... a trainspotter
06:30:25 <kmc> insert quote from movie that i haven't actually seen
06:30:28 <zzo38> Once I had a dream that the first computer game ever invented was called "One Draw" and it was implementing a card game. One of the features of this game is that the suit of clubs has three dots (whenever a club was played, the referee would exclaim, "It has three dots!"). However there is many errors in the game, for example half of one card might be a different card, or something like that
06:30:51 -!- carado_ has joined.
06:30:52 <Bike> but you know the soundtrack, and it's a good soundtrack.
06:30:53 <shachaf> 1D6B LATIN SMALL LETTER UE [ᵫ]
06:30:58 <shachaf> I didn't know about that one.
06:30:59 <Bike> amazing
06:31:15 <kmc> sigh isn't ü a good enough ue
06:31:33 <shachaf> ï certainly am
06:31:34 <Bike> ᴾᴱᴺᴵ- there's no S!!
06:31:57 <kmc> fuck i ought to sleep right now
06:32:01 <kmc> good night #esoteric
06:32:06 <kmc> keep flying that freak flag
06:32:20 <shachaf> g'neegan
06:32:31 <shachaf>
06:48:08 <zzo38> How can someone meet you in a location they cannot find?
06:52:10 <zzo38> "This is not a fight. The reason the lights are red is because my other eye is looking at another subway train." ...what?
06:54:09 <zzo38> What is your dream today?
06:54:31 <Bike> I don't remember. I found it unsettling, though.
06:56:17 -!- kyyni has quit (Ping timeout: 245 seconds).
07:02:55 -!- kyyni has joined.
07:08:24 -!- nooodl has joined.
07:27:02 <zzo38> I made a Magic: the Gathering cards that is "Exile all indestructible permanents"
07:29:46 <shachaf> How do you make a cards? Do you mean that you made a card?
07:30:00 <zzo38> Yes, like that.
07:30:05 -!- Bike has quit (Quit: leaving).
07:30:22 <zzo38> Another card is "Creatures with abilities having {Q} in their cost have vigilance"
07:30:28 <zzo38> ({Q} is the untap symbol)
07:31:10 <zzo38> Another one means "You are allowed to attack yourself and/or planeswalkers you control"
07:32:43 <Sgeo> I don't want to have to wake up at 5am
07:32:44 <Sgeo> fuckfuckfuck
07:38:44 -!- nooodl has quit (Ping timeout: 272 seconds).
07:52:18 <zzo38> I have a list of "You know you've been in Japan too long when..." and I have never been in Japan but I do a few of the things on that list (even before I found this list), such as underlining words with a ruler.
07:52:27 <zzo38> Do you underline words with a ruler?
07:53:04 <shachaf> No.
07:53:08 <shachaf> I have never been in Japan.
07:53:41 <zzo38> Nor have I. I don't think it is necessary to be in Japan to underline words with a ruler; it is necessary to have a ruler, though.
07:54:52 <Deewiant> It is also necessary to underline words.
07:55:29 <zzo38> Yes.
07:58:36 <zzo38> Do 1000000 push-ups each day, 1000001 in the morning and -1 at night.
07:59:00 <shachaf> zzo38: Good point.
08:04:14 <zzo38> It is difficult to repair a watch while falling from an airplane.
08:04:38 <zzo38> But that is what you have to do to win at this TV game show
08:05:37 <shachaf> Which game show?
08:05:41 <zzo38> I don't know.
08:06:10 <zzo38> It isn't a game show; it is actually your *job*.
08:06:20 <shachaf> oh no!
08:06:25 <shachaf> oh no!
08:06:47 <shachaf> /!\
08:06:50 <shachaf> /⚠\
08:06:52 <shachaf> /⚠\
08:07:48 -!- carado has joined.
08:07:51 <fizzie> Did you underline that with a ruler?
08:08:35 <shachaf> No.
08:08:39 <shachaf> I've never been in Japan.
08:09:16 <fizzie> But you don't have to!
08:10:24 <Lymia> fizzie, I'm curious
08:10:25 <Lymia> Does
08:10:36 <Lymia> (((({+})%0)%0)%0)%0
08:10:40 <Lymia> Do anything to gearlance?
08:10:45 <[mbm]>
08:11:58 -!- carado_ has quit (Ping timeout: 246 seconds).
08:12:48 -!- Nisstyre-laptop has quit (Ping timeout: 264 seconds).
08:16:42 <zzo38> Someone once made up the text for Magic: the Gathering card, "Goblins cannot reach Nirvana".
08:16:55 <zzo38> (It is an enchantment card named "Nirvana", with no other effect)
08:17:09 -!- heroux has quit (Ping timeout: 240 seconds).
08:19:00 -!- heroux has joined.
08:22:27 <fizzie> Lymia: %'s and *'s are equivalent as far as it's concerned, so that should just be (((({+})%0)*0)*0)*0 and the outermost loop would be deleted. (Technically, it might turn into (((()*0+()*0)*0)*0)*0 as an intermediate step.)
08:23:33 <fizzie> Lymia: Come to think of it, I'm not entirely certain the "remove contentless loops" will do the right thing when nested {}s are involved. Fortunately those aren't used much. They bind kind of strangely.
08:23:36 <ais523> zzo38: wouldn't that be correctly templated as "If Nirvana is a creature with flying, Goblins cannot block it unless they have flying"?
08:23:45 <ais523> or perhaps "Goblins with reach cannot block it"
08:23:50 <ais523> I don't think many goblins have reach anyway, though
08:24:33 <zzo38> ais523: I don't know if whoever made that had a meaning, but I made up the meaning of it, that if Nirvana is a creature with flying then Goblins with reach cannot block it unless they also have flying
08:24:43 <fizzie> Lymia: (Doing (a(b{c{d}e}f)%2g)%3 is legal and equivalent to abbcabbcabbcdeffgeffgeffg.)
08:24:57 <ais523> zzo38: yeah, that's the only sensible meaning within the rules
08:25:01 <ais523> but it's templated really badly
08:25:10 <zzo38> ais523: Yes I know
08:25:25 <ais523> that said, it needs at least two extra cards in order to make an enchantment into a creature with flying
08:25:42 <ais523> and probably requires one extra card (as well as the goblin) to make a goblin with reach
08:25:48 <ais523> so the situation is unlikely to happen often
08:25:56 <zzo38> I know this situation is very unlikely.
08:28:14 <fizzie> I *think* (a({c{d}e})%2g)%3 currently would turn into (a()*0c{d}e()*0g)%3 which would do the right thing. And... (({{d}e}f)%2g)%3 into (()*0)*0d(e(f)*2g)*3, which also seems like it'd work out.
08:28:48 <fizzie> ais523: You probably know better, are nested {}s used in real-word business bfjoust code?
08:28:51 <zzo38> Which card texts could be compiled by computer into a computer program with the same meaning?
08:29:08 <ais523> fizzie: they aren't, but I think we agreed that if they have a meaning, the inside % matches the outside {}
08:29:32 <fizzie> Yes, that's what gearlance does (should do). I was just wondering.
09:01:18 -!- Fiora_ has joined.
09:01:31 <Sgeo> Waking up hellishly early just so I have 3 hours to get ready. Good idea or bad idea?
09:02:13 <ais523> Sgeo: for what? and is it likely that you'd spend 3 hours getting ready?
09:02:32 <ais523> normally for important things, I time how long it would take to get ready, through experience, then add half an hour
09:02:50 <Sgeo> Ready for work. And it's likely that if I had only 2 hours to get ready, then I'd end up panicking and rushing
09:03:00 <ais523> first day at a new job?
09:03:10 <Sgeo> Second day
09:03:49 <ais523> starting early makes sense until you know how long it takes to get ready
09:04:31 <Sgeo> I had so little sleep for yesterday that I ended up zoning out while reading about Spring
09:04:47 <Sgeo> I did not get enough sleep tonight, so I'm worried it will be worse
09:06:24 -!- clog has quit (*.net *.split).
09:06:25 -!- Fiora has quit (*.net *.split).
09:06:40 -!- FreeFull has quit.
09:06:48 * itsy used to get up at 4:30am to start work at 6:30am (when I had a 15 minute journey)
09:07:45 <ais523> when going to work, I consistently leave 80 minutes if going in by bus, or 50 for going in by train
09:08:01 <Sgeo> ais523, have you ever had to deal with Spring?
09:08:14 <ais523> no
09:13:15 -!- epicmonkey has joined.
09:17:25 -!- heroux has quit (Ping timeout: 246 seconds).
09:17:40 <Sgeo> 1 hour of the 3 hours is reserved as failing to actually accomplish anything for the first hour after waking up
09:17:49 <Sgeo> (Except eating. I do manage to eat sometimes)
09:18:11 -!- epicmonkey has quit (Remote host closed the connection).
09:19:28 -!- heroux has joined.
09:19:32 -!- epicmonkey has joined.
09:22:15 <Lymia> fizzie, I was thinking about something related to that.
09:22:29 <Sgeo> If the consulting company gives me a laptop and a case, is the case likely to be waterproof?
09:22:35 <Lymia> I was wondering if it'd be possible to construct a continuation, effectively, from a point in a BFJoust program-- nested {}s will almost certainly be involved.
09:22:43 <Sgeo> If not, then the laptop they gave me is probably ruined :(
09:22:49 <Lymia> The purpose would be for generating some constructions in a higher level language compiling to BFJoust
09:24:47 <Lymia> Something like, (try-for(300, +, nil)>)*-1 -> ((([+{{}}])%300)*-1)%300
09:24:54 <Lymia> Erm
09:25:01 <Lymia> Something like, (try-for(300, +, nil)>)*-1 -> ((([+{{}}])%300)*-1)%-1
09:25:31 <ais523> Lymia: I don't think it's possible in general
09:25:36 <fizzie> If you intend for the %s to bind to the {}s, that does not look like something you could write, also.
09:25:49 <ais523> well, except via the very wasteful method of duplicating the entire program for each control flow operator
09:26:09 <olsner> Sgeo: it's possible for a case to be waterproof, but did they have any reason to believe you would try to use water on it?
09:26:09 <fizzie> ((([+{{}}])%300)*-1)%-1 has the {}s bound to the inner two sets of parentheses.
09:26:15 <olsner> if not, they wouldn't have a reason to make sure you get a waterproof laptop
09:26:28 <Lymia> ais523, yeah.
09:26:30 <Lymia> That's the problem.
09:26:45 <Sgeo> olsner, I don't know. Maybe they don't believe in rain or something
09:26:56 <fizzie> You can't do (a(b{c}d)*N e)%M with {}s bound to the outer parens, in general; what would that expand to?
09:27:04 <olsner> maybe they believe in you using a bag of some sort to carry the laptop
09:27:07 <ais523> Sgeo: was it just rained on? Or was it dropped in a puddle or something?
09:27:17 <Sgeo> Heavily rained on
09:27:21 <ais523> also, most electronic components work fine after they dry out, even if they get wet
09:27:27 <ais523> removing the battery will help in the case of a laptop
09:27:28 <Sgeo> olsner, the case counts as a bag I assume?
09:27:36 <ais523> in general, if it hasn't exploded already, that's a good sign
09:27:50 <ais523> most laptop cases aren't perfectly waterproof, but will substantially reduce the amount of water reaching the laptop
09:27:56 <olsner> I'm not sure what "case" means here, so I can't tell ... did the laptop get wet?
09:28:04 <Sgeo> I don't know if the laptop got wet
09:29:21 <Lymia> ais523, I'm certain that you can calculate a series of instructions that will do the job
09:29:33 <Lymia> The problem is if it can always be encoded without huge amounts of reptition
09:29:47 <ais523> Lymia: it can't be, I'm basically 100% sure, if you need it cycle-accurate (and you usually do)
09:29:53 <ais523> Sgeo: why don't you examine the laptop to see whether it's wet?
09:30:05 <ais523> I know when I took my laptop home from work in very heavy rain
09:30:12 <ais523> the laptop itself stayed dry, but the charger got wet
09:30:18 <ais523> so I had to wait for it to dry out
09:30:19 <Sgeo> Taking the laptop out of the case is difficult
09:30:27 <Lymia> ais523, what construction would prevent that?
09:30:40 <Sgeo> I could look at it when I get to work, I gues
09:30:42 <Sgeo> guess
09:31:07 <ais523> Lymia: I don't think there is a general method for doing what you're planning to do
09:31:32 <Lymia> I'm not sure either-- without a gigabyte program
09:31:59 <ais523> imagine something as simple as "do >+, then wait for the current cell to become zero, then wait that many cycles again, then do something else"
09:32:13 <ais523> the only implementation I know of that involves making a huge number of copies of the "do something else"
09:32:50 <Lymia> Right
09:32:55 <Lymia> And you need 100000 copies in the worst case.
09:34:08 <ais523> yeah
09:34:12 <ais523> well, 50000
09:34:22 <ais523> past then, you can use a fixed 50000-cycle wait
09:34:32 <ais523> because it's going to take you off the end of the cycle limit regardless
09:34:46 <ais523> actually, EgoBot currently can't handle a nesting depth greater than 256
09:34:49 <ais523> so you'd have to stop at 256 cycles
09:35:08 <ais523> or do what I did in anticipation (the first one), and look for all the cases that were actually used on the hill
09:35:16 <ais523> and remove the others to save on nesting
09:35:22 <Lymia> Well
09:35:27 <ais523> with the result that anticipation often won't do anything against newer programs
09:35:34 <Lymia> Without features to transform code, there's still a macro language at its core
09:35:50 -!- heroux has quit (Ping timeout: 245 seconds).
09:35:50 <Lymia> I'd need to see if it'd actually be useful though :p
09:36:45 -!- heroux has joined.
09:39:52 <Lymia> ais523, I had an idea that I have no idea where to begin with implementing
09:40:10 <ais523> Lymia: this is common
09:40:24 <ais523> asking for help may sometimes help, but not always
09:40:32 <Lymia> :c
09:40:42 <fizzie> ais523: I've bumped up the nesting limit number (it's just the size of three int arrays during parsing, after all) to 4096, incidentally, while fixing that denial-of-service issue, though I don't think Gregor has necessarily updated.
09:40:48 <Lymia> Given a hill, make a program that will distinguish the exact target program, tape length, and polarity.
09:41:05 <ais523> Lymia: that's come up before, normally in the context of "and beat it"
09:41:15 <Lymia> :p
09:41:15 <ais523> people have put thought into it, but nobody's solved it yet
09:41:16 <fizzie> (There's still a limit that's different than "maximum amount of memory", however.)
09:41:21 <Lymia> ais523, well.
09:41:32 <Lymia> "And beat it" isn't really hard
09:42:00 <Lymia> Since once you know exactly the game state, you can just go ahead and find a fixed sequence of commands
09:42:01 <ais523> Lymia: it could be if it's already on your flag by the time you figure out what it is and you can't get back to defend in time
09:42:30 <Lymia> Yeah.
09:42:53 <Lymia> I'm pretty sure you have to be able to do it in 128 cycles, period.
09:43:02 <Lymia> Or, at least, figure out the fast rushes in that time.
09:43:11 <Lymia> And distinguishing the multitude of defense programs would be near impossible.
09:43:20 <Lymia> (The ones that never leave their cell that is)
09:43:54 <Lymia> ais523, well...
09:43:57 <Lymia> I guess you could start with
09:44:06 <Lymia> "Given a program, figure out the exact polarity and tape length"
09:44:11 <Lymia> Which should be more possible.
09:44:39 <ais523> I'm not sure it's that much more possible
09:44:59 <ais523> also you have a bit more than 128 against even the fastest turtles
09:45:15 <ais523> !bfjoust fastest_turtle (>)*8(>(+)*128.)*21
09:45:23 <EgoBot> ​Score for ais523_fastest_turtle: 4.6
09:45:50 <ais523> !bfjoust almost_as_fast_turtle (>)*8(>[(+)*128.>])*21
09:45:53 <EgoBot> ​Score for ais523_almost_as_fast_turtle: 17.4
09:46:09 <Lymia> 2 is faster for most cases though :p
09:46:13 <ais523> yeah :)
09:47:10 <Lymia> Figuring out the polarity+length could probs be easily done by simply planting decoys, and checking timings
09:47:30 <ais523> actually, distinguishing one vibrator from another seems to be very difficult indeed
09:47:48 <ais523> or imagine a hypothetical unsynchronized lock + full-tape clear
09:48:02 <ais523> which only changes its own cell, and the cell 9 away, moving onto 10 away when that's been cycled, and so on
09:48:14 <Lymia> Right.
09:48:14 <ais523> say the tape is length 10; how do you determine the polarity?
09:48:32 <Lymia> ais523, it might be marginally possible if you relax the constraints a little.
09:48:35 <ais523> AFAICT it can only be via clearing the enemy flag, or monitoring your own flag to see when it's cleared
09:48:37 <Lymia> To "as many cases as possible"
09:49:16 <Lymia> I suspect that, given a certain set of programs, you can, given a certain initial sequence of commands, figure out which cycles during which you are /in danger/ of your flag being cleared.
09:49:42 <ais523> yeah, that seems like a more fruitful route of investigation
09:50:30 <Lymia> I'm not fully clear on the rules here
09:50:32 <Lymia> If you do []+
09:50:42 <Lymia> On your home cell-- when [ is the exact same tick as the -
09:50:46 <Lymia> That brings your cell down to 0
09:50:47 <Lymia> What happens
09:52:37 <Lymia> .bfjoust ([]+)*-1
09:52:45 <Lymia> er...
09:52:53 * Lymia just goes to the JS intreperter
09:53:25 <ais523> Lymia: the [ gets the value at the start of the cycle
09:53:28 <ais523> so no, that trick doesn't work
09:53:32 <ais523> it'd probably be overpowered if it did
09:54:52 <Lymia> I think a stepping stone would be
09:54:57 <Lymia> Creating a "perfect vibrator"
09:55:04 <Lymia> That never /loses/ a single joust
09:56:45 <Lymia> This program would likely be filled with NOPs...
10:00:18 <Lymia> Could be doable.
10:00:20 <Lymia> I'll have to try sometime
10:04:54 -!- heroux has quit (Ping timeout: 256 seconds).
10:06:47 -!- heroux has joined.
10:21:31 -!- heroux has quit (Ping timeout: 264 seconds).
10:21:48 -!- heroux has joined.
10:33:56 -!- sebbu has quit (Ping timeout: 252 seconds).
10:41:26 -!- sebbu has joined.
10:41:32 <ais523> Lymia: yeah, I was thinking along those lines too
10:41:59 -!- sebbu has quit (Changing host).
10:41:59 -!- sebbu has joined.
10:42:02 <Lymia> ais523, there'd be a lot of infrastructure.
10:42:21 <Lymia> I'd need a BF joust simulator where one side of the joust doesn't actually have a set program.
10:42:32 <Lymia> Furthermore, it'd have to operate on immutable data structures
10:42:54 <Lymia> (to allow looking ahead, then going back)
10:51:56 -!- heroux has quit (Ping timeout: 256 seconds).
10:51:56 <Lymia> ais523, if you have enough nops
10:52:16 <ais523> yeah, I don't have a simulator that works like that
10:52:18 <Lymia> You might be able to try and simply chip away at the flag each cycle you have time.
10:52:31 <ais523> Lymia: that's how defence programs normally win
10:53:32 <Lymia> Right
10:53:38 <Lymia> The remaining issue is
10:53:43 <Lymia> A final case for dealing with other defense programs
10:53:54 -!- heroux has joined.
10:54:06 <Lymia> Eh.
10:54:10 <Lymia> Needs a lot of figuring out, I guess
10:55:25 -!- carado has quit (Ping timeout: 246 seconds).
10:57:04 <Sgeo> Are khaki pants and a blue and white striped button down shirt considered business casual?
10:57:27 <olsner> your work has a dress code? O.O
10:57:50 <Lymia> Sgeo, wear a dress! :D
10:58:12 -!- carado has joined.
10:58:12 <Sgeo> olsner, erm, pretty sure every place has a dress code of some sort. Except nudist resorts
10:58:17 <fizzie> Does egojsout have any keyboard shortcuts for moving the "expanded" cycle window forward and backward?
10:58:45 <Lymia> fizzie, how do you implement ({})?
10:58:59 <Lymia> I might need to write my own interperter for something
10:59:16 <Lymia> (since I'll basically need to go cycle by cycle, analysing stuff as I go)
11:01:49 <fizzie> That is, both a ({ pair and a }) pair are implemented much like a simple () loop is, with the sole exception that a }) pair counts from down to up, so that things work out right if a [ inside the ({ pair jumps into the matching ] inside a }) pair.
11:01:53 <fizzie> It's reasonably simple; about the only real "trick" is that one of them counts backwards.
11:02:00 <fizzie> (I said those two things in the wrong order.)
11:02:07 <fizzie> (Please read them backwards too.)
11:03:07 -!- carado has quit (Ping timeout: 246 seconds).
11:03:16 <fizzie> (In fact, ( in a () and the ( in a ({}) have the same "opcode".)
11:04:40 -!- carado has joined.
11:06:04 <Lymia> fizzie, eh.
11:06:07 <Lymia> Due to language of choice.
11:06:14 <Lymia> It'd be best to find an representation that works as an ADT
11:06:37 -!- clog has joined.
11:07:01 -!- clog has quit (Client Quit).
11:07:13 -!- clog has joined.
11:08:27 -!- Taneb has joined.
11:09:00 -!- heroux has quit (Ping timeout: 272 seconds).
11:09:06 <fizzie> Lymia: You are going to have much fun with ([{...}])%N, if you want your types to have both a "Loop [Code]" kind of a thing and a "ComplexRep [Code] [Code] [Code] Int" kind of thing at the same time.
11:09:41 -!- heroux has joined.
11:09:49 <Lymia> That's the bad part :p
11:09:57 <Lymia> Unless I wanna call/cc or something.
11:10:29 <Taneb> I think next week I may go start the GRAND #ESOTERIC LOG CLASSIFICATION PROJECT
11:10:30 <Taneb> Ahaha!
11:12:06 <Taneb> Hmm
11:12:18 <Taneb> This is probably a well researched topic in computer science
11:13:37 -!- carado has quit (Ping timeout: 246 seconds).
11:14:13 -!- heroux has quit (Ping timeout: 240 seconds).
11:15:10 <Taneb> Or I could do it manually, which would take ages
11:15:56 -!- heroux has joined.
11:18:08 -!- carado has joined.
11:18:47 <fizzie> What does the PROJECT classify the logs into?
11:18:58 <Taneb> Categories
11:19:05 <fizzie> `? categories
11:19:09 <HackEgo> categories? ¯\(°_o)/¯
11:19:16 <Taneb> Categories in the not computer science sense
11:19:21 <fizzie> I thought it knew about that.
11:19:27 <Taneb> `? category
11:19:29 <HackEgo> Categories are just a special case of bicategories.
11:19:37 <fizzie> Ah, it's not a plural.
11:19:49 <Taneb> Could you do a linky thing?
11:20:04 <fizzie> Topic modelling of text is certainly a well researched topic.
11:21:45 <Taneb> Soon... it shall be TIME TO LEARN!
11:21:46 <Taneb> Ahaha!
11:22:57 <Taneb> As you can tell, I'm feeling rather OTT at the moment
11:24:36 <Taneb> Unfortunately, I suspect I may be venturing into the unexplored
11:25:04 <Taneb> I also suspect I am hungry and have no access to food
11:25:37 <Taneb> Goodbye
11:25:42 -!- Taneb has quit (Quit: Page closed).
11:42:00 <Sgeo> So tired
11:42:01 <Sgeo> :(
11:42:10 <Sgeo> Will I even be able to keep my eyes open at work?
11:42:13 <Sgeo> Will coffee help?
11:42:23 <Sgeo> Why does my chest hurt and why have I been coughing so much?
11:45:34 -!- Jafet has joined.
11:46:19 -!- carado has quit (Remote host closed the connection).
11:46:36 -!- carado has joined.
11:55:01 -!- WeThePeople has joined.
11:58:10 -!- WeThePeople has quit (Read error: Connection reset by peer).
11:58:52 -!- sebbu2 has joined.
11:59:21 -!- sebbu2 has quit (Changing host).
11:59:21 -!- sebbu2 has joined.
12:00:26 -!- heroux has quit (Ping timeout: 245 seconds).
12:02:13 -!- heroux has joined.
12:04:43 -!- sebbu has quit (Read error: Connection reset by peer).
12:04:44 -!- zzo38 has quit (Ping timeout: 246 seconds).
12:18:39 -!- carado has quit (Remote host closed the connection).
12:21:57 -!- carado has joined.
12:23:24 -!- boily has joined.
12:32:36 -!- heroux has quit (Ping timeout: 264 seconds).
12:34:14 -!- heroux has joined.
12:38:29 -!- carado has quit (Remote host closed the connection).
12:38:51 -!- asiekierka has quit (Quit: acorp).
12:56:51 -!- Phantom_Hoover has joined.
13:22:33 -!- sebbu2 has quit (Read error: Connection reset by peer).
13:22:35 -!- ais523 has quit.
13:22:52 -!- sebbu has joined.
13:23:20 -!- sebbu has quit (Changing host).
13:23:20 -!- sebbu has joined.
13:38:59 -!- ThatOtherPerson has joined.
14:12:51 -!- metasepia has joined.
14:30:12 -!- GOMADWarrior has joined.
14:31:14 <GOMADWarrior> I'm thinking up a eso lang
14:32:04 <elliott> ok
14:36:22 <boily> @tell tswett how's your combientièm(e) lang going on?
14:36:23 <lambdabot> Consider it noted.
14:36:41 <boily> GOMADWarrior: what kind of lang is it going to be?
14:39:26 <GOMADWarrior> no brackets
14:39:32 <GOMADWarrior> one command per line
14:39:51 <Phantom_Hoover> esoteric
14:40:11 <GOMADWarrior> I think so
14:40:35 <Phantom_Hoover> ...i hope there's more to it than that
14:40:35 <GOMADWarrior> as in, made just for fun
14:41:07 <GOMADWarrior> you can alter functions at run time
14:41:27 <kmc> so far this describes python
14:42:12 <GOMADWarrior> how do you do it in python?
14:42:27 <kmc> modify functions?
14:42:40 <Phantom_Hoover> f = something else
14:43:35 <GOMADWarrior> not the variables
14:43:39 <GOMADWarrior> the functions themselves
14:43:54 <GOMADWarrior> as in, add one more thing for it to do
14:44:11 <Phantom_Hoover> functions are first-class in python
14:44:14 <GOMADWarrior> it'll be how we specify functions, first create empty, then add
14:45:09 <kmc> def g(*a, **kw): f(*a, **kw); other thing \n f = g
14:45:32 <kmc> anyway it's not the same as what you're planning, I agree
14:46:05 <kmc> btw whitespcae syntax is a good idea but treating it as anything other than sugar for punctuation is a terrible idea
15:02:49 -!- ThatOtherPerson has quit (Quit: Leaving).
15:11:37 -!- Taneb has joined.
15:17:14 -!- Arc_Koen has joined.
15:18:19 -!- azaq23 has quit (Quit: Leaving.).
15:23:01 -!- ThatOtherPerson has joined.
15:31:48 -!- ThatOtherPerson has quit (Ping timeout: 252 seconds).
15:31:52 -!- ThatOtherPersonY has joined.
15:32:32 -!- ThatOtherPersonY has changed nick to ThatOtherPerson.
15:36:42 -!- carado has joined.
15:56:35 -!- Lymia has quit (Ping timeout: 255 seconds).
16:03:52 -!- nooodl has joined.
16:16:58 -!- Lymia has joined.
16:17:00 -!- Lymia has quit (Changing host).
16:17:00 -!- Lymia has joined.
16:30:29 -!- c00kiemon5ter has joined.
16:31:28 <c00kiemon5ter> http://www.youtube.com/watch?v=v2ITaI4y7_0 that was interesting
16:34:26 -!- Laurita has joined.
16:34:52 <Laurita> hola
16:35:00 <kmc> hola
16:35:05 <kmc> `welcome Laurita
16:35:07 <HackEgo> Laurita: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
16:35:32 <Laurita> como estan
16:37:13 <ThatOtherPerson> Muy bien
16:37:24 <ThatOtherPerson> Y usted?
16:37:33 <Laurita> bn bn calii
16:38:12 <elliott> yes
16:38:39 <ThatOtherPerson> Hablas ingls?
16:39:10 <Laurita> noo
16:40:05 <kmc> `ls bin/
16:40:06 <HackEgo> ​? \ @ \ WELCOME \ addquote \ allquotes \ anonlog \ aseen \ botsnack \ bseen \ calc \ CaT \ define \ delquote \ emmental \ emoclew \ emptylist \ etymology \ forget \ fortune \ frink \ fueue \ gaseen \ google \ h \ ?h \ h! \ hatesgeo \ hello \ ?hh \ hyfinate \ hyphenate.fi \ instalist \ interp \ joustreport \ jousturl \ js \ json \ k
16:40:19 <kmc> `run ls bin/ | paste
16:40:25 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.31664
16:41:04 <kmc> `paste bin/welcome
16:41:06 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/welcome
16:41:24 <kmc> `paste wisdom/welcome
16:41:26 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/wisdom/welcome
16:41:38 <elliott> kmc: you can use `url when the target is a filename btw
16:41:42 <elliott> maybe `paste should optimise that
16:41:45 <kmc> ok
16:41:51 <kmc> i want to add welcome.es
16:42:04 <elliott> just echo something to wisdom/welcome.es
16:42:13 <elliott> i guess you want to make a bin/welcome copy too
16:42:25 <kmc> it should be generalized!
16:42:28 <kmc> but i don't wanna do it
16:42:45 <elliott> do we really need to make it even easier to make stupid programs on hackego :p
16:43:23 <Taneb> Laurita, Hablas finlands?
16:43:29 <Laurita> i don talk eingles
16:43:57 <boily> Laurita: ¿habla usted francés?
16:44:03 <ThatOtherPerson> `echo "Bienvenido al centro internacional para el diseo esotrico lenguaje de programacin y despliegue! Para obtener ms informacin, echa un vistazo a nuestro wiki: http://esolangs.org/wiki/Main_Page. (Para el otro tipo de esoterismo, prueba # esotrico en irc.dal.net.)" > wisdom/welcome.es
16:44:04 <HackEgo> ​"Bienvenido al centro internacional para el diseo esotrico lenguaje de programacin y despliegue! Para obtener ms informacin, echa un vistazo a nuestro wiki: http://esolangs.org/wiki/Main_Page. (Para el otro tipo de esoterismo, prueba # esotrico en irc.dal.net.)" > wisdom/welcome.es
16:44:11 <elliott> # esotérico
16:44:17 <kmc> i think that translation is slightly fucked
16:44:21 <ThatOtherPerson> probably
16:44:25 <ThatOtherPerson> Google translate
16:44:42 <kmc> should be "diseño y despliegue de lenguaje de programación esotérico" or so
16:44:55 <boily> `bienvenue
16:44:56 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: bienvenue: not found
16:45:04 <Laurita> je ne parle pas francais
16:45:17 <ThatOtherPerson> Someone who knows spanish better than me should fix it
16:45:21 <kmc> working on it
16:46:09 <Laurita> hablo espool no se hablar otro idioma
16:46:10 <kmc> Laurita: ¿finés?
16:46:27 <Laurita> espaol
16:46:45 <boily> Laurita: tomé clases de español desde hace mucho tiempo, pero lo he olvidado casi todo.
16:46:59 <elliott> boily: you know *two* fake languages?
16:47:02 <c00kiemon5ter> <.<
16:47:09 <Laurita> mmm
16:47:20 <boily> elliott: that one was shamelessly, partially, bluntly google translated.
16:47:24 <kmc> tenemos muchos personas quien hablan finés
16:47:34 <kmc> no se por que
16:47:54 * kmc habla solamente un poquito de español
16:48:00 <elliott> boily: c'est comme ça que vous parlez français aussi?
16:48:03 <ThatOtherPerson> boily: Yo tambin. :/
16:48:15 <boily> elliott: non, c'est ma langue maternelle.
16:48:32 <Laurita> quien sabe hablar espaol
16:48:44 <boily> elliott: on a eu 2 ans d'espagnol à l'école, mais ça fait longtemps et mettons que j'ai pas eu vraiment d'occasions de le pratique après.
16:48:48 * kmc también ha olvidado mucho español
16:48:58 <elliott> boily: tes mensonges sont aussi transparentes que l'existence présumée vraie de la langue qu'ils sont écrits po.
16:49:32 <boily> elliott: the É is real! long live acute marks!
16:50:26 <kmc> `echo "¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/wiki/Main_Page. (Para el otro tipo de esoterismo, prueba #esoteric en irc.dal.net.)" > wisdom/welcome.es
16:50:28 <HackEgo> ​"¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/wiki/Main_Page. (Para el otro tipo de esoterismo, prueba #esoteric en irc.dal.net.)" > wisdom/welcome.es
16:50:33 <kmc> `run echo "¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/wiki/Main_Page. (Para el otro tipo de esoterismo, prueba #esoteric en irc.dal.net.)" > wisdom/welcome.es
16:50:37 <HackEgo> No output.
16:51:14 <Deewiant> Re. Spanish: https://www.youtube.com/watch?v=4LjDe4sLER0
16:52:09 <kmc> Laurita: ¿cómo descubriste este canal?
16:53:00 <kmc> programa usted los ordenadores?
16:53:24 <Laurita> por la lista de canales
16:53:59 <boily> `welcome
16:54:00 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
16:55:18 <boily> `echo "Bienvenue sur le centre international pour le design et le déploiement des langages de programmation ésotériques! Pour plus d'informations, visitez le wiki: http://esolangs.org/wiki/Main_Page. (Pour l'autre type d'ésotérisme, essayez #esoteric sur irc.dal.net.)" > wisdom/welcome.fr
16:55:19 <HackEgo> ​"Bienvenue sur le centre international pour le design et le déploiement des langages de programmation ésotériques! Pour plus d'informations, visitez le wiki: http://esolangs.org/wiki/Main_Page. (Pour l'autre type d'ésotérisme, essayez #esoteric sur irc.dal.net.)" > wisdom/welcome.fr
16:55:27 <boily> `wisdom.fr
16:55:28 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wisdom.fr: not found
16:55:31 <boily> darn.
16:55:36 <boily> `run echo "Bienvenue sur le centre international pour le design et le déploiement des langages de programmation ésotériques! Pour plus d'informations, visitez le wiki: http://esolangs.org/wiki/Main_Page. (Pour l'autre type d'ésotérisme, essayez #esoteric sur irc.dal.net.)" > wisdom/welcome.fr
16:55:39 <HackEgo> No output.
16:55:44 <boily> `wisdom.fr
16:55:45 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wisdom.fr: not found
16:55:50 <boily> bin là.
16:55:56 <Deewiant> den
16:55:59 <elliott> for a start it's welcome.fr, not wisdom.fr :P
16:56:03 <elliott> `? welcome.fr
16:56:05 <HackEgo> Bienvenue sur le centre international pour le design et le déploiement des langages de programmation ésotériques! Pour plus d'informations, visitez le wiki: http://esolangs.org/wiki/Main_Page. (Pour l'autre type d'ésotérisme, essayez #esoteric sur irc.dal.net.)
16:56:10 * boily facepalms.
16:56:16 <boily> you didn't see nothing.
16:56:19 <kmc> `run ls wisdom | paste
16:56:24 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1022
16:56:50 <Taneb> `? tanebvention
16:56:52 <HackEgo> Tanebventions include D-modules and automatic squirrel feeders
16:57:03 <Taneb> I forgot about that
16:57:07 <kmc> `? välkommen
16:57:08 <HackEgo> Hej och välkommen till den internationella knutpunkten för design och distribution av esoteriska programspråk! För mer information, se vår wiki: http://esolangs.org/wiki/Main_Page. (För den andra sortens esoterism, pröva #esoteric på irc.dal.net.)
16:57:15 <Taneb> `? phantom____________________hoover
16:57:15 <kmc> `? bonvenon
16:57:17 <HackEgo> ​<span accent="British">Your soundcard works perfectly.</span>
16:57:17 <HackEgo> bonvenon Bonvenon al la internacia centro por la desegno kaj ellaso de esoteraj programlingvoj! Por pli da informado, vizitu la Viki-o: http://esolangs.org/wiki/Main_Page. (Por la alia speco de esotero, iru al #esoteric sur irc.dal.net.)
16:57:20 -!- necropumpkin has quit (Ping timeout: 255 seconds).
16:57:24 <boily> `run mv wisdom/welcome.fr wisdom/bienvenue
16:57:25 <kmc> is that esperanto?
16:57:27 <HackEgo> No output.
16:57:38 <kmc> boily: eh I think it's more helpful to use the codes
16:57:50 <kmc> otherwise I have to remember how to spell bienvenue to greet someone speaking french ;P
16:57:51 -!- copumpkin has joined.
16:57:57 <kmc> but maybe this channel isn't about being helpful
16:58:01 <boily> kmc: what about välkommen?
16:58:02 <kmc> hola copumpkin
16:58:08 <boily> this channe is all about helpfulness.
16:58:12 <boily> (and squirrel feeding.)
16:58:16 <kmc> copumpkin: hablemos español hoy
16:58:31 <kmc> `? misspellings of croissant
16:58:33 <HackEgo> misspellings of crosant? ¯\(°_o)/¯
16:58:39 <elliott> kmc: you realise translating the welcome isn't for the benefit of people who speak that language
16:58:47 <kmc> no
16:58:53 <kmc> furthermore,
16:58:54 <kmc> cocks
16:59:03 <boily> ~duck cock
16:59:05 <metasepia> --- No relevant information
16:59:11 <boily> go figure.
16:59:55 <kmc> they're corkscrew shaped
17:00:06 <boily> ~duck corkscrew
17:00:07 <metasepia> corkscrew definition: a device for drawing corks from bottles that has a pointed spiral piece of metal turned by a handle.
17:00:56 <Taneb> So I've heard, kmc
17:01:05 <Taneb> However I fail to see the relevance
17:01:30 -!- c00kiemon5ter has left.
17:01:34 <boily> ~duck relevance
17:01:35 <metasepia> Relevance is a measure of how pertinent, connected, or applicable something is.
17:01:49 <kmc> ~duck types
17:01:50 <metasepia> type definition: a person or thing (as in the Old Testament) believed to foreshadow another (as in the New Testament).
17:01:50 <elliott> ~duck neotheology
17:01:51 <metasepia> --- No relevant information
17:01:52 <elliott> er
17:01:55 <elliott> ~duck neurotheology
17:01:56 <metasepia> Neurotheology, also known as spiritual neuroscience, attempts to explain religious experience and behaviour in neuroscientific terms.
17:03:05 <boily> ~duck anatidaephobia
17:03:06 <metasepia> --- No relevant information
17:03:55 <Taneb> One of my gran's ex-boyfriend's birthday just got published in the Times today
17:04:03 <kmc> anyone translate the welcome to lojban?
17:05:36 <boily> `? huomenta
17:05:38 <HackEgo> huomenta? ¯\(°_o)/¯
17:06:14 <boily> `? tervetuloa
17:06:15 <HackEgo> tervetuloa? ¯\(°_o)/¯
17:08:21 <kmc> Gregor: can codu.org (or at least the hackbot pastes) be configured to specify that it's serving UTF-8?
17:08:44 <Gregor> You tell me how to make Mercurial do that and I'll do that.
17:08:53 <kmc> it's sending Content-Type:text/plain; charset="ascii"
17:09:02 <kmc> you're using Mercurial as a web server?
17:09:57 <Gregor> *sigh*
17:09:59 <Gregor> Look at the URL
17:10:04 <Gregor> It uses the Mercurial web CGI thing.
17:10:18 <kmc> I don't know anything about Mercurial..........
17:10:25 <kmc> I could guess what "fshg" is I supposee
17:10:29 <Gregor> Well then I guess we're not going to be fixing this problem today.
17:10:40 <kmc> we will not go to space today
17:10:49 <kmc> anyway I'm doing research but Chrome is shitting its pants
17:10:54 <kmc> i will get back to you if I figure out how
17:12:33 <elliott> well I mean Gregor could set his webserver to override the headers sent
17:13:56 <kmc> rebooted Chrome
17:26:12 -!- Taneb has quit (Ping timeout: 252 seconds).
17:28:13 -!- Lymia has quit (Ping timeout: 240 seconds).
17:34:12 -!- Taneb has joined.
17:37:07 -!- Lymia has joined.
17:37:07 -!- Lymia has quit (Changing host).
17:37:08 -!- Lymia has joined.
17:37:59 -!- Laurita has quit (Quit: Saliendo).
17:38:15 <tswett> boily: I guess Combientièm is finished.
17:38:16 <lambdabot> tswett: You have 3 new messages. '/msg lambdabot @messages' to read them.
17:38:22 <tswett> And I'm reasonably sure it's Turing-complete.
17:39:01 <tswett> What if.
17:39:02 <tswett> @messages
17:39:02 <lambdabot> oerjan said 1m 10d 8h 53m 2s ago: <tswett> I think that given a finite state machine with n states, you can construct a finite state machine with, like, O(n^3 log n) states that solves its halting
17:39:02 <lambdabot> problem. <-- you seem close to reinventing hierarchy theorems...
17:39:02 <lambdabot> oerjan said 1m 10d 8h 24m 57s ago: http://en.wikipedia.org/wiki/Large_countable_ordinals
17:39:02 <lambdabot> boily said 3h 2m 40s ago: how's your combientièm(e) lang going on?
17:39:21 <tswett> I guess that's why lambdabot said I should /msg her.
17:39:57 * Lymia notes to start on her, er, concept for a bfjoust warrior
17:40:15 <Lymia> I'm aiming for >80.0~
17:41:12 <fizzie> Why aim for anything less than a hundred?
17:41:36 -!- Taneb has quit (Ping timeout: 264 seconds).
17:42:09 <fizzie> Also, misread "Turgid-complete". (I suppose many esolangs are that too.)
17:42:20 <Lymia> fizzie, because I'm not 100% sure it's possible :p
17:42:41 <Lymia> Or, at least, computationally feasible.
17:43:53 <fizzie> With the power of your IMAGINATION, anything is possible.
17:44:12 <Lymia> Sure
17:44:25 <Lymia> There likely exists at least one program P that beats the whole hill, and every program that has ever existed on the hill.
17:44:38 <Lymia> Finding it is likely computationally infeasible, although /possible/
17:45:51 <fizzie> You have to reach for the stars in order to something something something.
17:47:00 <oklopol> tswett: solves its halting in what sense?
17:47:09 <oklopol> accepts the strings on which the original halts?
17:47:28 <oklopol> are these two-way machines?
17:47:37 <fizzie> http://sprunge.us/WbfA <- stars.
17:47:46 <ThatOtherPerson> fizzie: That sounds like an Impossible Dream
17:47:47 <oklopol> otherwise i have a much better solution: 1 state.
17:48:01 <ThatOtherPerson> That is your quest
17:48:04 <ThatOtherPerson> To follow that star
17:48:10 <ThatOtherPerson> No matter how hopeless
17:48:15 <ThatOtherPerson> No matter how far!
17:48:41 <fizzie> "you have to reach for the stars in order to release only mycology.b98 after writing to (-1,-1) ()" this one is probably about Deewiant.
17:49:27 <oklopol> the russian guy who asked about my military rank studies exactly this kind of problems and i'm taking his course atm
17:49:44 <tswett> oklopol: "solves its halting problem" as in "determines whether it halts or not, for all inputs".
17:50:09 <tswett> I realized that there's actually a way better way to do it, that only uses... O(n) states, I think.
17:50:10 <oklopol> what does "halts" mean?
17:50:24 <oklopol> and what language does the machine accept exactly?
17:50:37 <tswett> Whatever and whichever, respectively?
17:50:40 <oklopol> okay
17:50:40 <oklopol> so
17:50:49 <tswett> Assume that there's a state called "HALT" that unconditionally leads to itself.
17:50:55 <tswett> And then it accepts the language {0, 1}.
17:51:19 <tswett> Anyway, you can just run it for about n steps; if it hasn't halted by then, it never will.
17:51:54 <oklopol> so err. you are given a deterministic finite state automaton A, and you need to produce an automaton B which, say, accepts something if A always halts, and otherwise accepts nothing? you need 1 state.
17:52:09 <tswett> Well, yeah, that's correct.
17:52:13 <oklopol> and the answer is that it always halts
17:52:15 <oklopol> okay
17:52:26 <oklopol> your bound is not optimal but i suppose it's correct
17:52:26 <tswett> Wait, I think I misread "accepts".
17:52:50 <oklopol> 1+1 is less than 1893798374
17:52:51 <tswett> What does it mean for an FSA to accept a language, again?
17:53:23 * tswett brbs.
17:53:29 <oklopol> if A is a DFA (deterministic finite state automaton), its language is the set of words w such that after reading w, A is in an accepting state.
17:53:48 <oklopol> a DFA will walk once over its input, then halt in some state
17:54:18 <oklopol> it has an initial state from which it starts, and it has a function that determines what state it enters next, given the current state and the current symbol
17:54:26 <oklopol> some states are accepting, some are not
17:57:37 <oklopol> what i thought you wanted was to take a two-way DFA (so it has a rule that determines what state it enters next _and which way to move_, given the current state and the current symbol), and construct another two-way DFA that accepts the words on which the previous does not halt.
17:57:55 -!- epicmonkey has quit (Ping timeout: 245 seconds).
17:58:00 <oklopol> i think you need at most 4n states for this
17:59:17 <Arc_Koen> are you talking about FSAJoust?
17:59:36 <oklopol> i'm just trying to find out what tswett is talking about
17:59:45 <Lymia> I hope nobody actually makes that
17:59:52 <Lymia> (Malborge Joust)
17:59:54 <Lymia> (do it)
18:00:17 <oklopol> jousting with pebble automata might be fun
18:00:18 <kmc> well bfjoust programs are already fine state machines
18:00:25 <kmc> finite too
18:00:38 <oklopol> not in any relevant sense though
18:01:25 <oklopol> or otherwise it makes no sense, conceptually, to run the programs on inputs of multiple sizes
18:01:40 <oklopol> imo
18:01:52 <fizzie> In befjoust, you play all the 441 different playfield rectangles from 10x10 to 30x30; your flag is in the top left corner, and the opponent's is in the bottom right.
18:02:08 <Arc_Koen> yeay
18:02:30 <Arc_Koen> what happens if I use the command p with coordinates outside the rectangle?
18:02:48 <fizzie> I suppose you lose by way of analogue from "falling off the tape".
18:02:59 <kmc> beefjoust
18:03:10 <fizzie> In beefjoust, everything's delicious.
18:03:17 <Arc_Koen> beetlejuist
18:03:25 <elliott> fizzie: another idea for overoptimising bf joust interpretation: you can share work between tape lengths
18:03:50 <elliott> like, before you reach a square another warrior set or the edge of the tape, everything is always exactly the same
18:04:22 <Fiora_> is the code for the bf joust interpreter thing online?
18:04:25 <elliott> so you can simulate when they'll "meet" on the smallest length and then take that as the first N steps of every longer tape length
18:04:25 -!- Fiora_ has changed nick to Fiora.
18:04:30 <Arc_Koen> fizzie: if you make befjoust, you might as well have 4 warriors
18:04:32 <elliott> just by putting zeroes in the middle
18:04:43 <elliott> Fiora: http://git.zem.fi/chainlance
18:04:58 <oklopol> erm so when it says "move toward the opponent" in >, does that mean move toward the opponent's flag?
18:05:10 <Arc_Koen> definitely
18:05:23 <elliott> oklopol: yes
18:05:50 <Arc_Koen> a simpler interpretation would be "move right" and then "by convention, all warriors are written as if they were the left warrior"
18:06:13 <elliott> that sounds less simple :P
18:06:22 <Arc_Koen> ok :(
18:06:30 <Fiora> thankies
18:06:31 <boily> !bfjoust fwoggle ><><><>>>><<<<
18:06:34 <EgoBot> ​Score for boily_fwoggle: 6.5
18:06:44 <fizzie> That's pretty close to fizzie_headless_chicken.
18:06:54 <boily> how in the fungot did I manage to score >0.0 ???
18:06:54 <fungot> boily: roosa's pulling fiz's nose. :p don't think that matters greatly for the semantics... we proved earlier that urban's original bf is fnord.
18:06:58 <Fiora> whooa, it's written in asm?
18:06:59 <fizzie> Except it goes a bit further.
18:07:42 <fizzie> Fiora: It's not?
18:08:00 <elliott> fizzie: Fiora is probably referring to the header file?
18:08:01 <elliott> for the jit stuff
18:08:08 <fizzie> Oh, well, that's chainlance.
18:08:13 <fizzie> Fiora: You want to be looking at gearlance.c.
18:08:36 <elliott> why does egobot use the non-jitting one, anyway?
18:08:40 <Fiora> oh, what's the difference between the asm part and the switch inteprreter in gearlance?
18:08:53 <fizzie> Turns out the threaded-code-computed-goto was faster than my admittedly clunky and optimization-less JIT version.
18:08:58 <fizzie> If I remember rightly, anyway.
18:09:00 <elliott> heh
18:09:34 <elliott> fizzie: you know you want to write the parallel-with-syncing work-sharing-across-tape-lengths-(and-polarities???) mega-JIT version!!!
18:10:08 <fizzie> I'm pretty sure I don't want to want to, though.
18:11:20 <tswett> oklopol: all right, I'm talking about something a lot simpler.
18:11:31 <Fiora> wow. computed gotos. this looks wonderfully fun
18:11:32 <tswett> Namely, a DFA with no input.
18:11:50 <oklopol> and halting means?
18:12:10 <tswett> Entering a halting state at any time.
18:12:10 <oklopol> each DFA either halts or not?
18:12:19 <tswett> Yeah.
18:13:01 <oklopol> so given a tswett-DFA A, you need to output a tswett-DFA that says "yes" if A halts, and you need to output a tswett-DFA that says "no" if it doesn't halt?
18:13:13 <oklopol> this is still O(1)
18:13:36 <tswett> Indeed it is.
18:13:58 -!- Taneb has joined.
18:13:59 <oklopol> which, again, does not contradict what you said, i was just wondering if maybe the n^3 log n was for a reason.
18:14:03 <tswett> I guess the significant result is that the halting problem can be computed using however much space and however much time.
18:14:33 <tswett> Yeah, I figured it was possible to solve the halting problem for a DFA using O(n^3 log n) space.
18:14:35 <Lymia> fizzie, how do you implement ({}) exactly?
18:14:43 <Lymia> I'm going to have to write a custom parser for this project, I'm almost positive.
18:14:48 <oklopol> well tswett-DFA are essentially just booleans with a fancy representation.
18:15:01 <Fiora> hmm, here's a silly idea. what if you had 8^2 possible labels instead of 8 of them, i.e. like for each possible pair of A/B instructions?
18:15:05 <Lymia> I need to do manipulations on a sub-joust level, in parallel, with a huge number of warriors.
18:15:09 <tswett> They are. The only hard part is evaluating the representation.
18:15:13 <Fiora> so like "[<" would be if A is doing [ and B is doing <
18:15:20 <Fiora> that'd cut the jumps in half, right?
18:15:32 <Fiora> if maybe make them even worsely unpredictable I guess
18:15:51 <Lymia> You can't really.
18:15:53 <elliott> how about 8^200000? then you could just use one jump
18:15:54 <Lymia> And it won't optimize much
18:16:19 <elliott> well halving jumps sounds like the kind of thing that would save a lot of time
18:16:42 <oklopol> yes, the computational complexity of actually finding out whether to output a tswett-DFA that says "yes" or one that says "no" is more complicated.
18:16:44 <fizzie> Fiora: It would also make dispatching to the next instruction worse. I mean, you can't prepare in advance the sequence of your double-instructions.
18:16:56 <oklopol> prolly O(n) or O(n^2) depending on your definitions.
18:17:05 <tswett> Yeah.
18:17:12 <Fiora> fizzie: ahh, that makes sense.
18:17:13 <oklopol> plus some logs
18:17:13 <oklopol> maybe
18:17:29 <oklopol> O(1000000n!) anyways
18:17:53 <tswett> Is O(n!) the same as O(n^n)?
18:17:59 <Lymia> No
18:18:00 <fizzie> Fiora: Since (++--)*-1 and (<<<>>>)*-1 would execute essentially (+< +< -< -> +> +>)*-1 and working out that in general sounds bad, esp. with []s involved.
18:18:03 <Lymia> I don't think
18:18:13 -!- FreeFull has joined.
18:18:18 <Fiora> yeah, I see now :<
18:18:26 <oklopol> tswett: no
18:18:41 <oklopol> n^n is O(n^n) but not O(n!)
18:18:49 <tswett> Yeah, I guess it's pretty clear that n^n/n! increases without bound.
18:19:22 <oklopol> yes. n! is o(n^n) i suppose.
18:19:34 <fizzie> Fiora: I have a Befunge-93 interpreter that has 4*N labels, one for each current direction (for those where it matters).
18:19:41 <oklopol> or something like that
18:19:47 <elliott> °(n)
18:19:51 <oklopol> ^
18:19:56 <oklopol> that's a good o
18:19:59 <FreeFull> Calculating n! you mean?
18:20:43 <oklopol> ?
18:20:50 <oklopol> "calculating n! is o(n^n) i suppose."?
18:22:03 <oklopol> the point was that the function (n \mapsto n!) is o(n^n), that is, the limit of n!/n^n is 0
18:22:03 <fizzie> Lymia: I implement ({})%N so that ( does count=N, { does if (--count) jump back, } does count=0 and ) does if (++count == N) jump back.
18:22:21 <fizzie> (With a stack involved to handle nesting.)
18:22:23 <oklopol> so the () and {} hassle in bfjoust; erm, why?
18:22:30 <oklopol> why not just allow unbalanced things?
18:22:31 <oklopol> oh
18:22:40 <oklopol> perhaps for optimization of the interpreter
18:23:04 <fizzie> oklopol: I believe it's to make that easier, yes.
18:23:14 <Lymia> fizzie, push the stack when you find a ()%?
18:23:39 <fizzie> Lymia: Well, it pushes on ( and }, pops on { and ).
18:23:52 <Lymia> Eh?
18:24:08 <tromp> n! = Theta((n/e)^n sqrt(n))
18:24:11 <Lymia> Right
18:24:34 <Lymia> How does this handle the loop being interrupted from the middle?
18:24:35 <Lymia> Like
18:24:39 <Lymia> ([{}])%200
18:24:45 <fizzie> It doesn't need to be handled specially.
18:24:55 <fizzie> The other side counts up, so it goes right automatically.
18:25:08 <Lymia> .. I see
18:25:18 <Lymia> And the rest is matching () with {}?
18:25:40 <fizzie> If you're doing the 50'th iteration of the ({ part, and jump out of it into the corresponding }), you'll do the remaining (corresponding) 50 iterations of the }).
18:25:51 <Lymia> How do you find the corrasponding one?
18:25:54 -!- Nisstyre has quit (Ping timeout: 264 seconds).
18:26:17 <fizzie> Lymia: Well, you can look at the parser. There's some stacks involved.
18:26:32 <Lymia> Well, wait.
18:26:33 <fizzie> Actually, I'm not sure you want to look at the parser, it's not pretty.
18:26:38 <Lymia> I guess there's no jump aheads involved in ()
18:26:44 <Lymia> Meaning you can just push the location on a stack to begin with
18:26:53 <Lymia> Without too much preformance penality
18:26:56 <FreeFull> oklopol: What is the complexity of multiplication?
18:27:20 <fizzie> Lymia: If you mean runtime, there's no stack of locations involved in any of [] () ({}), since all the locations are static.
18:27:30 <oklopol> i don't remember what the best one is
18:27:48 <Phantom_Hoover> FreeFull, depends, AFAIK.
18:27:55 <FreeFull> Won't n! usually have n-1 multiplications
18:28:11 <oklopol> we are not discussing the complexity of computing n!
18:28:16 <fizzie> Lymia: The parser populates each of those instructions with the index of the matching one. (Plus extra links between the {}s of a ().)
18:28:17 <FreeFull> Fine
18:28:37 <Lymia> fizzie, yeah, I see
18:28:38 <oklopol> but yes, it has n-1 multiplications when written down
18:29:15 * Lymia goes ahead and just uses imperative idioms for parsing
18:29:41 <fizzie> Lymia: As for the parser, I tokenize everything into a list of struct op's first; then do one pass that matches ()s and ({})s together; and then another pass that matches each [] while checking that they don't "cross levels".
18:30:03 <Lymia> I can likely omit the cross level check
18:31:23 <oklopol> computing the binary representation of n! from the binary representation of n must be exponential time because the output is of superexponential length
18:34:30 <fizzie> (And a third pass which turns (Z)*N into (Z)*0, (Z{a}b)%N into (Z)*0a(b)*N and (a{b}Z)%N into (a)*Nb()*0, where Z is any string with no +-<>.[]; and a fourth pass that removes (...)*0 and turns (...{a}...)%0 to plain a. Pass #3 is for the DoS issue, and pass #4 is because the interpreter assumes that every () and ({}) loops at least once.)
18:34:33 -!- Bike has joined.
18:37:50 <Fiora> how does the op_rep thing work with nested repeats?
18:38:33 <Fiora> ooh, it has a repeat stack
18:39:46 <fizzie> Yes, and with complex stuff like (a(b{c{d}e}f)%Ng)%M, by the time you get to c, the (b{%N part pretty much no longer matters at all, so it can just push on the stack on all ( and }, and pop from the stack on all { and ).
18:40:35 <elliott> hm, does ((a(b{cd}{e}f)%Ng)%M make sense
18:40:56 <fizzie> It's at least not allowed.
18:41:13 -!- Nisstyre has joined.
18:41:41 -!- augur has quit (Remote host closed the connection).
18:41:42 <fizzie> I only have a meaning for the (a(b{c{d}e}f)%Ng)%M case, and even that's a bit theoretical.
18:41:49 -!- itsy has changed nick to impomatic.
18:42:12 -!- augur has joined.
18:43:00 <boily> !bfjoust theoreoetic (([(-{>-}{]}+)%1>)%2
18:43:03 <EgoBot> ​Score for boily_theoreoetic: 0.0
18:43:33 <fizzie> It's going to barf on that, I can tell from the {]} already.
18:43:35 <Bike> take THAT, theoreticians
18:44:03 <boily> !bfjoust theoreoetic (([(-{>-}{.}]+)%1>)%2
18:44:06 <EgoBot> ​Score for boily_theoreoetic: 0.0
18:44:19 <boily> I still prefer my fwoggle.
18:44:37 <kmc> http://maximecb.github.com/Turing-Drawings/
18:44:45 <elliott> fizzie: well the meaning should be the same as the * form, presumably
18:44:51 <elliott> the potentially-invalid * form that is
18:45:37 <fizzie> elliott: Could you expand (a(b{c}{d}e)%2f)%3 for me, then, in terms of abcdef.
18:45:58 <kmc> http://demoseen.com/langton
18:45:59 -!- hkt has joined.
18:46:09 <Phantom_Hoover> kmc, it's Wolfram's wet dream.
18:46:13 -!- augur has quit (Ping timeout: 240 seconds).
18:46:42 <elliott> fizzie: well um let's see
18:47:27 <elliott> (b{c}{d}e)%2 --> (b)*2c({d}e)*2 --> bbc{d}e{d}e ok never mind
18:47:55 <fizzie> !bfjoust nested_repeats_need_love_too (>>++<<(++-{>+<}-++)%20)%-1 (yeah, yeah, makes not much sense)*0
18:47:58 <EgoBot> ​Score for fizzie_nested_repeats_need_love_too: 8.5
18:48:28 <Bike> does wolfram even give a damn about automata that don't have his name on them
18:48:40 <fizzie> Er, I think I forgot the second pair of {s.
18:48:55 <Phantom_Hoover> Bike, he does if he can modify them enough to rename them!
18:49:07 <Taneb> fizzie, wouldn't %-1 just end up as -
18:49:07 <Bike> well i mean has he done that with langton
18:49:37 <fizzie> Taneb: Yes, I was going to put a regular ()*-1 around the whole thing, but got all confuzzled. I'll try it again.
18:49:44 <Phantom_Hoover> Bike, yes.
18:49:46 <boily> !bfjoust wooden+ (>)*8(->)*15([-.]>)*30
18:49:49 <EgoBot> ​Score for boily_wooden_: 0.0
18:50:13 <boily> !bfjoust wooden+ (>)*8(->)*5([-]>)*30
18:50:16 <EgoBot> ​Score for boily_wooden_: 4.9
18:50:31 <boily> !bfjoust wooden+ (>)*8(->)*5(++++[-.]>)*30
18:50:34 <EgoBot> ​Score for boily_wooden_: 1.0
18:50:51 <boily> I think there may be some strategic elements I *may* not quite grasp yet.
18:50:58 <Bike> so anyway
18:51:05 <fizzie> !bfjoust nested_repeats_need_love_too ((>>++<<(++-{+++{>>>+<<<}---}-++)%20>>-<<)%20)*-1 (still makes no sense)*0
18:51:08 <EgoBot> ​Score for fizzie_nested_repeats_need_love_too: 8.3
18:51:10 <elliott> boily: that dies on too-short tapes, for a start
18:51:10 <Bike> what's the definition of Control.Monad.forever because the standard isn't too helpful
18:51:19 <elliott> Bike: forever m = m >> forever m
18:51:20 <FireFly> !bfjoust poor_defender_thing >>+<-<(-)*60(+)*65[-]
18:51:23 <elliott> or forever m = do { m; forever m }
18:51:23 <EgoBot> ​Score for FireFly_poor_defender_thing: 3.0
18:51:25 <elliott> or forever m = fix (m >>)
18:51:27 <Bike> oh
18:51:46 <elliott> also are you really still reading the report over lyah.
18:51:51 <Bike> really
18:51:58 <boily> elliott: I need a tape length detector: if I die when advancing, then the tape ends there.
18:52:17 <elliott> Bike you're going to regret this have you even read the applicative functor chapter yet.
18:52:23 <elliott> that covers something that's not even in the standard.
18:52:31 <Bike> whoa, man
18:52:43 <FireFly> (what?)
18:52:49 <elliott> (applicative functors)
18:52:55 <FireFly> (ah)
18:53:04 <Bike> shocking twist
18:53:05 <oklopol> http://maximecb.github.com/Turing-Drawings/#4,3,2,1,3,1,1,1,1,1,3,2,2,1,1,2,3,0,1,3,1,1,2,1,1,1,0,2,0,2,1,2,1,2,0,1,2,0 these are awesome :D
18:53:12 <fizzie> !bfjoust nested_repeats_need_love_too ((+--+(++-{--+{-}++-}--+)%20-++-)%20)*-1 (let's just vibrate)*0
18:53:14 <EgoBot> ​Score for fizzie_nested_repeats_need_love_too: 14.3
18:53:21 <elliott> (in fact Bike should have already read that chapter before asking about forever)
18:53:21 <fizzie> Ooh, over a dozen.
18:53:28 <Bike> FINE
18:53:29 <elliott> (because you should learn about applicative functors before monads)
18:53:31 <fizzie> Or is that shuddering.
18:53:36 <fizzie> I don't know, I don't do jousting.
18:53:48 <Bike> fiiiiine
18:53:53 <elliott> (or actually forever should be defined with an Applicative constraint rather than a Monad one, but that's backwards compatibility for you)
18:56:41 -!- AnotherTest has joined.
18:57:04 <Taneb> oklopol, looks like sand dunes
19:00:32 -!- epicmonkey has joined.
19:01:28 -!- epicmonkey has quit (Remote host closed the connection).
19:02:30 -!- Nisstyre-laptop has joined.
19:04:52 -!- epicmonkey has joined.
19:08:30 -!- FreeFull has quit (Ping timeout: 252 seconds).
19:09:56 -!- FreeFull has joined.
19:10:57 <boily> !bfjoust canoninoff (>)*9([(+)*9[-]]>)*21
19:11:00 <EgoBot> ​Score for boily_canoninoff: 18.5
19:11:10 <boily> when all else fails, read the documentation.
19:14:02 <boily> !bfjoust wooden_ (>++>+>-->-)*3(>[(+)*8[-...]])*18
19:14:05 <EgoBot> ​Score for boily_wooden_: 8.2
19:14:08 <Fiora> eep. when I try to execute chainlance's asm, I get "cannot excute binary file" after assembling :<
19:14:14 <boily> !bfjoust wooden_ (>++>+>-->-)*3(>[(+)*8[-]])*18
19:14:17 <EgoBot> ​Score for boily_wooden_: 17.5
19:14:27 -!- Nisstyre-laptop has quit (Quit: Leaving).
19:15:13 <AnotherTest> Does ducktyping always allow for generic programming?
19:15:54 -!- hkt has quit (Quit: Page closed).
19:16:07 -!- mrtrop has joined.
19:16:57 <Fiora> does anyone have any idea what this might be :<
19:17:07 <Fiora> all the results on google are trying to run a 64-bit binary on 32-bit but my system is 64-bit
19:17:36 <AnotherTest> Fiora: then there should be no problem at all?
19:17:42 <Fiora> but there is :<
19:17:53 -!- augur has joined.
19:17:56 <AnotherTest> "<" is the problem?
19:18:17 <kmc> Fiora: what do you get from 'file thebinaryfile'
19:18:28 <Fiora> test: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
19:18:37 <elliott> Fiora: you need to append the warrior code to the header file, aiui
19:18:45 <elliott> I don't think it'll work by itself
19:18:47 <Fiora> wait but I thought it alreaddoes that
19:18:51 <Fiora> the output code has the headerin it
19:18:55 <elliott> oh
19:19:00 <Fiora> I think
19:19:02 <Fiora> ... yeah it does
19:19:05 <elliott> I thought you were trying to assemble header.asm by itself or something, never mind
19:19:08 <Fiora> nonono
19:19:18 <AnotherTest> elliott: Does ducktyping always allow for generic programming?
19:19:25 <Fiora> I'm doing ./chainlance header.asm in1 in2 > test.asm;yasm -f elf -m amd64 test.asm -O2 -o test
19:19:36 <elliott> AnotherTest: I'm... not quite sure waht you mean by that
19:19:43 <kmc> oh well it's a relocatable and not an executable
19:19:44 <elliott> in particular there are tons of kinds of generic programming
19:19:53 <elliott> Fiora: "test" is like an .o file
19:19:54 <kmc> you need to invoke a linker somehow
19:19:57 <elliott> you need to link it into an executable
19:19:58 <Fiora> .... ohhhhhhhhh
19:20:00 <elliott> e.g. with ld or gcc
19:20:06 <kmc> i recommend gcc
19:20:44 <Fiora> okay, I ran it and it runs but it does nothing (?)
19:20:52 <elliott> maybe it outputs only via exit code or such
19:21:03 <Fiora> does it take arguments?
19:21:05 <elliott> probably fizzie's answer is more useful than my guessing here :P
19:21:07 <Taneb> "That bump will likely be relatively small, and continue for just a few days before settling down again, but it's already crowded out most of the offtopic discussion in #esoteric, leaving it mostly with BF Joust discussion"
19:21:17 <Taneb> -- ais523, February 2011
19:21:40 <Taneb> elliott, did you ever finish Shiro?
19:21:42 <Fiora> oh wow it literally returns an exit code @_@
19:21:46 <Fiora> um, how do I print the exit code in bash
19:22:04 <fizzie> Fiora: It does indeed return the result as the exit code.
19:22:05 <elliott> echo $?
19:22:16 <AnotherTest> elliott: Well, that's true. Let us take the generic programing form where you make abstraction of fundamental requirements/restrictions on types and thus allows you to write generic algorithms that work for a given set of types that are related to each others by concepts
19:22:16 <Fiora> that prints a $
19:22:26 <AnotherTest> s/others/other
19:22:27 <fizzie> Fiora: Did you add the ? there?
19:22:28 <Bike> i love concepts
19:22:33 <elliott> Taneb: Shiro worked and almost passed Mycology (like one edge-case it failed) and had like 10 fingerprints implemented
19:22:36 <elliott> so yes
19:22:42 <Taneb> Sweet
19:22:42 <Fiora> ohhhhh
19:22:43 <Fiora> the ?
19:22:52 <elliott> though I believe accessing the code would cost me ~£500 because I am an idiot
19:22:56 <Bike> Fiora: "$?" is the name of the variable.
19:23:18 <Bike> the bash variable meaning "the last exit code".
19:23:20 <elliott> also if you did echo $ then you need to run the command again, since running echo itself sets $?
19:23:21 <Fiora> geez it takes 0.005 seconds to load and run the program o_O
19:23:22 <Bike> good name huh
19:23:24 <Fiora> between two huge programs too
19:23:55 <fizzie> Fiora: Sure, but you have to factor in the compilation time too, since no-one's interested in running the same thing repeatedly.
19:24:02 <Fiora> ahhhhh
19:24:13 <Fiora> I guess it'd probably be way faster if it outputted asm directly but that'd be hard
19:24:19 <elliott> fizzie: but what if you want to measure ram bit flips??
19:24:44 <fizzie> Fiora: It could make sense if it'd save a compiled single program so that in hill use you'd only need to compile the new competitor and then do a bit combining.
19:24:57 <fizzie> (But that's not how it's written.)
19:25:06 <Fiora> I was thinking the code could be maybe made faster by using call/ret instead of the ip-exchanging thing
19:25:16 <Fiora> e.g. A calls B, B jumps to nextcycle, nextcycle rets to A
19:25:23 <Fiora> but I guess it doesn't really matter :<
19:26:28 <Fiora> (the reason is that feels like it'd eliminate at least ~half the branch mispredictions, since the calls would be super predictable)
19:29:24 <elliott> kmc: isn't it kind of awful how MaybeT is slower than using IO + exceptions
19:29:41 <elliott> I wonder if you can make a faster MaybeT that uses unsafePerformIO internally
19:29:44 <elliott> might have problems with nesting I guess
19:29:50 <kmc> haha
19:29:55 <kmc> you saw my Maybe# right
19:30:38 <elliott> yes
19:31:05 <elliott> I think monad transformer stacks are kind of slow in general
19:31:07 <elliott> which is bad
19:31:26 <Taneb> Is that a problem with Haskell, or with GHC
19:31:55 <elliott> well it's a problem of repeatedly packing and unpacking a billion levels of data every bind
19:32:05 <elliott> a Sufficiently Smart Compiler could remove it all, but that's not really saying anything
19:32:44 <kmc> JIT JIT JIT JIT JIT JIT JIT JIT
19:32:58 <kmc> YKYWT
19:33:18 <Bike> you know you want... something
19:33:24 <kmc> 'to'
19:33:35 <Taneb> you know you want tswett
19:33:42 <Bike> o
19:34:16 <kmc> you know you want towriteatracingjitforhaskell
19:34:25 <kmc> didn't edwardk have one in the works
19:34:53 <kmc> I would be tremendously amused and not entirely surprised to hear that certain Haskell programs run faster when compiled to JS and run in V8
19:35:31 <Taneb> ...compared to GHC with default options?
19:35:36 <kmc> compared to GHC ever
19:35:54 <kmc> because V8 can trace through all those abstractions and optimize them
19:35:59 <elliott> JITs wouldn't help the competitive befunge interpretation space anyway
19:36:10 <kmc> there are cases where C code runs faster when you compile it to JS and run it in V8
19:36:11 <elliott> since there's one program you have to run instantly or everyone makes fun of you
19:36:22 <kmc> canonical example is printf with a constant format string
19:36:55 <kmc> a JIT can do optimization with information that's not available at compile time; it can even make assumptions that don't always hold (and just bail when they fail to hold)
19:37:24 <kmc> a lot of function parameters become constants when you're looking only at calls in your hot path
19:37:27 <kmc> and so can be constant-folded
19:37:45 <kmc> entire chunks of code removed due to unreachability, tests for edge cases dropped
19:37:48 <kmc> p. cool stuff
19:38:00 <Bike> wait, if the format string is constant why couldn't a static compiler do it.
19:38:07 <kmc> it could in this case
19:38:23 <kmc> but it would need either printf-specific code or a pretty sophisticated compile time partial evaluation / supercompilation engine
19:38:31 <kmc> not that compilers don't have printf specific code but anyway
19:38:45 <kmc> this stuff is much easier (read: tractable at all) if you are doing it at runtime and only for the case you actually encounter
19:39:35 <elliott> the equivalent of a JIT for haskell is pretty much a lazy specialiser I think
19:39:40 <kmc> GCC will at least optimize printf("%s", x) to puts(x) but, I mean, c'mon
19:39:49 <elliott> which is a kind of ridiculously complicated piece of tech that nobody knows how to write
19:39:55 <kmc> i dunno
19:40:07 <kmc> i think a JIT on STG machine operations would do really well
19:40:15 <elliott> oh well that is cheating
19:40:22 <kmc> why
19:40:39 <Bike> do any used compilers have "a pretty sophisticated partial evaluation / supercompilation engine"
19:40:51 <elliott> because you've made it imperative already by then!
19:41:56 <kmc> not that i know of
19:42:02 <kmc> the problem is that you need to know which cases are worth optimizing
19:42:21 <kmc> since there are obviously a huge number of specializations you could emit for every particular function
19:42:29 <kmc> compile time tends to be a limiting factor, aiui
19:42:37 <kmc> and code size.
19:42:44 <Bike> mm
19:43:10 <Fiora> normal compilers can do optimizations that don't always hold either right? and branch based on them
19:43:15 <kmc> yeah
19:43:24 <Fiora> like one I remember is "compile version that assumes no aliasing, branch based on runtime aliasing"
19:43:30 <kmc> that's clever
19:43:40 <Fiora> I think I heard Intel's compiler does that
19:43:52 <Fiora> it kinda makes sense given their focus on autovectorization while needing to remain correct
19:44:07 <Fiora> assume there's no aliasing, bail to the slow code if there is
19:44:33 <Fiora> I love cool compiler optimizations like that, even if sometimes it feels like the compiler is so dumb
19:50:55 -!- Lymia has quit (Ping timeout: 264 seconds).
19:55:07 -!- heroux has quit (Ping timeout: 246 seconds).
19:55:47 -!- oerjan has joined.
19:56:54 -!- ogrom has joined.
19:57:06 -!- heroux has joined.
19:59:51 -!- carado_ has joined.
20:01:04 -!- carado has quit (Ping timeout: 246 seconds).
20:12:12 -!- heroux has quit (Ping timeout: 264 seconds).
20:12:23 <oerjan> @tell Lymia <Lymia> I wonder if it'd be possible to construct a valid string s that is the continuation of the rest of the program. <-- there's a way of textually interpreting brainfuck by, at the start of a loop [inloop]rest turning the program into inloop[inloop]rest . that essentially gives you a continuation. (...)*n should be easy to handle similarly. maybe ()%n too...
20:12:24 <lambdabot> Consider it noted.
20:12:36 -!- heroux has joined.
20:16:26 <oerjan> @tell Lymia <Lymia> Meaning, like, [+P]+ => [+([+{}]+(.)*-1)%-1]+ <-- hm so you mean putting it _inside_ at that point? i guess the same method would still work by padding with (.)*-1 as you to there. also, i vaguely recall %-1 may not be supported...
20:16:26 <lambdabot> Consider it noted.
20:17:27 <oerjan> @tell Lymia so [+P]+ -> [+[+]+(.)-1]+
20:17:28 <lambdabot> Consider it noted.
20:25:55 <oerjan> <shachaf> Anyway I think it's a good default assumption that I'm in more of a bubble than I think I am. <-- being in a bubble is good. remember, most of the universe is vacuum.
20:29:12 -!- augur has quit (Remote host closed the connection).
20:32:45 -!- carado_ has changed nick to carado.
20:35:25 -!- augur has joined.
20:38:08 -!- pikhq_ has quit (Ping timeout: 240 seconds).
20:38:22 -!- pikhq has joined.
20:38:24 -!- Nisstyre-laptop has joined.
20:47:33 -!- epicmonkey has quit (Ping timeout: 248 seconds).
20:47:56 -!- ThatOtherPerson has quit (Quit: Leaving).
20:51:52 <oerjan> @tell ais523 <ais523> imagine something as simple as "do >+, then wait for the current cell to become zero, then wait that many cycles again, then do something else" <-- +>([{}]somethingelse(.)*-1)%-1 assuming %-1 is legal
20:51:53 <lambdabot> Consider it noted.
20:52:09 <oerjan> @tell ais523 *>+
20:52:10 <lambdabot> Consider it noted.
20:52:54 <oerjan> @tell ais523 Oops, discard, duh
20:52:54 <lambdabot> Consider it noted.
20:53:21 -!- AnotherTest has quit (Quit: Leaving.).
20:55:01 <elliott> @tell ais523 *>+
20:55:01 <lambdabot> Consider it noted.
20:55:27 <oerjan> elliott: i meant the whole thing hth
20:55:41 <oerjan> i forgot the entire "wait that many cycles again" part
20:55:49 <elliott> thx
20:56:12 <oerjan> also apparently %-1 doesn't work, by what's said later
20:56:15 -!- heroux has quit (Ping timeout: 245 seconds).
20:56:47 <oerjan> which if true means fizzie isn't using my elegant constant space method, boo!
20:57:21 <oerjan> at least i think it's constant space
20:58:00 -!- heroux has joined.
20:58:09 -!- Nisstyre-laptop has quit (Quit: Leaving).
20:59:43 <elliott> oerjan: well %-1 is pointless...
20:59:59 <oerjan> why?
21:00:09 <elliott> because it is (a)*-1b(c)*-1.
21:00:17 <elliott> (a{b}c)%-1 --> (a)*-1
21:00:31 <oerjan> um, no?
21:00:42 <oerjan> ['s in the a can jump to ]'s in the c
21:00:47 <oerjan> and vice versa
21:01:29 <oerjan> i am assuming a non-expanding implementation, of course
21:01:41 <elliott> oh hm
21:01:51 <elliott> i guess you're right
21:02:22 -!- boily has quit (Quit: アァ!).
21:02:26 -!- metasepia has quit (Remote host closed the connection).
21:03:25 <Taneb> Wouldn't the -1 in %-1 not get parsed as a number
21:03:27 <oerjan> the only reason to limit the % nesting is if you are somehow pushing things on the stack instead of just bumping a counter.
21:03:31 <Taneb> But a - followed by a comment symbol
21:03:44 <oerjan> Taneb: *-1 is supported syntax
21:04:10 <oerjan> %-1 could be, although i'm not sure whether it is if there is a nesting limit anyhow
21:06:24 <elliott> oerjan: a problem is that %-1 would be distinguishable from %100000, right?
21:06:30 <oerjan> (ok it makes sense to push the _counter_ to the stack, although you could save it in a different way
21:06:30 <elliott> or hm would it
21:07:22 <oerjan> elliott: it shouldn't, assuming there isn't empty code between ({ or })
21:08:05 <oerjan> although i think it's common that -1 is interpreted as "a very high number"
21:08:14 <oerjan> so it _shouldn't_ be different.
21:09:08 <oerjan> and fizzie has some empty code removal code, which was discussed recently
21:09:20 <oerjan> turning ()*n into ()*0
21:09:47 <elliott> oerjan: well -1 is meant to be infinite
21:09:48 <oerjan> although it would not _obviously_ work for ({...})%n if he isn't expanding
21:09:58 <elliott> it's just that picking the cycle size works for ()*n, indistinguishably
21:10:21 <oerjan> elliott: not if you are using empty code :P
21:10:43 <elliott> well I would say infinite repetitions of the empty string is the empty string
21:10:49 <elliott> seems to be the most sensible choice
21:11:06 <oerjan> yeah. well in that case you can do it for ()%n as well.
21:11:21 <oerjan> of course, oh right...
21:11:30 <dbelange> Let Th be a formal theory. Suppose that Con (Th). Does it Godel completeness theorem confirms that the corresponding model M_Th of the Th really exists?
21:12:19 <oerjan> if (...{ is empty it can contain no [, which means the corresponding }...) can contain no internally _unmatched_ []'s, which means both can be converted seemlessly to ()*n instead.
21:12:40 <oerjan> which i think fizzie depends on.
21:13:06 <oerjan> *seamlessly
21:14:10 <oerjan> *+) up above
21:14:11 -!- heroux has quit (Ping timeout: 245 seconds).
21:15:05 -!- heroux has joined.
21:15:58 <dbelange> If Pi contains an infinite number of numbers, is it possible that within this infinity, there is an infinite series of 1's?
21:16:07 <Taneb> No
21:16:08 <Bike> hello
21:16:15 <oerjan> dbelange: you already asked that last one
21:16:15 <Taneb> Because then Pi would be rational
21:16:18 <Taneb> Which it isn't
21:16:36 <Taneb> There could be an arbitrarily long sequence of 1's
21:16:54 <oerjan> dbelange: the 1's cannot be consecutive. there is _probably_ an infinite nonconsecutive subsequence of 1's, but there is no proof.
21:17:30 <oerjan> because pi is believed to be normal, in a famous unsolved problem
21:17:49 <Taneb> How would you go about proving a number to be normal
21:18:10 <oerjan> dbelange: also the completeness theorem does confirm that iirc
21:18:29 <oerjan> Taneb: if you find out in general, you'll be famous
21:18:29 <kmc> dbelange: didn't you ask that already
21:18:30 <tromp> there's only one know class of provable normal numbers
21:18:50 <Taneb> oerjan, I already am famous, darling ;)
21:18:51 <oerjan> tromp: are there any that are provably normal in all bases?
21:18:51 <tromp> i mean known to be provable:)
21:19:03 <tromp> yes
21:19:40 <tromp> for provable in e.g. base 10 only, there are other examples
21:19:48 <tromp> like champernowne's number
21:20:20 <tromp> but normal (for all bases) has only been proved for halting probabilities
21:22:05 -!- heroux has quit (Ping timeout: 245 seconds).
21:23:00 -!- heroux has joined.
21:26:22 <oerjan> funny, the only numbers known to be normal cannot be written out, eh?
21:26:46 <oerjan> oh hm.
21:26:58 <elliott> maybe that's inherent for all numbers normal in all bases, or something.
21:27:05 <elliott> they contain too much information, or some such nonsense
21:27:11 <Taneb> Would knowing whether pi is normal be useful in any way
21:27:18 <Bike> can't you write out champernowne's
21:27:26 <elliott> yes it'd let you respond to people who ask whether it is or not.
21:27:29 <elliott> Bike: that's only for base 10
21:27:34 <elliott> or such
21:27:34 <Bike> oh, right.
21:27:47 <oerjan> i was wondering, couldn't you do something with factorial base. or wait that would be backward.
21:27:57 <elliott> Champernowne proved that is normal in base ten, although it is possible that it is not normal in other bases.[3]
21:28:27 <fizzie> Fiora: Well, I hope you're happy now: I implemented your suggestion of having 8^2 (actually, 12^2) labels, and not only is it slightly slower -- http://sprunge.us/EFND -- it's also horrible -- http://sprunge.us/QMAR?c -- to behold.
21:29:19 <elliott> fizzie: ok, now do 3. or 4.
21:29:27 <elliott> you may need a perl script.
21:29:37 <fizzie> All I need is the preprocessor.
21:31:43 * oerjan has no idea what fizzie is talking about now
21:31:56 <Fiora> sorry :<
21:32:24 <Fiora> wow that's terrifically messy
21:32:51 <oerjan> fizzie: btw why does %n have a nesting limit thx
21:32:58 <Fiora> combining the repetition loops with that seems like it'd be particularly terrible
21:34:01 <Fiora> sorry for wasting your time though >_<
21:34:02 <oerjan> hm it's easy to make a number normal in a finite set of bases; just consider their lcm. i think.
21:34:14 <oerjan> well assuming you can do it for one.
21:34:31 <oerjan> so then, couldn't you actually _do_ something like factorial base...
21:35:52 <oerjan> this is so simple it either must be well-known, or have a fatal flaw.
21:36:10 -!- pikhq_ has joined.
21:36:31 -!- pikhq has quit (Ping timeout: 264 seconds).
21:38:11 <tromp> you're claiming Champernowne's number is normal in both base 2 and 5?
21:38:31 <Fiora> um, an optimization idea that might apply to both: make &tape[tapesize] a global constant? so it doesn't have to calculate it for the comparisons
21:38:38 <tromp> i fail to see that
21:38:39 <Fiora> well, constant per run
21:38:40 <fizzie> oerjan: Ease of implementation. It's C, not well-known for its resizable arrays, and many pieces of code touch those. But perhaps I should make it so that it dynamically sets the nesting limit equal to the number of (s in the program; I don't suppose you can nest any deeper than that.
21:39:41 <oerjan> tromp: oh it isn't? hm.
21:39:50 <fizzie> Fiora: Isn't a compiler supposed to be clever enough for that kind of stuff? I mean, it's all within a function, shouldn't it be able to figure out that nothing changes tapesize and use a single computed value?
21:39:57 <tromp> it may be. i dunno:(
21:40:01 <Fiora> ah, that should be okay I guess
21:40:14 <Fiora> one thing I worry about is how well the compiler handles the crazy computed gotos though, and keeping things in registers
21:40:41 <Fiora> I guess looking at the asm might help...
21:40:59 <Fiora> but yeah, sorry :< I wonder why this did worse though. maybe it made branch prediction even awfuller
21:41:34 <oerjan> fizzie: er, i thought from the discussion that the n in %n was limited, did i misunderstand?
21:42:31 <fizzie> oerjan: That's limited to 100000 but isn't that okay since that's the maximum number of cycles anyway?
21:42:54 <oerjan> fizzie: yes. i misunderstood what the 256/4096 thing was about.
21:43:02 <fizzie> oerjan: It was a nesting depth limit.
21:43:16 <fizzie> oerjan: You used to be able to "only" nest (((()))) up to 256 levels deep.
21:43:26 <oerjan> right
21:47:00 -!- heroux has quit (Ping timeout: 264 seconds).
21:48:47 -!- heroux has joined.
21:49:46 <oerjan> "Becher and Figueira proved in 2002 that there is a computable normal number."
21:50:53 <fizzie> Fiora: There's also presumably quite a bit more code, I suppose that could count for something.
21:50:58 -!- carado has quit (Ping timeout: 246 seconds).
21:51:05 <fizzie> oerjan: I don't suppose they mentioned what it was?
21:51:15 <elliott> it was a classical proof
21:51:27 <Fiora> I guess so
21:51:42 <Fiora> (that frustrating feeling when an optimization that sounds cool doesn't work at all)
21:51:50 <Taneb> oerjan, did they ever get round to working out what it was
21:51:53 <oerjan> "A computable normal number was constructed in (Becher 2002). Although these constructions do not directly give the digits of the numbers constructed, the second shows that it is possible in principle to enumerate all the digits of a particular normal number."
21:53:29 <elliott> haha, so it was actually a non-constructive proof?
21:54:40 <Bike> isn't that what you'd expect from "proved that there is" rather than a link to the constant named after them
21:55:34 <elliott> not really
21:55:47 <elliott> chaitin's constant is also non-constructive and that has a name
21:56:01 <elliott> (my favourite real)
21:57:30 <Taneb> Gregory Chaitin: keepin' it real since '75
22:00:35 <dbelange> Gregory Chaitin: The man who brought you "theorems are like boobs" and "theorems are like child-bearing hips"
22:01:15 <Bike> what
22:01:22 <dbelange> mathematical ideas or the physical universe,
22:01:22 <dbelange> in a word, by their “fertility”. Just as the beauty of a woman’s breasts or
22:01:25 <dbelange> the delicious curve of her hips is actually
22:01:43 <dbelange> l0l http://arxiv.org/abs/math/0404335
22:02:02 <Bike> man i knew he was crazy but what the christ
22:03:34 <oerjan> @tell Lymia <Lymia> That never /loses/ a single joust <-- the other day i believe i proved that you cannot make a program that can never lose on a particular tape/polarity.
22:03:35 <lambdabot> Consider it noted.
22:07:22 <elliott> ooh howso
22:07:43 <elliott> surely the "optimal rushes" draw at worst?
22:07:50 <elliott> oh because defence programs. ok never mind.
22:07:52 <elliott> thingy
22:08:23 <oerjan> elliott: i am pretty sure you were the person i previously explained the proof to
22:08:38 <elliott> right i just didn't realise that was what you proved :P
22:09:02 <Taneb> Is it possible to create a program that always wines more than it loses across all tape lengths and polarities
22:09:11 <elliott> wines
22:09:21 <oerjan> Taneb: QUESTION FOR FURTHER RESEARCH, THAT IS
22:09:30 <Bike> hey elliott i'm actually reading lyah again now. why isn't (a ->) syntactically valid?
22:09:43 <elliott> well i guess because (-> a) wouldn't be
22:09:56 <Bike> why not
22:10:08 <Taneb> Because no type level lambdas
22:10:17 -!- ogrom has quit (Quit: Left).
22:10:23 <Taneb> infix notation is syntax sugar for lambdas, iirc
22:10:45 <Taneb> Sections, rather
22:10:57 <oerjan> was there an extension that made (a ->) valid or not
22:11:12 <Taneb> oerjan, I do not recall one.
22:11:12 <elliott> Bike: because giving instances for something like (-> a) would cause major ambiguity and type inference problems.
22:11:18 <elliott> you also cannot partially-apply type synonyms for this reason etc.
22:11:33 <elliott> whereas (a ->) is just ((->) a), i.e. a partially applied non-type-synonym
22:11:47 <Bike> you could still have sections one way couldn'tcha
22:11:59 <oerjan> yeah you could
22:12:07 <oerjan> but they may just not have bothered
22:12:15 <elliott> yes but (a ->) working but not (-> a) could be viewed as confusing. I would probably allow it personally, just offering a possible reason
22:12:17 <Bike> fair
22:12:33 <Taneb> Other than (->), infix types require an extension
22:12:33 <shachaf> I would allow it impersonally.
22:12:34 <shachaf> hi Bike
22:12:38 <shachaf> `welcome Bike
22:12:41 <HackEgo> Bike: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:12:52 <FireFly> `välkommen shachaf
22:12:53 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: välkommen: not found
22:13:01 <FireFly> :(
22:13:10 <shachaf> `tervetuloa FireFly
22:13:11 <FireFly> `? välkommen
22:13:11 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: tervetuloa: not found
22:13:12 <HackEgo> Hej och välkommen till den internationella knutpunkten för design och distribution av esoteriska programspråk! För mer information, se vår wiki: http://esolangs.org/wiki/Main_Page. (För den andra sortens esoterism, pröva #esoteric på irc.dal.net.)
22:13:19 <shachaf> ?????????
22:13:27 <shachaf> someone plz add `tervetuloa thx
22:13:34 * shachaf is at SEA now.
22:13:57 <shachaf> p.good aæeroport
22:14:10 <olsner> oh, at SEA, not at sea
22:14:13 <Bike> hi shachaf
22:14:56 <Taneb> `run echo "tervetuloa: ask shachaf" > wisdom/tervetuloa
22:14:59 <HackEgo> No output.
22:15:03 <Taneb> `? tervetuloa
22:15:05 <HackEgo> tervetuloa: ask shachaf
22:15:08 <Bike> is it ok if i just ignore all this "box" stuff
22:15:27 <elliott> what box stuff
22:15:30 -!- impomatic has left.
22:15:34 <elliott> ps i dont remember half of lyah
22:15:41 <Bike> as a metaphor for monads or functors or whatever
22:15:42 <shachaf> oh no is it talking about polykinds
22:15:43 <olsner> I haven't read lyah I think
22:15:46 <shachaf> or is it saying functors are boxes
22:15:50 <shachaf> imo ewwwwwwww
22:15:54 <Bike> it's saying something like that
22:15:58 <olsner> Bike: do ignore all metaphors, they're useless
22:16:02 <shachaf> @quote kmc box
22:16:02 <lambdabot> No quotes match. Are you on drugs?
22:16:04 <shachaf> @quote kmc contain
22:16:04 <lambdabot> No quotes match. Are you on drugs?
22:16:05 <shachaf> :-(
22:16:05 <Bike> k
22:16:07 <Taneb> functors are functors
22:16:19 <Taneb> They're like monads but less powerful and more general
22:16:22 <Bike> i thought elliott said they were endofunctors :(
22:16:27 <Bike> MORE POWERRRRR
22:16:31 <Bike> @quote kmc
22:16:31 <lambdabot> kmc says: in C++ you give the [design] pattern a name so you can look it up and copy it out of the book when you repeat it
22:16:31 <elliott> Bike: functors are just something you can map over <-- more useful than a box metaphor
22:16:38 <Bike> yes
22:16:40 <Bike> @quote kmc
22:16:40 <lambdabot> kmc says: Haskell is a language where the community observes that there are 50 incompatible error handling monads, and the response is 50 incompatible packages for generically handling all error
22:16:40 <lambdabot> handling monads
22:16:45 <shachaf> @remember kmc monads are like containers, as long as you forget everything you know about the meaning of the word "container" and take it to be a totally abstract word synonymous with "monad"
22:16:46 <lambdabot> I will never forget.
22:16:50 <Bike> this isn't working
22:16:52 <Taneb> And with that I say goodnight
22:17:20 <olsner> Taneb: with what?
22:17:29 <Bike> "I will never forget."
22:17:52 <Arc_Koen> with his keyboard!
22:17:57 <Arc_Koen> or speech recognition stuff
22:18:00 -!- Taneb has quit (Quit: who knows).
22:18:10 <FreeFull> I usually view monads as a way of chaining a -> m a functions
22:18:22 <Bike> so on a related note
22:18:31 <Bike> "In the same vein, if we write fmap :: (a -> b) -> (f a -> f b), we can think of fmap not as a function that takes one function and a functor and returns a functor, but as a function that takes a function and returns a new function that's just like the old one, only it takes a functor as a parameter and returns a functor as the result."
22:18:33 <elliott> that is a pretty bad way of viewing them considering they can do more than that
22:18:39 <elliott> Bike: oh no, it calls (f a) a functor?
22:18:43 <Bike> i'm having trouble thinking of an "f a" as "a functor"
22:18:45 <elliott> this chapter is worse than I thought.
22:18:48 <Bike> yeah that's what i'm wondering about
22:18:49 <elliott> go back to reading the report.
22:19:02 <Bike> elliott: the report refers to monads as actions hth
22:19:17 <elliott> calling (m a) an action is ok
22:19:18 <FreeFull> Maybe action :)
22:19:29 <Bike> The Monad class defines the basic operations over a monad, a concept from a branch of mathematics known as category theory. From the perspective of a Haskell programmer, however, it is best to think of a monad as an abstract datatype of actions.
22:19:56 <shachaf> calling a value of type (m a) an action is ok
22:19:58 <elliott> that's not an unreasonable description, though "abstract" is meaningless there
22:19:59 <shachaf> ftfy hth
22:20:28 <Bike> so how is like, [] an action, in a useful sense
22:21:06 <elliott> it's not [] that's an action
22:21:15 <elliott> it's [1,2,3] :: [Int] that you can consider an action
22:21:21 <elliott> in particular the [] monad models (ordered) nondeterminism
22:21:23 <elliott> like prolog.
22:21:34 <elliott> > do { x <- [1..10]; y <- [1..10]; guard (x + y == 10); return (x, y) }
22:21:36 <lambdabot> [(1,9),(2,8),(3,7),(4,6),(5,5),(6,4),(7,3),(8,2),(9,1)]
22:21:48 <elliott> > [(x,y) | x <- [1..10], y <- [1..10], x + y == 10]
22:21:50 <lambdabot> [(1,9),(2,8),(3,7),(4,6),(5,5),(6,4),(7,3),(8,2),(9,1)]
22:25:46 <Bike> I don't think I get what guard does. does it just always return [()] there?
22:26:07 -!- carado has joined.
22:26:19 <shachaf> Yes.
22:26:25 <elliott> it returns [] if x + y /= 10
22:26:26 <oerjan> > guard (1 + 9 == 10) :: [()]
22:26:29 <lambdabot> [()]
22:26:32 <oerjan> > guard (1 + 8 == 10) :: [()]
22:26:35 <lambdabot> []
22:26:38 <shachaf> Er, return [()] when you give it True.
22:26:41 <Bike> ooh
22:26:53 <oerjan> shachaf: *return ()
22:26:58 <elliott> anyway so you can consider [1,2,3] an action that returns 1, 2 or 3, nondeterminstically
22:27:10 <elliott> and the result of composing together all these actions is the list of all possible results of the program
22:27:10 <Bike> hm right
22:27:12 <shachaf> oerjan: No, guard returns [()]
22:27:13 <tromp> guard (1 + 9 == 10) :: [Bool]
22:27:15 <shachaf> silly oerjan
22:27:17 <tromp> > guard (1 + 9 == 10) :: [Bool]
22:27:19 <lambdabot> Couldn't match expected type `GHC.Types.Bool' with actual type `()'
22:27:26 <oerjan> shachaf: it returns return () hth
22:27:33 <elliott> and guard (x + y == 10) is an action that doesn't return if x + y /= 10 and returns with a trivial result otherwise, etc.
22:27:33 <shachaf> "guard True" is "return ()"
22:27:50 <shachaf> imo people talk about functions "returning things" too much
22:28:21 <shachaf> instead of things being things??
22:28:37 <elliott> "id returns its argument"
22:28:41 <oerjan> shachaf: that's just people returning people.
22:29:02 <dbelange> join us at FOSSCON for talks and real-life collaboration or bring a picnic and come join like-minded geeks for a geeknic
22:29:04 <Jafet> Soylent green returns people to people
22:29:33 <shachaf> elliott: did you hear my monoid pun in #haskell
22:29:38 <shachaf> just mentioning it because you hate monoids
22:29:45 <shachaf> but you also hate puns
22:29:49 <shachaf> so what do you hate more
22:30:26 <tromp> > guard False
22:30:28 <lambdabot> No instance for (GHC.Show.Show (m0 ()))
22:30:28 <lambdabot> arising from a use of `M78945842...
22:30:38 <shachaf> @gyarrd
22:30:38 <lambdabot> I heard andersca is a pirate
22:30:43 <tromp> > guard False :: [()]
22:30:44 <lambdabot> []
22:30:58 <oerjan> shachaf: wat
22:31:04 <oerjan> @gyard
22:31:05 <lambdabot> I'll crush ye barnacles!
22:31:15 <Bike> good function
22:31:21 <shachaf> woerjan
22:31:21 <oerjan> @gyrrd
22:31:21 <lambdabot> Unknown command, try @list
22:31:38 <oerjan> @gyzfoiharrd
22:31:38 <lambdabot> Unknown command, try @list
22:31:45 <oerjan> @gyzarrd
22:31:46 <lambdabot> Unknown command, try @list
22:31:50 <oerjan> @gzarrd
22:31:50 <lambdabot> Unknown command, try @list
22:32:06 <oerjan> oh it's yar
22:32:08 <oerjan> *yarr
22:32:19 <Bike> The first functor law states that if we map the id function over a functor, the functor that we get back should be the same as the original functor.
22:32:30 <shachaf> Bike: :-(
22:32:34 <shachaf> Is that LYAH?
22:32:40 <Bike> yep
22:32:44 -!- augur has quit (Remote host closed the connection).
22:32:45 <shachaf> elliott: ☝
22:33:02 <dbelange> Lick Your ___ Hole
22:33:09 -!- ChanServ has set channel mode: +o oerjan.
22:33:09 <shachaf> Bike: A value of type (f a) isn't a functor.
22:33:16 <shachaf> f is a functor.
22:33:21 -!- oerjan has set channel mode: +b *!*yevunye@*.csclub.uwaterloo.ca.
22:33:22 -!- oerjan has kicked dbelange I think that's about enough.
22:33:25 <Bike> yes, that seems easy enough
22:33:29 <shachaf> These people are abusing terminology.
22:33:46 <Bike> clearly i was well served by glancing through wikipedia's category theory articles
22:34:14 <shachaf> I,I it's the endofunctor as we know it
22:34:15 -!- oerjan has set channel mode: -o oerjan.
22:34:28 <Bike> what's that I,I thing
22:35:53 <oerjan> i don't feel any particular need to be generous on that last comment given that he's been banned N times before.
22:36:30 <shachaf> N=-1?
22:37:02 <oerjan> shachaf: about 3 is what i heard.
22:37:11 <Bike> oh was he recurrent
22:37:31 <oerjan> Bike: primitively recursive
22:38:05 <Bike> that's not very recurrent at all!
22:38:36 <oerjan> OKAY
22:47:20 -!- augur has joined.
22:47:30 -!- augur has quit (Remote host closed the connection).
22:48:56 <Jafet> @gar
22:48:56 <lambdabot> Maybe you meant: arr faq ghc map part yarr
22:49:24 <oerjan> 16:41:38: <elliott> kmc: you can use `url when the target is a filename btw
22:49:24 <oerjan> 16:41:42: <elliott> maybe `paste should optimise that
22:49:34 <Jafet> @garrr
22:49:34 <lambdabot> Maybe you meant: arr yarr
22:49:37 <oerjan> an excellent idea, which is why i already implemented it.
22:50:40 <oerjan> @arr
22:50:41 <lambdabot> Yo ho ho, and a bottle of rum!
22:50:43 <oerjan> @yarr
22:50:44 <lambdabot> Eat maggoty hardtack, ye unkempt, jenny frequentin', son of a gun.
22:50:47 <oerjan> @list yarr
22:50:48 <lambdabot> quote provides: quote remember forget ghc fortune yow arr yarr keal b52s brain palomer girl19 v yhjulwwiefzojcbxybbruweejw protontorpedo nixon farber
22:51:18 <oerjan> a bit silly to get an ambiguity between synonyms for the same command :P
22:51:28 <Jafet> http://1-media-cdn.foolz.us/ffuuka/board/a/image/1349/90/1349909391603.png
22:53:01 <elliott> oerjan: congratulations
22:53:24 <oerjan> yay!
22:54:57 <elliott> oerjan: it's not that it's ambiguous, it's that the edit distance >1, I think
22:55:15 <oerjan> elliott: not for Jafet's @garrr
22:55:28 <elliott> @yrr
22:55:28 <lambdabot> Maybe you meant: arr yarr
22:55:31 <elliott> hm.
22:55:33 <elliott> fair enough
22:55:45 <elliott> though maybe it's taking y -> a as a delete + remove step
22:55:53 <Jafet> @yarrrr
22:55:54 <lambdabot> I'll keel haul ya fer that!
22:56:28 <kmc> shachaf: what do you like about the SEAport
22:56:51 <shachaf> Well, it depends.
22:56:59 <shachaf> The TSA took my screwdriver here once.
22:57:08 <shachaf> I'm still pretty mad at them because it was a very good screwdriver.
22:57:22 <Bike> > fmap (+) [1,2,3] <*> [9,8,7]
22:57:23 <lambdabot> [10,9,8,11,10,9,12,11,10]
22:57:36 <Bike> oh
22:57:51 <oerjan> that's usually prettier with <$>
22:58:12 <Bike> > fmap (+) [1,2,3] <$> [9,8,7]
22:58:14 <lambdabot> Couldn't match expected type `(->) a0' with actual type `[]'
22:58:23 <oerjan> not for the <*>, for the fmap
22:58:24 <shachaf> > [(1+),(2+),(3+)] <*> [9,8,7]
22:58:26 <lambdabot> [10,9,8,11,10,9,12,11,10]
22:58:34 <Bike> that's not what i expected anyway >_>
22:58:38 <shachaf> > getZipList $ ZipList [(1+),(2+),(3+)] <*> ZipList [9,8,7]
22:58:40 <lambdabot> [10,10,10]
22:58:43 <Bike> yeah that.
22:59:23 <elliott> are you reading the original idioms paper or something
22:59:33 <elliott> > (,) <$> [1,2,3] <*> [4,5,6] -- cartesian product
22:59:34 <Bike> the what
22:59:35 <lambdabot> [(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)]
22:59:39 <elliott> the applicative has to be this way to match the monad instance
23:00:34 <fizzie> Misread "the original idiot paper".
23:00:52 <elliott> (applicative functors used to be called idioms)
23:00:56 <elliott> (and had a zippy [] instance)
23:01:05 <elliott> (indeed they were invented as a generalisation of zipWith, zipWith3, etc.)
23:01:18 <Bike> "idiom" seems like a bad name
23:02:18 <shachaf> applicative functors seems like a worse name
23:02:27 <shachaf> > map length ["idiom", "applicative functor"]
23:02:28 <lambdabot> [5,19]
23:03:02 <Bike> just slap a GUID on everything and be done with it.
23:03:07 <Jafet> @name
23:03:08 <elliott> "applicative functor" doesn't mean all that much to start with
23:03:12 <elliott> (it is actually a strong lax monoidal functor)
23:03:26 <Bike> SLMF, done
23:03:49 <shachaf> what does lax mean
23:03:57 <shachaf> i know what strong means: NOTHIN'
23:04:07 <Phantom_Hoover> laxative
23:04:22 <shachaf> @fresh
23:04:22 <lambdabot> Hajw
23:05:04 <fizzie> I think it's, like, salmon?
23:12:10 -!- carado has quit (Ping timeout: 246 seconds).
23:14:00 -!- copumpkin has quit (Ping timeout: 264 seconds).
23:14:30 -!- copumpkin has joined.
23:15:12 -!- Lymia has joined.
23:15:12 -!- Lymia has quit (Changing host).
23:15:12 -!- Lymia has joined.
23:30:00 <Sgeo> Maybe there is value in being able to discriminate based on types at runtime
23:30:11 <shachaf> typist
23:30:24 <Sgeo> Spring MVC does that. You make a method that takes arguments of the types you want, and it will be called with what's required
23:30:53 <elliott> why are you learning spring
23:30:58 <Sgeo> elliott, job
23:31:10 <elliott> this job sounds awful already
23:31:17 <shachaf> imo MCV > MVC
23:31:21 <Bike> fuck how can you be anticonsumerist and elitist with a job! did you even think this through
23:31:44 <elliott> every part of swing's api that i've seen looks exactly like the kind of tired factoryfactory jokes people make about java
23:31:53 <shachaf> BTW MCV = MOBILE CONSTRUCTION VEHICLE
23:32:07 <Bike> imo scvs
23:32:16 <shachaf> @slap Bike imo
23:32:16 * lambdabot would never hurt Bike imo!
23:32:30 <Sgeo> There might be some factoryfactoryness to Spring, but there seems to be a lot of sugar that hides much of it
23:32:35 <Bike> thanks lambdabot. you're a true friend
23:32:36 <Sgeo> Or, at least some of it. Sometimes.
23:33:25 <shachaf> @quote ways.free
23:33:25 <lambdabot> shachaf says: edwardk will try to get you addicted to monoids. The first one is always free.
23:34:03 <shachaf> the joke is free monoids
23:34:18 <shachaf> you look like a crowd that needs some puns shoved in your faces
23:34:24 <Bike> help
23:35:10 <olsner> oh no, not more funpuns
23:36:05 <Sgeo> 18 lines of Java for what would be 1 line of Haskell
23:36:41 <Bike> 18 lines of perl for what would be one line of sed
23:37:16 <Sgeo> Oh, also, IDEs help
23:37:29 <oerjan> Bike: THAT MAKES NO SENSE HTH
23:37:38 <Sgeo> Although my boss seems to want me to make a Spring MVC project from scratch, or at least ... somewhat
23:37:45 <kmc> 18 lines of Java guiltied to a zegnatronic rocket society
23:37:47 <shachaf> 18 lines of #esoteric for what would be one line of #haskell
23:38:06 <Bike> oerjan: sense or enterprise java beans sense?? LAUGHTRACK
23:38:07 <shachaf> (except in #haskell it would be more like 400 lines)
23:38:16 -!- carado has joined.
23:38:36 <shachaf> 18 lines of cocaine for what would be one line of
23:38:44 <shachaf> uhh, what other drugs come in lines
23:38:47 <shachaf> help me out here kmc
23:39:00 <kmc> stronger cocaine
23:39:07 <shachaf> thx
23:39:10 <Bike> crackier
23:39:14 <oerjan> polonium hth
23:39:35 <elliott> i think kmc should adopt the middle name "drugs"
23:39:36 <Bike> i can't be an adult yet, i've never even done a line of polonium off a hooker's back
23:39:40 <elliott> keegan drugs mc
23:39:53 <Bike> keegan "methylenedioxymethamphetamine" c
23:40:02 <elliott> good name
23:40:03 <Bike> Callister
23:40:11 <elliott> haha callister
23:40:17 <kmc> looks like a lizard
23:40:22 * kmc has never taken MDMA
23:40:32 <shachaf> why not
23:40:44 <Phantom_Hoover> kmc, are you of scottish extraction by any chance
23:40:51 <elliott> scottish extraction
23:40:56 <kmc> Phantom_Hoover: somewhere back
23:41:06 <Bike> elliott: so called because they're extracted in the scot mines
23:41:08 <Phantom_Hoover> elliott, see??
23:41:25 <kmc> shachaf: no specific reason, just never wanted to and had the opportunity at the same time
23:41:50 <shachaf> scottish extract: 100% pure essence of scot
23:42:29 <kmc> shachaf: lines of http://www.amazon.com/gp/product/B008C8SKUY/ref=as_li_ss_tl
23:42:53 <kmc> great review
23:43:01 -!- nooodl has quit (Ping timeout: 248 seconds).
23:43:10 <shachaf> lines of deckardcain
23:43:14 <Phantom_Hoover> snorting lines of hooker off a block of cocaine?
23:43:37 * oerjan sees a disturbing amount of latin-1 in the logs
23:44:05 <Sgeo> Ok, I think I missed something important today. There are a lot of people on Facebook with pink equality signs
23:44:06 <Bike> kmc: is there seriously a noticeable difference between 98% and 99% benzocaine
23:44:35 <Phantom_Hoover> depends what the rest of it is
23:44:42 <oerjan> Sgeo: math is gay, m'kay?
23:45:12 <shachaf> Sgeo: umm did you say "something important" and then "people on Facebook"
23:45:17 <kmc> what Phantom_Hoover said
23:45:31 <kmc> math declared "totally gay" by US supreme court
23:45:37 <oerjan> Phantom_Hoover: clearly polonium
23:46:41 <kmc> Sgeo: the Supreme Court heard oral arguments regarding striking down California's constitutional amendment banning same sex marriage in the state
23:46:44 <Phantom_Hoover> i think benzocaine is a topical local anaesthetic so the polonium probably wouldn't do much unless you ate it or sth
23:46:50 <kmc> they're not expected to issue a ruling for several more months
23:47:00 <kmc> but everyone is flipping out trying to interpret what the justices said today
23:47:16 <Sgeo> kmc, ah
23:47:19 <kmc> benzocaine is a topical local anaesthetic slash popular adulterant for cocaine
23:47:24 <oerjan> in two months, the us supreme court commits collective suicide under the pressure
23:47:38 <kmc> they are chemically similar and cocaine is also a local anaesthetic and this property is used by customers to test its purity
23:48:46 <elliott> does anyone use cocaine to operate on themselves
23:49:50 <kmc> dunno but it is still occasionally used in medicine
23:50:05 <kmc> that's why it's schedule 2, not schedule 1 like the really dangerous drugs such as heroin and marijuana
23:50:40 <Phantom_Hoover> is heroin actually useful in medicine
23:50:59 <shachaf> imo marijuana should be legal but smoking should be illegal
23:51:02 <Sgeo> What drugs could I simulate in norns?
23:51:03 <Bike> it's an opiate innit
23:51:06 <Phantom_Hoover> i mean i assume there's /some/ reason morphine's used as a painkiller and heroin's used as a drug
23:51:13 <shachaf> because smoking is disgusting
23:51:21 <kmc> Sgeo: and tomorrow (?) they're hearing challenges to DOMA, the federal law which prevents the federal govt from recognizing same sex marriage, and allows states to ignore same sex marriages performed by other states (which otherwise they would be required to recognize under the Full Faith & Credit clause of the Constitution)
23:51:25 <shachaf> i suppose it's already illegal in a lot of places?? and no one cares
23:51:29 <kmc> http://www.bonkersinstitute.org/showpics/bayer1901.gif
23:51:39 <Bike> bonkersinstitute
23:51:40 <Sgeo> kmc, awesome
23:51:41 <kmc> http://wings.buffalo.edu/aru/Bayer-heroin.jpg
23:51:52 <Phantom_Hoover> Sgeo, as if we know about norn neurology?
23:51:52 <Bike> but yeah opiates were used as painkillers forever, phantom
23:52:01 <Bike> didn't you ever hear about it being marketed to shut up babies
23:52:01 <kmc> they still are
23:52:02 <Phantom_Hoover> i am aware of this!
23:52:08 <shachaf> I,I villainess
23:52:11 <kmc> it's just we have better ones than heroin now
23:52:14 <kmc> both safer and more powerful
23:52:19 <kmc> (not the same ones)
23:52:28 <Sgeo> I could impede the processing of drives
23:52:50 <Sgeo> But that would make them fail to recognize, say, boredom too
23:52:52 <Phantom_Hoover> that sounds like a bad drug...
23:52:53 <shachaf> The Cheapest Specific for the Relief of Coughs
23:53:31 <Sgeo> Also it's pretty easy to lower drives, that's kind of boring
23:53:39 <Sgeo> Although a more permanent effect may be interesting?
23:53:45 <Bike> can you simulate rabies
23:54:07 <Sgeo> Depends what you would consider to be acceptably close to rabies
23:54:23 <Phantom_Hoover> Sgeo, surely the obvious thing to do would be to stimulate some award mechanism
23:54:46 <Fiora> kmc: DOMA affects national law stuff too
23:54:58 <Fiora> oh, nevermind, you mentioned that
23:55:01 <Fiora> missed that >_<
23:56:42 <kmc> in Canada you can get opiates over the counter
23:56:46 <Lymia> My school's library server requests a client certificate for some reason.
23:56:46 <lambdabot> Lymia: You have 4 new messages. '/msg lambdabot @messages' to read them.
23:56:53 <kmc> Tylenol 1 with 325 mg acetaminophen and 8 mg codeine
23:57:35 <kmc> the acetaminophen ensures that if you take enough to have fun you will also destroy your liver
23:57:40 <Fiora> wow, codeine OTC?
23:57:41 <Lymia> oerjan,
23:57:41 <Lymia> <lambdabot> oerjan said 1h 53m 22s ago: <Lymia> That never /loses/ a single joust <-- the other day i believe i proved that you cannot make a program that can never lose on a particular tape/polarity.
23:57:43 <Sgeo> Phantom_Hoover, it's easy to stimulate the reward system constantly, but I suspect the effects are boring
23:57:47 <Lymia> Qualify that with "given a known hill"
23:57:50 <Sgeo> I would assume the norn would get locked onto one activity
23:57:50 <kmc> drug policy is largely based on harm maximization, i.e. the opposite of harm reduction
23:58:11 <Sgeo> If you're going for random flailing aboutness, then a genetic disorder I made does have that effect in its middle stages
23:58:11 <Fiora> I think they include the acetominpohen here in most prescription versions too
23:58:28 <kmc> yeah I don't think harm maximization is the only reason, it's actually effective
23:58:29 -!- copumpkin has quit (Ping timeout: 248 seconds).
23:58:34 <Sgeo> The norn starts off normal, then starts trying to do weird things, before eventually sitting doing nothing whatsoever
23:58:49 <Sgeo> And refuse to eat except under mind control
23:58:51 <Fiora> the only time I've tried codeine it made me a bit nauseus and kind of sick
23:58:57 <Fiora> which is I guess not as bad as percoset
23:59:00 -!- copumpkin has joined.
23:59:01 <Fiora> which made me very nauseus and actually sick
23:59:06 <kmc> http://www.slate.com/articles/health_and_science/medical_examiner/2010/02/the_chemists_war.html
23:59:14 <Sgeo> It's constant stimulation of the punishment pathway
23:59:49 <Sgeo> So, they try normal things because of their instincts, then, they learn that those things are bad. They avoid those and start doing other things that are vaguely related but haven't been punished yet. Eventually everything is punished.
←2013-03-25 2013-03-26 2013-03-27→ ↑2013 ↑all