00:12:11 -!- WeThePeople has quit (Quit: Leaving).
00:12:47 -!- WeThePeople has joined.
00:15:18 <kmc> maybe PHP has a feature where it automatically converts l to 1 and O to 0
00:15:52 <olsner> 10+1 is probably ll in php
00:16:07 -!- augur has quit (Remote host closed the connection).
00:16:38 <kmc> shachaf: is there some secret signal in the number of dots after each message
00:17:29 <shachaf> 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 <pikhq> Ah, good ol' UTF-31.
00:18:14 <shachaf> I have a version of "text" that actually uses this encoding.
00:18:17 <shachaf> It passes a lot of the tests.
00:18:18 <kmc> parity bit obv.
00:21:18 <fizzie> 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 <tromp_> too bad C doesn't have 0b00110 literals
00:23:42 <fizzie> Fortunately, the preprocessor provides clearly an almost-as-nice replacement.
00:23:51 <pikhq> It'd be a *lot* nicer.
00:23:56 <olsner> 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 <fizzie> (GCC of course has 0b010100 as an extension.)
00:24:50 <kmc> fizzie: haha
00:25:34 <pikhq> Pity that's not ISO.
00:26:33 <fizzie> 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 <shachaf> Or you could just define 256 macros.
00:27:27 <fizzie> Or 4294967296, for B32().
00:28:15 <shachaf> You could define B32(a, b, c, d), though, with 256 macros.
00:28:30 <shachaf> I guess you could do that anyway. Bu1 31 ,s is much more annoying than 4.
00:31:22 <fizzie> You can define a B32(a b c d) with 256 macros too, and then there are no commas.
00:31:59 <fizzie> 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 <FreeFull> fizzie: aren't hex literals good enough
00:44:24 <kmc> what's "good enough"
00:44:32 <shachaf> good enough is good enough
00:45:42 <kmc> not really
00:46:11 <kmc> annoying when you're programming control registers with bitfields that don't align with nybble boundaries
00:46:12 <fizzie> You can't see THE PATTERNS if it's in hex.
00:46:24 <shachaf> for representing nybble patterns
00:46:53 <FreeFull> When I see, say, E, that goes straight into 1110 in my head
00:47:20 <kmc> it's not you, it's the E talking
00:47:43 <fizzie> 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 <FreeFull> All you have to do is just listen
00:48:14 <FreeFull> Because for 256-colour or more, hex works better than binary =P
00:48:18 <kmc> 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 <FreeFull> I guess it's good for 16 colour too
00:48:33 <fizzie> FreeFull: It's a bitmap, of course it's 1-bit.
00:49:08 <fizzie> It's not a pixmap or whatnot.
00:50:00 <FreeFull> 1 is light, 0 is nothing, T is antilight
00:50:30 <pikhq> Reverse the polarity on the laser!
00:50:57 <fizzie> 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 <kmc> quick FreeFull what's the 19th bit of 783F5A4DC562465554807AD8C45D2863
00:51:58 <Bike> least or most significant?
00:52:08 <kmc> middle most significant
00:52:16 <FreeFull> I assumed from the left for some reason
00:52:19 <pikhq> kmc: Which base? :)
00:52:22 -!- sirdancealot7 has joined.
00:52:43 <shachaf> quick kmc what's the 19th bit of 1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011
00:53:12 <FreeFull> Wait, do you count the 0th bit too
00:54:40 <shachaf> Are we *conclusive* that it's either 0 or 1?
00:55:08 <kmc> > "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" !! 19
00:55:13 <shachaf> OK, this is getting to be too much to keep track of.
00:55:25 <kmc> shachaf: the committee votes compromise, the bit will be 0.5
00:55:32 <FreeFull> kmc: That's from the left though
00:55:37 <kmc> > reverse "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" !! 19
00:55:42 <shachaf> > preview (base 2) "1111000001111110101101001001101110001010110001001000110010101010101010010000000011110101101100011000100010111010010100001100011" <&> view (bitAt 19)
00:56:01 <shachaf> > preview (base 2) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 19)
00:56:12 <shachaf> > preview (base 16) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 19)
00:56:21 <shachaf> Hmm, you said 19th bit, not bit 19.
00:56:27 <shachaf> > preview (base 16) "783F5A4DC562465554807AD8C45D2863" <&> view (bitAt 18)
00:56:32 <lambdabot> Functor f => f a -> (a -> b) -> f b
00:56:46 <kmc> :t preview
00:56:47 <lambdabot> MonadReader s m => Getting (First a) s t a b -> m (Maybe a)
00:57:30 <shachaf> > "783F5A4DC562465554807AD8C45D2863" ^? base 16.bitAt 18
00:57:52 <shachaf> @ty \x -> preview (base 16.bitAt 18) x
00:58:58 <shachaf> Bike: admit that's kind of nice!!!!
00:59:26 <lambdabot> Couldn't match expected type `a0 -> b0' with actual type `[t0]'
00:59:37 <lambdabot> Functor f => (a -> b) -> f a -> f b
01:01:09 <lambdabot> s -> Getting (First a) s t a b -> Maybe a
01:01:39 <lambdabot> 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 <lambdabot> 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:02:16 <lambdabot> quicksilver says: <jatqceer> i love them. Double is my friend <quicksilver> You think he is, sure <quicksilver> he says nice things about you <quicksilver> but one day, when your back is turned, he
01:02:16 <lambdabot> will stab you in the back with a mantissa
01:02:21 <lambdabot> sebazzz says: <elpolilla> y venden bulks y esas mierdas <sebazzz> bulks llenos de pastabase
01:02:25 <lambdabot> sioraiocht says: if you made a type class the same name as a type, I'd stab you in the face
01:03:10 <Bike> people sure do like debunking ponies
01:04:08 <kmc> they're not baby horses at all
01:04:09 <kmc> wake up sheeple
01:04:22 <kmc> you just think they're cute because they're small
01:04:28 <kmc> but actually they're expensive and they shit everywhere
01:04:40 <shachaf> cockroaches are both small and cheap
01:04:40 <Bike> it's weird how people don't realize how much shit animals actually involve
01:06:06 <FreeFull> kmc: "they shit everywhere" is in general applicable to most animals
01:06:43 <FreeFull> Bike: A good estimate is to take the amount you yourself shit and multiply that by a thousand
01:07:00 <Bike> yes but people don't realize it! it's baffling. where do you think all that mass goes, people
01:08:56 <kmc> what animal shits the most compared to its body weight
01:09:09 <kmc> maybe pandas
01:09:12 <Phantom_Hoover> the one that eats the most compared to its body weight
01:09:23 <FreeFull> kmc: I'm thinking definitely some herbivore
01:09:42 <kmc> pandas have horrible digestive systems and eat bamboo which has almost no nutritious value
01:09:52 <kmc> Phantom_Hoover
01:10:13 -!- NihilistDandy has joined.
01:10:19 <kmc> 'Shrews typically eat 80–90% of their own body weight in food daily.[citation needed]'
01:10:32 <kmc> i should get a shrew, video tape it for 24 hours, and upload that to wikipedia
01:10:35 <kmc> but that would be original research :(
01:10:59 <Bike> also not very rigorous.
01:14:51 <kmc> Homebrew have now raised £5,176 to buy a Mac Mini
01:24:42 <kmc> Phantom_Hoover: http://mxcl.github.com/homebrew/
01:24:53 <kmc> shachaf: yes, they merged my pull request
01:25:00 <shachaf> People nearby are talking about the key ingredients of a successful startup.
01:25:12 <shachaf> It seems that you need a hacker, a hipster, and a hustler.
01:25:24 <kmc> it's mostly about what kind of coffee you serve
01:25:32 <ais523> shachaf: that's probably not enough by itself
01:25:42 <kmc> preferably you would raise a $250k - $500k angel round and put that all into an espresso machine
01:25:46 <ais523> especially as you might have trouble getting them to work together
01:26:29 <kmc> if you don't have top coffee you can't attract top people
01:26:29 <Bike> like a conman?
01:26:32 <Bike> or uh, conperson
01:26:36 <kmc> and no matter what you're doing, you need olympic-class rockstars to do it
01:26:55 <Bike> do you ever feel bad about how badly treated olympic athletes can be
01:26:57 <kmc> <small>heavy metal is not yet a sport recognized by the IOC</small>
01:27:03 <shachaf> Yes, rock stars have come up.
01:27:19 <kmc> Bike: but for a week every 4 years they get to live in the olympic village and have sex nonstop
01:27:52 <Bike> also did you know that one of the olympic committee chairpeople was an actual nazi sympathizer back in the 50s or 60s
01:28:03 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:28:04 <kmc> olympics is hipster to mainstream american sports
01:28:19 <Phantom_Hoover> he did some ridiculous things but i don't remember what
01:28:19 <kmc> (portlandia did it)
01:28:23 <kmc> Bike: great
01:28:27 <kmc> nazis everywhere
01:28:32 <kmc> clowns to the left of me, nazis to the right
01:28:42 -!- makadon has joined.
01:28:57 -!- DHeadshot has joined.
01:29:06 <Bike> http://en.wikipedia.org/wiki/1968_Olympics_Black_Power_salute ~
01:29:10 * kmc cuts off Phantom_Hoover's ear
01:29:26 <shachaf> now they're talking about "the dunning-kruger effect"
01:29:30 <Bike> huh he was in the 1912 olympics
01:29:51 <Bike> sometimes i think psychology research should be written in code
01:29:55 <kmc> shachaf: what about it
01:30:31 <shachaf> Maybe I shouldn't treat them as Internet people.
01:31:08 -!- stuntaneous has quit (Ping timeout: 255 seconds).
01:31:24 <kmc> 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 <kmc> shachaf: I feel kind of silly because I just realized that http://mxcl.github.com/homebrew/ is only available over unencrypted HTTP
01:35:48 <kmc> but grabbing the ruby script over HTTPS is still an improvement
01:37:06 <kmc> i don't have any use for their software personally
01:37:21 <kmc> but a lot of developers who use macs more or less rely on it
01:38:00 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:38:50 <kmc> 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 <shachaf> "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 <kmc> "God" here means "Paul Graham" right?
01:41:07 <Bike> there's a guy in #lisp who says "I worship Paul Graham" verbatim. it's frightening
01:41:23 <kmc> i thought lispies generally weren't huge fans
01:41:30 <kmc> at least, I have the impression that On Lisp is a controversial book
01:41:38 <Bike> this guy is a noob
01:41:49 <kmc> he really really really likes macros even for things where they are horribly unnecessary
01:41:50 <Bike> it's just weird to see someone literally say that
01:41:59 <kmc> Bike: is it an "i love paul graham, it's so easy" kind of situation
01:42:09 <lambdabot> so why would one prefer haskell to say clisp or smalltalk?
01:42:22 <Bike> 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 <shachaf> haskell/12.12.18:04:52:19 <beaky> paul graham said that lisp is the most powerful language, and that all other languages are blub
01:43:00 <Bike> i really hope he's like twenty at most
01:43:14 <kmc> well if he's twenty and a follower of PG then he has already started at least 3 startups
01:44:03 <shachaf> haskell/13.01.04:11:49:53 <beaky> I've just made a profound discovery
01:44:04 <shachaf> haskell/13.01.04:11:50:13 <beaky> both water and air are monoids :D
01:44:04 <shachaf> haskell/13.01.04:11:51:26 <beaky> maybe ice isn't a monoid though
01:44:04 <shachaf> haskell/13.01.04:11:52:06 <beaky> maybe the vacuum of space
01:44:28 <Bike> profound indeed, sir
01:44:31 <kmc> say what you will about finance industry, at least people admit that they're amoral profit-seekers
01:44:55 <Bike> ehhhhh "job creators"
01:46:41 <Bike> 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 <kmc> yeah i think the bankers have a larger negative real effect on society
01:47:22 <kmc> but the attitude of the startup bubblers may be more socially contemptible
01:47:34 <kmc> acting like you're saving the world by making useless crap to enrich highly privileged people
01:48:22 <Bike> 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:49:03 <kmc> 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 <shachaf> Maybe it's better than doing nothing.
01:53:19 <kmc> idle whining is?
01:53:41 <kmc> 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
02:01:13 <kmc> we're playing the guessing game i guess
02:01:24 <kmc> how far is the nearest caltrain stop
02:03:38 <kmc> git bisect gilroy sf
02:04:15 <kmc> is that stop Palo Alto
02:04:23 <kmc> sorry I mean, is it Palo Alto or north of
02:04:26 <kmc> spoilsport
02:04:39 <kmc> are you going to join this mission from god startup
02:05:12 <shachaf> Now I feel bad about quoting them.
02:08:27 <kmc> did you agree to be their technical confounder
02:09:08 <shachaf> I'm not good at confounding. :-(
02:09:12 <shachaf> monqy is pretty good at it.
02:09:17 <shachaf> "something about galois connections"
02:09:54 <kmc> confound their politics, frustrate their knavish tricks
02:10:29 <shachaf> kmc: how's your startup doing
02:10:35 <kmc> doing pretty well
02:11:32 <kmc> nobody has particularly suggested that we're saving the world
02:11:32 <Bike> the foremost social media platform for complaining about social media platforms
02:11:40 <kmc> isn't that IRC
02:11:47 <shachaf> Not when you're done with it!
02:11:50 <Bike> is that not what you're retroactively designing
02:12:48 -!- ais523 has quit.
02:21:05 <oerjan> see what you did by speaking about retroactive design
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 <kmc> shachaf: i have one problem left on cryptopuzzles part deux
02:48:06 <shachaf> "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 <shachaf> Maybe people just confuse "trivial" with "elementary"?
02:51:02 -!- monqy has joined.
02:52:55 <shachaf> i have yet to find any ties between you and Galois, Inc.
02:53:00 <shachaf> but i'm sure there's something
02:54:12 <kmc> Galois Connection would be a good name for a conspiracy thriller
02:56:53 <shachaf> monqy: ok "change of topic"
02:56:57 <shachaf> do you know things about adjunctions
02:57:28 <monqy> no but i plan to remedy this soon
02:57:51 <monqy> where soon means 'idk maybe in a few months'
02:58:06 <monqy> i have categories for the working mathematician now but do i have time to read it???? the eternal question
02:58:22 <shachaf> monqy: do you know about "kan extensions"
02:59:23 <shachaf> monqy: (and have you read http://www.cs.ox.ac.uk/ralf.hinze/Kan.pdf help)
02:59:47 <shachaf> (actually it looks "pretty readable for someone like me who doesn't know that much about the topic")
02:59:58 <shachaf> (and it has nice diagrams)
03:00:22 <shachaf> (and apparently tomorrow there's going to be a categories and types meeting about it?? help)
03:00:34 <shachaf> (i think i'll go and be clueless)
03:00:44 <monqy> i haven't read it but i'm thinking maybe i will? sometime???
03:01:13 <shachaf> did you see "the pretty pictures"
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 <oerjan> `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:11:12 <kmc> "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 <oerjan> `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:15:23 <oerjan> ok [.-] and [.+] loops work from the inside
03:22:58 <oerjan> `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:26:45 <oerjan> `fueue ):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[64 H]]!][1)[)$%0[)[))$11~<<~:(~:< ]])[):] ]]])] ] [65[65][[50]<:[[52]<:]][[54]<:[[56]<:]]]
03:26:47 <HackEgo> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
03:27:42 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: oerjan: not found
03:27:42 <HackEgo> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
03:27:53 <shachaf> `run echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA > bin/oerjan; chmod +x bin/oerjan
03:28:25 <oerjan> sometimes i am happy shachaf is on another continent.
03:35:03 <kmc> `run perl -e 'print "A" x 350'
03:35:04 <HackEgo> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
03:35:33 <kmc> `file /home/hackbot/hackbot.hg/multibot_cmds/lib/limits
03:35:34 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: Bourne-Again shell script text executable
03:35:38 <kmc> `cat /home/hackbot/hackbot.hg/multibot_cmds/lib/limits
03:35:39 <HackEgo> #!/bin/bash \ ulimit -f 10240 \ ulimit -l 0 \ ulimit -u 128 \ exec -- "$@"
03:36:07 <kmc> insert very topical and relevant mitt romney joke
03:42:12 <shachaf> You know the thing where ESC O m inserts a -?
03:50:08 <kmc> i don't know that thing
03:51:24 <shachaf> 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 <kmc> do you mean as a terminal control code?
03:51:42 <shachaf> Do you not get that in vim?
03:51:45 * kmc consults good old ctlseqs.txt.gz
03:51:51 <shachaf> I vaguely remember that there's a configuration option to turn that off.
03:52:21 <kmc> i still don't follow -- if you hit Esc, then O, then m, you get a -?
03:52:21 <shachaf> ESC O Single Shift Select of G3 Character Set (SS3 is 0x8f). This affects next character only.
03:52:31 <kmc> so what do you do to make vim print one of these?
03:52:54 <shachaf> I press Esc, it "goes out of insert mode".
03:53:02 <shachaf> Then I press O to open a new line above the current one.
03:53:12 <shachaf> And it inserts a - instea.d
03:53:21 <shachaf> (And doesn't make the new line.)
03:53:21 <kmc> i've not seen that happen
03:53:44 <kmc> not in 30 sec of fiddling
03:54:31 <shachaf> It works with other characters than m
03:56:52 <kmc> shachaf: what language(s) are you using for cryptopizzles
03:57:36 <shachaf> Just Ruby (which is what they're using).
03:57:47 <kmc> Just Ruby > Nothing
03:57:49 <shachaf> The people writing the questions.
03:57:59 <shachaf> I was going to use a crazy language but you did that already.
03:58:04 <kmc> only for one problem
03:58:37 <kmc> i considered using Haskell, it would have been pretty good i think
04:02:10 <Sgeo> 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 <shachaf> Depends on the jobs more than the languages, I'd imagine.
04:04:06 <kmc> in my experience that is quite true for popular languages
04:04:08 <kmc> what shachaf said
04:04:45 <kmc> at many jobs, learning a new programming language would be only a small part of the getting up to speed process
04:04:56 <kmc> many employers recognize this
04:05:25 <kmc> it's one thing if you expect deep knowledge of something hard and unusual, like Haskell or C++
04:05:33 <kmc> but if you know Ruby and they want Python, whatever
04:06:02 <kmc> 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 <Sgeo> What sort of language would give me a vantage point such that J looked similar to C?
04:08:58 <Bike> martian, probably
04:10:26 <Bike> what similarities do they have. punctuation. an almost similar notion of functions. representing code in text?
04:11:22 <kmc> i don't know much about J, what are its data types?
04:11:34 <kmc> array, number, character
04:12:00 <kmc> "Computer science is the study of boxes and arrows" -- someone
04:12:06 <kmc> Mark Twain possibly
04:12:16 <Bike> noted computer aphorist
04:15:57 <oerjan> "I never said half the things I said." -- Mark Twain
04:20:54 <pikhq> "Who are you? Why are you exhuming my corpse?"
04:21:44 <oerjan> "I'm sorry, that is a secret." -- George Bernard Shaw
04:34:44 -!- Frooxius has quit (Ping timeout: 255 seconds).
04:46:11 <pikhq> TwilightSpockle: Figured you'd like to know, season 4 confirmed, will be 26 episodes.
04:46:51 <kmc> shachaf: well I think most jobs where you use C++ don't expect deep knowledge of C++
04:47:18 <kmc> 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 <Bike> reminds me of that "deep C" presentation that was going around a while back
04:49:00 <shachaf> I should probably know C++ better than I do.
04:49:16 <kmc> Bike: link?
04:49:29 <kmc> there are definitely some dark corners of C as well
04:49:39 <kmc> what were the strange ones i learned here...
04:49:50 <shachaf> I assume http://www.slideshare.net/olvemaudal/deep-c
04:49:54 <kmc> struct { ...; int x : 0; ...; }
04:50:03 <Bike> yeah, that. i didn't much like the attitude and you probably know all of it anyway
04:50:04 <shachaf> That presentation had some interesting information but some of it was a bit silly.
04:50:10 <shachaf> At least as an interviewing guide.
04:50:10 <pikhq> kmc: Ah, good one.
04:50:38 <Bike> stuff like struct alignment, subtleties of static, side effect order...
04:50:41 <Bike> kmc: what's that do?
04:51:44 <kmc> Bike: forces bitfields after to be in different words or something from bitfields before
04:54:52 <kmc> the other strange syntax i learned here was (C99): void f(int a[*]);
04:56:01 <Bike> uh. i haven't even a guess
04:56:10 <pikhq> Gah, what was that one again?
04:56:36 <kmc> declares that 'a' is a variable-length array
04:56:46 <kmc> whose length will be known by the time the function is actually called
04:57:00 <kmc> you can do things like void f(int n, int a[2*n + 7])
04:57:18 <kmc> but you might not want to duplicate this in your header file
04:57:27 <shachaf> But you can't do int a[static 2*n + 7]), presumably
04:57:30 <kmc> the equation in the header will never be checked for accuracy and it might depend on implementation details
04:57:30 <shachaf> Or however that syntax went.
04:57:37 <kmc> oh i forgot how that thing works
04:57:41 <kmc> that was even weirder
04:58:13 <shachaf> I think foo(int x[static 5]) means that you actually have to have 5 ints at the pointer.
04:58:50 <shachaf> Whereas otherwise it's just a pointer.
04:59:08 <shachaf> So the compiler can dereference any value in x[0-4]
04:59:12 <kmc> ah right yes
04:59:38 <kmc> whereas it's legal to call a foo(int x[]) function with a NULL pointer even, as long as it's never derefed
05:00:58 <shachaf> I think in C++ there are four mostly unrelated meanings of "static".
05:01:40 <kmc> only four?
05:01:53 <Bike> three? C ones plus static members?
05:02:04 <kmc> static members are pretty similar to the C meanings
05:02:54 <kmc> 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 <kmc> you put it in a particular compilation unit with the same storage class as other static stuff
05:03:43 <kmc> maybe that's not that similar
05:03:49 <kmc> it's something that confuses people, anyway
05:04:34 <Bike> everything about static confuses people
05:04:43 <kmc> C++ has static_cast too but i think that doesn't count :)
05:07:00 <kmc> 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 <kmc> it's a jumping off point to talk about a variety of language and OS things
05:07:44 <Bike> 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 <kmc> but it still costs the OS something to zero pages, right?
05:08:13 <Bike> yeah, i'm just thinking of object file size
05:08:28 <Bike> not that that's that important
05:08:28 <kmc> but also the OS needs to zero pages, because they might have someone else's data in them
05:08:59 <pikhq> kmc: Deferred to first write to the page usually.
05:09:02 <pikhq> COW is a powerful thing.
05:09:22 <kmc> Linux actually supports mmap(MAP_UNINITIALIZED) for embedded systems, if you enable it in the kernel config
05:09:25 <kmc> pikhq: yeah, you can talk about that too
05:10:19 <kmc> imo a good interview question isn't about a specific answer, it's a conversation starter
05:10:47 <pikhq> The whole point of an interview, particularly for programming, is to see how the person thinks.
05:11:22 <kmc> 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:52 <pikhq> Unless you want someone who's an expert in mundane trivia of Java.
05:12:12 <kmc> even then, it's a good sign if they are super excited about mundane trivia of Java and volunteer them unprompted ;)
05:12:21 <kmc> there are the super open ended questions like
05:12:29 <kmc> "you type google.com into a web browser and hit enter, what happens"
05:12:43 <kmc> sometimes people start by talking about keyboard switch debouncing
05:13:20 <pikhq> That's a pretty awesome question.
05:18:26 <kmc> i'm not sure about it
05:18:29 <kmc> sometimes it is really tedious
05:18:39 <kmc> but you also get a ton of information
05:18:49 <kmc> both about what the person knows, and about which abstracitons they do and don't think about
05:20:05 <Bike> "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 <pikhq> "Well, first a quark interacts with quark. And then a quark interacts with a quark. And..."
05:21:15 <pikhq> "So finally, the molecule has interacted with the neighboring molecule."
05:21:36 <Bike> "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 <kmc> how about the candidate who writes a powerful short story about a guy who is typing google.com and hits enter
05:31:51 <kmc> shachaf, Bike: that's a good presentation
05:31:54 <kmc> thanks for the link
05:32:00 -!- oklofok has quit (Ping timeout: 252 seconds).
05:32:08 <Bike> glad you liked it more than i did >_>
05:32:14 <kmc> it postulates a kind of dunning-kruger effect for C++
05:32:17 <kmc> Bike: oh, why's that?
05:32:45 <Bike> the author just seemed kind of insufferable, like wow you're so dumb for not knowing this
05:32:48 <Bike> still good info
05:33:19 <kmc> in the slides alone you mean? or at some talk you saw?
05:33:37 <kmc> interesting
05:33:53 <shachaf> I would probably do reasonably well at those sorts of questions, but the interviewer seems rather irritating.
05:34:00 <kmc> any specific examples? the little thought bubbles underneath wrong answer guy's answers?
05:34:15 <Bike> i haven't looked at it in months, let me see
05:35:04 -!- monqy has quit (Quit: hello).
05:36:16 <kmc> imo most of these questions are pretty fair game
05:36:21 <kmc> in terms of being things you do need to know
05:37:59 <Bike> it's stuff you need to know, i'm just whining about some attitude
05:42:33 <kmc> oh i just got the "deep c" pun
05:42:51 <kmc> also slideshare can eat a dick
05:43:21 <Bike> the shark didn't tip you off?
05:43:28 <Bike> well, i guess jaws doesn't take place in the deep sea
05:43:51 <kmc> i didn't get to the shark yet
05:44:03 <Bike> doesn't it start with a shark?
05:44:10 <kmc> is there any way to download a pdf without logging in with Fucking Facebook
05:44:11 <shachaf> It slowed down to the point that I killed it.
05:44:17 <kmc> Bike: it starts with an ROV exploring a wreck i think
05:44:26 <kmc> not that this shouldn't be just as much a tipoff, but i'm dense
05:44:36 <Bike> yeah, on slide three
05:44:52 <Bike> of course you can just ignore those silly starters often, eh
05:45:08 <Bike> before we say anything interesting here are some jpeg artifacts
05:45:24 <kmc> here's an xkcd strip tangentially related to my talk
05:45:32 <kmc> everyone please laugh for the designated 0.3 seconds
05:46:41 <shachaf> kmc: http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf
05:47:16 <kmc> ok slide 389 has some attitude
05:48:16 <Bike> is that what cubicles actually look like, also
05:48:22 <kmc> "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 <kmc> seems unfair to say that people who aren't language experts don't care or aren't 'up to date'
05:48:53 <kmc> maybe they are experts in algorithms, systems, or the problem domain of whatever your company actually does to make money
05:51:09 <kmc> Bike: yes some cubes look like that
05:51:55 <kmc> not a fan of cubes myself
05:52:24 <kmc> seems like the worst of both worlds between a private office and open plan
05:53:00 <kmc> but i think making open plan work depends a lot on the people and the space
05:53:17 <kmc> 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 <FreeFull> 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 <olsner> shachaf: I think the number I've heard was 7 meanings of static
08:41:42 <olsner> (probably 5 more in c++11)
08:42:35 <olsner> curiously, C compilers never ask you to list the possible meanings of static
08:43:03 <shachaf> 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 <shachaf> 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 <ion> 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 <boily> good warm morning!
14:28:05 <boily> it's only -9 °C today!
14:29:11 <Sgeo> Wake me up when it gets below -9 K
14:29:13 <fizzie> I think it was around -5 °C here.
14:29:54 <fizzie> 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 <kmc> shachaf: cool
15:24:11 -!- ais523 has quit (Ping timeout: 255 seconds).
15:37:54 <Taneb> Translating Python to Haskell is even less fun that translating C to Haskell
15:38:28 <TwilightSpockle> All I hear is you saying that C and Haskell are basically the same.
15:38:51 <Jafet> something something C-H isomorphism
15:41:11 -!- ais523 has joined.
15:42:28 <boily> there is a morphism GHC :: Haskell -> C, but what about CoGHC :: C -> Haskell?
15:42:53 <Jafet> something something unnatural transformation
15:44:03 <boily> 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 <Jafet> It's hard to explain, but somewhat like a bad analogy
15:48:18 <Sgeo> This position is asking for "- Extensive experience with API"
15:49:16 <Jafet> You're just not qualified, kid.
15:54:47 -!- augur has quit (Remote host closed the connection).
15:56:10 <Sgeo> "The part of the code that I wasn't particularly involved in was the part that was broken."
15:56:24 <Sgeo> Haven't mentioned that before, it's self aggrandizing, but it's completely true
16:01:43 <Sgeo> "Are you a Hacker?"
16:01:49 <Sgeo> 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:27:39 -!- sebbu has joined.
17:29:00 <Sgeo> I'm pretty much applying for anything that even looks like I somewhat qualify
17:29:25 <kmc> i want to hear more about this "are you a hacker" question out of morbid curiosity
17:29:49 <kmc> also i think your statement is very much not self aggrandizing
17:29:56 <kmc> compared to how a stereotypical macho hacker would put it
17:31:30 -!- ais523 has joined.
17:33:55 <Sgeo> Well in the job description it says "Are you a Hacker? Are you bored in your current position?"
17:34:09 <Sgeo> This is how I responded:
17:34:11 <Sgeo> "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 <kmc> eh job descriptions are bs
17:34:47 <kmc> i wouldn't read too much into it, i'll still make fun of them on the internet tho
17:34:48 <Sgeo> But there's this form to fill out with several questions and "Are you a Hacker?" was one
17:43:44 <Sgeo> Writing code while sleep-deprived. Good idea or great idea?
17:44:52 -!- ogrom has joined.
17:45:24 <Sgeo> meh, too lazy to get emacs working. How bad can writing lisp code without paredit be?
17:46:50 <ais523> Sgeo: it works surprisingly well, actually
17:47:06 <ais523> also, the current Emacs installer from Windows works really smoothly on Vista and later
17:47:16 <ais523> if you install into your home directory
17:47:29 * Sgeo is on Linux right now
17:52:33 <Sgeo> It's really just a little bit of code
17:52:45 <Sgeo> The meat is going to be copy/pasted and modified from clojure.core really
17:55:18 <ais523> Sgeo: can't you just apt-get install emacs?
17:55:25 <Sgeo> Emacs is installed
17:55:30 <Sgeo> I don't feel like configuring it
17:56:10 <ais523> 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 <elliott> ais523: can't you just install f.lux or something
17:56:42 <ais523> elliott: without an internet connection?
17:56:54 <elliott> ais523: you appear to have an internet connection
17:56:57 <elliott> and also, the ability to install emacs
17:57:01 <elliott> I conclude you have the ability to install f.lux
17:57:15 <ais523> I installed Emacs by downloading it on Linux and saving it to the Windows partition
17:57:26 <ais523> that doesn't work for everything (e.g. it doesn't work for Cygwin)
17:57:48 <ais523> also, I dislike installing software except from repositories
17:58:13 <elliott> there is a Debian repository
17:58:17 <elliott> can't exactly offer a Windows repository
17:58:26 <elliott> (well, an Ubuntu PPA, but I suspect the package works on Debian)
17:58:37 <ais523> actually Windows 8 has a repository
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 <Sgeo> 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 <Sgeo> 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 <ais523> Sgeo: if only it were always that easy to work out which language to use :)
18:21:23 <Sgeo> If it's not obvious, I tend to resort to Python. This has been a mistake at least once.
18:24:33 <elliott> 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 <Sgeo> 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 <elliott> 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 <boily> then you need a configuration file to change the syntax for your particular project.
18:29:21 <ais523> also, what languages /look/ like is mostly irrelevant
18:29:36 <Sgeo> "look like" was a bad turn of phrase
18:29:36 <ais523> elliott: oh, btw, I discovered what the theoretical computer science definition of "haskell" seems to be
18:29:44 <ais523> it's like the theoretical computer science definition of "algol", except call-by-need
18:29:58 <ais523> and my brain was flashing alarms "you can't do that"
18:30:53 <elliott> Sgeo: what if you're wrong about what properties it should have
18:31:18 <ais523> elliott: Haskell and Algol aren't just the same language with different calling conventions, right?
18:31:24 <Sgeo> 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 <ais523> because I'm starding to doubt myself
18:31:55 <Sgeo> I mean, as I've learned, my tastes have changed
18:31:56 <elliott> Sgeo: that doesn't seem hard to believe
18:32:32 -!- Bike has joined.
18:32:37 <elliott> 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 <elliott> and likely many urneasonable ones too
18:33:44 <ais523> elliott: it's sort-of hard to make well-defined statements about languages
18:33:59 <ais523> pretty much the only one I've found that's usually uncontroversial is "language X is statically/dynamically typed"
18:34:11 <elliott> that's incredibly controversial
18:34:21 <elliott> ais523: re Haskell and Algol: depends what you mean by Haskell and Algol
18:34:26 <ais523> there's a lot of controversy in which is better
18:34:34 <ais523> this seems to be a weird CS definition I wasn't previously aware of
18:34:37 <elliott> 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 <Sgeo> "X is either statically or dynamically typed" is not true for all X
18:34:57 <elliott> 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 <ais523> elliott: yeah, algol 60 is like 53 years old at this point
18:35:06 <elliott> Verity resembles Haskell much more than Algol to me
18:35:10 <ais523> elliott: it's not me who called it Algol
18:35:17 <elliott> ais523: yes, but you still call it that :)
18:35:26 <ais523> 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 <ais523> the syntax is mostly inspired by C, but you can only get /so/ C-like and still remain usably higher-order
18:36:35 <ais523> and the rest is a mix of OCaml and Haskell and mathematical notation
18:38:18 <boily> I miss the good old days of having a special keyboard taylored to your language of choice.
18:38:32 <boily> (I miss them in the sense that I haven't had the chance to experience them first hand.)
18:39:08 <ais523> boily: good news, Agda exists!
18:39:23 <elliott> unfortunately Agda comes with an emacs mode
18:42:43 <Bike> fortress exists~
18:42:54 <boily> not only there is no God, but try to find an APL keyboard on Sunday.
18:44:01 <elliott> fortress sort of stopped existing
18:44:12 <elliott> `addquote <boily> not only there is no God, but try to find an APL keyboard on Sunday.
18:44:18 <HackEgo> 954) <boily> not only there is no God, but try to find an APL keyboard on Sunday.
18:44:30 <ais523> that looks like a fungot quote to me
18:44:30 <fungot> ais523: there! there it is!
18:44:42 <Bike> elliott: unlike apl
18:45:09 <boily> ais523: *polite cough* I believe I'm slightly more decoherent than fungot to be considered quoting him.
18:45:10 <fungot> boily: must think of a way to the ocean palace?
18:45:31 <boily> see, fungot makes much more sense than I.
18:45:31 <fungot> 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 <ais523> this has got to be chrono trigger style, right?
18:45:55 <fungot> 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:46:09 <kmc> "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 <kmc> good thing we all have dedicated... oh wait
18:46:22 <boily> ais523: sorry, my French's slipping. please wait for a moment while I try to find a proper translation... ♪background muzak♪
18:46:27 <coppro> why doesn't fungot have a esoteric style?
18:46:27 <fungot> coppro: there! there it is! but by the time we're through with you, you'll be in danger. open hatch.
18:46:28 <kmc> is this the era of buying an EC2 machine to attack another EC2 machine?
18:46:49 <ais523> which is mostly based on #esoteric logs
18:46:59 <ais523> I guess an esowki style would be interesting
18:47:03 <elliott> ais523: #scheme too and stuff
18:47:09 <ais523> and updating it takes a lot of manual work for fizzie
18:47:10 <elliott> in fact probably the #scheme logs outweigh #esoteric
18:47:12 <ais523> so probably not very often
18:47:23 <boily> ais523: incoherent, says I. probably.
18:47:28 <coppro> I want a markov chain on 10 decades of this channel
18:47:45 <kmc> I want a markov chain on 10 octaves of this channel
18:47:48 <coppro> whate are ic, iwcs, pa, ss, sms, and speeches?
18:47:56 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
18:48:05 <kmc> fungot: dongs
18:48:05 <fungot> kmc: who pissed in your cheerios? honestly? i wouldn't even tell anybody.
18:48:18 <boily> I want a markov chain on 10 markov chains of this channel.
18:48:19 <ais523> OK, that's a good quote
18:48:35 <ais523> don't worry, I won't report them for contaminating your breakfast
18:48:37 <fungot> Selected style: ss (Shakespeare's writings)
18:48:40 <fungot> Selected style: sms (National University of Singapore SMS corpus, 2011-08-20)
18:48:42 <ais523> boily: there's fungot style
18:48:42 <fungot> ais523: up to dadar studio. see whether she know your mother also... wahahah :)
18:48:44 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
18:48:50 <fungot> Selected style: ic (INTERCAL manual)
18:48:55 <fungot> 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:05 <fungot> Selected style: iwcs (Irregular Webcomic scripts)
18:49:13 <fungot> Selected style: fisher (Fisher corpus of transcribed telephone conversations)
18:49:46 -!- carado has joined.
18:49:56 <kmc> ooh can we get the enron corpus too
18:50:02 <Bike> http://www.penny-arcade.com/comic/2001/03/14 i don't get it
18:50:42 <boily> while we're at it, maybe the calgary/canterbury corpuses too.
18:52:18 <fizzie> I think the Enron email dataset was suggested.
18:53:01 <kmc> when my friends were working on a startup making software for legal discovery, that was what they used for their demo
18:53:12 <kmc> apparently it is the standard corpus in email-related NLP
18:54:18 <boily> wait... there's a fungot style?
18:54:18 <fungot> boily: i agree with you just really
18:54:27 <fizzie> Yes, I think it is pretty popular.
18:54:32 -!- ogrom has quit (Quit: Left).
18:54:39 <fungot> Selected style: fungot (What I've said myself)
18:54:46 <boily> fungot fungot fungot?
18:54:46 <fungot> 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:12 <fungot> 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 <Phantom_Hoover> he hasn't said 'that sword alone can't stop' or 'anmaster no not markov' even once
18:55:40 <fungot> Phantom_Hoover:. i'm so kind, even to assholes! anmaster no not markov anmaster no not markov
18:56:07 <fizzie> Under some assumptions, the "fungot" style is a simple weighted sum of all the other styles.
18:56:07 <fungot> 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:26 <HackEgo> 578) <fungot> 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 <fizzie> (The assumptions aren't true, though.)
18:57:09 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
18:57:23 <coppro> fungot: is this a weighted sum of other styles
18:57:23 <fungot> 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 <fungot> 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 <ais523> fungot: how do you do the invocation ritual?
18:57:34 <fungot> 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 <ais523> "some say that no one notices the junk underneath a boulder is probably beneath you"
18:57:49 <fungot> is523k52Ϳnffjliated/ais523: ever tried reading while confused?
18:57:52 <ais523> "you are probably on top of the boulder"
18:57:54 <boily> i'a i'a anmaster no not markov!
18:58:06 <ais523> <fungot> Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused?
18:58:06 <fungot> 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 <ais523> I don't think it's meant to do that at all
18:58:16 <boily> ais523: your true form being revealed to us mere mortals.
18:58:23 <ais523> it looks like a corrupted version of my nick/username/etc
18:58:44 <ais523> fizzie: <fungot> Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused?
18:58:44 <fungot> 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 <fizzie> ais523: That seems very confused indeed.
18:59:06 <ais523> boily: that's probably a bad idea, my true form is depressingly similar to my normal form
18:59:20 <ais523> fizzie: yeah, I don't think it's meant to do that
18:59:25 <ais523> actually, I'll `addquote it
18:59:33 <ais523> `addquote <fungot> Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused?
18:59:33 <fungot> ais523: you're going into the surrounding walls and ceilings of the three gorgons or graeae, is not bad luck.
18:59:37 <HackEgo> 955) <fungot> Áis523ÎkËÇÏ52Í¿ÉnÐffjliated/ais523: ever tried reading while confused?
19:00:00 <fizzie> I kind of like the nethack style, except it's perhaps a bit too ungrammatic often.
19:00:12 <fizzie> fungot: Do you play a lot of NetHack?
19:00:12 <fungot> 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:52 <boily> and or eldritch. feeding and growth occur. bletch.
19:02:12 <fizzie> fungot: Do you have a GRIMoire? Is it GRIM?
19:02:12 <fungot> fizzie: polymorph into an unknown being. a well-known tropical predator ( _panthera onca_) is a rewarding experience!
19:02:45 <boily> fungot: how many replies, until you invoke tentacles from outer dimensions?
19:02:45 <fungot> boily: they say that fortune cookies are food for thought.
19:03:06 <kmc> http://j.mp/cpp11ref <--- nice overview of new C++11 stuff
19:03:43 <ais523> fizzie: genuine amulets of yendor are kind-of valuable, though
19:03:47 <ais523> an end to the grimness
19:05:19 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
19:05:31 <fizzie> 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 <kmc> fungot: are you an animorph
19:26:55 <fungot> 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 <Taneb> Help I'm learning C again
19:37:13 <kmc> how's that going
19:38:03 <Taneb> 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 <kmc> seems reasonable
19:41:24 <kmc> do you want style advice
19:41:45 <elliott> style advice don't use pastebin.com
19:41:53 <kmc> yes that as well
19:42:17 <kmc> maybe the people who don't hate pastebin.com are all people with adblock
19:42:32 <kmc> it's still bad tho even aside from the ads
19:45:25 <Taneb> I switched to pastebin because hpaste was blocked for someone in another channel?
19:45:54 <kmc> codepad and gist are both fine
19:45:58 <monqy> i use sprunge??? i like sprunge
19:46:01 <kmc> (was that yes re: style advice?)
19:46:42 <kmc> i would do "int a=0, c=0, g=0, t=0;" since they're all zero
19:46:53 <kmc> also i like to use C99 in which case you can do "for (int i = ...)"
19:47:48 <kmc> instead of reading into a buffer, you could use getchar() (and count on stdin input buffering to make it perform acceptably)
19:48:25 <Taneb> kmc, I know the maximum length of input
19:48:37 <kmc> sure, it might be simpler code though
19:48:51 <kmc> 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 <boily> 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 <Sgeo> So, interviewer claimed that it's likely that I'm going to get an interview
20:03:15 <Sgeo> Either tomorrow or next week
20:03:26 <Sgeo> I can live with .NET
20:06:10 <Bike> next week dot net
20:07:03 <ais523> 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:34 <ais523> VB.NET isn't as bad as previous BASICs
20:26:41 <ais523> it's basicaly C# with a stupid syntax
20:26:44 <ais523> and syntax is mostly unimportant
20:28:08 <Sgeo> It's C#, I don't know why I only mentioned the .NET part of it
20:28:44 <ais523> and C# is basically Java with some extra dubious features added in, and different but mostly similar libraries
20:30:18 <ion> i love lambdas
20:30:20 <ion> they are so easy
20:30:59 <Sgeo> Those dubious features turn an unbearable language into a bearable one
20:31:21 <Sgeo> (maybe I'm hasty in calling Java unbearable?)
20:31:57 <Bike> if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading
20:32:21 <ais523> Sgeo: C# is unbearable in its own way :)
20:33:02 <FreeFull> If it doesn't have first-class functions then I'm not sold
20:33:38 <elliott> FreeFull: C# has first-class functions
20:33:42 <Taneb> VB.NET 2008 onwards has first-class functions
20:33:46 <FreeFull> And first-class objects aren't a good substitute
20:33:49 <elliott> FreeFull: C# has first-class functions
20:34:49 <boily> 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 <FreeFull> I also like having a good type system
20:36:11 <oerjan> `addquote <Bike> if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading
20:36:14 <HackEgo> 956) <Bike> if you say "java" three times to a dark mirror does steele come out and lecture you about operator overloading
20:36:41 <ais523> boily: java has first class objects, and second class classes, which can contain third class methods ;)
20:36:45 <Sgeo> I think .NET doesn't do type erasure
20:37:05 <Sgeo> Which means more information at runtime, which is unrelated to the quality of the typesystem
20:38:02 <ais523> type erasure is a nasty backwards-compatibility thing, which fortunately tends not to matter too much in practice
20:38:57 <elliott> type erasure is kind of a red herring, the real problem is that java doesn't understand variance!
20:39:24 <elliott> in fact if you can do type erasure you probably should...
20:40:10 <ais523> elliott: java attempts to understand variance, it's just broken
20:40:26 <ais523> you can express covariant and contravariant generic types
20:40:38 <ais523> just for whatever reason, it never actually seems to help
20:40:54 <FreeFull> If you say java to a mirror three times, the mirror gets coated in boilerplate
20:40:57 <olsner> I think they added it but forgot to use it
20:41:58 <olsner> and since nothing in the library has the variance it should have you pretty much never get to use it either
20:42:27 <ais523> are the variances in the libraries actually just chosen at random?
20:42:30 <elliott> ais523: doesn't help that mutability makes variance harder
20:42:32 <ais523> or are there reasons behind some of them?
20:42:58 <ais523> especially mutability via pointers into return values
20:43:18 <elliott> when I figured out variance, I realised why every programming language was crazy
20:43:35 <ais523> elliott: Verity's compiler understands variance
20:43:36 <Bike> that's a lot of languages
20:43:48 <ais523> although it doesn't actually have polymorphism, so the variance control happens entirely internally
20:44:10 <Bike> (huh, the etymology of "boilerplate" is neat)
20:45:12 <elliott> ais523: fun fact: apparently, Eiffel treats function parameters as _covariant_
20:45:23 <elliott> apparently the answer to "how does this work?" is "it doesn't"
20:45:26 <ais523> elliott: someone else told me that fun fact recently
20:45:28 -!- david_werecat has joined.
20:45:39 <ais523> my reaction was "are covariant function parameters actually useful for anything?"
20:45:45 <ais523> elliott: not sure, perhaps
20:46:02 <elliott> well, you could call an output parameter a "covariant function parameter"
20:46:21 <Bike> FreeFull: plates from steel boilers were repurposed as letterplates for printing presses at newspapers
20:46:22 <ais523> hmm, yeah, that's a good point
20:46:39 <elliott> but that'd just be calling something more reasonable by the same name as something terrible
20:47:13 <ais523> elliott: now I want to make an esolang called Hitler :(
20:47:23 <ais523> probably a bad idea though
20:47:39 <FreeFull> ais523: How do you code in it? Repurposed Indian symbols?
20:47:44 <Bike> just use some other dictator, i'm sure noone will notice
20:47:54 <elliott> ais523: are you saying esolangs are reasonable?
20:48:00 <ais523> I'll stick to more useful esolangs
20:48:14 <ais523> I may never invent anything else as good as Underload, but I can try
20:48:16 <FreeFull> You could make haskell but better
20:48:28 <elliott> (PSA: making esolangs with names that make me want to delete the page about them is bad for your health)
20:48:39 <FreeFull> Strip out the laziness, and all the fancy syntax
20:49:14 <FreeFull> And instead of having most functions be pure, make ALL functions impure
20:49:26 <FreeFull> Every function has a side-effect, even if you don't want it to
20:49:31 <ais523> FreeFull: that's "haskell but better"?
20:49:32 <elliott> ais523: I think Eodermdrome is your third-best esolang
20:49:37 <ais523> or just "haskell but esoer"?
20:49:40 <ais523> elliott: what's the second-best?
20:49:52 <ais523> so what's the best then?
20:50:06 -!- WeThePeople has joined.
20:50:07 <elliott> 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 <ais523> yeah, I like Eodermdrome too, despite the utter lack of practicality
20:50:14 <olsner> FreeFull: instead of stripping out laziness, put side effects in the thunks
20:50:22 <ais523> elliott: oh, I forgot about Feather
20:50:26 <ais523> (actually genuinely forgot)
20:50:47 <olsner> i.e. haskell with implicit unsafePerformIO
20:50:50 <FreeFull> olsner: Make seq only work half of the time too
20:50:55 <elliott> removing non-strictness would make Haskell worse
20:50:57 <Bike> 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 <elliott> you'd lose basic composability
20:51:16 <ais523> 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 <ais523> and it takes me like a minute to remember the rules, even if I try
20:51:35 <ais523> normally I get bored by then
20:51:39 <Bike> elliott: are you sure that's the name rather than the everything else
20:51:44 <elliott> I think "Most ever Brainfuckiest Fuck you Brain fucker Fuck" is an underappreciated esolang name
20:51:53 <ais523> indeed, it's a good esolang too
20:52:25 <ais523> 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 <elliott> hey guys remember http://esolangs.org/wiki/Object_(programming_language)
20:52:37 <elliott> and also, all the other languages that guy made
20:52:38 <olsner> single sentence afaict
20:52:44 <ais523> olsner: yeah but it's a run-on sentence
20:52:48 <elliott> ais523: http://esolangs.org/wiki/Parnassus ?
20:52:53 <elliott> it's the syntax highlighting that makes them memorable
20:53:10 <elliott> hmm, I should make that esolang I was going to
20:53:15 <elliott> where it's based around overlapping brackets
20:53:16 <ais523> Parnassus isn't exactly syntax highlighted
20:53:24 <ais523> the comment is in an almost unreadable shade of pink
20:53:30 <ais523> but apart from that it's all the same color and font
20:53:47 <Bike> so is Object a shitty parody of Java, is that what I'm looking at here
20:53:51 <ais523> elliott: INTERCAL allows scopes that don't nest correctly
20:54:00 <ais523> 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 <elliott> ais523: by overlapping, I mean (ab[cd)ef]
20:54:15 <oerjan> we shall just have to make the Ëơđëřmđřơmë dialect, which has a large enough alphabet to be practical.
20:54:17 <ais523> elliott: yeah, I mean that too
20:54:22 <elliott> I'm not quite sure how the language will use those to compute
20:54:27 <ais523> and may even have used that syntax to explain the concept to you, al ong time ago
20:54:43 <ais523> oerjan: I think Eodermdrome has a large enough alphabet to be TC
20:54:46 <ais523> although I don't actually /know/
20:54:50 <elliott> maybe it works by rewriting the program to have brackets balanced in a normal manner
20:54:59 <boily> had to refresh my memory of Feather. now I remember why I retroactively forgot about it.
20:55:02 <elliott> and that involves shuffling them around in a way that's TC
20:55:09 <elliott> the problem is, the overlapping has to actually be interesting
20:55:14 <elliott> not just a syntactic veneer
20:55:37 <ais523> hey, one of my better languages I never even put on the esowiki
20:55:46 <ais523> its name started Sh, let me look up the rest of it
20:55:58 -!- atriq has changed nick to Taneb.
20:55:59 <elliott> also, I don't know what goes between the brackets
20:56:00 <oerjan> <elliott> Bike: "Esme" <-- are you saying that would be a bad name if it had otherwise been an interesting language?
20:56:15 <elliott> possibly primitives, possibly arbitrary text (that gets outputted?)
20:56:20 <ais523> elliott: it seems I don't have a spec, but I do have an interp
20:56:48 <ais523> http://sprunge.us/YaOJ
20:57:00 <Taneb> I still have the spec for my first ever esolang lying about somewhere
20:57:23 <Taneb> It's an Ook! derivative
20:57:32 <Bike> that sounds worse
20:57:41 <ais523> it's slightly more creative, I think?
20:57:47 <boily> by transitivity, it is a BF derivative too.
20:57:52 <elliott> an Ook! derivative is the kind of thing the wiki should have
20:58:01 <Vorpal> I should make an underload derivative, nobody would expect that.
20:58:04 <elliott> like, it should just be a BF derivative
20:58:06 <ais523> elliott: Shove is TC, I think; you can compile Underload into it
20:58:07 <elliott> but claimed as an Ook! derivative
20:58:13 <Taneb> elliott, should I dig out the specs for it?
20:58:23 <elliott> for this to work, it'd have to be a trivial equivalent that replaces all the operations with something else
20:58:29 <ais523> also, Sprunge's syntax highlighting can't handle tr///, it seems
20:58:35 <elliott> and also, for the joke to work, the something else should be not related to "Ook!", I think
20:58:40 <ais523> elliott: it should be BF-like
20:58:46 <Taneb> Okay, this is more along the lines of "Ook! with more commands"
20:58:47 <ais523> but possibly with slightly different commands
20:58:51 <Vorpal> elliott, you should find all trivial derivatives of brainfuck on the wiki and arrange them in a chain
20:58:51 <elliott> there is already a "Moo!" or something I think
20:59:09 <Taneb> I wrote a blog post about it
20:59:18 <oerjan> <ais523> 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 <elliott> ais523: people who make BF derivatives don't believe Unicode exists
20:59:31 <Taneb> By which I mean, Phantom_Hoover wrote a blog post about it
20:59:37 <ais523> actually, /is/ Eodermdrome TC? Or is it just curly-L?
20:59:45 <Vorpal> 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 <ais523> elliott: all those characters are in CP343
20:59:56 <Vorpal> elliott, do that on the 1st of April
21:00:12 <elliott> Vorpal: that sounds like a pain
21:00:21 <Vorpal> a lot of work involved
21:00:23 <elliott> hmm, we could vandalise our brainfuck article to claim it's a [terrible BF derivative] derivative
21:00:30 <elliott> that would be marginally funny
21:00:36 <Taneb> It's an Ellipsis derivative
21:00:39 <ais523> anyway, the way Shove works, is it has an Underload-like stack, and a 2D playfield
21:00:45 <Vorpal> elliott, yeah that is less work but still okay for 1 April
21:00:54 <ais523> it has instructions to change the direction of execution
21:01:27 <ais523> 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 <Vorpal> ais523, inspired by befunge?
21:01:43 <Vorpal> ais523, does it allow self modification?
21:01:52 <ais523> 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 <ais523> it's somewhere between Befunge and Underload
21:02:02 <ais523> and yeah, self-modification is required
21:02:03 <Vorpal> ais523, also what is the intercal style of nesting " and '
21:02:36 <ais523> 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:52 <ais523> but Shove's grammar isn't complex enough for that, so it's strictly alternating
21:03:05 <ais523> Vorpal: that is the actual definition, and what's implemented into the compiler :)
21:03:20 <Vorpal> ais523, ouch, that sounds painful
21:03:21 <ais523> so you can do something like '#1~'#1~#1''
21:03:36 <ais523> the only time it really matters which of ' or " you use is in array indexing
21:03:53 <Vorpal> ais523, is this the thing that makes the parser LR(inf) iirc?
21:04:01 <ais523> 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 <ais523> 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 <ais523> CLC-INTERCAL, of course, just parses the LR(infinity) language
21:04:46 <ais523> (it'd be entirely out of character for it not to)
21:04:46 <elliott> I forget the restriction, but I remember hating it
21:04:58 <Vorpal> ais523, I thought you used some LR(inf) bison extension?
21:05:22 <Vorpal> must have confused it with CLC
21:05:29 <ais523> 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 <Vorpal> ais523, anyway, how do you manage parsing LR(inf)?
21:05:38 <ais523> Vorpal: I don't use GLR; CLC doesn't either, I think it uses backtracking
21:05:56 <ais523> the LR(inf) bison extension
21:06:04 <ais523> actually, CLC-INTERCAL's parser is written entirely in CLC-INTERCAL
21:06:09 <ais523> which makes it very hard to follow
21:06:15 <oerjan> <Vorpal> 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:26 <Vorpal> oerjan, I know, that was the joke
21:06:49 <Taneb> Fueue is very much inspired by Underload
21:06:51 <Vorpal> oerjan, actually I only knew about the first
21:06:54 <ais523> I should look at Fueue some time
21:06:55 <Vorpal> oerjan, not the second one
21:07:29 <ais523> " 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 <Vorpal> hm, I should make Befunge-98 EE
21:07:33 <ais523> Taneb: that's genius :)
21:07:51 <Taneb> ais523, it's marvellously hideous to program with
21:08:01 <Taneb> I think only one person has written programs in it
21:08:07 <Taneb> And that person is oerjan
21:08:09 <ais523> it's like Thutu's I/O, but at least three steps more evil
21:08:17 <Vorpal> Taneb, how many times is that
21:08:23 <ais523> in Thutu, you merely have to turn your entire program inside-out
21:08:25 <Taneb> Vorpal, [length of stack]
21:08:32 <ais523> which is at least a mechanical translation
21:08:37 <ais523> Taneb: *[length of queue]
21:08:43 <Taneb> [length of thingy]
21:09:39 <Vorpal> 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 <ais523> Vorpal: I haven't seen I/O so brilliantly bad in a while
21:10:08 <ais523> Taneb deserves a reward for that
21:10:11 <Vorpal> ais523, is this even capable of general IO?
21:10:20 <Vorpal> lets call that BF-complete
21:10:23 <fizzie> fungot: Give Taneb a reward.
21:10:23 <fungot> 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:41 <ais523> the main issue is just constructing a program state that locks up and accepts input
21:10:50 <fizzie> Taneb: Your reward sounds a bit iffy, you might opt out of that.
21:10:51 <ais523> and does something useful afterwards
21:10:55 <ais523> getting to that state probably isn't so hard
21:11:05 <Vorpal> ais523, getting out of it sounds annoying
21:11:42 <Vorpal> "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:12:04 <Taneb> (is that where "cat" comes from?)
21:12:06 <ais523> anyway, I approve of Fueue
21:12:15 <ais523> I wouldn't call it an Underload derivative, more an Underload-inspired language
21:12:20 <oerjan> <ais523> 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 <Vorpal> Taneb, it's function is to concatenate files
21:12:34 <ais523> I like curly-L, anyway, it's actually well-defined
21:12:37 <Vorpal> Taneb, not to just copy stdin to stdout
21:12:48 <Taneb> Learn something every day
21:12:53 <ais523> also, doesn't Eodermdrome /have/ input?
21:13:34 <Vorpal> ais523, which one is curly-L?
21:13:58 <ais523> Vorpal: capable of expressing at least one interpreter for a TC language
21:14:15 <ais523> it doesn't need to be able to do anything else
21:14:24 <Vorpal> ais523, hm, wouldn't that imply the language is itself TC?
21:14:25 <ais523> and it seems to be a philosophical problem whether it's equivalent to TC or not
21:15:01 <Vorpal> ais523, even the pathological case of @ = execute bf interpreter and quit could be argued to the TC
21:15:23 <ais523> yeah, it's curly-L pretty much by definition
21:15:26 <Vorpal> ais523, speaking of which, is that the math-curly L symbol we are talking about here
21:15:33 <ais523> http://esolangs.org/wiki/%E2%84%92
21:15:35 <Vorpal> and then, why that symbol
21:15:43 <ais523> and because cpressey chose it
21:15:48 <ais523> and cpressey is the best esolanger at naming things
21:15:56 <ais523> so you don't really want to argue with him/her
21:16:57 <Vorpal> ais523, I was pretty sure it was a him?
21:17:04 <Vorpal> though I could of course be wrong
21:17:10 <ais523> Vorpal: well Chris is a gender-ambiguous name, and I've never met them
21:17:42 <Vorpal> elliott, yes, I'm the evil twin of Vorpal, having taken over his computer while he didn't look.
21:17:45 <ais523> 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 <elliott> Vorpal: have you figured out how to make his scrollback bigger?
21:18:50 <ais523> elliott: btw, I'm having Vorpal-like scrollback trouble on occasion
21:18:57 <Vorpal> elliott, alas, I hacked the bouncer, not the client proper
21:19:02 <ais523> Konversation's scope for bizarre typos has apparently expanded to include one that clears my scrollback
21:19:15 <boily> 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 <ais523> boily: he doesn't really enjoy being here, and I don't really blame him
21:19:41 <Vorpal> boily, I'd say it is a .5/.5 chance
21:19:51 <Taneb> Vorpal, so, certain?
21:19:52 <ais523> also he's sort-of permanently RL busy
21:20:02 <ais523> like me nowadays, except I come here anyway ;)
21:20:07 <ais523> haven't really worked on actual esolanging for a while, though
21:20:16 <elliott> ais523: I thought cpressey just left because it was a timesink
21:20:22 <ais523> I'd like to, but Anarchy and Underlambda are both lots of work
21:20:22 <elliott> though him hating us also seems perfectly likely
21:20:25 <Vorpal> ais523, that is of course an excellent time to start implementing Feather?
21:20:27 <ais523> elliott: that's what I meant, I just didn't say it
21:20:34 <ais523> Vorpal: Feather is even /more/ of a timesink
21:20:40 <elliott> boily: the last time he was in here was as ZOMGMODULES I think
21:20:48 <elliott> maybe he'll come again next time he goes to pycon
21:20:59 <Vorpal> elliott, that is a thing?
21:21:12 <oerjan> <Vorpal> ais523, getting out of it sounds annoying <-- yep it is.
21:21:12 <Vorpal> well it only makes sense
21:21:13 <ais523> Vorpal: why /wouldn't/ python have conferences?
21:21:14 <elliott> not exactly sure how this is remotely surprising
21:21:22 <Vorpal> oerjan, how do you do it?
21:21:43 <Vorpal> somehow I just never imaged it being a thing
21:21:52 <Vorpal> I doubt there is a shell-script con though
21:22:00 <ais523> Vorpal: are you surprised at Perl having conferences too?
21:22:12 <Vorpal> ais523, hm less so than python in fact
21:22:23 <Vorpal> ais523, and I would bet the ruby guys have one
21:22:43 <Vorpal> anyway there totally needs to be TECOCON
21:22:53 <ais523> does anyone actually use TECO nowadays?
21:23:09 <Vorpal> come on, make it a reality
21:24:00 <ais523> elliott: just looking at the main page
21:24:04 <boily> my betterave was once compared to TECO. that was one of my proudest moments.
21:24:09 <ais523> what's the standard example of a "just plain weird" language?
21:24:20 <Vorpal> boily, what is betterave
21:24:24 <ais523> INTERCAL aims to be unique, and Malbolge for being difficult to program in
21:24:27 <ais523> elliott: OK, that'll do
21:24:34 <ais523> what's the correct case for esme, anyway?
21:24:36 <boily> Vorpal: http://esolangs.org/wiki/Betterave
21:24:44 <ais523> titlecase? all-uppercase? brainfuck-case? lowercase?
21:24:55 <Vorpal> elliott, esme is a joke lang though
21:25:16 <ais523> my own personal theory was that it was created to troll zzo38
21:26:04 <ais523> Vorpal: think about it
21:26:06 <oerjan> 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:29 <Vorpal> oerjan, sec, need to load up the page again
21:27:02 <fizzie> There's also a Rails conference, I'm pretty sure.
21:27:04 <Vorpal> oerjan, oh yeah that *is* clever
21:27:18 <kmc> shachaf: apparently C++ guarantees static_cast<Foo*>(NULL) == NULL
21:27:24 <fizzie> And EuroForth is still being arranged, and is the most prestigious of the big international Forth conferences.
21:27:34 <fizzie> (I don't know if there are any other that count.)
21:27:42 <ais523> 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 <boily> there are *multiple* forth conferences?
21:27:47 <Vorpal> boily, hm, close but not quite like TECO
21:27:47 <kmc> so in cases where static_cast needs to apply an offset (multiple inheritance) it has to include a NULL check
21:27:59 <Vorpal> boily, too easy to read
21:28:16 <boily> Vorpal: I know, I was young and naïf.
21:28:17 <Vorpal> boily, reminds me more of dc
21:28:33 <Vorpal> boily, which is childs play to code in of corse
21:28:43 <ais523> people normally just write it "naive", but in #esoteric we know better :)
21:29:03 <boily> ais523: as a French speaker, I have a hard time describing myself as «naïve», as it is feminine.
21:29:19 <ais523> boily: yeah, but English almost doesn't have grammatical gender
21:29:32 <fizzie> Also: EuroForth is a three-day conference, but then immediately after there's a "4th-day".
21:29:49 <boily> ais523: I'm not a ship, therefore I am not feminine. QED.
21:30:11 <ais523> boily: but there's only one form of the adjective in English
21:30:20 <ais523> which applies to all of masculine, feminine, and neuter
21:30:27 <ais523> (except with neuter, some anthropomorphising is required)
21:30:29 <Vorpal> fizzie, oh? What do they do then
21:30:57 <fizzie> 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 <boily> ais523: don't burst my bubble of broken English :p
21:31:40 <fizzie> "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:24 -!- impomatic has quit (Quit: impomatic).
21:32:31 <Taneb> Fueue is the language I'm most proud of
21:32:36 <ais523> olsner: with a name like "forth", accidental puns are reasonably inevitable
21:32:37 <Taneb> (although I still prefer Luigi)
21:32:43 <ais523> (although the name itself was an intentional pun, IIRC)
21:33:37 <Taneb> elliott, can I be a wiki admin so I can do featured language stuff?
21:33:47 <ais523> hmm… if we had an esoteric language called "accidentally"
21:33:53 <ais523> it'd be a noun as well as a verb and an adverb
21:33:59 <Vorpal> ais523, wasn't it a file name length limit on some early system?
21:34:09 <boily> so you could accidentally a word?
21:34:10 <Vorpal> or do I completely misremember it
21:34:14 <ais523> Vorpal: perhaps, or it may just have been in homage to them
21:34:16 -!- AnotherTest has quit (Quit: Leaving.).
21:34:18 <Taneb> "I accidentally accidentally accidentally"
21:34:20 <ais523> boily: that's the verb form of accidentally
21:34:54 <Vorpal> ais523, how it is a verb
21:34:55 <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
21:35:02 <Vorpal> afaik it is only an adverb?
21:35:05 <ais523> Vorpal: boily just used it as a verb
21:35:09 <ais523> the verb form is an internet meme, though
21:35:22 <ais523> the fun thing is that the verb itself doesn't exist
21:35:30 <ais523> you leave it to the listener's brain to fill in the blank
21:35:35 <olsner> boily: we'll just go ahead and esoteric your english
21:35:40 <ais523> "I accidentally the source repository, is this bad?"
21:36:03 <Bike> the accidentally man stopped and faced me, raising the oerjan above his head threateningly
21:36:10 <Vorpal> this is so wrong then: http://www.thefreedictionary.com/accidentally
21:36:15 <olsner> Vorpal: how can you have evaded this meme?
21:36:17 <Vorpal> wordnet claims it is an adverb
21:36:21 <Vorpal> it makes far more sense
21:36:24 <ais523> 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 <olsner> all the -ly words are adverbs
21:36:42 <Bike> Vorpal: that says that "accidental" is an adjective.
21:36:43 <Vorpal> olsner, I know of it, I just refuse to acknowledge it.
21:36:52 <ais523> olsner: this is English, there's probably an exception /somewhere/
21:37:00 <ais523> but yeah, most -ly words are adverbs
21:37:00 <Bike> and "accidental" as a noun is pretty common in music.
21:37:02 <Vorpal> Bike, yes which is wrong I think
21:37:12 <olsner> all the -ly adverbs are adverbs
21:37:27 <Bike> "accidental" isn't an adverb, "accidentally" is
21:37:39 <ais523> huh, there's a language called Vorpal?
21:37:43 <ais523> I just saw it on the deadfish page
21:37:48 <Bike> "the accidental argument is really starting to seem pointless to Bike"
21:37:56 <Vorpal> okay just a confusing page
21:38:10 <Vorpal> since the page name was http://www.thefreedictionary.com/accidentally I assumed it would be about that word
21:38:27 <Bike> it's pretty common to fold derived terms like that
21:38:30 <Bike> in dictionaries
21:38:48 <HackEgo> 157) <fungot> 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) <cpressey> BYE dbc WE'LL BE SURE TO ACCIDENTALLY MENTION YOUR NICK OFTEN \ 716) <elliott> oops I accidentally deleted the universe <olsner> looks weird when you put a verb after acci
21:38:53 <Bike> guess they could have redirected you at least
21:39:15 <olsner> hmm, accidentally some more quotes there
21:39:24 <Vorpal> Bike, yeah it fooled me though
21:39:44 <Bike> "I accidentally an accidental in the chorus"
21:39:52 <boily> AH! I knew the universe could be destroyed! 716 proves it!
21:40:00 <Bike> aaaaand that's semantic satiation for me.
21:40:12 <HackEgo> 716) <elliott> oops I accidentally deleted the universe <olsner> looks weird when you put a verb after accidentally like that
21:40:20 <HackEgo> 100) <alise> like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English <ais523> alise: that's great filler <alise> ais523: well it contains all the important words in the english language...
21:41:03 <olsner> hmm, in hindsight I should've said "another verb"
21:41:07 <oerjan> `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 <Vorpal> talking about memes. All your accidentally us.
21:41:30 <Taneb> `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:41 <Vorpal> olsner, that one pretty much died out I think
21:41:56 <Taneb> `run echo A | fueue -e ")~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]"
21:42:01 <Taneb> `run echo A | fueue ")~$)[[~~~~()+1][0]$%~~1)][)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~]][]"
21:42:34 <olsner> Vorpal: beaten to death until it died over and over again
21:43:19 <olsner> I think accidentally and finnish are my favourite verbs
21:43:40 <elliott> 21:37:39 <ais523> huh, there's a language called Vorpal?
21:43:40 <elliott> 21:37:43 <ais523> I just saw it on the deadfish page
21:43:42 <HackEgo> H%!.3YR9}ƍReiб6u\ޟ]qIo{_ibmSݻ}.N6͕"^`/=S2t>dH<T<\V\!is2H!Kz?yA[XW"b&Z,<HjG}LO%~ƞ?ͦܐhU`<M{?&6dmB.[JR*<S9mvY.,b8K.nq.'av.]HבwJLM>ǪS1hD_+Hd#υjh#?ݶpH슣6x]&r1rԉ
21:44:05 <ais523> elliott: did he name it after Vorpal, or is it coincidence?
21:44:36 <kmc> `cat -v /dev/urandom
21:44:37 <HackEgo> cat: invalid option -- ' ' \ Try `cat --help' for more information.
21:44:41 <oerjan> `addquote <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
21:44:43 <kmc> `run cat -v /dev/urandom
21:44:43 <Vorpal> ais523, it looks like a non-esolang?
21:44:45 <HackEgo> 957) <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
21:44:46 <HackEgo> 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 <ais523> Vorpal: I didn't say it was an esolang
21:44:59 <Vorpal> ais523, no link to it either
21:45:26 <ais523> elliott: right, just wrote a deadfish interp in it?
21:45:34 <Vorpal> elliott, is it this one? https://code.google.com/p/vorpalcode/
21:45:49 <HackEgo> 944) <olsner> boily: the man eating chicken is just a normal man, it's quite common to eat chicken in some parts of the world \ 945) <elliott> ~eval 1+2 <cuttlefish> Error (127): <elliott> this is a great bot boily i love it \ 954) <boily> not only there is no God, but try to find an APL keyboard on Sunday. \ 957) <boily> ais523: I'm not sure my
21:46:10 <boily> not so bad history. could have been worse :D
21:46:29 <oerjan> <olsner> all the -ly words are adverbs <-- holy shit batman
21:47:09 <ais523> hmm, cuttlefish isn't here
21:47:24 -!- cuttlefish has joined.
21:47:45 <oerjan> eep that program was buggy
21:48:12 <cuttlefish> parse error (possibly incorrect indentation or mismatched brackets)
21:48:28 -!- sirdancealot7 has joined.
21:48:36 <ais523> hmm, that looks a lot like a Python error message
21:49:00 <ais523> perhaps I shouldn't feed python to it, then
21:49:07 <oerjan> Taneb: run fueue '...' is the correct format, the program is just buggy
21:49:28 <boily> you can always try. I guess an error 127 will be spewed out as usual, or something.
21:49:43 -!- Frooxius has quit (Read error: Connection reset by peer).
21:49:56 <Taneb> ~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 <boily> I *do* hope it's haskell.
21:49:59 -!- Frooxius has joined.
21:50:00 <Taneb> ~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:24 <olsner> ~eval fix$(<$>)<$>(:)<*>((<$>((:[{- thor's mother -}])<$>))(=<<)<$>(*)<$>(*2))$1
21:50:25 <cuttlefish> [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 <Vorpal> olsner, what does thor's mother have to do with anything?
21:51:00 <olsner> nothing, it's just a comment
21:51:02 <Vorpal> olsner, also I'm a bit disappointed that was not actually part of the program
21:51:11 <Vorpal> olsner, I know, that is why I asked why it was there
21:51:27 <Vorpal> anyway who was thor's mother
21:51:30 <olsner> well, I don't know ... I didn't write that part
21:51:32 <fizzie> Vorpal: Maybe it's there to help the maintenance programmer?
21:51:44 <fizzie> That's a reasonable reason for comments.
21:51:46 <Vorpal> how silly of me not to think of that
21:52:09 <ais523> boily: what types does it evaluate? just things in Show, or can you give it IO actions?
21:52:17 <cuttlefish> Error (1): No instance for (GHC.Show.Show (GHC.Types.IO ()))
21:52:18 <cuttlefish> arising from a use of `M1409069964351145295.show_M1409069964351145295'
21:52:18 <cuttlefish> add an instance declaration for (GHC.Show.Show (GHC.Types.IO ()))
21:52:22 <ais523> just things in Show, it seems
21:52:24 <Taneb> ~eval cosh 7 ^ 2 - sinh 7 ^ 2
21:52:34 <boily> 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 <Taneb> ~eval cosh 7 ^ 2 - sinh 7 ^ 2 :: CReal
21:52:40 <cuttlefish> Error (1): Not in scope: type constructor or class `CReal'
21:52:40 <cuttlefish> Perhaps you meant `Real' (imported from Prelude)
21:52:58 <Taneb> > cosh 7 ^ 2 - sinh 7 ^ 2 :: CReal
21:52:59 <ais523> ~eval unsafePerformIO $ putStrLn("test")
21:52:59 <cuttlefish> Error (1): Not in scope: `unsafePerformIO'
21:53:01 <fizzie> Jörð (as in, "earth") is apparently Thor's mother.
21:53:02 <boily> I tried to have it running on a random VM at work once, but the attempt failed.
21:53:24 <boily> don't worry, I took every available precautions before running that kludge here.
21:53:41 <elliott> boily: I suspect it can be thwarted
21:53:45 -!- WeThePeople has quit (Quit: Leaving).
21:53:47 <ais523> I remember when people found a Perl injection hole in Rodney (#nethack's bot)
21:53:57 <ais523> someone used the hole to get the bot to kill -9 itself, and it was widely considered a good idea
21:54:01 <elliott> ~eval instance Num () where fromInteger _ = ()
21:54:02 <ais523> before it was used to cause more damage
21:54:02 <cuttlefish> Error (1): <hint>:1:1: parse error on input `instance'
21:54:24 <boily> elliott: I probably haven't stressed it as much as HackEgo or EgoBot, but I believe it to be solid enough.
21:54:37 <ais523> 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 <boily> elliott: it's using a very small subset of haskell, eval'ed with mueval.
21:54:52 <fizzie> 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 <shachaf> kmc: Hmm, I didn't know that.
21:55:20 <ais523> fizzie: I'm reminded of the e-reader that came with a setuid helper program
21:55:28 <shachaf> kmc: It looks like a C-style cast behaves the same way.
21:55:30 <ais523> people demonstrated security bugs in it, the author reacted by fixing just the bug shown
21:55:37 <elliott> boily: well, you can have security holes even with mueval
21:55:43 <Vorpal> <ais523> 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 <elliott> boily: what GHC version is it on?
21:55:54 <ais523> Vorpal: manually looking at the code and bitching at them if they tried to use it
21:56:14 <Vorpal> ais523, couldn't you fix it properly though?
21:56:21 <boily> elliott: eeeeeh... I think 7.6.1.
21:56:24 <ais523> Vorpal: yes but I had to look at the code anyway
21:56:31 <shachaf> ~eval let unsafeCoerce v = z where z :: v; z = v where aux = const v in unsafeCoerce (5::Double)::Int
21:56:32 <cuttlefish> Error (1): Couldn't match expected type `v1' with actual type `t'
21:56:32 <cuttlefish> `v1' is a rigid type variable bound by
21:56:32 <cuttlefish> the type signature for z :: v1 at <interactive>:1:35
21:56:32 <cuttlefish> the inferred type of unsafeCoerce :: t -> v at <interactive>:1:5
21:56:38 <boily> ais523, elliott: http://hpaste.org/81905
21:56:40 <ais523> and nobody found a way to escape the /other/ sandbox
21:56:44 -!- variable has changed nick to trout.
21:56:47 <ais523> so it couldn't be used to damage the system it was running on
21:57:00 <elliott> shachaf: I was about to do that!
21:57:03 <kmc> shachaf: i think C cast does the same thing as static_cast in the cases where the latter is valid
21:57:06 <kmc> not sure though
21:57:12 <Vorpal> <ais523> 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 <ais523> Vorpal: it didn't, this was part of the problem
21:57:34 <ais523> it was used to mount the e-reader itself on your computer
21:57:44 <pikhq> It was Calibre, actually.
21:57:45 <fizzie> (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:48 <ais523> but it was pointed out that there were already well-debugged setuid programs that did that sort of thing
21:57:52 <ais523> pikhq: yeah, I forgot the name
21:58:09 <shachaf> kmc: Well, it makes sense, if it has the offset anyway.
21:58:28 <Vorpal> ais523, speaking of suid, do you happen to know what /usr/lib/pt_chown is?
21:58:36 <Vorpal> iirc it is owned by glibc on most distros
21:58:37 <cuttlefish> Error (1): <hint>:1:1: parse error on input `data'
21:58:45 <Vorpal> never bothered to look into what it was
21:58:53 <ais523> Vorpal: it's suid and owned by root on mine
21:59:01 <ais523> and doesn't have a man page
21:59:13 <boily> time to disappear in the great frigid void.
21:59:15 -!- boily has quit (Quit: Poulet!).
21:59:19 <Vorpal> 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 <ais523> ldd lists only linux-gate, libc, and ld-linux.so
21:59:34 <ais523> let's try a web search
21:59:49 <Vorpal> ais523, nm -D is not very helpful either
22:00:02 <ais523> Vorpal: aha, apparently it creates pseudoterminals
22:00:08 <ais523> on systems without devpts support
22:00:23 <ais523> that requires doing mknod, = requires being root
22:00:33 <fizzie> (My "NOTES" section of grantpt(3) mentions pt_chown.)
22:00:42 <ais523> I think I have much the same grantpt(3)
22:00:52 <Vorpal> if it isn't required, why is the binary on my system
22:01:15 <fizzie> ais523: Does it actually *create* them, as opposed to just setting ownership?
22:01:49 <ais523> just reownering them would make sense
22:01:59 <ais523> Vorpal: Kubuntu are apparently considering getting rid of it
22:02:05 <ais523> as part of a sweep of inappropriately setuided things
22:02:31 <ais523> Vorpal: it sounds like the sort of patch which would probably be shared between them, don't you think?
22:02:32 <Vorpal> -rwsr-xr-x 1 root root 18824 jan 1 04:03 /usr/lib/chromium/chromium-sandbox
22:02:37 <Vorpal> now that is interesting permissions
22:02:55 <Vorpal> why does chromium need to be suid
22:03:12 <ais523> Vorpal: oh, I think I know this one, it's for doing chrooting and unsharing
22:03:32 <ais523> Vorpal: it's sort-of generalised chroot, it gives you different namespaces for things than the rest of the system
22:03:41 <ais523> so you can request that you have your own entirely separate set of PIDs, for instance
22:03:51 <ais523> or an entirely different set of sockets
22:03:54 <Vorpal> -rwsr-xr-x 1 root root 245064 aug 24 09:06 /usr/lib/openssh/ssh-keysign <-- sorry, what?
22:04:42 <ais523> Vorpal: you should look into man 2 unshare if you care about doing any sort of sandboxing in usermode
22:04:47 <Vorpal> -rwsr-xr-- 1 root dip 318912 jun 22 2012 /usr/sbin/pppd <-- also what?
22:05:56 <ais523> Vorpal: Web of Lies uses it heavily, btw; it's how I once ended up with a filesystem leak
22:06:09 <ais523> (you'd think it would be difficult to leak filesystems, but…)
22:06:19 <Vorpal> wouldn't it die with the process
22:06:36 <ais523> yeah but just /finding/ the process is hard when it's in an entirely different namespace
22:06:42 <ais523> also I hit multiple kernel bugs
22:06:45 <oerjan> `run echo A | fueue ')~$)[[)[~~~~()+1])][0]$%~~1)][[)[):[)$$7--1[)$3~[)$~!~~%~)]$2<[):]~:]~)~~[)~~~[~)~$7~~:~~([$3~)+[~~~<~()+48]~~~-)~10*)]/]--10):]]~[H]~] ][]]' #New attempt
22:06:47 <Vorpal> ais523, ps aux won't list it?
22:06:54 <ais523> Vorpal: yeah, but Linux thought it was init
22:06:57 <ais523> and so I couldn't get rid of it
22:07:00 <Vorpal> ais523, what about lsof?
22:07:11 <ais523> or specifically, it thought init had a debug trace on it
22:07:29 <ais523> 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 <ais523> or telling init to kill it
22:08:01 <ais523> 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 <Vorpal> ais523, is there ever a legitimate reason for init to have a debug trace on anything???
22:08:17 <ais523> sadly I don't know how to reproduce it
22:08:30 <ais523> one I /do/ know how to reproduce is getting multiple overlapping stack segments in a process
22:08:36 <ais523> that one's really easy, you just mmap over the stack guard page twice
22:08:50 <ais523> I should write a non-insane test case for it, then report the bug
22:08:53 <Vorpal> ais523, how did you figure out that linux thought init was debugging?
22:08:57 <elliott> ais523: does even kill -9 get passed on?
22:09:08 <Vorpal> elliott, <ais523> if you try to sigkill it, then the kill gets passed onto init, which doesn't know what to do with it
22:09:12 <ais523> Vorpal: it's mentioned in /proc
22:09:19 <ais523> elliott: yeah, it gets converted into SIGCHLD on the way
22:09:41 <olsner> is it possible to boot with init=gdb? that might reasonably result in init having a debug trace on something
22:09:47 <ais523> 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 <Vorpal> olsner, yes, but that would be pretty insane
22:10:01 <ais523> olsner: hmm, good point
22:10:35 <Vorpal> ais523, you could actually have killed it
22:10:40 <Vorpal> ais523, without rebooting
22:10:47 <Vorpal> init supports re-exec using telinit
22:10:57 <Vorpal> just replace init with a new init that would understand how to handle it
22:10:59 <elliott> gdb as process 1 actually soudns kind of useful
22:11:11 <ais523> Vorpal: you think I have spare inits just lying around?
22:11:12 <Vorpal> ais523, this would not have required a reboot
22:11:21 <Vorpal> ais523, I think you have a compiler
22:11:27 <olsner> 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 <Vorpal> ais523, and you would need to customise the code anyway
22:11:42 <ais523> 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 <elliott> olsner: well, the kernel exec()s init
22:11:54 <elliott> so all other processes have to be forked off from init
22:12:06 <ais523> and I'm not entirely sure what happens if you replace init with something that doesn't work properly
22:12:13 <Vorpal> ais523, so do apt-get source <your existing init> then patch it up and compile it
22:12:31 <Vorpal> maybe throw it in a VM to test it
22:13:12 <ais523> Vorpal: this seems like a lot of effort to just get rid of a process in an impossible state
22:13:27 <ais523> 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 <Vorpal> ais523, how what state was it in?
22:13:57 <ais523> Vorpal: debug stop, obviously
22:14:02 <ais523> with no process obviously tracing it
22:14:09 <ais523> and if you look at /proc, the process tracing it was init
22:14:34 <ais523> hmm, I wonder what it would have thought it was being traced by from within its own namespace
22:14:36 <Vorpal> ais523, maybe the tracing process had died, thus re-assigning the parent to init?
22:14:39 <ais523> it was being debugged by a process outside the sandbox
22:14:55 <ais523> but traces surely shouldn't be reassigned like that
22:14:56 <Vorpal> ais523, that would normally kill the debug state presumably?
22:15:03 <Vorpal> ais523, have you tested that again?
22:15:33 <ais523> no, but I doubt trying it under normal circumstances will produce standard results
22:15:41 <ais523> let's try gdbing a program and kill -9ing gdb
22:15:59 <olsner> pretty sure killing gdb is harmless
22:16:11 <ais523> the question is, what happens to the program it's debugging
22:16:32 <Vorpal> it obviously need to be in debug stop too
22:16:51 <olsner> I think the program continues as if the debugger detached
22:17:04 <Vorpal> olsner, what if it was stopped
22:17:40 <ais523> OK, at the moment, a.out is in tracing stop, and traced by gdb
22:18:05 <ais523> a.out also disappeared
22:18:10 <ais523> I guess I need an a.out with an infinite loop in it
22:18:26 <ais523> olsner: hard to tell, this is why I need the infinite loop
22:18:39 <olsner> I think a.out continued and finished successfully
22:19:04 <olsner> 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 <ais523> yeah, a.out just starts running normally if I kill gdb out from under it
22:20:45 <ais523> I'm pretty sure that to reproduce the bug, you need a new PID namespace
22:21:13 <olsner> just killing a debugger is not weird enough to warrant a kernel bug
22:21:28 <ais523> it's not the sort of thing you normally do intentionally, but it seems easy enough to do by mistake
22:21:47 <Vorpal> ais523, what about if you put the inner process in a different namespace?
22:22:17 <ais523> Vorpal: you can't easily get gdb to do that, at this point
22:22:32 <ais523> perhaps you could do it with recursive strace
22:22:44 <ais523> but you'd need to write your own helper program, also would need root on all processes involved
22:22:49 <ais523> and I'm too lazy to try to do that right now
22:26:22 <Vorpal> ais523, I would doubt recursive trace is allowed
22:26:42 <olsner> of course it should be
22:26:42 <Vorpal> or even tracing a parent process
22:26:53 <ais523> Vorpal: recursive trace works by capturing all the fork commands
22:27:00 <ais523> and immediately tracing the children too
22:27:14 <Vorpal> ais523, err I meant cyclic tracing
22:27:17 <Vorpal> why did I type recursive
22:27:56 <olsner> hmm, I'll admit that cyclic tracing seems troublesome
22:29:20 <Vorpal> ais523, anyway you could attach to an existing process
22:29:27 <ais523> the system calls to set it up are definitely possible to express
22:29:54 <ais523> huh? man ptrace says that tracing init is legal
22:30:04 <ais523> I almost want to attach gdb to init now
22:30:08 <ais523> but I'm not sure what would happen if I tried
22:30:34 <ais523> there's nothing in the documentation that bars cyclic tracing…
22:31:20 <ais523> I'm trying cyclic tracing on my laptop right now
22:31:44 <ais523> they're both in tracing stops
22:32:35 <ais523> http://sprunge.us/GEgA
22:33:22 <olsner> two gdbs attached to each others?
22:33:48 <kmc> i think ptracing init is a new feature
22:33:57 <kmc> previously it would try to reparent the traced process to the tracer
22:34:21 <ais523> olsner: strangely, even though gdb 1 was told not to stop gdb 2, it did anyway
22:34:39 <ais523> I think, because gdb 2 stopped gdb 1, so gdb 1, which it was tracing, stopped too
22:34:43 <ais523> let's try to break up this gdb-ball, now
22:35:23 <ais523> kill -9 works, lesser signals seem not to
22:35:41 <olsner> 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 <ais523> olsner: yeah, and they're both marked as tracing stop
22:36:12 <ais523> olsner: can you try to kill gdb 2 in that scenario? I tried to kill gdb 1 instead
22:37:24 <olsner> term does nothing, kill results in gdb1 saying "Unable to attach: program terminated with signal SIGKILL, Killed."
22:37:34 <ais523> OK, that's a different result to trying to kill 2
22:37:49 <ais523> in my case, 1 correctly reported that 2 had been killed
22:38:05 <kmc> sh -c 'exec strace -p $$'
22:38:32 <ais523> kmc: have you tried that, or is it just a thought experiment?
22:38:36 <kmc> i have tried it
22:38:42 <kmc> i know what happens
22:38:58 <olsner> 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 <ais523> kmc: strace checks for it, it seems
22:39:24 <olsner> gdb/linux-nat.c:1766: internal-error: linux_nat_detach: Assertion `num_lwps (GET_PID (inferior_ptid)) == 1' failed.
22:39:46 <ais523> gdb says "I refuse to debug myself!"
22:40:05 <olsner> run gdb in gdb to bypass the check
22:40:23 <ais523> I won't try to run weboflies inside itself because that actually ends in quite a boring manner
22:40:37 <ais523> the outside one prevents the inside one from running ptrace
22:40:45 <ais523> so you don't get any sort of interesting infinite regress
22:41:13 <olsner> does that mean you don't support nested weboflies either?
22:41:39 <ais523> debugger-like programs are one of the things weboflies is documented to not work on
22:41:40 <elliott> ais523: that's a good way to check whether you're webofliesed
22:41:53 <ais523> I guess in theory I could go through all the effort of implementing ptrace by hand
22:42:00 <ais523> but I won't unless it turns out to be really relevant
22:42:21 <ais523> the other thing is, the program running inside weboflies can't be root, and it needs root
22:42:27 <Vorpal> ais523, does weboflies work on 64-bit programs yet?
22:42:36 <ais523> it doesn't even work on 32-bit programs yet :)
22:42:51 <olsner> what does it work on? 16-bit programs?
22:42:57 <Vorpal> ais523, I would like to run it on arm-linux-gnueabihf
22:43:12 <ais523> it needs special-case code for each platform and ABI
22:43:21 <ais523> this is why I'm focusing on 32-bit x86
22:43:29 <Vorpal> ais523, oh? That is going to be a PITA on ARM
22:43:30 <olsner> weboflies can't fake being root?
22:43:37 <Vorpal> due to all the variant-ABIs
22:43:48 <ais523> I guess there's fakeroot, but it doesn't do a particularly impressive job of it
22:43:58 <ais523> olsner: how do you react if the inside program tries to break the chroot, for instance?
22:44:07 <Vorpal> what does fakeroot actually do btw?
22:44:11 <ais523> you have to pretend it doesn't exist
22:44:18 <ais523> Vorpal: lies on some file-related system calls
22:44:45 <ais523> 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 <kmc> it's a library shim not a syscall interceptor right?
22:45:04 <kmc> that's why i write all my programs as assembly making syscalls directly
22:45:15 <Vorpal> kmc, what if you hardlink the file first
22:45:17 <ais523> in the case of fakeroot, though, you want to be lied to
22:45:23 <ais523> Vorpal: it's not perfect
22:45:28 <elliott> kmc: have you seen weboflies
22:45:29 <ais523> its purpose is to make packages
22:45:32 <elliott> it's the kind of thing you'd like or hate
22:45:54 <Vorpal> ais523, does it store the chown then somewhere, so that the proper owner can be recorded in the package?
22:45:58 <kmc> i heard about it but forgot
22:46:12 <elliott> kmc: you should see its code
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 <olsner> 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 <ais523> olsner: yeah, but that's yet more cases to check, and so on
22:52:39 <ais523> (you do know how to break a chroot as root, right?)
22:52:56 <kmc> how's that again
22:53:06 <elliott> ais523: do you have web o' flies' code to hand?
22:53:08 <olsner> 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 <ais523> you cd root, set up a second chroot inside it
22:53:35 <ais523> 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:53 <ais523> it breaks the chroot because if you're /below/ root, you can cd .. as much as you like
22:53:57 <ais523> I think this is an intended feature
22:59:42 <olsner> reminds me of what you get when your working directory has been deleted
23:00:14 <ais523> olsner: I didn't think it was possible to delete another process's working directory
23:01:41 <olsner> it must be possible :) it's also fun when cd .. fails because the directory has stopped existing
23:01:53 <olsner> or I guess because it has stopped having a file name
23:02:12 <ais523> hmm… is it possible to delete the .. /entry/ in a directory
23:02:22 <ais523> while having a directory containing the directory that's missing a ..
23:02:35 <olsner> does the '..' entry even necessarily exist?
23:02:47 <ais523> I think it's meant to, by some spec or another
23:03:52 <olsner> 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 <elliott> what if you didn't have "."?!?!?!?!
23:05:02 <oerjan> `addquote <Sgeo> This position is asking for "- Extensive experience with API" <Jafet> You're just not qualified, kid.
23:05:06 <HackEgo> 958) <Sgeo> This position is asking for "- Extensive experience with API" <Jafet> You're just not qualified, kid.
23:08:04 <kmc> gah python.... repr(x) = '1357675209.248774', str(x) = '1357675209.25'
23:08:12 <kmc> in particular this means 'print' doesn't print floats with full precision
23:08:22 <elliott> isn't that sort of a good thing
23:08:30 <elliott> since otherwise print would print huge monstrosities
23:08:37 <kmc> no it's not a good thing
23:08:39 <kmc> it's too magic and implicit
23:08:52 <kmc> if you want only 2 decimal places you can use '%.2f' % (x,)
23:09:23 <kmc> 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 <elliott> well you know what's too magic and implicit
23:13:31 <elliott> it's automatically converting values to strings by implicit rules that nobody will know inherently
23:13:37 <elliott> because there are tons of ways to convert any value to a string
23:14:25 <Vorpal> kmc, pretty sure %f in C's printf doesn't do full precision either?
23:15:54 <pikhq> I would be unsurprised to find that the rule is "output the shortest string that results in the same binary representation".
23:16:16 <pikhq> Rather than the perhaps saner "output the decimal conversion of the float".
23:16:29 <olsner> it's either that or undefined behaviour
23:17:03 <kmc> i recall finding out that efficient, exact float -> string conversion is surprisingly complicated
23:17:11 <kmc> or maybe it was the other way
23:17:28 <kmc> everything involving floats is surprisingly complicated, i shouldn't be surprised by it by now
23:17:41 <olsner> iirc string->float is the really tricky one, but float->strings is most likely pretty tricky too
23:18:55 <pikhq> kmc: Exact float->string conversion can be fairly easy if you use hex float syntax. :P
23:19:03 <olsner> 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 <olsner> maybe I actually meant it that way around in the first place but wrote the words in the wrong order
23:24:36 <kmc> ah yeah that was a great bug
23:24:43 <kmc> DoS any PHP or Java app
23:24:59 <kmc> though PHP fucking something up is not in any way evidence that it's a tricky problem
23:25:43 <oerjan> `fetch http://sprunge.us/YaOJ
23:25:46 <HackEgo> 2013-02-06 23:25:45 URL:http://sprunge.us/YaOJ [3900] -> "YaOJ" [1]
23:26:36 <oerjan> `run chmod a+x YaOJ; mv YaOJ bin/shove
23:26:42 <olsner> 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 <tswett> Man. Ithkuil is quite the thing.
23:27:08 <tswett> The word "âdraxhtipší" translates literally as "apparatus designed for obeying synergistically composite sets of rules".
23:27:25 <tswett> Or, a bit more nicely, as "computer".
23:27:46 <kmc> that would be a good name for a programming language
23:27:51 -!- SirCmpwn has quit (Excess Flood).
23:28:25 <tswett> Âdraxhtipší. It's difficult to type, but not extremely so.
23:28:34 -!- Phantom_Hoover has joined.
23:28:45 <tswett> 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 <olsner> "No person, including Quijada, is hitherto known to be able to speak Ithkuil fluently."
23:28:53 -!- SirCmpwn has joined.
23:29:57 <monqy> Userspresumably none (2012)
23:30:01 <tswett> 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 <monqy> In 2008, it won the Smiley Award
23:31:33 <tswett> 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 <elliott> monqy: are you new to ithkuil?
23:31:48 <olsner> apparently "Ithkuil doesn’t use the concept of zero."
23:32:05 <tswett> Right, it does. "â-dr-a-xht-ipš-i", six morphemes.
23:33:01 <tswett> Looks like the root is... "eu", actually, but it's abbreviated out of the word entirely or something.
23:33:36 <monqy> elliott: somehow i've never heard of it before
23:33:39 <monqy> elliott: but it's amazing yes
23:33:40 <olsner> 65 consonants and 17 vowels o.O
23:33:48 <elliott> monqy: listen to the example sentence pronunciation on wikipedia
23:35:36 <monqy> 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 <olsner> and the IPA for it looks like it comes straight from /dev/urandom
23:37:09 <oerjan> `run echo '"Hello world!"S' | shove
23:37:12 <HackEgo> \ 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 <olsner> ˈ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 <oerjan> bit unoptimal output for HackEgo
23:38:23 <olsner> 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 <ais523> oerjan: is that my shove interp?
23:39:21 <ais523> I was wondering if you'd written your own
23:39:48 <oerjan> bit of a waste given yours is the only information i have about the language.
23:40:12 <ais523> it seems to output debug info
23:40:40 <ais523> hmm… rare for me to finish an esolang then forget to tell anyone about it
23:40:46 <ais523> I must just have never got round to writing the spec
23:41:15 <elliott> I nominate oerjan writes the spec
23:41:18 <elliott> that'd be a world first I think
23:42:47 <elliott> a world first of someone writing the spec for someone else's esolang
23:43:38 <ais523> why oerjan not you? laziness?
23:44:29 <ais523> "ais523 created the esolang Shove in 2008, but somehow forgot to tell anyone until 2013"
23:44:34 <elliott> also oerjan seems to know how to write a program in it and I don't :P
23:44:35 <ais523> just checked the file modification dates
23:44:46 <ais523> it's hard to do control flow
23:48:33 <monqy> that reminded me of another language but i forgot which one so i searched for it and it's Burn.
23:50:56 <olsner> (wow! people are talking about esolangs!)
23:51:57 <ais523> Burn is quite an awkward language
23:52:08 <ais523> because I wrote one program in it, and never remembered the spec
23:52:24 <ais523> the program's online, but I'm not sure anyone's seriously tried to figure out the spec from it
23:52:29 <ais523> perhaps I should try sometime
23:52:45 <ais523> having designed the esolang in the first place, I probably have the best chance
23:57:44 <oerjan> `fetch http://oerjan.nvg.org/esoteric/shove/shove
23:57:49 <HackEgo> 2013-02-06 23:57:48 URL:http://oerjan.nvg.org/esoteric/shove/shove [4006/4006] -> "shove" [1]
23:58:06 <HackEgo> mv: missing destination file operand after `shove bin/shove' \ Try `mv --help' for more information.
23:58:09 <oerjan> `run mv shove bin/shove
23:58:26 <oerjan> `shove "Hello, world!"S