00:00:29 -!- yorick has quit (Remote host closed the connection).
00:00:58 -!- mhi^ has quit (Quit: Lost terminal).
00:12:20 <kmc> 12.2.5.4.21 The "after frameset" insertion mode
00:12:20 <kmc> 12.2.5.4.23 The "after after frameset" insertion mode
00:15:19 <Bike> i assume 12.2.5.4.22 is before after after frameset.
00:18:12 <boily> quintopia: you don't need a visa. I tried the online «permis de travail» form, and apparently «Selon vos réponses, il semble que vous ne puissiez pas immigrer au Canada à l'heure actuelle dans le cadre d'un programme fédéral.»
00:18:25 <boily> (based upon very guesstimaty answers to the form)
00:19:06 <boily> kmc: what kind of frameset are you looking at technical documentation of exactly?
00:25:00 <ion> http://heh.fi/tmp/hacker_evolution_steam_sale_20140516.png http://store.steampowered.com/sub/17602/
00:25:16 <boily> quintopia: “According to you answers, it seems that you can't immigrate to Canada today with respect to a federal programme.”
00:26:00 <quintopia> in others words.. it just can't happen
00:27:05 <boily> as I said, very, very random answers. the only one I am certain of is that you're America.
00:27:22 <boily> (dammit. can't type tonight.)
00:28:09 <kmc> boily: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#parsing-main-afterframeset
00:29:10 <boily> c'est aussie facile pour eux!
00:29:32 <boily> (yes. I hate myself. sorry for that very stupid pun.)
00:30:01 <quintopia> i know an aussie who got a work visa and a canadian job
00:30:11 <boily> kmc: uuuuuuurgh...
00:30:41 <boily> quintopia: maybe you need to multiclass? become an Australian/Canadian ranger?
00:31:44 <quintopia> no one with three races could have reasonable abilties
00:37:15 <boily> time to go Pratchett, and then blissfully fall into a deserved coma.
00:37:22 -!- boily has quit (Quit: PNEUMATIC CHICKEN).
00:37:24 -!- metasepia has quit (Remote host closed the connection).
00:53:33 <kmc> goddamn borrowchecker why can't you be a little smarter
00:56:39 <HackEgo> [wiki] [[Owhelgossip]] N http://esolangs.org/w/index.php?oldid=39530 * 69.118.178.143 * (+548) Created page with "== OwhelGossip == ::OwhelGossip also Owhel or maybe OwhelG. O OwhelGossip is best explained in a poem, ''The owl gossiped to the bat,'' ''The bat gossiped to bird1,'' ''Bird1..."
00:58:14 <HackEgo> [wiki] [[Owhelgossip]] http://esolangs.org/w/index.php?diff=39531&oldid=39530 * 69.118.178.143 * (-17) /* OwhelGossip */
00:58:56 <HackEgo> [wiki] [[Owhelgossip]] http://esolangs.org/w/index.php?diff=39532&oldid=39531 * 69.118.178.143 * (-1)
01:01:58 -!- Ghoul_ has quit.
01:03:01 <HackEgo> [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=39533&oldid=39487 * 69.118.178.143 * (+18) /* O */
01:04:05 -!- nooodl has quit (Quit: Ik ga weg).
01:08:56 -!- hk3380 has quit (Ping timeout: 255 seconds).
01:09:07 -!- tromp has joined.
01:18:11 -!- Bike has quit (Ping timeout: 252 seconds).
01:19:58 -!- Bike has joined.
01:55:42 -!- Daniel3920 has joined.
02:07:41 -!- hk3380 has joined.
02:08:07 -!- Daniel3920 has left.
02:17:55 -!- Sorella has quit (Quit: It is tiem!).
02:19:02 -!- Sorella has joined.
02:27:04 -!- tromp has quit (Remote host closed the connection).
02:27:18 -!- tromp has joined.
02:50:28 -!- oerjan has quit (Quit: leaving).
02:51:24 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
02:54:59 <Bike> how is exploit formed
02:59:58 -!- Bike has quit (Ping timeout: 245 seconds).
03:00:02 -!- Bike_ has joined.
03:07:37 <fowl> whaaat how have i never seen this before https://www.youtube.com/watch?v=oYSQKc6z_dY
03:07:47 -!- Bike_ has changed nick to Bike.
03:08:08 -!- Sorella has quit (Quit: It is tiem!).
03:19:41 -!- fowl has quit (Remote host closed the connection).
03:23:55 -!- fowl has joined.
03:26:43 -!- hk3380 has quit (Ping timeout: 258 seconds).
03:28:44 -!- tromp has quit (Remote host closed the connection).
03:29:18 -!- tromp has joined.
03:33:29 -!- tromp has quit (Ping timeout: 240 seconds).
03:49:50 -!- zzo38 has joined.
03:55:29 -!- shikhout has quit (Ping timeout: 240 seconds).
04:03:21 -!- ^v has quit (Read error: Connection reset by peer).
04:04:20 <Sgeo> What Magic the Gathering cards have use only in combinations or as a mind game to make opponent think you have such a combination?
04:04:32 <Sgeo> Ancient Watcher is such a card in Hearthstone: http://www.hearthpwn.com/cards/153-ancient-watcher
04:05:07 -!- ^v has joined.
04:06:16 <zzo38> I have partially made up some new kind of programming language by writing it on a paper. One example code can be: [z/a,b] cut ([x] z (left x) (right x)) ([x] split x ([y] init y b) ([y] init a y)) Let's see if you know this one.
04:06:23 <lambdabot> Melvar said 4d 17h 48m 50s ago: I also made it strip its nick off the front of a line independently of any other interpretation.
04:08:11 <zzo38> Can you figure out what this program does?
04:08:28 <Bike> it prints "hello world" to standard output
04:08:48 <Bike> I just ran it and that's what it does.
04:09:03 <zzo38> (In fact, it is not a complete program; that is what the [z/ at the front means.)
04:09:16 <kmc> Bike: what if it's undefined behavior
04:09:36 <Bike> zzo doesn't seem like the type to leave things underdefined
04:10:17 -!- shikhin has joined.
04:10:49 <Bike> or undefined at all, really.
04:11:11 <kmc> does Black-C have UB?
04:11:15 <Sgeo> https://www.youtube.com/watch?v=Dk0bgynFA1Y
04:11:57 <zzo38> kmc: Many of the same things as C are still UB (although not quite all)
04:12:28 <kmc> makes sense
04:12:32 <kmc> which ones changed?
04:12:44 <Bike> zero length arrays,
04:13:16 <zzo38> Sign conversion is one
04:21:54 <zzo38> I can give a hint relating to this programming language, which is: There aren't any first-class functions, although it does have first-class continuations.
04:22:14 <zzo38> Also, there is no syntax for continuations because it is implicit.
04:24:15 <fowl> guess what this program does <:@#:#$@<<@>$@@
04:24:32 <fowl> its a language i made up and there is no information available on it, but guess what it does
04:25:09 <zzo38> Is it copying input to output, or reversing the input, or something like that?
04:25:14 <zzo38> Do you have a hint?
04:25:24 <fowl> it does nothing because < is a comment
04:25:45 <zzo38> How does the comment finished?
04:26:01 <fowl> the language does nothing too
04:32:27 * pikhq writes an implementation:
04:36:00 -!- conehead has joined.
04:36:22 <zzo38> I can tell you what mine is meaning too. If you have two types called X and Y, and a program that would receive a continuation accepting a Y and returns a continuation accepting a X, then this program will receive X and result in Y.
04:38:05 <zzo38> pikhq: What programming language is the implementation?
04:39:26 <zzo38> O, I don't know programming with Lex so well
04:46:48 <zzo38> Why do many computer pinball games activate tilt if you bump the table too often, and some do it differently (such as not activating tilt at all (as in Pokemon Pinball), or if you hold down the bump button for too long (as in Microsoft Space Cadet Pinball))?
04:47:17 <zzo38> Is it possible to make number theory out of linear logic?
04:48:26 <fowl> zzo38, in actual pinball machines the tilt sensor is a weight that connects when you shake the machine
04:49:09 <zzo38> It is to avoid bumping it too hard, not too often.
04:49:36 <Bike> are these questions related
04:49:44 <zzo38> No they are two different questions
04:50:13 <fowl> zzo38, the diff is probably that in a computer pinball game you're playing with keys which are 1 or 0, opposed to moving a machine which you would have a lot of control over how much you shake it
04:50:43 <zzo38> (Well, if you use Wii remotes or whatever, then you could control how much)
04:50:47 <fowl> so.. you cant hit the bump key hard or soft
04:51:50 <zzo38> But if using the keyboard, even then activating tilt simply if you bump the table too often doesn't seems works; you could decrease the strength of it in the program, or do how Microsoft did and make it harder if you hold down the keys too long
04:52:28 <fowl> i dunno, i think hitting a key multiple times is similar to shaking the machine hard as opposed to softly
04:52:46 <fowl> microsofts way makes sense too
04:53:09 <zzo38> Maybe, although the implementation doesn't generally actually make it harder when pushing the key many times in succession
04:53:35 <fowl> no but you're still trying to map digital inputs to analog behavior
04:54:05 <fowl> so its not gonna be prefect
04:55:07 <Bike> microsoft pinball is otherwise very rigorous.
04:56:07 <zzo38> I still don't like the most common way (pushing the key many times in succession), mainly because I like to bump the table a lot
04:57:19 <zzo38> So when playing Microsoft's implementation, I push the keys as if it is on fire (an analogy I read in a book about mechanical typewriters)
05:06:54 <fizzie> Do pinball games on mobile devices use the accelerometer for tilt detection?
05:37:16 -!- ehayes has joined.
05:41:18 <Sgeo> I'm glad you figured out I'm currently obsessed with Heartstone, Google. But does it really make sense to advertise to me a game I'm already playing?
05:41:31 <Sgeo> I guess it can't really determine that I am playing, and not just vaguely interested
05:44:35 <fowl> <Bob Dole> smoke
05:52:08 <ehayes> open this with the tor browsing bundle https://uhduwxhlcqxbfq5k.onion
05:52:55 <ehayes> elliott: a copyrighted ebook currently not available on the public internet
05:53:13 <Bike> always a good thing to post unprompted
05:53:56 <elliott> hmm, tor2web.org seems to be even slower than actual Tor.
05:54:39 <ehayes> tor2web didn't resolve it (or any other .onion sites I've tried) for me
05:54:50 <ehayes> I don't think it's maintained anymore
05:55:05 <elliott> Bike: what is it actually?
05:56:19 <Bike> hell if i know
05:57:16 * elliott sighs. this is just a ploy to get me to install Tor.
05:57:46 <Bike> i mean i don't have tor, i'm just going off of "a copyrighted ebook".
05:57:51 <ehayes> make sure to disable javascript before you visit it
05:58:20 <elliott> the tor bundle ships with javascript enabled...?
05:58:29 <elliott> regardless, that's not the most reassuring thing you've said...
05:58:38 <Bike> wow i'm really excited to view this mystery site
05:58:39 <ehayes> yes, one of the stranger things they've done recently
05:59:11 <Bike> could you just tell us what it is rather than posting shady links with no context or prompting
06:00:36 <zzo38> Do you need a Tor browsing bundle, or can you add Tor into the TCP/IP driver and DNS driver?
06:00:43 <elliott> haha, nice, I get a self-signed certificate warning
06:00:58 -!- conehead has quit (Quit: Computer has gone to sleep).
06:01:27 <ehayes> zzo38: tor is a daemon running on top of TCP/IP
06:01:36 <elliott> fyi, if this isn't to do with esolangs I'm going to ban you for putting me through this fuss.
06:01:44 <Bike> so what is it, jesus christ
06:01:58 <elliott> Fizz - Nothing is as it seems
06:01:59 <elliott> A novel centered around the history of physics. It tells the story of a young woman from the future named Fizz, who time travels to meet physicists such as Aristotle, Galileo, Newton and Einstein, and discuss their work.
06:02:03 <Bike> i bet it's dog porn, that oughta be a ban
06:02:05 <zzo38> ehayes: Then why do you need a Tor browsing bundle too?
06:02:10 <Bike> yeah that sounds like dog porn
06:02:23 <ehayes> zzo38: tor bundled a browser to aid users get online more easily
06:02:36 <elliott> you'd better have a really good explanation for this, ehayes.
06:02:40 <ehayes> zzo38: it isn't mandatory, but it is convenient
06:03:59 <elliott> like, how many channels have you linked this in? do you realise it's against freenode guidelines? admittedly, I am only tempted to whine to #freenode because it was such a disappointment.
06:04:48 <ehayes> elliott: just #esoteric and #tor
06:04:56 <ehayes> because it is tor related, and esoteric
06:04:57 <zzo38> Yes, it is helpful if you are trying to access webpages on Tor even though you do not already have a web browser program, I suppose, but howelse?
06:05:20 <zzo38> I prefer a printed book anyways
06:05:23 <shachaf> The topic of this channel is esoteric programming languages.
06:05:25 <elliott> what on earth is esoteric about a warez site with exactly one random crappy scifi ebook
06:05:51 <Bike> it's tor related in much the same way it is internet related, so go bother ICANN
06:05:59 <ehayes> elliott: the fact that there is only one makes it highly suspect
06:06:16 <Bike> yes. we are highly suspecting you.
06:06:25 <Bike> don't do this to people.
06:06:49 <elliott> it's more entertaining than 99% of this channel
06:06:55 <elliott> did you know it's called the Ducknet
06:07:37 <zzo38> I know you can make up a intiutionistic logic and a classical logic using linear logic, but what other logic can you make out of a linear logic? Can it include a numerical logic?
06:07:38 -!- shikhin has quit (Ping timeout: 240 seconds).
06:07:45 <mroman_> I think @text implementation is actually broken?
06:07:58 <mroman_> there are square brackets around @
06:08:08 <fowl> ehayes, i have a copy of a better boot - "creation: life and how to make it" by steve grand (creatures franchise)
06:08:13 <fowl> ehayes, want it?
06:08:25 <elliott> you should upload it to Ducknet Hosting
06:08:28 <ehayes> fowl: no, but I will investigate the server hosting it
06:08:33 <elliott> Looking for a reliable, secure, and discreet host for your stolen content? Well look no further. Here be Ducknet Hosting, the followup to Not Ducknet Hosting
06:09:05 <fowl> ehayes, it would be my dropbox, i searched for this book for weeks then ended up meeting someone who scanned their copy
06:09:06 <Bike> not seeing the duck connection (ducknection)
06:09:10 <elliott> so is this like some incredibly cryptic way for you to say you suspect this site of having more to it than is obvious, without actually saying that for whatever reason, or giving anything more than that
06:09:30 <impomatic> Open this link http://goo.gl/8Yma7Q
06:09:34 <elliott> do I have to download the epub to view the mysteries.
06:09:43 <ehayes> fowl: no, and no offense intended in that
06:10:05 <ehayes> impomatic: what is it?
06:10:14 <Bike> what indeed could it be
06:10:19 <zzo38> shachaf: I mean such numerical logics as Typographical Number Theory and so on
06:11:17 <Bike> fowl: also, if you already have a copy up i'll take one
06:13:03 <impomatic> I have a paper copy of the Steve Grand book :-) Also a few others. The best overview is probably in Artificial Life by Steven Levy.
06:13:26 <ehayes> I'm looking at your link "In May 1984 A K Dewdney introduced Core War, a game played between two or more computer programs in the memory of a virtual computer. The aim of the game is to disable all opponents and survive the longest. A variety of strategies have evolved for Core War, each with their own strengths and weaknesses."
06:17:13 <fowl> Bike, https://www.dropbox.com/s/r24qbb0b6601dri/Creation%20Life%20and%20How%20to%20Make%20it.pdf
06:17:19 <impomatic> ehayes: Oh, someone clicked! Lucky for you I didn't link something like this http://goo.gl/6SDxwv
06:17:37 <ehayes> and what is that, impomatic?
06:17:40 <fowl> i will click on anything
06:17:47 <fowl> i grew up on this internet shit, bring it on
06:17:48 <Bike> much obliged. this will go well with my three hundred dollar orgo textbook
06:17:50 <ehayes> fowl: that is my weakness, yes
06:18:09 <fowl> Bike, whats orgo
06:18:19 <Bike> organic chemistry.
06:18:19 -!- mtve has quit (Quit: Terminated with extreme prejudice - dircproxy 1.2.0).
06:18:29 -!- aloril has quit (Ping timeout: 252 seconds).
06:20:13 <Bike> life, organic, it's a joke, see.
06:20:39 <Bike> damn right, fucker.
06:22:57 -!- FreeFull has quit.
06:24:13 -!- shikhin has joined.
06:28:35 -!- Bike has quit (Ping timeout: 276 seconds).
06:29:09 <zzo38> Programming language I partially made up is based on a LK sequent calculus; the commands correspond to the rules it has, each rule then has an effect defined for its meaning. The impliciation rules are omitted, and the negation rules and structural rules are made implicit.
06:29:28 <zzo38> Possibly, therefore allow you to understand this program I wrote
06:32:17 -!- aloril has joined.
06:35:09 -!- ^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
06:36:56 -!- mhi^ has joined.
06:53:53 <Sgeo> "I'm going to go through and "friend" everybody who isn't on their own friends list"
06:54:10 <Sgeo> [quip about failing Introduction to Set Theory redacted]
06:54:33 <Sgeo> But what she described should work... she's not automatically unfriending people who later become on their own friends list
06:54:47 <Sgeo> So she's not on her own friend list, she friends herself, tada
07:00:48 -!- Frooxius has quit (Ping timeout: 245 seconds).
07:04:44 -!- Frooxius has joined.
07:04:56 -!- Frooxius has quit (Read error: Connection reset by peer).
07:10:26 -!- KingOfKarlsruhe has joined.
07:11:33 -!- Frooxius has joined.
07:26:15 -!- slereah has joined.
07:29:32 -!- stuntaneous has quit.
07:46:26 -!- ehayes has quit (Ping timeout: 272 seconds).
08:15:22 -!- MindlessDrone has joined.
08:23:48 -!- Patashu has joined.
08:31:19 <Taneb> Is it possible to express SK combinator calculus as a cellular automaton in a weird dimension?
08:31:38 <slereah> Well both are TC so I guess?
08:31:55 -!- KingOfKarlsruhe has quit (Quit: Leaving.).
08:31:59 <Taneb> I mean phrasing SK as a CA
08:32:24 -!- Patashu has quit (Disconnected by services).
08:32:24 -!- Patashu_ has joined.
08:32:31 <slereah> Because SK combinators can grow in size
08:32:47 <slereah> You can fill the tape to the left with ` and to the right with i, it will be fine
08:32:55 <slereah> But how do you grow the middle part
08:33:39 <slereah> I guess maybe you could use intermediary combinators?
08:33:46 <Taneb> In a really weird dimension, I was thinking a dimension shaped like a binary tree
08:34:04 <slereah> Well you can express combinators as trees, yes
08:34:05 <Taneb> Although by that point it's not really a cellular automaton
08:35:25 <Taneb> So I guess my question is meaningless?
08:37:22 <slereah> http://cp4space.files.wordpress.com/2013/01/ski-calculus.png
08:37:59 <Taneb> That's basically what I was thinking of
09:03:18 -!- KingOfKarlsruhe has joined.
09:03:18 -!- KingOfKarlsruhe has quit (Client Quit).
09:05:49 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `S``CB`WI``CB`WI: not found
09:06:14 <Taneb> Using my great knowledge of combinators, that's the shortest fixed point operator I can think of
09:06:45 <slereah> What about the Turing combinator
09:07:44 <Taneb> C and B and W aren't in themselves fixed point operators.
09:08:21 <slereah> Then why not use the constituant combinators of the Turing combinator
09:08:25 <slereah> (λx. λy. (y (x x y))) (λx. λy. (y (x x y)))
09:08:37 <slereah> Just use (λx. λy. (y (x x y)))
09:08:43 <slereah> It is not fixed point by itself!
09:09:49 <Taneb> That is an option, yes
09:10:09 <Taneb> (and I'm avoiding combinators with lambdas on the RHS
09:11:14 <slereah> That's why you should use the best language
09:11:22 <slereah> http://esolangs.org/wiki/Lazy_Bird
09:12:33 <Taneb> That has combinators with lambdas on the RHS!
09:21:34 <fowl> lambda calculus
09:21:51 <fowl> is something that nerds made up, similar to quantum mechanics, to make themselves look smarter than normies
09:37:44 -!- mhi^ has quit (Quit: Lost terminal).
09:54:17 -!- ais523 has joined.
10:00:42 <Jafet> They aren't even subtle about it, some of them fabricate facts in "lie groups"
10:03:12 <fizzie> I just pivoted a 1920x1200 monitor, and it looks ridiculously tall, compared to what I've gotten used to.
10:03:38 <fizzie> (We moved to a different office, and while packing things up, noticed the monitor can pivot.)
10:04:10 <ais523> how many 80-character-wide text-files can be fit side by side on that?
10:04:16 <fizzie> 4:3 turned into 3:4 didn't feel this silly at all, but this 16:10 to 10:16 just feels weird.
10:04:33 <Taneb> http://i.imgur.com/rXpH5xd.jpg typed lambda calculus
10:04:50 <slereah> Taneb : Welcome to the 1950's
10:04:50 <fizzie> 170x143 (170 columns, 143 rows) seems to be the size of a terminal window.
10:06:59 -!- ais523 has quit.
10:07:03 -!- callforjudgement has joined.
10:10:30 * int-e wonders whether there would be a market for sqrt(2):1 screens
10:11:09 <int-e> A<any number>, yes
10:11:41 <fizzie> That's... somewhere between 4:3 and 3:2, I guess.
10:11:46 <int-e> actually no, I'm happy with having them scaled a bit, as long as the aspect ratio is sane.
10:12:25 <int-e> but A4 would be a small screen by today's standards
10:12:39 <int-e> perhaps ok for a tablet
10:12:40 <slereah> int-e : How do you get 0.41 pixels
10:12:56 -!- boily has joined.
10:13:21 <int-e> slereah: you can make the pixels slightly non-square. it worked for CGA ;-)
10:14:20 <int-e> but obviously? what I had in mind was a resolution like 2000x1414
10:15:15 <callforjudgement> my laptop is basically what you get if you wanted to make a netbook, except it had to be powerful enough to run Windows
10:15:30 -!- callforjudgement has quit.
10:15:36 -!- scarf has joined.
10:15:42 <scarf> [11:14] <callforjudgement> int-e: my laptop screen is smaller than A4
10:15:44 <scarf> [11:14] <callforjudgement> or, well
10:15:45 <scarf> [11:14] <callforjudgement> I call it a netbook sometimes
10:15:47 <scarf> [11:15] <callforjudgement> my laptop is basically what you get if you wanted to make a netbook, except it had to be powerful enough to run Windows
10:16:03 <fizzie> We saw that, actually.
10:16:55 <fizzie> Also, I think our (the research group) new "demo"/borrow-for-miscellaneous-purposes laptop is something reasonably small.
10:18:44 <fizzie> 13.3" diagonal, apparently.
10:18:52 <fizzie> A4 is something like 14.3.
10:19:22 <fizzie> > sqrt (210*210 + 297*297) / 25.4
10:19:26 <HackEgo> [wiki] [[Talk:Owhelgossip]] N http://esolangs.org/w/index.php?oldid=39534 * GreyKnight * (+377) Created page with "== help == I read the explanatory poem but still can't understand the program. Both the poem and the program seem to have the same initial and final term, so I surmise that w..."
10:19:34 <Taneb> Turns out I had the ribbon in my typewriter wrong all this time
10:20:02 <fizzie> (It's this Lenovo Yoga 2 Pro thing.)
10:21:28 <fizzie> 3200x1800 screen, which for some reason or another is called "QHD+". The display resolution abbreviations are ridiculous.
10:23:52 <fizzie> Wikipedia says the "proper" name for 3200x1800 is "WQXGA+" instead.
10:25:51 <lambdabot> (1.4142857142857144,1.4142135623730951)
10:27:15 * boily exclaims “WHUXGA!” while doing wild kung fu moves
10:27:46 <Melvar> I would totally want a A4-size tablet, I think. For putting on my music stand so I don’t have to carry around binders.
10:28:45 <fungot> \o| c.c \o/ ಠ_ಠ \m/ \m/ \o_ c.c _o/ \m/ \m/ ಠ_ಠ \o/ c.c |o/
10:28:45 <myndzi> | c.c.c | ¯|¯⌠ `\o/´ | c.c.c | `\o/´ ¯|¯⌠ | c.c.c |
10:28:46 <myndzi> /< c.c /'\ /< | | /´\ c.c /'\ | >\|/'\ c.c /|
10:29:08 -!- scarf has quit.
10:29:14 -!- ais523 has joined.
10:30:41 <boily> Melvar: that thing is A4 → http://en.wikipedia.org/wiki/Cambridge_Z88
10:32:08 <int-e> well there's some hope: http://www.bbc.com/news/technology-26818112
10:33:52 <fizzie> HP has that 21.5" tablet.
10:34:17 <int-e> meh, why have people started to report crap like "it has 4GB of internal storage" without saying how much of that is RAM...
10:34:23 <fizzie> http://www8.hp.com/us/en/ads/slate-21/overview.html
10:34:50 <fizzie> I guess they call it "All-in-One Touchscreen Desktop" now, but I think I saw it referred to as a tablet somewhere.
10:35:51 <fizzie> That's the size of an A3, I guess.
10:36:11 <Melvar> int-e: That thing looks excellent for my purposes, but expensive.
10:36:52 <fizzie> I got the impression that lawyers and such were the target audience for the Sony thing.
10:38:54 <int-e> Melvar: The vague hope that I have now is that they will prove that there is a market for such devices and then attract competitors to the niche.
10:39:37 <ais523> I like the phrase "touchscreen desktop"
10:40:34 <fizzie> It sounds like what Microsoft Surface was before they reused the word for tablets.
10:40:52 <fizzie> (And renamed it PixelSense.)
10:41:00 <Melvar> int-e: Let’s hope together.
10:43:55 <int-e> (unfortunately, besides the common movie aspect ratio, another factor is that a 10" sqrt(2):1 display has the same surface area as a 10.5" 16:9 display.)
10:47:02 <int-e> Oh I haven't done the math for 16/9 to 16/10 before, that's a 2.5% gain: 10" vs. 10.256".
10:48:05 <int-e> Where the "gain" is a gain for marketing the product.
10:49:59 <int-e> > let d w = sqrt(1 + w^2) / sqrt(w) in (d (16/9) / d (16/10))
10:51:44 <int-e> Oh, sqrt(1/w + w) is a prettier formula for 'd'.
10:52:52 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20140516-view.jpg <- new view
10:53:07 <fizzie> Perhaps I can take an even duller time-lapse video now that there won't even be cars going by.
10:55:40 <int-e> you can always hope for an alien exploration ship landing
11:01:34 -!- boily has quit (Quit: DISFLAGRATED CHICKEN).
11:03:02 -!- hk3380 has joined.
11:03:41 <int-e> tromp_: btw I committed the goodstein thing (optimized a bit) to the AIT repo
11:08:58 -!- ais523 has quit (Remote host closed the connection).
11:09:00 <int-e> Ah, fun. "The "Academy ratio" of 1.375:1 was used for all cinema films in the sound era until 1953 (with the release of George Stevens's Shane in 1.66:1). During that time, television, which had a similar aspect ratio of 1.33:1, became a perceived threat to movie studios."
11:09:10 -!- ais523 has joined.
11:11:40 -!- ais523 has quit (Client Quit).
11:15:56 <quintopia> what's that called again? silver ratio? it's the one where cutting it in half gives two parts similar to the original, right?
11:15:58 <int-e> https://en.wikipedia.org/wiki/Aspect_ratio_%28image%29 is quite informative
11:17:34 <int-e> apparently the "silver ratio" is sqrt(2)+1.
11:18:46 <quintopia> but think about what happens if you cut a unit square out
11:30:48 -!- yorick has joined.
12:00:09 -!- oerjan has joined.
12:03:53 -!- ais523_ has joined.
12:03:56 -!- ais523_ has quit (Changing host).
12:03:56 -!- ais523_ has joined.
12:03:56 -!- ais523_ has quit (Changing host).
12:03:56 -!- ais523_ has joined.
12:05:06 -!- Sgeo has quit (Read error: Connection reset by peer).
12:16:39 -!- tromp has joined.
12:17:46 -!- tromp has quit (Remote host closed the connection).
12:18:18 -!- tromp has joined.
12:21:13 <mroman_> 1 Mio. people in 12x real-time
12:22:37 -!- tromp has quit (Ping timeout: 258 seconds).
12:23:45 -!- shikhout has joined.
12:26:22 <mroman_> my crowd simulation bachelor thesis
12:27:05 -!- shikhin has quit (Ping timeout: 255 seconds).
12:28:13 <fizzie> Somehow that reminded me of http://research.ics.aalto.fi/cog/pracsim/
12:28:45 <fizzie> A friend was tangentially involved in that, but I never managed to really grasp what it was all about.
12:29:08 <fizzie> I don't have a Java plugin on this computer, but if it's what I think, it should be some... shapes...
12:35:59 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
12:36:09 <oerjan> fungot: what do you know about... shapes...
12:36:10 <fungot> oerjan: whom it is not well to fnord of future great race minds by the moribund. modern and personal topics he waved aside quite summarily, whilst regarding antique affairs he soon shewed the plainest fnord. what this meant, no one can behold them as they passed ammi's they told him that this part of the colossal peaks that loomed up at a fnord on the
12:37:40 <fungot> fizzie: fnord in uncanny fnord and although he kept me awake, i was expected to go over his papers with some thoroughness; and for that purpose moved his entire set of files and boxes to my quarters in boston.
12:38:10 <fizzie> The entirety of that after the comma is probably a direct quote.
12:40:21 <oerjan> from the ancient unspeakable time of physical files
12:41:32 -!- Tritonio has joined.
12:44:28 <zzo38> The part after the comma seem like a proper sentence, so possibly it is.
12:47:21 <fizzie> fungot: You're such a FILE MANAGER.
12:47:21 <fungot> fizzie: " they were all very old. i do not know. two had been killed; perhaps that had finished it. but i may say, his calls on me) was the old-time indecisive one its irresponsible fnord even more marked than in the fnord stone walls press closer and closer, i shall not go there again, and he was likewise uncertain just when or how the guardian night-gaunts would suddenly pounce upon him.
12:47:50 <oerjan> zzo38: iirc linear logic is TC to check theorems, so in some sense you can embed any computation you want in it...
12:47:52 <fizzie> Those night-gaunts, they're always pouncing.
12:50:06 <zzo38> oerjan: Can you explain how?
12:51:02 <oerjan> no, i've never read the proof, but there is a claim that it's undecidable (which usually means TC) is at https://en.wikipedia.org/wiki/Linear_logic#Decidability.2Fcomplexity_of_entailment
12:52:01 <oerjan> i recall reading the proof that constructive logic is PSPACE-complete, though
12:52:44 <ais523_> intersection types are undecidable, in that you can find an intersection type for a term if and only if it always terminates
12:52:57 <ais523_> which is something like the easiest undecidability proof ever
12:53:16 <ais523_> most cut-down linear logics are decidable, though
12:53:27 <ais523_> actually my PhD thesis is about that, sort of
12:53:37 <ais523_> just last week I did a decidability proof for SCC
13:00:48 -!- Patashu_ has quit (Ping timeout: 245 seconds).
13:03:07 <ais523_> it's a type system with bounded contraction
13:03:23 <ais523_> so basically, the LHS of each arrow, and the free variables, have a "number of uses" annotation
13:03:35 <ais523_> a type would be something like (int^4->int)
13:03:44 <ais523_> and in order to do contraction, you have to add the numbers
13:03:59 <ais523_> "syntactic control of concurrency" if you want a search term
13:04:17 <ais523_> oh gah, UNIX time is at 1400 million already?
13:04:30 <ais523_> I remember when it was at 1234567890, and I was scared at what a big number it was already
13:05:15 <oerjan> so it's like a bounded version of ! in linear logic? which you can desugar into & and x i think.
13:07:20 <ais523_> oerjan: yeah, pretty much exactly that
13:07:30 <ais523_> in fact, that's "bounded linear logic" you're describing
13:07:41 <ais523_> SCC is similar to BLL, or rather, it's more a weird subset of it
13:07:51 <ais523_> because the products allow unlimited contraction of both sides, and nothing else does
13:08:15 <ais523_> I was chatting to a bunch of linear logicians about it, and they all said pretty much the same thing, "but the function arrow isn't the adjoint of the product"
13:08:30 <ais523_> and it turns out that that property makes it awkward to use in practice
13:08:46 <ais523_> anyway, this was the state of the art in the field before I entered it, now my thesis is talking about how it has problems and you can probably do better
13:09:01 <ais523_> and showing that it's decidable
13:09:20 -!- nucular has joined.
13:09:20 -!- nucular has quit (Changing host).
13:09:20 -!- nucular has joined.
13:09:20 -!- hk3380 has quit (Ping timeout: 252 seconds).
13:15:19 <oerjan> i found that constructive logic proof intriguing because afair it essentially amounts to using the kripke world semantic for -> to compute things in parallel in subworlds.
13:15:39 <oerjan> i'm not sure if that's what it said or what i realized it implied.
13:16:09 <oerjan> (constructive ~ intuitionistic)
13:17:54 <fizzie> I think we had a gigasecond celebration on the channel?
13:18:35 <fizzie> Or at least on some channel.
13:18:44 <fizzie> I don't remember if it was at 10^9 or 2^30.
13:19:15 <fizzie> 10^9 seems to have been pre-#esoteric.
13:19:15 <oerjan> `run date --date='@1000000000'
13:19:16 <HackEgo> Sun Sep 9 01:46:40 UTC 2001
13:19:18 <zzo38> What is a kripke world semantic for -> ?
13:20:42 <oerjan> zzo38: well first you have a partially ordered set of worlds, each of which assigns true or false to each propositional value in your term, and such that the value can only change from false to true if you go to a "later" world.
13:21:22 <fizzie> `run date --date=@$(dc -e '2 30^p')
13:21:23 <HackEgo> Sat Jan 10 13:37:04 UTC 2004
13:21:38 <oerjan> then you define a -> b to be false in a world if there is any later world (including the world itself) in which a is true and b is false; and a -> b to be true otherwise.
13:22:01 <fizzie> http://codu.org/logs/log/_esoteric/2004-01-10 well
13:23:11 <oerjan> and then you can show a term is a tautology iff it's assigned true in all kripke semantic worlds.
13:24:24 <oerjan> (there are similar definitions for other connectives; and/or work like the usual truth table in each world, while not a = a -> False)
13:24:51 <oerjan> but you only need -> for the full PSPACE-completeness
13:25:22 <oerjan> *each propositional variable
13:26:01 <oerjan> this semantics is quite convenient if you want to show a term is _not_ a tautology.
13:27:17 <oerjan> like to show a or (not a) isn't a tautology, you just need two worls; the first one assigns False to a and the second assigns True, which makes both a and not a False in the first world.
13:28:49 <Jafet> a and not a, and not a or not a?
13:29:21 <ais523_> Jafet: this is intuionistic logic, where "a or not a" is not always true
13:29:50 <ais523_> the "main" tautology is "f(not not a) is equivalent to not not f(a)"
13:30:27 <int-e> not not not a iff not a
13:30:50 <int-e> @djinn (((a -> r) -> r) -> r) -> a -> r
13:31:24 <int-e> @djinn (a -> r) -> ((a -> r) -> r) -> r
13:31:59 <oerjan> one interesting fact here is that not a is true in a world if it's true in all "final" worlds (assuming a finite set of worlds, which is enough for a finite set of variables), and in final worlds everything behaves classically, from which you get immediately the theorem that not a is an intuitionistic tautology iff it is a classical one.
13:33:54 <oerjan> fizzie: i'm sure we've had date celebrations but both of those were before my time on the channel.
13:34:32 <lambdabot> Generates Haskell code from a type.
13:34:32 <lambdabot> http://darcs.augustsson.net/Darcs/Djinn
13:35:10 * ais523_ notes that not always being true is not the same thing as sometimes being false
13:35:12 <int-e> simply typed lambda terms === proofs for intuitionistic propositional logic
13:36:26 <Jafet> @djinn (((a -> Void) -> Void) -> Void) -> a -> Void
13:39:45 <int-e> @djinn Not (Not (a -> Not a -> b))
13:39:45 <lambdabot> f a = void (a (\ _ b -> void (a (\ c -> void (b c)))))
13:39:52 <oerjan> istr @djinn tries to use a linear proof if there is one.
13:40:30 <int-e> @djinn Not (a -> Not a)
13:40:55 <int-e> @djinn Not (Not (Not (a -> Not a)))
13:41:07 <int-e> oh. tautology. stupid me.
13:41:15 <Taneb> int-e, wouldn't Not (a -> Not a) be the same as proving that the system is consistent?
13:41:46 <int-e> Taneb: it's not a tautology; a = False makes it false.
13:42:16 <Taneb> Not (a <-> Not a) would be proving the system is consistent
13:42:32 <Taneb> @djinn Not (a -> Not a, Not a -> a)
13:42:32 <lambdabot> f (a, b) = void (a (b (\ c -> a c c)) (b (\ d -> a d d)))
13:43:01 -!- Sorella has joined.
13:43:02 <zzo38> But if it is inconsistent then you can prove everything including that it is consistent, so it doesn't help
13:43:32 <Taneb> zzo38, that is a very good point
13:45:56 -!- atehwa has quit (*.net *.split).
13:45:56 -!- mroman_ has quit (*.net *.split).
13:45:56 -!- olsner has quit (*.net *.split).
13:46:04 -!- atehwa has joined.
13:46:08 -!- mroman has joined.
13:46:14 -!- olsner has joined.
13:48:21 <Melvar> @djinn Not (Not (Either a (Not a)))
13:48:21 <lambdabot> f a = void (a (Right (\ b -> a (Left b))))
13:50:20 <int-e> djinn assumes data Void {- no constructors -} and void :: Void -> a
13:50:56 <int-e> and Not a = a -> Void
13:51:30 -!- Tritonio1 has joined.
13:52:18 <zzo38> You could add a ContNot type as well, I suppose, if you want a classical "not" operator too
13:54:34 -!- Tritonio has quit (Ping timeout: 240 seconds).
13:55:50 <Melvar> int-e: That doesn’t seem to be consistent with the output …
13:57:25 <Melvar> The searched function would be onto Void. Why then would it use void to eliminate Void?
13:59:21 <Melvar> ( \a => the (Not (Not (Either a (Not a)))) $ \f => f (Right (\x => f (Left x)))
13:59:39 <Melvar> ( \a : Type => the (Not (Not (Either a (Not a)))) $ \f => f (Right (\x => f (Left x)))
14:00:38 <Melvar> ( \a : Type => the (Not (Not (Either a (Not a)))) (\f => f (Right (\x => f (Left x))))
14:00:42 <int-e> Melvar: so the outermost "void" is superfluous, a (b (\ c -> a c c)) (b (\ d -> a d d)) has type Void all by itself
14:00:56 <int-e> Melvar: but void :: Void -> Void is a permitted instantiation of void.
14:01:05 <int-e> so it's not wrong.
14:01:52 <Melvar> I’d’ve thought djinn wouldn’t put it there if superfluous, though.
14:02:47 <int-e> I trust djinn to be complete, but not to produce minimal proofs.
14:03:38 <int-e> for example, (\c -> a c c) (b (\d -> a d d)) would be a shorter proof.
14:04:04 <int-e> (starting with f (a,b) = ...)
14:04:25 <Melvar> What you’re getting is a function, not a pair …
14:05:16 <int-e> even better, f (a,b) = (\c -> c (b c)) (\d -> a d d)
14:05:26 <int-e> but I would not expect djinn to find it.
14:05:33 <Melvar> Oh, you’re referring to Taneb’s thing, not mine.
14:06:27 <int-e> right. I missed yours ...
14:10:08 <int-e> But again it uses void :: Void -> Void which is superfluous and harmless
14:10:42 -!- glogbackup has joined.
14:10:45 <Melvar> ( :t FalseElim {a=_|_}
14:12:50 <mroman> fizzie: our industry partner didn't want to tell us what they expect from us.
14:15:09 -!- edwardk has joined.
14:15:09 -!- glogbackup has quit (Read error: Connection reset by peer).
14:21:58 <mroman> I don't realy have much for comparision
14:22:11 <mroman> most crowd simulations also offer 3D rendering
14:22:20 <mroman> and these call 25k a "huge amount"
14:26:42 <idris-bot> Prelude.Uninhabited.absurd : Uninhabited t => t -> a
14:26:54 <edwardk> mroman: http://www.indiegamejam.com/igj0/ ;)
14:27:02 <ais523_> ah right, FalseElim is the implementation of absurd for bottom?
14:27:59 <edwardk> if someone sent me an issue for the void package to add an Uninhabited class I could be talked into it very easily
14:29:01 <ais523_> what's the benefit of having more than one uninhabited type?
14:29:10 <ais523_> also, how do you type shift-home on a 96-key AZERTY keyboard?
14:29:20 <ais523_> I figured out home by itself, it's numpad 7 with numlock turned off
14:29:25 <ais523_> but shifting it just produces a 7
14:30:03 <idris-bot> A canonical proof that some type is empty
14:30:16 <idris-bot> uninhabited : Uninhabited t => t -> _|_
14:30:16 <idris-bot> If I have a t, I've had a contradiction
14:30:47 <Melvar> Then absurd is just (FalseElim . uninhabited).
14:31:24 <Melvar> Empty types include (Fin 0) and (Z = S Z).
14:31:38 <ais523_> I was thinking, more in terms of Haskell
14:31:54 <Jafet> ais523: to unify all the incompatible empty type packages, obviously
14:32:37 <Melvar> And (Elem x []) for arbitrary x, for example.
14:33:09 <ais523_> yeah, it's obvious why it's useful in dependent typing
14:35:36 <Jafet> Actually, I'm not sure how an Uninhabited class would work
14:35:53 <Jafet> forall a u. Uninhabited u => u -> a
14:36:03 <Melvar> It has the method uninhabited as above.
14:38:14 <Jafet> Yeah it's obvious for dependent typing
14:39:31 <Melvar> It’s obvious with a canonical uninhabited type, which is what _|_ is.
14:53:09 <edwardk> ais523_: data V1 a; newtype Void = Void Void; Sum V1 V1; Product V1 f, etc. are all uninhabited
14:53:55 <edwardk> but expressing that properly is tricky
14:54:11 <edwardk> you want to let a product be uninhabited when either side of it is
14:54:57 <edwardk> you should be able to concoct an UninhabitedOr and UninhabitedAnd that combines them correctly
14:55:12 <edwardk> and/or define version with GHC.Generics
14:55:43 <ais523_> gqh, ny keyboqrd hqs !just! spontqneously chqnged to QWERTY
14:55:52 <ais523_> qfter refusing to be QWERTY for qges
14:56:23 <edwardk> With a lazy type nat you could check for -- type Uninhabited a = MaxInhabitants 0 a
14:57:09 <edwardk> but we only need inhabited or not decidably, with the right boolean functions
14:57:17 <Melvar> I have a Finite typeclass.
14:57:40 <ais523_> phew, just managed to change it back, somehow
14:58:03 <ais523_> (btw, "QWERTY" above = "AZERTY" encoded via a y/AZERTY/QWERTY/ transformation which also contains other letters)
15:00:21 -!- drdanmaku has joined.
15:02:39 <edwardk> type family Inhabitable t :: Bool; type instance Inhabitable Void = 'False; type instance Inhabitable [a] = 'True; type instance Inhabitable (Compose f g a) = Inhabitable (f (g a)); ...
15:03:10 <edwardk> btter as a class associated type though so you can more easily get the proof of absurdity wthout boolean blindness
15:05:14 -!- conehead has joined.
15:06:40 -!- AnotherTest has joined.
15:16:01 * oerjan realizes edwardk's last line would probably fit right into a postmodern treatise.
15:18:00 -!- mhi^ has joined.
15:23:12 <HackEgo> [wiki] [[Snack]] http://esolangs.org/w/index.php?diff=39535&oldid=31569 * Zzo38 * (+80) How to be afraid of you
15:33:27 <Jafet> Is there a postmodern programming language
15:34:43 <oerjan> no, programming is a tool of the patriarchal bourgeoisie.
15:38:17 -!- Bike has joined.
15:42:12 -!- Tritonio1 has quit (Ping timeout: 265 seconds).
15:42:43 -!- idris-bot has quit (Ping timeout: 258 seconds).
15:45:38 -!- Melvar has quit (Ping timeout: 276 seconds).
15:53:00 -!- oerjan has quit (Quit: leaving).
15:54:26 <zzo38> Then make up the postmodern programming language.
15:55:17 -!- slereah has quit (Quit: Leaving).
15:58:23 -!- Melvar has joined.
15:59:29 -!- ^v has joined.
16:01:53 -!- idris-bot has joined.
16:10:20 -!- nooodl has joined.
16:13:53 -!- Bike has quit (Ping timeout: 240 seconds).
16:16:59 -!- yorick has quit (Remote host closed the connection).
16:19:59 -!- ^v has quit (Read error: Connection reset by peer).
16:20:21 -!- ^v has joined.
16:21:23 -!- FreeFull has joined.
16:39:55 <HackEgo> [wiki] [[Truth-machine]] http://esolangs.org/w/index.php?diff=39536&oldid=39137 * GermanyBoy * (+58) /* Forobj */
16:41:09 <ion> http://youtu.be/frOtNb8YD1w?t=3m26s
16:47:09 -!- MindlessDrone has quit (Read error: Connection reset by peer).
16:48:29 -!- MindlessDrone has joined.
16:48:59 <HackEgo> [wiki] [[Gentzen]] N http://esolangs.org/w/index.php?oldid=39537 * Zzo38 * (+5689) Created page with "[[Category:Languages]][[Category:2014]] ==Syntax== * Name: Consists of ASCII letters, numbers, and underscores, without starting with a digit. An underscore by itself is not ..."
16:49:19 <HackEgo> [wiki] [[Gentzen]] http://esolangs.org/w/index.php?diff=39538&oldid=39537 * Zzo38 * (+0)
16:51:43 <zzo38> Do you like this? http://esolangs.org/wiki/Gentzen
16:56:47 <zzo38> I tried to ask about if there is any SQLite extension for connecting to internet, but they always answered improperly. ("Yes, it is called TCP/IP" and "Yes, it is called a programming language" and so on)
16:56:53 <zzo38> Do you know of any such thing though?
17:00:23 -!- edwardk has quit (Read error: Connection reset by peer).
17:03:31 -!- shikhout has changed nick to shikhin.
17:09:59 -!- hk3380 has joined.
17:14:22 <ais523_> zzo38: I don't know of one, although I don't think it would be impossible to write one
17:14:43 <ais523_> it would probably be easier to do your connections from outside SQLite, though, rather than inside
17:20:12 <zzo38> Yes possibly, although I would want to do it from an extension too; for one thing it mean that you can use it to extend application databases even if the application program isn't using internet (for example, to cause all writes to a specific table to be automatically copied to a server), but can also be used with stand-aline SQLite shell programming too.
17:20:40 -!- mekeor has joined.
17:20:46 <zzo38> I could not quite understand the programming of internet connection in C very well though, so I wanted to know if it already exist.
17:21:36 <zzo38> I do, in fact, already write extension for many other things, such as to compute various statistics, and to add formatting functions, and trigonometry and logarithms and square root and so on
17:22:02 <zzo38> And even new commands such as CREATE FUNCTION and CREATE MACRO
17:25:27 <zzo38> ais523_: Do you use SQLite at all?
17:25:59 <mroman> why the hell is it Double.parseDouble but Integer.parseInt
17:26:03 <mroman> instead of Integer.parseInteger
17:26:25 <zzo38> ais523_: What do you use it for?
17:27:16 <ais523_> reading databases in SQLite format, that have been created by other programs
17:27:29 <zzo38> What other programs?
17:28:12 <zzo38> It is certainly useful for that. You could also modify the databases that are created by other programs too, if there is a use to do so.
17:29:35 <zzo38> For example if you want to add triggers, views, columns, and so on, or just if you want to adjust the data it contains.
17:29:44 <mroman> I gotta redo Burlesque. But in Java this time
17:35:34 <zzo38> Why in Java this time? What was it before?
17:42:07 <zzo38> Why do you want to do it in Java this time, though?
17:42:32 <quintopia> better mobile device compatibility
17:45:38 -!- conehead has quit (Quit: Computer has gone to sleep).
17:51:09 -!- MoALTz has joined.
17:52:22 <mroman> I just haven't done much in Java
17:52:35 <mroman> and if it's in Java there's a higher chance somebody actually helps :)
17:52:48 -!- conehead has joined.
17:53:48 <ais523_> anyone who has a decent chance of needing to use Java should maintain exactly one overcomplicated, overengineered Java project
17:54:36 <HackEgo> [wiki] [[Gentzen]] http://esolangs.org/w/index.php?diff=39539&oldid=39538 * Zzo38 * (+419)
17:56:13 <mroman> I just use a lot of instanceofs
17:56:38 <mroman> for eval (MyInteger a) = ...; eval (MyDouble a) = ....; eval (MyString a) = ...; and so forth
17:56:43 <mroman> it's all gonna be crappy instanceof
18:01:34 <mroman> It's gonna take a while to have enough built-ins to be useful :)
18:03:54 <mroman> I think it took 1.5 years for Burlesque to become what it has become
18:04:22 <mroman> and some student colleagues are jealous :)
18:04:56 <mroman> it's pretty good for homework stuff
18:05:06 <mroman> like "is that number square free"
18:05:30 <mroman> it's like 12B written in 10s
18:07:04 -!- Phantom_Hoover has joined.
18:18:23 -!- nooodl has quit (Ping timeout: 276 seconds).
18:28:11 -!- shikhin has quit (Ping timeout: 276 seconds).
18:29:30 -!- shikhin has joined.
18:41:08 -!- FireFly has quit (Excess Flood).
18:45:39 -!- FireFly has joined.
18:49:35 <HackEgo> Fri May 16 01:00:00 UTC 2014
18:49:39 <HackEgo> Fri May 16 12:00:00 UTC 2014
18:49:46 <HackEgo> Fri May 16 01:23:00 UTC 2014
18:49:53 <HackEgo> Fri May 16 12:34:00 UTC 2014
18:49:58 <HackEgo> date: invalid date ` 12345'
18:50:05 <HackEgo> Fri May 16 03:00:00 UTC 2014
18:50:20 <HackEgo> Fri May 16 18:49:54 UTC 2014
18:50:36 <HackEgo> Fri May 16 04:00:00 UTC 2014
18:50:53 <HackEgo> Fri May 16 03:00:00 UTC 2014
18:51:02 <HackEgo> Thu May 15 23:00:00 UTC 2014
18:51:16 <HackEgo> Sat Feb 3 00:00:00 UTC 0001
18:51:23 <HackEgo> date: invalid date ` 1+2+3'
19:04:13 <impomatic> Are there any CSS geeks here? I was wondering if there's a sneaky way to modify the content with CSS. E.g. my <h1> contains "xxxxx: yyyyyyy" and I want to remove the "xxxxx:" without any extra markup.
19:04:27 <impomatic> If I ask in #css they'll just tell me css isn't for content
19:06:17 <ais523_> impomatic: do you happen to have control over the styling but not the content, for some reason?
19:06:21 <ais523_> there is definitely a way to add content
19:06:28 <ais523_> but I'm not sure about removing it
19:07:38 <zzo38> impomatic: I do not think that is possible, but I don't know for sure.
19:09:55 <impomatic> I can hide the original and add replacement content using h1::after (content: );
19:11:05 <ais523_> you could do something like add an element before it, place the prefix after that new element, in the same font and styling
19:11:09 <ais523_> but set the foreground equal to the background
19:11:12 <impomatic> The problem is I want the replacement content to be a substring of the original. (It's for a print style sheet)
19:11:39 <ais523_> that sounds like the sort of thing that could easily go wrong, though
19:12:09 <zzo38> impomatic: I would think you should then make that text another part and then make the CSS to hide it if it is a printout?
19:12:25 <impomatic> If I knew the exact width of the characters, I could probably do margin: -100px or something.
19:14:33 <impomatic> zzo38: enclose the "xxxxx:" in a <span>? I was hoping to avoid that, otherwise I'll have to edit 500+ files by hand!
19:15:17 <zzo38> Don't do it by hand; use another program such as AWK or sed.
19:15:52 <impomatic> I suppose I ought to install AWK :-)
19:16:42 <ais523_> sed/awk/perl are all designed for that sort of job
19:16:46 <ais523_> in increasing order of complexity
19:16:50 <ais523_> although perl does lots of other things too
19:17:50 <int-e> beautiful. "Earlier today, a virus signature from the virus "DOS/STONED" was uploaded into the Bitcoin blockchain, which allows small snippets of text to accompany user transactions with bitcoin."
19:18:15 <int-e> https://answers.microsoft.com/en-us/protect/forum/mse-protect_updating/microsoft-security-essentials-reporting-false/0240ed8e-5a27-4843-a939-0279c8110e1c?tm=1400189799602
19:18:17 <ais523_> and now all the antivirus programs think it's a virus?
19:18:38 <ais523_> that's really clever, whoever thought of it, although highly antisocial
19:21:26 -!- AnotherTest has quit (Ping timeout: 276 seconds).
19:21:51 <Jafet> Hmm, put random shellcode into the blockchain, then your client exploits will have something to jump to
19:22:47 <Jafet> Have they decided what to do with the illegal erotica yet
19:24:52 -!- MindlessDrone has quit (Quit: MindlessDrone).
19:25:07 <zzo38> I suppose if you put whatever you want into the blockchain, in order to cause backups of the data to exist for whoever makes backups of Bitcoin blockchains.
19:26:17 <ais523_> zzo38: it probably wouldn't be cost-effective because of the transaction fees
19:28:29 <zzo38> ais523_: Yes, I suppose so, but if you want to pay for such a thing then maybe it can help, especially if you are already making a payment due to some other reason too, I suppose (for example, to the backup service).
19:30:45 <Jafet> Oh, the blockchain porn was only links.
19:41:18 -!- Slereah_ has changed nick to Slereah.
19:49:49 -!- nucular_ has joined.
19:49:58 -!- nucular has quit (Ping timeout: 245 seconds).
19:50:03 -!- nucular_ has changed nick to nucular.
19:50:11 -!- nucular has quit (Changing host).
19:50:11 -!- nucular has joined.
20:03:13 -!- hk3380 has quit (Ping timeout: 252 seconds).
20:04:08 <HackEgo> [wiki] [[Gentzen]] http://esolangs.org/w/index.php?diff=39540&oldid=39539 * Zzo38 * (+2448)
20:05:11 <kmc> '↪ A start tag whose tag name is "image": Parse error. Change the token's tag name to "img" and reprocess it. (Don't ask.)'
20:07:31 -!- MoALTz has quit (Quit: bbl).
20:10:20 <kmc> the parser SHALL NOT even
20:10:47 <int-e> so it SHOULD odd?!
20:14:52 <HackEgo> [wiki] [[Gentzen]] http://esolangs.org/w/index.php?diff=39541&oldid=39540 * Zzo38 * (+509)
20:15:31 <myname> everytim i see something from zzo i ask myself "do i REALLY want to read it?"
20:16:31 <elliott> ais523_: it's like $90 in transaction fees for a 1 megabyte transaction right now I think
20:17:05 <ais523_> $90 to back up 1MB? that's not really that good a deal
20:17:27 <myname> zzo38: on one side, you have really great ideas, but on the other side, you have really strange ideas
20:17:45 <elliott> ais523_: it buys you an /awful lot/ of backups of your data
20:17:59 <elliott> ais523_: and many people have a strong financial incentive to keep those backups
20:18:32 <ais523_> yes, it's a very reliable backup, assuming that the blockchain doesn't collapse, and that people don't come up with some way to purge text from it (say, to get rid of virus signatures)
20:18:54 <elliott> changing the past of the blockchain is kind of difficult...
20:19:07 <zzo38> Insane people have the best ideas. Sometimes.
20:19:17 <elliott> afaik, the hashes are chained, a la git
20:19:46 <ais523_> you can get everyone to agree that a particular hash was part of the blockchain
20:19:53 <ais523_> and record the state of everything at that moment
20:20:01 <ais523_> and then just work from that new, truncated-behind blockchain
20:20:11 <ais523_> it'd be awkward, but perhaps necessary if the blockchain grows faster than disks do
20:20:21 <myname> zzo38: i think that's what i was trying to say
20:20:34 <elliott> "end-users" aren't going to store the blockchain, anyway
20:20:48 <ais523_> unless they need to know how many bitcoins someone has
20:20:59 <ais523_> or whether a transaction was confirmed
20:21:02 <ais523_> both of which are kind-of important
20:21:18 <elliott> people are going to use light-weight clients or delegate their trust to another entity which has the blockchain
20:21:45 <elliott> the blockchain is already huge; nobody who gets into bitcoin today who isn't really paranoid is using the "official" client
20:27:34 <mroman> impomatic: you can do that @css
20:28:26 -!- Bike has joined.
20:29:55 <mroman> you could for example use a font that doesn't have an x
20:30:00 <mroman> if it realy is xxx: yyy ;)
20:30:21 <mroman> otherwise... the CSS content property can probably just add content, but not remove it
20:30:58 <mroman> impomatic: what also might work is setting text-indent to a negative value
20:34:46 <impomatic> mroman: all of my headers are <h1>Core War: blah blah blah blah</h1> - I want to hide "Core War:" when it's printed. I considered negative text-indent, negative margin, etc but the exact size may vary depending on the font.
20:35:44 <ais523_> you could use a visibility:hidden element in order to assess the text size
20:37:03 <impomatic> It's possible to position "Core War:" in a white font exactly over the bit I want to hide, but unfortunately white prints as light grey.
20:37:39 <fowl> put it in a <span>
20:37:45 <kmc> you really can't change the markup?
20:37:54 -!- yorick has joined.
20:38:00 <fowl> oh that changes things
20:38:47 <kmc> 13:10 < shachaf> whoa, html5 is great
20:38:49 <kmc> how do ya figure
20:39:37 <Bike> it facilitates an attack called "billion laughs", how could it not be great
20:39:59 <kmc> Bike: does it? that looks like an XML thing
20:39:59 <mroman> impomatic: you might wanna use sed then ;)
20:41:04 <Bike> kmc: i think you can still use <!ENTITY >
20:41:49 <Bike> well fuck html5 then
20:42:29 <kmc> that is my general opinion, but not for this reason
20:43:00 <Bike> imo reshuffle ur priorities
20:44:23 <kmc> maybe you can inside MathML or SVG inside HTML
20:45:23 <kmc> I think you're not allowed to do that, either, but some user-agents might allow it
20:45:34 <kmc> since those are more like proper XML syntaxes that are awkwardly embedded inside HTML5
20:46:42 <Taneb> I am going to have a fun June
20:46:48 <mroman> I'm waiting for Web 3.0 - the emotional web
20:46:59 <mroman> with tags like <sad> and <irony> and <fuckyou>
20:47:15 <Bike> @google emotionml
20:47:17 <lambdabot> Title: Emotion Markup Language (EmotionML) 1.0
20:47:26 <Bike> welcome to the future, mroman
20:47:36 <kmc> '↪ An end tag whose tag name is "sarcasm": Take a deep breath, then act as described in the "any other end tag" entry below.'
20:47:48 <mroman> somebody seriously did that already
20:48:02 <kmc> Taneb: oh?
20:48:12 <kmc> good kind of fun or bad kind?
20:49:00 <Taneb> Last exam is on the 3rd. Dad's birthday on the 4th, going home for that. 13th I'm going down to London for the day. 21st-22nd I'm at an anime con
20:49:06 <mroman> <action-tendency name="charge-battery" value="0.9"/>
20:50:13 <Taneb> All the meanwhile I should be working on GSoC
20:50:27 <kmc> what's your GSoC project?
20:50:34 <Taneb> Debugger for GHCJS
20:51:16 <mroman> <emotion <category name
20:51:24 <mroman> I pressed enter to soon
20:51:51 <mroman> well anyway... I wanted to state that I think a debugger for ghcjs is a good thing with EmotionML
20:52:09 <mroman> <category name="fondness" value="0.832091"/>
20:53:54 <kmc> <category name="badness" value="10000"/>
20:54:27 <kmc> whoops just poured salt all over my sofa
20:55:05 <mroman> that's not EmitionML recommendation conform
20:55:19 <mroman> it clearly says value must be within 0..1
20:55:26 <Taneb> Do you know whether anyone applied for a GSoC to do work on/with Rust?
20:58:55 <kmc> i think so, but I'm not positive
20:59:08 <kmc> mozilla has a lot of interns working on Rust and Servo, as well
20:59:47 <mroman> Rust is a systems programming language that runs blazingly fast, prevents almost all crashes*, and eliminates data races.
21:00:49 <kmc> "* In theory. Rust is a work-in-progress and may do anything it likes up to and including eating your laundry."
21:00:53 <zzo38> How exactly will you be able to use the terminal to change the POWER setting if it is not already set? (Refering to VT100 terminal)
21:00:57 <mroman> Would you rather recommend Rust or Go?
21:01:11 <kmc> mroman: they're really very different languages
21:01:20 <mroman> I'm looking for a new "awesome" language and so far Go is pretty high up the list
21:01:30 <kmc> Go has shared-memory concurrency with garbage collection; it's designed for writing high throughput network servers
21:01:34 <ais523_> but yeah, they're not really competing except in as much as they're new systems programming languages made by web browser manufacturers
21:01:35 <fowl> go's runtime generics are disgusting
21:01:36 <kmc> but not anything realtime or low latency
21:01:49 <kmc> Rust has a far more interesting memory management story
21:01:53 <kmc> which enables GC-less operation
21:01:57 <fowl> mroman, nimrod
21:02:04 <zzo38> New "awesome" language isn't good enough, I would think? You should need other criteria to know what you want?
21:02:08 <kmc> it's designed for writing low-latency software like web browsers, kernels, games, high-frequency trading strategies, etc.
21:02:23 <kmc> can run on bare metal, etc
21:02:37 <ais523_> Rust's basically an attempt to make a crash-free C, whereas Go is an attempt to make a lower-level Erlang
21:02:47 <kmc> it's also designed by people who actually know programming languages theory and don't consider it a bad thing
21:03:14 <zzo38> I happen to like C and BLISS, although BLISS is hardly ever used anymore and there is no GNU BLISS compiler that I know of.
21:04:14 <Taneb> I ought to write more Rust
21:04:17 -!- mhi^ has quit (Quit: Lost terminal).
21:04:41 <zzo38> Write down the kind of thing you intend to have, and then see what program language has it, whether it is C, BLISS, Rust, Go, SQL, Perl, or QBASIC.
21:05:04 <kmc> mroman: if you're asking which language is more interesting, it's Rust for sure
21:05:10 <kmc> but Go might be better for writing certain kinds of software
21:05:12 <kmc> and is more mature
21:05:29 <kmc> you'd be a bit mad to run a production system on Rust right now, although I think there are some (small) examples of people doing that
21:05:56 <mroman> "We've got destructors"
21:06:03 <mroman> which clean up as soon as you leave scope
21:06:21 <kmc> Rust is based on unique ownership of objects + safe borrowing of references to them
21:06:28 <kmc> but you can also do reference counting or GC if you want
21:06:59 <kmc> it's a lot like a vastly cleaned-up C++
21:07:06 <shachaf> is there a cycle collector or something for rust yet
21:07:25 <ais523_> there's a reference counter and a non-reference-counting-based garbage collector, IIRC
21:07:34 <ais523_> neither of which is used unless you ask for them
21:07:39 <kmc> RAII, smart pointers, non-homogenous data, objects by value, monomorphizing generics, etc.
21:07:55 <kmc> there's not actually a garbage collector as part of Rust yet
21:08:10 <kmc> it'll happen after 1.0 maybe
21:08:21 <kmc> the std lib does have refcounted boxes, both thread-local and shareable versions
21:08:24 <mroman> although i'm not really familar with C++
21:08:34 <kmc> some of Servo's Rust objects are now managed by the SpiderMonkey garbage collector, which is pretty cool
21:08:46 <kmc> and this is integrated with Rust smart pointers in a way that mostly prevents you from fucking it up
21:08:52 <kmc> I think my colleage and I are going to write a blog post about that
21:08:59 <kmc> colleague*
21:09:00 <ais523_> mroman: don't worry, neither is anyone else
21:09:40 -!- mhi^ has joined.
21:09:40 <mroman> I assume something like { int* a = malloc(..); } doesn't get cleaned-up in Rust?
21:10:17 -!- nooodl has joined.
21:10:20 <ais523_> let int a = box 6; or whatever definitely does get cleaned up
21:10:21 <kmc> it depends what you mean by translating that to Rust
21:10:32 <ais523_> or rather, the program will fail to compile if it can't figure out where the data's meant to get freed
21:11:03 <kmc> mroman: there's an "unsafe dialect" of Rust which will let you call the actual libc malloc and get a raw pointer back and dereference it and segfault and do whatever you want
21:11:47 <zzo38> kmc: Is it possible to combine it with safe codes in the same file (by specifying if you want unsafe, on one block, or something like that)?
21:11:56 <kmc> you can only do that in a function that's marked unsafe, or within an unsafe { ... } block
21:13:00 <kmc> the latter is an unchecked assertion that you have proven that none of these behaviors can occur: http://static.rust-lang.org/doc/master/rust.html#behavior-considered-unsafe
21:13:11 <kmc> it's the way you wrap a safe interface around unsafe internals
21:13:25 <Bike> fuckyouiknowwhatimdoing { ... }
21:13:28 <kmc> (and you can only call an unsafe function from another unsafe function or an unsafe { ... } block, naturally)
21:13:54 <fowl> rust has disgusting "macro"s
21:14:17 <kmc> mroman: so the more idiomatic translation of that would be like ais523_ said, let a: Box<int> = box 3;
21:14:20 <Bike> unsafeCoerce i assume
21:14:22 <kmc> used to be spelled let a: ~int = ~3;
21:14:38 <Melvar> Bike: Effectively, but “believe_me” is the actual name.
21:14:43 <Bike> ( believe_me 17 :: String
21:14:46 <idris-bot> When elaborating an application of constructor __infer:
21:14:47 <idris-bot> Can't disambiguate name: Effects.Env.::, Data.HVect.::, Prelude.List.::, Data.Vect.Quantifiers.::, Prelude.Stream.::, Prelude.Vect.::
21:15:00 <Bike> ( (believe_me 17) :: String
21:15:00 <idris-bot> When elaborating an application of constructor __infer:
21:15:00 <idris-bot> Can't disambiguate name: Effects.Env.::, Data.HVect.::, Prelude.List.::, Data.Vect.Quantifiers.::, Prelude.Stream.::, Prelude.Vect.::
21:15:01 <kmc> that gives you a pointer to a box in the heap; the pointer "owns" the box and when the pointer's destructor is called, the box will be freed
21:15:10 <Bike> well, whatever.
21:15:11 <kmc> like C++'s std::unique_ptr
21:15:11 <ais523_> Bike: it can't figure out which 17 you mean
21:15:18 <Melvar> Bike: (::) is the cons operator.
21:15:29 <zzo38> kmc: Why did you chage it from let a: ~int = ~3 into let a: Box<int> = box 3; ?
21:15:30 <Bike> ( (believe_me 17) : String
21:15:31 <idris-bot> (input):1:17: error: expected: "$",
21:15:35 <kmc> but you can take a "borrowed" reference to that box (of type &int or &mut int) and pass it around
21:15:39 <kmc> and the safety of that is statically checked
21:15:47 <Melvar> Bike: You can’t do a type annotation with colon.
21:15:49 <Bike> "clearly i'm too used to haskell"
21:15:51 <idris-bot> Prelude.Basics.the : (a : Type) -> a -> a
21:16:02 <Bike> ( the String (believe_me 17)
21:16:21 <Bike> ( the String 17
21:16:21 <idris-bot> Can't resolve type class Num String
21:16:35 <ais523_> I hate the way every super-massively-type-safe language has a coerce-anything-to-anything-else function
21:16:36 <kmc> the type system includes "lifetime variables" for preventing dangling references http://static.rust-lang.org/doc/master/guide-lifetimes.html#returning-references
21:16:52 <Bike> coerce crap to bullshit
21:16:54 <kmc> fowl: what's your problem with Rust's macros?
21:16:54 <zzo38> ais523_: Are you sure they would all have such a one?
21:17:04 <Melvar> Bike: If you compiled that believe_me bit it would probably segfault.
21:17:07 <mroman> that would actually mean it's weakly and not strongly typed?
21:17:10 <zzo38> Even then, in Haskell there is a safe mode, which avoid such unsafeCoerce and so on.
21:17:19 <Bike> Melvar: that's what i was hoping to see :p
21:17:25 <kmc> ais523_: it's really necessary in Rust, because you build the safe parts out of unsafe parts
21:17:30 <kmc> most of the Rust runtime system is written in Rust
21:17:35 <mroman> I recall the definition of "weak" is "you can circumvent the type system with a (void*) cast"
21:17:35 <kmc> (also, most of the Rust runtime system is optional)
21:17:39 <ais523_> kmc: yes, I understand that
21:17:45 <kmc> mroman: nobody actually agrees on what these terms mean
21:17:51 <Bike> >2011 >words having means
21:17:54 <ais523_> mroman: I've seen that defined as "unsound"
21:18:10 <zzo38> Except that as they said, in Rust if you want a unsafe code you have to specify "unsafe" block. In Haskell they are called "unsafe".
21:18:33 <shachaf> ais523_: I think people would call e.g. Haskell unsound because of undefined.
21:18:36 <Bike> have you considered becoming a non cognitivist??
21:18:42 <ais523_> I think the only type-related definition that's generally agreed on is static versus dynamic
21:18:49 <shachaf> unsafeCoerce is more of an operational thing.
21:18:53 <kmc> shachaf: I would say that the type system is an unsound logic, but not that the type system itself is unsound
21:18:59 <fowl> kmc, they're filthy unreadable $$$enough$already$$$
21:19:09 <shachaf> kmc: Ah, I suppose you could say that.
21:19:27 <kmc> typically an unsound type system means one which allows programs to "go wrong", whatever exactly that means for the goals of your type system
21:19:28 <ais523_> Melvar: could you get idris-bot to not line-wrap its error messages?
21:19:36 <zzo38> Bike: What is a non cognitivist?
21:19:42 <ais523_> one 300-char line is less disruptive in IRC than five 60-char lines
21:19:44 <kmc> most type systems try to provide memory safety, so "going wrong" would include use-after-free, memory leaks, etc.
21:19:46 <ais523_> not a big deal, just something to think aobut
21:19:53 <kmc> Rust also tries to prevent data races
21:20:07 <fowl> how many kinds of pointers are there in rust? still 4?
21:20:11 <ais523_> kmc: I was reading that post about replacing "mut" with "uniq"
21:20:19 <kmc> I didn't read that yet
21:20:29 <ais523_> and reminded me a bunch of my own research
21:20:33 <kmc> fowl: ~ and @ have both turned into library types
21:20:35 <zzo38> What is this "mut" and "uniq"?
21:20:46 <kmc> fowl: so there's *, *mut, &, and &mut
21:20:53 <kmc> but also many library types that act like pointers
21:20:53 <ais523_> zzo38: "mut" means "the data can be changed via this pointer", and "this is the only mutable pointer to the data"
21:21:05 <Melvar> ais523_: Seems to be a bug in Idris, since the normal REPL does the same thing, regardless of the consolewidth setting (which the bot sets to 200)
21:21:10 <ais523_> "uniq" is a proposal for "this is the only pointer to the data", with mutability not being specific
21:21:10 <kmc> every big C++ project has like a dozen custom smart pointer classes
21:21:34 <kmc> "mut" currently means the only pointer, not just the only mutable pointer
21:22:03 <zzo38> kmc: Really? I don't know much about C++ project, and why they have a dozen custom smart pointer classes.
21:22:56 <ais523_> (you have to specify an INTERCAL program if you want ick to produce output, or --help/--version)
21:22:58 <zzo38> Couldn't you add both a "mut" and "uniq" types, then?
21:23:07 <Melvar> ais523_: Also I should look if I can’t find how that operator-listing parse error comes about, since that’s annoying in any case.
21:23:11 <ais523_> zzo38: that was one suggestion in the blog post
21:23:23 <fizzie> The mean of a word is just the character corresponding to the (rounded) sum of its code points divided by the length of the word.
21:23:25 <ais523_> but the author preferred getting rid of mut altogether
21:23:28 <ais523_> which is massively controversial
21:23:47 <fowl> why? i thought immutability was the tits
21:23:54 <fowl> immutability solves all problems, doesnt it
21:24:06 <kmc> it is an essential part of the way Rust provides memory safety
21:24:14 <ais523_> I guess you could sum the argument up as, uniq lets you do everything that's new in terms of memory safety in Rust
21:24:16 <kmc> so I'm not sure what you'd do in its place, but I didn't read the blog post yet
21:24:22 <ais523_> but it doesn't let you do the stuff that const does in C
21:24:23 <kmc> I guess that's so
21:24:38 <ais523_> or in other words, the post is about capturing the rustiness of immutability
21:24:44 <kmc> Rust doesn't have a way to create immutable objects, anyway -- the mutability of an object depends on how you're accessing it
21:24:47 <ais523_> but loses the non-rust-related benefits
21:24:50 <kmc> so there are mut/immut local variables, and mut/immut pointers
21:24:58 <kmc> but if you own an immut thing you can always make it mut
21:25:27 <kmc> (except for global variables declared with 'static', which are basically constants)
21:26:44 <kmc> you can effectively make an immutable object, though, by putting it in a private struct field and only exposing an accessor that returns an immutable reference
21:26:45 <Taneb> Is there a >>= equivalent for Rust's option?
21:26:52 <kmc> I think it's .chain()
21:26:58 <kmc> there are a bunch of HOFs on Option<T>
21:27:11 <kmc> http://static.rust-lang.org/doc/master/core/option/type.Option.html
21:27:48 <kmc> Rust doesn't have higher-kinded polymorphism :/ so you can't make these generic as in Applicative, Monad, etc.
21:29:56 <shachaf> i want higher-kinded polymorphism :'(
21:30:19 <kmc> the other day I wanted to write a trait with kind (Lifetime -> Type) -> Constraint
21:31:41 <mroman> what the use of freezing a const literal?
21:32:07 <shachaf> by the way did you see that paper i linked here a while ago about rank-n types in languages that try not to box things
21:32:27 <kmc> shachaf: no! sounds interesting
21:32:37 <kmc> mroman: you can pass it to a function that expects &int
21:32:49 <kmc> doesn't have to be a constant either, you can do f(&g())
21:33:10 <kmc> it creates an unnamed temporary variable in the current scope
21:33:18 <fowl> whats the rationale for using a bunch of operators instead of words?
21:33:23 <HackEgo> bin/anonlog bin/etymology bin/log bin/logurl bin/pastalog bin/pastelog bin/pastelogs bin/pastlog bin/randomanonlog bin/searchlog
21:33:33 <ais523_> mroman: same use as (struct foo){.bar = 1}; in C
21:33:34 <shachaf> look all i want is to search logs for something i said recently
21:33:36 <kmc> actually I think it only lasts for the current statement
21:33:57 <kmc> lifetime inference is an example of type inference with subtyping, which means that it's not perfect
21:33:58 -!- nucular has quit (Ping timeout: 240 seconds).
21:34:01 <ais523_> `log <shachaf>.*paper i linked here
21:34:01 <HackEgo> /hackenv/bin/log: 2: cd: can't cd to /var/irclogs/_esoteric \ grep: ????-??-??.txt: No such file or directory
21:34:13 <ais523_> shachaf: except that it doesn't work because HackEgo no longer has a copy of the logs
21:34:53 <Bike> http://i.imgur.com/4VaHgh1.jpg?1 attn
21:35:29 -!- nucular has joined.
21:35:50 <Bike> no, you're allowed to talk about jesus
21:36:06 <kmc> "words or phrases with biblical connotation"
21:36:21 <Taneb> I think I have made a mistake
21:36:40 <Taneb> "Primes.rs:16:19: 16:32 error: borrowed value does not live long enough"
21:37:39 <ais523_> nice when the compiler catches it for you :-)
21:38:28 <Taneb> I can't tell where it's being freed
21:38:59 <ais523_> when the place where it was declared goes out of scope
21:39:50 -!- ais523_ has quit (Quit: Page closed).
21:40:04 <kmc> grr, I have an enum with 6 variants and I want a type which is restricted to 4 of them
21:40:18 <Bike> subtyping........................
21:40:23 <kmc> i wish that kind of thing didn't suck in most langs
21:40:26 <kmc> refinement types could do it
21:40:33 <kmc> i don't like subtyping
21:40:35 <kmc> but it's convenient
21:40:48 <kmc> in this case
21:40:59 <kmc> I could at least write a macro which automates declaration and conversion for the "subtype" enum
21:41:23 <kmc> Rust supports defining macros using arbitrary Rust code, although it's not pretty
21:43:55 <Taneb> Right, I got it to work
21:44:26 <Taneb> By not naming the thing that didn't have enough lifetime?
21:44:32 <Taneb> It was only used once anyway
21:48:13 <shachaf> ais523_-ghost: oh, that explains it
21:48:17 <shachaf> kmc: why don't you like subtyping
21:48:55 <Taneb> Can I get a code review for main()? http://hastebin.com/eduvawahub.rs
21:49:19 <fowl> Rust can't figure out the type
21:49:49 <Taneb> Other than adding more useful comments
21:49:51 <shachaf> kmc: looks like it was http://flint.cs.yale.edu/flint/publications/flex.pdf
21:50:03 <fowl> Taneb, isnt there a constructor you can use there instead
21:50:39 <fowl> Taneb, just Some(..) to construct option<t>
21:51:42 <Taneb> I don't understand
21:52:44 <fowl> Some(4) #=> Option<Int> value of 4
21:52:58 <fowl> you know what a constructor is, stop pulling my chain
21:53:07 <Taneb> Yes, but I don't understand how that helps
21:53:18 <Taneb> I'm getting the Option<uint> from from_str()
21:53:33 <fowl> and you can't omit that?
21:53:34 <shachaf> kmc: i'd suspect that rust cares about runtime representation a bit too much for that kind of trickery
21:54:01 <Taneb> fowl, no, because it can't tell that it's a uint
21:54:18 <fowl> from_str<uint>?
21:55:41 <Taneb> I think I've got it
21:56:20 -!- edwardk has joined.
21:56:45 <kmc> Taneb: one day you will be able to write from_str::<for uint>(...) or so, but that's not much better
21:57:41 <Taneb> I've got from_str::<int>(...)
21:57:57 <HackEgo> [wiki] [[Gentzen]] http://esolangs.org/w/index.php?diff=39542&oldid=39541 * Zzo38 * (+1196)
21:58:03 <kmc> Taneb: instead of long else/if chains I like to do something like match () { _ if x > 49 => ..., _ if is_prime1(x) => ..., }
21:58:08 <kmc> Taneb: oh, does it work now?
21:58:23 <zzo38> How do I get rid of the message at the top of the MediaWiki page that says your edit is saved?
21:58:32 <Bike> that seems like an awkard cond :/
21:58:41 <Bike> "maybe you could write a macro"
21:58:42 <kmc> it's not the best
21:58:46 <kmc> Haskell has the same basic issue
21:58:50 <Taneb> kmc, and I didn't know that guards existed like that
21:59:28 <fowl> from_str::<int> -_-
21:59:38 <fowl> they should have called rust "line noise"
21:59:51 <Bike> https://twitter.com/ibogost/status/467423954328883200/photo/1/large meanwhile in the ACM
22:00:31 <kmc> fowl: nice one
22:00:59 <Bike> maybe you should jokingly name the language after some kind of corrosion, to emphasize how ugly it is,
22:01:30 <kmc> I'm starting to think the real value of fancy movement commands in Vim is for macros
22:02:04 <shachaf> imagine if all programming was like writing vim macros
22:03:29 <zzo38> shachaf: It is why there is many different kind of programming languages, which is so that, it doesn't have to be all programming like writing vim macros.
22:04:07 -!- edwardk has quit (Quit: Computer has gone to sleep.).
22:05:03 <kmc> shachaf: should I feel bad about f(match a { b => return c, d => e })
22:05:58 <fowl> kmc, does that return c/e to the call to f or to the function enclosing it
22:06:50 <Bike> i would hope that it works by either passing e to f, or returning c to the lexically enclosing block without calling f.
22:07:06 <fowl> yea thats what it looks like
22:07:24 <kmc> that's right
22:07:40 <kmc> well, the lexically enclosing function body
22:07:45 <kmc> not necessarily the closest block
22:08:01 <fowl> yes kmc you should feel bad
22:08:05 <kmc> return acts like calling a continuation captured at entry to the function
22:08:09 <kmc> the type of (return x) unifies with anything
22:08:25 <Bike> well i don't know what a "block" is in rust, i'm just using lisp terms because lol.
22:08:30 <Taneb> Programming languages are weird
22:08:38 <shachaf> kmc: imo kind of bad but also kind of good??
22:08:38 <fowl> unifies? meaning what
22:08:50 <kmc> error: cannot bind by-move into a pattern guard
22:08:56 <kmc> that's an interesting one
22:09:01 <fowl> kmc, what do you gain from having the match inside the func call? internet points?
22:09:21 <kmc> there are so many tricky cases that come up with uniqueness / move semantics
22:09:21 <Bike> fowl: type unification
22:09:47 <Bike> fowl: like in pseudo-C since i don't know how rust decls work, "foo x = return bar;" is valid for any type foo.
22:10:04 <kmc> I think it should be safe as long as the bound-by-move variables don't appear in the guard
22:10:07 <kmc> but i'm not sure
22:10:21 <Bike> i've done what kmc's doing before. it's kind of super ugly so i'd feel a bit bad but not enough to change it if that's what i meant
22:10:51 <shachaf> kmc: do you know what happens in ruby when you write something like def foo(); return proc { return 5 }; end
22:10:53 <fowl> buzzwords :rolleyes:
22:11:12 <shachaf> (where the "return" in the proc means "return from foo".)
22:11:29 <kmc> you capture a continuation?
22:11:31 <Bike> "ugly" is a buzzword
22:11:39 <shachaf> you'd hope for that but it's just an error :'(
22:12:21 <Bike> i can understand not wanting to introduce undelimited continuations :V
22:12:32 <shachaf> you wouldn't know when to capture a continuation anyway since everything is all dynamic
22:13:25 <Taneb> I'll say it again.
22:13:30 <shachaf> kmc: shamir's secret sharing is so simple btw
22:13:32 <Taneb> Programming languages are weird.
22:13:43 <shachaf> for some reason i thought it was complicated but it's not
22:16:36 <shachaf> another thing i thought was complicated but isn't: crontab syntax
22:17:12 <kmc> \rainbow{polynomials}
22:17:46 <Bike> hell yeah polynomials
22:17:52 <Bike> does anyone here know about gröbner bases?
22:27:02 <Bike> is anyone here goign to tell me about them
22:28:01 <zzo38> It isn't something I know
22:28:22 <kmc> Bike: i give that about 50/50
22:29:06 -!- Patashu has joined.
22:31:44 -!- hk3380 has joined.
22:32:15 <ion> http://arstechnica.com/tech-policy/2014/05/photos-of-an-nsa-upgrade-factory-show-cisco-router-getting-implant/
22:35:22 -!- FireFly has quit (*.net *.split).
22:35:22 -!- drdanmaku has quit (*.net *.split).
22:35:24 -!- skarn has quit (*.net *.split).
22:35:24 -!- shachaf has quit (*.net *.split).
22:35:24 -!- newsham has quit (*.net *.split).
22:35:25 -!- rodgort has quit (*.net *.split).
22:35:25 -!- erdic has quit (*.net *.split).
22:35:26 -!- myname has quit (*.net *.split).
22:35:43 -!- monotone has quit (*.net *.split).
22:35:43 -!- pdxleif has quit (*.net *.split).
22:35:43 -!- jconn has quit (*.net *.split).
22:35:44 -!- jix has quit (*.net *.split).
22:35:44 -!- trout has quit (*.net *.split).
22:35:44 -!- Speed` has quit (*.net *.split).
22:35:45 -!- lifthrasiir has quit (*.net *.split).
22:35:45 -!- kmc has quit (*.net *.split).
22:36:00 -!- FireFly has joined.
22:36:01 -!- drdanmaku has joined.
22:36:01 -!- skarn has joined.
22:36:01 -!- newsham has joined.
22:36:01 -!- shachaf has joined.
22:36:01 -!- rodgort has joined.
22:36:01 -!- erdic has joined.
22:36:01 -!- myname has joined.
22:36:19 -!- monotone has joined.
22:36:19 -!- pdxleif has joined.
22:36:19 -!- jconn has joined.
22:36:19 -!- jix has joined.
22:36:19 -!- trout has joined.
22:36:19 -!- Speed` has joined.
22:36:19 -!- lifthrasiir has joined.
22:36:19 -!- kmc has joined.
22:39:45 -!- boily has joined.
22:48:07 -!- boily has quit (Quit: Poulet!).
22:51:36 <Bike> someone tell me why i can't find a proof of the poincare bendixson theorem not based on way too many symbols
22:52:01 -!- mhi^ has quit (Quit: Lost terminal).
22:54:02 <Slereah> Because math has a lot of symbols
22:56:58 <ion> Too bad nobody told mathematicians they can use multi-letter words as names.
22:57:29 <Taneb> help "error: binary operation `*` cannot be applied to type `&&uint`"
22:57:31 <ion> For some reason they ended up using “sin”, “cos”, “lim” etc. though.
22:57:54 <monotone> But then how would we know that "dim" isn't d*i*m???? Panic would reign!
22:58:30 <ion> We have this technology called “whitespace”
22:58:47 <Taneb> `unicode INVISIBLE TIMES
22:59:01 <Taneb> See, there's even a unicode character to represent multiplication that style!
22:59:07 <ion> Not to be confused with
22:59:10 <ion> `unicode INVISIBLE PLUS
22:59:14 <HackEgo> [U+200B ZERO WIDTH SPACE] [U+2062 INVISIBLE TIMES]
22:59:18 <kmc> invisible plus is visible for me
22:59:20 <zzo38> They ended up using "sin", "cos", "lim" because when Feynman used various strange symbols to mean them instead, everyone else got confused and didn't understand it.
22:59:40 <Bike> i'm uh, pretty sure those symbols predate feynman
22:59:54 <kmc> which symbols are those?
22:59:55 <Slereah> There's plenty of multisymbol math words : http://us.metamath.org/mpeuni/mmdefinitions.html
22:59:58 <Bike> and no i'm pretty sure nobody will ever be confused if iuse psi to indicate orbits and phi to indicate the transition function, what could possibly go wrong
23:00:02 <Taneb> Did you know that the "=" symbol was invented in Wales?
23:00:14 <Slereah> ⊢ RingOps = {<.g, h>. ∣ ((g ∈ AbelOp ∧ h:(ran g × ran g)–→ran g) ∧ (∀x ∈ ran g∀y ∈ ran g∀z ∈ ran g(((xhy)hz) = (xh(yhz)) ∧ (xh(ygz)) = ((xhy)g(xhz)) ∧ ((xgy)hz) = ((xhz)g(yhz))) ∧ ∃x ∈ ran g∀y ∈ ran g((xhy) = y ∧ (yhx) = y)))}
23:00:19 <ion> taneb: Yeah, by Feynman himself!
23:00:21 <Bike> this is sick, Slereah
23:00:27 <zzo38> One thing is you can affect italic and roman text, so that variables are in italics and keywords in roman type.
23:00:32 <Bike> and not east coast sick.
23:00:37 <kmc> douglass1 has a story about a textbook that used v, ν, and script ν to mean different things
23:01:00 <Bike> ugh is that the greek thingie
23:01:02 <maurer> ...I think I might have taken that class, but don't remember hwat it was
23:01:03 <Slereah> Textbooks commonly use bold to mean vectors
23:01:05 <Bike> i will destroy greek
23:01:19 <Bike> Greeks can use it, I guess
23:01:21 <Bike> right out for everyone else
23:01:25 <Slereah> ⊢ DIsoH = (k ∈ V ↦ (w ∈ (LHyp ‘k) ↦ (x ∈ (Base ‘k) ↦ if(x(le ‘k)w, (((DIsoB ‘k) ‘w) ‘x), (℩ u ∈ (LSubSp ‘((DVecH ‘k) ‘w))∀q ∈ (Atoms ‘k)((¬ q(le ‘k)w ∧ (q(join ‘k)(x(meet ‘k)w)) = x) → u = ((((DIsoC ‘k) ‘w) ‘q)(LSSum ‘((DVecH ‘k) ‘w))(((DIsoB ‘k) ‘w) ‘(x(meet ‘k)w)))))))))
23:01:36 <Bike> cool story bro
23:01:46 <kmc> cool theorem bro
23:02:06 <Slereah> Apparently that is the definition of an isomorphism H
23:02:16 <ion> cool bro bro
23:05:30 -!- ^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
23:10:52 <Bike> man if the annoying rust error is lifetime failure rather than segfaults i'm fucking sold
23:12:54 <zzo38> I have some pinball game in computer, which has seven holes for the ball to drain, instead of just one. One is worth nothing, Two are worth fifth points each, two are worth one hundred points, and two of them cause instantly game over even if you have more balls to play.
23:15:55 -!- oerjan has joined.
23:20:11 -!- Sgeo has joined.
23:21:47 <douglass1> actually it's not that much of a story. I did drop a class when they did basically the same thing on the board, with three kinds of epsilon in the same equation, distinguished by slightly different levels of curliness
23:22:02 <douglass1> confusion at nu was too common to even remark on
23:22:57 <Taneb> douglass1, oh god, if I was leading that class...
23:23:09 <Taneb> (I have the worst handwriting when I'm not thinking about it)
23:23:25 <Taneb> (I used to write my ns and as really similar
23:23:25 <douglass1> they let me take the actual physics version instead for the same major requirement. SO MUCH BETTER.
23:24:16 <douglass1> whereas nu you're kind of stuck with anywhere you're doing spectroscopy and it's not just that the particular lecturer or text sucks
23:24:51 <Phantom_Hoover> i'd a lecturer this year who wrote his rs like an n, his ns like an m, and his m like some kind of weird mutant letter
23:24:58 <Taneb> I have the suspicion I'm trying to do something horrible with this code
23:25:20 <kmc> Servo does segfault sometimes :/
23:25:22 <kmc> less often than it used to
23:25:27 <Bike> is q qauantitative or quantum
23:25:27 <kmc> it contains a fair amount of unsafe code, for various reasons
23:25:37 <Phantom_Hoover> last year we had one who wrote beta the same way as b (he was greek, too) and labelled a series of vectors v1,v2,...wn
23:26:15 <Bike> suddenly mysteriously glad i haven't taken a math(y) class in years
23:27:40 <Phantom_Hoover> in a similar vein the geometry lecturer just used the board as a substitute for his short-term memory, writing disjointed fragments hither and thither with no actual structure
23:28:10 <Taneb> How horrible is in Rust having a function that returns a closure that's captured an (otherwise inaccessible) vector?
23:28:48 <Taneb> And then mutates the vector potentially each time it's called
23:29:11 <Bike> how do you have a quantum chemistry class without actual physics...
23:29:19 <Bike> is this like how everybody is afraid to tell me what a d orbital looks like
23:29:34 <Taneb> Actually, I could make it a lot less horrible... but a lot less safe?
23:29:51 <Bike> the knowledge could quite possibly DRIVE YOU INSANE
23:30:57 <zzo38> Does Wikipedia have any description/diagram to tell you what a d orbital looks like?
23:31:17 <Bike> http://en.wikipedia.org/wiki/File:D_orbitals.svg
23:31:22 <zzo38> Actually I think I remember seeing all of the orbitals in some book.
23:32:06 <Bike> it has pictures of the f orbitals, too, ones in actually existent atoms anyway
23:35:33 <Bike> i asked my orgo prof where i could learn quantum and she basically said not to, so, i don't know what chemistry's deal is
23:35:54 -!- ^v has joined.
23:39:53 -!- boily has joined.
23:40:05 -!- yorick has quit (Remote host closed the connection).
23:41:58 -!- nooodl has quit (Quit: Ik ga weg).
23:42:14 -!- nooodl has joined.
23:44:47 <zzo38> Can I make infinite loops out of continuations and avoid a infinite loop operator?
23:45:23 <Bike> presumably you'd need a continuation that continuates to itself? sounds like fix
23:45:45 <shachaf> ((call/cc call/cc) (call/cc call/cc))
23:46:36 <zzo38> Assume you have law of excluded middle continuations
23:46:44 <zzo38> But, I suppose you may be correct
23:46:56 -!- Patashu has quit (Disconnected by services).
23:46:56 -!- Patashu_ has joined.
23:47:12 <shachaf> you can't do it with haskell-style callCC, of course
23:47:22 <boily> quintopia: IEUAAAAAAAAAAAAAAAAAAAH!
23:48:34 <shachaf> you can do it with this handy operator, though:
23:48:41 <shachaf> @let getCC = callCC (return . fix)
23:48:42 <lambdabot> No instance for (MonadCont m0) arising from a use of ‘callCC’
23:48:42 <lambdabot> The type variable ‘m0’ is ambiguous
23:48:42 <lambdabot> Relevant bindings include getCC :: m0 (m0 b) (bound at .L.hs:158:1)
23:48:42 <lambdabot> Note: there are several potential instances:
23:48:50 <kmc> if I optimize something to the point where Rust's benchmarker reports "0 ns/iter", what % improvement do I report
23:49:03 <shachaf> @let getCC :: MonadCont m => m (m a); getCC = callCC (return . fix)
23:49:22 <shachaf> int-e: The monomorphism restriction is turned on for lambdabot?
23:49:50 <kmc> lambdabot is turned on by the monomorphism restriction?
23:49:54 <Bike> :t return . fix
23:51:07 <lambdabot> MonadCont m => ((a -> m b) -> m a) -> m a
23:59:22 <oerjan> > let getCC = callCC (return . fix) in getCC
23:59:23 <lambdabot> No instance for (GHC.Show.Show (m0 (m0 b0)))
23:59:23 <lambdabot> arising from a use of ‘M108163792579395769929310.show_M1081637925793957699...
23:59:23 <lambdabot> The type variables ‘m0’, ‘b0’ are ambiguous
23:59:23 <lambdabot> Note: there are several potential instances:
23:59:23 <lambdabot> instance [safe] GHC.Show.Show a =>
23:59:57 <oerjan> > let getCC = callCC (return . fix) in "hi"