00:01:20 I have a problematic power supply, apparently. 00:01:48 So when I plug it in it complains that it's not a Genuine Dell 130W Power Supply. 00:01:55 Unless I plug it in just right. 00:02:14 And then it throttles the CPU to 900MHz, and doesn't charge it. 00:02:32 (The battery, that is, not the CPU.) 00:03:05 Dell Seal of Quality® 00:10:41 17:06 shachaf: Given the adjunction (A,) -| (A->) and the adjunction (->A)^op -| (->A) and the continuity properties of left and right adjoints, we have Colim_i(F^i(0)) -> B ~ Lim_i(F^i(0) -> B)) ~ (/\X.Lim_i(F^i(0) -> X)(B) ~ Lim_i(F^i(0) -> -)(B). If we can make a G such that the functor (F(A)->) ~ G(A->), then we have Colim_i(F^i(0)) -> B ~ Lim_i(G^i(1)(B), i.e. (mu F) -> B ~ (nu 00:10:41 ))(B). E.g. 1+A -> B ~ (B, A -> B), so F 00:10:41 17:06 = (1+), mu F = Nat, G = (=,-), nu G = Stream, so Nat -> B ~ Stream B 00:10:41 elliott: What did ddarius just say to me? :-( 00:13:38 I don't know. 00:15:00 elliott: I've noticed you're quite shameless. 00:17:05 Ok, so maybe it's not so dangerous 00:17:34 http://pastie.org/private/tszvgqthhrrktfcb3adorg 00:35:59 I understand that completely un-timing-attackable AES is very tricky to do. 00:40:59 "Most of the time, newLISP passes parameters by value copy. This poses a potential problem when passing large lists or strings to user-defined functions or macros. " 00:41:22 I was sort of hoping that "by value copy" was just how it abstractly looked, and not the actual implementation 00:41:38 Maybe the manual is old? 00:42:34 Lol, does newLISP actually have any of the good points of Lisp? 00:43:04 I think it has fexprs 00:44:07 Hey, the wikipedia article on fexprs has an example in Kernel 00:44:14 naturally 00:44:24 kmc: Wow, my sleedule is completely messed up. 00:44:52 I slept ~2-9 today, after having had way too little sleep some time before. 00:45:18 I'm sort of tired all day, but I'll probably stop feeling tired around 22-23. 00:46:17 Well, I got woken up by firefighters extinguishing a fire next door 00:55:52 that's exciting 00:56:39 * Sgeo wonders if Tcl's scoping counts as lexical 01:00:12 kmc: Using a patented mode of operation doesn't bother you? 01:01:06 Even with a GPL license. 01:02:07 why do you assume it doesn't bother me? 01:02:33 I don't. 01:02:35 shachaf: exactly 01:02:37 That's why I asked. 01:02:45 well you asked in a sort of loaded way ;) 01:02:48 yes, it does bother me 01:02:50 I guess I could have phrased the question less loadedly. 01:03:14 but the patent holder is emphatically not an asshole -- we've worked with him on several things 01:03:23 he seems quite open to grants to open-source software other than GPL 01:03:38 (possibly with a non-commercial use restriction, though) 01:03:52 and KeithW's technical arguments for using OCB are compelling 01:04:20 and the decision was already solidly made before i had any involvement with Mosh so it seemed a bit silly to make a big deal of it 01:04:49 OCB takes four technical arguments: key, nonce, associated data, and plaintext 01:04:54 Maybe the plaintext isn't technical. 01:05:10 Anyway, yes, I suppose. 01:05:24 But what are IRC channels for if not making big deals about things? 01:06:27 Type level wankery? 01:06:48 we don't use associated data either :) 01:09:01 NihilistDandy: lambdabot doesn't even let you define types :( 01:09:29 @djinn-add data These a b = This a | That b | These a b 01:09:56 I guess These isn't very interesting from djinn's perspective. 01:10:19 kmc: Did you see Salsa20? 01:10:38 whatsat 01:10:53 Encryption algorithm by Daniel Bernstein. 01:11:05 By "encryption algorithm" I mean "stream cipher". 01:11:44 shachaf: I was actually looking into that for a project my friends and I were working on. Project fell apart, but it was fun to read about 01:12:01 http://cr.yp.to/snuffle/design.pdf discusses the design. 01:12:30 I like it because it's simple. I'm not qualified to say whether it's any good, of course. 01:12:54 The speed of it was the main draw for me 01:13:14 It defines a relatively simple hash function and uses it in CTR mode, more or less. 01:13:24 ah right, you were talking about this 01:14:05 Well, I came across Salsa20 some time after I was talking about it. 01:16:50 I don't. 01:16:50 shachaf: exactly 01:16:55 can someone kick this bot or something 01:17:00 elliott: no se johtuu siit, ett puhun suomea, plj! 01:17:05 case in point 01:17:26 ais523: elliott wants you to kick me. :-( 01:17:29 why does it exist what's its story 01:17:40 i want to know the "shachaf story" 01:17:46 shachaf: whats it's story?? 01:17:54 the "psyk" story sounds interesting too ! 01:17:56 monqy: Okay. Go for it. Although, truth is out there. 01:18:01 : o 01:18:18 monqy: my story is "very goode" 01:18:25 AAAA+++ WOULD READ AGAIN 01:18:29 @karma AAA++ 01:18:29 AAA++ has a karma of 0 01:18:31 @karma AAA+ 01:18:31 AAA+ has a karma of 0 01:18:36 @karma AAAA+ 01:18:36 AAAA+ has a karma of 1 01:18:40 @karma AAA++ 01:18:41 AAA++ has a karma of 0 01:18:44 @karma AAA+++ 01:18:44 AAA+++ has a karma of 1 01:18:47 Hmm. 01:21:10 -!- derdon has quit (Remote host closed the connection). 01:42:22 I don't like this person's style, I think they should be using a variant of let 01:42:24 Not sure which one 01:43:02 Ah. let* specifically 01:43:53 http://www.common-lisp.ru/repos/pyffi/pyffi.lisp 01:45:47 Person also doesn't know how to use when 01:50:30 Hey, I actually understand what progv does 01:50:41 Not entirely sure when it's really useful though 02:02:25 So, Haskell doesn't like it when the type of a function depends on a parameter 02:02:56 correct 02:03:50 How am I supposed to do my dynamic sierpinski nesting then 02:04:02 what is dynamic sierpinski nesting 02:04:35 Well, a function that takes a and b, and does (a,a,a) b times 02:04:54 b = 1 (a,a,a) b=2 ((a,a,a),(a,a,a),(a,a,a)) 02:04:54 yeah you can't do that 02:04:55 Etc 02:04:57 use a list instead 02:05:04 No, doesn't work with a list either 02:05:18 ah yeah i see 02:05:54 Also, I need to figure out how to make my Haskell prime sieve work 02:06:08 well you can make a datatype like data Tree a = Leaf a | Node (Tree a) (Tree a) (Tree a) 02:07:53 primesieve [y:ys] = y : primesieve (filter (\z -> (z `mod` y) == 0) ys) 02:07:56 Doesn't work 02:08:02 you should bug #haskell about it 02:08:13 Wait, \=, not == 02:08:15 But still 02:08:17 the pattern [y:ys] matches a list of a single element only 02:08:20 is that what you want? 02:08:29 Oh 02:08:34 it matches a list whose one and only element is a list whose head is y and tail is ys 02:08:39 maybe you want (y:ys) 02:08:49 Wait, why doesn't it work with a list? 02:08:50 I probably do 02:09:28 Ok, now I'm getting different errors :D 02:10:26 /=, not \= 02:10:53 No instance for (Integral a) arising from a use of `mod' 02:11:04 you should bug #haskell about it 02:11:10 Ok, I will 02:11:20 it will be about the 90,000,000,000th prime number sieve they've helped fix 02:11:50 This is actually my first prime sieve 02:12:12 "Hey, I am learning Haskell, what should I do? I know, prime sieve" 02:12:20 yep 02:12:46 FreeFull: Why doesn't the Sierpinski nesting thing work with a list? 02:13:26 NihilistDandy: Because [a] and [[a],[a],[a]] have a different type 02:13:35 Why not a list of tuples? 02:13:44 i thought it was meant to be recursive 02:13:47 f a 0 = [] 02:13:47 f a b = (a,a,a) : (f a (b-1)) 02:13:53 like (((a,a,a),(a,a,a),(a,a,a)),((a,a,a),(a,a,a),(a,a,a)),((a,a,a),(a,a,a),(a,a,a))) 02:13:56 so forth 02:14:04 Ah 02:14:20 you can do something like 02:15:00 data Foo a = One a | More (Foo (a,a,a)) 02:15:19 3Foo > /me 02:15:32 this data type includes the complete ternary trees of every depth 02:15:52 I still find polymorphic recursion weird. 02:16:12 it's probably not something you want to mess around with if you're just starting learning haskell 02:16:31 i mean, mess around with it and get your brain tied in crazy knots cause that's fun and that's most of why people learn haskell 02:16:43 but don't expect it to be the right way to do any beginner-level thing 02:17:08 FreeFull: why are you learning haskell? 02:19:36 Because I wanted to learn a functional language that isn't Lisp 02:20:08 many lisp programmers will try to convince you lisp is not a functional language 02:20:16 "functional language" is a pretty arbitrary category 02:20:18 Many Haskell programmers will, too. 02:20:34 Especially due to the lack of {--} comments. 02:20:36 yeah 02:20:42 that's a key property of functional languages 02:20:49 * shachaf has given up on convincing people that words mean anything. 02:21:04 it's better to convince them that words don't mean anything 02:21:05 If I need to talk about a meaning and there's any disagreement, I can just introduce a new word. 02:21:18 s/thing/ particular thing/ 02:21:44 Sometimes it's still fun, though. 02:21:47 We'd better remove words from Prelude, then 02:21:57 Yesterday I was talking about the meaning of "magic" in the other channel. 02:22:09 I think "magic" means "primitive". 02:22:18 I was surprised that anyone disagreed. 02:24:01 it often means "complicated shit i don't want to explain" 02:24:16 or "actually simple shit i want to make sound difficult" 02:24:26 Right. 02:24:43 Either way it's "something I'm taking as a primitive for the purpose of this discussion". 02:24:48 #haskell is ignoring me 02:25:22 Or maybe not 02:27:23 yes, have patience :) 02:29:53 I have a "Win-X" key on my laptop. 02:30:10 It's very easy to press accidentally. 02:30:20 windex key 02:31:03 -!- DHeadshot has joined. 02:32:47 kmc: Did you read _Three Men in a Boat_? 02:32:51 yes! 02:32:53 it was great 02:36:51 Apparently it was a problem with the type definition 02:56:37 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:20:01 -!- mig22 has joined. 03:47:40 kmc: Your FAQ is the second Google result for «haskell faq» now. 03:49:38 what's the first result 03:49:48 @google haskell faq 03:49:50 http://www.haskell.org/haskellwiki/GHC:FAQ 03:49:50 Title: GHC/FAQ - HaskellWiki 03:56:43 -!- ogrom has joined. 04:58:28 -!- copumpkin has joined. 05:05:23 -!- ogrom has quit (Ping timeout: 268 seconds). 05:07:08 -!- NihilistDandy has quit. 06:11:13 -!- ogrom has joined. 06:35:24 -!- kinoSi has quit (Read error: Connection reset by peer). 06:35:51 -!- kinoSi has joined. 06:43:51 -!- mig22 has quit (Quit: mig22). 07:46:29 -!- mig22 has joined. 07:59:17 -!- elliott has quit (Ping timeout: 248 seconds). 08:09:41 -!- epicmonkey has joined. 08:21:21 -!- Vorpal has joined. 08:25:06 !eval (set *react-threshold* 0.5) 08:26:47 xxxx 08:26:52 !eval (set! *react-threshold* 0.5) 08:27:34 -!- aloril has quit (Ping timeout: 244 seconds). 08:34:54 !eval (* 2 2) 08:38:55 -!- monqy has quit (Quit: hello). 08:39:18 -!- aloril has joined. 08:41:50 -!- epicmonkey has quit (Ping timeout: 268 seconds). 08:42:58 -!- oerjan has joined. 08:46:41 -!- monqy has joined. 08:48:29 -!- ogrom has quit (Quit: Left). 08:49:06 -!- ogrom has joined. 08:49:19 !eval (/ 1 0) 08:52:24 based on the logs, i am starting to think that psyk is a bot. 08:52:44 `pastelogs 08:53:24 No output. 08:53:27 `pastelogs 08:53:41 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6710 08:53:55 `pastelogs psyk 08:54:03 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1713 08:55:54 hm from your paste it looks like it may be atehwa's. 08:56:30 oh well maybe i won't ban it then. 08:56:35 (yet.) 09:00:26 oerjan: you and elliott found it irritating, and it's not very important for me to keep it here 09:00:36 i just found elliott's complaint 09:00:42 so... should I take it away already? 09:00:52 atehwa: well i find it somewhat impolite. 09:01:06 GET IT OUT OF HERE ATEHWA 09:01:08 elliott would probably hate it regardless :P 09:01:59 atehwa: assuming it doesn't have any actual _useful_ features, probably. 09:02:11 @dice 3d10 09:02:12 3d10 => 12 09:02:16 Unlike lambdabot. 09:02:38 Goo dol lamb da bot. 09:02:48 we're not very strict on the definition of "useful" here :P 09:03:17 fungot: show your usefulness 09:03:19 olsner: there! there it is! but by the time we're through with you, you'll be in danger. open hatch.! it's no use for you anymore, right! right. wrong! please return 09:03:20 itidus21 isn't useful, and yet we let it stay. 09:03:32 yeah 09:03:48 shachaf: well the judges cannot quite agree on whether it passes the turing test or not 09:05:05 oerjan: Did you hear you're supposed to ban me? 09:05:18 For not passing the Turing test. 09:05:34 shachaf: several times, yes. 09:05:43 maybe not for that exact reason. 09:05:50 there should be a channel filled with bots that don't like to have humans in their channel 09:05:53 hi oerjan, my name is elliott and im the real elliott. plus you should ban shachaf 09:06:18 ah yes that sounds like elliott at least in parts. 09:06:51 <ørjan> /kickban shachaf pretending to be elliott 09:07:07 shachaf: but elliott doesn't want to ban you after he realized you like it 09:07:21 i don't really want to be banned 09:07:30 also ø is afaik not a legal irc nick character 09:07:37 I don't want shachaf to be banned 09:08:07 <ørjan> oerjan: i do what i want dude. if i say its a legal irc nick characters, its a legal irc nick cahractedrrs 09:08:13 olsner: get out of here! 09:08:22 oerjan: why! 09:08:25 <ørjan> dont mess with the ørjan, yo 09:08:48 olsner: because? 09:09:07 that's not much of a reason 09:09:26 indeed, it's about the shortest. 09:09:49 <ørjan> im gonna kickban you to the stone age, dude. get outta here alright?? 09:09:59 That's ørjan, always getting into trouble. 09:10:06 well then maybe it's sunny outside and you should run barefoot and frolic or something. 09:10:29 i should stop encouraging shachaf 09:10:47 or else elliott will be annoyed. 09:11:05 It's true that if you don't stop encouraging shachaf, elliott will be annoyed. 09:11:07 I like olsner's suggestion 09:11:10 It's also true that if you do stop encouraging shachaf, elliott will be annoyed. 09:11:16 I don't know about the definition of usabitility 09:11:32 the bot doesn't let anyone !eval but me :( 09:11:41 how rude! 09:11:48 the bot can be taught about esoteric programming, though. 09:11:48 @eval hello there 09:11:55 well that's ok fungot doesn't let anyone but fizzie ^ignore 09:11:56 oerjan: yes, it's been awhile prometheus! 09:12:03 @eval is the most useless lambdabot command. 09:12:30 @help eval 09:12:30 eval. Do nothing (perversely) 09:12:33 process_ _ "eval" _ = return [] 09:12:48 Sgeo: good try, but usually we just say !eval ((lambda (x) (x x)) (lambda (x) (x x))) 09:12:53 at least it is perverse. 09:13:24 @thank you 09:13:25 Maybe you meant: thank you thanks 09:13:34 lambdabot has a command called "thank you". 09:13:37 psyk: did you know that esoteric programming is really cool? 09:13:38 Which you can't run. 09:13:40 atehwa: no 09:13:48 psyk: Did you know that GO AWAY? 09:13:51 shachaf: I do some 09:13:57 atehwa: you appear to have lousy tab completion hth 09:13:58 <ørjan> go away psyk, no one likes you 09:14:19 ? 09:14:44 ah, but I was really talking to Sgeo 09:14:53 atehwa: oh wait Sgeo actually said something long ago 09:14:54 11:49 < Sgeo> !eval (/ 1 0) 09:15:33 Sgœ 09:15:47 I DON'T CARE THAT IT'S BACKWARDS. 09:15:54 tadaa 09:15:56 I suppose I could've made ^ignore a free-for-all command, really. 09:16:12 shachaf: perhaps thank you was lost in a refactoring 09:16:13 psyk: you seem to be more "go away" -oriented than "esoteric"-oriented. 09:16:21 atehwa: I never seem to be spastic? Or? 09:16:23 oerjan: Huh? 09:16:54 Maybe I'll feed a mass of #esoteric's logs into psyk and _then_ you'll see how amiable it can be. 09:16:56 shachaf: it probably worked once, and then someone started splitting into words before looking up commands, or something 09:17:27 psyk: what do you know about brainfuck? 09:17:30 atehwa: not much 09:18:28 psyk: do you know anything about unlambda, either? 09:18:31 atehwa: joo joo 09:18:53 At least speaking in Finnish every now and then isn't out-of-place on #esoteric at all. 09:18:53 see, she just doesn't know much, it's frustrating 09:19:00 right :) 09:19:14 It's no #esoteric-en, after all. 09:19:52 psyk: maybe I'm just going to teach you a bit offline so you'll be ready for the wide world. 09:19:57 <ørjan> finnish = esoterickest language 09:19:58 atehwa: Or maybe you're shit. 09:20:08 <ørjan> behold, for i am the might ørjan-gutan!! 09:20:15 that's a new one. 09:20:18 psyk: could be, at least I was behaving in a condescending way. 09:20:26 atehwa: I doubt. You have no feet. 09:20:52 fizzie: appropriately enough, I think #esoteric-en is exclusively finnish 09:21:06 mitä! 09:21:11 at least it should be now that I left 09:21:21 !eval (irc-write '(message quit "Yes, I can see the light. Oh and you have no feet.")) 09:21:22 -!- psyk has quit (Quit: Yes, I can see the light. Oh and you have no feet.). 09:22:21 oerjan: Are you an oerjan-gutan? 09:22:52 ooh, http://translate.google.com/#fi|en|mitä has a nice list of other things mitä can mean 09:22:56 is that a new feature? 09:23:21 olsner: yes, #esoteric-en is boring 09:23:42 * oerjan chimp-slaps shachaf 09:24:03 olsner: It's not very new, I don't think. It only appears when you just put in a single word. 09:25:08 olsner: hm i actually think that's a list of what "what" can mean 09:25:32 no wait 09:25:36 scratch that 09:26:09 what 09:26:17 mitä? 09:26:21 hä? 09:26:24 Huh. 09:26:27 mitä 09:26:40 hän häh 09:26:41 Mitä sinä sanoa. 09:27:48 Mitä olet hullu 09:27:58 Hmm, translating that from english to finnish produces "Mita et tahdo sanoa." 09:28:28 that meant "what you don't want to say" 09:28:46 I wonder how "mitä sinä sanoa" means that in english 09:28:51 sinä qua non 09:29:05 I would say it's kind of like "what you say". It's ungrammutztical. 09:29:36 *ungrammary 09:29:46 Ungrandmothery. 09:30:25 unmammary 09:31:21 an mammary 09:32:03 :t Node 09:32:05 forall a. a -> Forest a -> Tree a 09:32:46 You can't see the Forest for the Trees. 09:33:10 hm that's not right for what FreeFull wanted 09:33:35 :t Mu 09:33:37 Not in scope: data constructor `Mu' 09:33:40 :k Mu 09:33:41 (* -> *) -> * 09:33:45 I should start a blog. 09:34:05 This way everyone gets to enjoy my programming language ADD! 09:34:24 at least it would be a blog with variation! 09:34:57 Perhaps even a blog with skewness and kurtosis. 09:35:11 @wn kurtosis 09:35:13 No match for "kurtosis". 09:35:17 shocking 09:35:20 It's the fourth central moment. 09:35:41 so not a painful chronic disease, check 09:35:47 "The "Darkness" data is platykurtic, while "Far Red Light" shows leptokurtosis." 09:35:49 and it's not nirvana 09:36:14 @all-dicts kurtosis 09:36:15 No match for "kurtosis". 09:36:18 Huh. 09:36:21 "One common measure of kurtosis, originating with Karl Pearson, is based on a scaled version of the fourth moment of the data or population, but it has been argued that this measure really measures heavy tails, and not peakedness." 09:36:58 I suppose there's a bit of a debate. 09:37:12 But http://en.wikipedia.org/wiki/Moment_(mathematics) does list is as the name for the fourth moment. 09:37:47 mathematics really fucked the word moment 09:38:58 fizzie: well it looks like apart from that one paragraph, most of the kurtosis article uses that too. 09:39:06 http://sgeoster.blogspot.com/ 09:39:11 Ok, this looks very bizarre 09:39:35 "kurtosis, n. Pronunciation: /kɜːˈtəʊsɪs/. Etymology: modern Latin, < Greek κύρτωσις a bulging, convexity, < κυρτός bulging, convex. Statistics. A shape characteristic of a frequency distribution that reflects the sharpness of the peak (for a unimodal distribution) and the shortness of the tails, and is generally measured by the quantity μ4/μ22 or its excess over 3 (μ4 ... 09:39:41 ... and μ2 being the fourth and the second moments about the mean of the distribution). 1905 K. Pearson in Biometrika IV. 181, I have already called β2−3 = η the degree of kurtosis. --" 09:39:42 itidus21: hey the physicists helped a lot 09:40:36 oh, how nice, blogspot.com now redirects me to blogspot.se 09:40:53 It has redirected me to blogspot.fi for a while now. 09:40:56 what i really mean is i love it when knowing the common interpretation of a word leaves one baffled when faced with a scientific or mathematical use of the word 09:41:15 I suppose the next version will helpfully translate everything to swedish as well 09:41:18 And after the July trip, the laptop's Chromium used google.be for all queries. 09:41:23 NO! NOT MORE NON-CANONICAL URLS 09:41:28 what's the point with all the TLD redirection crap? 09:41:47 olsner: perhaps it's red tape 09:42:04 * Sgeo ponders code-walkers in the presense of ... fexprs is the wrong thing to call them 09:43:47 * Sgeo still isn't sure how he's going to do quasiquoting in his Tcl-like 09:44:04 if it's only the address that changes it's just vaguely annoying (and of course completely useless), if it does change content I find it a bit scary that it does 09:44:14 * oerjan notes that the blogspot.no version doesn't actually have any norwegian in it 09:45:06 olsner: it could be a systematic increase in complication of the web 09:45:11 oerjan: it is just for country based censorship (or content filtering if you like that term more) 09:45:44 olsner: i'm just thinking how this must mess up reddit's link reposting detection... 09:45:47 * Sgeo isn't sure what code snippits are worth posting or not 09:45:57 [let] in Tcl? 09:46:06 to facilitate for countries who want to do DNS-based filtering or redirection of google contents? 09:46:40 as well as my visited link detection, but i guess i can only blame IE for only logging the final URL 09:46:44 Sgeo: ok. i have a theory about this one. begin by considering how you react to code snippets, and why 09:47:20 "Interesting, but I can't imagine copy/pasting this into a project, because copy/pasting makes me feel gross" 09:47:23 this way you can ignore anyone in your audience who isn't you 09:47:55 i don't know how people figure out how other people react to things 09:48:20 When people object to Tcl's variable scoping, what exactly are they objecting to? 09:48:39 Because I can write [let] just fine in Tcl 8.5 09:48:43 how does TCL scope variables? 09:49:14 most of my ideas will make a business go broke 09:49:47 As far as I can tell, lexically. Lemme try to check 09:50:08 lexically is, I think, the most sane way to scope variables 09:50:33 like right now i'm thinking about an animatronic showman in the middle of a retail store 09:50:56 http://pastie.org/private/ugtyuyy7idvprpmotqpddq 09:51:04 and shoppers in the store vote on what they want the animatronic to talk about with their web-connectable devices 09:51:07 shell has that nice thing where there is mostly only a single scope that all variables share 09:51:32 (unless you use fancy features like local, or subshells) 09:52:24 What's the fancy feature of "The way to get a new lexical scope is to make a proc"? 09:52:26 makes writing recursive functions somewhat fun before you get it 09:54:27 Wait, I now have 32 pageviews? 09:54:30 Seems a bit excessive 09:54:41 50% of #esoteric is reading your blog!!! 09:55:37 your blog was empty last time I checked, though, have you posted anything yet? 09:56:02 -!- monqy has quit (Quit: hello). 09:56:41 olsner, just the About me post 09:59:29 perhaps all the lurkers in #esoteric really _are_ paying attention 09:59:59 also, web spiders maybe? 10:00:08 * oerjan did visit though. 10:01:23 * oerjan suddenly realizes that the "web" in web spider really _shouldn't_ be clarifying, since real spiders also have webs 10:02:19 The intercobweb 10:02:27 oh and there's probably a new blogs list somewhere which some people probably are looking at. 10:03:38 and spambots 10:04:39 spiders make webs, but web spiders just traverse the pre-existing web ... shouldn't webmasters be the spiders? 10:05:09 maybe there are some non-spider insects that will take over spider webs, those would be a good name for spiders 10:05:18 if I haven't already nudged you towards it, check out the "Playing Scheme" page where I made a good effort to turn Tcl into a lisp-1 10:05:24 ....welp, that was my plan 10:05:43 implementing a lisp in a language is seldom a novel idea :) 10:05:53 ølsner 10:06:12 pilsner 10:06:48 öíøßñéë 10:07:46 olsner: spiders aren't insects hth 10:07:52 shachaf: was that supposed to be a rendition of olsner or just some random letters? 10:07:53 olsner, I think Tcl has novel ideas compared to CL and Scheme 10:08:05 olsner: No, olsner would be óøßñéë 10:08:08 So a blend of those is more ideal 10:08:45 oerjan: I think that's a sign that "insect" is incorrectly defined, because spiders are obviously insects 10:15:40 have you had any experience with statical builds at http://www.lamarelle.org/mo-zi-lla/mozilla.php 10:16:19 the gtk1 ones 10:16:39 I get error that it can't load libgtk-1.2.so.0 10:17:22 that'd be odd for a supposedly static build 10:17:32 yeah 10:18:48 how can I check what libs some executable requires? 10:19:09 "ldd blah" 10:19:51 firefox-bin: error while loading shared libraries: firefox-bin: cannot open shared object file 10:20:06 Well, that sounds reasonably static. 10:20:11 Perhaps. 10:21:17 but with static binary it says statically linked 10:21:31 check if firefox-bin is a shell script forwarding to a different actual binary? 10:21:44 That's what "firefox" is supposed to be. 10:21:51 (To "firefox-bin".) 10:21:51 firefox is shell script, firefox-bin is binary 10:21:52 hmm, right 10:22:07 maybe it's an a.out binary or something 10:22:21 I don't think so 10:22:23 These look far newer than that. 10:22:29 it has ELF header 10:22:31 Anyway, what does 'file' say about it? 10:22:46 The ones I tried seemed very dynamically linked. 10:23:07 -!- ais523 has quit. 10:23:23 otoh, maybe you can just install gtk 1.2? 10:23:24 ok. I had to use ./firefox-bin 10:24:33 http://sprunge.us/daEA funny how the "static" build refers to more shared libs than the "shared" build. 10:24:54 it links to linux-gate.so.1 libmozjs.so libxpcom.so libxpcom_core.so libplds4.so libplc4.so libnspr4.so libpthread.so.0 libdl.so.2 libgtk-1.2.so.0 libgdk-1.2.so.0 libgmodule-1.2.so.0 libglib-1.2.so.0 libXi.so.6 libXext.so.6 libX11.so.6 libm.so.6 libsmime3.so libssl3.so libnss3.so libsoftokn3.so libXt.so.6 libxpcom_compat.so libstdc++.so.6 libgcc_s.so.1 libc.so.6 libxul.so libasound.so.2 /lib/ld-linux.so.2 libXau.so.6 libXdmcp.so.6 libnssutil3.so libsqlite3.so libS 10:26:44 -!- MoALTz has joined. 10:26:45 the static build might have succeeded in linking something statically that had a bunch of dependencies of its own 10:26:53 ... 10:27:04 and somehow ended up dynamically linking to those dependencies? I dunno 10:27:24 Yes; the page isn't exactly clear what a "static build" means in Firefox 2 parlance. 10:27:41 god damnit. gtk1.2 conflicts with gtk2 10:27:45 Clearly it doesn't appear to mean "results in a binary with GTK etc. statically linked". 10:28:00 and given that xpcom and stuff are listed, I suspect that some parts of firefox/mozilla are not possible to link together statically 10:29:24 -!- oerjan has quit (Quit: leaving). 10:31:41 +# A Firefox static build is really a meta-component build, not truly static 10:31:41 +if test "$MOZ_BUILD_APP" = "browser" -a -n "$BUILD_STATIC_LIBS"; then 10:31:41 + MOZ_META_COMPONENT=1 10:31:43 +fi 10:32:09 is there a tool that can take a dynamically linked executable and link some or all of the so files into it? 10:32:56 -!- derdon has joined. 10:33:31 olsner: Apparently there are a couple; don't know how well they'd cope with something like Firefox though. 10:33:51 http://magicermine.com/ and http://statifier.sourceforge.net/ at least. 10:34:10 magic ermine? not the most obvious name for such a tool 10:34:33 It's not exactly the same as statically linking in the first place, since the code is built to deal with all the dynamic-linking hoops to jump through. 10:35:27 right, so it might be less efficient than it would be if it was build for static linkage in the first place? 10:36:03 otoh, if that really mattered for some piece of code you might have made sure that code was in the same library in the first place 10:44:10 I'm tired of fiddling with gtk1.2 now? can someone point me to already built shared gtk1.2? 10:44:21 I like how this graph includes strtoul: http://statifier.sourceforge.net/statifier/data_flow.html 10:45:13 I suppose the author spent way too much time making that particular utility work 10:46:22 It's kind of a trick. 10:46:25 nortti: get that package that conflicted with gtk2, unpack it somewhere without installing 10:47:04 olsner: I was compiling from source 10:47:21 It would probably be a much simpler solution to just pack together a program and all of its dependencies into a tarball, then attach a static binary to that that “executes” it intelligently. 10:47:29 "Now we have almost statified the whole binary, but one problem remains: these three values are in hexadecimal notation." 10:48:37 Gregor: too boring 10:49:42 olsner: statifier is kind of a trick, really; from what I saw about the (proprietary) Ermine, it does the actual work by itself too, and tries to deal with library-specific data files and whatnot too. 10:50:47 the ermine pages didn't say a whole lot, but sounded like it might be doing something more like automatic packaging than staticification 10:52:28 "Ermine-packed applications are not snapshots: instead they can be thought of as small virtual machines." 10:52:46 ... otoh, the sentence before that says that ermine creates "self-contained executables from dynamically-linked applications" 10:52:50 Well, it's proprietary, so the pages are of course mostly useless. 10:53:05 But the "Features" page does say that it will not affect the file system of the host, and can be run from read-only media. 10:54:23 Which sounds slightly difficult to do if you wanted to use the system's dynamic loader to do all the heavy lifting. 10:55:03 is it "legal" to redistribute open-source programs modified by magic proprietary tools? 10:55:06 They have some "Ermine'd" demo files but I need to head to the shoppe, to use an oko-term (I think), instead of taking a peek at them. 10:55:21 "Files packed with Ermine are large, but may neither be modified with the strip program or on-the-fly executable compressors like UPX. If you do so, they will stop working." 10:55:54 sounds like their magic is a bit brittle 10:56:13 Also, what is "Western Quake 3"? The link goes to domain-squatter. 10:56:30 Apparently an "Old West" Quake 3 mod. 10:56:33 "Hokay." 10:56:57 for some reason that reminds me of damn small linux's packages that contained shell scripts that mounted the images contained in them 10:57:47 -!- pikhq_ has joined. 10:58:07 -!- pikhq has quit (Ping timeout: 256 seconds). 11:00:39 all linux software should be packaged with something similar to that ermine thing, so that you can install it anywhere and not worry about dependencies 11:00:47 ... and so that it can remain working for several years even after revolutions like gtk1.2/gtk2.0 have happened 11:00:49 why am i awake 11:01:16 because it's one a-clock and the sun is up 11:01:40 it is not one a-clock here 11:01:43 olsner: that is exactlt what damn small linux's packages were 11:02:26 -!- david_werecat has quit (Ping timeout: 252 seconds). 11:03:28 kmc: maybe your mind is in finland? pretty sure it's daytime there 11:03:40 well it required root privledges but still 11:04:11 non-root users should be able to mount things 11:04:20 losetup? 11:04:30 what? 11:05:01 well, with some appropriate limits on what/how/where to mount and the resulting permissions, otherwise there are security issues 11:05:08 yes 11:05:34 you can mount as normal user if there is correct /etc/fstab entry 11:07:24 there are other mechanisms for letting users mount stuff too 11:07:51 on linux users can typically mount fuse filesystems where the fuse process runs as themselves 11:08:18 is that safe? 11:08:48 i.e. is the fuse system in the kernel safe from evil fuse processes? 11:09:10 it's supposed to be 11:09:24 if you're asking "are there bugs" then of course, it's linux, there are bugs 11:10:38 Obviously. 11:14:35 in my operating system, all file systems will be user-space file systems and safety from untrusted file systems will be built in 11:15:26 same here 11:17:14 -!- Phantom_Hoover has joined. 11:18:50 it'll be something like any process implementing the directory interface can be mounted anywhere 11:20:09 wow. netsurf is better rendering wise than gecko 1.8 11:20:40 hv3 also 11:20:55 on the other hand ff2 has decent javascript 11:21:25 sorry, I mean Bon Echo 11:26:25 -!- ogrom has quit (Read error: Connection reset by peer). 11:26:39 -!- epicmonkey has joined. 11:27:26 * Sgeo starts running around shouting "booleans are bad!" 11:27:31 why? 11:28:30 typedef long double BOOL; 11:28:41 they don't carry a proof 11:28:49 shouldn't char be enough? 11:29:18 http://existentialtype.wordpress.com/2011/03/15/boolean-blindness/ just read that, not sure what to think of it 11:29:30 char can only hold 8 bits of truthiness 11:29:33 read as in past tense, not imperative 11:30:46 wow... midori is using 41.2MB of RAM 11:31:48 by the way are there any browsers with emebedded gecko for linux? 11:32:46 now 42.6MB 11:33:24 44.5MB 11:33:38 -!- asiekierka_ has joined. 11:33:38 -!- asiekierka_ has quit (Client Quit). 11:33:41 MORE AS THIS STORY DEVELOPS 11:34:02 -!- asiekierka has joined. 11:34:13 how can a browser be so bloated? 11:34:32 and midori kinda lightweight 11:34:56 opera mini (for j2me, at least) runs on <= 2MB of heap 11:35:05 I know 11:35:28 but it doesn't have html rendering engine running localy 11:35:53 no 11:36:19 Mosaic! 11:36:30 links2 uses around 2.5MB on the same page midori is now loading 11:36:31 (I have no idea how much space Mosaic took up) 11:36:37 Sgeo: mosaic-ck! 11:36:47 too bad it doesn't like lesstiff 11:37:19 -!- atriq has joined. 11:37:32 by the way has anyone of you got arena web browser running= 11:37:38 * Sgeo almost wishes ViolaWWW caught on 11:37:51 why? 11:38:08 because of it's interesting html extensions? 11:38:14 *its 11:38:33 oh, it has "page cloning (multiple windows)" 11:38:38 which one is used in which situation? 11:39:00 nortti, the scripting language 11:39:16 erwise is pain in the ass to get to build 11:39:29 I never got it to run correctly 11:40:09 Actually, hmm, the language is kind of ugly 11:40:49 every language is kind of ugly 11:40:57 it id better than javascript? 11:41:04 *is it 11:41:16 nortti, no idea, I barely know a thing about it 11:43:36 "What follows is a screendump of a demo of an embedded viola application that lets readers of this HTML page communicate by typing or drawing. Like the chess board application above, this chat application can stand-alone (and have nothing to do with the World Wide Web), or be embedded into a HTML document. 11:43:36 By the way, to make this possible, a multi-threaded/persistent server was written to act as a message relay (and to handle HTTP as well)." 11:44:37 awesome 11:44:43 Sounds AJAXy many years before XMLHttpRequest 11:45:24 I should start using violawww and complain about pages not supporting violawww's scripting language 11:51:05 also complain if they use more than 6 bytes of memory 11:51:14 :D 11:52:10 why isn't there a way to run j2me software on linux 11:55:27 -!- Zuu has quit (Ping timeout: 260 seconds). 12:01:15 -!- atriq has quit (Ping timeout: 276 seconds). 12:15:24 -!- Zuu has joined. 12:15:26 -!- Zuu has quit (Changing host). 12:15:27 -!- Zuu has joined. 12:22:33 nortti: There isn't? I was pretty sure there was a J2SE-based J2ME emulgator, I don't see why that wouldn't run under Linux as well as anywhere. 12:22:41 "Write once, run anywhere," after all. 12:23:31 PhoneME project page seems to be dead. :/ 12:23:48 Or maybe it's just moved. 12:26:12 NetBeans has a J2ME emulgation thing too. 12:30:29 -!- atriq has joined. 12:32:59 -!- atriq has quit (Read error: Connection reset by peer). 12:35:04 -!- kinoSi has quit (Read error: Connection reset by peer). 12:35:32 -!- kinoSi has joined. 13:04:33 nortti: microemulator 13:05:14 also http://www.opera.com/developer/tools/mini/ if you manage to get a java plugin working in linux 13:13:27 "Water is considered the least toxic chemical compound, with a LD50 of 90 g/kg or more in rats.[3]" -- WP 13:13:41 Wait, wouldn't saline solution be even less toxic? 13:15:37 "rapid infusion of normal saline can cause metabolic acidosis" 13:18:00 Hmm, I'm not sure they keep LD50 data of solutions. 13:20:13 But, from that same paragraph: "[saline] has long been believed to be the safest fluid to give quickly in large volumes." 13:26:03 Phantom_Hoover: "least toxic chemical compound". 13:26:37 Ah. 13:29:52 Hmm, I wonder if something like perfluorohexane might beat even that. 13:30:29 Its LD50 is ">5000mg/kg", which is unhelpful. 13:30:49 -!- oonbotti has quit (*.net *.split). 13:30:49 -!- mtve has quit (*.net *.split). 13:30:49 -!- glogbackup has quit (*.net *.split). 13:30:49 -!- atehwa has quit (*.net *.split). 13:30:49 -!- HackEgo has quit (*.net *.split). 13:30:49 -!- EgoBot has quit (*.net *.split). 13:30:49 -!- SimonRC has quit (*.net *.split). 13:30:49 -!- ssue has quit (*.net *.split). 13:30:49 -!- shachaf has quit (*.net *.split). 13:30:49 -!- comex has quit (*.net *.split). 13:32:24 I read ">5000g/kg" for a while, before realizing it was unrealistic 13:34:27 -!- MoALTz_ has joined. 13:35:15 haha 13:35:58 That just represents taking a bath in it. 13:36:16 I wonder what the LD50 of excessive body fat is 13:36:48 "how fat would you have to be to be 50% dead" 13:37:07 what about helium 13:37:27 assuming you get enough oxygen in between, shouldn't it be possible to breathe more or less an arbitrary amount of helium without any effect? 13:37:38 some necessary substances should come with both a positive and negative LD50's 13:37:41 i guess that doesn't count as a "dose" then 13:37:59 -!- MoALTz has quit (Ping timeout: 272 seconds). 13:40:00 apart from the minimum amount of oxygen in breathing air (iirc something in the ballpark of 5%), the rest of it probably just needs to be reasonably inert, and I see no reason for helium to be very different from nitrogen there 13:40:06 kmc, whatever the human pressure limit is. 13:40:13 Oh wait, hmm. 13:40:31 Narcosis might kick in pretty soon. 13:41:42 WP says helium's 'relative narcotic potency' is 0.045 vs. 1 for nitrogen, and fatal pressure for nitrogen is 10 bar or so. 13:41:54 > 10 / 0.045 13:41:55 222.22222222222223 13:42:17 huh, just ran into a situation where static types would have uncovered not a correctness bug, but a performance bug 13:42:26 -!- david_werecat has joined. 13:42:40 i was doing ''.join(a_string_here) in python 13:42:47 because that string used to be a list 13:43:33 -!- MoALTz__ has joined. 13:43:54 Maybe I should try Liskell 13:44:26 liskell is dead 13:44:31 it's a patch set against GHC 6.old 13:44:36 Lisk is a bit less dead 13:46:07 -!- MoALTz_ has quit (Ping timeout: 240 seconds). 13:46:39 apparently, xenon has a narcotic potency of 25.6 13:46:54 "This software is incomplete. Don't try to use it." 13:46:57 * Sgeo sads 13:46:58 I'd have expected noble gases to have similar (and low) potencies 13:47:29 olsner, narcosis isn't caused by a reaction, though. 13:47:52 apparently they don't even properly know what causes it 13:48:04 Sgeo: welcome to haskell 13:48:26 a bunch of incredibly cool ideas which are each implemented well enough to write a paper and then abandoned 13:48:53 olsner, although the WP article does say that it's at least partially due to the gas dissolving inside cell walls and getting in the way. 13:48:57 that is not universally true (GHC team are dedicated, skilled software engineers working on a 20+ year old system) but it is depressingly often true 13:49:33 Is it true of CL too? 13:50:07 don't know 13:50:24 http://www.lambdassociates.org/blog/bipolar.htm suggests as much 13:50:27 but it might be high-octane bullshit 13:50:58 High-octane? 13:51:14 tl;dr: Lisp is so flexible and powerful enough that you can easily DIY an 80% solution which is good enough for your purposes 13:51:15 What, powerful? 13:51:31 which means there is no culture of standardizing around mature, complete systems 13:51:31 it may be a good description of the behavior of the particular class of lisp programmers it describes 13:52:22 Phantom_Hoover: yeah, gasoline (in the USA anyway) is given an octane rating for power density 13:52:36 well sorry not power density 13:52:37 "The higher the octane number, the more compression the fuel can withstand before detonating." 13:52:37 Yeah, but why apply it to bullshit? 13:52:42 dunno 13:52:45 it's a figure of speech 13:53:01 -!- ogrom has joined. 13:53:11 -!- MoALTz__ has quit (Quit: brb). 13:53:20 High-grade would be what I'd normally use more? I dunno, it's just like high-octane seems like it'd be a more potent form of something. 13:53:30 -!- MoALTz has joined. 13:53:38 Also yeah, they taught us that in chemistry for some reason. 13:53:41 yeah i mean that it's a potent form of bullshit 13:54:14 aww, they renamed the high-octane nightmare fuel trope :( http://tvtropes.org/pmwiki/pmwiki.php/Main/NightmareFuel 13:55:03 That was actually quite a sensible idea, considering that most people just called it that anyway. 13:55:18 kmc, I've seen that sentiment elsewhere about Lisp 13:55:24 no-one thought to apply the rule of cool? 13:56:32 olsner, well I think the big problem was that they had one set of nightmare fuel pages, and then another which had no obvious difference except that the stuff tends to be a bit scarier. 13:57:30 kmc, more or less the same thing http://www.winestockwebdesign.com/Essays/Lisp_Curse.html 13:57:31 hmm, I guess that makes sense 13:58:02 yeah in fact i'm not sure i'm summarizing that article or a different one 13:58:22 yeah the one you just linked quotes the one i linked 13:58:25 that's how i found it actually 13:58:33 Ah 13:58:53 -!- MoALTz has quit (Ping timeout: 245 seconds). 13:59:10 I think you were summarizing the one I linked more than the one you linked 13:59:22 Therefore, we are living in the Tardis monad. 13:59:47 i am suspicious of these kinds of arguments though 13:59:51 I think this whole "lisp is powerful" idea is only prevalent among lisp weenies 14:00:22 high-octane lisp 14:00:23 because they play into a certain attitude adopted by many programmers 14:00:26 among other things, the whole concept of powerfulness seems too poorely defined to be useful for anything except smugness 14:00:42 "i'm a badass ninja who's too smart and clever for the dull corporate world and that's why i can't make anything useful or work with other people" 14:00:50 olsner: i agree with that 14:00:57 but i do think Lisp is powerful in the vague sense 14:01:10 it's powerful in that you can do almost anything in a small amount of code 14:01:13 but in an incomprehensible way 14:02:15 hmm, that reminds me of perl, but the stereotypical perl coder does seem a bit different from the smug lisp weenies 14:02:21 sure 14:02:25 every community has their quirks 14:02:40 and you're talking about stereotypes not actual people 14:02:46 or even unbiased archetypes 14:03:49 perhaps perl hackers recognize and appreciate terse and incomprehensible ugly hacks, while lisp coders don't recognize the incomprehensible part and just think it's beautiful and everyone else is stupid 14:04:26 yeah, I don't even know any actual people that fit into any of these stereotypes 14:05:29 yeah that seems correct from my understanding of the respective stereotypes 14:05:30 * Sgeo vaguely listens to some CL tutorial on YouTube 14:05:44 Although one of the video titles mentions setq :/ 14:06:02 it's also funny how the definition of "Lisp" changes depending on what claim you're trying to make about it 14:06:14 "Lisp is simple and elegant" => Lisp = tiny subset of R5RS Scheme 14:06:26 "Lisp is mature and industrial-grade" => Lisp = ANSI Common Lisp 14:09:25 I do think CL macros are easier to understand than Scheme macros. This may be a failing on my part though >.> 14:09:48 -!- glogbackup has joined. 14:09:48 -!- oonbotti has joined. 14:09:48 -!- mtve has joined. 14:09:48 -!- atehwa has joined. 14:09:48 -!- HackEgo has joined. 14:09:48 -!- EgoBot has joined. 14:09:48 -!- SimonRC has joined. 14:09:48 -!- ssue has joined. 14:09:48 -!- shachaf has joined. 14:09:48 -!- comex has joined. 14:10:03 -!- glogbackup has left. 14:10:03 -!- glogbackup has quit (Excess Flood). 14:11:50 Sgeo: I think you're right 14:12:03 I guess the hygienic macros are supposed to be sufficiently better that it's worth the extra complication 14:13:45 Scheme's macro system almost defeats the entire point of Lisp 14:13:58 but operatives are vastly superior to either option ;) 14:14:31 Unless you want to do code-walking. 14:14:45 how's that? 14:15:12 How do you statically determine what forms are code to be processed? 14:15:37 oh, well, i have absolutely no idea how you "statically" do anything in an fexpr language 14:16:15 i think shutt wrote about that a bit but i did not read it :) 14:17:08 kmc, googling gives no indication whatsoever what these operatives are. 14:17:31 http://web.cs.wpi.edu/~jshutt/kernel.html 14:17:41 http://mainisusuallyafunction.blogspot.com/2012/04/scheme-without-special-forms.html 14:21:39 -!- david_werecat has quit (Quit: Quitting...). 14:21:45 kmc, hence operatives not being superior when you want to do stuff statically 14:22:03 -!- david_werecat has joined. 14:24:11 yep 14:25:37 -!- DHeadshot has quit (Read error: Connection reset by peer). 14:25:43 -!- DH____ has joined. 14:26:53 * Sgeo vaguely considers porting some Clojure stuff to CL 14:27:46 -!- asiekierka has quit (Quit: Connection reset by PO). 14:27:52 -!- MoALTz has joined. 14:27:58 the way i see it, coding is a bit like space station repair 14:29:04 * kmc gets popcorn 14:29:11 in order to survive outside the space station you need a fancy suit, im guessing in practice such things are done with robots 14:29:28 but they made some wonderful tv moments 14:29:32 coding is usually done with robots, yes 14:29:42 i mean.. repairs to the exterior of a space station 14:29:55 a lot of it is done by humans in suits 14:30:00 wow... 14:30:03 assembly to 14:30:04 too* 14:30:09 robots aren't versatile enough 14:30:09 no, programmers don't wear suits 14:30:15 anyway what does this have to do with programming 14:30:16 especially not the ones that do assembly 14:31:00 well.. the problem is you can't do that fancy french wall-jumping in a spacesuit 14:31:17 ...I don't think a straight transliteration will work 14:31:34 parkour 14:31:40 is this analogy going to make any sense at any point 14:32:05 Incidentally whilst trying to find out what operatives are I stumbled upon this little... gem: http://emacswiki.org/emacs/WhyDoesElispSuck 14:32:15 so there is this imaginary space whereby someone can do parkour on the moon 14:32:29 Clojure's defmulti takes a function as an argument. Making a macro would have the macro need to see the function passed in to find out the args, which it can't do 14:32:34 space station -> parkour on the moon -> ??? -> programming 14:32:39 itidus21 have you considered blogging 14:32:42 but, it's constrained by the need for a suit 14:32:52 "7 awesome reasons why programming is like parkour on the moon and this proves ruby is the best" 14:32:55 => 999999999 pageviews 14:33:09 Wait, can just use &rest args, but that uglies the generic. 14:33:20 another problem with the moon is that there are no buildings to do parkour on 14:33:34 there are a few 14:33:37 they're far apart 14:34:02 kmc: it's really for the best if i don't complete the analogy 14:34:05 olsner, OTOH you can jump further. 14:34:32 Space suit analogy: Programming in Erlang is like fixing your space station from inside it: It should keep running during the fix. 14:34:37 Man I really want them to make Assassin's Creed 4: Moon. 14:34:38 -!- nooga has joined. 14:34:47 I just realized that that has nothing to do with space suits. 14:34:59 if i say any more and it will be a case of "i wish i stopped earlier" 14:35:48 Sgeo, that'd be far better than now, when they have to turn the ISS off to fix it. 14:36:44 I honestly hoped that that was where itidus21 was going. 14:37:23 itidus21: does your analogy involve space suits being like monads? 14:37:46 nonono, parkour is a monad 14:37:59 it is honestly best i stop where i stopped 14:38:04 combining burritos and parkour using monad transformers 14:40:01 itidus21, hell no, it was just getting good. 14:40:05 or if i do continue it, i need to think very carefully about it 14:40:26 Why am I still Lisping without paredit? 14:42:26 well, suppose you could impart the knowledge of mathematics to someone without them becoming a mathematician 14:43:12 * Sgeo does a let inside a macro without using a gensym 14:43:35 omg visionary 14:43:38 like everything was done by showing them ways they can manipulate the objects around them 14:45:26 itidus21, so I suppose you're the exact opposite. 14:45:52 math just feels like a black hole in my mind 14:47:04 -!- nooga has quit (Ping timeout: 256 seconds). 14:47:31 i approach it still like a child] 14:48:20 maybe i don't trust it 14:49:07 Yeah, it's always scheming away. 14:49:16 The knowledge of mathematics without being a mathematician must suck. Knowing facts, but being unable to have real fun with them. 14:49:31 Nah, you'd just not care. 14:49:39 i wasn't describing myself 14:49:49 i don't hvae the knowledge 14:49:56 -!- nooga has joined. 14:50:39 but i do find i spend hours and days sometimes puzzling over some trivial aspect of notation because i haven't studied anything 14:51:34 radical suggestion #534, maybe study something 14:52:46 i am aware that what i am about to say is wrong, and offensive, which is why i said it would be best if i stopped my analogy earlier 14:53:22 but, one thing i have going for me is that i can think about things without knowing how they work 14:53:27 because i don't know how they work 14:53:36 :) 14:54:50 -!- nooga has quit (Read error: Connection reset by peer). 14:55:12 * Sgeo finds himself counting parens too many times for his comfort 14:55:42 hmm however.. 14:57:21 kmc, there's another advantage to non-fexpr macros: They're usually pure-functional (in interface) 14:57:48 I'm finding it very easy to test my macros via macroexpand 14:59:04 olsner: running opera mini under another browser kinda defeats the purpose of very light browser 14:59:42 nortti, not if host browser doesn't struggle much with this one thing but with many others 15:00:11 also new opera mini is kinda unstable on android and it also uses some kind of j2me emulation 15:00:26 Sgeo: what do you mean? 15:00:27 i don't like game designs that sit well in mathematics. nor designs that show off some cute concept 15:01:15 i like the way that en passant, castling and pawn promotion make the rules of chess more complicated 15:01:18 nortti, perhaps the heavyweight browser is only heavy on, say, gmail, and doesn't struggle much with Opera Mini emulator. By visiting Gmail in Opera Mini in host browser, you do save memory 15:01:36 itidus21, you'll hate Go then. 15:01:46 Although I guess Go has a few complications. 15:02:10 Sgeo: it is heavy on the fucking about:blank 15:02:42 those little stipulations so that if you try to generalize chess you end up trying to generalize castling 15:02:54 i like how messy it is 15:05:26 I have a feeling that these macros I'm writing actually _cut down_ on ease of doing what I want to do 15:05:49 It's essentially, at the CLOS level, going to dispatch on a single value 15:06:09 -!- nooga has joined. 15:06:21 also, i think the hard work in game design is coming up with something good which isn't highly derivative 15:06:44 it seems a bit like making music, that if it's a hit is almost random 15:06:50 Who says "isn't highly derivative" is a requirement? 15:07:09 Minecraft took heavy inspiration from Infiniminer and Dwarf Fortress. 15:07:36 All roguelikes are ultimately inspired by Rogue. 15:10:44 and a sort-of-rhetorical question i have there is, are the best video games simply a small seemingly random subset of all possible video games, or are they the fruit of hard work and pure intentions? 15:12:10 What's the difference? 15:12:30 Being a "fruit of hard work" does not make it any less part of a subset of all possible video games. 15:13:22 while i can't disagree, part of me finds that quite troubling 15:15:00 Ugh, I'm pretty sure I need &whole, but not entirely sure whether I can use it in an ordinary lambda list 15:15:43 i guess in general such work is about having a query and finding an answer 15:17:11 nortti: you should also be aware that the JVM and stuff probably adds about 150MB to the memory footprint 15:17:53 Nope, not &whole 15:17:55 olsner: I know 15:17:57 That's a macro thing 15:18:00 * Sgeo faceplants 15:18:11 nortti: and also, opera mini on android hasn't been j2me-based for a long time 15:18:19 olsner: it hasn't? 15:18:55 Sgeo: ok i can take that as a given. kind of like how a picture is just a very small subset of all possible pictures 15:19:14 ^for some width,height,color depth 15:19:17 olsner: there isn't just j2me virtual machine? 15:21:31 I don't recall which version it changed, but nowadays it's a real android app 15:22:08 probably when it went from rock solid to the current one that crashes if I dobletap too fast 15:22:09 -!- nooga has quit (Read error: Connection reset by peer). 15:22:12 -!- zzo38 has joined. 15:22:55 so speaking of pictures... i wonder if any artists in 2012 will ever get the same reknown as the da vinci, dali, picasso, van gogh, matisse, monet.. and all the others who i haven't heard of 15:28:51 given the development of photography, high-speed photography, digital art, laser printing, etc i think painting on canvas with brushes and paint finds a very traditional niche like chess vs crysis 3 15:30:28 nortti: looks like 5.0 was the version that introduced the "native" android port 15:31:05 olsner: ok. I was right 15:31:23 -!- MoALTz_ has joined. 15:33:50 one would think that an obvious bug like a crash-on-double-tap would've been found and fixed in the years since then 15:34:18 -!- MoALTz has quit (Ping timeout: 245 seconds). 15:35:10 olsner: it only crashes on fast doubletap after it start after phone shutdown or prior chrash 15:35:30 -!- zzo38 has quit (Remote host closed the connection). 15:35:38 interesting 15:36:20 or if I killed it with advanced task killer 15:36:31 but after page load it doesn't crash 15:37:27 on fast doubletap that is 15:37:40 it also seems to leak memory 15:39:28 or if it doesn't there must be a hell of a reason for it to start blanking pages because memory is running low if I only have 1 small page open on it and it handle 50 tvtropes pages after crash/reboot 15:39:55 oh and everything else including sense is killed with advanced task killer 15:41:43 if I reload the blanked pages 1 at the time it eventualy crashes 15:41:48 -!- MoALTz_ has quit (Ping timeout: 245 seconds). 16:02:35 I know what my next blog post will be: 16:02:47 Complaining about a problem that doesn't exist in practice. 16:03:05 It exists in theory though, and THAT BOTHERS ME 16:03:22 that's probably enough of a theme to provide the entire blog 16:04:40 (Note: I don't know whether or not it actually exists in practice. I do know that everyone who I complained about it to claimed that it generally doesn't occur. 16:05:35 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 16:06:06 I think Common Lisp has no problems though. 16:06:33 (And by that I mean theoretically doesn't have the problem I have in mind. Although in practice it probably does. How's that for a braintwister?) 16:06:44 Sgeo: what problem? 16:07:02 nortti, name collisions 16:07:03 -!- mig22 has quit (Quit: mig22). 16:07:28 Assuming that "Hey, everyone in the world should think up unique names" is not a solution. 16:07:29 Sgeo: how does it not exist in practice? 16:07:56 Dunno, ask a Smalltalker or a Tcl'er, I don't have enough personal experience. 16:08:42 isn't packages/modules/namespaces/etc a good solution for that? 16:08:49 olsner, depends on the system 16:09:08 If it requires the packages/modules/namespaces to have unique names from eachother, I would say no. 16:09:24 Because again, it's asking everyone in the world to gensym 16:09:25 e.g. let everything get its own unique name (potentially with a very long prefix), then you have another mechanism to remove the prefixes of the stuff you actually use 16:10:36 olsner, is there a central server? Is there pre-existing unique names (e.g. domain names ala Java)? If not... still possibility for conflict 16:10:54 Although I grant that with long enough prefixes, chance of collision might be low, hmm... 16:11:06 -!- david_werecat has quit (Ping timeout: 240 seconds). 16:11:59 I like Common Lisp's way: If you have two packages with conflicting names, just load one, rename it, then load the other 16:12:05 cpan and hackage do have a central server, although it's not entirely authoritative it's a good check for whether you ought think up a more unique name for your new library 16:13:07 is hackage 2.0 getting anywhere? 16:13:17 java's domain name system has good uniqueness, but lacks a way to rename imported things 16:35:02 * Sgeo suddenly notices alexandria's symbolicate 16:35:39 Could have used that, although sometimes it's nice to have explicit control of what package the symbol goes in 16:35:40 -!- ogrom has quit (Quit: Left). 16:40:40 -!- kidanger has joined. 16:42:42 -!- FreeFull has quit (Ping timeout: 276 seconds). 16:43:11 -!- FreeFull has joined. 16:59:27 /nick typedef_typename 17:02:06 * pikhq_ finds it weird that so many Javaers are opposed to static import... 17:02:27 import static java.lang.Math.*; // Tada! 17:02:35 cos(PI * theta); // works 17:03:25 And yet, it's somehow *bad style* in the language. 17:03:56 http://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html does not consider it "bad style" but "use sparingly" 17:04:26 I think it was supposed to only discourage from misuse, not all use 17:04:35 people love "never use X" rules 17:04:39 cause they are simple 17:04:42 but rarely the right answer 17:05:14 And the more verbose the better, right. 17:05:22 when http://livegrep.com made its debut on reddit, there was a commenter shocked to discover that the Linux kernel contains "over 50" uses of 'goto' 17:06:21 That low? Doesn't it contain a bytecode interpreter? 17:06:34 (and thus *really should* use computed goto) 17:06:37 it contains probably thousands of uses of goto 17:06:42 and yes several bytecode interpreters 17:06:43 Did... did you just use a * in Java!? 17:06:45 To import!? 17:06:47 computed goto? 17:06:51 but also uses goto for error handling ubiquitously 17:06:59 Never do that! You're supposed to painstakingly type out each single thing you use from each package! 17:07:10 Lumpio-: no you're supposed to use your fancy IDE to type it out for you 17:07:15 Java isn't a language for humans, you see 17:07:16 Sgeo: In GNU C, you can take the address of labels, and dereference them in a goto. 17:07:27 Sgeo: This is handy for implementing certain weird forms of dispatch. 17:07:28 I guess they just stopped counting at 51 and decided the whole kernel is beyond repair 17:07:30 ah 17:07:32 Sgeo: For instance, threaded code. 17:07:40 you can even pass a label address into inline assembly :3 17:08:18 Sgeo: And threaded code using computed goto is basically the way to fast interpreters. 17:08:46 did you see the thing about how the LuaJIT interpreter pre-decodes the next instruction before its computed jump 17:09:06 to keep functional units busy in the event of a mispredicted indirect jump 17:09:34 No, but it makes a lot of sense. 17:09:50 http://nominolo.blogspot.co.uk/2012/07/implementing-fast-interpreters.html 17:12:25 Yeah, pretty much. 17:23:47 -!- nooga has joined. 17:27:25 -!- MoALTz has joined. 17:42:14 -!- asiekierka has joined. 17:53:49 OK so I turned adblock off on reddit, all the ads I've seen so far have been thanks for turning off adblock. 17:53:57 lol 17:56:54 OK wow I just checked 6 different pages; all but one of them have one of two thanks-for-turning-off-adblock ads. 17:57:25 And the other one is for some reddit gift initiative. 17:58:40 Amazing. 17:59:28 Remind me how this site makes money. 18:11:26 they don't 18:11:41 they were down to 1 engineer for a while 18:13:51 Phantom_Hoover: I suspect they exist primarily as a leech on Advance Publications. 18:14:45 You don't have to make money when you can convince some corporation they should throw money at you. 18:44:07 -!- asiekierka has quit (Remote host closed the connection). 19:19:10 -!- impomatic has joined. 19:19:44 Hi, how do I reset my esolang wiki password when I didn't enter an email address? :-) 19:22:35 You yell at elliott until he resets it for you. 19:22:54 (He's online, just not in the channel; use /msg.) 19:23:31 Thanks... messaged 19:24:43 I have the Mouse book, so I thought I'd update the wiki a bit :-) 19:52:54 -!- oerjan has joined. 19:58:39 -!- epicmonkey has quit (Ping timeout: 265 seconds). 20:01:29 -!- nooga has quit (Read error: Connection reset by peer). 20:04:17 oh dear, good math bad math does a monad tutorial 20:05:14 :( 20:05:33 http://scientopia.org/blogs/goodmath/2012/08/19/monads-and-programming/ 20:05:51 think i won't click that 20:06:06 why? 20:06:22 because it's probably wrong in an infuriating way 20:06:31 :D 20:06:36 but even if it's a fine monad tutorial, it's still one more monad tutorial in a world that already has too many 20:10:11 -!- monqy has joined. 20:10:53 and it will remind me how fucked the teaching of Haskell is 20:11:19 technically he spends most of the time on scala and pure category theory 20:11:38 okay 20:12:05 he was already doing a ct series 20:32:04 -!- heroux_ has quit (Ping timeout: 246 seconds). 20:36:28 -!- kinoSi has quit (Read error: Connection reset by peer). 20:36:56 -!- kinoSi has joined. 20:41:38 -!- atriq has joined. 20:45:38 -!- soundnfury has joined. 20:48:04 kmc, what if it's a thoughtful article for people who know about monads? 20:48:32 well oerjan described it as a "monad tutorial" >_< 20:48:49 Oh, he fluffed the definition of monads. 20:48:50 good math bad math already ran a completely wrong article about finger trees 20:48:56 Yeahno. 20:48:56 long ago 20:50:41 (He gets the M a part and the return :: a -> M a, but then he says something about... "An operation which takes a function that transforms a value wraped in M into another value (possibly with a different type) wrapped in M." 20:50:44 *) 20:51:13 At first I thought he'd been going for the return/join/fmap definition and forgot join, but that third one isn't fmap either. 20:52:01 you know, if so many otherwise intelligent people have difficulty understanding monads, maybe they're just a bad idea. 20:52:16 hmm, that sounds like m (m a -> m b) -> ??? or something 20:53:13 soundnfury: often people think they're confused about monads when they're actually confused about something else 20:53:16 I'd say he means (m a -> m b) -> ???, but that's just as bad. 20:53:30 like polymorphism, type classes, or just basic haskell shit 20:53:35 maybe it is fmap, if you add a comma after "operation which takes a function" 20:53:44 or just basic haskell is shit <-- FTFY 20:53:46 ;P 20:53:52 yeah you're not trolling at all 20:53:53 the operation takes a function, and the operation transforms a value ...? aduno 20:54:38 kmc, also there's the aspect that people generally want to know what monads "really are", because even with the definition doesn't obviously associate with any of their uses. 20:54:57 yeah 20:55:28 i think "otherwise intelligent" people don't have too much trouble if they just learn some use cases of monads and worry about the abstract idea later 20:55:34 at least that's the advice i have given and heard a lot 20:55:38 but what do i know 20:55:58 That's probably the best advice to give. 20:56:05 nobody in the haskell community seems interested in finding the empirically best way to teach things 20:56:15 we just shout at each other about how our pet explanation is best 20:56:18 with nothing to back it up 20:56:55 So it's all other programming didactery writ small? 20:57:06 soundnfury: you might be interested in http://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/ 20:57:09 if you have not seen it 20:57:17 oh, "Each element of a monadic sequence in Haskell is an instantiation of the monadic functor" 20:57:27 what 20:58:04 The... 20:58:06 Monadic Functor 20:59:10 atriq: iirc he actually means functor in the categorical sense 20:59:22 Oooh 20:59:25 atriq, monads are functors, remember? 20:59:50 i was a bit miffed that he only mentioned the natural transformations much later, though 21:01:03 whatever that article is about it doesn't seem to apply for monads in haskell, afaict 21:01:33 well Monads _should_ be Functors, it's just not required for hysterical raisins 21:01:44 That's why I didn't capitalise. 21:02:51 def flatMap[T, U](op: List[T] => List[U]): List[U]. 21:03:21 olsner: scala's flatmap is as close to haskell's >>= as you can get in that language 21:03:49 I think that's the mumbo jumbo operation he talked about anyway 21:04:07 he prefers scala's syntax to haskell's, that maniac 21:04:31 although he doesn't mention do notation at all. 21:04:37 but I guess that flatMap can be used to implement =<<, even though it's Wrong? 21:05:10 oh hm the type looks strange indeed 21:06:02 oh, and he later claims that >>= is "deeply connected with the fmap operation" 21:06:17 "I really prefer map and flatMap to >> and >>=" 21:08:39 olsner: well it _is_ deeply connected in the category theory formulation 21:08:46 hmm, ok 21:09:47 something about >>= being a combination of fmap and join? 21:10:07 -!- zzo38 has joined. 21:10:07 is flatMap supposed to be join then? 21:13:28 I was at anime convention for three days ending today 21:13:31 olsner: flatmap is >>= i say 21:13:35 I have "zawa zawa" sign 21:13:42 i think he must have got the type wrong 21:14:37 def 21:14:38 flatMap [B] (f: (A) ⇒ GenTraversableOnce[B]): List[B] 21:14:47 i think that's the actual type for lists 21:15:13 hmm, where's the List[A]? 21:15:22 well, there's an even more general one with implicit conversion to a different type 21:15:43 zzo38: were there many homestuck fans 21:15:59 atriq: Not as far as I know, but I don't know really 21:16:00 olsner: flatmap is a method on what would be the first argument of >>= 21:16:36 zzo38: were there any people with grey facepaint and orange horns? 21:16:38 so List[A] is the class flatmap is defined as a method in 21:16:49 ah, of course, this is Java after all 21:17:07 olsner: *scala 21:17:27 atriq: I think I saw some with grey facepaint, and some with orange horns, but none that had both 21:17:38 How odd 21:17:42 Anyway, goodnight 21:17:48 -!- atriq has quit. 21:23:17 I played some card game in there once that you have a clock zone, level zone, stage (front and back), stock, and then you can attack and damage is place card in clock zone. You can also place cards in your clock zone by yourself, and if it reaches seven then move one to your level zone. If you have four level cards you lose, but the more level cards you have the more cards you are able to play. 21:24:02 Level and clock zone card can have a card of the correct color to play another card in a different zone, and some cards have a special effect in a clock zone. 21:24:19 -!- Vorpal has quit (Ping timeout: 260 seconds). 21:32:37 -!- oerjan has quit (Quit: Good night). 21:34:31 -!- MoALTz has quit (Ping timeout: 244 seconds). 21:36:51 Someone has suggested that I (or my brother) write a manga based on my Dungeons&Dragons game; however, I only write text of it, not the manga. 21:47:00 -!- pikhq has joined. 21:47:06 -!- pikhq_ has quit (Ping timeout: 245 seconds). 22:20:42 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds). 22:21:13 -!- Phantom_Hoover has joined. 22:21:13 -!- kidanger has quit (Quit: Quitte). 22:29:46 1~ 22:39:25 Uhh... wait, if a torrent has an availability of less than one that's Very Bad, right? 22:43:31 butts 22:43:53 it seems unusually quiet here and in other channels i'm in 22:43:54 Maybe it depend on what file you are trying to download? 22:44:00 is everyone on holiday or something? 22:44:20 -!- david_werecat has joined. 22:44:25 -!- david_werecat has quit (Client Quit). 22:47:00 Someone pointed me to a library that has a useful function but if Common Lisp supported the feature I wanted it to support I wouldn't need it 22:47:12 And said feature would be far more convenient to use 22:48:27 what feature 22:49:22 A way to specify in an ordinary lambda list a variable that receives all arguments as though through &rest but still lets other arguments as though normal 22:49:52 As in a b c &key x y z &all all 22:50:21 all will contain the values passed in to a b and c and the keywords and their .. etc 22:50:22 In such a way to let me apply someotherfunction all 22:50:42 cool 22:50:54 do you know of any language which has this feature? 22:51:23 you can sort of do it with @-patterns in Haskell, at least for non-curried functions 22:51:35 Hmm. Tcl might be able to do something like it. 22:52:28 It probably isn't as useful there though 22:53:02 My main purpose in not just using &rest args is so that documentation tools work sanely 22:53:06 And not just say "Oh, it's a function that takes any arguments" 22:55:21 yeah, makes sense 22:56:25 what are some good questions to ask a prospective employer which is an early-stage startup? 23:08:21 "When you inevitably fail, how much money will I have?" 23:08:41 Actually that works way better without the 'inevitably'. 23:10:46 heh 23:11:07 well if the company fails then the stock is worthless 23:11:17 so that depends entirely on me and how much of my salary i manage to save away before it fails 23:11:51 "How much money will I have earned?" 23:14:49 so i should ask them how long until their company fails? 23:14:49 that seems reasonable 23:16:17 OK no but from my naive perspective it seems like a very good idea to nail down whether you're going to be left with nothing if they fail. 23:17:16 well yeah 23:19:18 I would have no problem with monkey-patching Object if the names of added methods were namespaced. 23:19:29 (In languages known for ability to monkey-patch Object) 23:19:33 -!- impomatic has quit (Quit: impomatic). 23:20:57 kmc: Are you being prospectively employed? 23:20:58 i think the reasonable and safe assumption is that nothing except money in my bank account has any value if the company "fails" 23:22:28 which theoretically could include money from previous sale of vested stock, but i don't know anything about selling private equity and i'm not going to count on it happening prior to an acquisition or IPO 23:22:34 shachaf:maybe 23:24:24 i was not being sarcastic btw 23:24:29 i think "how long before your company fails?" is a fine question 23:24:46 That's a pretty common question, maybe with slightly different phrasing. 23:24:46 certainly "how long can you survive without revenue" is an important and standard question 23:25:01 it's called "runway" 23:25:09 for obvious reasons 23:25:14 kmc's company is failing? 23:25:18 Unless you're talking to an aviation startup. 23:25:26 we should start an incubator named JATO 23:25:33 Sgeo: i'm not currently employed... 23:25:35 Ah, just read scrollup 23:25:38 Sgeo: kmc is moving to SF, I heard. 23:25:39 do try reading the scroll -- yeah 23:25:42 shachaf: lies 23:25:53 kmc: All early-stage startups are in SF. 23:25:55 By law. 23:26:01 no they're all in delaware 23:26:05 Good point. 23:26:11 glad that's settled 23:26:23 But their employees all move to SF. 23:27:27 kmc: Maybe you should ask in #startups. I hear they're experts. 23:27:35 a) is that a thing, and b) is it terrible 23:27:48 Yes, it's a thing. You've previously joined it to troll them. 23:27:56 You ended up discussing stack canaries or something. 23:28:06 is it full of people who have an idea for "the next facebook" and "just need a code ninja" to make it happen? 23:28:06 It's more or less #hn, I think. 23:28:10 ok 23:28:16 i don't remember trolling them but it does sound like something i'd do 23:28:33 I don't think so, but maybe. 23:28:45 I think it's all about the code rock stars. 23:29:23 I feel sad that I'm not ambitious enough to try to do something like make a startup 23:29:35 i have an idea for the next drug empire and just need a chemist ninja to make it happen 23:29:41 Sgeo: me too 23:29:53 what's a stack canary 23:29:54 (i'm not ambitious enough, and to a lesser degree i feel sad about that) 23:30:04 i don't think ambition is a good thing by itself though 23:30:09 it's only good if you use it to help people 23:30:17 and our society provides more opportunities to use it to hurt people 23:30:21 so maybe on balance a lack of ambition is better 23:30:37 That's just the sort of thing an unambitious person would say! 23:30:39 What does selling a product that, if it were free, might have actually lived up to its name count as? 23:30:54 Phantom_Hoover: a mechanism for detecting buffer overflow attacks 23:31:02 you write a magic value onto the stack and then later you check to see if it's still there 23:31:15 before you perform a return to the address saved on the stack 23:31:17 google knows more 23:31:45 I was hoping it was nonsense :( 23:31:50 no sorry 23:32:33 kmc: So you're not moving to SF? 23:32:39 not in the immediate future 23:32:43 I heard even nelhage was moving to SF. 23:33:00 what i originally said, which you have been repeatedly misquoting me on, is that I think it's likely that one day I will move to SF 23:33:15 I haven't been misquoting you! I've been spreading rumours. 23:33:16 i like the city, and have a high expectation of finding a nice job there 23:33:20 i do wish you would cut it out 23:33:23 Oh. 23:33:23 OK. 23:33:25 i have no plans to move to SF 23:33:36 i don't even have plans to make plans to move to SF 23:33:59 because i also like boston, and have a high expectation of finding a nice job here 23:34:05 and so inertia wins 23:34:53 Phantom_Hoover's attempt at trolling #startups fails. 23:35:08 Fuckers just kept talking about gay. 23:35:13 Sgeo is up next! 23:35:21 i did leave NYC without a job or a plan and decided to move to Boston over SF 23:35:26 shachaf, I just wanted to see what was going on 23:35:32 I'm not usually a troller 23:35:33 gay? 23:35:34 There should be trolling commentators. 23:35:42 shachaf: there are, on 4chan and somethingawful 23:35:43 Although I guess sometimes I troll various language channels 23:35:55 Recently #lisp about whether code-walking is really necessary. 23:36:48 shachaf: maybe once the SF-LA high speed line is complete i will move to SF 23:36:51 and i don't even want to go to LA! 23:36:55 but i like riding high speed trains 23:39:01 Maybe you should move to .fi 23:39:12 Can i move to the domain, too? 23:39:18 phantom_hoover: Gay startups? 23:40:07 kmc: Did you ever read _Impro_? 23:40:40 no 23:40:53 Good book. 23:40:53 ion, yes. 23:41:18 a startup that wants to have sex with other startups 23:41:35 As opposed to startdowns. 23:41:39 kmc, move to Edinburgh! 23:45:07 Wait. 23:45:08 Wait. 23:45:12 Move to Hexham!!!! 23:45:46 * shachaf should keep in mind not to annoy kmc because then he'd leave this channel too and that would be sad. 23:46:29 i'm not going to move to hexham 23:47:51 wh 23:47:52 why 23:48:52 Well it's apparently dull as dishwater, but other than that?? 23:49:08 kmc: Do you know how Win32 functions keep backwards compatibility? 23:49:31 Apparently the standard thing is that you pass them a struct whose first element is the sizeof the struct. 23:50:36 ...what, did they keep the size of sizeof the same for 64-bit? 23:51:06 Well, no, the ABI doesn't have to be the same for the 64-bit API, presumably. 23:51:15 shachaf: that's sensible 23:51:25 i do think many structs should work that way 23:51:30 file formats in particular 23:51:33 But when they want to add elements to the struct, they just do it, and then disambiguate by the size. 23:52:14 It makes some sense. 23:52:32 For APIs, as opposed to file formats, what's the advantage of sizeof as opposed to a version number? 23:54:51 simpler code, if you're just appending fields to the end 23:55:08 also simpler code for the client 23:55:31 foo.size = sizeof(foo); 23:55:52 less chance you pick the wrong version number 23:56:10 The version number would presumably be a constant in a .h file. 23:56:20 But I suppose so... 23:56:25 but you could still mess it up more easily 23:56:35 and this way is friendlier to macros too 23:57:18 It means you can't have two versions with a common ancestor that have the same size struct. But that's probably something you try to avoid anyway. 23:59:12 -!- derdon has quit (Remote host closed the connection).