00:01:19 !delinterp wacro 00:01:19 ​Interpreter wacro deleted. 00:01:23 !addinterp wacro perl http://pastebin.com/RazAC34W 00:01:24 ​Interpreter wacro installed. 00:01:26 !wacro 00:01:26 Bareword found where operator expected at /tmp/input.30875 line 4, near ""Content-Type" content" 00:01:27 fail 00:01:31 use sprunge 00:01:31 !wacro 4 5 00:01:32 Bareword found where operator expected at /tmp/input.30938 line 4, near ""Content-Type" content" 00:01:35 lol wat. 00:01:36 oh rite 00:01:40 didn't use the raw link lol 00:01:43 nope 00:01:43 !delinterp wacro 00:01:44 ​Interpreter wacro deleted. 00:01:44 thats html too 00:01:48 oh hm maybe not 00:01:51 i guess they fixed that 00:01:54 it has \r\n i think??? 00:01:59 i mean the raw pastebin thing 00:02:01 yes 00:02:01 just use sprunge 00:02:04 doesnt matter really 00:02:09 isn't that a feature of HTTP in general? 00:02:11 \r\n sads me 00:02:28 !addinterp wacro perl http://pastebin.com/raw.php?i=RazAC34W 00:02:28 ​Interpreter wacro installed. 00:02:30 !wacro 00:02:31 FCU 00:02:34 !wacro 4 5 00:02:35 OTPP 00:02:38 !wacro 10 00:02:39 CPLPFMLAMS 00:02:45 ...I didn't put a limit. 00:02:51 !wacro 50 00:02:51 LHNSRCBCVCBAMBHZSCAHITDTDHJGMSCDCPUGTCHHTTWUDOHESG 00:02:54 !wacro 999 00:02:55 CAMPABNGDCYNACDJSSKDCUCJBREMMRRTLMSCPGSAITOMRSFGSMCVGABSCDCTSTNHOGDARGSDTBTIPMCWRRREBMILARSDSCRTFPGYAPPBBJJFCBEBEFMOHPMDRMBAAGCLETPSBCDVLSFCMSLFGULSHSSWTSMCRIAPCMPSNDSGCIGMOQOPVPUHCLTAHIOPDTOLMMJMCGAPBPBNTMMFBWLRMWSCICMMNISRHTFCCFHMPLOCBWPSSDRPLLPMBMDSMAECCSITGMRCSSRGBTCMTAPGLPVPAMTILTDTMGDDANFWDPCAMTESJHPLTPOMUORDMERMSGPQCXMFRCMCAMOSCWFAHRIHRCBBCCVPTENCBDETEECSSBDSQHLGWCISADISDTRPHGFRBMSSMNGSAHPSDVITWDWIIRRSFRACMAAQBUTDTGFQSAPOPIHBRTGMSFDUMCLPVAGTPALBBRBSCTAHPUB 00:02:58 so yeah 00:02:59 snazzey 00:03:00 * CakeProphet fixes that. 00:03:16 let's see how many letters is that Wikimedia association. 00:03:20 !wacro abcdef 00:03:21 Argument "abcdef" isn't numeric in range (or flop) at /tmp/input.31529 line 47, <> line 1. 00:03:45 "or flop" 00:03:52 yep. 00:04:12 though it would be pretty spiffy if it knew what context .. was being used in for error messages. 00:05:27 you know what would be spiffy? 00:05:30 if contexts weren't a thing 00:05:33 yeah I went there 00:05:45 contexts are awesome and totally not an issue ever. 00:06:13 "oh no is this return value going to be interpreted in scalar or list context???" doesn't matter. 00:07:29 but you can find out with wantarray if you want to provide different logic. 00:08:04 !perl sub test(){wantarray} print test 00:08:05 1 00:08:21 !perl sub test(){wantarray} print (test*3) 00:08:22 0 00:08:37 :( 00:09:34 I don't really see what's bad about that, but to each their own. 00:10:26 so yeah, next step: try to make it generate pronouncable acronyms. 00:12:06 !delinterp wacro 00:12:06 ​Interpreter wacro deleted. 00:12:12 !addinterp wacro perl http://pastebin.com/raw.php?i=s2SVjFMB 00:12:12 ​Interpreter wacro installed. 00:12:17 !wacro 50 1000 00:12:18 Can't return outside a subroutine at /tmp/input.32648 line 46, <> line 1. 00:12:27 oh rite should've debugged. 00:12:29 !wacro 00:12:30 PGID 00:12:48 pgid 00:12:48 ...er what. I used return in a map 00:12:51 that is totally a thing I can do. 00:12:54 !wacro 00:12:55 PBLBZ 00:12:58 pblbz 00:13:04 ...wat? 00:13:10 !wacro 00:13:11 UFABPTL 00:13:13 ufabptl 00:13:20 what are you doing. 00:13:36 these are bad :( 00:13:41 make them better :( 00:13:46 pgid was almost okay 00:13:57 look okay it is a very simple program. 00:14:00 I don't know what you're expecting. 00:14:13 !acro 00:14:17 KOFKXKMEAI 00:14:19 that's bad too 00:14:27 !acro 00:14:31 WCRQ 00:14:34 :( 00:15:25 !delinterp wacro 00:15:25 ​Interpreter wacro deleted. 00:15:28 that sounds like a radio station in america 00:15:42 !addinterp wacro perl http://pastebin.com/raw.php?i=Ec8RSQtM 00:15:43 ​Interpreter wacro installed. 00:15:47 !wacro 00:15:47 -!- yorick_ has joined. 00:15:48 FSIG 00:15:50 elliott: an east coast radio station to be exact. 00:15:54 fsig 00:15:59 !wacro 999 00:16:00 CMMTASBCMAUOTTPWDTAMABSMAPSCESYPSUCDRJITCPDFCPTLMVRPSAFEIMSCPRRRNIFCAPSVDTNPSLMDKJSDMPCCRBIBSIEAIMSAFMDPWRCSPIBEWCSEWLGSFRJWALDRDSBRJGGCCMPPHWRCERIESSTSLSRLCOLBSBCSJLAWIDIIPNAWSCHMSTSSSDTPCTNCPRVSLLJAPEOSPMBPTCMCCMRCGBVLEDLPATKCBHFGADMKSRSSNCLIBGFOHMORFSBHIPYMPPRBCPBSSBSCSASPJCTGCKRSCSNCFFALWTPPPPBHJCRORMMRVSFBFCBBSMMSPBPBJBTPMOMGGOHMHNBCARHPMTCCRCARVTBMVTACJDTBPGKFBABSIPMTSKNHIDABACKDWTNPSLSTBPMDDSOBKSBSFIMTBAIDOGPBFWDPTRGPSVRLUSCMBEBJBLDOFTATTFHUPTCBRMCDSMGAWAS 00:16:00 though KOFKXKMEAI could be a west coast radio station. 00:16:03 wacro 00:16:08 ...wat I thought I fixed that. 00:16:36 !wacro 25 50 00:16:37 SAOSOGCVFPHSSRCSFPESPMVISCCCBSNPEPCFESFRC 00:16:40 !wacro 999 999 00:16:41 TYHSTBLRLFSDZPLTATPCSSMOSBSRRCMGQBFPSRJBPSLGBPFSBVDGAZTTSPVCALPBTGBDTBSPURCBBETMRBSHIGIBHGRCTMSCDLGWAVSJVWPUPPWIRDNVBAGFPMITUPECCHGBBTALTCTPILPWJDSDLTCNGABGRLWDDOGFVCOWHADCBFHMSBOCAPFHDBTLWIJMETNIASUCDMHMLOFPAAFSSFIRRSCCETFBHIBBAGIDCVRMSRAEMTODPMGEARFFSLCHSDAIAGSCOOBMQEPORCDCTDGCESDDABHSCMPWMPCACPCCOHBHJPPIABWHTTATWGRPLILSWDLBFQVMWABUDIPSLIBGLSDRGSSTCJPSSRBIMPGTMSLZTPNCSFPLPMISWORWRGTRNTMELABSFTHCPZHDRPCSDSLPAPSSBTAMMRMLFSGTCCAHOUMFAIBCSMBAFPKHLPPAGSDGVDPFMAMRDAD 00:16:50 ... 00:16:55 what does the second one do does it a range 00:16:59 betwen th eifrst and second 00:17:02 yes. 00:17:04 -!- yorick has quit (Ping timeout: 264 seconds). 00:17:18 well it's broken right now actually. 00:17:19 http://en.wikipedia.org/wiki/WCRQ 00:17:20 one sec. 00:17:23 today's best hits 00:17:28 http://en.wikipedia.org/wiki/Arab,_Alabama 00:17:35 Two other proper names for the town were sent to the US Postal Service for consideration: "Ink" and "Bird." 00:19:22 !delinterp wacro 00:19:22 ​Interpreter wacro deleted. 00:19:27 !addinterp wacro perl http://pastebin.com/raw.php?i=mvP0STSg 00:19:28 ​Interpreter wacro installed. 00:19:32 !wacro 9999 00:19:33 !wacro 5000 9999 00:19:33 TSOKCFUMCTBDAWTWSTFBATTTG 00:19:33 CPICBMSAGBEAFMSTRKCECBPHB 00:19:41 limit is 25 00:19:45 !wacro 25 999 00:19:46 KUSRSDPIBSAIHMPSRDTDADLTF 00:19:56 !wacro 9999999999999999999999999999999 00:19:56 SVMSPAERHBWFGAPRVAWDSCMGJ 00:19:59 !wacro 25 00:20:00 VNLBBANEEWABMSWGGCMTDDSSI 00:20:06 !wacro -1 00:20:07 Argument "" isn't numeric in numeric gt (>) at /tmp/input.2229 line 46, <> line 1. 00:20:10 !wacro 0 00:20:19 obviously. :P 00:20:19 !wacro abcdef 00:20:20 Argument "abcdef" isn't numeric in numeric gt (>) at /tmp/input.2341 line 46, <> line 1. 00:20:27 !wacro 1.2 00:20:28 TU 00:20:31 tu 00:20:39 stop making them better. 00:20:41 that is not better. 00:20:45 acronyms are abbreviations for things. 00:21:00 17:22:38 Execution of /tmp/input.23630 aborted due to compilation errors. 00:21:03 17:22:38 00:21:08 presumably from the !wacro 0 00:21:18 try it 00:21:22 !wacro 0 00:21:29 nope. 00:21:38 didn't you get the dcc chat request? 00:21:42 !wacro 0 00:21:43 maybe it takes some time 00:21:44 nope 00:21:58 0 would just make nothing happen. 00:22:04 then how did that happen???? 00:22:15 probably an earlier one? 00:22:18 !perl -1 00:22:21 lol 00:22:22 but which 00:22:24 !wacro -1 00:22:24 Argument "" isn't numeric in numeric gt (>) at /tmp/input.2662 line 46, <> line 1. 00:22:46 well so far these are all runtime errors so... 00:22:54 !wacro 2 3 4 00:22:55 CG 00:23:04 yeah it ignores anything above 2 args. 00:23:09 !wacro 1 00:23:10 V 00:23:12 v 00:23:19 ... 00:23:42 feel free to remove the "uc" at the bottom of my code. 00:23:49 and make your own acronym generator command. 00:24:02 v 00:24:03 just for you. because you're weird and like them to be lowercase. 00:24:14 !wacro 5 00:24:14 SLSEA 00:24:59 okay so basically I have a markov chain of sorts. 00:25:11 Is there Haskell parsing program that I can add stuff into? 00:25:45 where the previous characters determine which random selection function is used. 00:26:32 zzo38: ? 00:27:01 monqy: ?? 00:27:04 ?????? 00:27:16 parsing program? add stuff into? help 00:28:07 parsec? 00:28:08 -!- yretssin has changed nick to Nisstyre. 00:28:11 Such as, adding stuff to support new syntax and macros and various other thing, including to be able to check stuff doing during compiling to check for duplicate definitions, combine things together, and so on 00:28:34 CakeProphet: Parsec is a general parsing program I have used it, but I mean one specifically parsing Haskell codes 00:28:57 you could use any kind of general purpose language for that. 00:28:59 zzo38: haskell-src-exts, haskell-src-meta, and friends? 00:29:09 monqy: OK, let me see 00:29:11 to just translate unprocessed file to Haskell source. 00:29:14 zzo38: dunno how extensible they are 00:29:43 zzo38: but they're for haskell source manipulation and friends 00:29:54 GHC, ghci, and lambdabot all have Haskell parsers that you could borrow code from. 00:30:52 How would I find the haskell-src-exts and haskell-src-meta? And which files in GHC and ghci would I use? Can I write codes to extend existing GHC/ghci? 00:31:17 http://hackage.haskell.org/package/haskell-src-exts-1.11.1 00:31:19 http://hackage.haskell.org/package/haskell-src-exts http://hackage.haskell.org/package/haskell-src-meta 00:31:24 I've heard Google is pretty good for that sort of thing. 00:31:32 i used hoogle 00:31:58 haskell-src-exts has a parseFile function that you would probably find useful for this. 00:32:21 there's lots of stuff 00:32:26 and the module Language.Haskell.Exts.Build has functions to construct Haskell source trees 00:32:53 there's also stuff to output template haskell i think 00:32:58 for use in quasiquoters, friends 00:33:30 haskell-src-meta at least has some TH examples 00:35:49 that's what haskell-src-meta is for i think 00:36:10 i didn't know if it was also for other things 00:36:54 so yeah Markov chain = good way to generate acronyms. 00:36:55 I can find a lot of information about haskell-src-exts but haskell-src-meta has not much information 00:37:11 haskell-src-meta has examples 00:37:16 I dunno about haskell-src-ext 00:37:16 s 00:40:19 !perl sub test(){}sub test2(){} print (\test)==(\test) 00:40:56 !perl sub test(){}sub test2(){} $x=\test; print $x==$x 00:40:56 1 00:41:12 lolwat 00:42:23 !perl sub test(){}sub test2(){} $x=\test;$y=$x; print $x==$y 00:42:23 1 00:42:51 for some reason two different subrefs pointing to the same thing are not equal. 00:43:23 !perl sub test(){}sub test2(){} print (\&test)==(\&test) 00:43:24 CODE(0x7fbbb0d05aa8) 00:43:30 >_> 00:44:01 !perl sub test(){}sub test2(){} print (\&test==\&test) 00:44:02 1 00:44:05 oh ojay. 00:44:08 *k 00:48:10 Is it possible to write syntax extensions to GHC? Some of the -X options provide their own syntax extensions but is it possible to write external ones? 00:49:25 where by external you mean? doesn't have to be compiled into ghc? 00:49:32 Yes 00:49:36 I don't know the specifics 00:50:52 I also think Template Haskell is not powerful enough to make up an entire module or to read an entire module, there are some things it doesn't do 01:00:40 What I would want to do, is for example, you can define your own reserved words which are always error, and you can catch errors including all information including what is around it and what is expected here, and other kind of error, etc. And then you can tell it to replace that and other things with something else 01:02:00 For example, I would like to be able to make it eliminate duplicate definitions and combine definitions, for example to change data Color = Red | Green; data Color = Green | Blue; into data Color = Red | Green | Blue; 01:03:26 Are there Haskell interpreter modules that can be included with another program? 01:05:02 yes, like whatever lambdabot does? 01:05:12 I don't know what lambdabot does 01:07:15 Not very well, anyways 01:07:36 what do you do in this case: data T a b = Z | A a b | C b a; data T a b = Z | A a b b | C a b 01:08:04 zzo38: mueval 01:08:05 CakeProphet: Generate an error message because the definitions of constructor A and C do not match 01:08:08 zzo38: http://hackage.haskell.org/package/mueval 01:08:13 zzo38: mueval is terrible though. 01:08:18 zzo38: For more flexibility, see http://hackage.haskell.org/package/hint, which mueval is built upon 01:09:39 CakeProphet: (An error message, which can of course, be caught like other errors and decide what to do, even if an error caused it to do this and then it is a second error which can also be caught afterward) 01:10:13 But this should be allowed: data T a b = A a b; data T b a = A b a; 01:10:33 I appear to have started a flame war in #scala 01:11:21 good job sgeo, hero to all 01:11:25 what's it about 01:11:46 Haskell's lack of enterprise stuff and whether "enterprise" stuff is useful 01:12:31 wqhat's enterpreise stuffe 01:12:37 what 01:12:41 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)). 01:12:50 drdozer> no, you don't. If the boss says you're writing a component that's exposed through SOAP and talks to other components exposed through SOAP, with colaborators implementing their SOAP end-points in .NET, Java and Python, that's what you do 01:13:28 http://hackage.haskell.org/package/shoap? 01:13:33 i'lkl never survive in the real wordle 01:14:17 these compoents are filthy 01:14:20 they need a good scrubbing 01:14:25 -!- rodgort has joined. 01:17:52 http://codu.org/tmp/wol3-2011-08-23.ogg Have some musix 01:18:42 I have ideas, to invent Meta Haskell, it is usable in addition to Template Haskell. The syntax stolen by Meta Haskell is $${ and $$( and $$ with a word after that is no space between. But it is not allowed to be part of a "symbols" word. And then you have $$include which is like #include in C, $$setflag $$clearflag $$ifflag $$ifnflag which is like #define #undef #ifdef #undef except they are not macros and not used anywhere else, 01:19:43 `addquote Maybe I should try to learn Scala instead of Ruby I will boil your veins. Which is less bad? Probably Scala, but I don't want you learning languages. 01:19:45 618) Maybe I should try to learn Scala instead of Ruby I will boil your veins. Which is less bad? Probably Scala, but I don't want you learning languages. 01:20:01 poor sgeo 01:20:11 has sgeo learned haskell yet 01:20:26 no 01:20:34 $$reserve and $$reserveLayout to make new reserved words, it parse program into tokens, you can insert your own stuff to do, and then parse to syntax tree telling what kind of declaration and so on which you can also insert your own stuff and catch errors and stuff, and then you can make it do stuff with that result, and add postprocessor afterward 01:22:42 has Patashu learned Haskell yet? 01:22:59 Is there anything that can be used to do the things I describe? 01:23:38 there's already an extension to use CPP 01:23:51 .. 01:24:29 I've heard Perl has a pretty good regexes and stuff. >_> 01:24:42 I know there is, but it doesn't do the other things I have described and it has some other problems too, since CPP is not designed for use with Haskell anyways 01:25:49 @CakeProphet: Not enough to use it 01:25:49 Unknown command, try @list 01:26:19 huh weird, Wikipedia doesn't say whether Perl is strongly typed or weakly typed. 01:26:47 I'd say it's weakly typed, sort of. 01:26:52 For example, CPP certainly cannot do $$( $${ $$reserve $$reserveLayout 01:27:16 CakeProphet: it's most certainly weakly typed 01:28:07 Has anyone ever made a CPPPP joke 01:28:25 cpreprocessorpreprocessor? 01:28:29 cpluspluspreprocessor? 01:28:30 monqy: yeah but it's strongly typed when it doesn't make sense to be weakly typed in its type system. 01:28:32 The former 01:28:39 !perl print "abc" > "123" 01:28:56 oh, nevermind, that was a warning. 01:29:02 !perl use warnings; print "abc" > "123" 01:29:02 Argument "abc" isn't numeric in numeric gt (>) at /tmp/input.7685 line 1. 01:29:03 Well, I have use features of Enhanced CWEB for extra preprocessing of C codes 01:29:03 in conclusion perls dumb 01:29:21 but it's a different kind of weak typing than C 01:29:28 it's not at a byte-level. 01:30:01 it's all contexty. 01:30:22 i never said it wasn't 01:30:31 right I was thinking aloud. 01:30:45 elliott: omg writing bots is so much suck :( 01:31:06 Gregor: by bot do you mean rezzo warrior or like... IRC bot? 01:31:08 or? 01:31:09 Gregor: Have you tried using my library 01:31:14 CakeProphet: Rezzo 01:31:24 elliott: Haskell is for dorks! 01:31:32 Gregor: Dorks who write bots 01:31:49 elliott: IIRC, you haven't actually accomplished anything :P 01:32:07 Rezzo? 01:32:20 Gregor: tantrum.hs 01:32:24 Gregor: But I was working on the queue stuff last 01:32:42 Can the "hint" program work with Template Haskell? Can it allow you to catch errors and then it can continue where it left off with the changes you made so it is not error? 01:35:12 Gregor: but C is THE BEST LANGUAGE THERE IS FOR ALL PURPOSES EVER 01:35:17 surely this should be easy. 01:35:38 CakeProphet: Just because it's the best language doesn't mean that it's obvious what a bot should do at all :P 01:36:00 imagine yourself as an agent. 01:36:03 should make things easier. 01:36:10 map out your decision process. 01:36:25 lol 01:36:33 :> 01:37:41 I'd say the trickiest part is navigating around walls 01:37:44 or deciding to break through them. 01:38:53 Gregor: Well, you could code a pathfinding algorithm to start with 01:39:08 That assigns appropriate higher costs to wires that need to be destroyed 01:39:50 it wouldn't be terribly helpful at the start though 01:39:55 since you have no idea where anything is at all. 01:40:34 but it would be safe to assume that breaking through a wall is probably going to let you go in the direction you want to go faster than walking all the way around. 01:40:44 at least initially. 01:40:51 when trekking somewhere unknown. 01:41:40 but if you're just wandering around going around the walls would allow you to cover more total distance. 01:42:37 Yeah, the very first thing you need to do is wander aimlessly. 01:43:09 Gregor: How about write a bot that tries to see the entire world 01:43:14 (With hardcoded world-size) 01:43:16 And merge this into a worldview structure 01:45:41 are you given starting coordinates? 01:45:54 CakeProphet: Irrelevant. 01:46:20 might not be. also, smaller world might be better. 01:46:58 Dude ... your starting coordinates are entirely irrelevant. 01:47:03 World size isn't :) 01:47:18 it tells you which boundary you're closest to. 01:47:25 unless it wraps or something. 01:47:59 It's a torus. 01:48:14 which is a fancy way of saying it wraps around right? 01:48:30 In both dimensions 01:54:11 !perl my ($x,$y,$z,$a)= 0..3; ($x,$y,$z,$a) = ($y,$z,$a,$x); print $x,$y,$z,$q 01:54:12 123 01:54:26 !perl my ($x,$y,$z,$a)= 1..4; ($x,$y,$z,$a) = ($y,$z,$a,$x); print $x,$y,$z,$q 01:54:27 234 01:54:43 !perl my ($x,$y,$z,$a)= 1..4; ($x,$y,$z,$a) = ($y,$z,$a,$x); print $x,$y,$z,$a 01:54:43 2341 01:54:45 lulz 02:05:35 ....what. 02:05:39 why did they zip an mp3 02:06:43 more compression 02:07:33 It's the only common archival format on Windows. 02:07:41 Well, unless you count RAR, I suppose. 02:15:47 uuuugh this intro to software engineering class is going to be so bad. 02:16:19 CakeProphet: That's the nature of SE. 02:16:28 CakeProphet: Enjoy learning the terrible UML. 02:18:06 favorite words for professor: "system" "solution" "complexity" "testing" 02:18:45 what's intro to software engineering hehehehehee 02:19:26 it's a class that claims to give you real world experience about designing large-scale software projects. 02:19:30 but in fact teaches you nothing. 02:20:17 Unfortunately, that's a bit hard to teach in an academic setting. 02:20:43 It could probably be *done*, but not in the way that professors would like. 02:25:17 I want to have a Haskell command "more" that is followed by a capitalized word and optionally parameters, ussable in place of any of the following: A statement in a do-block. Where a constructor is expected in a data type declaration. A declaration of a class member. A name in an import or export list for a module. A case in a case expression. 02:25:56 what would it do? you might be able to implement it with quasiquoters 02:26:14 maybe not the name in an import or export list part 02:26:26 For example: hoge = do { putStr "x"; more Hoge; return 17; }; more Hoge = putStr "zzz"; more Hoge = doSomething; 02:26:48 Do you understand what it would mean from this example? 02:27:06 no 02:27:19 Actually sorry, it should be like this: hoge = do { putStr "x"; more Hoge; return 17; }; Hoge = putStr "zzz"; Hoge = doSomething; 02:27:37 what would it do 02:27:49 more Hoge becomes everything assigned to Hoge? 02:27:51 Or this: data Color = more Colors deriving Eq; Colors = Red; Colors = Green; Colors = Blue; 02:27:58 Patashu: Yes. 02:29:51 To give an example with paramters: data T t = Z | more TTT t; TTT a = Once a; TTT b = Twice b b; 02:29:51 zzoskell 02:30:44 That is one of my ideas. 02:31:09 the audio quality of this classroom recording is terrible. 02:31:25 but the class is scheduled at the same time as another class, so I have to listen to these. 02:37:16 And in case of do-statements with <- you could have: do { x <- work; x <- stop x; stop x; } which would be like do { x <- work; y <- stop x; stop y; } (after "more"-expansion) 02:41:42 Um. Doesn't that already work? 02:41:49 pikhq_: I don't know; I have not tried it. 02:42:04 It should based on how the do notation transform works... 02:42:16 Yes it works already 02:42:18 I tried it now 02:42:21 That's the same as: work >>= \x-> stop x >>= \x-> stop x 02:42:39 Which is of course the same as: work >>= stop >>= stop 02:44:54 I tried using GHCi and yes it does already work that way. 02:46:57 zzo38: The problem with "more" for extending "data"-types is that every function defined on an ADT has to either have a blanket handling of unhandled constructors, or else be incomplete... 02:47:06 What I would like to have is that we can have Meta Haskell which allows you to make up things such as "more" command rather than having it built-in, therefore you can make up a lot of other stuff too 02:47:11 That is, every function must be written with all the constructors that will be added in the future in mind 02:47:16 Which makes it much less useful than it could be 02:47:20 This is essentially the Expression Problem 02:47:39 This may interesting you a bit: http://personal.cis.strath.ac.uk/~conor/pub/she/higpig.html 02:47:50 From the she Haskell preprocessor that adds a few interesting features, some related to dependent types 02:47:52 (used by the Epigram project) 02:48:00 the linked http://www.daimi.au.dk/~madst/tool/papers/expression.txt is also a really good read 02:48:09 (the solution in GJ presented is not relevant to understanding it) 02:48:09 elliott: Well, if you combine the "more" with "data" and the "more" with "case", then you can possibly solve the problem you described. 02:49:04 zzo38: That sounds like pretty much a direct attempt at solving the expression problem, then 02:49:14 In which case you probably really want to look at http://personal.cis.strath.ac.uk/~conor/pub/she/higpig.html like I said 02:49:21 (You'll need to understand GADT syntax to get it) 02:49:57 Yes I did read the information about GADT syntax already 02:50:21 Does "dobblego" sound familiar to anyone? 02:50:24 not that it's difficult or anything. 02:50:30 (GADT that is) 02:50:31 Sgeo: What of him? 02:50:43 He's Tony Morris, the guy behind Functional Java. 02:50:54 Active in #haskell, I think he uses Scala quite a bit, and he has a blog??? 02:50:59 I don't know what you mean 02:51:11 And in some cases with this "more", you have some things with fall-back that in a few places where that data type is used, you only care about some of the constructors, and ignore others (or do something else specific in all other cases that you did not specify otherwise) 02:51:44 wow this class is going to be so gay. 02:51:48 I think he comes off as a bit of a Haskell fundie, I guess. Also, I ended up on the opposite side of some argument as him 02:52:13 deriving (Eq) is one situation where you might only care about a few constructors in certain functions, rather than all of them. Because, you can test for equal. 02:52:26 He's not a fundie, he just doesn't bother debating with people without a decent amount of background information, which is perfectly reasonable. 02:52:49 is sgeo trying to argue without knowing what he's talking about 02:52:52 (HInt: You probably don't have the relevant background.) 02:52:56 [asterisk]Hint 02:53:01 i just noticed the arduino ide looks just like the processing ide. who is copying whom? 02:54:10 Arduino is copying Processing, IIRC. 02:54:14 Arduino hardware is programmed using a Wiring-based language (syntax + libraries), similar to C++ with some simplifications and modifications, and a Processing-based IDE.[3] 02:56:51 arduino is atmega...what? i know wiring was 128 03:02:12 !wacro 03:02:13 MASAJESC 03:02:21 !wacro 03:02:21 EUCWCB 03:03:55 !wacro 03:03:56 CPO 03:04:02 !wacro 03:04:02 DBRETESQ 03:04:14 !wacro 1 4 03:04:14 WB 03:04:14 bretesq is good 03:04:21 !wacro 1 4 03:04:22 D 03:04:24 d 03:04:27 !wacro 2 5 03:04:27 HE 03:04:34 !wacro 2 5 03:04:35 SWPRC 03:04:45 I like those two 03:06:10 Welp, I've got a destructive world-explorer. 03:07:43 probably the best strategy there is. 03:08:09 at least while no one has any idea how to make an effective player. 03:08:14 Heh 03:10:41 Yes that higpig.html does describe something similar to what I have described. But I think mine is better I had other ideas too that are not what that describes, including, that some things can have specified orders and other stuff too 03:13:31 almost finished a pretty consistently good acronym generator 03:13:56 the first two tests produced "moo" and "djini" 03:14:01 wow 03:14:10 does it just try to mix consonants and vowels or have you got some markov chain shit going on 03:14:18 it's a bit weird 03:15:54 it tries to mix them (increasing probability of switching as it stays on either) and it has a maximum of one plosive (defined as "bcdgkpqt") per consonant chain 03:16:34 what I need to do now before making that better is get the length working well. right now it just has a constant 1/5 chance of stopping after each letter 03:16:35 lol 03:17:07 the third test produced no output, and the fourth was "csouimzip". definitely room for improvement. 03:17:32 i rather like hooftoootut though 03:18:00 erbyuewain, ugwuxl, qzibehahocwutsuepnueh 03:20:08 Default superclass instances is seem useful so that you can make Monad automatically become a Functor as well, but then what if you want to do other way around by defining unit/join/fmap instead of defining return and >>= ? Or even, define return and >=> and make it figure out >>= from that 03:20:18 hooftoootut is me 03:20:34 -!- Canaimero-e8d has joined. 03:20:35 zzo38: Well, you can have 03:20:43 -!- Canaimero-e8d has left. 03:21:20 class (Applicative m) => Monad m where join :: m (m a) -> m a; join a = a >>= id; (>>=) :: m a -> (a -> m b) -> m b; m >>= f = join (fmap f m) 03:22:43 sgakvoguyfranogignuym 03:23:04 ooh glicvoy is good 03:23:25 -!- azaq231 has joined. 03:23:33 ceolme, vexgoqxu, iayail 03:24:56 nice words, 03:25:52 -!- azaq23 has quit (Ping timeout: 268 seconds). 03:26:00 maybe i will improve it after working on other things for a while 03:26:21 I was going to learn trifecta but then I got distracted with besting cakeprophet at word generation 03:28:00 One of Guido's key insights is that code is read much more often than it is written. 03:28:03 lulz 03:28:39 genius 03:28:48 one of the things I do I can't decide if it's sensible or not: instead of using a monad or something to carry around random number generator state, I have a function with signature (a -> StdGen -> b) -> StdGen -> [a -> b] 03:29:16 StdGen because of I forgot to make it more general 03:29:18 Capitalized_Words_With_Underscores (ugly!) 03:29:31 yeah that's totally not an arbitrary distinction Python Style Guide 03:30:05 it is ugly 03:30:17 monqy: I would make a random monad 03:30:41 how is it more_ugly_than_this 03:30:44 orThis 03:30:51 CakeProphet: reasons 03:30:59 what is the objective difference. 03:31:17 elliott: it's there partially for historical reasons. originally I was trying to golf it into one line so I could install it without worrying about paste bins 03:31:33 elliott: and it seemed shorter than monadic stuff 03:31:36 monqy: You can look at my suggestion for alternative MSE random number functions 03:31:48 ? 03:32:10 (Basically, there are pure versions of all the "random_" functions that start with "rand_" instead) 03:32:28 (I also suggested pure versions of the export template functions) 03:32:39 now I'm confused 03:35:37 Unfortunately I cannot figure out how to link to it. It is comment 71866 in the MSE forums, in node 4887 03:39:40 uh... what. 03:39:44 this code. makes no sense. 03:40:08 Can ais523's VCS be made to work with http://cdn.bitbucket.org/rmacnak/newspeak/downloads/purthesis.pdf ? 03:40:10 -!- GreaseMonkey has joined. 03:41:55 Who cares 03:42:05 (I might care if you summarised it) 03:42:59 I can summarize the basic idea of Pur, but not in enough detail to be useful in determining if... 03:43:27 It's an abstraction over VCSes, and compares Subversion, Git, and Mercurial to try to determine an abstraction for "generic" VCS 03:44:22 This is MSE code, but it could be done in Haskell or other programming languages as well: rand_int(begin: lower_bound, end: upper_bound, seed: seed) - Like random_int but uses a seed parameter. If all parameters are the same the output will be the same every time. Also does for all other random_ functions, have rand_ versions. 03:45:10 MSE? 03:45:55 Magic Set Editor 03:46:15 I have also been working on TeXnicard which hopes to be different from MSE while usable for similar purposes 03:46:28 You can use whichever one you prefer or both 03:47:07 The GUI design of MSE means a lot of things have been omitted and I have made suggestions which can correct some of these problems, but it still isn't perfect 03:48:10 It's an abstraction over VCSes, and compares Subversion, Git, and Mercurial to try to determine an abstraction for "generic" VCS 03:48:13 Sounds boring and inherently limiting 03:55:31 is there even like... a problem with current VCS? 03:55:36 that needs fixing? 03:56:03 -!- EgoBot has quit (Read error: Connection reset by peer). 03:56:45 -!- EgoBot has joined. 03:57:02 CakeProphet: Yes. 03:57:05 Massive ones. 03:57:47 Can the GHC plugins API allow making such things as I described for Meta Haskell and so on? 03:58:09 elliott: would it be cool if you elaborated? 03:58:28 I don't know enough about these problems 03:58:40 I'd like to complain about them on #esoteric in the future. 03:58:43 CakeProphet: probably, but give me a minute first 03:58:49 and there's already a known solution to the problems :) 03:58:55 take your time. 03:59:52 no, give me a minute as in i'm busy :P 04:00:30 that's what I assumed... 04:04:51 * CakeProphet just learned how to fold a burrito. 04:04:55 this is an excellent skill to have. 04:08:05 as I can now take large blobs of ingredients into a container that is portable and edible. 04:08:53 portability is a very important thing for a food to possess, imo. 04:10:16 After I write Haskglk, can they make the Haskell compiler into Glulx, that can use all of the same exported types and functions and so on? 04:10:26 I guess edibility is important too, but that's kind of an inherent property of being food. 04:11:11 zzo38: I'm not entirely sure what you're talking about but it sounds ridiculous so I'm going to say no. 04:13:18 CakeProphet: Maybe it is ridiculous but maybe it is possible? They could also make it compiling Haskell into other virtual machines too, not only Glulx, but also Java, and so on 04:14:55 I guess it's possible in the purest sense. 04:15:05 Haskglk requires your main module to export two things: glkInit :: String; glkMain :: Glk (); but if compiling into Glulx then the glkInit would be useless in that case and glkInitialFile could not be used 04:15:19 but probably not going to happen soon or possibly ever. 04:15:23 who knows. 04:17:00 but I guess a lot of the work has already been done if you use GHC to translate haskell to core. 04:21:03 It is probably possible to compile C or LLVM into Glulx, although the standard library for accessing the system would have to be different. In the case of Haskell, most of the commands in the IO monad would not work (peek and poke could still be used, though). But all the commands in the Glk monad, with the exception of glkInitialFile, could work natively. 04:23:28 CakeProphet: 'Fraid it might have to wait until tomorrow 04:23:36 NOOOOOO 04:23:40 NOW I WILL NEVER KNOW. 04:23:55 I am so... carefree right now. 04:24:26 without the ugly truth given to me so that I may sulk about it. 04:25:36 okay so this code makes no sense. 04:25:49 Outside of the "Dispatch" chapter, you would probably have to rewrite very little to get it to work with Glulx if there is a way to do this compiling. 04:26:09 okay so it has a while loop that reads lines from the file and assigns to a variable 04:26:19 then it takes that line and splits by \r\n 04:26:23 does that make....any sense at all? 04:26:26 (Nothing in the "Dispatch" chapter is exported from the module, except for a few foreign exports.) 04:26:59 (But foreign exports are not exports anyways, they are different) 04:39:48 I have read that a functor is homomorphisms between categories. It says monad in Haskell is functor, too, it is what the class says it is. And I have read that monad axioms with >=> are simply that it forms a category. What categories exactly is this functor mapping? I don't know for sure I don't know category theory perfectly and am a bit confuse 04:43:04 -!- copumpkin has joined. 04:44:41 OO no longer makes any sense. 04:44:47 I remember it making at least a little sense before. 04:45:01 but I've been using Haskell and Perl for far too long 04:45:09 I have no idea why I would use a constructor for half of this shit. 04:46:02 OO is a pitiful attempt at shoehorning stronger typing into the structured languages. 04:46:20 zzo38: http://en.wikibooks.org/wiki/Haskell/Category_theory 04:46:49 it's a functor from a category to the same cateogry. 04:48:09 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 04:51:49 But I have read that monads with >=> and return also form a category 04:53:10 "We've defined two parts, something that takes objects in Hask to objects in another category (that of Maybe types and functions defined on Maybe types), and something that takes morphisms in Hask to morphisms in this category. So Maybe is a functor." But Maybe is also a monad and later it says monads go from a category to the same category. 05:01:30 Maybe is a subcategory of Hask 05:01:50 so a functor from Hask to Maybe can be taken as an endofunctor 05:03:19 According to Wikipedia: "Endofunctor: A functor that maps a category to itself." OK, now I can see. Yes it does make sense now 05:07:50 "Monad axioms: Kleisli composition forms a category." (double spacing indicates Haiku lines) 05:09:03 So, I suppose x maps to return . x and composition maps to >=> 05:11:42 Hask? 05:12:29 Hask is the category of Haskell 05:16:43 Is Leksah any good these days? 05:17:10 this might be the worst code I've ever had to seriously analyze. 05:18:46 -!- azaq231 has quit (Quit: Leaving.). 05:26:31 -!- pikhq has joined. 05:27:00 -!- pikhq_ has quit (Ping timeout: 260 seconds). 05:51:27 Are there bimonads, like there are bifunctors? 05:53:44 Hmm. If future paleontologists looked back on us, they would probably be pretty dang confused by the rather sudden incidence of no third molars in Homo sapiens. 05:55:15 Though... That'd probably be the least of their worries. 05:55:24 "Holy fuck, civilization everywhere". 06:00:14 I noticed that with { f (x:y) = y:[[x]]; f [] = []; } that (join . (f)) and (join . (f >=> f)) and (join . (f >=> f >=> f)) seems same what is this property called? 06:01:57 pikhq: Can you invent stuff for purpose of confusing future paleontologists? 06:03:42 third molars? 06:03:50 AKA "wisdom teeth". 06:03:52 Ah 06:04:29 pikhq, that's depressing 06:06:05 -!- elliott has quit (Ping timeout: 252 seconds). 06:10:40 zzo38: the flattening Kleisli indifferene invariant 06:12:09 :t id >=> id 06:12:09 forall (m :: * -> *) c. (Monad m) => m (m c) -> m c 06:12:46 :t (id >=> id) [[1,2,3,4],[6,7,8]] 06:12:47 forall c. (Num c) => [c] 06:12:51 > (id >=> id) [[1,2,3,4],[6,7,8]] 06:12:51 [1,2,3,4,6,7,8] 06:13:35 there's your monad defined with Kleisli composition. 06:14:45 for functions anyways. 06:15:23 :t (>=>) 06:15:24 forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c 06:15:35 er, nevermind, not for functions 06:16:35 -!- nooga has joined. 06:16:43 I like how id basically turns a -> into an equality. 06:17:06 :t id :: (a -> m b) 06:17:06 Couldn't match expected type `m b' against inferred type `a' 06:17:06 `a' is a rigid type variable bound by 06:17:06 an expression type signature at :1:7 06:17:24 >_> yeah I didn't think that would work 06:19:05 > (id >=> (:[])) 4 06:19:06 No instance for (GHC.Num.Num [b]) 06:19:06 arising from a use of `e_14' at > ((:[]) >=> (:[])) [4] 06:19:27 [[4]] 06:19:30 > ((:[]) >=> (:[])) 4 06:19:30 [4] 06:20:31 > fmap (id >=> id) ((:[]) >=> (:[])) [4] 06:20:31 [4] 06:30:40 ... 06:30:44 Srsly? 06:35:30 Any particular reason for not using join and return? 06:39:22 zzo38 was talking about Kleisli composition forming a category or something. 06:39:37 so I... made join and return? I don't really know why. 06:39:57 Okay, then. 06:40:35 I mean ((:[]) >=> (:[])) looks way cooler than return so I think it's pretty defensible. 06:40:40 Shame that ((:[]) >=> (:[])) only works on [a]. 06:40:54 it's like a totem pole or something. 06:41:44 yeah I'm not entirely sure that you can define return in terms of other monadic operators. 06:44:07 Also, (:[]) suffices. :P 06:45:19 pikhq: Well, that is meaning return is the identity of the >=> so it is suffices of course 06:45:58 if you guys keep it up the totem pole is going to be very angry.. 06:46:54 :t return >=> return 06:46:55 forall a (m :: * -> *). (Monad m) => a -> m a 06:46:57 Sure enough. 06:52:38 oooooh okay 06:52:39 so 06:52:44 return = return >=> return 06:52:47 it all makes so much sense. 06:53:44 -!- cheater has quit (Ping timeout: 260 seconds). 06:55:52 If you have a "more" command like I described, then if using "more" inside of "case", it would rearrange everything included there in the order of specificness (but leaves it together in that "more" so that other case alternatives given stay where they are), and in all ways of using "more" you can override the position by putting a number at front, such as: data Color = more Colors; 5 color Blue; 1 color Orange; 06:56:10 data Color = more Colors; 5 Colors = Blue; 1 Colors = Orange; 06:57:01 Now it will put Orange first, which is useful if you are deriving Enum 07:03:25 how do I decode base64 in sh 07:03:30 also, what is a good hex viewer. 07:05:01 base64 -d, hexdump -C | less. (Okay, the last one's not necessarily good. I'd guess "good" depends on what you need to do with it.) 07:05:30 base64 -d (not POSIX, part of GNU coreutils), and od -x (POSIX) 07:05:36 decode base 64 and view the result as hex? 07:05:58 base64 -d|od -x 07:06:02 Durp. 07:06:18 see what fizzie for context of why I said that. 07:06:24 *fizzie said 07:06:27 Ah. 07:06:42 I KNOW BASH GAIZ 07:06:45 just not every program 07:06:53 What else the "more" would do with automatic ordering for "data", is, duplicates are allowed, multiple constructors can be specified at once, and the order is kept as it is on each line if possible, such as: data T = more Z; Z = Two | Three; Z = Three | Four; Z = One | Two; will put them in order: data T = One | Two | Three | Four; 07:07:02 "od -x" defaults to little-endian 2-byte view, doesn't it? It can do a more sensible hex output, but you need to ask. 07:07:24 "od -t x1" for example. 07:08:06 nevermind I apparently don't even need to view hex. 07:08:14 THIS CODE MAKES NO FUCKING SENSE AAAAH 07:08:14 "hexdump -C" gives the "traditional" (fsvo) split hex-plus-ascii view, though it's non-POSIX (part of bsdmainutils, here) too. 07:08:21 Oh, bleh, right. 07:08:33 man I sure would hate to use something non-POSIX 07:08:47 -!- zzo38 has quit (Remote host closed the connection). 07:08:55 it would matter so much to me. 07:09:01 Portability is KEY, especially when you just want to do a thing once on your own system. 07:09:08 lolyep 07:09:14 GNU shit is shit, even when it doesn't matter. :) 07:09:45 (though, hexdump is more "traditional tool that POSIX didn't decide to standardise, in favor of a different but mostly the same traditional tool") 07:13:09 -!- pikhq_ has joined. 07:13:26 I tend to debase64 with perl -MMIME::Base64 -e 'print decode_base64("...");', because at least PERL stands for "PERL ein't-no ruddy-poo lol-GNU". 07:14:52 line.Contains('|').Equals(true) 07:14:54 I prefer /bin/busybox base64, because at least Busybox is the only tool ever installed anywhere, right? 07:14:56 this code is so horrible 07:14:57 :P 07:14:58 in every way; 07:15:10 -!- pikhq has quit (Read error: Operation timed out). 07:18:17 Add a couple of ".Equals(true)"s to the end for emphasis. 07:21:01 Hopefully you can even do s/true/.Equals(true)/g for a bit. 07:21:14 Erm, true.Equals(true) 07:21:36 seriously that's code that a novice Java programmer would write. 07:21:38 and this is C#. 07:21:56 Java doesn't have monopoly on stupidity, there's plenty of it to go around. 07:21:59 (Cf. PHP.) 07:22:01 the poor way to write it in C# would be line.Contains('|') == true 07:22:14 If anyone has a monopoly on stupidity, it's PHP. 07:23:04 I would think the "natural" poor way to write it in Java would be line.contains("/") == true too. 07:23:23 oh yes you're right. 07:23:26 Since I'd guess you can't even .equals() a boolean, it's a primitive type. 07:23:30 actually I don't think boolean has methods in Java. 07:23:34 yes. 07:23:49 They don't do the "value types with methods" thing in those parts. 07:24:10 Not to mention the primitives aren't objects. 07:24:33 But no worries, you can always work around it using (new Boolean(line.contains("/")).equals(new Boolean(true)). 07:24:40 :D 07:25:52 Hmm. C++... new Boolean(line.contains("/")).operator==(new Boolean(true)) // and leaks memory? 07:26:12 Erm. 07:26:16 s/./->/ 07:26:31 C++: because fuck you. 07:30:20 new Boolean(line.Contains((CharSequence)(new StringBuilder((CharSequence)(new String("/")))).Equals(new Boolean(new String("true"))) 07:31:10 it's better to expose the interfaces instead of those nasty concrete classes. 07:31:42 Needs moar factories. 07:33:00 -!- Lymee has quit (Ping timeout: 260 seconds). 07:33:22 AbstractBabyFactory 07:34:05 public class YourMom extends MyPenis implements AbstractBabyFactory 07:34:37 { std::auto_ptr< Box* > b1 = new Box(line.contains("/") /* template param inference, ooh */); std::auto_ptr< Box* > b2 = new Box(true); b1->operator==(b2); } /* commit message: "fixed the leak" */ 07:35:12 (Disclaimer: should probably use some sort of standard "Box" out of Boost or something.) 07:38:28 -!- cheater has joined. 07:43:55 -!- dbc has joined. 07:44:07 wow: http://remysharp.com/2007/11/14/base64-decode-to-file/ 07:44:17 obviously the best way to do it. 07:45:29 aside from not using base64 -d, he also doesn't even use -p with perl 07:45:57 I should leave an strongly-worded reply. 07:50:07 @instances-importing Monad Data.Set 07:50:07 Couldn't find class `Data.Set'. Try @instances-importing 07:50:15 @instances-importing Data.Set Monad 07:50:16 ((->) r), ArrowMonad a, ContT r m, Either e, ErrorT e m, IO, Maybe, RWST r w s m, ReaderT r m, ST s, StateT s m, WriterT w m, [] 07:50:39 no Set monad? :( 07:50:46 -!- dbc has quit (Quit: Seeeeeya). 07:57:04 :t (\x y -> fmap (join.y) x) 07:57:05 forall (m :: * -> *) a a1 (f :: * -> *). (Monad m, Functor f) => f a1 -> (a1 -> m (m a)) -> f (m a) 07:57:30 :t (\x y -> join . fmap $ y x 07:57:31 parse error (possibly incorrect indentation) 07:57:35 :t (\x y -> join . fmap $ y x) 07:57:36 Occurs check: cannot construct the infinite type: m = (->) (m a) 07:57:36 Probable cause: `fmap' is applied to too few arguments 07:57:36 In the second argument of `(.)', namely `fmap' 07:57:55 :t (\x y -> join . fmap y $ x) 07:57:56 forall (m :: * -> *) a a1. (Monad m, Functor m) => m a1 -> (a1 -> m a) -> m a 08:00:58 I think whenever I consider making something an instance of Monad I'll first consider how to define join and fmap 08:01:10 because they're a little more natural to figure out than bind. 08:08:00 CakeProphet: Not only that, but the code as written doesn't work if the lines of the text aren't wrapped on the 3-byte (4-character) base64 boundaries, since it'll try to decode each line independently. 08:17:06 -!- BeholdMyGlory has joined. 08:39:14 -!- GreaseMonkey has quit (Quit: The Other Game). 08:43:04 "So, unless first-class modules are something you get excited about, or you need Java interop for something, Scala isn't really worth the effort if you're already using Haskell, except as another excuse for broadening your experience of languages." 08:43:16 Butbut..... I _do_ get excited over first-class modules! 08:48:56 -!- Lymee has joined. 09:09:26 -!- augur has quit (Remote host closed the connection). 09:16:59 -!- nooga has quit (Ping timeout: 246 seconds). 09:19:23 -!- oerjan has joined. 09:25:17 -!- itidus21 has joined. 09:28:03 -!- itidus20 has quit (Ping timeout: 240 seconds). 09:28:18 -!- Patashu has joined. 09:30:13 I've coded an algorithm for my proto-RTS whereby a unit behind other units will curve around them to reach its destination (if its next step is blocked it tries the step + and - a slight change until it finds one that works or gives up). Normally it works OK even on corners but sometimes it gets wedged and vibrates angrily on the spot. I was wondering what the 'most elegant' way to detect 09:30:13 such buzzing and fix it would be 09:32:38 Well, detecting is easy actually, I can just take a snapshot of position every X frames and compare to the present, if it's the same I'm stuck. What should the correction strategy be... 09:33:16 Maybe pretending the other units are larger more and more until you make progress? Let's try that 09:37:56 -!- Vorpal has joined. 09:43:06 -!- augur has joined. 09:51:42 * Sgeo wants to try Dylan 10:11:01 Hmm, I have an idea 10:11:22 If I detect I'm stuck, look for the direction which I can move the furthest in, move that way for a while then try again 10:15:23 -!- nooga has joined. 10:19:12 -!- augur has quit (Remote host closed the connection). 10:42:28 -!- FireFly has joined. 10:42:47 -!- cheater has quit (Remote host closed the connection). 10:45:32 -!- cheater has joined. 10:52:59 -!- yorick_ has changed nick to yorick. 11:13:16 Got it working 11:17:04 -!- monqy has quit (Quit: hello). 11:20:27 -!- cheater has quit (Remote host closed the connection). 11:21:28 -!- cheater has joined. 11:23:38 -!- nooga has quit (Ping timeout: 245 seconds). 11:23:55 * Sgeo wants Dylan to not be a dead language 11:36:06 -!- itidus21 has changed nick to itidus20. 11:41:40 -!- sllide has joined. 11:43:17 -!- oerjan has quit (Quit: leaving). 11:56:18 -!- boily has joined. 12:04:44 -!- nooga has joined. 12:35:35 -!- nooga has quit (Ping timeout: 250 seconds). 12:50:51 -!- nooga has joined. 13:46:39 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 13:54:53 -!- Patashu has quit (Ping timeout: 245 seconds). 14:01:34 -!- ais523 has joined. 14:10:52 -!- ais523 has quit (Read error: Connection reset by peer). 14:12:38 -!- ais523 has joined. 14:18:42 -!- copumpkin has joined. 14:18:46 -!- copumpkin has quit (Changing host). 14:18:46 -!- copumpkin has joined. 14:36:20 -!- Phantom_Hoover has joined. 14:37:09 -!- augur has joined. 14:44:45 -!- augur has quit (Remote host closed the connection). 15:00:17 -!- ais523 has quit (Remote host closed the connection). 15:10:39 -!- zzo38 has joined. 15:32:57 I have a list of "You know you've been in Japan too long when..." and I have never been in Japan but a few of the things in that list are things I have sometimes done. 15:42:06 :O 15:44:14 -!- nooga has quit (Quit: Lost terminal). 15:47:12 I have recorded part of the D&D game. 15:48:01 This can only be hilarious. 15:48:25 I am doing typing more recording now. 15:55:02 Spells I used during this session: My Light, Touch of Health, Object Reading, Pyrotechnics, Dismiss Psionics, Major Creation. Can you understand their uses? 15:55:27 -!- ais523 has joined. 15:57:39 -!- augur has joined. 16:07:47 -!- quintopia has quit (Ping timeout: 252 seconds). 16:08:21 Do you know how to help with this document anything that could be rewritten a clearer way or in a better way of writing story? 16:08:25 http://zzo38computer.cjb.net/dnd/recording/level20.tex 16:09:10 -!- quintopia has joined. 16:09:10 -!- quintopia has quit (Changing host). 16:09:10 -!- quintopia has joined. 16:24:30 -!- derrik has joined. 16:38:22 How to Fail 101: Write the A* pathfinding algorithm but with restrictions on which direction you're allowed to move. Do not take those restrictions into account in the heuristic. 16:41:21 Gregor: does that actually make it wrong? or just inefficient? 16:41:27 (as in, which direction was the heuristic wrong in?) 16:42:43 It makes it unusably inefficient. It will basically search the entire map, desperately pleading with itself as one part of the algorithm makes it go farther while the other says "no dawg, you should go that way LOL" 16:44:08 I think too many paragraphs begin with "Also" 16:44:36 (That is, in the document I linked) 16:55:18 haha, and we see what and who is responsible for the PHP crypt() security bug: http://svn.php.net/viewvc/php/php-src/trunk/ext/standard/php_crypt_r.c?r1=314438&r2=314437&pathrev=314438 16:55:25 that edit is amazing 16:55:29 -!- CakeProphet has quit (Ping timeout: 246 seconds). 16:56:21 Woooo pathfinding 17:18:12 -!- elliott has joined. 17:26:48 `addquote I tend to debase64 with perl -MMIME::Base64 -e 'print decode_base64("...");', because at least PERL stands for "PERL ein't-no ruddy-poo lol-GNU". 17:26:52 619) I tend to debase64 with perl -MMIME::Base64 -e 'print decode_base64("...");', because at least PERL stands for "PERL ein't-no ruddy-poo lol-GNU". 17:28:17 07:50:15: @instances-importing Data.Set Monad 17:28:17 07:50:16: ((->) r), ArrowMonad a, ContT r m, Either e, ErrorT e m, IO, Maybe, RWST r w s m, ReaderT r m, ST s, StateT s m, WriterT w m, [] 17:28:17 07:50:39: no Set monad? :( 17:28:20 cannot be done 17:28:59 08:43:04: "So, unless first-class modules are something you get excited about, or you need Java interop for something, Scala isn't really worth the effort if you're already using Haskell, except as another excuse for broadening your experience of languages." 17:28:59 lol, yeah, because scala is JUST AS GOOD as haskell in every other respect 17:29:11 apart from being impure. and having pointless OO crap. and relying on horrible java libraries. 17:29:15 and being way slower. 17:29:22 That's not what that implies 17:29:42 In fact, it specifically implies that Scala is worse, or at least no better, than Haskell :-P 17:29:52 Gregor: how's pathfinding 17:30:09 Deewiant: Yeah, but it also implies that if first-class modules excite you then you should totally consider ditching Haskell for Scala 17:30:14 Which is stupid 17:30:29 I think it just implies that you should take a look at it 17:30:43 Which is fine IMO, for a language feature one finds exciting 17:31:05 I saw the description of power set functor, so why is there no set monad? I do not completely understand category theory 17:31:12 Deewiant: Well, Sgeo certainly did not interpret it that way :P 17:31:19 zzo38: there is not one in haskell because Set has an Ord constraint 17:31:41 elliott: If you say so; I didn't interpret him like that :-P 17:32:27 elliott: Works 17:32:39 `addquote FFS, building a perpetual motion machine should not be this hard. 17:32:41 620) FFS, building a perpetual motion machine should not be this hard. 17:32:42 Gregor: Is it Haskell yet 17:32:58 elliott: No, I said it works LOLOLOL THIS DOESN'T ACTUALLY MAKE SENSE 17:33:13 Gregor: wot 17:36:55 -!- zzo38 has quit (Remote host closed the connection). 17:41:51 Help I started reading Project Rho and I can't stop. 17:43:01 Friendship Project Rho. 17:43:12 elliott: By setting the pathfinding action to build instead of advance, I can cover the entire world in garbage! 17:43:14 What _is_ Project Rho. 17:43:25 Gregor: Sweet. Link me to the code so I can rip it off. 17:43:41 elliott: https://bitbucket.org/GregorR/rezzo-gragents 17:43:45 It's just A* 17:43:48 "gragents" 17:43:50 R usrs. 17:44:25 Gregor Richards' Agents 17:44:30 Suuuuuuuuuuuuure 17:44:58 It was originally grwarriors 17:44:58 Strangely I've never really used pathfinding much before. I wonder why not. I should implement something nice instead of A* because I'm a hipster. 17:44:59 So yeah 17:45:08 Gregor: You realise you already have y 17:45:18 Gregor: You realise you already have a private namespace, you don't need to prefix things, this isn't C :P 17:45:33 This is C ... 17:45:39 Gregor: ...no, this is bitbucket. 17:45:51 Oh, you mean I could barf it into rezzo. 17:45:58 Your "rezzo-agents" will not conflict with any other "rezzo-agents", is what I am saying :P 17:46:02 Ohohoh 17:46:13 If I just called it "agents", it wouldn't be clear *shrugs* 17:46:17 gragents I'll admit is overkill :P 17:46:20 I said "rezzo-agents" :P 17:46:28 What _is_ Project Rho. 17:46:32 The rocket thing? 17:46:39 Phantom_Hoover: What rocket thing? 17:46:53 elliott: http://www.projectrho.com/rocket/ 17:46:53 http://www.projectrho.com/rocket/ 17:46:56 This rocket thing. 17:47:06 Hmm, I think I have seen this page. 17:48:07 void horizontalShimmy() 17:48:10 Gregor really likes shimmies. 17:48:31 -!- nooga has joined. 17:48:35 fuk 17:48:52 i leaned my keyboard and fuked the key 17:49:03 Is nooga ever not drunk when coming here any more. 17:49:13 i'mnot drunk 17:49:17 fuk 17:49:18 :D 17:49:23 not drunk 17:49:35 Is your c key broken? 17:49:44 that's orret 17:49:58 nooga, so are your days of writing C programs oveR? 17:50:00 *ovr 17:50:03 *ver 17:50:05 *over 17:50:22 Phantom_Hoover: in fat, it was my first thought after disovering it 17:50:39 i mean that the key is broken 17:54:03 oh cruel world 17:54:45 -!- ais523_ has joined. 17:55:03 -!- ais523 has quit (Disconnected by services). 17:55:05 -!- ais523_ has changed nick to ais523. 17:57:42 hi ais523 17:57:45 nooga: "c" 17:57:56 hi; computer overheated because the fan forgot to start 17:58:07 it's OK now 17:58:38 cccc 17:58:39 ais523: you know how you said that microchanges could use a different hash function to become the hash of their parent plus an index? 17:58:49 i can write c now 17:59:14 i removed the key and touch the switch with finger 17:59:25 nooga: I did that for I think e for a while 17:59:29 I am really good at computer typing 17:59:32 feels like a little nipple 18:00:31 I always feel typing-inadequate. 18:00:59 ais523 knows all too well the stories of that keyboard i have where like half the keys didn't stick on properly 18:04:20 It's a tale of perseverance against impossible odds. 18:04:54 Someone in America is probably making it into a film as we speak. 18:06:13 cool 18:10:43 -!- Nisstyre has quit (Ping timeout: 245 seconds). 18:14:06 -!- boily has quit (Ping timeout: 260 seconds). 18:16:14 -!- yretssin has joined. 18:18:38 Electrons are so fragile X-D 18:19:20 `addquote Electrons are so fragile X-D 18:19:22 621) Electrons are so fragile X-D 18:19:46 Gregor: One problem is that getting around ANYWHERE involves breaking a wire which will probably lead to the death of any electron on it :P 18:19:56 (But you can rebuild it in two ticks, so it's not that bad) 18:20:22 The main thing for me right now is the 1-or-2-neighbors rule. 18:20:37 I keep building structures where electrons have too many electroneighbors. 18:21:12 A "gragent" is an extra-groovy agent. 18:21:34 Like a "Gregor" is an extra-groovy egor. 18:22:00 Egor ain't got nothin' on me. 18:23:57 I almost want to put the world size in the server message, so you can make clients that scale without having to determine dynamically >_> 18:25:58 Gregor: You can do it fairly easily... 18:26:06 Bases and shit don't move, so it's easy to determine when you've looped 18:26:21 Yeah, but you've got enough problems to solve without solving that one :P 18:27:07 -!- cheater has quit (Remote host closed the connection). 18:27:50 -!- cheater has joined. 18:28:33 Gregor: Well. 18:28:38 Gregor: Most of the time it doesn't really even matter? 18:28:46 You don't CARE how big the world is, you'll be looking for specific things. 18:28:53 That's a fair point. 18:29:05 And if you really want to know it's not THAT hard to figure it out at all :P 18:29:22 Unless a ton of people lose before you wrap around I guess but come on. 18:30:10 -!- boily has joined. 18:30:22 'course it makes the datastructure more complicated too ... 18:31:28 NOWAIT, you totally care how big the world is, getting to something will be wildly inefficient if you go all the way across the map instead of looping. 18:31:54 Gregor: What? 18:32:00 Gregor: Of course navigation should be non-trivial... 18:32:03 That's why the world isn't too big :P 18:32:35 I'm not just talkin' nontrivial, I'm talkin' you-must-detect-the-world-size-to-do-literally-freakin'-anything 18:32:46 Otherwise you'll always be going the wrong way. 18:32:49 Well, not always. 18:32:53 But a fair amount of the time. 18:33:03 Since the goal is not always to go to a place, then back to your base, then back to the place. 18:33:13 You care about local distances, not distances from zero. 18:33:17 Phantom_Hoover: Please tell Gregor that navigating a torus does not involve knowing its size : 18:33:18 :P 18:33:28 No, it doesn't, but navigating it even remotely efficiently does. 18:33:50 Phantom_Hoover: Tell him that's not true either :P Unless Gregor has a really weird navigation algorithm in mind... 18:33:53 X_X 18:34:05 If you're at point X and you want to get to point Y, you need to know whether it's more efficient to go your idea of the "direct" way there, or around the back. 18:34:13 (i.e. the exact opposite direction) 18:34:22 You have no way of knowing which is better without knowing how big the world is. 18:35:04 Hello guys are you asking my stuff. 18:35:04 *me 18:35:13 Phantom_Hoover: elliott is being an idiot 18:35:25 Looks like it. 18:35:29 Hmmmmmmmmmmmmmmmmmm 18:35:34 Gregor: Well, yeah, but that's just an optimisation 18:35:37 X_X 18:35:50 With a decent-size world you won't waste THAT much time :P 18:36:04 But anyway if you want to remove all the interesting coding challenge from the game BE MY GUEST 18:36:22 You only think that's the interesting coding challenge because you've done NO FUCKING CODE 18:37:01 Gregor: And you have? You've implemented A* :P 18:37:28 And map-recording, and connecting electrons to one's base. 18:37:36 So yes. 18:37:38 A fuckload more than you. 18:37:43 Map-recording is... not really anything. 18:37:44 The world ends the world ends the world ends / Not with a bang but with a bicker. 18:37:50 elliott: It is if you don't know the size. 18:38:03 Frankly, matches will last long enough that the navigation required to determine the world size is negligible. 18:38:43 Oy vey 18:38:53 Oh FFS, I got the quote wrong. 18:39:06 Phantom_Hoover: ... fizzle? :P 18:39:16 Phantom_Hoover: I was wondering if you were quoting some derivative work or something. 18:39:28 Yes. 18:40:08 ais523: you may be interested in http://stackoverflow.com/questions/2786899/fastest-sort-of-fixed-length-6-int-array/ (GPU-related) 18:40:20 ais523: Eagerly await your Checkout solution :P 18:40:48 elliott: you clearly do it with parallel compare-and-swap 18:41:23 The sort6_sorting_network_v4 seems to be the fastest, which seems to do that 18:41:25 the first answer has the correct answer 18:41:33 well, correct approach 18:41:35 Right 18:41:38 I'm not sure if the answer given there is the very best 18:41:44 ais523: Well, the question has a faster one 18:41:49 however, on a GPU, you'd want to do it in parallel 18:41:54 and that's doing it in series for some insane reason 18:41:56 (Than the first answer) 18:42:46 oh, and http://www.reddit.com/r/programming/comments/jsmog/fastest_sort_of_fixed_length_6_int_array/c2et4sm too 18:43:17 interestingly, the program in the question is in C not in CUDA 18:43:20 so parallelism isn't expressible 18:48:28 -!- derrik has quit (Quit: done). 18:56:15 hmm, how does unicode text rendering in terminals even work? (I realise that it doesn't, in most of them) 18:56:31 it doesn't seem like you'd be able to keep a consistent terminal grid while obeying RTL and the like 18:57:56 "It doesn't" is probably very close, especially when it comes to direction-changing. 18:58:08 Sometimes the half-width/full-width stuff works. 18:58:55 usually works fine for the ASCII part of unicode :P 19:04:12 fizzie: Well, yes. 19:04:17 fizzie: But I want it to work. 19:04:38 I guess what I want to ask is "how SHOULD it work", and I guess "how does it work in terminals that at least partially Get It Right". 19:05:02 -!- azaq23 has joined. 19:06:40 The fullwidth latin letters seem to borderline work in Vim/rxvt-unicode. The cursor block is a bit wacky though. 19:06:50 I don't think it tries to do direction "natively". 19:06:59 im trying to make clang together with libc to handle nul terminated strings with length prepended 19:08:39 I love how weird projects like that pop up regularly around here 19:08:40 fizzie: I'm talking more mlterm, uuterm and the like. 19:08:53 * olsner isn't doing enough of them 19:08:59 what projects? 19:09:25 nooga: like trying to make clang and libc handle length-prefixed strings 19:09:50 ah 19:12:43 -!- myndzi\ has joined. 19:12:59 and then utf-8 and then i can write the kernel and bootstrap libc 19:13:53 why not just write your own library 19:15:18 -!- myndzi has quit (Ping timeout: 258 seconds). 19:15:31 because i want that handled on the lowest level possible and because i'm looking for a reason to play with osdev 19:16:22 why bother hacking glibc to do it 19:16:24 waste of time 19:16:57 the more stupid reason the better 19:19:03 -!- yretssin has quit (Ping timeout: 245 seconds). 19:21:44 -!- yretssin has joined. 19:25:40 nooga: hmm, so you're writing an operating system? and the libc/clang thing is for the kernel? 19:25:48 yep 19:27:19 why not just reimplement the specific stuff you need instead of trying to port glibc(?) to kernel space? 19:28:50 At least modify a libc defined for it 19:28:54 Like PDCLib 19:28:57 [asterisk]designed 19:29:03 glibc isn't meant to run in kernel space. 19:30:15 elliott: i didn't say anything about glibc 19:30:46 You said libc. Porting BSD libc is laughable, and you didn't mention another specific libc so I was not about to go assuming it was one that you're unlikely to be running as your system libc 19:31:57 most of the stuff in libc is useless anyway, just throw it out and build your own optimalized assembler memcpy 19:32:18 i use newlib ;p 19:33:43 olsner: So what happened to your oS 19:33:49 [asterisk]OS 19:34:04 elliott: it's moving steadily forward at 0 velocity 19:36:33 hmm... last thing that happened was iirc that I tried to do some coding on my mac but apparently homebrew didn't have a formula for bochs so I had to write my own and the result failed to boot :) 19:36:51 homebrew: clearly superiour to macports 19:37:08 OS X: so terrible 19:37:22 You should just try and get a Debian chroot working or something :P 19:37:37 elliott: when will you acquire a working keyboard? 19:37:38 -!- boily has quit (Ping timeout: 258 seconds). 19:37:39 Debian GNU/Mach 19:37:48 quintopia: Soon. 19:37:53 First I will deacquire a working laptop. 19:37:59 ooh, that sounds convenient though ... do debian chroots work in HFS filesystems? 19:38:03 Then later I will reacquire it, or more likely a replaced one of identical furnishing. 19:38:17 what will you use in the meantime 19:38:26 olsner: I... doubt Debian depends on any capitalisation clashes? I somewhat doubt the whole toolchain will spit out Mach-O properly though 19:38:33 I mean, Debian is all ELF all the time, as far as I know 19:38:37 quintopia: My older laptop 19:38:57 olsner: You could write an ELF loader like Gregor did for Windows. 19:38:58 elliott: do you know any pixel artists 19:38:59 Or just port his. 19:39:02 oh, right. the Mach-O thing ... how hard could it be to acquire an ELF loader for OS X? 19:39:04 quintopia: Why 19:39:10 why 19:39:27 or just write my own os x kernel module for it, how hard could *that* be 19:39:30 it's completely possible to build nice compiler stack on OS X 19:39:41 (I did in fact write an ELF loader for Mac OS X too) 19:39:50 (homebrew: just write an ELF loader and install a debian chroot to work around one missing package) 19:40:03 clearly superior to macports again 19:40:29 Gregor: cool stuff, did it work? 19:40:54 oh right 19:40:58 olsner: Yup 19:41:01 how is Microcosm doing? 19:41:29 nooga: Ask Vorpal :P 19:41:52 hmm, otoh... a debian chroot would have *Linux* ELFs, right? 19:42:44 Just a matter of translating syscalls, although at this point you're practically looking for Microcosm 19:43:02 Gregor: Does the ELF loader have any kind of syscall translation mechanism? :P 19:43:51 plugging in a dvso shouldn't be rocket science, but even then there'd be so many tricksy system calls to implement 19:43:51 elliott: Why would it? 19:44:07 elliott: It has the ability to transparently load host libraries as if they were ELF libraries. 19:44:34 Gregor: Hmm 19:44:41 Gregor: That should be enough to load anything that uses libc, right? 19:44:47 -!- yretssin has changed nick to Nisstyre. 19:44:51 Gregor: Assuming that it doesn't use glibc-specific stuff 19:45:21 but what's microcosm? 19:45:22 Hmm 19:45:23 Clearly what you *should* do is to try to get MkLinux working under OS X. (MkLinux runs a Linux 2.0 series kernel under the OSF Mach 3 microkernel; clearly it's a trivial matter to bump that to Linux 3 on OS X's kernel.) 19:45:27 Debian/kFreeBSD uses BSD libc, doesn't it? 19:45:46 So ostensibly you should be able to get a Debian ELF chroot working with Gregor's loader... 19:46:31 elliott: That's a stretch. 19:46:36 elliott: And no, Debian/kFreeBSD uses glibc. 19:46:57 elliott: The problem isn't the functions, it's the structures. 19:47:09 Gregor: glibc works on FreeBSD? 19:47:12 Yes 19:47:13 Huh. And oh right. 19:47:19 musl is ABI-compatible with glibc 19:47:21 But that's not helpful :P 19:47:28 Gregor: So I guess glibc miiight work on OS X? Same syscalls, roughly, right? :P 19:47:41 -!- Taneb|Kindle has joined. 19:47:42 G'luck with that. 19:47:53 It's olsner's task, not mine :) 19:48:05 "To build gcc and glibc on Mac OS X, you'll need to install a few gnu utilities:" 19:48:22 lemme guess, a few == all of them? 19:48:25 Doesn't seem to actually tell you how to do it, but :P 19:48:51 olsner: OK so here is your task: Get glibc working on OS X with Gregor's ELF loader. Make sure a few GNU things compile with it and libraries compiled with it. BOOTSTRAP DEBIAN 19:48:52 how is Microcosm doing? nooga: Ask Vorpal :P <-- what? You never did anything on the design 19:48:57 Then just trash it all and install Debian proper. 19:49:05 Vorpal: That was the point X-P 19:49:51 the original issue was that my homebrew formula for bochs was missing something ... now I'm porting debian to a new platform :> 19:50:02 Gregor, not implementation. Design I said. 19:50:04 "-- officially supported hardware includes: x86, Motorola 680x0, DEC Alpha, PowerPC, ETRAX CRIS, s390, and SPARC. It officially supports the Hurd and Linux kernels. Additionally, there are heavily patched versions that run on the kernels of FreeBSD and NetBSD (from which Debian GNU/kFreeBSD and Debian GNU/NetBSD systems are built, respectively), as well as the kernel of OpenSolaris.[9] It is also used (in an edited form) and named libroot.so in BeOS and Haiku." 19:50:40 Gregor, I said I was willing to work on the implementation but that I lacked (and still lack) the knowledge to do the design of it. 19:51:07 olsner: You could also just use Gentoo Prefix, which supports OS X, but that's... Gentoo. 19:51:30 olsner: You may also want to try NetBSD's pkgsrc, which supports OS X. 19:51:33 Or you could just, you know, install Bochs. 19:51:43 fizzie: The problem is that all package managers for OS X suck :P 19:51:53 Yes, well, there's this thing of not using any. 19:52:08 olsner: Oh, and Nix/Nixpkgs support OS X fully; that's a nice one. 19:52:09 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds). 19:52:23 elliott: Mind you, getting ELFs that load in the ELF loader is a trick anyway :P 19:52:35 elliott: Since to my knowledge GCC doesn't have an elf-darwin target. 19:52:44 So you have to make generic ELF binaries that "happen" to be good enough.] 19:52:46 OS X is an officially supported Bochs platform, you shouldn't need to get any help from a package manager. 19:52:55 fizzie: Well, yes, but. 19:53:02 Yes, yes, it's the principle of it. 19:53:07 officially supported? I don't think so, it doesn't work anyway 19:53:16 http://esolangs.org/w/index.php?title=Tedius&curid=4163&diff=24402&oldid=24385 19:53:26 Tedius has gone from 'meh' bad to hilarious bad. 19:53:29 http://bochs.sourceforge.net/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=http://bochs.sourceforge.net/doc/docbook/user/index.html "1.8. Supported Platforms: Emmanuel Mailliard ported the Macintosh code to MacOS X with Carbon API. Jeremy Parsons (Br'fin) has been maintaining the MacOS X port since March 2002; see Section 3.4.7 for compile instructions." 19:53:35 olsner: It comes in .app form I believ. 19:53:36 e. 19:53:50 Phantom_Hoover: wtf? 19:53:53 pila started editing it 19:53:55 the mac parts are broken, that is... the X UI works if you disable all the mac stuff that doesn't compile 19:53:56 but plms made those two edits 19:53:56 It has a thing that makes a bundle of it, yes. 19:54:24 olsner: Just get a binary? 19:54:28 It might be that the port has bitrotteded away. 19:55:16 There's a stack overflow (of all things) thread about compiling it on Snow Leopard; http://stackoverflow.com/questions/1677324/compiling-bochs-on-mac-os-x-snow-leopard 19:55:25 Some seem to have managed. 19:55:38 With -m32 being the most important magic flag. 19:56:42 Isn't bochs itself kind of bitrotten 19:57:07 well, I think I have those fixes because the formula I made actually builds 19:57:16 and runs, just not my OS 19:58:29 Last update in trunk 9 hours ago, so apparently they're strill twiddling on it. 19:58:36 Last release from February, though. 20:00:31 -!- elliott has quit (Remote host closed the connection). 20:01:03 -!- elliott has joined. 20:02:24 can you implement the lambda calculus in pointers 20:02:35 thTAS THE QUESTION ???\ 20:02:40 -!- azaq231 has joined. 20:02:42 -!- azaq23 has quit (Ping timeout: 264 seconds). 20:03:49 -!- oerjan has joined. 20:07:07 ais523: oh I forgot I even said anything about scapegoat.... before i read the logs... 20:07:37 elliott, forgetting scapegoat exists for fun and profit 20:10:42 -!- Nisstyre has quit (Read error: Connection reset by peer). 20:10:45 * Sgeo wonders what statically-typed fun and dynamic languages are out there 20:10:55 Would Dylan fit? 20:10:59 I can't handle it any more. 20:11:56 elliott: handle what? 20:12:08 Sgeo. 20:12:27 Sgeo: some consider haskell to count. 20:12:29 what's it done now? 20:12:52 oerjan: no he wants a language that will make him start programming rather than learning more languages, not one that will "break his brain" tons ("" marks direct quote) 20:13:05 oh, he spoke just before elliott there, almost missed that 20:13:06 this is why he has gone from "learning" ruby to trying to find another language to "learn" 20:13:27 i don't know how to break procrastination without breaking brain 20:13:54 actually i don't know how to do either in any case. 20:14:39 learning haskell apparently breaks your brain. with mathematical category throy. 20:14:45 categoy throy. what was it? 20:15:09 oh well, he already "knows" Haskell, he managed to write cat in about half an hour after all 20:22:16 -!- azaq23 has joined. 20:23:08 -!- azaq231 has quit (Ping timeout: 258 seconds). 20:30:07 elliott: It's because pointers are considerably more useful than Lambda calculus. 20:31:09 Gregor: Right. Instead of having lambdas built in and pointers in libraries (Data.IORef, Control.Concurrent.MVar, Control.Concurrent.STM.TVar, Foreign.Ptr, Foreign.Storable), it should be the other way around. 20:31:13 Control.Lambda 20:31:22 THEN Haskell would be worth learning. 20:32:47 also there should be just one kind of pointer, but a dozen kinds of lambdas. 20:33:01 Yes. 20:33:05 For all purposes and situations. 20:34:40 -!- monqy has joined. 20:35:24 dynamically scoped pure lambdas, lexically scoped pure lambdas, lexically scoped pure lambdas that are slightly slower but work even with template haskell, delimited continuation scoped lambdas over an arbitrary monad which are however horribly slow... 20:35:48 Yesssssssssssssss 20:35:52 Gregor: See, NOW Haskell sounds appealing. 20:36:27 s/eal/all/ 8-D 20:36:52 At least you can tell when a proposed Haskell change is disgusting :P 20:37:03 oh and a thread-safe version of the latter that tends to run out of memory due to space leaks which nobody except oleg manages to avoid. 20:38:02 oh and of course a near-complete set of strict variations 20:38:13 oerjan: Are you trying to analogise those to the kinds of pointers or are you just snarking on general principles? :P 20:38:25 both. 20:38:36 ok very loosely analogise 20:38:47 I guess that thread-safe one is meant to be STM? 20:38:56 I didn't think space leaks were common with Haskell STM 20:39:58 _you_ try to avoid space leaks in a concurrent framework running on top of a transformed list monad 20:40:34 oerjan: um it's not that bad is it... I guess you are probably joking at this point 20:40:40 but it's O(n) in the number of concurrent transactions worst-case, I believe 20:40:44 at _this_ point? 20:41:04 :D 20:43:38 -!- Sgeo has quit (Ping timeout: 245 seconds). 20:44:08 anyway, oleg has shown how the space leaks can in principle be avoided by doing each step via bytestrings and unsafeCoerce 20:45:04 http://www.reddit.com/r/programming/comments/jt1ff/fluxflex_free_python_hosting_250mb_web2py_howto/c2exqnd?context=3 20:45:06 I upset the spammer :( 20:45:15 Your comment is very hurtful to the Python community. It is not constructive. It does not help anybody. 20:45:36 (thumbs up) 20:46:15 -!- myndzi\ has quit (Ping timeout: 258 seconds). 20:47:35 -!- myndzi has joined. 20:53:30 -!- Sgeo has joined. 20:57:26 hmph 21:00:04 -!- augur has quit (Remote host closed the connection). 21:02:59 `addquote Hmm, I really need to institute dwarven birth control. 21:03:01 622) Hmm, I really need to institute dwarven birth control. 21:08:55 so exponential growth is not a viable DF strategy? 21:26:12 elliott: Nice thing about building being the same cost as advancing is you can explore non-destructively without wasting time. 21:28:15 Gregor: "Non-destructively"? 21:28:33 elliott: More or less leaving your shit intact. 21:28:37 (If you have to cross your wires) 21:28:58 don't cross the streams 21:29:15 Gregor: Ah 21:29:24 Gregor: Well, if you break a wire, it only has to stay broken for two cycles 21:29:30 One cycle to move on to the wire, one to build+advance 21:29:37 elliott: Yeah, exactly. 21:29:39 So as long as you don't have an electron too close nothing breaks, but if you do... 21:29:43 Gregor: I made this point hours ago, btw :P 21:29:50 elliott: SO DID YOUR MOM 21:31:44 `addquote Intake flooded with magma. Reactor connected. Pumps active. YES IT'S WORKING 21:31:46 623) Intake flooded with magma. Reactor connected. Pumps active. YES IT'S WORKING 21:31:56 That's... not even funny. 21:32:25 It is, if you have no idea what Dwarf Fortress is. 21:37:19 -!- azaq231 has joined. 21:38:42 -!- azaq23 has quit (Ping timeout: 264 seconds). 21:39:15 meh, http://chrisdone.com/posts/2011-08-21-haskell-emacs.html does nothing that leaden can't do 21:39:29 actually less since it doesn't integrate with a running ghci 21:40:50 -!- BeholdMyGlory has quit (Remote host closed the connection). 21:45:23 wait, leaden exists? 21:45:52 oerjan: Weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeell 21:45:57 I did write leaden once but then I lost it 21:46:13 leaden is unambitious enough that I could write it at any time, Emacs just hasn't annoyed me enough yet :-) 21:46:21 (but it's getting close with haskell-mode's indentation) 21:55:54 -!- myndzi has quit (Ping timeout: 240 seconds). 22:00:04 "So I'm surprised we don't hear more about K - surely functional weenies must love its winning combination of preposterously overdone terseness and geek kudos." 22:00:11 Never have I wanted to punch someone so quickly 22:00:38 whats k 22:00:51 language 22:01:15 K is a proprietary array processing language developed by Arthur Whitney and commercialized by Kx Systems. 22:01:18 looking good 22:01:39 monqy: it is good 22:01:44 despiet your sarcasm 22:01:48 monqy: do you know J? 22:01:52 22:01:53 K is very similar 22:02:03 I intended to type that before elliott mentioned J 22:02:04 one time I tried learning J but then got bored because my reading material was boring 22:02:17 like really boring 22:02:26 to learn J all you need is the very basics plus the vocabulary page 22:02:40 what's the very basics 22:02:52 and does the vocabulary page mean referencing or memorising 22:03:27 If you don 22:03:31 The very basics is... the array literal syntax, how the function application works, what a fork is, and how definitions work? 22:03:34 And referencing 22:04:00 one of the things I really didn't like about J, if I'm remember, is http://www.jsoftware.com/docs/help701/dictionary/d310n.htm this thing 22:04:24 using an interger like that is just the stupidest design 22:04:33 iirc, there are words that are synonyms for those numbers 22:04:43 monqy: all J has is integers 22:04:55 technically: n-dimensional arrays of (integer | floating point) 22:04:57 And arrays 22:05:00 Oh 22:05:01 there are no other data types 22:05:47 -!- FireFly has quit (Quit: FireFly). 22:06:54 monqy: but really, J is lovely 22:07:01 monqy: : is not even really... part of the language? 22:07:04 it's part of the definition syntax 22:07:05 monqy: and btw 22:07:09 you can say 22:07:11 oh 22:07:12 'noun' : ... 22:07:12 iirc 22:07:26 rather than using the integers, somehow 22:07:35 monqy: well it IS part of the language but it is only ever used when defining something 22:07:43 which is the least important part of J?? 22:07:57 monqy: btw if you think that's gross look at how it does IO http://www.jsoftware.com/docs/help701/dictionary/xmain.htm 22:08:02 but again, not really part of the "language proper" 22:08:18 :( 22:09:30 monqy: I mean, come on, it's a functional language that elegantly handles everything as transformations of N-dimensional arrays, where almost every definition is point-free... 22:09:40 mmmm 22:10:06 And with a really nice REPL 22:10:14 is there any good way to learn it 22:10:17 Plus lots of nice function-plotting stuff and the like in the stdlib. 22:10:23 monqy: The very basics is... the array literal syntax, how the function application works, what a fork is, and how definitions work? And referencing 22:10:26 -!- myndzi has joined. 22:10:36 oh just look thos up? 22:10:39 !: 22:10:39 ok i guess 22:10:53 You just have to keep solving little problems interactively and build up your knowledge 22:11:01 Plus looking at like solutions to Euler problems and the like in J will help?? 22:11:13 Probably anarchy golf solutions too as they're likely to be idiomatic ;-) 22:11:15 maybe i'll try some of the easier project euler porblems or some code golf 22:11:25 Hmm, how good/bad would J be for me simulating whether binary search on a constantly changing thing has a weird distribution (I understand the problem better than I described it, I promise) 22:11:26 exactly what i was thinking 22:11:28 er 22:11:32 not wat sgeo said 22:11:33 what elliott said 22:11:37 i haven't read Sgeos stuff yet 22:11:50 Sgeo: are you still doing that 22:11:54 Sgeo: really 22:12:02 monqy, I never got around to writing the simulation 22:12:28 Too busy language hunting >.> 22:12:39 have you learned haskell 22:12:46 Define "learned" 22:12:50 learned 22:13:02 can you write good haskell comfortably 22:13:07 monqy: ive already grilled him about it today 22:13:11 ok 22:13:41 Sgeo: what bad languages are you looking at now 22:13:55 Dylan 22:14:02 oh numbers in J are purple now with the new version neat 22:14:04 i like pruple 22:14:12 purple is good 22:14:19 hard to type J without number or punctuation keys oops 22:14:22 I've never tried dylan 22:14:42 and finally Ctrl+Q quits it 22:14:48 rather than bringing up some form manager crap 22:14:53 (the ui's gtk not java now) 22:15:07 I haven't looked into it closely, but I think I'd like it. Except for the dead community. 22:15:14 * Phantom_Hoover → sleep 22:15:23 Deader than languages that a lot of idiots think are "unpopular" 22:15:28 Phantom_Hoover: friendship sleep 22:15:43 -!- Phantom_Hoover has quit (Remote host closed the connection). 22:22:48 -!- myndzi has quit (Ping timeout: 245 seconds). 22:24:44 die lang 22:25:54 -!- myndzi has joined. 22:27:17 oerjan: wat 22:28:33 i'm just pointing out that it was practically doomed from the start with that name 22:28:51 oh esowiki? 22:28:56 or 22:28:58 what are you talking about 22:29:01 dylan 22:29:09 ...i guess the y is short though 22:29:48 i rather suspect it's named after that guy called Dylan, oerjan :P 22:30:01 /ˈdɪlən/ 22:30:01 help 22:30:11 argh unicode 22:30:28 so, short 22:30:29 help 22:30:31 IPA 22:30:36 help 22:31:08 my font does the schwa weirdly 22:31:12 upsetting 22:31:49 schwa is bad sound 22:31:53 'James Joaquin chose the name Dylan for "DYnamic LANguage." 22:31:57 ' 22:32:05 suuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuure 22:32:12 but dynamic has a long y doesn't it. 22:32:13 schwa is perhaps my least favourite vowel 22:32:18 I like it 22:32:27 oh ais523 is here again 22:32:32 monqy: Schwer is perhaps my most favorite vowel. 22:32:33 I've been here all along 22:32:35 or else was always here and just hates me talking about scapegoat 22:32:46 etf 22:32:48 wtf 22:32:49 -!- myndzi has quit (Ping timeout: 258 seconds). 22:32:50 ais523 is 22:32:51 I've just been splitting my attention too many ways 22:32:54 elliott: just like ericsson named erlang after that famous statistician. oh wait... 22:32:58 how can that be 22:33:18 this ipa does not match up at all with "dynamic language" now im confused 22:33:18 oh, wondered why monqy was suddenly an idiot, but then it turns out it was nooga 22:33:19 memcpy *changes* the destination pointer 22:33:34 elliott: they're both the same nick color in my client too 22:33:40 oerjan: The name "Erlang", attributed to Bjarne Däcker, has been understood either as a reference to Danish mathematician and engineer Agner Krarup Erlang, or alternatively, as an abbreviation of "Ericsson Language".[2][3] 22:33:42 it's probably both 22:33:50 Different nick colors here 22:34:00 monqy: contractions can change prounocunreounations 22:34:00 what's a nick coloure 22:34:05 ais523: i domt use nick colours 22:34:21 monqy: some clients color people's nicks in colors based on their username 22:34:28 elliott: but by that much?? 22:34:32 which makes it either easier or harder to tell them apart at a glance depending on who's talking 22:35:32 can also ugly things up, at least from what I've seen of it 22:35:53 im aesthetics 22:35:59 I don't even like hearing of when it colours the name backgrounds too 22:36:12 oh if it just like backgrounded each line with a nice relaxing subtle pastel colour that could be nice??? 22:36:30 colour name background with ugly colour, colour name foreground with clashing ugly colour 22:36:33 now i... want that.................................... 22:36:36 you'd want unique colors for everyone, and more unique for people who talked a lot 22:36:38 monqy that would be good.... 22:36:58 and to gradually morph the colors over time as people joined and left, so that a) there still was no clash, and b) you didn't notice the colors changing 22:37:06 ais523: prefect.......... 22:37:49 -!- GreaseMonkey has joined. 22:38:01 no but monqy imagine... a delicate pastel palette... of colours.... backgrounding the text.... 22:38:07 -!- myndzi has joined. 22:38:08 so leraxing 22:38:43 I typically prefer black bacgkround 22:38:56 monqy: no bad... black backgrond is bad for eys............. 22:39:07 black on nice subdued background.....=good 22:39:36 elliott: by black background, do you mean "background darker than foreground", or "black background"? 22:39:49 because late at night, I typically use black on dark gray as a color scheme 22:39:55 to prevent the screen being too bright 22:40:14 ais523: mostly just black, I can see that off-white on dark grey might be a nice colour scheme for some people, I just personally don't like it 22:40:19 but white on black is obviously terrible 22:40:25 probably even worse than black on white 22:40:55 elliott: well, I make the whole screen dark 22:41:10 hmm, black on dark grey? 22:41:22 the grey can't be that dark, or you'd be blind already 22:41:43 elliott: the dark grey is still the brightest thing on the screen, or indeed in the room 22:41:50 True :P 22:41:51 think of it as white, just with a much darker screen 22:42:34 I don't really understand why normal computer UIs are basically terribly-designed, colour-wise 22:42:49 I guess because colour theory doesn't make things shiny 22:43:04 elliott: hardly anyone cares; arguably they /should/ care, but they don't 22:43:30 well, it's their _job_ to care about it, if they're UI designers 22:43:50 elliott: it's more, it's their job to do what their boss asks them 22:43:53 and their boss rarely does 22:43:57 many projects don't even /have/ UI designers 22:44:00 OK, it's their /responsibility/ :P 22:44:06 And Ubuntu sure as hell does 22:44:12 As does OS X, obviously 22:44:19 I'm more talking about overall OS colour schemes 22:44:29 Applications don't usually pick a huge palette of colours themselves, after all 22:44:33 Ubuntu's color scheme seems to be "whatever nobody else is using" 22:44:43 haha 22:44:53 Brown! Purple! Next up: Green???? 22:45:09 hmm, I suppose it's more "dark grey / silver" nowadays 22:45:12 bleen 22:45:15 / orange 22:45:17 / mess 22:45:44 chartreuse/polka-dot 22:45:56 I do not like orange or yellow 22:46:02 hmm, I wonder what the nicest functional data structure for a text editor is 22:46:05 probably a list zipper, I guess 22:46:11 -!- copumpkin has quit (Ping timeout: 246 seconds). 22:46:15 kind of inefficient for large files, though 22:46:30 I suppose you could use a zipper of constant-sized chunks 22:51:40 I love how the pygtk docs are more usable than the gtk docs 22:51:46 because the gtk docs show everything in C form 22:51:52 which has a huge impedance mismatch with gobject 22:53:36 oh my god 22:53:43 monqy: oerjan: everyone: http://www.reddit.com/r/programming/comments/jt1ff/fluxflex_free_python_hosting_250mb_web2py_howto/c2eyj8z?context=1 22:53:51 my funge-archive EXPOSED 22:54:20 oh nose 22:54:41 cam;t stop laughing 22:55:06 why do the other hostings do not get it? 22:55:09 Is that person incapable of Googling? 22:55:30 "Care to explain?" 22:55:31 god it's like 22:55:39 YOU HAVE PERSONALLY INSULTED ME AND MY WEBFRAMEWORK 22:55:42 EXPLAIN YOUR PERSONAL PROJECTS IMMEDIATELY 22:55:49 JUSTIFY YOUR EXISTENCE BEFORE I VANQUISH YOU FROM THIS EARTH 22:56:43 what is web2py 22:56:48 bad 22:57:46 careful, maybe he's actually interested. getting someone who is both an esolanger and a spammer could lead to painful mixed emotions. 22:59:46 Everyone knows Steve Jobs resigned by now? 22:59:51 23:00:28 elliott: heh, you have a -6 comment? 23:00:33 how did you manage to offend so many people? 23:00:37 ais523: I'm pretty sure I have comments lower than that 23:00:50 I mean, recently 23:00:51 ais523: and, well, mdipierro either has a lot of insanely loyal students, or a lot of sockpuppet accounts 23:01:05 I think I concluded the latter a while ago upon investigation, but I don't really care much 23:02:10 im not understand 23:02:12 ais523: but, uh, I dared to suggest that this guy's crappy webframework that he spams a ton might not be the top priority for web hosts worldwide :) 23:02:16 is there contesxt im misisinge 23:02:31 elliott: in quite a combative tone 23:02:36 elliott: you dared sugested it impolitely........ 23:02:59 ais523: monqy: hey, he's the one who keeps spamming after I tell him not to :) 23:06:41 I wish Gtk2Hs was nicer :( 23:07:33 elliott, are you using J701 or J602? 23:09:47 wow, Steve Jobs has just resigned 23:09:58 did a good job of making it unexpected 23:09:59 what 23:10:05 wow 23:10:54 heh, I was so expecting you to say "I know already" 23:11:03 i am UNPREDICTABLE 23:11:13 /did/ you know already? 23:11:20 I think I may have mentioned it... 23:11:22 sgeo mentioned it 23:11:27 ais523: nope 23:11:41 Well, then the obvious conclusion is that elliott has me on ignore. 23:11:52 Sgeo: oh, you did mention it 23:11:57 but I needed to read scrollback twice to see it 23:12:04 therefore, I probably just have you on mental ignore 23:12:07 rather than physical ignore 23:12:09 heh, AAPL stock is going down 23:12:19 elliott: not yet, they waited until the markets were closed before announcing 23:12:28 good job 23:12:30 but it's bound to crash as soon as they open again 23:12:31 reddit is not always accurate? 23:12:37 not least, because everyone thinks it's going to crash 23:12:37 http://www.marketwatch.com/investing/stock/aapl 23:12:40 this shows it going down at least 23:13:12 elliott: it shows it up 0.69% at close 23:13:20 e 23:13:20 heh 23:13:25 so presumably they're measuring something that can carry on even after close 23:13:34 people promising to make trades, or something 23:13:34 "I have always said if there ever came a day when I could no longer meet my duties and expectations as Apple's CEO, I would be the first to let you know. Unfortunately, that day has come." <-- sounds like health reasons 23:13:45 indeed 23:14:02 oh well 23:15:41 -!- nooga has quit (Ping timeout: 260 seconds). 23:18:34 monqy: can you kidnap some people and make them make gtk not unnice thanks 23:18:46 :( 23:19:01 I've never gtked 23:19:29 elliott: nice 1 gtk 23:20:54 ais523: oh 23:21:04 monqy: well it is not that bad but the haskell binding is not as nice as the wx binding...... 23:21:32 you can give values all the way up to 19 (20?) to make it nicer 23:21:42 you could use one of the frp gui things uless they're all bad...or you can't use the,.....m 23:21:47 health reasons? fuck that 23:21:52 guy just wants to retire 23:21:57 monqy: im going to use reactive-banana................... 23:22:03 who the hell would want to run a company till the end of his days 23:22:09 he's old and decrepit 23:22:13 and rich 23:22:18 no reason for him to work at all 23:22:28 and on medical leave since January obviously health has NOTHING to do with it 23:22:34 monqy: but... i still have to define the ui widgets.... 23:22:38 monqy: frp just handles the interactions... 23:23:34 ;_--; 23:23:51 monqy: i could use wxwidgets but then it would look uglier???? 23:23:57 even though i guess i only need a few widgets 23:23:58 as far as i am concerned apple is still just making updates to newton 23:24:02 is there a wx banana 23:24:05 clearly we need frw 23:24:07 monqy: yes 23:24:10 I rememebr something about wx bananas 23:24:17 oerjan: waht... 23:24:25 functional reactive widgets 23:24:28 oerjan, yes 23:25:26 wax bananas are only recommended for decoration 23:26:55 -!- copumpkin has joined. 23:29:49 oerjan: bax wnawnanan 23:30:06 -!- augur has joined. 23:30:57 famous tamil decorator 23:30:58 Oh I was strolling through the pork one daaaay 23:31:02 In the merry merry month of May 23:31:15 oerjan: you misspelled bisexual 23:31:53 elliott: He wasn't referring to oklopol though! 23:31:54 In the merry merry month of bisexual? come on, elliott, that makes no fucking SENSE 23:32:02 oh wait 23:32:03 X-D 23:32:13 famous misreading 23:32:14 EVERY month is the month of bisexual! 23:32:40 if you say so 23:32:45 monqy: http://sprunge.us/dbei thism is what gtk frp looks like... note how the stuff inside the "network <- compile $ do" block is nice and lovely but the stuff outside not so much... 23:32:52 monqy: (it was even less nicemaking before I defined make/makeIn) 23:33:10 compare reactive-banana-wx's equivalent, 23:33:18 https://raw.github.com/HeinrichApfelmus/reactive-banana/master/reactive-banana-wx/src/TwoCounters.hs 23:33:27 note how it is a nicer.... 23:33:33 it does look a nicer... 23:34:52 -!- augur_ has joined. 23:35:02 "Rezzo" appears to be a sufficiently-uncommon Italian word that most dictionaries don't have it. 23:35:04 monqy: but wx is uglie 23:35:14 :(( 23:35:26 is there amny...ogood....guis 23:36:00 monqy: gtk....but api....is bad 23:36:24 i meant api too... 23:36:29 monqy: help 23:36:32 hlep 23:37:05 -!- augur has quit (Ping timeout: 240 seconds). 23:38:40 Damn. Steve Jobs resigned. 23:38:57 Good day to not have AAPL stock. 23:39:20 pikhq_: No, great day to buy AAPL stock tomorrow. 23:39:23 Cheap as shit. 23:39:27 Then sell it when the next iPhone comes out. 23:39:29 -!- augur_ has quit (Ping timeout: 245 seconds). 23:39:42 elliott: Yes, but right now is a good day to not already have it. 23:39:49 Well, no. 23:40:24 Well, unless you're not a moron like most investors, and are in it for the long haul. :P 23:40:37 monqy: I guess I wil use gtk because its text view is nicer... 23:40:39 will 23:40:41 "ZOMG SHORT-TERM THING! TIME TO LOSE MONEY!" 23:40:54 monqy: I am tempted to try and use webkit instead (slightly) 23:41:01 web kit?? 23:41:10 is it any good 23:41:32 monqy: it is in ur browser............. 23:41:38 elliott: monqy's not being serious, right? 23:41:48 ais523: what would the fun be if you could tell? 23:41:54 heh 23:42:16 ais523: also, rich for you to say essentially "how can not know " 23:42:31 elliott: you think of WebKit as pop culture? 23:42:35 http://hackage.haskell.org/package/webkit ... wab kat 23:42:51 ais523: I have adopted the oklopol convention of referring to anything that isn't pure mathematics as pop culture 23:42:57 (this includes the names of theorems) 23:43:05 haha 23:43:19 and, um, that more than one person knows about, I suppose 23:43:53 what about theorems that only one person knows about 23:43:55 (do those /have/ names?) 23:44:12 it is the mystery of life 23:44:30 hey fermat's last theorem is _so_ pop culture 23:47:05 -!- sllide has quit (Ping timeout: 240 seconds). 23:47:10 monqy: I do wish GTK had something like that layout thing though 23:47:27 -!- azaq23 has joined. 23:48:04 would it be possible to make one 23:48:06 -!- azaq231 has quit (Ping timeout: 240 seconds). 23:48:56 monqy: Probably, but. 23:49:02 articulate (tm) 23:50:50 webkit still won't compile because it depends on System.Glib.GString which still isn't in the glib package on hackage??? :( 23:51:03 this has been going on for how long 23:51:23 oh 23:51:27 what do you mean still have you, tried before 23:51:32 yes 23:51:36 oh 23:51:52 make a, buge report, in hash haskell 23:51:54 bugle report 23:52:08 i thought everyone already knew about it 23:52:24 im, dont know 23:52:30 and iam part of everybody 23:52:32 i think 23:52:38 iirc GString is in the glib darcs respository but they're too lazy too package it onto hackage for long... 23:52:48 monqy: oh... i think they are making next erlease... one point oh... 23:52:52 because... changing things