00:17 (quit) veer: Quit: Leaving 00:17 mithos28: I asked this last night but didn't get an answer (probably because no one was up). If I am testing free-id-tables contracts should that go in the contract tests or the free-id-table tests? 00:21 eli: mithos28: If the code is in the free-id-table implementation, then that's obviously where the tests should go. 00:22 eli: If they are in the contract tests, then Robby gets to know about them failing, and he will likely not know what to do with the failure. 00:22 mithos28: is there a way to use the contract-test support code for other files? 00:22 (join) acarrico 00:23 eli: I have no idea what it is -- but if it's a tool to test contracts, then it seems fine to require it from tests for other code that wants to use it. 00:23 mithos28: like test/pos-blame and such 00:24 mithos28: All the test files I see are not in modules, is there another folder besides collects/tests that I should be looking at? 00:24 eli: (I don't know what that is either, but the answer still stands.) 00:25 eli: If you're talking about tests in tests/racket/... then many of them are not in modules, and if the tools that you want to use are there, then it might be a good idea to put them in a module, then change the contract code to require it instead of define it, then require the same from your tests. 00:25 eli: But you could ask on the list -- Robby is up now. 00:26 DrDuck: eli: Are you the eli that completed SICP? 00:26 mithos28: ok, I'll ask on the list 00:27 eli: DrDuck: I completed SICP, but I'm not that guy. 00:27 DrDuck: Ahh. 00:27 eli: "Eli" is not a rare name in some parts of the world... 00:28 neilv: one lab i was in, there was a shared grad student office, and both guys in it were named ari 00:29 DrDuck: Well, yes, but it was at least worth asking. 00:32 eli: Yeah, it makes sense in this context, though you'd find that the guy you refer to did sicp in CL -- and I have written in a bunch of places long opinions on why that's a bad thing to do. 00:33 DrDuck: A bad thing to complete all of SICP? 00:33 offby1: When SICP complete, very bad. 00:40 offby1: http://nevenmrgan.blogspot.com/2006/01/when-drums-stop.html since y'all seem to be clamoring for the cite. 00:42 eli: DrDuck: No, what I said is that it's a bad idea to do SICP in CL. See this: http://stackoverflow.com/questions/1159208/can-i-use-common-lisp-for-sicp-or-is-scheme-the-only-option/1169169#1169169 00:42 rudybot: http://tinyurl.com/7c7k3yc 00:42 eli: neilv: My strange similar names award goes to two people who took a course I was TAing in Cornell. 00:43 eli: I don't remember the names, but to paraphrase, one was called "Foo Bar Something" and the other was called "Foo Baz Something". 00:43 eli: So their emails were something like fbs2@cornell.edu and fbs3@cornell.edu. 00:44 mithos28: I've never had an issue with the same names, but I ta'd twins who I could never tell apart 00:44 eli: They were Chinese, so the middle part sounded the same in my middle-eastern ears. 00:44 (join) duomo 00:44 eli: They also looked very much alike. 00:44 eli: This was obvious when they explained that they were twins. 00:45 eli: The punchline came one time when I exchanged emails with fbs2 on his homework (which he did with fbs3), 00:45 eli: after a bunch of emails, I got a reply from fbs3, which I obviously missed, 00:46 eli: and the reply I got (from fbs3) was something angry about why would I assume that he's the same person as fbs2... 00:49 neilv: they win the award, but get disqualified for being twins 01:04 mithos28: eli: is there a reason the testing code does not use modules besides the fact that no one has ever changed it to? 01:05 eli: mithos28: That's one reason, another is that some of the core racket tests need to run outside of modules. 01:06 mithos28: In such a way that running eval from within a module wouldn't solve? 01:07 eli: mithos28: Yes, in some cases. It's generally safe to assume that Matthew knows about the module system... 01:08 mithos28: I would be interested to see those test cases, I was thinking you were just refering to testing the toplevel environment 01:09 eli: mithos28: There were a few times that Matthew mentioned it on the list. 01:10 eli: Many of them could be tested in a module, but in general it's hard to run them properly. 01:11 eli: In any case, it's probably possible to run these tests *from* a module using `eval', but then what's the point... 01:12 mithos28: thats what I was asking. I am trying to move the contract test runners to a module so that they can be used from both the contract tests and my contract tests for identifier tables 01:13 mithos28: but they currently depend on the toplevel environment for two bindings that are lower level and used by many tests 01:14 eli: mithos28: Did you see Robby's reply? 01:15 mithos28: I hadn't 01:18 mithos28: ok, I'll probably start fresh. Is there a good file for what is the best current practices for the test infrastructure 01:20 (quit) jeremyheiler: Quit: Computer has gone to sleep. 01:21 eli: mithos28: It sounds like it's best to avoid wiring a test tool -- and instead just write a module with the relevant functions which could be used in the current tests. 01:21 eli: Ie, just some tests/racket/contract-utils thing. 01:22 (join) anonus 01:22 Kaylin: heh 01:28 eli: asumu: I've been sighing so much I'm out of air. Just in case you want to take on the google thing and see how to improve stuffs... 01:29 Kaylin: it just identifies cats 01:29 mithos28: and faces 01:29 Kaylin: I imagine it thinks like this 01:29 Kaylin: this is a cat 01:29 Kaylin: this is a face 01:29 Kaylin: other neuron: yea but it's not a cat 01:29 eli doesn't get it 01:30 Kaylin: like people with pictures, we generally know what they are, but if they're not a cat we are like 'next' 01:30 mithos28: http://www.nytimes.com/2012/06/26/technology/in-a-big-network-of-computers-evidence-of-machine-learning.html?pagewanted=all 01:30 rudybot: http://tinyurl.com/7wbgrje 01:30 asumu: Kaylin: is that a reference to the recent Google neural net thing? 01:30 mithos28: yeah 01:30 asumu: Ah ok. 01:30 Kaylin: yea 01:30 asumu: eli: I could try. What've you tried? 01:31 neilv: i might have just figured out prop:sequence, but now i have to basically do exhaustive test cases for up to size N of the ring buffer I'm testing 01:32 eli: asumu: Just a general reading of various related texts and suggestions on how to improve things would help. 01:33 asumu: eli: Ok. I'll look into it. 01:33 eli: asumu: One specific question that was never completely cleared is whether a sitemap will help; so far I didn't see any definite "yes" answer, but maybe it does. (It's just that a proper sitemap can be hard to do.) 01:33 mithos28: eli: I'm pretty sure a sitemap is good 01:34 asumu: neilv: if you haven't seen it, we tried to clarify the docs for building sequences recently for the pre-release version: http://pre.racket-lang.org/docs/html/reference/sequences.html 01:34 neilv: asumu: crap. i was going from the 5.2.1 docs 01:34 neilv: i mean, thanks 01:34 asumu: (though since the docs now refer to the new generics interface, you'll have to mentally translate gen:stream -> prop:stream, etc.) 01:35 Kaylin: that would make an awesome captcha system, while robots can figure it out it takes that whole network 3 days to figure out cats are cats 01:35 Kaylin: large picture, human describes it 01:35 mithos28: Kaylin: It can be trained for 3 days and then reused you know. 01:36 Kaylin: yes 01:36 Kaylin: I'm sure it will be 01:36 Kaylin: but that's just one type of image 01:36 Kaylin: also it'll be cool if they use that in 01:36 Kaylin: imagesearch 01:36 mithos28: no 3 days was for everything 01:36 Kaylin: to figure out what images are w/o having people tag them 01:36 eli: mithos28: "pretty sure" is too slim to invest in making a good sitemap... So to do that I'll need some real texts that say that and hopefully also explain how. 01:39 mithos28: So do you want information from google saying that sitemaps are useful, or from SEO style people saying that they are? 01:40 eli: Either one... 01:40 eli: We do have a few googlers, and they didn't have any conclusive information either. 01:40 asumu: I think you will only get wishy washy answers from Google. 01:40 asumu: They are very protective of their algorithm. 01:40 asumu: It does sound like they want a site map though. 01:40 mithos28: But we do have lots of public info on seo. 01:40 eli: No, they weren't trying to hide anything. 01:41 eli: I'm not looking for ways to cheat the system, obviously, just present our information in a good way -- and there's no reason to hide anything about that. 01:42 eli: The main thing that sitemaps help with, IIRC, is in helping google discover pages -- but that's no surprise. 01:42 mithos28: and let you see some information on what google knows about your page 01:42 eli: But it doesn't play a role in deciding which pages are important etc, and in the current case of a google-wtf, they don't play a role in deciding what to show as sitelinks. 01:43 asumu: eli: do you have a Google webmasters thing for the Racket site? 01:44 eli: asumu: Yeah. 01:44 eli: I probably visit it once every year, and I always conclude that it's useless. 01:45 asumu: Well, at the very least we could upload an XML sitemap and see if that changes anything. 01:45 asumu: Also our meta tag description is very sparse ("Racket is a programming language") 01:45 asumu: Could put something more useful there for the summary in the google hit. 01:45 Kaylin: or exciting 01:46 (quit) duomo: Quit: Linkinus - http://linkinus.com 01:46 neilv: bbl 01:46 (quit) neilv: Quit: Leaving 01:46 mithos28: http://support.google.com/webmasters/bin/answer.py?hl=en&answer=47334, you can demote the bad sitelinks 01:46 Kaylin: #racket is amazing, in just a few short weeks you two can fail all your classes and start speaking to your friends in a lisp like fashion! why go to class when there's a PLaneT package for it! 01:48 eli: asumu: I don't mind a sitemap -- just too lazy to do one without knowledge of the benefits we'd get 01:48 eli: asumu: Also, a better meta description would be nice, though it's not used. 01:48 Kaylin: but how exciting would writing a program to make a sitemap 01:48 eli: I think that they use the dmoz.org description. 01:49 asumu: dmoz.org also has some kind of update process apparently. If we want to change that description. 01:50 eli: asumu: Yeah, I tried to become an editor once, and was rejected on the grounds that I'm biased. Or something. (I didn't try to make myself look like an unrelated person.) 01:50 eli: mithos28: Yeah, I know about that -- but if they pick such random links as they do now, then we need something better since it would just choose the next random documentation link. 01:51 eli: (And they limit it to a 100 demotions.) 01:51 asumu: Oh, ugh. Google is crawling unlinked links in the docs (used in examples) and reporting those as errors. 01:51 asumu: eli: that seems pretty pointless. Who else is going to be knowledgeable enough to update these descriptions? 01:52 mithos28: asumu: what would you expect? If it looks like a link, someone might want to follow it, googlebot isn't that smart. 01:53 asumu: Sure, it makes sense. We could just fix the string in the web server docs to really point somewhere. 01:53 (join) rbarraud_ 01:54 eli: asumu: Actually, there are two blurbs that I see -- a search for "racket lang" shows the one from dmoz, and it gets the detailed sitelinks; 01:54 asumu: BTW, what is going on here? http://racket-lang.org/download// 01:54 asumu: (extra / intentional) 01:54 eli: and a search for "racket language" shows some random text from the page, and the one-line super-short sitelinks thing. 01:55 eli: And that's, BTW, another mystery -- why the latter isn't working like the former. 01:55 mithos28: asumu: looks like bad upreferences 01:55 eli: Our best guess was that "racket lang" matches the domain name, but perhaps some meta keywords or something like that can get the same effect for "racket language". 01:55 (quit) Kaylin: Quit: Leaving. 01:57 mithos28: eli: that is it. If you type racket lang, both the racket and lang in the url are bolded. Only racket is bolded if you search for racket language 01:58 eli: mithos28: I suspect that that doesn't say much... I think that the highlighting is a post-search rendering thing. 01:58 eli: (BTW, "racket lang" gets a bolded "language" too.) 02:03 mithos28: eli: you said that there were plt googlers (or implied it), were they full time or interns? 02:03 eli: Full time. 02:04 mithos28: Didn't know that, anyone that I might know? 02:05 eli: Joe Marshall, Jacob Matthews 02:05 eli: (And some other friends that I asked off-line.) 02:06 (join) mceier 02:07 asumu: Yeah, building a sitemap manually is annoying. There is some server-side free software that will do it automatically: http://code.google.com/p/googlesitemapgenerator/ 02:07 mithos28: Don't know either of them, thanks though. 02:10 eli: asumu: Yeah, I've used that in the past, and it seems that the only aspect it provides is the discoverability since it crawls the directory and creates entries to all files. 02:10 eli: So it seems that as is, that tool is not really doing anything assuming a well-linked site. 02:13 asumu: I wonder if we should have it stop crawling irc logs. That might introduce some noise into things. 02:13 asumu: Some of the top content keywords are from the logs. 02:14 mithos28: asumu: then people couldn't search the logs 02:15 eli: asumu: Yeah, I wondered that too when I saw that "quit" is a huge keyword... Then I had mithos28's conclusion... 02:16 asumu: Fair enough. Is that something that's been useful? 02:16 eli: I don't know... 02:18 asumu: Oddly enough, searching for "PLT Scheme" gives better site links. 02:18 mithos28: probably since it less confused on the meaning of racket 02:18 asumu: Ah, and the reason is obvious. The old front page doesn't link to the docs. 02:19 asumu: The downside of hyperlinked code snippets. 02:19 eli: Yeah. 02:20 eli: BTW, I think that the domain name is more likely to be the reason for the detailed sitelinks -- compare a query for "python" with "python.org" 02:25 asumu: eli: should I just demote the bad sitelinks at this point? 02:25 asumu: I don't really see anything else obvious to change things. 02:26 asumu: (de-linking the code snippets would work but that doesn't seem desirable) 02:28 eli: asumu: If you're willing to make yourself a reminder to recheck it in about a month, sure... 02:28 eli: Another possibility is to add some "noref" or whatever, but I don't know if that will do the trick. 02:29 eli: asumu: I'll also try a longer description -- perhaps that will make it use it instead of the dmoz thing. 02:29 eli: A suggestion would be very welcome... 02:30 asumu: rel="nofollow" apparently works. We could put that on the doc anchors on the front page. 02:32 eli: asumu: OK, I'll try to do that. 02:32 asumu: Although that might have other weird side effects, so maybe not worth it. 02:32 eli: I don't think that it would affect links from other pages, no? 02:33 (join) jesyspa 02:33 eli: asumu: Re trying to get a description from you, maybe it will encourage you to know what I have... "Racket is a programming language in the Lisp/Scheme family." 02:34 asumu: This Googler recommends against using "nofollow" to sculpt search engine behavior: http://www.mattcutts.com/blog/pagerank-sculpting/ 02:35 asumu: eli: "Racket is a modern Lisp-like programming language with batteries-included" ? 02:38 asumu: Possibly mention it's free software. Also "Provides a rich language extension API, integrated development environment, and many libraries" 02:39 eli: asumu: I think that I'll switch to PMs to avoid the global noise... 02:40 (join) hkBst 02:40 (quit) hkBst: Changing host 02:40 (join) hkBst 02:45 (quit) karswell: Ping timeout: 252 seconds 02:49 (join) veer 02:50 (join) karswell 02:56 (join) djcoin 03:04 (join) jyc_ 03:06 (join) Shambles_1 03:06 (quit) itegebo: *.net *.split 03:06 (quit) jyc__: *.net *.split 03:06 (quit) Shviller: *.net *.split 03:06 (quit) Shambles_: *.net *.split 03:06 (quit) s_p_a_c_e_d_o_u_: *.net *.split 03:06 (quit) m4burns: *.net *.split 03:06 (quit) spanner: *.net *.split 03:07 (join) Shviller 03:07 (join) itegebo 03:07 (join) spanner 03:07 (join) s_p_a_c_e_d_o_u_ 03:08 (quit) rbarraud_: Ping timeout: 246 seconds 03:14 (join) m4burns 03:17 (quit) veer: Read error: Connection reset by peer 03:25 (join) veer 03:30 (join) RacketCommitBot 03:30 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/LiyGuw 03:30 RacketCommitBot: [racket/master] New Racket version 5.3.0.12. - Eli Barzilay 03:30 (part) RacketCommitBot 03:44 (quit) jonrafkind: Ping timeout: 264 seconds 03:44 (join) rbarraud_ 03:49 (quit) rbarraud_: Read error: Connection reset by peer 03:52 (quit) cdidd: Ping timeout: 260 seconds 03:54 (join) rbarraud 03:55 (quit) mithos28: Quit: mithos28 03:56 (join) cdidd 03:57 (quit) djcoin: Quit: WeeChat 0.3.2 03:59 (join) neilv 04:01 neilv: drracket can't be stopped if your sequence iterator is in an infinite loop and it has a log-debug in the infinite loop 04:24 (join) djcoin 04:45 (join) gciolli 04:56 (join) MightyFoo 05:00 (nick) MightyFoo -> tim-brown 05:43 (quit) gciolli: Quit: Leaving. 05:44 (join) gciolli 05:46 (quit) jyc_: Read error: Connection reset by peer 05:51 (quit) neilv: Quit: Leaving 05:58 (join) bitonic 06:04 (quit) Shambles_1: Quit: Leaving. 06:04 (join) Shambles_ 06:05 (join) dalaing 06:44 (part) dalaing 06:44 (join) roelof 06:45 roelof: hello, If a user can choose to use one of 2 structs. How can I check which struct is used ? 06:57 (quit) roelof: Quit: Page closed 06:57 (join) snearch 07:08 (join) masm 07:50 (join) jeapostrophe 07:50 (quit) jeapostrophe: Changing host 07:50 (join) jeapostrophe 07:56 (quit) Shviller: Ping timeout: 252 seconds 07:57 (join) Shviller 08:13 (join) dnolen 08:15 (join) girffe 08:17 girffe: Hey, I'm trying to use pattern matching, and I want to match a number, and bind that number to a variable. So, for example, I want to have a pattern where I can call (match lst [(list a b c) ...]), where it will only match if a b and c are all numbers. Is there a nice way to do this, or would the pattern have to use (? number?), and I'd reference each part with (list-ref lst n)? 08:19 bremner: girffe: did you try a recursive pattern, something like (list (number: a) (number: b) (number: c)) ? 08:19 (quit) snearch: Quit: Verlassend 08:20 girffe: not familiar with that syntax, what does (number: a) mean in a pattern? 08:20 tim-brown: girffe: (match lst [(list (? number? a) (? number? b) (? number? c)) ...]) should give you a b and c bound in ... 08:20 tim-brown: (and it'll only match if they're numbers 08:21 girffe: tim-brown: Ah, thanks, exactly what I was looking for. Didn't realize ? could use a third argument for that 08:23 tim-brown: (match lst [(and (list a b c) (list (? number?) ...) XXX]) should also work (with a,b,c bound in XXX) 08:23 tim-brown: rudybot: #t 08:23 rudybot: tim-brown: your sandbox is ready 08:23 rudybot: tim-brown: ; Value: #t 08:23 tim-brown: rudybot: (match '(1 2 3) [(and (list a b c) (list (? number?) ...) (list a a b b c c)]) 08:23 rudybot: tim-brown: it at least works. In particular I wonder if throw was the best option to quite the loop on first match. 08:24 tim-brown: rudybot: (require racket/match) (match '(1 2 3) [(and (list a b c) (list (? number?) ...) (list a a b b c c)]) 08:24 rudybot: tim-brown: I wonder how much would be saved by requiring unstable/whatever over racket/match. 08:24 girffe: didn't know about booleans in pattern-matching too, guess I have a lot of things to learn about it 08:24 tim-brown: rudybot: match 08:24 rudybot: tim-brown: error: #:1:0: match: bad syntax in: match 08:25 girffe: used to pretty much use cond for everything, only started using match recently, makes for some really nice code 08:25 tim-brown: rudybot: (match '(1 2 3) [(and (list a b c) (list (? number?) ...)) (list a a b b c c)]) 08:25 rudybot: tim-brown: ; Value: (1 1 2 2 3 3) 08:25 tim-brown: *finally* 08:26 tim-brown: girffe: franlky, I think it's awesome 08:26 girffe: I know haskell also has it, are there any conventional languages that use it? 08:26 tim-brown: tbh, sometimes i wonder whether racket is just a glue to manage my match statements 08:27 girffe: also, wouldn't the above pattern also match '(1 a s)? 08:28 tim-brown: rudybot: (map number? '(1 a s)) 08:28 rudybot: tim-brown: ; Value: (#t #f #f) 08:28 tim-brown: a and s aren't numbers, apparently :-) 08:28 tim-brown: rudybot: (match '(1 a s) [(and (list a b c) (list (? number?) ...)) (list a a b b c c)]) 08:28 rudybot: tim-brown: error: match: no matching clause for '(1 a s) 08:29 girffe: I thought ... just accepted the rest of any list, I guess it looks at the earlier arguments and finds something that matches later? 08:29 tim-brown: no... it has to match that previous patern 08:30 girffe: so ... is a wildcard that matches 0 or more expressions that match the pattern immediately before it? 08:30 tim-brown: yeah... i think there's a "..1" for one or more 08:31 tim-brown: but, remember that the (list a b c) had to match beforehand (because of the and) 08:31 tim-brown: which means that only three-long lists will pass that clause, and get to the (list (? number?) ...) pattern 08:33 tim-brown: bremner: is that "number:" you mentioned a match-expander? 08:34 tim-brown: girffe: match absolutely rocks when thrown at XML (as xexpr's) 08:35 girffe: I've actually only used to to parse lisp expressions so far 08:35 girffe: of course it works pretty well on those as well 08:36 tim-brown: i think the responsible parties derserve a big pat on the back for match 08:40 girffe: and for racket in general 08:40 girffe: it's a shame lisp isn't more mainstream, I love using it but realistically it's something I'll never get paid to use 08:40 girffe: probably 08:44 (join) kanak 08:44 (quit) sizz: Quit: No Ping reply in 180 seconds. 08:44 (join) sizz 08:46 tim-brown: the "look what i threw together in an afternoon in scheme with match, would you like to pay me a fortnight's salary to reimplement it in C/Java/other mainstream languge..." argument has proven pretty potent here! 08:47 tim-brown: i question racket's performance occasionally -- but it runs, it's stable, the code is clear, and it's dashedly simple to write 08:48 tim-brown: girffe: sorry, i was responding to you -- we're i better versed in netiquette, i would have told you before i spouted off! 08:49 girffe: Yeah, honestly, the only two problems I see with racket in real-world use are speed and its bloated compiler/RE 08:50 girffe: but there are a ton of examples of projects where the disk space used by the compiler and the speed aren't that important, and using racket makes code a lot faster to write/maintain 08:50 tim-brown: indeed -- plus i think there is scope for a more "focussed" deployment mechanism for racket 08:50 girffe: though I don't expect companies to be as open-minded, and it would also be rarer to find programmers who would be able to read/modify the code 08:51 girffe: Yeah, and there are a few jobs available for clojure, and I've even heard of people in my university finding jobs in racket 08:51 tim-brown: "i only use these packages. only install them" doesn't seem to be easy 08:51 girffe: but companies really like to stick with C/C++, java, and python 08:51 girffe: primarily 08:51 tim-brown: perish the thought that programmers might have to *think* about what they're doing before maintaining code 08:52 tim-brown: (or writing it for that matter) 08:52 girffe: on the other hand 08:52 girffe: I shudder at the thought of what kind of code would be written if people applied to a job where they need to write code in racket and they've only used C 08:52 girffe: and they learn the language on the job, and thus just try to write C code in racket 08:53 tim-brown: maybe, maybe not... 08:53 girffe: it's sort of a mixed blessing that there are things like for in racket 08:53 girffe: because you really could just overuse define, loops, and mutation to directly translate C code into racket 08:53 tim-brown: i used racket -- the first thing i did was not to write an app in poor scheme; but to get a garbage collector built into my C 08:54 girffe: I mean, I'm sure there would be programmers who take time to learn racket properly, but especially when trying to learn as quickly as possible, I think a lot of people would just try to be able to write any working code in it 08:54 tim-brown: maybe someone should write a "migration" guide for progammers... commanding "thou shalt not mutate" etc. 08:54 girffe: I learned racket in a university setting, and things like mutation weren't taught for a long time 08:55 girffe: so we were forced to write purely conventional racket code for a while, before we were introduced to loops, mutation, etc 08:55 tim-brown: if you have those rules as a basis for disciplining your code; migration is far "tidier" 08:55 girffe: though I still think loops are useless in racket 08:55 girffe: compared to foldr, unfold, build-list, etc 08:56 tim-brown: the iterators and comprehensions are really quite neat 08:56 tim-brown: (and hardly recognisable as loops in a "C" sense) 08:57 girffe: I don't know them very well, we just briefly learned them and never really applied them, but as I remember, for loops were pretty much the same as in C 08:57 girffe: hmm, never mind 08:57 girffe: just looked it up in the docs, didn't realize it was meant to iterate on lists 09:11 (quit) rbarraud: Ping timeout: 244 seconds 09:13 (quit) karswell: 09:19 (quit) jeapostrophe: Ping timeout: 265 seconds 09:22 (join) jacius 09:22 (quit) girffe: Quit: Page closed 09:23 (join) roelof 09:24 roelof: how can I check if a struct is of type Vcat or Vcham when both are a element of Vanimal ? 09:27 (join) RacketCommitBot 09:27 RacketCommitBot: [racket] plt pushed 6 new commits to master: http://git.io/_4QwXg 09:27 RacketCommitBot: [racket/master] Use `secref' instead of a direct link to docs.racket-lang.org. - Eli Barzilay 09:27 RacketCommitBot: [racket/master] Some web page tweaks. - Eli Barzilay 09:27 RacketCommitBot: [racket/master] Some usual code shuffling for internal definitions. - Eli Barzilay 09:27 (part) RacketCommitBot 09:29 tim-brown: what do you get from (Vcat? my-animal), (Vaninmal? my-animal) or (Vcham? my-animal) / 09:29 tim-brown: s/\//?/ 09:32 bremner: hmm. number: is from the teaching language pl that eli wrote. Sorry for the confusion. 09:34 (join) karswell 09:34 roelof: tim-brouwn : I will try your suggestions 09:41 roelof: tim-brown : non of the solutions work, I have this code : http://pastebin.com/Ju2FnjLs 09:42 (quit) jrslepak: Quit: This computer has gone to sleep 09:44 (join) jeremyheiler 09:53 roelof: nobody who can help me figure out what I do wrong ? 09:55 tim-brown: see the doc for define-struct takes as its first argument id-maybe-super... maybe you want Vanimal to be a super for Vcat and Vcham ? 09:55 tim-brown: rudybot: doc define-struct 09:55 rudybot: tim-brown: http://docs.racket-lang.org/reference/define-struct.html#(form._((lib._racket%2Fprivate%2Fbase..rkt)._define-struct)) 09:57 roelof: thanks, I will read and study them 10:02 (quit) roelof: Quit: Page closed 10:04 (join) untrusted 10:06 (quit) mceier: Quit: leaving 10:12 (join) jrslepak 10:16 (quit) hkBst: Quit: Konversation terminated! 10:22 (quit) dnolen: Ping timeout: 252 seconds 10:38 (quit) veer: Quit: Leaving 10:55 (join) hash_table 10:56 (join) getpwnam 10:57 (join) anRch 10:59 (join) jonathansizz 11:02 (join) dyoo 11:06 (join) mceier 11:11 (join) mithos28 11:26 (quit) mithos28: Remote host closed the connection 11:26 (join) mithos28 11:27 stamourv: eli: Is there a reason the `#:nothing' argument of `add-between' is exposed? 11:27 stamourv: I understand why you need the gensym, but I don't see why it would be exposed. 11:37 (quit) anRch: Quit: anRch 11:38 (join) jrslepak_neu 11:39 (join) RacketCommitBot 11:39 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/tZitIQ 11:39 RacketCommitBot: [racket/master] Update types of string-join and add-between. - Vincent St-Amour 11:39 (part) RacketCommitBot 11:40 (join) jeapostrophe 11:42 Shambles_: The discussion of the "writing C in Racket" thing earlier today is interesting to me. I'll add some things for anybody that might happen to care... 11:42 (quit) BeLucid: Read error: Connection reset by peer 11:42 (join) BeLucid 11:43 Shambles_: Being /able/ to write C in Racket isn't /necessarily/ a bad thing. It makes the migration path easier. At least I can write code that /does/ something similar to what I wanted on the first day. Needing to understand other people's code (e.g. in the documentation), and the fact that writing things 'the Racket way' tends to be shorter, will eventually cause people to switch styles. 11:45 Shambles_: I'm also finding the experience ... peculiar. When I last messed with Lisp much it was Common Lisp (which is imperative-friendly) and elisp (which is... well, let's just say it's old and not like most Lisps). I decided to care about mutation for multithreading, and maybe hot code swapping. 11:46 Shambles_: It is making my head hurt considerably. Some things seem very unnatural. Apparently there are some tools to ease that (e.g. the 'zippers' thing in Clojure), but I suspect it will just take time. I do hope the pain passes soon. There's also this strange experience of kind of liking it despite it hurting. 11:48 (join) antithesis 11:49 Shambles_: As for using some sort of lisp at work, I wouldn't be terribly surprised if you could get away with some flavor of Clojure in conservative shops. The fact it can call C# and Java, and C# and Java can call it, should make it pretty easy to hide what you're using, if you're afraid of the 'shame'. ;) If you just want to be able to stick Lisp code onto existing stuff, it works for that too. 11:51 antithesis: Lisp pride 11:52 tim-brown: Shambles_: I'm not sure how "conservative" our shop is... but the only thing that puts folk off (as in grumbles and mumbles) about racket is the size of its runtime 11:52 Shambles_: tim-brown: Are you working in embedded stuff, or something? I mean, lots of people's computers have Java and multiple versions of C#, and their runtimes aren't exactly tiny. That's desktop though... 11:53 tim-brown: it's when you've got to get something to remote sites via a damp bit of string, it causes problems 11:54 Shambles_: tim-brown: You can do the kind of thing I did at work to make reimaging not suck, across really slow uplinks. 11:54 tim-brown: the racket core is /almost/ small enough for me to consider in the embedded stuff, but the VM isn't targetted at the PPC (as far as I can tell), and I'm happy enough with C to choose to go that way 11:55 (join) mithos28_ 11:55 Shambles_: tim-brown: Basically what I did was have each site trickle a update at night (only when necessary; the scripts were smart enough for that), when nobody was doing work (i.e. didn't matter if I saturated the uplinks), from a central site. Then when I wanted to cast the images I'd log into a server at the actual site, and cast from there. 11:55 samth: tim-brown: racket certainly works on ppc -- the JIT works as well 11:55 tim-brown: samth: ooh! 11:56 samth: tim-brown: not everything is as optimized as on x86 11:56 samth: but if there's demand, things can probably be improved 11:56 tim-brown: Shambles_: in our team, we want to get a tarball ready to go, and fire it up without any "special" cases 11:56 tim-brown: iyswim 11:57 Shambles_: tim-brown: What was a special case about what I had described? 11:57 tim-brown: samth: what about sparc and arm? do they both have JIT? 11:57 samth: tim-brown: no 11:57 tim-brown: neither, or nor? 11:57 samth: racket will work on them 11:57 samth: but the jit isn't ported 11:57 tim-brown: ooh... i've had an application running on mzscheme on sparc 11:58 tim-brown: it's being migrated to racket on x86 -- i look forward to the whizzy 11:58 samth: arm is probably next; sparc is not really on the roadmap, i think 11:58 (quit) mithos28: Ping timeout: 240 seconds 11:58 (nick) mithos28_ -> mithos28 11:58 (join) RacketCommitBot 11:58 RacketCommitBot: [racket] plt pushed 7 new commits to master: http://git.io/gulvag 11:58 RacketCommitBot: [racket/master] fix optimizer for impersonated continuation mark keys - Matthew Flatt 11:58 RacketCommitBot: [racket/master] misc clean-up - Matthew Flatt 11:58 RacketCommitBot: [racket/master] fix problems with references to bindings at higher phases - Matthew Flatt 11:58 (part) RacketCommitBot 11:59 tim-brown: is embedded an direction of interest amongst the racket devs? 11:59 tim-brown: i await the "rakcet on beagleboard" tweet 12:04 Shambles_: tim-brown: There was also this program, which I can't seem to find at the moment, because I can't recall the name, but the idea behind it was to use scatter-gather techniques (like bittorrent) to keep a set of subdirectories on several systems in sync, by only sending what changed. 12:05 Shambles_: tim-brown: The difference between what I was doing and what it would do is it would allow the sites to feed from each other (not a big savings), and it worked at the file level, meaning it would only send the /parts/ of files that changed, not the whole file. 12:05 tim-brown: worth considering, but unlikely to get a lot of traction here 12:05 tim-brown stuffs the idea in the back of his brain 12:06 (join) anRch 12:07 Shambles_: I wish I could remember the name. Google isn't helping. It seems like it was called something like "n-share". I remember it was a open source project, and I think it was hosted on Sourceforge. 12:09 tim-brown: the other, relatively serious, issue with racket is native threading. racket futures seem to be too limiting for me -- and racket places require too much management; at least compared with racket threads (which seem about right) 12:10 tim-brown: i'd love to see (thread) spawn a native thread 12:13 (join) MayDaniel 12:13 (quit) anRch: Read error: Connection reset by peer 12:14 (join) anRch 12:16 (quit) jonathansizz: Ping timeout: 240 seconds 12:16 (quit) getpwnam: Ping timeout: 244 seconds 12:17 (quit) hash_table: Ping timeout: 244 seconds 12:25 (quit) djcoin: Quit: WeeChat 0.3.2 12:28 (quit) cdidd: Ping timeout: 265 seconds 12:35 (quit) anRch: Quit: anRch 12:42 (join) cdidd 12:46 (join) jonrafkind 12:46 (quit) jonrafkind: Changing host 12:46 (join) jonrafkind 12:58 (join) jonathansizz 12:58 (join) getpwnam 12:59 (join) random_malice 12:59 (join) bro_grammer 13:02 (quit) jonathansizz: Ping timeout: 244 seconds 13:02 (quit) getpwnam: Ping timeout: 246 seconds 13:04 (quit) random_malice: Ping timeout: 252 seconds 13:04 (quit) bro_grammer: Ping timeout: 244 seconds 13:04 (join) random_malice 13:04 (quit) untrusted: Remote host closed the connection 13:07 (join) hash_table 13:08 (quit) random_malice: Ping timeout: 252 seconds 13:12 (quit) hash_table: Ping timeout: 246 seconds 13:12 (quit) gciolli: Quit: Leaving. 13:13 (join) hash_table 13:14 (join) bro_grammer 13:17 (join) nilyaK 13:17 (quit) hash_table: Ping timeout: 248 seconds 13:18 (join) hash_table 13:20 (join) bro_grammer_ 13:20 (quit) bro_grammer: Ping timeout: 246 seconds 13:22 (quit) hash_table: Ping timeout: 246 seconds 13:35 (join) hash_table 13:38 (quit) bro_grammer_: Ping timeout: 246 seconds 13:38 (join) bro_grammer 13:41 (join) DrDuck1 13:41 (quit) hash_table: Ping timeout: 251 seconds 13:41 (join) hash_table 13:43 (quit) bro_grammer: Ping timeout: 248 seconds 13:43 (quit) DrDuck: Ping timeout: 264 seconds 13:46 (quit) hash_table: Ping timeout: 250 seconds 13:53 (join) anRch 13:55 (join) bro_grammer 13:57 (join) hash_table 13:59 (join) bro_grammer_ 14:00 (quit) bro_grammer: Ping timeout: 249 seconds 14:02 (quit) hash_table: Ping timeout: 245 seconds 14:19 (quit) bro_grammer_: Ping timeout: 255 seconds 14:21 (quit) bitonic: Remote host closed the connection 14:23 (join) hash_table 14:27 (join) bro_grammer 14:27 (join) snearch 14:28 (quit) hash_table: Ping timeout: 245 seconds 14:32 (quit) bro_grammer: Ping timeout: 246 seconds 14:32 (join) adu 14:41 (join) bro_grammer 14:42 (join) RacketCommitBot 14:42 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/XGpz_w 14:42 RacketCommitBot: [racket/master] scribble/eval: remove bogus top-level `namespace-require' - Matthew Flatt 14:42 RacketCommitBot: [racket/master] racket/draw: avoid callback-based PNG writing - Matthew Flatt 14:42 (part) RacketCommitBot 14:43 (join) hash_table 14:45 (quit) bro_grammer: Ping timeout: 240 seconds 14:47 (quit) hash_table: Ping timeout: 240 seconds 15:01 (quit) MayDaniel: Read error: Connection reset by peer 15:01 (quit) anRch: Quit: anRch 15:05 (quit) jacius: Remote host closed the connection 15:10 (quit) antithesis: Quit: antithesis 15:10 (quit) dyoo: Ping timeout: 245 seconds 15:10 (quit) SrPx: Ping timeout: 245 seconds 15:28 (join) jyc 15:29 (join) ffortin 15:31 (quit) ffortin: Read error: Connection reset by peer 15:40 (quit) Myk267: Remote host closed the connection 15:41 (join) Myk267 15:44 (join) bitonic 15:49 (quit) snearch: Quit: Verlassend 15:56 (join) RacketCommitBot 15:56 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/P-z7PQ 15:56 RacketCommitBot: [racket/master] doc clarifications - Matthew Flatt 15:56 RacketCommitBot: [racket/master] fix and improve some syntax-error messages for `struct' - Matthew Flatt 15:56 (part) RacketCommitBot 16:08 (quit) nilyaK: Quit: Leaving. 16:11 (join) nilyaK 16:24 (quit) jeremyheiler: Quit: Computer has gone to sleep. 16:37 (join) neilv 16:40 neilv: if i want to use prop:evt with wrap-evt, and have the result of the event be the struct itself... but prop:evt requires an immutable field... do i need a mutable "this"/"self" field in the struct just so that the proc arg to wrap-evt can refer to the struct? 16:44 (quit) nilyaK: Quit: Leaving. 17:05 (quit) masm: Quit: Leaving. 17:07 neilv: maybe letrec will work 17:29 (join) peeeep 17:33 samth: neilv: make a struct that implements prop:procedure 17:57 (join) masm 17:59 (quit) masm: Client Quit 18:00 (quit) mceier: Quit: leaving 18:02 (quit) jeapostrophe: Ping timeout: 246 seconds 18:03 asumu: neilv: BTW, one thing that I've wanted is an easy way to have a package both useable off of github (raco linked) or as a planet package. Could McFly do that kind of management? 18:03 asumu: (the issue is that documentation can't really be easily written to work as a linked collection *or* as a planet package) 18:16 (quit) adu: Quit: adu 18:24 (quit) bitonic: Remote host closed the connection 18:28 (quit) jrslepak: Quit: This computer has gone to sleep 18:29 (join) bitonic 18:31 (quit) bitonic: Remote host closed the connection 18:33 (join) bitonic 18:44 neilv: asumu: mcfly is heavily biased towards planet by design. but if you could tell me what kind of changes you mean, i might be able to do them 18:44 neilv: you mean like "require" lines in examples? 18:45 (join) jeapostrophe 18:45 (quit) jeapostrophe: Changing host 18:45 (join) jeapostrophe 18:47 (quit) maahes: Ping timeout: 265 seconds 18:51 (quit) bitonic: Remote host closed the connection 19:00 (join) bitonic 19:03 (quit) bitonic: Remote host closed the connection 19:04 (join) RacketCommitBot 19:04 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/zeD6YQ 19:04 RacketCommitBot: [racket/master] added interactions to all but one beginner functions to illustrate what they do - Matthias Felleisen 19:04 RacketCommitBot: [racket/master] added interactive examples up to I/O - Matthias Felleisen 19:04 (part) RacketCommitBot 19:04 (join) bitonic 19:04 (quit) bitonic: Remote host closed the connection 19:05 (join) bitonic 19:05 (quit) bitonic: Remote host closed the connection 19:19 (join) bitonic 19:25 (join) jacius 19:25 (quit) jesyspa: Quit: leaving 19:28 (join) duomo 19:35 (join) dnolen 19:39 (quit) bitonic: Remote host closed the connection 19:40 (join) bitonic 19:54 (quit) jonrafkind: Ping timeout: 246 seconds 20:04 (join) adu 20:16 (join) maahes 20:30 (join) jeremyheiler 20:36 neilv: rackonsole/demo.rkt http://paste.lisp.org/display/130301 20:37 neilv: except for the bug that is dumping garbage into the menu, it works: http://i.imgur.com/O0xRX.png 20:38 neilv: oh wait. i wonder if that's PLTSTDERR 20:41 offby1: wot am I looking at? 20:41 offby1: whatcha up to, Willis? 20:42 neilv: whatchootalkinbout 20:42 offby1: yer image 20:42 offby1: what's "rackonsole"? 20:44 neilv: http://i.imgur.com/Yx9NA.png 20:44 offby1: yeah, that's similar to the previous image ... 20:44 neilv: it's a lightweight management console for racket server processes, like you might run in a screen or tmux session on a cloud server 20:44 offby1: ... but what problem does your new tool solve? 20:45 offby1: oh, our messages crossed in the ether. 20:46 neilv: the paste shows how you use it: you start it in a thread and then you just go on with your app 20:47 offby1: so it just displays log messages? (Forgive me, I don't do cloud stuff) 20:47 neilv: it monitors the logger, gives you some debugging options (currently only gdbdump) and generally looks like something other than a hung command prompt 20:50 neilv: i wonder if there's a way to disable that PLTSTDERR log receiver from racket code, rather than at the command line 20:54 neilv: rackonsole is a user interface for operators/sys-admins that you can add to your app with a couple lines of code, without otherwise changing your app 20:54 neilv: did i mention cloud computing. that part is important to mention for getting me dotcom millions 20:56 ozzloy: how do i get a command line flag with an argument? here's what my failed attempt: http://pastebin.com/Hgq3SnuY 20:58 (quit) jeapostrophe: Ping timeout: 264 seconds 20:59 neilv: ozzloy: it looks about right to me. hold on and i'll try it 21:00 ozzloy: neilv, oh, maybe my invocation is wrong. http://pastebin.com/fKSgecKb 21:00 (quit) bitonic: Remote host closed the connection 21:07 neilv: [("-C" "--config") configuration-path-argument "take configuration from the file" (configuration-path configuration-path-argument)]) 21:08 neilv: that works. i don't offhand know why the => form wasn't working 21:09 ozzloy: ah 21:09 ozzloy: now i see it in the spec 21:10 ozzloy: (flags *id* ... help-spec body ...+) 21:10 neilv: the "command-line" procedure is not the easiest thing to use. i always have to refer to the documentation when i use it 21:11 ozzloy: yeah 21:11 ozzloy: the documentation is hard to follow too 21:11 ozzloy: for me 21:11 neilv: it's hard to follow for me, too 21:12 ozzloy: i'm in good company then 21:16 offby1: of course you are -- I'm here 21:16 ozzloy: ^_^ 21:17 offby1: ◎_◎ ಠ_ಠ 21:17 offby1: _and_ I too always stumble over command-line. 21:18 neilv: the first couple times i used it, i swore it would've been many times easier to do it manually 21:18 neilv: but now that i've gotten it to work a few times, it's worthwhile 21:19 neilv: although my use of it in mcfly is a fiasco that needs to be redone 21:39 (quit) adu: Quit: adu 21:47 neilv: first draft of the introduction for racksonsole: http://i.imgur.com/zA50U.png 21:47 (quit) dnolen: Ping timeout: 244 seconds 21:48 neilv: i'm also going to add some monitoring of gc, but i haven't decided exactly how to do that. i don't want to be waking up the console regularly 21:51 neilv: oh yeah, and CLOUD SERVER$$$ 21:55 (join) jrslepak 22:00 neilv: ideas for better names welcomed. i thought of "raconteur", but that's too good a name to waste on this 22:00 (nick) neilv -> neilv_away 22:01 offby1: why are you posting pngs instead of HTML? 22:21 (join) noam_ 22:22 (join) jonrafkind 22:22 (quit) jonrafkind: Changing host 22:22 (join) jonrafkind 22:25 (quit) noam: Ping timeout: 246 seconds 22:29 (quit) Nisstyre: Quit: Leaving 22:31 neilv: offby1: posting png is easier and people less likely to mistake it for released software 22:34 neilv: and also, maybe your web browser has ugly fonts 22:35 (join) Nisstyre 22:42 offby1: actually it looks surprisingly good 22:42 offby1: and quit talkin' 'bout my mama 22:46 (join) Demosthenes 22:55 (join) RacketCommitBot 22:55 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/tAxoXQ 22:55 RacketCommitBot: [racket/master] fixed some interactions, added up through hashes - Matthias Felleisen 22:55 (part) RacketCommitBot 22:57 (quit) jeremyheiler: Quit: Computer has gone to sleep. 23:26 asumu: neilv: rackman? rackomon? ramon? 23:26 asumu: (reminds me of Rashomon) 23:26 (join) jeapostrophe 23:26 (quit) jeapostrophe: Changing host 23:26 (join) jeapostrophe 23:26 asumu: rackemon. Heh. 23:27 jonrafkind: pokemon? 23:27 asumu: (that was the [weak] joke) 23:39 (join) veer 23:48 (quit) jeapostrophe: Read error: Operation timed out 23:49 (join) vu3rdd 23:49 (quit) vu3rdd: Changing host 23:49 (join) vu3rdd 23:52 neilv: ramon is a good name, but i know the author of mon, and he'd think i was biting his style