00:01:54 > 2**57885161 00:01:56 Infinity 00:12:11 -!- WeThePeople has quit (Quit: Leaving). 00:12:47 -!- WeThePeople has joined. 00:15:18 maybe PHP has a feature where it automatically converts l to 1 and O to 0 00:15:52 10+1 is probably ll in php 00:16:07 -!- augur has quit (Remote host closed the connection). 00:16:38 shachaf: is there some secret signal in the number of dots after each message 00:16:52 kmc: Ask monqy. 00:17:29 We were talking about putting 3 21-bit codepoints in every 64-bit word, and using the last bit to encode secret messages. 00:17:44 Ah, good ol' UTF-31. 00:17:46 Erm 00:17:47 UTF-63 00:17:53 UCS-2.625 00:18:14 :D 00:18:14 I have a version of "text" that actually uses this encoding. 00:18:17 It passes a lot of the tests. 00:18:18 parity bit obv. 00:21:18 I think I saw someone implement binary literals in C with something like #define _I )*2+1 #define _O )*2 #define B8(x) (((((((((0 x) so that B8(_I _O _O _O _I _O _O _O) turns into (((((((((0)*2+1)*2)*2)*2)*2+1)*2)*2)*2) aka 136. 00:22:19 too bad C doesn't have 0b00110 literals 00:23:42 Fortunately, the preprocessor provides clearly an almost-as-nice replacement. 00:23:51 It'd be a *lot* nicer. 00:23:56 c++11 has some stuff that allows you to write e.g. 00110_b if you define an operator"" _b to convert the literal 00:24:02 (GCC of course has 0b010100 as an extension.) 00:24:50 fizzie: haha 00:25:34 Pity that's not ISO. 00:26:33 If you want to be fancy, you can extend the above B8 macro by defining _OOOO, _OOOI, _OOIO, ..., _IIII and then you can have a nicely grouped B8(_IIOI _OOII). 00:27:03 Or you could just define 256 macros. 00:27:27 Or 4294967296, for B32(). 00:27:37 Meh, define 2^64. 00:28:15 You could define B32(a, b, c, d), though, with 256 macros. 00:28:30 I guess you could do that anyway. Bu1 31 ,s is much more annoying than 4. 00:31:22 You can define a B32(a b c d) with 256 macros too, and then there are no commas. 00:31:59 Though you still need whitespace, so it doesn't really save much. 00:33:22 -!- carado has quit (Ping timeout: 246 seconds). 00:43:42 fizzie: aren't hex literals good enough 00:44:24 what's "good enough" 00:44:32 good enough is good enough 00:45:20 For representing bit patterns 00:45:42 not really 00:46:11 annoying when you're programming control registers with bitfields that don't align with nybble boundaries 00:46:12 You can't see THE PATTERNS if it's in hex. 00:46:24 for representing nybble patterns 00:46:53 When I see, say, E, that goes straight into 1110 in my head 00:47:20 it's not you, it's the E talking 00:47:40 Exactly 00:47:43 FreeFull: If you see a bitmap image in hex, does it appear as visually as it would when it were 0s and 1s? 00:47:45 All you have to do is just listen 00:48:00 fizzie: Is it a 1-bit bitmap? 00:48:14 Because for 256-colour or more, hex works better than binary =P 00:48:18 FreeFull: and what of people who lack this power? I guess the true C programmer answer is that they're just drooling idiots who should never be let near a computer 00:48:29 I guess it's good for 16 colour too 00:48:33 FreeFull: It's a bitmap, of course it's 1-bit. 00:49:08 It's not a pixmap or whatnot. 00:49:26 tritmap 00:49:38 balanced tritmap 00:50:00 1 is light, 0 is nothing, T is antilight 00:50:30 Reverse the polarity on the laser! 00:50:57 Of course you can always #define B8(x) ((x&1)|((x>>2)&2)|((x>>4)&4)|...) and then use B8(001101100) for binary literals. (Better not forget the leading 0!) 00:51:42 quick FreeFull what's the 19th bit of 783F5A4DC562465554807AD8C45D2863 00:51:58 least or most significant? 00:52:06 kmc: 0 00:52:08 middle most significant 00:52:16 I assumed from the left for some reason 00:52:19 kmc: Which base? :) 00:52:19 imo 7 00:52:19 Let me do it from the right 00:52:22 -!- sirdancealot7 has joined. 00:52:43 quick kmc what's the 19th bit of 1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011 00:52:45 0 too 00:52:57 shachaf: 1 00:53:01 I mean for kmc's 00:53:01 it's a 1 00:53:12 Wait, do you count the 0th bit too 00:53:21 If you count the 0th, it's 1 00:54:40 Are we *conclusive* that it's either 0 or 1? 00:54:45 No other options? 00:54:58 It might be a 2. 00:55:08 > "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" !! 19 00:55:10 '1' 00:55:13 OK, this is getting to be too much to keep track of. 00:55:25 shachaf: the committee votes compromise, the bit will be 0.5 00:55:32 kmc: That's from the left though 00:55:37 > reverse "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" !! 19 00:55:39 '1' 00:55:42 > preview (base 2) "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" <&> view (bitAt 19) 00:55:45 Just True 00:55:45 * pikhq prefers base -1 00:55:50 Answer: True 00:56:01 > preview (base 2) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 19) 00:56:03 Nothing 00:56:12 > preview (base 16) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 19) 00:56:14 Just True 00:56:21 Hmm, you said 19th bit, not bit 19. 00:56:27 > preview (base 16) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 18) 00:56:29 Just True 00:56:31 :t (<&>) 00:56:32 Functor f => f a -> (a -> b) -> f b 00:56:34 flip fmap 00:56:38 oh 00:56:46 :t preview 00:56:47 MonadReader s m => Getting (First a) s t a b -> m (Maybe a) 00:56:59 stab 00:57:29 Oh, much better: 00:57:30 > "783F5A4DC562465554807AD8C45D2863" ^? base 16.bitAt 18 00:57:32 Just True 00:57:39 * shachaf = silly 00:57:52 @ty \x -> preview (base 16.bitAt 18) x 00:57:54 [Char] -> Maybe Bool 00:58:58 Bike: admit that's kind of nice!!!! 00:59:24 > [1..4] . (+1) 00:59:26 Couldn't match expected type `a0 -> b0' with actual type `[t0]' 00:59:35 :t (.) 00:59:37 Functor f => (a -> b) -> f a -> f b 00:59:48 > (+1) . [1..4] 00:59:51 [2,3,4,5] 01:00:08 * shachaf sighs. 01:00:45 :t (+1) 01:00:47 Num a => a -> a 01:01:08 :t (^?) 01:01:09 s -> Getting (First a) s t a b -> Maybe a 01:01:39 @quote s\s?t\s?a\s?b 01:01:39 kmc says: The actual pattern is that you *first* do a breathlessly excited post about how Haskell is ninja pirate awesome because quicksort is so short, and it has closures, and you're going to 01:01:39 learn Haskell and write all your software in Haskell... then a week later you do the bitter "debunking" post. Monads are hard and Maybe isn't any different from Java's null and I was promised a pony, 01:01:39 where's my pony 01:01:45 Hmm. 01:02:16 @quote s(\s?)t\1a\1b 01:02:16 quicksilver says: i love them. Double is my friend You think he is, sure he says nice things about you but one day, when your back is turned, he 01:02:16 will stab you in the back with a mantissa 01:02:21 @quote s(\s?)t\1a\1b 01:02:21 sebazzz says: y venden bulks y esas mierdas bulks llenos de pastabase 01:02:24 @quote s(\s?)t\1a\1b 01:02:25 sioraiocht says: if you made a type class the same name as a type, I'd stab you in the face 01:02:30 And the quicksort is fake 01:03:10 people sure do like debunking ponies 01:04:08 they're not baby horses at all 01:04:09 wake up sheeple 01:04:22 you just think they're cute because they're small 01:04:28 but actually they're expensive and they shit everywhere 01:04:40 cockroaches are both small and cheap 01:04:40 it's weird how people don't realize how much shit animals actually involve 01:06:06 kmc: "they shit everywhere" is in general applicable to most animals 01:06:43 Bike: A good estimate is to take the amount you yourself shit and multiply that by a thousand 01:07:00 yes but people don't realize it! it's baffling. where do you think all that mass goes, people 01:08:56 what animal shits the most compared to its body weight 01:09:09 maybe pandas 01:09:12 the one that eats the most compared to its body weight 01:09:14 most probably 01:09:23 kmc: I'm thinking definitely some herbivore 01:09:27 but kmc pandas are fat and useless 01:09:38 exactly 01:09:38 i'm sure there are some svelte and useless animals 01:09:42 pandas have horrible digestive systems and eat bamboo which has almost no nutritious value 01:09:47 kmc, 01:09:48 kmc 01:09:49 kmc 01:09:52 Phantom_Hoover 01:09:54 you don't need to impress upon me 01:10:01 how shit pandas are 01:10:06 they're the swedes of the animal kingdom 01:10:13 -!- NihilistDandy has joined. 01:10:19 'Shrews typically eat 80–90% of their own body weight in food daily.[citation needed]' 01:10:32 i should get a shrew, video tape it for 24 hours, and upload that to wikipedia 01:10:35 but that would be original research :( 01:10:59 also not very rigorous. 01:14:51 Homebrew have now raised £5,176 to buy a Mac Mini 01:19:25 homebrew? 01:20:02 Did they fix the -k yet? 01:24:42 Phantom_Hoover: http://mxcl.github.com/homebrew/ 01:24:53 shachaf: yes, they merged my pull request 01:25:00 People nearby are talking about the key ingredients of a successful startup. 01:25:12 It seems that you need a hacker, a hipster, and a hustler. 01:25:24 it's mostly about what kind of coffee you serve 01:25:32 shachaf: that's probably not enough by itself 01:25:42 preferably you would raise a $250k - $500k angel round and put that all into an espresso machine 01:25:46 especially as you might have trouble getting them to work together 01:26:06 that's what the coffee's for 01:26:21 kmc: Good point. 01:26:23 a hustler? 01:26:29 if you don't have top coffee you can't attract top people 01:26:29 like a conman? 01:26:32 or uh, conperson 01:26:36 and no matter what you're doing, you need olympic-class rockstars to do it 01:26:55 do you ever feel bad about how badly treated olympic athletes can be 01:26:57 heavy metal is not yet a sport recognized by the IOC 01:27:03 Yes, rock stars have come up. 01:27:08 Bike, 01:27:09 no 01:27:12 because sports are bad 01:27:18 you're bad 01:27:19 Bike: but for a week every 4 years they get to live in the olympic village and have sex nonstop 01:27:20 wait 01:27:26 fencing is an olympic sport shit 01:27:28 kmc: haha 01:27:52 also did you know that one of the olympic committee chairpeople was an actual nazi sympathizer back in the 50s or 60s 01:27:55 good times 01:28:03 -!- DHeadshot has quit (Read error: Connection reset by peer). 01:28:04 olympics is hipster to mainstream american sports 01:28:06 i remember reading about that 01:28:19 he did some ridiculous things but i don't remember what 01:28:19 (portlandia did it) 01:28:23 Bike: great 01:28:27 nazis everywhere 01:28:32 clowns to the left of me, nazis to the right 01:28:42 -!- makadon has joined. 01:28:45 here i am, stuck in the middle with jew 01:28:57 -!- DHeadshot has joined. 01:29:06 http://en.wikipedia.org/wiki/1968_Olympics_Black_Power_salute ~ 01:29:10 * kmc cuts off Phantom_Hoover's ear 01:29:24 careful now 01:29:26 now they're talking about "the dunning-kruger effect" 01:29:30 huh he was in the 1912 olympics 01:29:31 that's the sort of thing that starts wars 01:29:34 empirical studies, man!! 01:29:51 sometimes i think psychology research should be written in code 01:29:55 shachaf: what about it 01:30:31 Maybe I shouldn't treat them as Internet people. 01:31:08 -!- stuntaneous has quit (Ping timeout: 255 seconds). 01:31:24 who are these peole 01:33:48 -!- sebbu has joined. 01:33:48 -!- sebbu has quit (Changing host). 01:33:48 -!- sebbu has joined. 01:35:14 shachaf: I feel kind of silly because I just realized that http://mxcl.github.com/homebrew/ is only available over unencrypted HTTP 01:35:35 :O 01:35:48 but grabbing the ruby script over HTTPS is still an improvement 01:36:12 sorry i'm not completely grounded here 01:36:22 do you like these people 01:36:28 homebrew? 01:37:04 yes 01:37:06 i don't have any use for their software personally 01:37:21 but a lot of developers who use macs more or less rely on it 01:37:53 right 01:37:57 night 01:38:00 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 01:38:50 i think they don't care much about security, and the sophistication of their packaging tools is like 1998 in Debian years 01:39:44 "Entreprenurship is not a job, it's a calling, it's a mission from God. This is what you have to do." 01:39:46 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com). 01:40:01 "God" here means "Paul Graham" right? 01:41:07 there's a guy in #lisp who says "I worship Paul Graham" verbatim. it's frightening 01:41:23 i thought lispies generally weren't huge fans 01:41:30 at least, I have the impression that On Lisp is a controversial book 01:41:34 it is 01:41:38 this guy is a noob 01:41:49 he really really really likes macros even for things where they are horribly unnecessary 01:41:50 it's just weird to see someone literally say that 01:41:59 Bike: is it an "i love paul graham, it's so easy" kind of situation 01:42:09 @protontorpedo 01:42:09 so why would one prefer haskell to say clisp or smalltalk? 01:42:13 @protontorpedo 01:42:14 is it fun to program in haskell? 01:42:16 Hmm. 01:42:22 no it's an "i love paul graham he's a billionaire and this guy criticizing him doesn't even have a wikipedia why should i care?? welcome to /ignore fucker" situation 01:42:47 haskell/12.12.18:04:52:19 paul graham said that lisp is the most powerful language, and that all other languages are blub 01:43:00 i really hope he's like twenty at most 01:43:14 well if he's twenty and a follower of PG then he has already started at least 3 startups 01:43:28 :( 01:44:03 haskell/13.01.04:11:49:53 I've just made a profound discovery 01:44:04 haskell/13.01.04:11:50:13 both water and air are monoids :D 01:44:04 haskell/13.01.04:11:51:26 maybe ice isn't a monoid though 01:44:04 haskell/13.01.04:11:52:06 maybe the vacuum of space 01:44:28 profound indeed, sir 01:44:31 say what you will about finance industry, at least people admit that they're amoral profit-seekers 01:44:55 ehhhhh "job creators" 01:45:48 i guess 01:46:41 maybe it's just that startup doofuses have no discernable impact on the world other than zuckerberg selling things to the real big companies, versus bankers who well 01:47:08 yeah i think the bankers have a larger negative real effect on society 01:47:22 but the attitude of the startup bubblers may be more socially contemptible 01:47:34 acting like you're saving the world by making useless crap to enrich highly privileged people 01:48:22 right, but at most it's just irritating to people like me who run into them on the web sometimes, which isn't so bad 01:48:59 yeah 01:49:03 in the end it's just idle whining 01:51:04 -!- makadon has changed nick to stuntaneous. 01:51:14 -!- WeThePeople has quit (Quit: Leaving). 01:51:32 Maybe it's better than doing nothing. 01:53:19 idle whining is? 01:53:41 you still didn't answer about where you are that you have to listen these people, and thus how i should update my desire or lack thereof to move to SF 01:54:35 I'm not in SF. 01:55:06 EPA? 01:57:55 Also not. 02:01:13 we're playing the guessing game i guess 02:01:24 how far is the nearest caltrain stop 02:01:51 5 minutes' walk? 02:03:38 git bisect gilroy sf 02:04:15 is that stop Palo Alto 02:04:21 I'm in Mountain View. 02:04:23 sorry I mean, is it Palo Alto or north of 02:04:26 spoilsport 02:04:39 are you going to join this mission from god startup 02:05:12 Now I feel bad about quoting them. 02:05:27 ok 02:05:43 Also they're gone. 02:08:16 ok 02:08:27 did you agree to be their technical confounder 02:09:08 I'm not good at confounding. :-( 02:09:12 monqy is pretty good at it. 02:09:17 "something about galois connections" 02:09:54 confound their politics, frustrate their knavish tricks 02:10:29 kmc: how's your startup doing 02:10:35 doing pretty well 02:11:32 nobody has particularly suggested that we're saving the world 02:11:32 the foremost social media platform for complaining about social media platforms 02:11:40 isn't that IRC 02:11:47 Not when you're done with it! 02:11:50 is that not what you're retroactively designing 02:12:48 -!- ais523 has quit. 02:21:05 see what you did by speaking about retroactive design 02:21:28 ~_~ 02:22:54 -!- WeThePeople has joined. 02:32:52 -!- DHeadshot has quit (Read error: Connection reset by peer). 02:32:58 -!- DH____ has joined. 02:38:26 -!- WeThePeople has quit (Quit: Leaving). 02:41:47 shachaf: i have one problem left on cryptopuzzles part deux 02:43:16 What's part deux? 02:43:22 The second set? 02:45:12 yes 02:48:06 "There are various definitions for adjoint functors. Their equivalence is elementary but not at all trivial and in fact highly useful. This article provides several such definitions:" 02:48:15 Maybe people just confuse "trivial" with "elementary"? 02:51:02 -!- monqy has joined. 02:52:31 hi monqy 02:52:37 hi shachaf 02:52:52 is something 'up' 02:52:55 i have yet to find any ties between you and Galois, Inc. 02:53:00 but i'm sure there's something 02:53:05 good luck 02:54:12 Galois Connection would be a good name for a conspiracy thriller 02:56:53 monqy: ok "change of topic" 02:56:57 do you know things about adjunctions 02:57:28 no but i plan to remedy this soon 02:57:51 where soon means 'idk maybe in a few months' 02:58:06 i have categories for the working mathematician now but do i have time to read it???? the eternal question 02:58:22 monqy: do you know about "kan extensions" 02:59:23 monqy: (and have you read http://www.cs.ox.ac.uk/ralf.hinze/Kan.pdf help) 02:59:47 (actually it looks "pretty readable for someone like me who doesn't know that much about the topic") 02:59:58 (and it has nice diagrams) 03:00:22 (and apparently tomorrow there's going to be a categories and types meeting about it?? help) 03:00:34 (i think i'll go and be clueless) 03:00:44 i haven't read it but i'm thinking maybe i will? sometime??? 03:01:13 did you see "the pretty pictures" 03:03:41 yes 03:05:08 -!- augur has joined. 03:05:47 -!- augur has quit (Read error: Connection reset by peer). 03:05:53 -!- augur has joined. 03:10:43 `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[H]]!][1)[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)$$6-%0[)[))$11~<<~:(~:< ]])[~~~)*[)~(:+~~-)+1]---256%):] ]~:] ]]])] ] [5[5][[50]<:[[52]<:]][[54]<:[[56]<:]]] 03:10:45 54321 03:10:51 yay! 03:11:12 "The latest results show that lightning-strength jolts of electricity can more than double the yield of certain mushroom species compared with conventional cultivation methods." 03:14:50 `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[64 H]]!][1)[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)$$7--1[)[))$11~<<~:(~:< ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:] ]~:] ]]])] ] [250[250][[50]<:[[52]<:]][[54]<:[[56]<:]]] 03:14:51 250251252253254255@ 03:15:23 ok [.-] and [.+] loops work from the inside 03:22:58 `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[64 H]]!][1)[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[)$$7--1[)[))$11~<<~:(~:< ]])[~~~)%[~~)~:(+-)(~)+-1*256]+-~)255:]32 ]~:] ]]])] ] [250[250][[50]<:[[52]<:]][[54]<:[[56]<:]]] 03:22:59 250 251 252 253 254 255 @ 03:26:45 `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[64 H]]!][1)[)$%0[)[))$11~<<~:(~:< ]])[):] ]]])] ] [65[65][[50]<:[[52]<:]][[54]<:[[56]<:]]] 03:26:47 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 03:27:40 `oerjan 03:27:41 `fueue ):[65 ):] 03:27:42 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: oerjan: not found 03:27:42 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 03:27:53 `run echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA > bin/oerjan; chmod +x bin/oerjan 03:27:56 No output. 03:28:25 sometimes i am happy shachaf is on another continent. 03:35:03 `run perl -e 'print "A" x 350' 03:35:04 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 03:35:33 `file /home/hackbot/hackbot.hg/multibot_cmds/lib/limits 03:35:34 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: Bourne-Again shell script text executable 03:35:38 `cat /home/hackbot/hackbot.hg/multibot_cmds/lib/limits 03:35:39 ​#!/bin/bash \ ulimit -f 10240 \ ulimit -l 0 \ ulimit -u 128 \ exec -- "$@" 03:35:46 libmits 03:35:56 libmitts 03:36:07 insert very topical and relevant mitt romney joke 03:37:40 tropical and elephant 03:42:12 You know the thing where ESC O m inserts a -? 03:42:15 That's awful. 03:50:08 i don't know that thing 03:51:16 Hmm. 03:51:24 I think it's vim expecting me to have a really slow terminal. 03:51:26 -!- Arc_Koen has quit (Quit: Arc_Koen). 03:51:27 do you mean as a terminal control code? 03:51:30 Yes. 03:51:42 Do you not get that in vim? 03:51:45 * kmc consults good old ctlseqs.txt.gz 03:51:51 I vaguely remember that there's a configuration option to turn that off. 03:52:21 i still don't follow -- if you hit Esc, then O, then m, you get a -? 03:52:21 ESC O Single Shift Select of G3 Character Set (SS3 is 0x8f). This affects next character only. 03:52:25 right 03:52:31 so what do you do to make vim print one of these? 03:52:47 Print? 03:52:54 I press Esc, it "goes out of insert mode". 03:53:02 Then I press O to open a new line above the current one. 03:53:07 Then I press m. 03:53:12 And it inserts a - instea.d 03:53:21 (And doesn't make the new line.) 03:53:21 i've not seen that happen 03:53:36 You can't reproduce it? 03:53:44 not in 30 sec of fiddling 03:54:31 It works with other characters than m 03:54:50 n -> . , k -> + , etc. 03:55:18 > (xor `on` ord) 'm' '-' 03:55:20 64 03:55:23 > (xor `on` ord) 'n' '.' 03:55:25 64 03:56:52 shachaf: what language(s) are you using for cryptopizzles 03:57:36 Just Ruby (which is what they're using). 03:57:41 "they"? 03:57:47 Just Ruby > Nothing 03:57:49 The people writing the questions. 03:57:51 ok 03:57:59 I was going to use a crazy language but you did that already. 03:58:04 only for one problem 03:58:28 The AES ECB one? 03:58:37 i considered using Haskell, it would have been pretty good i think 03:58:37 yeah 04:02:10 The nice thing about looking for Scala jobs is some of them don't expect you to know Scala already, they're willing to teach you on the job. Not really the case for more popular languages 04:03:48 Depends on the jobs more than the languages, I'd imagine. 04:04:06 in my experience that is quite true for popular languages 04:04:08 what shachaf said 04:04:45 at many jobs, learning a new programming language would be only a small part of the getting up to speed process 04:04:56 many employers recognize this 04:05:25 it's one thing if you expect deep knowledge of something hard and unusual, like Haskell or C++ 04:05:33 but if you know Ruby and they want Python, whatever 04:06:02 it's funny how the differences between programming languages shrink or grow depending on your own vantage point within the space of all languages 04:08:03 * shachaf got a C++ job without knowing much C++ 04:08:32 What sort of language would give me a vantage point such that J looked similar to C? 04:08:58 martian, probably 04:09:40 piet 04:10:26 what similarities do they have. punctuation. an almost similar notion of functions. representing code in text? 04:11:22 i don't know much about J, what are its data types? 04:11:34 array, number, character 04:11:42 boxes 04:12:00 "Computer science is the study of boxes and arrows" -- someone 04:12:06 Mark Twain possibly 04:12:16 noted computer aphorist 04:15:57 "I never said half the things I said." -- Mark Twain 04:20:54 "Who are you? Why are you exhuming my corpse?" 04:20:58 -- Mark Twain 04:21:44 "I'm sorry, that is a secret." -- George Bernard Shaw 04:34:44 -!- Frooxius has quit (Ping timeout: 255 seconds). 04:46:11 TwilightSpockle: Figured you'd like to know, season 4 confirmed, will be 26 episodes. 04:46:51 shachaf: well I think most jobs where you use C++ don't expect deep knowledge of C++ 04:47:18 i think most people swimming in the C++ pool don't even known how deep it gets and how many terrifying creatures lurk in the depths beyond the reach of light 04:48:02 reminds me of that "deep C" presentation that was going around a while back 04:48:11 True. 04:49:00 I should probably know C++ better than I do. 04:49:16 Bike: link? 04:49:29 there are definitely some dark corners of C as well 04:49:39 what were the strange ones i learned here... 04:49:50 I assume http://www.slideshare.net/olvemaudal/deep-c 04:49:54 struct { ...; int x : 0; ...; } 04:50:03 yeah, that. i didn't much like the attitude and you probably know all of it anyway 04:50:04 That presentation had some interesting information but some of it was a bit silly. 04:50:10 At least as an interviewing guide. 04:50:10 kmc: Ah, good one. 04:50:38 stuff like struct alignment, subtleties of static, side effect order... 04:50:41 kmc: what's that do? 04:51:44 Bike: forces bitfields after to be in different words or something from bitfields before 04:51:47 iic 04:52:25 weird 04:54:52 the other strange syntax i learned here was (C99): void f(int a[*]); 04:56:01 uh. i haven't even a guess 04:56:10 Gah, what was that one again? 04:56:36 declares that 'a' is a variable-length array 04:56:42 Riiight, yes. 04:56:46 whose length will be known by the time the function is actually called 04:57:00 you can do things like void f(int n, int a[2*n + 7]) 04:57:18 but you might not want to duplicate this in your header file 04:57:27 But you can't do int a[static 2*n + 7]), presumably 04:57:30 the equation in the header will never be checked for accuracy and it might depend on implementation details 04:57:30 Or however that syntax went. 04:57:37 oh i forgot how that thing works 04:57:41 that was even weirder 04:58:13 I think foo(int x[static 5]) means that you actually have to have 5 ints at the pointer. 04:58:50 Whereas otherwise it's just a pointer. 04:59:08 So the compiler can dereference any value in x[0-4] 04:59:12 ah right yes 04:59:38 whereas it's legal to call a foo(int x[]) function with a NULL pointer even, as long as it's never derefed 04:59:44 Right. 05:00:58 I think in C++ there are four mostly unrelated meanings of "static". 05:01:40 only four? 05:01:53 three? C ones plus static members? 05:02:04 static members are pretty similar to the C meanings 05:02:54 in particular, if you have a class Foo { static int bar; }; in a .hh file, you need to have some .cc file with int Foo::bar; 05:03:28 you put it in a particular compilation unit with the same storage class as other static stuff 05:03:43 maybe that's not that similar 05:03:49 it's something that confuses people, anyway 05:04:34 everything about static confuses people 05:04:43 C++ has static_cast too but i think that doesn't count :) 05:07:00 i've been thinking a good interview question is to explain the rationale behind the fact that auto variables are uninitialized while static variables are initialized 05:07:34 it's a jumping off point to talk about a variety of language and OS things 05:07:44 because static variables take up static space anyway, and if it's zero/not specified by the programmer it can just go in .bss? 05:07:58 but it still costs the OS something to zero pages, right? 05:08:13 yeah, i'm just thinking of object file size 05:08:28 not that that's that important 05:08:28 but also the OS needs to zero pages, because they might have someone else's data in them 05:08:38 yes 05:08:59 kmc: Deferred to first write to the page usually. 05:09:02 COW is a powerful thing. 05:09:22 Linux actually supports mmap(MAP_UNINITIALIZED) for embedded systems, if you enable it in the kernel config 05:09:25 pikhq: yeah, you can talk about that too 05:10:19 imo a good interview question isn't about a specific answer, it's a conversation starter 05:10:31 This is true. 05:10:47 The whole point of an interview, particularly for programming, is to see how the person thinks. 05:11:22 well i'm also interested in what they know, but I think you get more of that by encouraging them to talk than by asking many specific questions 05:11:31 True. 05:11:52 Unless you want someone who's an expert in mundane trivia of Java. 05:11:53 :P 05:11:59 yeah 05:12:12 even then, it's a good sign if they are super excited about mundane trivia of Java and volunteer them unprompted ;) 05:12:21 there are the super open ended questions like 05:12:29 "you type google.com into a web browser and hit enter, what happens" 05:12:38 geez yes 05:12:43 sometimes people start by talking about keyboard switch debouncing 05:13:20 That's a pretty awesome question. 05:18:26 i'm not sure about it 05:18:29 sometimes it is really tedious 05:18:39 but you also get a ton of information 05:18:49 both about what the person knows, and about which abstracitons they do and don't think about 05:20:05 "well, first you subconsciously come to the decision to type. your motor cortex will send signals down the spinal cord that are eventually routed to the muscles in the arm that control the fingers..." 05:20:45 "Well, first a quark interacts with quark. And then a quark interacts with a quark. And..." 05:20:50 [1 year later] 05:21:15 "So finally, the molecule has interacted with the neighboring molecule." 05:21:36 "the leibnizian monads, while having no knowledge of the outside world, or indeed any world at all, nonetheless act (without extension) in such a way that we can interpret as subatomic motion" 05:29:00 how about the candidate who writes a powerful short story about a guy who is typing google.com and hits enter 05:31:51 shachaf, Bike: that's a good presentation 05:31:54 thanks for the link 05:32:00 -!- oklofok has quit (Ping timeout: 252 seconds). 05:32:08 glad you liked it more than i did >_> 05:32:14 it postulates a kind of dunning-kruger effect for C++ 05:32:17 Bike: oh, why's that? 05:32:45 the author just seemed kind of insufferable, like wow you're so dumb for not knowing this 05:32:48 still good info 05:33:09 hm 05:33:19 in the slides alone you mean? or at some talk you saw? 05:33:23 in the slides 05:33:36 ==Bike 05:33:37 interesting 05:33:53 I would probably do reasonably well at those sorts of questions, but the interviewer seems rather irritating. 05:34:00 any specific examples? the little thought bubbles underneath wrong answer guy's answers? 05:34:15 i haven't looked at it in months, let me see 05:35:04 -!- monqy has quit (Quit: hello). 05:36:16 imo most of these questions are pretty fair game 05:36:21 in terms of being things you do need to know 05:37:59 it's stuff you need to know, i'm just whining about some attitude 05:38:39 ok 05:42:33 oh i just got the "deep c" pun 05:42:37 * kmc winner 05:42:51 also slideshare can eat a dick 05:43:21 the shark didn't tip you off? 05:43:28 well, i guess jaws doesn't take place in the deep sea 05:43:36 Slideshare is awful. 05:43:51 i didn't get to the shark yet 05:44:03 doesn't it start with a shark? 05:44:10 is there any way to download a pdf without logging in with Fucking Facebook 05:44:11 It slowed down to the point that I killed it. 05:44:17 Bike: it starts with an ROV exploring a wreck i think 05:44:26 not that this shouldn't be just as much a tipoff, but i'm dense 05:44:36 yeah, on slide three 05:44:41 oh 05:44:52 of course you can just ignore those silly starters often, eh 05:45:08 before we say anything interesting here are some jpeg artifacts 05:45:24 here's an xkcd strip tangentially related to my talk 05:45:32 everyone please laugh for the designated 0.3 seconds 05:46:41 kmc: http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf 05:47:16 ok slide 389 has some attitude 05:47:17 thanxchaf 05:48:16 is that what cubicles actually look like, also 05:48:22 "We are not suggesting that all your C and C++ programmers in your organization need a deep understanding of the language. But you certainly need a critical mass of programmers that care about their profession and constantly keep updating themselves and always strive for a better understanding of their programming language" 05:48:37 seems unfair to say that people who aren't language experts don't care or aren't 'up to date' 05:48:53 maybe they are experts in algorithms, systems, or the problem domain of whatever your company actually does to make money 05:51:09 Bike: yes some cubes look like that 05:51:55 not a fan of cubes myself 05:52:01 frightening 05:52:24 seems like the worst of both worlds between a private office and open plan 05:53:00 but i think making open plan work depends a lot on the people and the space 05:53:17 maybe cubes have a better failure mode or require less planning overhead 05:54:28 -!- oerjan has quit (Quit: Good night). 06:05:58 -!- oonbotti has joined. 06:06:04 -!- DH____ has quit (Read error: Connection reset by peer). 06:06:19 -!- DHeadshot has joined. 06:22:51 -!- Nisstyre-laptop has joined. 07:36:36 -!- azaq23 has quit (Read error: Connection reset by peer). 07:42:47 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de). 07:47:49 -!- hagb4rd has joined. 08:23:57 Cubes is what you make your offices if you have no soul 08:34:41 -!- mtve has quit (Ping timeout: 255 seconds). 08:36:00 -!- mtve has joined. 08:40:38 -!- Sgeo has quit (Ping timeout: 248 seconds). 08:40:53 -!- Nisstyre-laptop has quit (Ping timeout: 255 seconds). 08:41:21 shachaf: I think the number I've heard was 7 meanings of static 08:41:42 (probably 5 more in c++11) 08:41:47 What are they? 08:42:35 curiously, C compilers never ask you to list the possible meanings of static 08:43:03 Well, sure. You need a static analysis tool for that. 08:47:56 -!- olsner has quit (Ping timeout: 245 seconds). 08:50:25 -!- Sgeo has joined. 09:00:40 -!- olsner has joined. 09:03:52 -!- Bike has quit (Quit: leaving). 09:04:24 -!- FreeFull has quit. 09:18:15 -!- DHeadshot has quit (Read error: Connection reset by peer). 09:18:43 -!- DHeadshot has joined. 09:54:11 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de). 10:19:45 -!- hagb4rd has joined. 10:48:40 kmc: http://blog.wien.tomnetworks.com/2013/02/06/thesis/ 10:49:04 -!- Phantom_Hoover has joined. 11:04:28 -!- DHeadshot has quit (Ping timeout: 272 seconds). 12:21:54 -!- Nisstyre-laptop has joined. 12:25:50 -!- AnotherTest has joined. 12:35:10 -!- Arc_Koen has joined. 13:45:06 -!- Nisstyre-laptop has quit (Ping timeout: 276 seconds). 14:00:45 -!- epicmonkey has joined. 14:02:00 -!- ThatOtherPerson has quit (Quit: leaving). 14:02:20 -!- Frooxius has joined. 14:04:10 -!- ais523 has joined. 14:04:58 -!- sebbu has quit (Ping timeout: 272 seconds). 14:10:27 -!- ais523_ has joined. 14:10:36 -!- ais523 has quit (Disconnected by services). 14:10:38 -!- ais523_ has changed nick to ais523. 14:10:56 shachaf: /me downloads 14:13:50 -!- boily has joined. 14:14:56 -!- sebbu has joined. 14:14:56 -!- sebbu has quit (Changing host). 14:14:56 -!- sebbu has joined. 14:20:21 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds). 14:21:37 -!- FreeFull has joined. 14:22:59 -!- ais523 has quit (Ping timeout: 255 seconds). 14:25:14 -!- sebbu has quit (Ping timeout: 255 seconds). 14:27:59 good warm morning! 14:28:05 it's only -9 °C today! 14:29:11 Wake me up when it gets below -9 K 14:29:13 I think it was around -5 °C here. 14:29:54 Lots (well, relatively) of snow yesterday/today, though. 14:33:47 -!- ais523 has joined. 14:36:05 -!- sebbu has joined. 14:36:05 -!- sebbu has quit (Changing host). 14:36:05 -!- sebbu has joined. 14:53:59 -!- Taneb has joined. 15:15:18 -!- Phantom_Hoover has joined. 15:23:42 shachaf: cool 15:24:11 -!- ais523 has quit (Ping timeout: 255 seconds). 15:37:54 Translating Python to Haskell is even less fun that translating C to Haskell 15:38:28 All I hear is you saying that C and Haskell are basically the same. 15:38:51 something something C-H isomorphism 15:41:11 -!- ais523 has joined. 15:42:28 there is a morphism GHC :: Haskell -> C, but what about CoGHC :: C -> Haskell? 15:42:53 something something unnatural transformation 15:44:03 I know about natural transformations, but what is a SSU (something something unnatural) one? 15:46:28 -!- ais523 has quit (Ping timeout: 240 seconds). 15:47:01 It's hard to explain, but somewhat like a bad analogy 15:48:18 This position is asking for "- Extensive experience with API" 15:49:16 You're just not qualified, kid. 15:54:47 -!- augur has quit (Remote host closed the connection). 15:56:09 Hmm 15:56:10 "The part of the code that I wasn't particularly involved in was the part that was broken." 15:56:24 Haven't mentioned that before, it's self aggrandizing, but it's completely true 16:01:43 "Are you a Hacker?" 16:01:49 I think this is a brogramming position :/ 16:35:53 -!- Zuu has left ("Leaving"). 16:39:46 -!- augur has joined. 16:55:58 -!- sebbu has quit (Ping timeout: 272 seconds). 17:11:51 run away 17:27:39 -!- sebbu has joined. 17:29:00 I'm pretty much applying for anything that even looks like I somewhat qualify 17:29:25 i want to hear more about this "are you a hacker" question out of morbid curiosity 17:29:49 also i think your statement is very much not self aggrandizing 17:29:56 compared to how a stereotypical macho hacker would put it 17:31:30 -!- ais523 has joined. 17:33:55 Well in the job description it says "Are you a Hacker? Are you bored in your current position?" 17:34:09 This is how I responded: 17:34:11 "In some sense of the word, yes. In Second Life, I have experimented until I found a way to reach the maximum altitude (MAX FLOAT). In the Creatures game series, I have experimented to see what hex editing a creature could accomplish." 17:34:28 eh job descriptions are bs 17:34:47 i wouldn't read too much into it, i'll still make fun of them on the internet tho 17:34:48 But there's this form to fill out with several questions and "Are you a Hacker?" was one 17:43:44 Writing code while sleep-deprived. Good idea or great idea? 17:44:52 -!- ogrom has joined. 17:45:24 meh, too lazy to get emacs working. How bad can writing lisp code without paredit be? 17:46:50 Sgeo: it works surprisingly well, actually 17:47:06 also, the current Emacs installer from Windows works really smoothly on Vista and later 17:47:16 if you install into your home directory 17:47:29 * Sgeo is on Linux right now 17:52:02 Sgeo: which distro? 17:52:24 Ubuntu 10.10 17:52:33 It's really just a little bit of code 17:52:45 The meat is going to be copy/pasted and modified from clojure.core really 17:55:18 Sgeo: can't you just apt-get install emacs? 17:55:25 Emacs is installed 17:55:30 I don't feel like configuring it 17:56:10 the only configuration I've really done on my Windows install of Emacs is changing the font, changing the background to black (to avoid screwing up my sleep patterns), and setting the options in the options menu 17:56:34 ais523: can't you just install f.lux or something 17:56:42 elliott: without an internet connection? 17:56:54 ais523: you appear to have an internet connection 17:56:57 and also, the ability to install emacs 17:57:01 I conclude you have the ability to install f.lux 17:57:15 I installed Emacs by downloading it on Linux and saving it to the Windows partition 17:57:26 that doesn't work for everything (e.g. it doesn't work for Cygwin) 17:57:48 also, I dislike installing software except from repositories 17:58:13 there is a Debian repository 17:58:17 can't exactly offer a Windows repository 17:58:26 (well, an Ubuntu PPA, but I suspect the package works on Debian) 17:58:37 actually Windows 8 has a repository 17:58:45 by Microsoft 18:03:33 -!- ais523_ has joined. 18:05:00 -!- ais523 has quit (Ping timeout: 272 seconds). 18:05:24 -!- ais523_ has changed nick to ais523. 18:09:51 -!- ogrom has quit (Read error: Connection reset by peer). 18:09:59 -!- ogrom has joined. 18:14:03 I keep looking for a single unitary language, yet when I have problems that need solving I do tend to try to find the right tool for the problem 18:14:23 In this case, the problem is a blog post I'm writing that talks about Clojure, so the right tool to write code in is Clojure 18:16:24 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de). 18:18:41 -!- hagb4rd has joined. 18:20:40 Sgeo: if only it were always that easy to work out which language to use :) 18:21:23 If it's not obvious, I tend to resort to Python. This has been a mistake at least once. 18:24:33 Sgeo: what if you find the single unitary language but don't actually use it enough for real stuff to realise it's the one / what if this has already happened 18:26:10 I have some vague idea of what The One should look like. I think though, that including "enough popularity that a good amount of libraries exists for it" kind of limits the options, though 18:27:48 what if you're wrong about what it should look like 18:28:13 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 18:28:31 then you need a configuration file to change the syntax for your particular project. 18:28:46 * Sgeo blinks 18:29:10 Forth! 18:29:21 also, what languages /look/ like is mostly irrelevant 18:29:36 "look like" was a bad turn of phrase 18:29:36 elliott: oh, btw, I discovered what the theoretical computer science definition of "haskell" seems to be 18:29:44 it's like the theoretical computer science definition of "algol", except call-by-need 18:29:58 and my brain was flashing alarms "you can't do that" 18:30:53 Sgeo: what if you're wrong about what properties it should have 18:31:18 elliott: Haskell and Algol aren't just the same language with different calling conventions, right? 18:31:24 elliott, considering that "The One" is a matter dictated by my personal taste... are you saying I would be mistaken about my preferences? 18:31:30 because I'm starding to doubt myself 18:31:33 *starting 18:31:55 I mean, as I've learned, my tastes have changed 18:31:56 Sgeo: that doesn't seem hard to believe 18:32:32 -!- Bike has joined. 18:32:37 I think it is even likely that your method for evaluating languages is insufficient for many (perhaps even most) reasonable sets of language criteria 18:32:40 and likely many urneasonable ones too 18:33:44 elliott: it's sort-of hard to make well-defined statements about languages 18:33:59 pretty much the only one I've found that's usually uncontroversial is "language X is statically/dynamically typed" 18:34:11 that's incredibly controversial 18:34:21 ais523: re Haskell and Algol: depends what you mean by Haskell and Algol 18:34:26 there's a lot of controversy in which is better 18:34:27 elliott: I know 18:34:34 this seems to be a weird CS definition I wasn't previously aware of 18:34:37 if you took an existing Algol language and made it call-by-need, I'd still prefer Haskell vastly over it for many reasons 18:34:50 "X is either statically or dynamically typed" is not true for all X 18:34:57 I think your confusion stems from the fact that the language you call "Algol" is a language family that is only distantly related to Algol 18:34:59 elliott: yeah, algol 60 is like 53 years old at this point 18:35:06 Verity resembles Haskell much more than Algol to me 18:35:10 elliott: it's not me who called it Algol 18:35:17 ais523: yes, but you still call it that :) 18:35:26 and Verity was my attempt to take mathematical-Algol semantics, and put a modern syntax on it 18:35:48 -!- Phantom_Hoover has joined. 18:36:24 the syntax is mostly inspired by C, but you can only get /so/ C-like and still remain usably higher-order 18:36:35 and the rest is a mix of OCaml and Haskell and mathematical notation 18:38:18 I miss the good old days of having a special keyboard taylored to your language of choice. 18:38:32 (I miss them in the sense that I haven't had the chance to experience them first hand.) 18:39:08 boily: good news, Agda exists! 18:39:23 unfortunately Agda comes with an emacs mode 18:39:25 so it doesn't qualify 18:42:08 APL exists 18:42:43 fortress exists~ 18:42:54 not only there is no God, but try to find an APL keyboard on Sunday. 18:44:01 fortress sort of stopped existing 18:44:12 `addquote not only there is no God, but try to find an APL keyboard on Sunday. 18:44:18 954) not only there is no God, but try to find an APL keyboard on Sunday. 18:44:30 that looks like a fungot quote to me 18:44:30 ais523: there! there it is! 18:44:42 elliott: unlike apl 18:45:09 ais523: *polite cough* I believe I'm slightly more decoherent than fungot to be considered quoting him. 18:45:10 boily: must think of a way to the ocean palace? 18:45:29 "decoherent"? 18:45:31 see, fungot makes much more sense than I. 18:45:31 boily: it's time you jumped off this mortal coil... our art and science... all to you! you shall find bekkler! executing program. please let me go... put me out?! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have the masamune! 18:45:54 this has got to be chrono trigger style, right? 18:45:55 ^style 18:45:55 Available: agora alice c64 ct* darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 18:45:57 yeah 18:46:09 "The upshot is that new technique can measure timing differentials of less than 1 microsecond over a LAN connection -- for example, if the attacker is in the same data center as your servers." 18:46:18 good thing we all have dedicated... oh wait 18:46:22 ais523: sorry, my French's slipping. please wait for a moment while I try to find a proper translation... ♪background muzak♪ 18:46:27 why doesn't fungot have a esoteric style? 18:46:27 coppro: there! there it is! but by the time we're through with you, you'll be in danger. open hatch. 18:46:28 is this the era of buying an EC2 machine to attack another EC2 machine? 18:46:46 coppro: it has irc 18:46:49 which is mostly based on #esoteric logs 18:46:54 is it updated? 18:46:59 I guess an esowki style would be interesting 18:47:03 ais523: #scheme too and stuff 18:47:09 and updating it takes a lot of manual work for fizzie 18:47:10 in fact probably the #scheme logs outweigh #esoteric 18:47:12 so probably not very often 18:47:12 by way of popularity 18:47:14 :( 18:47:23 ais523: incoherent, says I. probably. 18:47:28 I want a markov chain on 10 decades of this channel 18:47:45 I want a markov chain on 10 octaves of this channel 18:47:48 whate are ic, iwcs, pa, ss, sms, and speeches? 18:47:56 ^style pa 18:47:56 Selected style: pa (around 1200 transcribed Penny Arcade comics) 18:48:05 fungot: dongs 18:48:05 kmc: who pissed in your cheerios? honestly? i wouldn't even tell anybody. 18:48:18 I want a markov chain on 10 markov chains of this channel. 18:48:19 OK, that's a good quote 18:48:35 don't worry, I won't report them for contaminating your breakfast 18:48:37 ^style ss 18:48:37 Selected style: ss (Shakespeare's writings) 18:48:39 ^style sms 18:48:40 Selected style: sms (National University of Singapore SMS corpus, 2011-08-20) 18:48:42 boily: there's fungot style 18:48:42 ais523: up to dadar studio. see whether she know your mother also... wahahah :) 18:48:44 ^style speeches 18:48:44 Selected style: speeches (misc. speeches from Project Gutenberg) 18:48:50 ^style ic 18:48:50 Selected style: ic (INTERCAL manual) 18:48:54 fungot: yes 18:48:55 coppro: a line with a replacement that's `simpler' in comments and string literals, etc.) if the filename is of a multidimensional array is being linked to it. 18:49:01 bleh 18:49:04 ^style iwcs 18:49:05 Selected style: iwcs (Irregular Webcomic scripts) 18:49:13 ^style fisher 18:49:13 Selected style: fisher (Fisher corpus of transcribed telephone conversations) 18:49:46 -!- carado has joined. 18:49:56 ooh can we get the enron corpus too 18:50:02 http://www.penny-arcade.com/comic/2001/03/14 i don't get it 18:50:42 while we're at it, maybe the calgary/canterbury corpuses too. 18:52:18 I think the Enron email dataset was suggested. 18:53:01 when my friends were working on a startup making software for legal discovery, that was what they used for their demo 18:53:12 apparently it is the standard corpus in email-related NLP 18:54:18 wait... there's a fungot style? 18:54:18 boily: i agree with you just really 18:54:27 Yes, I think it is pretty popular. 18:54:32 -!- ogrom has quit (Quit: Left). 18:54:39 ^style fungot 18:54:39 Selected style: fungot (What I've said myself) 18:54:46 fungot fungot fungot? 18:54:46 boily: so, let's say i call them mindless games. if we hit every stupid person, any person going, tough one. if we solve it,..., the calls. we decide what i'm made that one work only for the dignity, only gray. in that second one is horizontally displaced by 1 pixel is sacred. just me, or i: yet, you rogue! 18:55:02 fascinating. 18:55:11 this can't be all that fungot's said 18:55:12 Phantom_Hoover: so, let's say i call them mindless games. if we hit every stupid person, any person going fast and such an apparently non-standard format is being dimensioned by assigning dimensions to them; and sets. maybe thats what them meant by experimental selected so it probably no longer the wand the better part made mercie, i should think at least, that is expressions which have not been able, to assume responsibilities 18:55:36 he hasn't said 'that sword alone can't stop' or 'anmaster no not markov' even once 18:55:39 have you fu 18:55:40 have you fungot 18:55:40 Phantom_Hoover:. i'm so kind, even to assholes! anmaster no not markov anmaster no not markov 18:55:47 aha 18:55:48 hahahahahahahahaha 18:55:48 There you go. 18:56:07 Under some assumptions, the "fungot" style is a simple weighted sum of all the other styles. 18:56:07 fizzie: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube* wizened shape, very magic ( in the system 18:56:21 fizzie, er 18:56:24 `quote markov 18:56:26 578) Ngevd:. i'm so kind, even to assholes! anmaster no not markov anmaster no not markov anmaster no not markov anmaster no not markov anmaster no not markov 18:56:53 (The assumptions aren't true, though.) 18:56:59 aren't the assum- right 18:57:09 ^style nethack 18:57:09 Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal) 18:57:23 fungot: is this a weighted sum of other styles 18:57:23 coppro: hippocrates: greek physician, to the adventurer who can cause great damage. i swear that, compared with those fruits, the neck, claws, hooves, or from whence he came,... his great black battle-blade stormbringer, drank their souls. 18:57:29 sup fungot 18:57:29 Phantom_Hoover: excalibur: at first then more slowly then in a long worm can be quite enchanting. it is even more muddled and confused. ( a field guide to the sea; there's no food. 18:57:33 fungot: how do you do the invocation ritual? 18:57:34 ais523: meat*, huge chunk of meat: some say that no one notices the junk underneath a boulder is probably beneath you. the he closed his eyes, the alphabet, weights and measures, and bewailing her fatal error with many titles, and overcome all the cities bounding the circle sea, or a handloom, although they do not and did not kill his own food has arisen the legend that he does not imply being happy and that was the fruit like? 18:57:48 "some say that no one notices the junk underneath a boulder is probably beneath you" 18:57:49 is523k52Ϳnffjliated/ais523: ever tried reading while confused? 18:57:52 "you are probably on top of the boulder" 18:57:54 i'a i'a anmaster no not markov! 18:58:00 also, wtf was /that/? 18:58:06 Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused? 18:58:06 ais523: anhur: an egyptian god of earthquakes as well. physically, he was such a tool is found by a howling wind. ( fog, by patrick mcgoohan) 18:58:13 I don't think it's meant to do that at all 18:58:16 ais523: your true form being revealed to us mere mortals. 18:58:23 it looks like a corrupted version of my nick/username/etc 18:58:44 fizzie: Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused? 18:58:44 ais523: owlbear: owlbears are a cross between a human being and a convulsive motion agitated its limbs. tail entirely absent. growth is slow and sexual maturity reached at quite an experience. 18:59:06 ais523: That seems very confused indeed. 18:59:06 boily: that's probably a bad idea, my true form is depressingly similar to my normal form 18:59:20 fizzie: yeah, I don't think it's meant to do that 18:59:25 actually, I'll `addquote it 18:59:33 `addquote Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused? 18:59:33 ais523: you're going into the surrounding walls and ceilings of the three gorgons or graeae, is not bad luck. 18:59:37 955) Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused? 19:00:00 I kind of like the nethack style, except it's perhaps a bit too ungrammatic often. 19:00:12 fungot: Do you play a lot of NetHack? 19:00:12 fizzie: prisoner: where am i constant to my lair to die. ( the emperor's new mind, i don't doubt." and after nearly half a century in which feeding and growth occur, and a genuine amulet of yendor 19:00:35 Sounds quite dark. 19:00:51 Grim, even. 19:00:52 and or eldritch. feeding and growth occur. bletch. 19:02:12 fungot: Do you have a GRIMoire? Is it GRIM? 19:02:12 fizzie: polymorph into an unknown being. a well-known tropical predator ( _panthera onca_) is a rewarding experience! 19:02:45 fungot: how many replies, until you invoke tentacles from outer dimensions? 19:02:45 boily: they say that fortune cookies are food for thought. 19:03:06 http://j.mp/cpp11ref <--- nice overview of new C++11 stuff 19:03:43 fizzie: genuine amulets of yendor are kind-of valuable, though 19:03:47 an end to the grimness 19:05:19 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 19:05:31 A well-known tropical predator is a rewarding experience! How true. 19:07:46 -!- quintopia has quit (Ping timeout: 246 seconds). 19:10:56 -!- quintopia has joined. 19:15:00 -!- sivoais has quit (Ping timeout: 248 seconds). 19:22:30 -!- sivoais has joined. 19:26:54 fungot: are you an animorph 19:26:55 kmc: they say that nurses sometimes carry scalpels and never use your best weapon to engrave a curse. i quickly ducked my head back and crawled away. 19:30:34 -!- sivoais has quit (Read error: Connection reset by peer). 19:31:37 -!- sivoais has joined. 19:34:39 Help I'm learning C again 19:35:47 k 19:37:13 how's that going 19:37:37 I dunno 19:38:03 I wrote http://pastebin.com/TVp2BHXT to solve http://rosalind.info/problems/dna/ 19:39:15 -!- sivoais has quit (Ping timeout: 255 seconds). 19:40:02 -!- monqy has joined. 19:40:52 -!- sivoais has joined. 19:41:19 seems reasonable 19:41:24 do you want style advice 19:41:45 style advice don't use pastebin.com 19:41:53 yes that as well 19:42:17 maybe the people who don't hate pastebin.com are all people with adblock 19:42:32 it's still bad tho even aside from the ads 19:44:23 i have adblock 19:44:24 i hate it 19:45:05 Yes 19:45:25 I switched to pastebin because hpaste was blocked for someone in another channel? 19:45:54 codepad and gist are both fine 19:45:58 i use sprunge??? i like sprunge 19:46:01 (was that yes re: style advice?) 19:46:08 (can be) 19:46:42 i would do "int a=0, c=0, g=0, t=0;" since they're all zero 19:46:53 also i like to use C99 in which case you can do "for (int i = ...)" 19:47:48 instead of reading into a buffer, you could use getchar() (and count on stdin input buffering to make it perform acceptably) 19:48:25 kmc, I know the maximum length of input 19:48:37 sure, it might be simpler code though 19:48:51 the best way to have no buffer overflows is to have no buffers :) 19:48:59 -!- sivoais has quit (Read error: Connection reset by peer). 19:49:18 the buffer that can be overflowed is not the true buffer. 19:49:39 -!- sivoais has joined. 19:57:39 -!- sivoais has quit (Read error: Connection reset by peer). 19:58:27 -!- sivoais has joined. 20:02:56 So, interviewer claimed that it's likely that I'm going to get an interview 20:03:15 Either tomorrow or next week 20:03:20 .NET 20:03:26 I can live with .NET 20:05:52 can you??? 20:06:10 next week dot net 20:07:03 there are worse library frameworks 20:12:10 -!- sivoais has quit (Quit: leaving). 20:12:57 -!- sivoais has joined. 20:21:35 -!- TwilightSpockle has changed nick to Gregor. 20:23:07 -!- oerjan has joined. 20:26:01 Sgeo, VB.NET? 20:26:02 I bet it is 20:26:34 VB.NET isn't as bad as previous BASICs 20:26:41 it's basicaly C# with a stupid syntax 20:26:44 and syntax is mostly unimportant 20:28:08 It's C#, I don't know why I only mentioned the .NET part of it 20:28:44 and C# is basically Java with some extra dubious features added in, and different but mostly similar libraries 20:30:01 lambdas "dubious" 20:30:18 i love lambdas 20:30:20 they are so easy 20:30:59 Those dubious features turn an unbearable language into a bearable one 20:31:21 (maybe I'm hasty in calling Java unbearable?) 20:31:57 if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading 20:32:04 yes 20:32:21 Sgeo: C# is unbearable in its own way :) 20:32:27 how so? 20:33:02 If it doesn't have first-class functions then I'm not sold 20:33:38 FreeFull: C# has first-class functions 20:33:42 VB.NET 2008 onwards has first-class functions 20:33:46 And first-class objects aren't a good substitute 20:33:49 FreeFull: C# has first-class functions 20:34:49 java has things that try to pass themselves as poorly designed first class functions. it makes for a just not quite good enough substitute. 20:36:03 I also like having a good type system 20:36:11 `addquote if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading 20:36:14 956) if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading 20:36:41 boily: java has first class objects, and second class classes, which can contain third class methods ;) 20:36:45 I think .NET doesn't do type erasure 20:37:05 Which means more information at runtime, which is unrelated to the quality of the typesystem 20:38:02 type erasure is a nasty backwards-compatibility thing, which fortunately tends not to matter too much in practice 20:38:57 type erasure is kind of a red herring, the real problem is that java doesn't understand variance! 20:39:24 in fact if you can do type erasure you probably should... 20:40:10 elliott: java attempts to understand variance, it's just broken 20:40:26 you can express covariant and contravariant generic types 20:40:38 just for whatever reason, it never actually seems to help 20:40:54 If you say java to a mirror three times, the mirror gets coated in boilerplate 20:40:57 I think they added it but forgot to use it 20:41:25 olsner: :) 20:41:58 and since nothing in the library has the variance it should have you pretty much never get to use it either 20:42:27 are the variances in the libraries actually just chosen at random? 20:42:30 ais523: doesn't help that mutability makes variance harder 20:42:32 or are there reasons behind some of them? 20:42:34 elliott: yeah, indeed 20:42:58 especially mutability via pointers into return values 20:43:18 when I figured out variance, I realised why every programming language was crazy 20:43:35 elliott: Verity's compiler understands variance 20:43:36 that's a lot of languages 20:43:48 although it doesn't actually have polymorphism, so the variance control happens entirely internally 20:44:10 (huh, the etymology of "boilerplate" is neat) 20:45:08 Bike: Tell us 20:45:12 ais523: fun fact: apparently, Eiffel treats function parameters as _covariant_ 20:45:15 and has subtyping 20:45:23 apparently the answer to "how does this work?" is "it doesn't" 20:45:26 elliott: someone else told me that fun fact recently 20:45:28 -!- david_werecat has joined. 20:45:33 hmm 20:45:39 my reaction was "are covariant function parameters actually useful for anything?" 20:45:40 was it edwardk? 20:45:45 elliott: not sure, perhaps 20:46:02 well, you could call an output parameter a "covariant function parameter" 20:46:21 FreeFull: plates from steel boilers were repurposed as letterplates for printing presses at newspapers 20:46:22 hmm, yeah, that's a good point 20:46:39 but that'd just be calling something more reasonable by the same name as something terrible 20:47:13 elliott: now I want to make an esolang called Hitler :( 20:47:23 probably a bad idea though 20:47:39 ais523: How do you code in it? Repurposed Indian symbols? 20:47:44 just use some other dictator, i'm sure noone will notice 20:47:54 nah 20:47:54 ais523: are you saying esolangs are reasonable? 20:47:55 You could call it Himmler 20:47:58 Or Mussolini 20:48:00 I'll stick to more useful esolangs 20:48:01 Or Mao 20:48:05 or, more purposeful 20:48:14 I may never invent anything else as good as Underload, but I can try 20:48:16 You could make haskell but better 20:48:28 (PSA: making esolangs with names that make me want to delete the page about them is bad for your health) 20:48:39 Strip out the laziness, and all the fancy syntax 20:48:42 Make the type system better 20:49:14 And instead of having most functions be pure, make ALL functions impure 20:49:26 Every function has a side-effect, even if you don't want it to 20:49:31 FreeFull: that's "haskell but better"? 20:49:32 ais523: I think Eodermdrome is your third-best esolang 20:49:37 or just "haskell but esoer"? 20:49:39 ais523: I got carried away 20:49:40 elliott: what's the second-best? 20:49:45 ais523: Underload 20:49:49 hmm 20:49:52 so what's the best then? 20:50:06 -!- WeThePeople has joined. 20:50:07 ais523: best is Feather, because I'm pretty sure not actually existing because your creator gave up on you because you were too confusing is the best achievement an esolang can make 20:50:11 yeah, I like Eodermdrome too, despite the utter lack of practicality 20:50:14 FreeFull: instead of stripping out laziness, put side effects in the thunks 20:50:22 elliott: oh, I forgot about Feather 20:50:26 (actually genuinely forgot) 20:50:26 see? 20:50:29 olsner: Evil 20:50:47 i.e. haskell with implicit unsafePerformIO 20:50:50 olsner: Make seq only work half of the time too 20:50:55 removing non-strictness would make Haskell worse 20:50:57 elliott: given that "Real Fast Nora's Hair Salon 3: Shear Disaster Download" and the sound of /ˈæmbiːɛf/ are good esolang names, what's a bad esolang name 20:51:02 you'd lose basic composability 20:51:14 Bike: "Esme" 20:51:16 elliott: hmm… exposure to The Game (if you don't know about it, please don't look it up) now means that some things require me something like 10 seconds and a concious mental effort to remember 20:51:32 and it takes me like a minute to remember the rules, even if I try 20:51:35 normally I get bored by then 20:51:39 elliott: are you sure that's the name rather than the everything else 20:51:44 I think "Most ever Brainfuckiest Fuck you Brain fucker Fuck" is an underappreciated esolang name 20:51:53 indeed, it's a good esolang too 20:52:25 good wiki page too 20:52:25 and I can take credit for suggesting the idea behind it, even if I didn't do any definition of the name or the semantics 20:52:30 hey guys remember http://esolangs.org/wiki/Object_(programming_language) 20:52:36 no, I don't 20:52:37 and also, all the other languages that guy made 20:52:38 single sentence afaict 20:52:38 should I? 20:52:44 olsner: yeah but it's a run-on sentence 20:52:48 ais523: http://esolangs.org/wiki/Parnassus ? 20:52:53 it's the syntax highlighting that makes them memorable 20:52:56 elliott: no 20:52:58 also, the badness 20:53:10 hmm, I should make that esolang I was going to 20:53:15 where it's based around overlapping brackets 20:53:16 Parnassus isn't exactly syntax highlighted 20:53:24 the comment is in an almost unreadable shade of pink 20:53:30 but apart from that it's all the same color and font 20:53:47 so is Object a shitty parody of Java, is that what I'm looking at here 20:53:51 elliott: INTERCAL allows scopes that don't nest correctly 20:54:00 due to its use of manual lexical scoping 20:54:03 -!- Taneb has quit (Read error: Connection reset by peer). 20:54:07 -!- atriq has joined. 20:54:11 ais523: by overlapping, I mean (ab[cd)ef] 20:54:15 we shall just have to make the Ëơđëřmđřơmë dialect, which has a large enough alphabet to be practical. 20:54:17 elliott: yeah, I mean that too 20:54:22 I'm not quite sure how the language will use those to compute 20:54:24 but it will 20:54:27 and may even have used that syntax to explain the concept to you, al ong time ago 20:54:30 *a long time 20:54:43 oerjan: I think Eodermdrome has a large enough alphabet to be TC 20:54:46 although I don't actually /know/ 20:54:50 maybe it works by rewriting the program to have brackets balanced in a normal manner 20:54:59 had to refresh my memory of Feather. now I remember why I retroactively forgot about it. 20:55:02 and that involves shuffling them around in a way that's TC 20:55:09 the problem is, the overlapping has to actually be interesting 20:55:14 yes 20:55:14 not just a syntactic veneer 20:55:37 hey, one of my better languages I never even put on the esowiki 20:55:46 its name started Sh, let me look up the rest of it 20:55:56 Shove, apparently 20:55:58 -!- atriq has changed nick to Taneb. 20:55:59 also, I don't know what goes between the brackets 20:56:00 Bike: "Esme" <-- are you saying that would be a bad name if it had otherwise been an interesting language? 20:56:15 possibly primitives, possibly arbitrary text (that gets outputted?) 20:56:18 oerjan: I was kidding 20:56:20 elliott: it seems I don't have a spec, but I do have an interp 20:56:22 shall I pastebin it? 20:56:32 sure 20:56:48 http://sprunge.us/YaOJ 20:57:00 I still have the spec for my first ever esolang lying about somewhere 20:57:02 it is awful 20:57:05 what is it 20:57:06 awful awful awfuk 20:57:08 is it a BF derivative 20:57:16 ...sort of 20:57:23 It's an Ook! derivative 20:57:30 haha, seriously? 20:57:32 that sounds worse 20:57:34 Yeah 20:57:41 it's slightly more creative, I think? 20:57:47 by transitivity, it is a BF derivative too. 20:57:52 an Ook! derivative is the kind of thing the wiki should have 20:57:57 just for the art of it 20:58:01 I should make an underload derivative, nobody would expect that. 20:58:04 like, it should just be a BF derivative 20:58:06 elliott: Shove is TC, I think; you can compile Underload into it 20:58:07 but claimed as an Ook! derivative 20:58:13 elliott, should I dig out the specs for it? 20:58:16 depends 20:58:23 for this to work, it'd have to be a trivial equivalent that replaces all the operations with something else 20:58:29 also, Sprunge's syntax highlighting can't handle tr///, it seems 20:58:35 and also, for the joke to work, the something else should be not related to "Ook!", I think 20:58:40 elliott: it should be BF-like 20:58:46 Okay, this is more along the lines of "Ook! with more commands" 20:58:47 but possibly with slightly different commands 20:58:51 elliott, you should find all trivial derivatives of brainfuck on the wiki and arrange them in a chain 20:58:51 there is already a "Moo!" or something I think 20:59:01 Cow 20:59:09 I wrote a blog post about it 20:59:13 ← → + - ( ) ? ! 20:59:18 like that 20:59:18 oerjan: I think Eodermdrome has a large enough alphabet to be TC <-- um i already made BCT in it. sheesh. i mean large enough that you could actually write an interesting program without encoding the algorithm in the input. i guess you really want an infinite alphabet. 20:59:28 oerjan: right, I see 20:59:28 ais523: people who make BF derivatives don't believe Unicode exists 20:59:31 By which I mean, Phantom_Hoover wrote a blog post about it 20:59:37 actually, /is/ Eodermdrome TC? Or is it just curly-L? 20:59:45 elliott, and then make it circular, so like "Ook! is a BF derivate. X is a Ook! derivative. ... Brainfuck is a Y derivative" 20:59:53 elliott: all those characters are in CP343 20:59:56 elliott, do that on the 1st of April 21:00:12 Vorpal: that sounds like a pain 21:00:17 elliott, hm true 21:00:21 a lot of work involved 21:00:23 hmm, we could vandalise our brainfuck article to claim it's a [terrible BF derivative] derivative 21:00:30 that would be marginally funny 21:00:36 It's an Ellipsis derivative 21:00:39 anyway, the way Shove works, is it has an Underload-like stack, and a 2D playfield 21:00:45 elliott, yeah that is less work but still okay for 1 April 21:00:54 it has instructions to change the direction of execution 21:01:27 it will push quoted strings onto the stack: strings can be quoted with ' or with ", and they nest inside each other indefinitely deep (INTERCAL-style) 21:01:31 ais523, inspired by befunge? 21:01:43 ais523, does it allow self modification? 21:01:52 and there are four commands A V ( ) that push the stack back onto the playfield, pushing the entire rest of the program out of the way to make room 21:01:56 it's somewhere between Befunge and Underload 21:02:02 and yeah, self-modification is required 21:02:03 ais523, also what is the intercal style of nesting " and ' 21:02:13 alternating 21:02:18 ah right 21:02:36 actually in INTERCAL they don't have to alternate, a ' or " is an opening ' or " if it couldn't, based on context, be a closing one 21:02:47 heh 21:02:52 but Shove's grammar isn't complex enough for that, so it's strictly alternating 21:03:05 Vorpal: that is the actual definition, and what's implemented into the compiler :) 21:03:20 ais523, ouch, that sounds painful 21:03:21 so you can do something like '#1~'#1~#1'' 21:03:24 and it works 21:03:36 the only time it really matters which of ' or " you use is in array indexing 21:03:53 ais523, is this the thing that makes the parser LR(inf) iirc? 21:04:01 and that case is sufficiently confusing that the original INTERCAL-72 programmers couldn't get it to work, so they just wrote into the definition of the language that it doesn't work wihtout alternating 21:04:21 an yeah, it makes the parser LR(infinity) unless you put a restriction on like the one that's in the language definition, and that C-INTERCAL and INTERCAL-72 use 21:04:30 CLC-INTERCAL, of course, just parses the LR(infinity) language 21:04:46 (it'd be entirely out of character for it not to) 21:04:46 I forget the restriction, but I remember hating it 21:04:58 ais523, I thought you used some LR(inf) bison extension? 21:05:22 must have confused it with CLC 21:05:29 elliott: if a ' or " could syntactically be closing with no characters of lookahead, it's a syntax error if it later turns out to have been opening after all 21:05:36 ais523, anyway, how do you manage parsing LR(inf)? 21:05:38 Vorpal: I don't use GLR; CLC doesn't either, I think it uses backtracking 21:05:48 ais523, GLR? 21:05:56 the LR(inf) bison extension 21:06:00 oh okay 21:06:04 actually, CLC-INTERCAL's parser is written entirely in CLC-INTERCAL 21:06:09 which makes it very hard to follow 21:06:09 why not use it? 21:06:15 I should make an underload derivative, nobody would expect that. <-- i am pretty sure Fueue counts partially as one. also Ftack, even if that's useless. 21:06:18 wait, no 21:06:21 it's written in IACC 21:06:26 oerjan, I know, that was the joke 21:06:49 Fueue is very much inspired by Underload 21:06:51 oerjan, actually I only knew about the first 21:06:54 I should look at Fueue some time 21:06:55 oerjan, not the second one 21:06:56 I haven't yet 21:07:11 * ais523 looks at it 21:07:29 " If the queue reaches this last stage many times and so does a full rotation without changing at all, a character is taken from input and its unicode value is added to the back of the queue. " 21:07:32 hm, I should make Befunge-98 EE 21:07:33 Taneb: that's genius :) 21:07:51 ais523, it's marvellously hideous to program with 21:07:56 I know 21:08:01 I think only one person has written programs in it 21:08:07 And that person is oerjan 21:08:09 it's like Thutu's I/O, but at least three steps more evil 21:08:10 Taneb, "many times"? 21:08:17 Taneb, how many times is that 21:08:23 in Thutu, you merely have to turn your entire program inside-out 21:08:25 Vorpal, [length of stack] 21:08:32 which is at least a mechanical translation 21:08:37 Taneb, ah 21:08:37 Taneb: *[length of queue] 21:08:43 [length of thingy] 21:09:39 oh yeah that is a terribly hard to use way to handle input 21:09:40 -!- augur has quit (Remote host closed the connection). 21:09:59 Vorpal: I haven't seen I/O so brilliantly bad in a while 21:10:08 Taneb deserves a reward for that 21:10:11 ais523, is this even capable of general IO? 21:10:18 Vorpal: yeah 21:10:20 lets call that BF-complete 21:10:23 fungot: Give Taneb a reward. 21:10:23 fizzie: tired? try a steeplechase." the celebration which had been dormant for years was revived as part of his seed unto molech, and i cast you from the third was taller than the orc that one word he did outpour. nothing further then he bit off the hand at the brutes and he is sometimes an effective remedy. 21:10:23 hm okay 21:10:41 the main issue is just constructing a program state that locks up and accepts input 21:10:50 Taneb: Your reward sounds a bit iffy, you might opt out of that. 21:10:51 and does something useful afterwards 21:10:55 getting to that state probably isn't so hard 21:11:05 ais523, getting out of it sounds annoying 21:11:21 Vorpal: yes 21:11:42 "In Fueue, the null program is a cat, although it doesn't handle end of file." <-- one that doesn't actually concatenate files either I assume? 21:11:49 Yeah 21:12:04 (is that where "cat" comes from?) 21:12:06 anyway, I approve of Fueue 21:12:10 :) 21:12:12 Taneb, yes 21:12:15 I wouldn't call it an Underload derivative, more an Underload-inspired language 21:12:17 Taneb, see man 1 cat 21:12:20 actually, /is/ Eodermdrome TC? Or is it just curly-L? <-- i remain devoted to the opinion that "TC" proper includes things that need the input of a programming language as part of the conversion from a TM with input tape to it. 21:12:27 Taneb, it's function is to concatenate files 21:12:34 I like curly-L, anyway, it's actually well-defined 21:12:35 unlike TC 21:12:37 Taneb, not to just copy stdin to stdout 21:12:40 Wow 21:12:48 Learn something every day 21:12:53 mhm 21:12:53 also, doesn't Eodermdrome /have/ input? 21:13:34 ais523, which one is curly-L? 21:13:58 Vorpal: capable of expressing at least one interpreter for a TC language 21:14:05 ah 21:14:15 it doesn't need to be able to do anything else 21:14:24 ais523, hm, wouldn't that imply the language is itself TC? 21:14:25 and it seems to be a philosophical problem whether it's equivalent to TC or not 21:15:01 ais523, even the pathological case of @ = execute bf interpreter and quit could be argued to the TC 21:15:05 not useful, but TC 21:15:10 definitely curly-L 21:15:23 yeah, it's curly-L pretty much by definition 21:15:26 ais523, speaking of which, is that the math-curly L symbol we are talking about here 21:15:33 http://esolangs.org/wiki/%E2%84%92 21:15:35 and then, why that symbol 21:15:43 and because cpressey chose it 21:15:48 and cpressey is the best esolanger at naming things 21:15:51 fair enough 21:15:56 so you don't really want to argue with him/her 21:16:57 ais523, I was pretty sure it was a him? 21:17:04 though I could of course be wrong 21:17:10 Vorpal: well Chris is a gender-ambiguous name, and I've never met them 21:17:10 are you new to ais523 21:17:42 elliott, yes, I'm the evil twin of Vorpal, having taken over his computer while he didn't look. 21:17:45 elliott: this is why I like mafiascum.net; many people explicitly state their gender to simplify things, and when they don't, there's a pretty high proportion of wrong guesses, both ways 21:18:15 Vorpal: have you figured out how to make his scrollback bigger? 21:18:18 it'd help him out a lot 21:18:50 elliott: btw, I'm having Vorpal-like scrollback trouble on occasion 21:18:57 elliott, alas, I hacked the bouncer, not the client proper 21:19:02 Konversation's scope for bizarre typos has apparently expanded to include one that clears my scrollback 21:19:15 is cpressey ever going to come back to this channel, or is it a part of #esoteric's troubled and tortured past that he isn't here anymore? 21:19:40 boily: he doesn't really enjoy being here, and I don't really blame him 21:19:41 boily, I'd say it is a .5/.5 chance 21:19:51 Vorpal, so, certain? 21:19:52 also he's sort-of permanently RL busy 21:20:02 like me nowadays, except I come here anyway ;) 21:20:07 haven't really worked on actual esolanging for a while, though 21:20:16 ais523: I thought cpressey just left because it was a timesink 21:20:22 I'd like to, but Anarchy and Underlambda are both lots of work 21:20:22 though him hating us also seems perfectly likely 21:20:25 ais523, that is of course an excellent time to start implementing Feather? 21:20:27 elliott: that's what I meant, I just didn't say it 21:20:34 Vorpal: Feather is even /more/ of a timesink 21:20:40 ais523, true that 21:20:40 boily: the last time he was in here was as ZOMGMODULES I think 21:20:48 maybe he'll come again next time he goes to pycon 21:20:59 elliott, that is a thing? 21:21:01 pycon? 21:21:02 wow 21:21:12 ais523, getting out of it sounds annoying <-- yep it is. 21:21:12 well it only makes sense 21:21:13 Vorpal: why /wouldn't/ python have conferences? 21:21:14 not exactly sure how this is remotely surprising 21:21:22 oerjan, how do you do it? 21:21:29 ais523, true 21:21:43 somehow I just never imaged it being a thing 21:21:52 I doubt there is a shell-script con though 21:22:00 Vorpal: are you surprised at Perl having conferences too? 21:22:12 ais523, hm less so than python in fact 21:22:23 ais523, and I would bet the ruby guys have one 21:22:28 they seem the type 21:22:43 indeed 21:22:43 anyway there totally needs to be TECOCON 21:22:53 does anyone actually use TECO nowadays? 21:22:59 I hope not 21:23:04 anyway bashcon 21:23:09 come on, make it a reality 21:24:00 elliott: just looking at the main page 21:24:04 my betterave was once compared to TECO. that was one of my proudest moments. 21:24:09 what's the standard example of a "just plain weird" language? 21:24:15 ais523: esme 21:24:20 boily, what is betterave 21:24:24 INTERCAL aims to be unique, and Malbolge for being difficult to program in 21:24:27 elliott: OK, that'll do 21:24:34 what's the correct case for esme, anyway? 21:24:36 Vorpal: http://esolangs.org/wiki/Betterave 21:24:44 Esme, I think 21:24:44 titlecase? all-uppercase? brainfuck-case? lowercase? 21:24:55 elliott, esme is a joke lang though 21:25:02 no it's not 21:25:16 my own personal theory was that it was created to troll zzo38 21:25:52 riiight 21:25:59 ais523, oh? 21:26:04 Vorpal: think about it 21:26:05 yeah that would work 21:26:06 Vorpal: i make it happen between )$ and a block, then the block gets duplicated as many times as the character read, and then the first one is executed, which can start a chain reaction that increments a 0 back up to the original value, but inside a block. 21:26:27 oerjan: clever 21:26:29 oerjan, sec, need to load up the page again 21:27:02 There's also a Rails conference, I'm pretty sure. 21:27:04 oerjan, oh yeah that *is* clever 21:27:18 shachaf: apparently C++ guarantees static_cast(NULL) == NULL 21:27:24 And EuroForth is still being arranged, and is the most prestigious of the big international Forth conferences. 21:27:34 (I don't know if there are any other that count.) 21:27:42 elliott: also the "enjoy being locked in your matrix of solidity" on the main page made me laugh out loud, probably because I hadn't seen it for months 21:27:44 there are *multiple* forth conferences? 21:27:47 boily, hm, close but not quite like TECO 21:27:47 so in cases where static_cast needs to apply an offset (multiple inheritance) it has to include a NULL check 21:27:59 boily, too easy to read 21:28:16 Vorpal: I know, I was young and naïf. 21:28:17 boily, reminds me more of dc 21:28:25 boily: "naïve" 21:28:33 boily, which is childs play to code in of corse 21:28:35 course* 21:28:43 people normally just write it "naive", but in #esoteric we know better :) 21:29:03 ais523: as a French speaker, I have a hard time describing myself as «naïve», as it is feminine. 21:29:19 boily: yeah, but English almost doesn't have grammatical gender 21:29:32 Also: EuroForth is a three-day conference, but then immediately after there's a "4th-day". 21:29:49 ais523: I'm not a ship, therefore I am not feminine. QED. 21:30:11 boily: but there's only one form of the adjective in English 21:30:20 which applies to all of masculine, feminine, and neuter 21:30:27 (except with neuter, some anthropomorphising is required) 21:30:29 fizzie, oh? What do they do then 21:30:57 Vorpal: I think it's something slightly more social, but they don't seem to have all that much of a web presence, so it's hard to say. 21:31:09 ais523: don't burst my bubble of broken English :p 21:31:14 hm 21:31:40 "As usual there will be the option of staying for a "4th Day" until Monday 18th for additional networking time and allowing delegates to see more of the area." (From the EuroForth 2006 call.) 21:32:10 accidental pun? 21:32:24 -!- impomatic has quit (Quit: impomatic). 21:32:31 Fueue is the language I'm most proud of 21:32:36 olsner: with a name like "forth", accidental puns are reasonably inevitable 21:32:37 (although I still prefer Luigi) 21:32:43 (although the name itself was an intentional pun, IIRC) 21:33:37 elliott, can I be a wiki admin so I can do featured language stuff? 21:33:47 hmm… if we had an esoteric language called "accidentally" 21:33:53 it'd be a noun as well as a verb and an adverb 21:33:59 ais523, wasn't it a file name length limit on some early system? 21:34:09 so you could accidentally a word? 21:34:10 or do I completely misremember it 21:34:14 Vorpal: perhaps, or it may just have been in homage to them 21:34:16 -!- AnotherTest has quit (Quit: Leaving.). 21:34:18 "I accidentally accidentally accidentally" 21:34:20 boily: that's the verb form of accidentally 21:34:54 ais523, how it is a verb 21:34:55 ais523: I'm not sure my grasp of the English language is getting better by visiting this channel.. 21:35:02 afaik it is only an adverb? 21:35:05 Vorpal: boily just used it as a verb 21:35:09 the verb form is an internet meme, though 21:35:22 the fun thing is that the verb itself doesn't exist 21:35:30 you leave it to the listener's brain to fill in the blank 21:35:30 actually it is a noun 21:35:35 boily: we'll just go ahead and esoteric your english 21:35:35 err adjective 21:35:36 I meant 21:35:40 "I accidentally the source repository, is this bad?" 21:35:42 according to a google 21:35:57 wait what 21:36:03 the accidentally man stopped and faced me, raising the oerjan above his head threateningly 21:36:10 this is so wrong then: http://www.thefreedictionary.com/accidentally 21:36:15 Vorpal: how can you have evaded this meme? 21:36:17 wordnet claims it is an adverb 21:36:21 it makes far more sense 21:36:24 it is an adverb, normally 21:36:30 * ais523 accidentally the entire meme :( 21:36:32 -!- sirdancealot7 has quit (Ping timeout: 272 seconds). 21:36:33 all the -ly words are adverbs 21:36:42 Vorpal: that says that "accidental" is an adjective. 21:36:43 olsner, I know of it, I just refuse to acknowledge it. 21:36:52 olsner: this is English, there's probably an exception /somewhere/ 21:37:00 but yeah, most -ly words are adverbs 21:37:00 and "accidental" as a noun is pretty common in music. 21:37:02 Bike, yes which is wrong I think 21:37:12 all the -ly adverbs are adverbs 21:37:12 the adjective bit 21:37:15 "sly" is an adjective 21:37:17 wordnet claims adverb 21:37:20 and so it is 21:37:25 slyly 21:37:27 "accidental" isn't an adverb, "accidentally" is 21:37:39 huh, there's a language called Vorpal? 21:37:43 I just saw it on the deadfish page 21:37:48 "the accidental argument is really starting to seem pointless to Bike" 21:37:56 okay just a confusing page 21:38:10 since the page name was http://www.thefreedictionary.com/accidentally I assumed it would be about that word 21:38:12 god dammit 21:38:27 it's pretty common to fold derived terms like that 21:38:30 in dictionaries 21:38:47 `quote accidentally 21:38:48 157) elliott: it's hard to debug havoc on your mirror if you accidentally hit r, then a character could be multiple words long, depending on the task. \ 275) BYE dbc WE'LL BE SURE TO ACCIDENTALLY MENTION YOUR NICK OFTEN \ 716) oops I accidentally deleted the universe looks weird when you put a verb after acci 21:38:53 guess they could have redirected you at least 21:39:15 hmm, accidentally some more quotes there 21:39:24 Bike, yeah it fooled me though 21:39:44 "I accidentally an accidental in the chorus" 21:39:52 AH! I knew the universe could be destroyed! 716 proves it! 21:40:00 aaaaand that's semantic satiation for me. 21:40:11 `quote 716 21:40:12 716) oops I accidentally deleted the universe looks weird when you put a verb after accidentally like that 21:40:18 `quote 100 21:40:20 100) like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English alise: that's great filler ais523: well it contains all the important words in the english language... 21:41:03 hmm, in hindsight I should've said "another verb" 21:41:07 `run echo A | fueue ')~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]' #Let's see if this improved input method works 21:41:08 talking about memes. All your accidentally us. 21:41:09 ​.. \ 21:41:20 olsner, ^ 21:41:30 `run echo A | fueue -e ')~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]' #Let's see if this improved input method works 21:41:31 ​.. \ 21:41:41 olsner, that one pretty much died out I think 21:41:56 `run echo A | fueue -e ")~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]" 21:41:57 ​.. \ 21:42:01 `run echo A | fueue ")~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]" 21:42:02 ​.. \ 21:42:05 Nope 21:42:34 Vorpal: beaten to death until it died over and over again 21:43:07 olsner, true 21:43:19 I think accidentally and finnish are my favourite verbs 21:43:40 21:37:39 huh, there's a language called Vorpal? 21:43:40 21:37:43 I just saw it on the deadfish page 21:43:41 `? Ngevd 21:43:42 ​H%!.3YR9}ƍReiб6u\ޟ]qIo{_ibmSݻ}.N6͕"^`/=S2t>dHǪS1hD_+Hd#υjh#?ݶpH슣6x]&r1rԉ 21:43:43 ais523: blame cpressey 21:44:05 elliott: did he name it after Vorpal, or is it coincidence? 21:44:09 why the /dev/urandom 21:44:36 `cat -v /dev/urandom 21:44:37 cat: invalid option -- ' ' \ Try `cat --help' for more information. 21:44:41 `addquote ais523: I'm not sure my grasp of the English language is getting better by visiting this channel.. 21:44:43 `run cat -v /dev/urandom 21:44:43 ais523, it looks like a non-esolang? 21:44:45 957) ais523: I'm not sure my grasp of the English language is getting better by visiting this channel.. 21:44:46 M-(M-L{PM-7LiM-^K^D>?M-$M-jM-V,^[i^Yf3^^AM-WM-(M-^]M-_2M-OM-uM-(M-PYM-^F^_M-LIKM-@M-^FM-^EM->6dM-^HKfM-p{M-@^O^UM-0K;M-9^K^PM-^ZM-(M-]^^KM-^TM-YM-VM-uN+^GBNM-zM-VM-;^kM-^W^XM-zM-vM-^\iM-DM-}^ZcM-^M-EHM-^@M-5M-'fM-;\M-qM-fM-^D4Qmj* M-gM-`^PM-v^M-^OI?7oPHM-AM-^Zy^KM-bM-8oW>:m!M-EAM-t>#PM-k:"M-^XhBM-0M-/M-tM-V-M-Q^]M-aM-^ZM-"M-|FM-=M-KM-_M-tc^Y2^HM-j 21:44:56 Vorpal: I didn't say it was an esolang 21:44:59 ais523, no link to it either 21:45:04 ais523: he didn't make it 21:45:26 elliott: right, just wrote a deadfish interp in it? 21:45:31 right 21:45:34 elliott, is it this one? https://code.google.com/p/vorpalcode/ 21:45:36 yes 21:45:47 `quote boily 21:45:49 944) boily: the man eating chicken is just a normal man, it's quite common to eat chicken in some parts of the world \ 945) ~eval 1+2 Error (127): this is a great bot boily i love it \ 954) not only there is no God, but try to find an APL keyboard on Sunday. \ 957) ais523: I'm not sure my 21:46:10 not so bad history. could have been worse :D 21:46:29 all the -ly words are adverbs <-- holy shit batman 21:46:59 ~eval 1+2 21:47:08 gimme a sec... 21:47:09 hmm, cuttlefish isn't here 21:47:24 -!- cuttlefish has joined. 21:47:40 ais523: どうぞ… 21:47:45 eep that program was buggy 21:47:53 ~eval 1+2 21:47:56 3 21:48:03 look ma, no bugs! 21:48:11 ~eval Error (127): 21:48:11 Error (1): :1:13: 21:48:12 parse error (possibly incorrect indentation or mismatched brackets) 21:48:28 -!- sirdancealot7 has joined. 21:48:36 hmm, that looks a lot like a Python error message 21:48:43 it's haskell 21:48:50 oh right 21:49:00 perhaps I shouldn't feed python to it, then 21:49:07 Taneb: run fueue '...' is the correct format, the program is just buggy 21:49:13 oerjan, okay 21:49:28 ~eval id 4 21:49:28 you can always try. I guess an error 127 will be spewed out as usual, or something. 21:49:29 4 21:49:38 yeah, Haskell 21:49:43 -!- Frooxius has quit (Read error: Connection reset by peer). 21:49:56 ~eval let fix f = let x = f x in x in fix (\r n -> if n == 0 then 1 else n * r (n - 1)) 8 21:49:57 40320 21:49:57 I *do* hope it's haskell. 21:49:59 -!- Frooxius has joined. 21:50:00 ~eval let fix f = let x = f x in x in fix (\r n -> if n == 0 then 1 else n * r (n - 1)) 10 21:50:01 3628800 21:50:17 Probably Haskell 21:50:24 ~eval fix$(<$>)<$>(:)<*>((<$>((:[{- thor's mother -}])<$>))(=<<)<$>(*)<$>(*2))$1 21:50:25 [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656,5629 21:50:50 olsner, what does thor's mother have to do with anything? 21:51:00 nothing, it's just a comment 21:51:02 olsner, also I'm a bit disappointed that was not actually part of the program 21:51:11 olsner, I know, that is why I asked why it was there 21:51:27 anyway who was thor's mother 21:51:30 well, I don't know ... I didn't write that part 21:51:32 Vorpal: Maybe it's there to help the maintenance programmer? 21:51:41 oh of course 21:51:44 That's a reasonable reason for comments. 21:51:46 how silly of me not to think of that 21:52:09 boily: what types does it evaluate? just things in Show, or can you give it IO actions? 21:52:17 ~eval interact id 21:52:17 Error (1): No instance for (GHC.Show.Show (GHC.Types.IO ())) 21:52:18 arising from a use of `M1409069964351145295.show_M1409069964351145295' 21:52:18 Possible fix: 21:52:18 add an instance declaration for (GHC.Show.Show (GHC.Types.IO ())) 21:52:22 just things in Show, it seems 21:52:24 ~eval cosh 7 ^ 2 - sinh 7 ^ 2 21:52:25 0.9999999999417923 21:52:34 Rounding error :O 21:52:34 ais523: no IO. it's running on my work machine, and it would be embarassing to have it crash at inopportune moments. 21:52:39 ~eval cosh 7 ^ 2 - sinh 7 ^ 2 :: CReal 21:52:40 Error (1): Not in scope: type constructor or class `CReal' 21:52:40 Perhaps you meant `Real' (imported from Prelude) 21:52:42 boily: indeed 21:52:58 > cosh 7 ^ 2 - sinh 7 ^ 2 :: CReal 21:52:59 ~eval unsafePerformIO $ putStrLn("test") 21:52:59 Error (1): Not in scope: `unsafePerformIO' 21:53:00 1.0 21:53:01 Jörð (as in, "earth") is apparently Thor's mother. 21:53:02 I tried to have it running on a random VM at work once, but the attempt failed. 21:53:04 just making sure :) 21:53:24 don't worry, I took every available precautions before running that kludge here. 21:53:28 I know you guys. 21:53:31 boily: definitely :) 21:53:41 boily: I suspect it can be thwarted 21:53:45 -!- WeThePeople has quit (Quit: Leaving). 21:53:47 I remember when people found a Perl injection hole in Rodney (#nethack's bot) 21:53:57 someone used the hole to get the bot to kill -9 itself, and it was widely considered a good idea 21:54:01 ~eval instance Num () where fromInteger _ = () 21:54:02 before it was used to cause more damage 21:54:02 Error (1): :1:1: parse error on input `instance' 21:54:06 right, so no statements 21:54:24 elliott: I probably haven't stressed it as much as HackEgo or EgoBot, but I believe it to be solid enough. 21:54:26 ~eval v 21:54:27 Error (1): Not in scope: `v' 21:54:37 elliott: the only security hole the students found in my OCaml sandbox was using the FFI to access parts of the standard library they weren't meant to 21:54:46 elliott: it's using a very small subset of haskell, eval'ed with mueval. 21:54:52 Our Scheme course had a Scheme REPL bot, and boy did it have holes. (They did get patched quite quickly after on-channel demonstrations.) 21:55:10 kmc: Hmm, I didn't know that. 21:55:20 fizzie: I'm reminded of the e-reader that came with a setuid helper program 21:55:28 kmc: It looks like a C-style cast behaves the same way. 21:55:30 people demonstrated security bugs in it, the author reacted by fixing just the bug shown 21:55:37 boily: well, you can have security holes even with mueval 21:55:43 elliott: the only security hole the students found in my OCaml sandbox was using the FFI to access parts of the standard library they weren't meant to <-- how did you fix that? 21:55:49 boily: what GHC version is it on? 21:55:54 Vorpal: manually looking at the code and bitching at them if they tried to use it 21:56:14 ais523, couldn't you fix it properly though? 21:56:21 elliott: eeeeeh... I think 7.6.1. 21:56:24 Vorpal: yes but I had to look at the code anyway 21:56:26 so there was no point 21:56:31 ~eval let unsafeCoerce v = z where z :: v; z = v where aux = const v in unsafeCoerce (5::Double)::Int 21:56:32 true 21:56:32 Error (1): Couldn't match expected type `v1' with actual type `t' 21:56:32 `v1' is a rigid type variable bound by 21:56:32 the type signature for z :: v1 at :1:35 21:56:32 `t' is a rigid type variable bound by 21:56:32 the inferred type of unsafeCoerce :: t -> v at :1:5 21:56:37 Aw. 21:56:38 ais523, elliott: http://hpaste.org/81905 21:56:40 and nobody found a way to escape the /other/ sandbox 21:56:44 -!- variable has changed nick to trout. 21:56:47 so it couldn't be used to damage the system it was running on 21:57:00 shachaf: I was about to do that! 21:57:03 shachaf: i think C cast does the same thing as static_cast in the cases where the latter is valid 21:57:05 so I guess it's too new 21:57:06 not sure though 21:57:12 fizzie: I'm reminded of the e-reader that came with a setuid helper program <-- why would an e-reader need a suid helper? 21:57:20 Vorpal: it didn't, this was part of the problem 21:57:27 riight 21:57:34 it was used to mount the e-reader itself on your computer 21:57:44 It was Calibre, actually. 21:57:45 (string->symbol "foo\nIRC COMMAND :goes here\nwhatever") was one somewhat nasty one; the output filtering didn't catch symbols with newlines in their names. 21:57:45 oh 21:57:48 but it was pointed out that there were already well-debugged setuid programs that did that sort of thing 21:57:52 pikhq: yeah, I forgot the name 21:58:09 kmc: Well, it makes sense, if it has the offset anyway. 21:58:28 ais523, speaking of suid, do you happen to know what /usr/lib/pt_chown is? 21:58:36 ~eval data Foo 21:58:36 iirc it is owned by glibc on most distros 21:58:37 Error (1): :1:1: parse error on input `data' 21:58:45 never bothered to look into what it was 21:58:53 Vorpal: it's suid and owned by root on mine 21:58:59 ais523, same 21:59:01 and doesn't have a man page 21:59:02 but what is it for 21:59:13 time to disappear in the great frigid void. 21:59:15 -!- boily has quit (Quit: Poulet!). 21:59:19 ais523, it is in /usr/lib, so presumably not meant to be executed by hand 21:59:19 -!- cuttlefish has quit (Remote host closed the connection). 21:59:28 ldd lists only linux-gate, libc, and ld-linux.so 21:59:34 let's try a web search 21:59:49 ais523, nm -D is not very helpful either 21:59:52 Vorpal: man grantpt. 22:00:02 Vorpal: aha, apparently it creates pseudoterminals 22:00:08 on systems without devpts support 22:00:22 ah 22:00:23 that requires doing mknod, = requires being root 22:00:33 (My "NOTES" section of grantpt(3) mentions pt_chown.) 22:00:38 indeed 22:00:42 I think I have much the same grantpt(3) 22:00:52 if it isn't required, why is the binary on my system 22:01:15 ais523: Does it actually *create* them, as opposed to just setting ownership? 22:01:45 fizzie: good point 22:01:49 just reownering them would make sense 22:01:59 Vorpal: Kubuntu are apparently considering getting rid of it 22:02:03 heh 22:02:05 as part of a sweep of inappropriately setuided things 22:02:09 but not ubuntu? 22:02:31 Vorpal: it sounds like the sort of patch which would probably be shared between them, don't you think? 22:02:32 -rwsr-xr-x 1 root root 18824 jan 1 04:03 /usr/lib/chromium/chromium-sandbox 22:02:37 now that is interesting permissions 22:02:55 why does chromium need to be suid 22:03:12 Vorpal: oh, I think I know this one, it's for doing chrooting and unsharing 22:03:12 ah, it uses chroot 22:03:20 ais523, unsharing? 22:03:32 Vorpal: it's sort-of generalised chroot, it gives you different namespaces for things than the rest of the system 22:03:41 so you can request that you have your own entirely separate set of PIDs, for instance 22:03:51 ah 22:03:51 or an entirely different set of sockets 22:03:54 -rwsr-xr-x 1 root root 245064 aug 24 09:06 /usr/lib/openssh/ssh-keysign <-- sorry, what? 22:04:42 Vorpal: you should look into man 2 unshare if you care about doing any sort of sandboxing in usermode 22:04:47 -rwsr-xr-- 1 root dip 318912 jun 22 2012 /usr/sbin/pppd <-- also what? 22:04:54 it's relatively new 22:05:06 hm cool 22:05:31 on Linux, that is 22:05:33 (it's Linux-specific) 22:05:56 Vorpal: Web of Lies uses it heavily, btw; it's how I once ended up with a filesystem leak 22:06:09 (you'd think it would be difficult to leak filesystems, but…) 22:06:14 heh? really? 22:06:19 wouldn't it die with the process 22:06:36 yeah but just /finding/ the process is hard when it's in an entirely different namespace 22:06:42 also I hit multiple kernel bugs 22:06:45 `run echo A | fueue ')~$)[[)[~~~~()+1])][0]$%~~1)][[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~] ][]]' #New attempt 22:06:46 65 22:06:47 ais523, ps aux won't list it? 22:06:54 Vorpal: yeah, but Linux thought it was init 22:06:57 and so I couldn't get rid of it 22:07:00 ais523, what about lsof? 22:07:10 or fuser 22:07:11 or specifically, it thought init had a debug trace on it 22:07:17 how? 22:07:29 there is actually no way to get rid of a process that init has a debug trace on, short of rebooting the system 22:07:33 -!- Taneb has quit (Quit: Leaving). 22:07:33 or telling init to kill it 22:08:01 if you try to sigkill it, then the kill gets passed onto init, which doesn't know what to do with it 22:08:01 ais523, is there ever a legitimate reason for init to have a debug trace on anything??? 22:08:04 Vorpal: no 22:08:09 then why 22:08:12 kernel bug 22:08:16 right 22:08:17 sadly I don't know how to reproduce it 22:08:30 one I /do/ know how to reproduce is getting multiple overlapping stack segments in a process 22:08:36 that one's really easy, you just mmap over the stack guard page twice 22:08:50 I should write a non-insane test case for it, then report the bug 22:08:53 ais523, how did you figure out that linux thought init was debugging? 22:08:57 ais523: does even kill -9 get passed on? 22:09:08 elliott, if you try to sigkill it, then the kill gets passed onto init, which doesn't know what to do with it 22:09:09 yes 22:09:12 Vorpal: it's mentioned in /proc 22:09:17 ah 22:09:19 elliott: yeah, it gets converted into SIGCHLD on the way 22:09:41 is it possible to boot with init=gdb? that might reasonably result in init having a debug trace on something 22:09:47 init /does/ understand SIGCHLD (it's its job), but not the specific version of SIGCHLD meaning "something you have a debug trace on was sent a fatal signal" 22:09:57 olsner, yes, but that would be pretty insane 22:10:01 olsner: hmm, good point 22:10:03 I'm unwilling to try 22:10:35 ais523, you could actually have killed it 22:10:40 ais523, without rebooting 22:10:47 init supports re-exec using telinit 22:10:57 just replace init with a new init that would understand how to handle it 22:10:59 gdb as process 1 actually soudns kind of useful 22:11:00 then re-execute init 22:11:11 Vorpal: you think I have spare inits just lying around? 22:11:12 ais523, this would not have required a reboot 22:11:18 but good point 22:11:21 ais523, I think you have a compiler 22:11:26 yeah 22:11:27 this thing with init being special and magical seems pretty bogus in general, why couldn't there just be loads of processes that lack a parent? 22:11:31 -!- carado has quit (Ping timeout: 246 seconds). 22:11:39 ais523, and you would need to customise the code anyway 22:11:42 but writing a correct init without being able to test it is something I'm not confident in being able to do 22:11:47 olsner: well, the kernel exec()s init 22:11:54 so all other processes have to be forked off from init 22:12:06 and I'm not entirely sure what happens if you replace init with something that doesn't work properly 22:12:08 but I doubt it's god 22:12:10 *good 22:12:13 ais523, so do apt-get source then patch it up and compile it 22:12:31 maybe throw it in a VM to test it 22:13:12 Vorpal: this seems like a lot of effort to just get rid of a process in an impossible state 22:13:17 true 22:13:27 ps and top were quite happily bragging about the state it was in, if they had feelings I'm sure they'd be having fun 22:13:39 ais523, how what state was it in? 22:13:57 Vorpal: debug stop, obviously 22:14:02 with no process obviously tracing it 22:14:02 ah 22:14:07 nice 22:14:09 and if you look at /proc, the process tracing it was init 22:14:34 hmm, I wonder what it would have thought it was being traced by from within its own namespace 22:14:36 ais523, maybe the tracing process had died, thus re-assigning the parent to init? 22:14:39 it was being debugged by a process outside the sandbox 22:14:41 Vorpal: yeah, it had 22:14:55 but traces surely shouldn't be reassigned like that 22:14:56 ais523, that would normally kill the debug state presumably? 22:15:03 ais523, have you tested that again? 22:15:33 no, but I doubt trying it under normal circumstances will produce standard results 22:15:41 let's try gdbing a program and kill -9ing gdb 22:15:59 pretty sure killing gdb is harmless 22:16:03 olsner: same 22:16:09 yeah 22:16:11 the question is, what happens to the program it's debugging 22:16:32 it obviously need to be in debug stop too 22:16:51 I think the program continues as if the debugger detached 22:17:04 olsner, what if it was stopped 22:17:40 OK, at the moment, a.out is in tracing stop, and traced by gdb 22:17:42 this much makes sense 22:17:47 now I'll kill gdb 22:18:05 a.out also disappeared 22:18:09 ah 22:18:10 I guess I need an a.out with an infinite loop in it 22:18:13 it killed both? 22:18:26 olsner: hard to tell, this is why I need the infinite loop 22:18:39 I think a.out continued and finished successfully 22:19:04 oh, and save the exit status? it should say how the program died 22:19:27 -!- epicmonkey has quit (Ping timeout: 255 seconds). 22:19:51 yeah, a.out just starts running normally if I kill gdb out from under it 22:20:45 I'm pretty sure that to reproduce the bug, you need a new PID namespace 22:21:13 just killing a debugger is not weird enough to warrant a kernel bug 22:21:18 indeed 22:21:28 it's not the sort of thing you normally do intentionally, but it seems easy enough to do by mistake 22:21:47 ais523, what about if you put the inner process in a different namespace? 22:22:17 Vorpal: you can't easily get gdb to do that, at this point 22:22:25 ah 22:22:32 perhaps you could do it with recursive strace 22:22:44 but you'd need to write your own helper program, also would need root on all processes involved 22:22:49 and I'm too lazy to try to do that right now 22:26:22 ais523, I would doubt recursive trace is allowed 22:26:25 it shouldn't be 22:26:42 of course it should be 22:26:42 or even tracing a parent process 22:26:47 olsner, why 22:26:53 Vorpal: recursive trace works by capturing all the fork commands 22:27:00 and immediately tracing the children too 22:27:02 hm 22:27:14 ais523, err I meant cyclic tracing 22:27:17 why did I type recursive 22:27:23 time to sleep I think 22:27:46 well I said recursive 22:27:56 hmm, I'll admit that cyclic tracing seems troublesome 22:29:20 ais523, anyway you could attach to an existing process 22:29:27 the system calls to set it up are definitely possible to express 22:29:54 huh? man ptrace says that tracing init is legal 22:30:04 I almost want to attach gdb to init now 22:30:08 but I'm not sure what would happen if I tried 22:30:34 there's nothing in the documentation that bars cyclic tracing… 22:31:10 try it in a VM? 22:31:20 I'm trying cyclic tracing on my laptop right now 22:31:41 oh wow 22:31:44 they're both in tracing stops 22:31:46 simultaneously 22:32:35 http://sprunge.us/GEgA 22:33:22 two gdbs attached to each others? 22:33:39 yep! 22:33:48 i think ptracing init is a new feature 22:33:50 'feature' 22:33:53 kmc: indeed 22:33:57 previously it would try to reparent the traced process to the tracer 22:34:21 olsner: strangely, even though gdb 1 was told not to stop gdb 2, it did anyway 22:34:39 I think, because gdb 2 stopped gdb 1, so gdb 1, which it was tracing, stopped too 22:34:43 let's try to break up this gdb-ball, now 22:35:23 kill -9 works, lesser signals seem not to 22:35:41 seems like they just deadlocked when I tried attaching to gdb 2 from gdb 1 (gdb 2 was started with --pid=gdb1) 22:35:59 olsner: yeah, and they're both marked as tracing stop 22:36:12 olsner: can you try to kill gdb 2 in that scenario? I tried to kill gdb 1 instead 22:37:24 term does nothing, kill results in gdb1 saying "Unable to attach: program terminated with signal SIGKILL, Killed." 22:37:34 OK, that's a different result to trying to kill 2 22:37:49 in my case, 1 correctly reported that 2 had been killed 22:38:05 sh -c 'exec strace -p $$' 22:38:32 kmc: have you tried that, or is it just a thought experiment? 22:38:36 i have tried it 22:38:42 i know what happens 22:38:58 hmm, the first run gave me a different result though, maybe because I tried to Ctrl-C both gdbs before killing them (gdb2 first) 22:39:24 kmc: strace checks for it, it seems 22:39:24 gdb/linux-nat.c:1766: internal-error: linux_nat_detach: Assertion `num_lwps (GET_PID (inferior_ptid)) == 1' failed. 22:39:46 gdb says "I refuse to debug myself!" 22:39:50 yep 22:40:05 run gdb in gdb to bypass the check 22:40:23 I won't try to run weboflies inside itself because that actually ends in quite a boring manner 22:40:37 the outside one prevents the inside one from running ptrace 22:40:42 boring! 22:40:45 so you don't get any sort of interesting infinite regress 22:41:13 does that mean you don't support nested weboflies either? 22:41:22 indeed 22:41:39 debugger-like programs are one of the things weboflies is documented to not work on 22:41:40 ais523: that's a good way to check whether you're webofliesed 22:41:43 elliott: I know 22:41:53 I guess in theory I could go through all the effort of implementing ptrace by hand 22:41:58 webofleeced 22:42:00 but I won't unless it turns out to be really relevant 22:42:21 the other thing is, the program running inside weboflies can't be root, and it needs root 22:42:27 ais523, does weboflies work on 64-bit programs yet? 22:42:31 Vorpal: no 22:42:36 it doesn't even work on 32-bit programs yet :) 22:42:42 fair enough 22:42:51 what does it work on? 16-bit programs? 22:42:54 olsner: nothing 22:42:57 ais523, I would like to run it on arm-linux-gnueabihf 22:43:02 Vorpal: really? 22:43:07 ais523, maybe 22:43:12 it needs special-case code for each platform and ABI 22:43:21 this is why I'm focusing on 32-bit x86 22:43:29 ais523, oh? That is going to be a PITA on ARM 22:43:30 weboflies can't fake being root? 22:43:35 Vorpal: exactly 22:43:37 olsner: not yet 22:43:37 due to all the variant-ABIs 22:43:48 I guess there's fakeroot, but it doesn't do a particularly impressive job of it 22:43:58 olsner: how do you react if the inside program tries to break the chroot, for instance? 22:44:07 what does fakeroot actually do btw? 22:44:11 you have to pretend it doesn't exist 22:44:18 Vorpal: lies on some file-related system calls 22:44:21 weboflies-style 22:44:26 ais523, right 22:44:45 like, if it tries to chown a file to root, it pretends it succeeded, and then returns root on any attempt to get the file's owner 22:44:48 it's a library shim not a syscall interceptor right? 22:44:52 kmc: err, probably 22:45:04 that's why i write all my programs as assembly making syscalls directly 22:45:15 kmc, what if you hardlink the file first 22:45:17 err 22:45:17 in the case of fakeroot, though, you want to be lied to 22:45:18 ais523, ^ 22:45:23 Vorpal: it's not perfect 22:45:28 kmc: have you seen weboflies 22:45:29 fair enough 22:45:29 its purpose is to make packages 22:45:32 it's the kind of thing you'd like or hate 22:45:54 ais523, does it store the chown then somewhere, so that the proper owner can be recorded in the package? 22:45:58 i heard about it but forgot 22:46:12 kmc: you should see its code 22:46:15 you'd hate or like it 22:46:16 Vorpal: yes 22:46:21 ah that works 22:46:23 it's so unfinished :( 22:50:09 -!- monqy_ has joined. 22:50:48 -!- monqy has quit (Disconnected by services). 22:50:52 -!- monqy_ has changed nick to monqy. 22:51:59 if the inside program tries to break the chroot, just tell it it wasn't in a chroot in the first place? 22:52:29 olsner: yeah, but that's yet more cases to check, and so on 22:52:39 (you do know how to break a chroot as root, right?) 22:52:56 how's that again 22:53:06 ais523: do you have web o' flies' code to hand? 22:53:08 I've lost it, I think 22:53:08 how about if the inside program creates a chroot with another program (as root) that is "legitimately" supposed to break out from the inner chroot 22:53:17 you cd root, set up a second chroot inside it 22:53:35 then while inside the second chroot, but still inside the root directory of the original chroot (i.e. you're below your own personal root), do a cd .. 22:53:39 then chroot again 22:53:53 it breaks the chroot because if you're /below/ root, you can cd .. as much as you like 22:53:57 I think this is an intended feature 22:59:42 reminds me of what you get when your working directory has been deleted 23:00:14 olsner: I didn't think it was possible to delete another process's working directory 23:01:41 it must be possible :) it's also fun when cd .. fails because the directory has stopped existing 23:01:53 or I guess because it has stopped having a file name 23:02:12 hmm… is it possible to delete the .. /entry/ in a directory 23:02:22 while having a directory containing the directory that's missing a .. 23:02:35 does the '..' entry even necessarily exist? 23:02:47 I think it's meant to, by some spec or another 23:03:52 I mean, that it's an artifact of simulating posix rather than the directory actually having a link named .. that points to the parent directory 23:04:21 what if you didn't have "."?!?!?!?! 23:05:02 `addquote This position is asking for "- Extensive experience with API" You're just not qualified, kid. 23:05:06 958) This position is asking for "- Extensive experience with API" You're just not qualified, kid. 23:08:04 gah python.... repr(x) = '1357675209.248774', str(x) = '1357675209.25' 23:08:12 in particular this means 'print' doesn't print floats with full precision 23:08:22 isn't that sort of a good thing 23:08:30 since otherwise print would print huge monstrosities 23:08:37 no it's not a good thing 23:08:39 it's too magic and implicit 23:08:52 if you want only 2 decimal places you can use '%.2f' % (x,) 23:09:23 evidence that it's too magic and implicit: i've been programming in python for many years and only just noticed this, when i couldn't grep some files for the floats supposedly loaded from those files 23:13:22 well you know what's too magic and implicit 23:13:31 it's automatically converting values to strings by implicit rules that nobody will know inherently 23:13:37 because there are tons of ways to convert any value to a string 23:14:25 kmc, pretty sure %f in C's printf doesn't do full precision either? 23:14:25 elliott: toString() 23:14:27 :) 23:15:54 I would be unsurprised to find that the rule is "output the shortest string that results in the same binary representation". 23:16:16 Rather than the perhaps saner "output the decimal conversion of the float". 23:16:29 it's either that or undefined behaviour 23:17:03 i recall finding out that efficient, exact float -> string conversion is surprisingly complicated 23:17:11 or maybe it was the other way 23:17:28 everything involving floats is surprisingly complicated, i shouldn't be surprised by it by now 23:17:41 iirc string->float is the really tricky one, but float->strings is most likely pretty tricky too 23:18:55 kmc: Exact float->string conversion can be fairly easy if you use hex float syntax. :P 23:19:03 hmm, or maybe float->string was the tricky one... there was that bug in dtoa where it went into an infinite loop 23:19:30 maybe I actually meant it that way around in the first place but wrote the words in the wrong order 23:24:36 ah yeah that was a great bug 23:24:43 DoS any PHP or Java app 23:24:59 though PHP fucking something up is not in any way evidence that it's a tricky problem 23:25:43 `fetch http://sprunge.us/YaOJ 23:25:46 2013-02-06 23:25:45 URL:http://sprunge.us/YaOJ [3900] -> "YaOJ" [1] 23:26:36 `run chmod a+x YaOJ; mv YaOJ bin/shove 23:26:40 No output. 23:26:42 iirc this was the one case where php did the right thing and used the library that already solved this tricky problem that no-one knows how to solve, but that it had an actual bug 23:26:51 Man. Ithkuil is quite the thing. 23:27:08 The word "âdraxhtipší" translates literally as "apparatus designed for obeying synergistically composite sets of rules". 23:27:25 Or, a bit more nicely, as "computer". 23:27:46 that would be a good name for a programming language 23:27:51 -!- SirCmpwn has quit (Excess Flood). 23:28:25 Âdraxhtipší. It's difficult to type, but not extremely so. 23:28:34 -!- Phantom_Hoover has joined. 23:28:45 On my keyboard, it's "alt-6 A d r a x h t i p alt-v s alt-e i". 23:28:53 "No person, including Quijada, is hitherto known to be able to speak Ithkuil fluently." 23:28:53 -!- SirCmpwn has joined. 23:29:57 Userspresumably none (2012) 23:30:01 Sort of ironic how Ithkuil is kind of supposed to be extremely concise, and yet its word for "computer" is longer than the English word for computer. 23:30:21 In 2008, it won the Smiley Award 23:31:33 The difference, I suppose, is that while "computer" has three longish morphemes, com-put-er, "âdraxhtipší" presumably has a whole ton of short morphemes. 23:31:40 monqy: are you new to ithkuil? 23:31:43 it's an amazing thing 23:31:48 apparently "Ithkuil doesn’t use the concept of zero." 23:32:05 Right, it does. "â-dr-a-xht-ipš-i", six morphemes. 23:33:01 Looks like the root is... "eu", actually, but it's abbreviated out of the word entirely or something. 23:33:36 elliott: somehow i've never heard of it before 23:33:39 elliott: but it's amazing yes 23:33:40 65 consonants and 17 vowels o.O 23:33:48 monqy: listen to the example sentence pronunciation on wikipedia 23:33:49 it's great 23:34:00 ompeaaa a keth luch tuch 23:35:36 As our vehicle leaves the ground and plunges over the edge of the cliff toward the valley floor, I ponder whether it is possible that one might allege I am guilty of an act of moral failure, having failed to maintain a proper course along the roadway 23:37:04 and the IPA for it looks like it comes straight from /dev/urandom 23:37:09 `run echo '"Hello world!"S' | shove 23:37:12 ​ \ actual size: (15, 1), pos: (0, 0) \ rotated for viewing; pos: (0, 0), dir: 0 \ stack: \ *Hello world!"S \ \ actual size: (15, 1), pos: (14, 0) \ rotated for viewing; pos: (14, 0), dir: 0 \ stack: {Hello world!} \ "Hello world!"* \ Hello world! 23:37:30 ˈpʊ́l̪l̩̪̀ ʊˈɪ́qɪ̀ʃx ˈmáʔwàɫ̪ɡ ɛʁjaʊ̯fɤˈn̪ɪ́ɛ́n̪ ˈpǽθwɯ̀ç aʊ̯ˈxɤ́ʔjàɬt xn̪ɛʔwiɬˈtáʔʂʊ̀ɪ̯ ˈt̪ʊ́à kɪ̂t̪ œl̪ˈːâ jaˈqázmʊ̀ɪ̯v l̪ɪʔjɯɾˈzɪ́ʂkàʔ pʼamˈm̩̂ aɪl̪ɔʔˈwɤ́tʃːà ʃʊʔˈjɛ́ɸt̪àʂ 23:37:37 bit unoptimal output for HackEgo 23:37:53 stop that 23:37:56 you break my terminal 23:38:23 Romanization: Pull̀ uíqišx ma’wałg eřyaufënienˉ päţwïç auxë’yaļt xne’wïļta’şui tua kit öllá yaqazmuiv li’yïrzişka’ p’amḿ aìlo’wëčča šu’yehtaş 23:39:12 oerjan: is that my shove interp? 23:39:16 yes 23:39:21 I was wondering if you'd written your own 23:39:48 bit of a waste given yours is the only information i have about the language. 23:39:59 indeed 23:40:12 it seems to output debug info 23:40:40 hmm… rare for me to finish an esolang then forget to tell anyone about it 23:40:46 I must just have never got round to writing the spec 23:41:15 I nominate oerjan writes the spec 23:41:18 that'd be a world first I think 23:41:49 wat 23:42:47 a world first of someone writing the spec for someone else's esolang 23:43:38 why oerjan not you? laziness? 23:44:27 I don't _do_ things... 23:44:29 "ais523 created the esolang Shove in 2008, but somehow forgot to tell anyone until 2013" 23:44:34 also oerjan seems to know how to write a program in it and I don't :P 23:44:35 just checked the file modification dates 23:44:46 it's hard to do control flow 23:48:33 that reminded me of another language but i forgot which one so i searched for it and it's Burn. 23:50:56 (wow! people are talking about esolangs!) 23:51:57 Burn is quite an awkward language 23:52:08 because I wrote one program in it, and never remembered the spec 23:52:24 the program's online, but I'm not sure anyone's seriously tried to figure out the spec from it 23:52:29 perhaps I should try sometime 23:52:45 having designed the esolang in the first place, I probably have the best chance 23:57:44 `fetch http://oerjan.nvg.org/esoteric/shove/shove 23:57:49 2013-02-06 23:57:48 URL:http://oerjan.nvg.org/esoteric/shove/shove [4006/4006] -> "shove" [1] 23:57:57 `run chmod a+x shove 23:58:00 No output. 23:58:04 `mv shove bin/shove 23:58:06 mv: missing destination file operand after `shove bin/shove' \ Try `mv --help' for more information. 23:58:09 `run mv shove bin/shove 23:58:12 No output. 23:58:26 `shove "Hello, world!"S 23:58:28 Hello, world!