00:04:47 -!- boily has quit (Quit: Poulet!). 00:04:49 -!- cuttlefish has quit (Remote host closed the connection). 00:05:05 `resume 00:05:07 résumé 00:10:19 Just applied to Jane Street 00:13:07 Does anyone actually use classy prelude? 00:17:08 -!- nooodl has quit (Ping timeout: 248 seconds). 00:18:28 "Jane Street doesn’t seek outside investment and doesn’t have customers. Our growth comes from hiring and training amazing people and giving them the tools they need to innovate." 00:18:37 I am so confused. What do they actually _do_? 00:18:45 They trade. 00:18:57 I hear they make money 00:19:37 They make money off... the nature of a system built around the ability to exchange goods and services in a sensible way 00:19:46 since when do people have to do things to make money 00:20:48 I guess they likely make contributions to open-source stuff, but... 00:20:49 -!- GreyKnight has quit (Quit: zzz). 00:21:06 haha oh Sgeo 00:21:10 It still feels weird that they fundamentally make money by... well, does it count as a service to society? 00:21:16 To... trade? 00:21:19 blah blah providing liquidity blah blah 00:21:24 do you want like, a lecture on modern capitalism 00:21:38 some strategies pretty clearly provide value 00:21:40 like market making 00:21:46 others are purely exploiting inefficiency 00:22:14 my problem with HFT isn't some idea that it's evil, but the opportunity cost of all these smart people playing zero-sum games rather than improving the world 00:22:30 even if your market making activity is beneficial, most of your effort goes into being slightly faster than the 20 other people trying to do it 00:22:34 Does exploiting inefficiency actually benefit others, though? I... think it kind of could. If I'm too lazy to go across town to buy something, I will buy near me, even if it costs a little more 00:22:49 Sgeo: i meant that it doesn't 00:23:02 ok so 00:23:12 "exploiting inefficiency" is the leeches, "clearly provide value" is the weird seemingly pointless things that are actually quite helpful 00:23:25 Sgeo: do you know how a market order book works 00:23:28 No 00:23:33 ok so say i'm a stock exchange 00:23:42 I thought that exploiting inefficiency improved efficiency 00:23:56 for each stock, i maintain a list of entries such as "person X is willing to buy at $a or less" and "person Y is willing to sell for $b or more" 00:24:10 people send me these entries, i publish them to the world, they can also cancel them at any time 00:24:13 that's the order book 00:24:25 The market can't automate matchmaking? 00:24:29 look 00:24:31 i am a computer here 00:24:41 i am the automation 00:25:02 the "people" who send me orders are also computer programs 00:25:09 does it make sense so far 00:25:19 Yes 00:25:27 doesthiswork: exploiting inefficiency in the sense of finding a niche that doesn't 'need' to exist for the rest of the system to function, and possibly deepening that niche out of self-interest. 00:25:37 now, a trade happens if there's a buy order with price above a sell order 00:25:43 that is, a >= b 00:25:45 BUT 00:25:54 for this to happen, one of the orders was never actually displayed to the world 00:26:00 because it immediately matched the other one when it came in 00:26:02 SO 00:26:06 Ah, ok 00:26:09 the two sides of the trade are playing different roles! 00:26:24 the person whose order sits on the book is 'providing liquidity' 00:26:31 the person who matches that order is 'taking liquidity' 00:27:02 now the stock exchange makes money on every trade 00:27:06 they charge a fee 00:27:14 but they charge a large fee to the person who is taking liquidity 00:27:21 thus encouraging people to provide liquidity 00:27:28 because that's what attracts more traders and makes the exchange successful 00:27:40 in fact, many exchanges give a *negative* fee to liquidity providers 00:27:43 liquidity rebate 00:28:02 market making is a strategy where you provide liquidity on both sides of the book 00:28:24 you're willing to buy *or* sell 00:28:31 bike: could you give an example niche? 00:28:39 if your position gets too positive or too negative then you do only one or the other to get it back to zero 00:28:57 anyway one way for market makers to make money is the liquidity rebate 00:29:01 probably not, because i'm not very familiar with banking 00:29:08 "we lose money on every trade we make, but we make up for it in volume!" 00:29:59 the service that market makers provide to the world is ensuring that it's always possible to buy or sell a given stock 00:30:33 by providing liquidity you're taking a risk. at any time, someone might come along and make that trade, and maybe by the time they do, it's a bad trade for you 00:30:37 even if nobody wants it 00:30:50 Could someone just make money trading market maker item to market maker item, or would the fees cancel that out? 00:31:09 the liquidity taking fee is larger in magnitude than the liquidity providing rebate 00:31:14 because the exchange gotta get paid too 00:31:37 And I guess the market makers are not going to have the prices be so.. drastically.. something that it would make sense? 00:31:52 -!- augur has quit (Remote host closed the connection). 00:32:23 it's also worth noting that before computerized market making, the human market markers were a good ol' boys club that got their positions by knowing a guy and colluded to screw over investors 00:32:54 opening this up to everyone with a computer and shrinking the buy/sell price spread to pennies was pretty good for society, i would say 00:33:22 anyway the big picture is that I think liquidity-providing strategies are easier to defend as useful to society than liquidity-taking ones 00:33:32 it's not impossible to defend the latter but it gets more and more convoluted 00:33:48 another way to look at it is, the market is a distributed computational system 00:34:03 some participants are not willing to do the huge amount of computation necessary to determine the correct relative price of 3,000 stocks 00:34:06 maybe getting a job in this wouldn't be so bad 00:34:12 in exchange for their laziness, they pay a premium 00:34:19 that money goes to the HFT firms that do all the computation 00:34:49 i've heard being a quant is kind of miserable 00:34:51 when you point and click to buy stock on your retail brokerage's website, you're not getting the best price in the pennies place, but do you care? 00:34:58 you're a long term investor probably 00:34:59 but still lucrative, of course 00:35:00 Bike, oh well 00:35:04 somebody else makes a little money from you not caring 00:35:15 in fact retail orders are very unlikely to hit the open market 00:35:42 every retail brokerage is going to run those orders through one or more internal HFT strategies and then shop them around to various other "dark pools" and such 00:35:52 only a small chance you can see your order on the tape at ARCA / BATS / NASDAQ / etc 00:35:52 Bike, can you be miserable for a while then make enough money to do something pleasant but cheap 00:36:08 I think kmc has asked the most pertinent question about stock trading 00:36:11 do you care? 00:36:29 the ultimate sketchy example of this is Zecco, a brokerage that offered zero-commision trades as a way to attract dumb retail orders that their HFT could profit from 00:36:42 -!- zzo38 has joined. 00:36:43 they are ultra sketchy 00:36:45 see http://en.wikipedia.org/wiki/Zecco.com#April_Fools.27_incident 00:38:05 also the order book model above is super simplified 00:38:46 in reality, markets offer hidden orders, fill-or-kill orders, mid-spread floating orders, intermarket sweep orders, various forms of timeout, etc 00:39:01 unclear if these are fundamentally useful 00:39:11 the complexity attracts HFT firms who think they can model the market microstructure better 00:39:16 suddenly the evolution in Accelerando seems more plausible. 00:39:42 Somewhere in here a sexual selection analogy is waiting to be made 00:39:43 i would say that market microstructure has almost nothing to do with banking, economics, or even most of finance 00:40:14 Bike, is that another stross novel set in edinburgh 00:40:14 it's a strange, specialized game played on the microsecond scale, to determine which of two parties in an overall financial transaction gets a slightly better deal 00:40:27 and that's where babies come from 00:40:53 Phantom_Hoover: I forget where it's set, but it involves marketing drones evolving into lifelike forms. 00:41:06 the intelligent ponzi scheme was a good character imo 00:41:16 yeah having just read Accelerando was a key factor in me deciding to work in HFT for a while 00:41:31 what does hft actually stand for 00:41:35 high frequency trading 00:41:49 What kind of lifelike form does the knight capital software evolve into 00:42:24 :O 00:42:33 kmc is the devil! 00:42:42 do they all speak in phonetic scottish vernacular 00:43:15 Could a stock exchange that makes HFT nonviable be created? 00:43:32 a lot of the spam these days is with cancelled orders 00:43:43 people have talked about putting in disincentives to cancel orders 00:43:58 Sgeo: just remove all the computers 00:44:02 or that 00:44:07 Sgeo, well you could just limit the frequency of trades 00:44:32 I think people feel that disincentives would be more "organic" than frequency limits 00:44:49 ie. "we can game this more" 00:44:54 i was going for the mathematician's answer 00:45:05 is there any real reason to ban hft 00:45:09 the game theorist's answer might lead to more interesting outcomes 00:45:27 Sgeo: if you took orders over the course of a minute and then filled them atomically at the end 00:45:32 it would be very different 00:45:54 Bike, its existence implies inefficiencies ... somewhere. Don't know if those inefficiencies could be fixed at the exchange level though 00:46:08 one thing i want is a market where everyone's strategies run on the same virtual machine host, and you can trade computation time like any other commodity 00:46:14 so you're going to deal with inefficiencies by slowing everything down or 00:46:28 also: is computational economics, doing things like kmc just said, a field of study 00:46:41 (is it just "economics") 00:46:42 Sgeo: "inefficiencies" is a pejorative way of saying "computation that needs to be done" 00:46:51 Bike: plenty of people are rallying against the complexy of exchange fee structures giving rise to artificial situations that can be exploited for very little external gain 00:47:21 I don't particularly care either way 00:47:25 Is there like, a consistent criterion one could use to quantify activities with no external gain 00:47:36 Sgeo: say you have a bunch of commodity options contracts; the relative prices between them are described by a very complicated mathematical model 00:47:43 in fact people can't agree on which model is best 00:47:54 should the exchange be required somehow to run that model themselves and update prices in lockstep? 00:48:05 or do they open up trading to HFT companies and effectively pay them to do that computation 00:48:13 i don't see a priori why one is better than the other 00:48:41 and these are contracts that relate to the real world, are used by farmers and airlines and mcdonalds to hedge risk 00:48:51 keeping that market efficient and liquid has a real social benefit 00:48:54 the biggest complaint I've seen is that the order spam means that you might place a market order under the assumption that you'll intersect someone else's order on the book, but by the time you get there that order will be gone 00:49:02 I guess the solution to that would be to not place blind market orders :) 00:49:05 or to limit spam orders 00:50:15 Going to watch some http://www.youtube.com/playlist?list=PL9B79FB0EADB3D0CD 00:51:34 Sgeo: some really strange stuff here: https://www.google.com/search?q=nanex+strange+days 00:51:55 nanex is really hardcore against HFT :) 00:51:58 kmc, how much of a financial background am I going to need to have to understand any of it 00:52:05 half my twitter stream is him bitching about it 00:52:12 dunno 00:52:21 there are pretty pictures 00:52:28 -!- Phantom_Hoover has quit (Remote host closed the connection). 00:54:08 anyway i don't think HFT is a good long-term career for programmers 00:54:15 for reasons I am happy to explain but not right this second 00:54:22 need to purchase a burrito and then shove that burrito into my face 00:54:46 * copumpkin only engages in LFT 00:56:32 -!- oerjan has quit (Quit: Good night). 01:06:38 -!- augur has joined. 01:07:38 -!- Regis_ has quit (Ping timeout: 253 seconds). 01:31:05 what if there is a language that gets offended whenever you assume that a function will return because you're infringeing on it's autonomy 01:31:07 -!- kallisti has joined. 01:31:07 -!- kallisti has quit (Changing host). 01:31:07 -!- kallisti has joined. 01:31:39 so when you add numbers you need to provide a default value in case they don't add 01:32:44 This language is to the Maybe monad what Prolog is to the List monad? 01:32:49 and when you use a value from a variable you have to specify what to do if the variable has forgotten 01:34:03 oh my god I have working DNS 01:34:08 it's a miracle 01:34:24 yes! naturally most of the time every thing will be obliging but if you take things for granted it won't work 01:35:30 although you can become friends with parts of the program and leave out some of the bet hedgeing 01:39:50 and sometimes variables won't want to store values for you because they have more interesting things to do, but if spend a little extra computation time thanking various parts of the program when they help you, they will be happier and faster to help you the next time you ask a favor of them 01:40:48 Are you sure this isn't the Sims 01:41:32 can you get married to your variables? 01:41:37 this is a feature I find lacking in most languages. 01:42:04 yes but if you marry more than one there can be jelousy problems 01:42:58 it would be a truly object oriented language because it would make you treat objets with the proper respect 01:44:26 and you have to interact with your married variables more than any other 01:44:54 -!- DHeadshot has quit (Read error: Connection reset by peer). 01:45:04 `addquote Are you sure this isn't the Sims can you get married to your variables? this is a feature I find lacking in most languages 01:45:35 doesthiswork: that sounds like a DMM languages 01:45:39 s/s$// 01:46:02 Prolog: a synonym for "anything vaguely like logic programming" since 1980 01:46:06 the problem with simula was it wasn't simulationist enough 01:46:26 965) Are you sure this isn't the Sims can you get married to your variables? this is a feature I find lacking in most languages 01:46:58 some time i should figure out what prolog has to do with NLP again because i forgot 01:47:22 coppro: what does DMM stand for? 01:48:53 david morgan-mar 01:49:17 aka dangermouse 01:51:05 I was reading a book about discourse analysis and though that making a language that worked like human relations would be most natural. 01:58:19 -!- madbr has joined. 01:58:59 wasn*t this actually the approach of cobol for example? 01:59:55 You can't marry variables in cobol, no. 02:00:15 sorry..just came in 02:00:43 *backlog 02:01:51 marry a variable is more trouble than it's worth unless you're going to be using that variable pretty exclusively 02:03:27 monogamy is creepy 02:03:45 well they found out marriage would be a bad pattern if there is no way of beating the variables 02:03:59 so for that they decided not to implement it 02:04:07 polyandry am i right 02:04:32 it doesn't enforce monogamy it just has jealousy as a anti scaling factor 03:58:28 -!- esowiki has joined. 03:58:29 -!- glogbot has joined. 03:58:29 -!- glogbackup has left. 03:58:32 -!- esowiki has joined. 03:58:33 -!- esowiki has joined. 03:59:43 -!- Gregor has joined. 04:00:06 -!- Gregor has changed nick to Guest26860. 04:05:10 -!- Guest26860 has changed nick to Gregor. 04:13:43 -!- Mathnerd314 has quit (Read error: Operation timed out). 04:21:12 http://videos.designworldonline.com/video/Air-Force-Bugbots i love the fake pigeon robot at 0:40 04:43:07 I should seriously look for that thing that I think ais523 would like 04:43:29 Or, actually, I don't know if he would 05:07:14 -!- doesthiswork has quit (Quit: Leaving.). 05:09:14 -!- iamcal_ has quit (Read error: Operation timed out). 05:09:16 -!- ssue has quit (Ping timeout: 244 seconds). 05:09:24 -!- upgrayeddd has quit (Ping timeout: 256 seconds). 05:10:17 -!- surma has quit (Ping timeout: 255 seconds). 05:10:26 -!- jix has quit (Ping timeout: 245 seconds). 05:18:59 -!- jix has joined. 05:19:30 -!- copumpkin has quit (Ping timeout: 252 seconds). 05:20:10 -!- copumpkin has joined. 05:21:39 -!- madbr has left. 05:28:27 -!- Nisstyre-laptop has quit (Quit: Leaving). 05:36:50 -!- TeruFSX has quit (Ping timeout: 255 seconds). 05:51:54 The PC-Engine audio seems to very closely resemble something I have made once, except that mine didn't have global volume/balance, and it used ring modulation rather than frequency modulation. 05:56:55 Oh hey github has examples 05:57:18 wrong channel 06:02:04 -!- Nisstyre-laptop has joined. 06:08:58 I intend when I design the computer, one program being Famicom emulator to have two video modes, composite and RGB; the palette setting is ignored in composite mode (the digital video output is also disabled in composite mode, and the emphasis bits have different purpose with composite and RGB) 06:09:13 I don't know whether you consider it a good design or not. 06:19:01 Going to try to watch this and not be sad that it's C# and not Haskell 06:19:01 http://channel9.msdn.com/blogs/charles/erik-meijer-rx-in-15-minutes 07:00:07 elliott, you know how I know you haven't heard of monadic reflection? 07:00:13 * Sgeo angrily glares 07:02:50 http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue2/FunWithLinearImplicitParameters 07:02:51 -!- nooodl has joined. 07:03:24 good markup 07:03:40 It was apparently brought in from an older Haskell wiki 07:06:32 oh linear implicit parameters 07:06:39 one of the few extensions GHC has abandoned 07:07:10 -!- upgrayeddd has joined. 07:08:22 -!- surma has joined. 07:08:59 -!- hagb4rd has joined. 07:09:40 -!- ssue has joined. 07:09:55 -!- WeThePeople has quit (Quit: Leaving). 07:09:59 kmc, does the direct style notation for monads described rely on it? 07:10:26 reify (reflect [0,2] + reflect [0,1]) 07:10:29 I love this so much 07:13:02 heh 07:13:06 don't know 07:27:14 -!- epicmonkey has joined. 07:43:47 -!- pingveno has joined. 07:54:18 -!- nooodl has quit (Ping timeout: 245 seconds). 08:01:55 -!- hagb4rd has quit (Ping timeout: 252 seconds). 08:04:59 -!- epicmonkey has quit (Ping timeout: 255 seconds). 08:16:08 o.O 08:16:42 I have a comment with 1 karma.... because I got 10 upvotes and 9 downvotes. 08:16:42 (counting my own) 08:19:07 -!- DHeadshot has joined. 08:22:57 -!- Nisstyre-laptop has quit (Ping timeout: 248 seconds). 08:24:36 -!- Bike has quit (Quit: leaving). 08:40:38 -!- Slereah has quit (Read error: Connection reset by peer). 08:40:59 -!- Slereah has joined. 08:45:03 -!- doesthiswork has joined. 08:50:46 -!- hagb4rd has joined. 09:09:30 -!- epicmonkey has joined. 09:17:38 -!- FreeFull has quit. 09:23:54 -!- GreyKnight has quit (Ping timeout: 252 seconds). 09:39:35 -!- hagb4rd has quit (Quit: hagb4rd). 09:40:54 -!- copumpkin has quit (Ping timeout: 252 seconds). 09:41:34 -!- copumpkin has joined. 09:58:16 -!- monqy has quit (Quit: hello). 10:04:44 -!- copumpkin has quit (Ping timeout: 252 seconds). 10:05:15 -!- copumpkin has joined. 10:13:18 07:00:07 elliott, you know how I know you haven't heard of monadic reflection? 10:13:29 Sgeo: I don't know how you know this incorrect information, no. 10:13:36 Feel free to keep angrily glaring, it hurts a lot! 10:16:53 -!- nooga has joined. 10:36:05 -!- Jafet has quit (Quit: Leaving.). 10:57:17 -!- Frooxius has joined. 11:22:18 -!- Frooxius has quit (Ping timeout: 244 seconds). 11:22:53 -!- zzo38 has quit (Remote host closed the connection). 11:58:06 -!- azaq23 has joined. 11:58:14 -!- azaq23 has quit (Max SendQ exceeded). 12:06:38 -!- Phantom_Hoover has joined. 12:09:14 -!- shachaf has joined. 12:09:38 `seen kmc 12:09:44 2013-02-19 07:13:06: don't know 12:09:51 `time 12:09:53 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: time: not found 12:09:54 `date 12:09:55 Tue Feb 19 12:09:55 UTC 2013 12:13:06 -!- Snowyowl has joined. 12:14:58 -!- DHeadshot has quit (Ping timeout: 256 seconds). 12:16:42 -!- DHeadshot has joined. 12:20:41 `run date +%s # the Internet time is measured in seconds 12:20:43 1361276442 12:21:02 Why is there no %specifier for .beats? 12:32:49 -!- Arc_Koen has joined. 12:35:50 man, /r/pyongyang is a sight to behold 12:38:25 Well, seconds-ish. 12:52:16 -!- doesthiswork has quit (Quit: Leaving.). 12:57:33 -!- Jafet has joined. 13:02:58 -!- Snowyowl has quit (Ping timeout: 245 seconds). 13:13:38 -!- Snowyowl has joined. 13:21:20 -!- Jafet has quit (Read error: Connection reset by peer). 13:22:16 -!- Jafet has joined. 13:23:42 -!- rodgort has quit (Ping timeout: 252 seconds). 13:28:51 -!- rodgort has joined. 13:46:47 -!- sebbu has quit (Ping timeout: 256 seconds). 13:55:33 -!- DHeadshot has quit (Ping timeout: 245 seconds). 13:56:28 -!- DHeadshot has joined. 13:59:07 -!- sebbu has joined. 14:00:30 -!- Snowyowl has quit (Quit: Page closed). 14:05:34 -!- boily has joined. 14:07:34 -!- sebbu has quit (Ping timeout: 272 seconds). 14:12:23 -!- waksman has joined. 14:15:21 -!- sebbu has joined. 14:16:40 -!- Frooxius has joined. 14:22:14 -!- ogrom has joined. 14:22:54 -!- waksman has left. 14:24:13 Meanwhile in Japan http://youtu.be/j2A002Em8Yw 14:27:37 -!- sebbu has quit (Ping timeout: 252 seconds). 14:54:11 -!- copumpkin has quit (Ping timeout: 245 seconds). 14:54:42 -!- copumpkin has joined. 14:59:25 -!- sebbu has joined. 15:08:47 -!- cuttlefish has joined. 15:48:35 -!- Regis_ has joined. 15:54:01 -!- nooodl has joined. 15:54:06 https://github.com/impressivewebs/HTML9-Responsive-Boilerstrap-js/issues/87 does anyone understand this 15:54:27 oh i see 15:57:36 does anyone know of a simple example of a function that is not primitive recursive even from a higher-order POV? 16:01:15 first: cpressey is on github? second: what the shizzle is this ticket? 16:03:46 -!- ogrom has quit (Ping timeout: 256 seconds). 16:04:02 `pastequotes ZOMGMODULES 16:04:14 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9570 16:05:05 -!- ogrom has joined. 16:06:02 -!- Bike has joined. 16:06:41 `pastequotes quote 16:06:47 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.4722 16:07:14 `quote 124 16:07:15 124) GOODBAD! Your watered down brand of evil conflicts with my botched attempts at dogoodery! 16:08:34 er 16:08:37 why is 225 still there 16:08:39 when 69 was added it was referring to 16:08:40 `quote 68 16:08:42 68) [Warrigal] `addquote hahaha, Lawlabee is running windows 'cuz it's pretty awesome. [Lawlabee] Warrigal: :( 16:08:43 probably that 16:08:53 istr there being a small-scale war over it 16:08:57 Phantom_Hoover: good question 16:08:59 `delquote 225 16:09:04 ​*poof* `addquote I'm a bit 'tarded. (NOTHING PERSONAL!) 16:09:08 now it's not (RIP (Rely In Packages)) 16:09:34 I like how elliott slowly loses it across time. the pernicious long-term side effects of this channel made visible! 16:10:01 boily: how do you know I didn't start without it, and am now slowly regaining it? 16:10:28 elliott: something something kaon symmetry. 16:16:49 elliott: can you give me a simple example of a function that is primitive recursive only in a higher-order POV? 16:17:21 tswett: ackermann 16:18:48 hmm, cpressey is in Cornwall? or was. 16:18:54 Let f(n) be the largest function that is primitive recursive from POV_n, applied n times to n 16:18:59 I should go visit him or something. 16:19:23 elliott i get the sense you know even less about english geography than me 16:19:54 elliott: so what does it mean to be primitive recursive in a higher-order POV? 16:21:02 Phantom_Hoover: It's not in America so it's close enough to visit! 16:21:19 tswett: that's a good question. would you accept a non-answer? 16:21:33 my non-answer is found at the bottom of http://en.wikipedia.org/wiki/Ackermann_function#Definition_and_properties 16:22:50 Hm. 16:23:07 I dunno. Maybe f(n) = the Conway chain 3 -> 3 -> ... -> 3, where there are n 3s. 16:25:04 -!- copumpkin has quit (Ping timeout: 244 seconds). 16:25:41 -!- copumpkin has joined. 16:55:26 -!- epicmonkey has quit (Ping timeout: 245 seconds). 17:02:23 -!- Nisstyre-laptop has joined. 17:03:25 -!- aloril has quit (Ping timeout: 256 seconds). 17:05:33 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 17:05:56 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer). 17:06:32 -!- Nisstyre-laptop has joined. 17:06:44 -!- Phantom_Hoover has joined. 17:07:11 -!- iamcal_ has joined. 17:08:48 -!- pumpkin has joined. 17:08:53 -!- copumpkin has quit (Remote host closed the connection). 17:09:44 -!- pumpkin has changed nick to copumpkin. 17:10:34 -!- Phantom_Hoover has quit (Read error: Operation timed out). 17:10:39 -!- Phantom__Hoover has joined. 17:12:21 -!- Phantom__Hoover has quit (Read error: Operation timed out). 17:13:31 -!- Phantom__Hoover has joined. 17:14:33 https://wiki.archlinux.org/index.php/DVD_Burning 17:14:40 oh this is just fucking typical 17:15:25 a bunch of outdated instructions that are useless for my system configuration 17:16:01 can't you just install cdrkit 17:16:05 -!- hagb4rd has joined. 17:16:06 its in the repos and all 17:16:16 -!- aloril has joined. 17:16:26 % ls /dev/cdrw 17:16:26 ls: cannot access /dev/cdrw: No such file or directory 17:16:27 that's why 17:17:11 where /dev/cdrw is your DVD writer device. 17:17:17 it seems what is typical is your inability to read 17:18:10 very helpful of it to tell me to use my dvd writer device without giving the slightest hint as to how i might work out what it is 17:28:20 -!- DHeadshot has quit (Ping timeout: 272 seconds). 17:28:32 -!- DH____ has joined. 17:40:54 -!- ogrom has quit (Quit: Left). 17:51:39 -!- Snowyowl has joined. 17:56:13 -!- Regis_ has quit (Ping timeout: 252 seconds). 18:01:58 -!- ogrom has joined. 18:03:57 -!- FreeFull has joined. 18:07:20 -!- Nisstyre-laptop has quit (Ping timeout: 252 seconds). 18:09:02 -!- doesthiswork has joined. 18:18:04 -!- Snowyowl has quit (Quit: Page closed). 18:22:51 -!- epicmonkey has joined. 18:24:27 -!- Nisstyre-laptop has joined. 18:24:53 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer). 18:30:21 -!- nortti has set topic: 2+2=5; http://www.techdirt.com/articles/20130218/10364722017/pirate-bays-lawsuit-against-anti-piracy-group-more-about-exposing-double-standards-enforcement.shtml. 18:30:33 shit 18:31:41 -!- nortti has set topic: CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR | http://codu.org/logs/_esoteric/. 18:31:44 haha 18:32:20 that must be the worst case of "sorry, wrong channel" I've ever done 18:36:34 -!- Phantom___Hoover has joined. 18:38:45 `slist 18:38:46 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 18:39:26 `cat bin/slist 18:39:27 echo Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 18:39:59 so olist is the old list, slist is static list and list is self-modifying abomination? 18:40:05 No 18:40:24 olist is the OOTS list, slist is the Homestuck list, and list js the self-modifying abomination. 18:40:32 ah 18:40:32 -!- Phantom__Hoover has quit (Ping timeout: 272 seconds). 18:42:39 where's karkat in the slist? 18:42:57 what's an OOTS? 18:43:04 order of the stick 18:43:20 it's an important concept in topology 18:43:32 looks like so. 18:44:31 doesthiswork: so, does it work? 18:44:57 elliott: does what work? 18:45:45 elliott, you could have pointed me at monadic reflection when I was rambling about mamb 18:46:02 doesthiswork: this. 18:46:17 elliott: no it doesn't 18:46:28 doesthiswork: what is "this" 18:46:47 it's a word 18:47:11 -!- Phantom___Hoover has changed nick to Phantom_Hoover. 18:48:05 `learn this is a word 18:48:09 I knew that. 18:50:57 `? this 18:50:59 this is a word 18:51:30 `? bird 18:51:31 bird? ¯\(°_o)/¯ 18:51:52 `learn bird bird bird bird 18:51:56 I knew that. 18:51:57 `learn bird is a dinosaur 18:51:59 oh 18:52:01 I knew that. 18:52:01 `? olsner 18:52:02 olsner seems to exist at least. 18:52:07 `learn bird bird bird bird 18:52:11 I knew that. 18:52:28 `run echo "no" > wisdom/doesthiswork 18:52:29 -!- Regis_ has joined. 18:52:32 No output. 18:52:34 `? doesthiswork 18:52:36 no 18:52:57 `? hackego 18:52:59 HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing. 18:53:22 `run echo "no" > wisdom/hackego 18:53:25 No output. 18:53:41 `revert 18:53:42 `? hackego 18:53:46 no 18:53:47 Done. 18:55:28 `? fungot 18:55:29 fungot cannot be stopped by that sword alone. 18:56:03 Sword and a pawn? 18:56:31 Can't checkmate a king with just a queen, but queen and pawn work iirc 18:57:03 yes Sgeo 18:57:09 um, where's fungot? 18:57:16 i think the confusion here comes from where queens, or indeed chess, come into it in the first place 18:57:23 youhou? fungot? où es-tu? 18:57:38 fizzie: FUNGOT!!!!!!! 18:57:43 boily: when it dies you yell at fizzie. 18:57:57 elliott: thanks for the tip. 18:58:23 fizzie: FUNGOT! REVIVE IT, OR I'LL GO CANADIAN ON YOU! 18:58:26 Phantom_Hoover, because HackEgo said "fungot cannot be stopped by that sword alone". And I thought to myself, that's like not being able to be checkmated by a queen alone. 18:58:27 hmm, so apparently I "seem to exist at least." ... I guess I should be glad or something 18:58:33 -!- oerjan has joined. 18:58:42 `? nortti 18:58:43 nortti boy. very nortti boy. 18:58:48 Sgeo, it... would have helped if you'd made any attempt at explaining that 18:58:56 `? boily 18:58:57 boily is Canadian or something. We are not sure about Canada's existence. 18:59:14 `? Phantom_Hoover 18:59:15 `? canada 18:59:16 canada? ¯\(°_o)/¯ 18:59:16 Phantom Michael Hoover is a true Scotsman and hatheist. 18:59:48 `? kmc 18:59:50 kmc ran the International Devious Code Contest of 2013 19:00:53 a code contest so devious you'll never hear anything about it 19:00:58 Phantom_Hoover, because explaining jokes is always a good idea. 19:01:08 Or, uh. 19:01:15 no sgeo 19:01:20 Guess it wasn't really a "joke" so much as, um. Something. 19:01:21 i'm still thinking about it 19:01:23 biding my time 19:01:30 i need to decide if it's really a competition 19:01:36 i think i now hate competitiveness in hacker culture 19:02:16 the point, however, is not to make figuring out what the joke has to do with the premise the main part of the joke 19:02:16 Uh. 19:02:50 -!- fungot has joined. 19:03:04 fungot!!!! 19:03:05 olsner: what do you mean ' 5? :) ( i'm sure you're thinking about core syntactic forms or their names. ultra10s are named after weather stuffs 19:03:19 fungot! viens ici que je t'embrasse! 19:03:20 boily: i wish we were using some kind of bizarre interaction between minion and riastradh. :) for me, so i would've said brainfuck. 19:04:08 hmm, "ultra10s are named after weather stuffs" .. they are suns, but does fungot know that? 19:04:08 olsner: fnord/ fnord/ fnord/ bin:/usr/ local/ lib" -dyydebug fnord -i./src -i./temp -c -o temp/ parser.o temp/ fnord ;p fnord 19:07:48 does anyone know of a simple example of a function that is not primitive recursive even from a higher-order POV? 19:08:10 kmc: if you don't help people compete someone else will help people compete and then they'll be better than you 19:08:10 maybe the goodstein sequence length function? 19:08:13 are you going to let that happen 19:08:18 -!- augur has quit (Remote host closed the connection). 19:08:33 (i'm not _sure_ it isn't, but it requires a much higher ordinal than ackermann & stuff... 19:08:37 ) 19:09:04 * boily sleazily and sneakily unbalances a parenthesis: ( 19:09:17 } 19:09:34 OSHI- 19:09:40 ) 19:09:48 Isn't there a Lisp that there's one that closes all open parens 19:09:57 Like ] means however many ) is needed? 19:10:25 yeah but modern lisps don't use it 19:10:25 oerjan: thanks 19:10:35 oerjan: note: I have no use for this, my interest is purely out of curiosity :) 19:10:59 has anyone really been far even as decided to there's one that closes all open parens 19:11:15 oerjan: that said, goodstein is a bit of a bag of worms in terms of something you want to *know* is total (but not primitive recursive)... 19:12:00 kmc if I rember correctly you use a [ and then later the ] would close everything in between 19:12:52 elliott: i see what you did there 19:13:00 I think I specifically had picolisp in mind, but I could be misremembering 19:13:16 boily: what should i buy from amazon that is very cheap or very useful 19:14:15 quintopia: let me check... 19:15:03 elliott: i am not entirely convinced it isn't "higher order primitive recursive", anyhow, since epsilon_0 _is_ the limit of omega^omega^... so you should be able to do something based on the height of that... 19:15:11 kmc: did I do a thing 19:15:57 thingers gonna thing 19:17:16 so maybe you need to go even higher, maybe to that "impredicative" stuff... but now i'm out of my depth. 19:17:17 kmc: help 19:17:43 oerjan: at least this is a good argument for higher-order primitive recursion being all you need to write any function anyone actually cares about :P 19:17:51 (albeit potentially awkwardly) 19:19:27 mhm 19:20:21 where can i find a definition of higher order primitive recursive ? 19:20:49 (no obvious hits from google) 19:21:14 I don't have a forma ldefinition. but "primitive recursive in the presence of higher-order functions" 19:21:34 e.g. you can define ackermann as a primitive recursive function that outputs another function by using higher-order functions 19:21:40 (which themselves are primitive recursive) 19:23:13 quintopia: I'm always partial toward books, but if you want something that is not too expensive and tremendously useful: http://www.amazon.ca/Victorinox-Swiss-Classic-Pocket-Knife/dp/B00004YVB2/ref=sr_1_4?s=hi&ie=UTF8&qid=1361301423&sr=1-4 19:23:28 (adjust to model of your choice, of course.) 19:24:27 -!- GreyKnight has quit (Ping timeout: 260 seconds). 19:25:28 00:54:08: anyway i don't think HFT is a good long-term career for programmers 19:25:31 00:54:15: for reasons I am happy to explain but not right this second 19:25:37 kmc: I am interested in hearing this any time, by the way 19:25:40 i have one. turns out my sister needs a tiny led device that isn't too bright and can be stuck to her dash 19:25:46 soothing kmc rants 19:25:48 for the soul 19:26:17 heh 19:26:26 kmc: do you work in HFT? 19:26:39 olsner: no, but i did for a year and change 19:26:48 one problem is that the code quality is shit 19:27:01 you're building a magic money printing machine; every day you delay turning it on costs you huge in opportunity cost 19:27:14 so the pressure is to copy-paste the most vaguely similar thing, hack it up until it kinda works, and start trading ASAP 19:27:47 the risk of bad trades due to bugs is not really factored in 19:27:49 well, if spending more time increases the rate at which your magic money printing machine prints money... 19:27:49 at least where i worked it wsan't 19:28:01 well i'm talking about infrastructural code, not the strategy code itself 19:28:05 i was working on the former 19:28:16 also if you're in that role, you are seen as a cost center rather than a revenue center 19:28:27 your compensation is mostly bonus, but you're not directly working on one strategy 19:28:40 so you have to play political games and get in good with the various traders in order to get a share of their bonus 19:28:52 it's different at some firms where all traders work together and pool money 19:29:03 * elliott is now wondering where kmc worked... 19:29:09 but i was at a very 'siloed' firm meaning that it was a bunch of quasi-independent traders who didn't trust each other or share code 19:29:19 admit it, you just wanted an excuse to use the word silo 19:29:24 i worked at http://www.tower-research.com/ 19:29:33 don't get me wrong, they treated me okay 19:29:40 i made a lot of money and had an ok time 19:29:45 but it wasn't the place for me long term 19:30:01 one problem though is that there's a certain personality type, maybe even the dominant one, who absolutely can't tolerate a decrease in standard of living 19:30:08 if you're like that, you basically can't leave finance once you enter it 19:30:15 elliott: maybe something like "definable in system F as a function in terms of church numerals?" the system F types prevent you from using general recusrion, but church numerals are all you need to do primitive higher-order recursion, they're like defined to be... 19:30:18 i'm fortunate enough that i don't have this problem 19:30:26 *recursion 19:30:33 i can't really take credit for that because i think it's almost a biological addictiveness thing 19:30:36 "decrease in employment" 19:30:47 any more than i can take credit for being able to drink alcohol without becoming an alcoholic 19:31:03 (you need something like system F to be able to use a church numeral on different functino types) 19:31:08 *function 19:31:19 tromp_: ^ 19:31:44 ^[[6;2~ 19:32:05 ah! found. damned incongruous weechat shortcuts. 19:34:59 I think I see the power of pipes 19:35:14 oerjan: you can define church numerals in system F, can't you? 19:36:10 kmc: that sounds like a fun candidate for a genetic screen, to see which genes are more common than in the background population 19:37:24 kmc: thank you for all the info btw, it was interesting 19:39:54 :) 19:40:06 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 19:40:47 -!- Phantom_Hoover has joined. 19:41:37 elliott: sure, they're just the type forall a. (a -> a) -> a -> a 19:44:43 oerjan: right. so isn't it equivalent to "definable in system F"? 19:44:57 i guess :) 19:46:37 or did you mean solely with the church numerals and nothing else? I guess not 19:47:16 i vaguely recall seeing Ackermann as an example of something you could define in Coq because it could do higher order primitive recursion 19:47:46 and that more advanced things required you to prove well-orderedness of the relevant ordinal 19:48:10 yeah 19:48:26 but I don't know that you *can't* define everything like that in terms of higher-order primitive recursion 19:48:33 (and it just being simpler not to do so) 19:48:59 oerjan: Isn't that function application 19:49:53 Except the a remains the same 19:49:54 it might be that everything with numbers boils down to h.p.r. provided you can prove the function terminates 19:49:59 :t ($) 19:50:01 (a -> b) -> a -> b 19:50:15 oerjan: oh boy, we're acronymming already 19:50:18 FreeFull: ($) is just the church numeral 1 :) 19:50:36 I wasn't necessarily trying to restrict things to numbers, but this just gets even vaguer if you don't... 19:50:48 FreeFull: consider the function \f -> f . f 19:50:52 oerjan: What's 0? 19:51:02 flip const 19:51:10 aka \_ x -> x 19:51:54 So is 2 \f -> f . f . f 19:52:13 > join(.)(join(.))succ 0 19:52:14 -!- augur has joined. 19:52:15 4 19:52:26 FreeFull: no, that's 3 19:52:40 i did learn a lot of cool things working in finance 19:52:50 i learned C++ for real 19:53:07 although i quickly became frustrated that coworkers / existing code wouldn't use the language in full 19:53:15 i learned about high performance low latency network kernel things 19:53:28 i learned about how markets actually work, which is strange and terrifying 19:53:36 goodstein is easily defined in haskell 19:54:08 * Sgeo doubts that Jane Street would hire him :( 19:54:14 @let gs=g 2 where g b 0=b;g b n=g c$s 0 n-1 where s _ 0=0;s e n=mod n b*c^s 0 e+s(e+1)(div n b);c=b+1 19:54:17 Defined. 19:54:19 I mean, I don't even have much knowledge about the language they use 19:54:19 kmc: learning C++ for real doesn't sound particularly cool :P 19:54:27 I know _other_ functional languages 19:54:28 > map gs [0..3] 19:54:30 [2,3,5,7] 19:54:33 @quote kmc c\+\+ 19:54:33 kmc says: C++ is at least interesting to learn. it's a good esolang 19:54:47 gs 4 is rather huge though:( 19:54:56 Is gs 4 11 19:54:56 elliott: i disagree 19:55:02 C++ is a fascinating and unique language 19:55:06 tromp_: that's probably not primitive recursive though 19:55:06 it's worth learning for the same reasons as Haskell 19:55:13 it will change the way you think about other languages 19:55:22 gs 4 = 3 * 2^402653211 - 1 19:55:24 but you have to learn it in depth and not just "C with classes and crap" 19:55:25 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds). 19:55:33 (i guess it doesn't have a type which proves termination) 19:55:50 here's a nugget: C++ is the only language I know where objects are first class, not just references to objects 19:55:56 gs 5 is hard to describe in words:( 19:56:06 you've said that half a dozen times and i still can't imagine what you mean 19:56:16 it's pretty cool to understand what this really means, and why it implies things like copy constructors and operator= exist 19:56:31 Bike, when you do a = b, b gets ... copied, I think 19:56:32 Bike: in Java if x is an object and you say "y = x" that's effectively just a pointer copy 19:56:35 it's boring 19:56:44 > gs 6 19:56:49 mueval-core: Time limit exceeded 19:56:56 in C++ you have pointers and references but you also have types for objects themselves 19:57:01 lambdabot knows the right words 19:57:05 which you can copy, and pass and return by value in functions 19:57:15 and this has various other ramifications for the language 19:57:17 huge ramifications 19:57:31 kmc, couldn't you work for a few more years and retire:-? 19:57:32 -!- Phantom_Hoover has joined. 19:57:57 Can you write gs in agda 19:57:58 for example it's what makes RAII work -- because objects declared as auto variables have deterministic lifetime 19:58:05 and it's why you have copy constructors and operator= 19:58:08 -!- azaq23 has joined. 19:58:16 -!- azaq23 has quit (Max SendQ exceeded). 19:58:17 and why smart pointers work 19:58:43 -!- azaq23 has joined. 19:58:50 tromp_: they weren't paying me /that/ much and i wasn't working /that/ hard 19:59:21 Why are you praising c++ anyway, this is #esoteric link to some scott meyer articles or something 19:59:30 i mean this was a "$100k/yr for 40-50 hr/week" not a "$500k/yr for 90 hr/week" kind of deal 19:59:37 btw, what is gs? 19:59:37 kmc: You mean objects aren't first-class in Ruby? 19:59:38 pay wasn't that much higher than FaceGoogleSoft 19:59:42 FreeFull: i don't believe so 20:00:03 i mean, in most contexts we conflate an object with a reference to that object, to some degree 20:00:07 but in C++ the difference is very important 20:00:25 = 20:00:27 i would have been paid more in subsequent years if i'd stayed but I also would have gone insane 20:00:37 Even = doesn't mean the same thing among different languages 20:00:40 It's fun 20:00:41 and that's even without working a lot harder to get the big bonus bux 20:00:43 "even" he says 20:01:04 We need equality diagrams for equality diagrams 20:01:11 also the bonus system is kind of fucked up 20:01:20 Jafet, talking about assignment here 20:01:30 once you've been there a few years, most of your pay is in the annual bonus 20:01:34 salary doesn't go up very much 20:01:39 bonus should be based on whole company performance 20:01:44 Wait, = means assignment in your language? 20:02:04 but that's a lump sum once a year, and it's arbitrary, and they would also tend to fire people right before bonus time 20:02:07 kmc: it is interesting that finance seems to be the most viable career path if you want to do functional programming commercially 20:02:18 huh. i swear there was an existing monoid instance for Monoid (a -> b) that's just like, mappend = (.), mempty = id. (that IS a monoid, right) 20:02:19 I wonder why that is 20:02:23 nooodl: Endo 20:02:31 basically you get hooked on the high-spending lifestyle BUT most of your income isn't even a little bit guaranteed 20:02:33 ahh 20:02:34 bad combo 20:02:39 people spending their bonus 6+ months ahead of time 20:02:40 on rent 20:02:42 bad times 20:02:48 Is there a somewhat nonesoteric language where - does not mean subtraction? 20:02:54 That is the best lifestyle 20:03:04 elliott: depends what fp is blah blah 20:03:14 right now i'm ass deep in anonymous functions in some javascript web code 20:03:17 * Bike goes to look up operator=, suddenly doesn't understand anything 20:03:31 Sgeo: snobol? 20:03:36 kmc: "haskell or ocaml or maybe F#" 20:03:42 or uh scala I guess 20:03:47 Sgeo: APL :p 20:03:50 but I've heard nightmarish things about scala 20:03:56 nooodl: pretty sure APL uses - for subtraction 20:03:59 elliott, or Clojure? Or does Clojure not count as FP for you? 20:04:02 T&T::operator=(T&&)throw() 20:04:25 it uses − not - 20:04:34 (it was sort of a joke) 20:04:54 Iverson knows better than to use hyphens for subtraction 20:05:05 I hear bad things about Clojure too 20:05:21 you hear lots of bad things. 20:05:24 even better: ¯ is a minus sign 20:05:31 Oh, that's right, yesterday in the shower I thought of a programming language 20:05:34 yes and you say most of them Bike OH SNAP???????? 20:05:37 [ ] is a loop 20:05:53 Anything else is a token that gets pushed onto the stack 20:06:11 :( :( :( 20:06:20 When [ is encountered, the loop enclosed by the matching ] is evaluated 20:06:33 And the resulting stack gets plopped right onto the current 20:06:50 -!- GreyKnight has quit (Quit: .). 20:06:54 When ] is reached, it's checked if the element is of type Loop 20:07:43 Bike: it's ok 20:07:46 If so, it's popped off and checked if the value is Loop or Dont 20:07:53 I bet the interpreter for this language is shorter than the english description of the language 20:08:09 If there is no such value, then the whole stack gets dumped and the loop terminates 20:08:30 No functions get evaluated until the very end though 20:08:37 So for example [ 20:08:40 my self-esteem is destroyed :( 20:08:54 So for example [ 3 3 [ + ] Dont ] will result in 6 20:08:56 i think i'd understand this better if it were an interpreter 20:08:58 -!- augur has quit (Read error: Connection reset by peer). 20:09:14 @wn dont 20:09:14 No match for "dont". 20:09:22 What's Dont, and why doesn't the [ + ] need it? 20:09:24 Yeah, I think I should write the interpreter 20:09:27 -!- augur has joined. 20:09:27 ~duck dont 20:09:27 I bet I'm not being helpful 20:09:28 DONT is a conventional overcall against an opposing 1NT opening bid. 20:09:30 -!- carado has joined. 20:09:33 Sgeo: Dont is the default 20:09:52 Why does the outer loop need it? 20:09:56 It doesn't 20:10:01 I just put it there anyway 20:10:07 it's equivalent to [ 3 3 [ + ] ] ? 20:10:13 Yes 20:10:23 (is that equivalent to "3 3 +"?) 20:10:27 Yes 20:10:33 hmm 20:10:42 :( I thought I understood it, now I don't 20:10:44 I was pondering making looping the default though 20:10:49 I don't know which one would be easier to work with 20:10:54 i kinda get it 20:11:33 I never wrote an interpreter for a language though 20:12:02 I'm thinking this is a fusion between stack-based programming languages and brainfuck 20:12:18 Call it Brainstuck 20:12:52 I'm wondering when to do function evaluation though 20:13:24 Because [ 3 [ 3 4 + ] + ] can be replaced with [ 3 7 + ] 20:13:24 If your language is simpler than oklopol's brainfuck fuckiest fuck and it's a brainfuck derivative, don't write it!!! 20:14:01 But for [ 3 [ 3 + ] ] there isn't a final value yet 20:14:29 *Most ever Brainfuckiest Fuck you Brain fucker Fuck 20:14:29 Jafet: It doesn't actually take anything from brainfuck other than the [ ] similarity 20:15:01 brainstuckiest 20:16:08 replace [ with brain and ] with fuck 20:16:15 brain3brain3+fuckfuck 20:17:07 brain 2 fuck harder 20:17:26 2 brains 1 fuck. that's probably been done already 20:17:30 -!- epicmonkey has quit (Ping timeout: 264 seconds). 20:17:35 ... why did I not see the intermission intermission coming 20:17:53 :t over 20:17:54 Profunctor p => Setting p s t a b -> p a b -> s -> t 20:18:01 AIEEE 20:18:09 s t a b 20:18:18 @quote s.t.a.b 20:18:18 byorgey says: @type (^.) s -> Getting a s t a b -> a I would not like to be getting a stab, thank you 20:18:44 the type system of that library is probably written just for that joke 20:19:04 http://www.haskell.org/ghc/docs/latest/html/libraries/base/GHC-Generics.html#t:M1 20:19:09 it was accidental 20:19:44 i thought someone pushed it to change from abcd to stab? 20:20:01 yes that was shachaf 20:20:03 how is there not an esolang named Branefuck 20:20:04 but it wasn't for the pun 20:20:11 kmc: I think oklopol described one 20:20:14 `pastelogs branefuck 20:20:17 shachaf was deep pundercover 20:20:45 It would be nice if TH were nicer 20:20:45 No output. 20:20:48 shachaf is very sharp 20:20:55 kmc: you are a horribleterrible person 20:21:20 Sgeo: yes 20:21:22 kmc: are you expecting somebody who wants to make a brainfuck derivative to know anything about brane theory 20:21:37 Bike: yes 20:21:47 `pastelogs branefuck 20:22:02 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1806 20:22:11 > over (element 3) succ "Sgeo" 20:22:14 "Sgep" 20:22:29 > over _last succ "Sgeo" 20:22:31 "Sgep" 20:22:33 so branefuck only exists in that it is speculated on, cool 20:22:48 I wouldn't like branefuck to become the new Canada. 20:22:50 > set (element 3) 'p' "Sgeo" 20:22:51 -!- nooodl_ has joined. 20:22:53 "Sgep" 20:23:53 kmc: if you know things about brane theory please create branefuck 20:23:57 I guess oerjan is most likely to 20:24:23 . being backwards is going to confuse me 20:24:52 kmc: there is FukYorBrane 20:24:53 its not backwards 20:25:00 > (map.fmap) succ [(1,2),(3,4)] 20:25:04 [(1,3),(3,5)] 20:25:14 > (map.first.map) succ [([1,2],2),([3,4],4)] 20:25:17 [([2,3],2),([4,5],4)] 20:25:21 ok that one is symmetric so maybe a bad example :P 20:25:38 > (map.first.map.first) succ [([(1,2),(3,4)],2),([(5,6),(7,8)],4)] 20:25:41 [([(2,2),(4,4)],2),([(6,6),(8,8)],4)] 20:25:51 > mapped . _1 . mapped . _1 %~ succ $ [([(1,2),(3,4)],2),([(5,6),(7,8)],4)] 20:25:54 [([(2,2),(4,4)],2),([(6,6),(8,8)],4)] 20:25:56 the same order 20:26:00 * oerjan has no idea about brane theory, well it's something related to strings i think. 20:26:18 -!- nooodl has quit (Ping timeout: 272 seconds). 20:26:30 :t (%~) 20:26:31 Profunctor p => Setting p s t a b -> p a b -> s -> t 20:26:37 elliott: i'm pretty sure he means in lens? 20:26:42 :i Profunctor 20:26:44 oerjan: yes. 20:26:48 oerjan: did you read my last two lambdabot queries? 20:26:56 they express the same idea, and compose in the same order 20:27:00 but the _first_ one has nothing to do with lens at all 20:27:00 The resonant frequency of a planck length of fuck you 20:27:02 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 20:27:19 OKAY 20:27:21 it composes exactly the right way for what conal calls semantic editor combinators -- i.e., editing functions 20:27:25 like fmap, first, etc. 20:27:33 the error is in considering a lens as a type of getter 20:27:40 if you consider it as a type of setter, then the order falls out of that 20:28:07 (in fact a lens is just a semantic editor combinator polymorphic over an effect) 20:28:19 ((a -> b) -> s -> t becomes (a -> f b) -> s -> f t) 20:28:36 -!- Phantom_Hoover has joined. 20:28:39 :t mapped 20:28:41 (Functor f, Settable f1) => (a -> f1 b) -> f a -> f1 (f b) 20:31:18 Lenses would probably make my Trustfuck implementation clearer 20:34:41 Why are there unsafeCoerces in Lens? 20:34:48 magic 20:34:54 -!- carado has quit (Ping timeout: 264 seconds). 20:35:28 Sgeo: because GHC is bad at optimising newtypes 20:35:42 actually the unsafeCoerces are in the instances of profunctors 20:35:46 *the profunctors package 20:35:56 but we use them in a standard pattern because of GHC 20:36:17 -!- copumpkin has quit (Read error: Connection reset by peer). 20:36:49 -!- copumpkin has joined. 20:38:45 Will there ever be a language extension for making lenses automatically without TH? 20:39:16 -!- ogrom has quit (Quit: Left). 20:40:05 there are a multitude of record system proposals. using TH is convenient enough as it is 20:44:12 high performance libraries typically make a mockery of the idea that Haskell is a type-safe pure functional language 20:44:17 i think this is basically fine though 20:44:25 push the ugliness into core libraries, give users a nice interface that's also fast 20:44:35 i would still rather write my impure unsafe marshalling code in Haskell rather than C 20:44:38 for many things anyway 20:45:55 well we don't even really do anything that bad 20:46:11 it is just composing newtype constructors/destructors onto functions (actually arrows in a profunctor) 20:46:18 that is the single thing GHC is too dumb to inline away for us 20:46:30 well except edwardk's generalisations might have screwed up the whole "it inlines to nothing" part of lens 20:48:20 In languages like C, is high performance code typically idiomatic? 20:48:28 Or in CL? 20:48:30 Same question 20:51:14 it's all relative 20:51:28 i would say the gap is smaller in C but it's still there 20:51:49 it also depends a lot on your compiler 20:51:57 same in Haskell except everyone uses the same one 20:52:17 in C people will do things like hand-unroll loops if the compiler isn't smart enough to 20:52:39 actually i saw a good presentation about how most cutesy C performance tricks are counterproductive these days 20:53:05 you're better off writing the straightforward thing and letting the compiler and CPU pattern-match it 20:53:17 but a lot of C programmers didn't get the memo yet 20:53:45 I unrolled one step of a few recursive functions in some Haskell code. But it was for better inlining, because GHC is awful at inlining recursive things. 20:53:57 Did you know GHC doesn't turn "reverse []" into "[]"? 20:55:10 Micro-optimization scares, confuses, and frightens me 20:55:23 classic example is the xor swap: "a ^= b; b ^= a; a ^= b;" 20:55:35 this looks clever and sounds better than "temp = a; a = b; b = temp;" 20:55:40 Sgeo: hacker's delight is fun 20:55:55 Bike, ? 20:55:56 shachaf: why not? 20:56:03 maybe it's faster if you assume the compiler is "close to the hardware" and that the CPU is an in-order sequential processor from the 70s 20:56:06 as is often assumed 20:56:17 but actually compilers will recognize the temp swap and use an exchange instruction 20:56:24 Bike: Well, inlining recursive functions is tricky. 20:56:29 and even if they don't, exchanging registers is cheap because the hardware is doing register renaming anyway 20:56:43 Sgeo: a book with a lot of micro sort of tricks, which as kmc is saying are more and more integrated into tools 20:56:44 whereas the xor trick ties up arithmetic units and introduces more data dependencies 20:56:52 * impomatic has a copy of Hacker's Delight. First edition unfortunately. Not sure what they added in the second edition. 20:57:05 shachaf: i'm just thinking not side effectful operation on constant argument 20:57:05 well a lot of the things in HD don't have an idiomatic naive form like the swap does 20:57:21 Bike: ? 20:57:30 i wouldn't expect a compiler to recognize a for loop that counts the number of bits set in a word 20:57:35 though compilers can be scary smart 20:57:45 kmc: I bet some do. 20:58:06 i liked the thing where clang will implement "if (x == 3 || x == 17 || x == 29 || x == 31)" by building a lookup table in an immediate 64-bit value 20:58:15 that was crazy 20:58:41 elliott: i bet some compilers recognize the xor swap, sigh, and emit an XCHG 20:58:55 Random question: does anyone know how to download every message ever posted to a USENET group, going back ~25 years? 20:59:12 There should be a compiler thing where it generates a De Bruijn sequence for you. 20:59:29 hey nice, that paper on cuttlefish sight says specifically they used PowerPoint to make checkerboards for some reason 20:59:43 ....paper on cuttlefish? 21:00:02 yes 21:00:07 did u kno people study animals 21:00:08 is that surprising or 21:00:30 I thought momentarily that "cuttlefish" had to be referring to a computing thing 21:00:34 Which I hadn't heard of 21:00:42 -_- 21:00:44 cuttlefish: eval "hi sgeo" 21:00:48 ~eval "hi sgeo" 21:00:49 "hi sgeo" 21:01:04 Papers on boily's bot. 21:01:07 i should find that paper about how some marine organism i forget much about has eyes like television cameras 21:01:26 (eyes are really weird) 21:02:07 I only named my bot cuttlefish because of circumstances involving chocolate ice cream and a game of DOTA in tokyo. 21:03:05 that sounds exciting 21:03:07 the circumstances I mean 21:03:12 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds). 21:03:32 -!- Phantom_Hoover has joined. 21:03:54 searching for "ieee transactions on cuttlefish" got me "Initial Design of a Biomimetic Cuttlefish Robot Actuated by SMA Wires" so i'm gonna call this a win 21:04:27 beautiful 21:04:34 a lot less than i expected on vision actually 21:05:20 "Undulating Fins of a Cuttlefish Robot" also things that may be porn? 21:05:48 "Edge detection and texture classification by cuttlefish" sounds interesting. 21:06:43 yeah most of the work on cuttlefish seems to revolve around the camouflage/sight business 21:07:23 they use differently patterned camouflage based broadly on whether whatever it is is "continuous" or "discrete" so it's probably a pretty good model organism for edge detection crap 21:10:57 did you see the squishy robots from harvard 21:11:00 they have no bones 21:11:23 they're like rubbery envelopes that move around by fluids being pumped in/out (externally) 21:12:13 Reminds me of these creatures in a book i’m reading. 21:12:21 I'd like myself some squishy robot with me, but I doubt it'd taste as delicious as the real thing. 21:12:39 the cuttlefish is squishy except for the cuttlebone. 21:12:49 it eats harder things like crabs and shrimps 21:13:10 i watched the nova documentary on cuttlefish, it was freaking cool 21:13:24 some of them will circle their prey while blinking a hypnotic skin coloration pattern 21:13:30 in order to dazzle and then eat them 21:13:48 heh 21:13:49 seeing them eat is weird 21:13:54 just, shoop, you're dead 21:14:07 yeah they have some kind of mouth part that jets out to grab 21:14:10 or is it one of the tentacles 21:14:15 apparently they know to grab crabs from behind 21:14:23 cause the pinchy bits are at the front of the crab 21:17:27 hey guys, i spent hours copy pasting links to finally build the M4SteRlSt of internernet radio stations..don't even know why, but having about 3000 entries a life-savig wonder happened, and i decided i was ready. 21:17:27 so first of all i wanted i wanted to hide the treasure and buried it somewhere, so some archeoligsts might find it the future completely overthrowing their views on the culture of our time. but even before i thought this through this jagged naughtly little shit turned out to be a tiny RESTservice!! 21:17:27 well so here it is: 21:17:33 http://hagbard.host-ed.me/admin/radio.php?out=debug&shuffle=1&limit=1&filter=* 21:17:40 http://hagbard.host-ed.me/admin/radio.php?out=debug&shuffle=1&limit=1&filter=* 21:17:49 maybe you can do somethin useful with this. like connect it to a radio or pipe it to dev/null 21:19:17 * hagb4rd tumbles 21:22:44 -!- augur has quit (Remote host closed the connection). 21:24:18 `fetch http://hagbard.host-ed.me/admin/radio.php?out=inline&shuffle=1&limit=1&filter=*MitamineLab* 21:24:23 2013-02-19 21:24:22 URL:http://hagbard.host-ed.me/admin/radio.php?out=inline&shuffle=1&limit=1&filter=*MitamineLab* [58/58] -> "radio.php?out=inline&shuffle=1&limit=1&filter=*MitamineLab*" [1] 21:24:54 hagb4rd: what can i use that for and how 21:25:57 well you can switch between 3000 cool radio stations.. just need to plug that shit to that HTML5 audio element for example 21:26:06 but i guess that's about it 21:26:22 sure..anyone could add links 21:26:29 one could rate it and stuff 21:26:32 but blah 21:26:45 well why not go ahead and plug it into that html5 audio element on your page 21:26:53 sure 21:27:00 -!- augur has joined. 21:27:46 i'll show you later on 21:28:30 but i need a break..eat someting..take a walk. 21:28:41 yep 21:28:44 good idea 21:28:49 yup 21:35:01 freefull: how would you get a loop to cycle 5 times? in all your examples it looked like they stopped after one cycle 21:36:39 btw.. you mostly don't even need to implement sth with the out=firstforward option.. but that depends on your client.. 21:36:42 http://hagbard.host-ed.me/admin/radio.php?out=firsforward&shuffle=1&limit=1&filter=* 21:37:29 gets a completely random stream and puts it directly to the client (whatever requested it) 21:38:02 maybe i could add some mime/http headers :..later 21:38:18 http://hagbard.host-ed.me/admin/radio.php?out=firstforward&shuffle=1&limit=1&filter=* 21:38:53 -!- hagb4rd has changed nick to hagb4rd|lounge. 21:42:06 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 21:42:26 -!- Phantom_Hoover has joined. 21:42:34 `? endofunctor 21:42:36 Endofunctors are just endomorphisms in the category of categories. 21:44:44 doesthiswork: 5 [ 1 - 0 == Loop Dont ? ] 21:45:32 `? endomorphism 21:45:34 Endomorphisms are just morphisms which compose with themselves. 21:45:36 Actually, swap the Loop and Dont 21:45:39 Or make it /= 21:45:47 `? endotheworld 21:45:48 endotheworld? ¯\(°_o)/¯ 21:45:52 Or make it >= 21:46:12 `? endoendofunctor 21:46:14 endoendofunctor? ¯\(°_o)/¯ 21:46:15 -!- KingOfKarlsruhe has joined. 21:46:31 doesthiswork: 5 [ 1 - 0 >= Loop Dont ? ] 21:46:32 `? exofunctor 21:46:33 That should work 21:46:33 exofunctor? ¯\(°_o)/¯ 21:46:42 `? exomorphism 21:46:44 exomorphism? ¯\(°_o)/¯ 21:46:46 `? category 21:46:46 aww 21:46:47 Categories are just categories. 21:47:06 not categories in the category of categories? 21:47:06 `run ls -lh wisdom/category 21:47:08 ​-rw-r--r-- 1 5000 5000 32 Feb 13 16:28 wisdom/category 21:47:09 `run ls -lh wisdom/categories 21:47:10 ​/bin/ls: cannot access wisdom/categories: No such file or directory \ /bin/ls: cannot access wisdom/categories: No such file or directory 21:47:11 freefull: I see now 21:47:24 `run echo "Categories are just a special case of bicategories." >wisdom/category 21:47:25 `? endoscope 21:47:27 No output. 21:47:29 endoscope? ¯\(°_o)/¯ 21:47:39 `? bicategory 21:47:41 bicategory? ¯\(°_o)/¯ 21:47:48 a generalization of categories? 21:47:57 'a special case' isn't nearly almost helpful enough 21:48:10 it's not supposed to help, duh 21:48:34 this aint #category-helpdesk 21:49:04 -!- fenris_kcf has joined. 21:49:06 olsner: yes 21:49:12 freefull: why have a special "loop/ don't" version of boolians? why not use normal boolians for the loop test? 21:49:21 i said almost help 21:49:31 olsner: there's even (∞,n)-categories 21:49:37 I have no fucking idea what they are 21:49:41 good categories 21:49:47 `learn category-helpdesk is a helpdesk with identity and composition. This channel isn't it. 21:49:51 I knew that. 21:50:10 are those the same as quasicategories? 21:50:20 doesthiswork: Because of what happens when you don't have the right indicator on the stack 21:50:21 (also called quasicategory, weak Kan complex, inner Kan complex, infinity category, ∞-category, Boardman complex, quategory) 21:50:45 the center cannot hold\ 21:50:49 -!- lale has joined. 21:50:53 freefull: what happens? 21:50:54 `welcome lale 21:50:56 lale: 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.) 21:50:57 An (∞,n)-categories are just (n,r)-categories where n=∞ and r=n 21:50:59 i think the center already gave up sgeo 21:51:01 s/...// 21:51:11 `welcome fenris_kcf 21:51:13 fenris_kcf: 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.) 21:51:20 doesthiswork: The loop terminates and everything gets dumped 21:51:32 Onto the higher-up loop's stack 21:51:45 -!- lale has quit (Read error: Connection reset by peer). 21:52:16 -!- ais523 has joined. 21:53:03 freefull: I mean, could you give a nice example where it is nicer to use loop/not loop than 0/not 0? 21:53:36 Going to go read all of PBF now 21:54:31 good life choice 21:54:41 [ 4 [ 1 - 3 = ] 10 20 ? ] 21:55:09 Basically, you should be able to surround anything in [ ] and have the code do the same thing unless there is a Loop/Dont 21:55:31 I need to look into actually implementing this 21:55:35 that is a good reason 21:57:46 I'm wondering if something resembling higher-order functions is possible with this syntax or not 22:00:01 so what about [ [ 1 - 3 = ] don't loop ? ] 22:00:21 I meant [ 4 [ 1 - 3 = ] don't loop ? ] 22:00:40 when we put brackets around "loop" does it's behavior change? 22:00:47 [ [ 1 - 3 = ] don't [loop] ? ] 22:16:52 isn't [ loop ] an infinite loop 22:17:01 (did this thing change since you last talked about it) 22:18:15 -!- cuttlefish has quit (Read error: Operation timed out). 22:19:14 I believe that it is an infinite loop which is why I can't quite make them work like higher order functions. 22:19:22 it's the one value you can't return 22:19:54 -!- boily has quit (Ping timeout: 264 seconds). 22:22:57 -!- GreyKnight has quit (Ping timeout: 248 seconds). 22:34:33 [ Loop ] is an infinite loop 22:36:09 [ Loop Dont ] returns Loop 22:36:21 [ Dont Dont ] returns Dont 22:36:37 doesthiswork: Is this satisfactory? 22:37:39 that is satifactory (I've always had a poor imagination) 22:39:00 so by using [ * dont ] you can surround anything without change 22:39:39 -!- oerjan has quit (Quit: leaving). 22:39:48 or if loop looped on boolians [ * 0 ] would do the same 22:45:35 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.89 [Firefox 19.0/20130215130331]). 22:51:56 Pretty much 22:52:55 -!- noam_ has quit (Read error: Connection reset by peer). 22:53:34 -!- nooodl_ has changed nick to nooodl. 22:54:12 -!- augur has quit (Remote host closed the connection). 22:57:57 -!- dessos_ has joined. 23:00:45 -!- dessos has quit (Ping timeout: 256 seconds). 23:01:01 -!- augur has joined. 23:01:19 -!- rodgort has quit (Ping timeout: 256 seconds). 23:01:42 -!- rodgort has joined. 23:11:22 doesthiswork: That is a good argument for getting rid of Loop/Dont actually 23:16:44 if you hit the end of a loop and the inside is true then, then the loop is reset to exactly how it was before executing? 23:18:44 No 23:18:53 !bfjoust brachiationtest >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-] 23:19:06 ​Score for quintopia_brachiationtest: 20.4 23:23:36 !bfjoust brachiationtest >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(+)*50(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-] 23:23:38 ​Score for quintopia_brachiationtest: 32.2 23:23:52 quintopia: so what does brachiation actually do? 23:24:06 it's kind-of all over the place in terms of trying to read it 23:24:10 I'm wondering if I should evaluate everything as soon as possible, or to delay evaluation until the end 23:24:35 Which might or might not have an effect on stack manipulation operators depending on how they're implemented 23:25:02 !bfjoust brachiationtest >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*4<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-] 23:25:05 ​Score for quintopia_brachiationtest: 19.1 23:25:08 ha 23:25:25 -!- hagb4rd|lounge has quit (Quit: hagb4rd|lounge). 23:26:21 great programs here quintopia 23:26:53 i like the 3s 23:27:09 Also, it would matter for IO, unless I decide to try special syntax for that 23:27:15 !bfjoust brachiationtest >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-] 23:27:18 ​Score for quintopia_brachiationtest: 37.0 23:27:29 -!- Regis_ has quit (Ping timeout: 255 seconds). 23:28:40 i could probably do better by adding a longer special case for that decoy, but it's supposed to be somewhat golfy 23:29:33 ais523: its basically the golfed version of space hotel. it sacrifices the ability to know exactly where was poked in order to be smaller 23:29:45 ah right 23:29:48 -!- augur has quit (Remote host closed the connection). 23:29:49 like the original _poke? 23:30:00 I'm wondering if to do it as a Haskell EDSL or if I should do it properly with Parsec 23:30:31 has anyone written a genetic algorithm for bf joust 23:30:36 yeah 23:30:39 it sounds so perfect for the task 23:30:48 !bfjoust brachiation >->(-)*5>(+)*5(>)*3(>[(<)*3(+)*7<<(+[<{}>(+)*4[<(-)*50(>)*7(>[-[-[-[(>)*3(+*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3 (>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7 (>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-] 23:30:51 ​Score for quintopia_brachiation: 36.8 23:31:17 !bfjoust brachiationtest < 23:31:20 ​Score for quintopia_brachiationtest: 0.0 23:31:48 nooodl: it's actually quite hard to evolve a good jouster 23:32:02 genetic algorithms do sort-of OK at constant tweaking, but brute force does better for that 23:32:16 i just rewrote it slightly to be able to beat programs that outrush it, like david_werecat_golf 23:32:20 in terms of general strategy, the problem is that the parts of your program typically have to work together in some meaningful way 23:32:37 basically, it now knows how to deal with rushes that don't leave decoys 23:32:51 or few decoys 23:33:00 take a lock/full-tape-clear combo as an example of something that doesn't seem likely to be generated by any sort of naive evolver 23:33:56 it could be done. you could evolve based on parameterized genes that generate various strategy types 23:34:47 hah, and information free language http://pastebin.com/trAf3vbP 23:34:55 *an not and 23:35:12 like "start a full tape clear at cell 8 that runs 64 cycles out of every 128 and cedes control to another gene in the remaining cycles" is one type of gene (where the numbers would be parameters) 23:35:53 128-cycle locks are really hard to win with, on a longish tape you just can't clear before you run out of cycles 23:36:00 nooodl: BF Joust is the kind of thing that looks good for evolving at first sight 23:36:09 but it's sort of like evolving real actual programs 23:36:15 they have structure, they store state, they do branching 23:36:17 -!- augur has joined. 23:36:32 they just have obscure syntax and happen to work on unreliable memory 23:36:36 ais523: the 128 would be a parameter, which means an evolver could find the actual best cycle length 23:36:45 quintopia: well, yes 23:36:46 well, i was thinking of something more like what quintopia said 23:36:47 also you can't reliably 'combine' programs for their best traits 23:36:56 elliott: hardly any BF Joust programs use the tape for computation 23:37:03 the only ones I can think of offhand are waterfall3 and triplock3 23:37:09 ais523: well, no, but there is "state" 23:37:13 tweak parameters on winning strategies 23:37:15 it's not particularly that it's unreliable, it's just too slow 23:37:17 it's just, most people don't think of it as state when they're writing it 23:37:21 nooodl: I've used evolvers for that in the past 23:37:25 stuff like tripwires and decoys etc. 23:37:29 but normally I bruteforce instead 23:37:34 -!- Arc_Koen has quit (Quit: Arc_Koen). 23:37:37 Phantom_Hoover: you could combine them if you came up with some sort of description language for the strategies they use 23:37:40 elliott: hmm 23:37:44 at least tripwires are more like control structures 23:37:48 like the parameterized gene description 23:38:19 isn't that the hard part in the first place 23:38:20 anyway there should totally be BF Joust 3v3 matches 23:38:29 what would that even mean? 23:38:30 lol 23:38:52 there's no "move sideways" command 23:38:55 bidirectional BF joust melee free-for-alls on a ring tape 23:38:56 just forwards and backwards 23:39:08 quintopia: hmm 23:39:18 how would you "kill" another program? 23:39:21 it wouldn't work with existing programs, they'd leave their decoys the wrong side of the flag half the time 23:39:26 nooodl: set the flag to 0 for two cycles 23:39:27 right 23:39:27 as usual 23:39:41 you'd have to code for it specifically 23:39:42 oh there's just flags scattered throughout the ring 23:39:45 how about k-dimensional bf joust, where your programs have to work on a "tape" of an arbitrary number of dimensions 23:39:58 and then what you do is pit the entire hill against each other simultaneously, in every possible spatial configuration 23:39:59 and there are > commands for every direction? 23:40:13 -!- augur has quit (Remote host closed the connection). 23:40:19 quintopia: more like general commands for moving along which dimension you're operating on I think 23:40:28 and that "dimension tape" wraps or something 23:40:42 butbut the problem of dimensionality 23:40:43 BF Joust on a ring seems at least viable as a variant 23:40:51 I'd probably find it less interesting than regular 2v2 jousting, though 23:40:52 how about Most ever Brainfuckiest Fuck you Brain fucker Fuck joust 23:41:10 fuckfuckfuckjoust for short? 23:41:14 brainfuck derivative joust MOBA 23:41:19 ais523: how does regular 2v2 work? 23:41:46 Bike: MeBFFyBfF Joust, I think 23:41:52 err, I meant 1v1 23:41:56 just said the wrong thing 23:41:58 that has BFF in it 23:42:02 is brainfuck your friend 23:42:08 yes 23:42:10 :') 23:42:14 aww. 23:42:18 i like elliotts idea for a bfjoust tournament that is exponentially long in the number of players 23:42:30 for short it should be "Fuck you". just drop the "Joust" 23:42:36 (and also everthing else) 23:43:16 quintopia: wouldn't it be worse than exponential 23:44:23 hmm… I have a new idea for a noncomputable function 23:44:36 ais523: what is it? 23:44:54 f(n) = the largest value that can be printed by a terminating program of length n 23:44:59 it's sort-of like busy beaver 23:45:08 but has the benefit that it grows faster than any computable function 23:45:25 so does busy beaver...? 23:45:56 hmm 23:46:02 I wonder which is faster? probably mine 23:46:05 why is it noncomputable 23:46:20 halting problem. 23:46:21 similar reasons to kolmogorov 23:46:36 nooodl: because it's easy to prove that it grows faster than any computable function 23:46:43 if it were computable, that'd cause a contradiction 23:46:53 can't enumerate the set of terminating programs of length n without doing that 23:47:38 ais523, i feel like you should add in a +1 there 23:47:42 oh, duh, terminating, 23:47:50 i need sleep 23:48:03 nooodl: well nonterminating programs don't output values, if you take the traditional mathematical view of them 23:48:13 also i remember seeing this on stackoverflow when i was trying to find an explicit proof of a faster-than-computable function 23:48:14 so the definition would be the same without "terminating" in there, but more confusing 23:48:43 also: 1 - 1/f(n) grows slower than any computable function 23:48:47 23:44:59 it's sort-of like busy beaver 23:48:47 23:45:08 but has the benefit that it grows faster than any computable function 23:48:52 ais523: what did you think the point of busy beaver was... 23:49:01 shhh we did that already 23:49:05 ais523: btw, I forget if it was you or someone else who said this but - 23:49:06 yes what Phantom_Hoover said 23:49:08 Phantom_Hoover: that's still really weird to me 23:49:12 elliott: the number of cycles that the longest-running terminating program runs for 23:49:13 that's far more mindblowing than growing faster, I think 23:49:17 ais523, your function basically /is/ busy beaver anyway 23:49:17 even though it's the same thing 23:49:32 hmm, it's reasonably equally mindblowing for me 23:49:34 well, it's not that i didn't see the word "terminating" or something 23:49:41 huh, I just remembered Hofstadter's number 23:49:43 like... there being a speed limit isn't that surprising 23:49:46 Um... slightly confused 23:49:48 (it's equal to the number of times you thought about Hofstatder's number) 23:49:49 but there being a limit to how /slow/ you can go? 23:49:50 he has a number now? 23:49:51 oh. 23:49:54 WHy not a function that doesn't grow? 23:49:59 i was just thinking "there's only a finite amount of length n programs, so just go through all of them and find the largest one!" 23:50:00 Sgeo: then it doesn't grow 23:50:06 Sgeo: slower than any monotonically increasing computable function* 23:50:16 nooodl: determining what a program outputs can be harder than it sounds 23:50:17 ah, ok 23:50:39 i wonder if you can do that and /also/ have it grow without bound 23:50:52 Phantom_Hoover: clearly not 23:50:55 -!- zzo38 has joined. 23:50:58 there are bounded monotonically increasing computable functions 23:51:24 i just had a brain bunny about how to use the tape to record how far was poked. HMMMMMM 23:51:37 i really don't have time to explore it :( 23:51:37 yeah i guess the 'outs' i was considering don't really work 23:51:46 this is why i hate analysis 23:53:04 it's probably impossible anyway 23:53:34 Anybody still play Minecraft? 23:53:42 i play survivalcraft 23:53:48 i might consider it 23:54:09 wait, so what about the min-kolmogorov function, m(x) = the largest value of C(y) for y between 0 and x? isn't that unbounded? 23:54:34 Phantom_Hoover: Tryin' to bring back #esoteric-minecraft . I have a server set up and 1.5 players who aren't me X-D 23:55:46 what's the highest complexity class you can get for a language that doesn't create or destroy information? 23:55:57 TC? 23:55:58 what does that mean 23:56:05 Define "create"... 23:56:08 if you mean reversible languages 23:56:17 cf. that fredkin automaton, some other things 23:56:23 Arguably reversible languages still create data. 23:56:27 I do mean reverseable 23:56:54 you give it a list of values at the beginning of the program 23:57:16 and then you get them back rearranged (I think) 23:57:24 dont reversible languages create *more* data on average than equally powerful irreversible languages? 23:57:26 well a fredkin gate is certainly enough for TC 23:58:01 on the wikipedia article they had wires splitting which breaks the no creaton of information rule 23:58:01 doesthiswork, that's so obviously tc i can't be bothered demonstrating that it is 23:58:48 it is obviously turing complete if you have a large list of values that you already know (like a free list) 23:59:18 ... 23:59:41 (also your definition of reversible is not the one the rest of the world uses)