00:12 (join) jeapostrophe_ 00:13 (quit) jeapostrophe_: Client Quit 01:51 (quit) jonrafkind: Ping timeout: 255 seconds 03:00 (join) lisppaste 05:30 (join) masm 05:42 (join) martinhex 05:43 (join) b-man_ 06:05 (quit) vu3rdd: Quit: ERC Version 5.3 (IRC client for Emacs) 07:30 (join) jeapostrophe_ 07:31 (quit) b-man_: Ping timeout: 255 seconds 08:17 (join) hanDerPeder 08:20 (join) MayDaniel 08:29 (quit) MayDaniel: 08:52 (quit) jeapostrophe_: Quit: jeapostrophe_ 08:57 (join) jeapostrophe_ 09:02 (quit) hanDerPeder: Quit: hanDerPeder 09:04 (join) hanDerPeder 09:11 (quit) jeapostrophe_: Quit: jeapostrophe_ 09:22 (join) evhan 09:28 (join) samth 09:29 samth: jeapostrophe, drdr still down 09:29 (join) danbrown 09:31 (quit) hanDerPeder: Quit: hanDerPeder 09:32 (join) jeapostrophe_ 09:39 (quit) evhan: Ping timeout: 245 seconds 09:43 (join) evhan 09:47 (quit) jeapostrophe_: Quit: jeapostrophe_ 09:54 (quit) evhan: Ping timeout: 255 seconds 10:06 (join) vu3rdd 10:07 (join) hanDerPeder 10:14 (join) pygospa 10:17 (quit) TheRealPygo: Ping timeout: 276 seconds 10:18 (quit) vu3rdd: Quit: ERC Version 5.3 (IRC client for Emacs) 10:23 (join) MayDaniel 10:30 (join) vu3rdd 10:32 (quit) hanDerPeder: Quit: hanDerPeder 10:32 (join) b-man_ 10:46 (join) jeapostrophe_ 10:46 samth: jeapostrophe_, please kick drdr 10:46 samth: it's been down for a while 10:47 jeapostrophe_: kicked 10:48 (join) Yann1 10:50 Yann1: why do I get "expand: unbound identifier in module in: for/vector" when I try to use "for/vector"? According to the docs, its part of the language... http://docs.racket-lang.org/reference/for.html#%28form._%28%28lib._racket/private/base..rkt%29._for/vector%29%29 10:50 rudybot: http://tinyurl.com/33cdql7 10:50 samth: Yann1, almost certainly because you're either using an old version of Racket, or you are in the wrong language 10:52 Yann1: I'm using plt-5.0.1 and #lang racket 10:52 samth: i believe that `for/vector' is new in 5.0.2 10:52 samth: but i'm not sure 10:52 Yann1: is there a changelog somewhere? 10:54 samth: annoyingly, we seem to have forgotten `for/vector' in the release notes 10:54 (quit) jeapostrophe_: Quit: jeapostrophe_ 10:55 Yann1: its not in doc/release-notes/racket/HISTORY.txt 10:55 samth: Yann1, that only has more significant changes 10:55 samth: but it was added after 5.0.1 10:56 Yann1: I will try plt-5.0.2, perhaps such things should be noted in the docs 10:56 samth: in which docs? 10:56 Yann1: http://docs.racket-lang.org/reference/ 10:57 samth: that's the reference documentation for the current version, which it says at the top 10:57 samth: are you suggesting that every binding should list its version? 10:58 Yann1: yes 10:59 samth: i don't think that would be very useful, since the vast majority of binding have been there a while 11:08 (join) sstrickl 11:21 (join) jeapostrophe_ 11:33 jeapostrophe: my build is broken 11:35 (quit) danbrown: Remote host closed the connection 11:36 samth: jeapostrophe, my build seems to work 11:37 jeapostrophe: I get: path->complete-path: expects argument of type ; given # 11:38 jeapostrophe: There we go 11:40 (join) anRch 11:41 (quit) jeapostrophe_: Quit: jeapostrophe_ 11:42 samth: jeapostrophe, we really ought to be able to warn about that bug 11:42 (join) fjl 11:42 jeapostrophe: i agree 11:43 (join) hanDerPeder 11:50 (join) jeapostrophe_ 12:09 Yann1: Question: is "for" iterative or recursive (internally)? 12:11 jeapostrophe: irrelevant to the user, but recursive, but tail recursive, so iterative again 12:11 Yann1: thanks :) 12:13 (quit) b-man_: Remote host closed the connection 12:14 (join) carleastlund 12:26 (quit) anRch: Quit: anRch 12:31 (join) mceier 12:35 (join) anRch 12:35 (join) jonrafkind 12:43 (quit) jeapostrophe_: Quit: jeapostrophe_ 12:52 (quit) vu3rdd: Ping timeout: 252 seconds 13:00 (quit) anRch: Quit: anRch 13:03 (quit) masm: Quit: Leaving. 13:14 (join) Alex_Gaynor 13:16 stamourv: jeapostrophe: did you fix that path error when building? 13:16 stamourv: I'm getting it too 13:16 Alex_Gaynor: Hi, I'm working on a polynomial time implementation of longest common subsequence (for class clearly), and I've got myself a nice little recursive function, except without memoization it's definitely not polynomial time, is there a way to implement memoization without using functions ending in ! (requirement of the assignment), or do I need to rethink my algorithm? 13:16 stamourv: I tried nuking the build dir + make clean, but no luck 13:16 stamourv: building from a fresh clone works, though 13:19 samth: stamourv, he did fix it 13:20 samth: Alex_Gaynor, you can pass around the memo table 13:20 Alex_Gaynor: samth: right, but how can I set a value in it, without using hash-table-set! or something like that 13:21 samth: you can't, you'll have to construct a new table 13:21 samth: using `hash-set' (no !) for example 13:21 Alex_Gaynor: oh, nifty missed that, thanks 13:21 stamourv: samth: do you know how? 13:22 samth: stamourv, see https://github.com/plt/racket/commit/f8ca8f36770a3a726131ecc0552fbb267ce4d2d7 13:22 rudybot: http://tinyurl.com/32nod7d 13:23 stamourv: oops, missed that commit 13:23 stamourv: thanks 13:24 Alex_Gaynor: samth: are hash tables available by default, or do I need to require something? 13:24 Alex_Gaynor: r5rs FWIW 13:24 samth: in `racket/base' and `racket', they're available 13:24 samth: do you have to use r5rs? 13:25 Alex_Gaynor: Yup 13:30 samth: then your instructor is unlikely to want you to require various bits of Racket 13:30 samth: I'd use a list and add to it with `cons' 13:31 Alex_Gaynor: Yeah, I'll write it as-is with a hashtable, follow up with the professor, and replace with a list implementation if necessary 13:31 Alex_Gaynor: thanks for the pointer 13:43 eli: jonrafkind: I tried that, inside and outside of vnc, and it did't miss any enter. 13:43 jonrafkind: it doesnt happen all the time for me either 13:44 eli: Once in how many? 13:44 jonrafkind: once every few seconds I guess 13:44 jonrafkind: let me try something scientific.. 13:45 eli hands jonrafkind an amulet of bug reporting 13:45 jonrafkind: ok it just happened, i typed a lot of stuff and now enter doesnt work. but all other kjeys do 13:45 eli: long lines? 13:45 jonrafkind: not really, 30 characters 13:46 eli: Doesn't happen to me. 13:47 jonrafkind: oh it could be my vi thing screwing up 13:48 eli coughs 13:48 eli: A minor detail... 13:48 jonrafkind: o wait 13:48 jonrafkind: no wait 13:48 jonrafkind: it just happened in a non-vi mode text editor 13:48 eli: "text editor"? 13:49 jonrafkind: text% editor<%> 13:49 (quit) mikeX: Ping timeout: 240 seconds 13:49 (part) Alex_Gaynor: "Leaving..." 13:50 eli: You should of course disable anything you have completely and then try it again. 13:51 (join) mikeX 14:08 (join) anRch 14:12 (join) b-man_ 14:15 (join) danbrown 14:32 (quit) fjl: Remote host closed the connection 14:39 jonrafkind: whats the difference between `set-pen' and `set-brush' ? 14:39 jonrafkind: on a dc 14:57 jeapostrophe: i thought a brush was a pen with a color and a pen is just a shape? 14:58 jeapostrophe: i don't really know though 14:59 jonrafkind: ok ill try to figure it out and clarify the docs 15:00 jonrafkind: on another topic, jeapostrophe and eli, do you like the fact that eli-tester's `test' function calls `error' if any tests fail? id rather it just printed the errors and moved on 15:00 jeapostrophe: i like it, it cooperates with embedded test calls 15:00 jonrafkind: meaning if one test fails the rest dont occur? 15:01 jeapostrophe: naw (test a (test b) c) 15:01 jonrafkind: i thought there was one global error counting thing 15:01 jeapostrophe: ya that's what i mean 15:04 jonrafkind: it still works without the `error' call 15:04 jonrafkind: calling `error' doesn't make the global error increase.. right? 15:04 jeapostrophe: i like a good explosion i guess 15:06 eli: jonrafkind: Yeah, it could work without throwing an error -- 15:07 eli: and incidentally, your `#:on-pass' thing made me do a particular extension that will make it easy to just print errors. 15:07 eli: But for the default I think that throwing an error makes more sense. 15:07 (join) Yann3 15:07 (quit) Yann1: Ping timeout: 252 seconds 15:07 jonrafkind: it usually confuses me, i have some code under the (test) thing that I wanted to run and I forget why it doesnt run 15:08 eli: Um... 15:08 eli: Clearly it should run with some expected result that is not a test failure. 15:08 jonrafkind: (test) (something) 15:08 jonrafkind: `something' wont run if `test' throws an error, thats all im saying 15:09 eli: (define (my-tests) (test stuff)) (something) (my-tests) 15:09 jonrafkind: (printf "hello world!\n") (+ 1 2) 15:09 eli: No, (define (my-tests) (test stuff)) (something) (my-tests) 15:32 (quit) MayDaniel: 15:42 (quit) sstrickl: Quit: sstrickl 15:57 (quit) anRch: Quit: anRch 16:36 (join) Fare 17:10 (quit) b-man_: Remote host closed the connection 17:46 (join) Eren 17:46 Eren: hello 17:47 Eren: although I selected advance student and added image.ss and universe.ss teachpacks, I cannot use "crop" 17:47 Eren: reference to an identifier before its definition: crop 17:47 Eren: does anyone have idea? 17:47 Eren: and yes, I use DrRacket, doing my one of projects for uni :) 17:48 carleastlund: Eren, did you select htdp/image or 2htdp/image? The crop function is only in the latter teachpack. 17:49 Eren: carleastlund: I am using preinstalled teachpacks which, I think, are by-default 17:49 carleastlund: Both come with DrRacket. 17:50 carleastlund: Ah, but I see both are not on the teachpacks list. 17:50 Eren: I can only see "image.ss" under "Language->Add Teachpack" 17:51 Eren: btw, Advanced Student is selected for language 17:51 carleastlund: I see what's going on. The new "2htdp" stuff is phasing out the Teachpack menu. To get the new image teachpack, just write "(require 2htdp/image)" at the top of your program, after removing the old image teachpack. 17:52 carleastlund: Sorry for the growing pains here -- the 2htdp libraries and the new teachpack process are a work in progress. 17:52 Eren: carleastlund: thank you for your help, it seems to work now, let me try the function 17:53 Eren: functional programming is really a must for a computer science student, most of the universities here do not relize its importance though :) 17:58 (quit) danbrown: Remote host closed the connection 18:48 (join) jeapostrophe_ 18:58 (quit) jeapostrophe_: Quit: jeapostrophe_ 19:00 (quit) mceier: Quit: leaving 19:09 (quit) hanDerPeder: Quit: hanDerPeder 19:40 (join) b-man_ 20:11 (quit) b-man_: Ping timeout: 245 seconds 20:15 (join) jeapostrophe_ 20:20 (quit) jeapostrophe_: Quit: jeapostrophe_ 20:31 (join) b-man_ 20:35 (quit) jonrafkind: Ping timeout: 250 seconds 21:11 (quit) b-man_: Ping timeout: 252 seconds 21:12 (join) b-man_ 21:24 (join) samth_ 21:24 samth_: jeapostrophe, drdr needs some libraries to be installed 21:27 (quit) b-man_: Ping timeout: 255 seconds 21:29 (join) jeapostrophe_ 21:40 askhader: Are there no racket libraries for audio-playback operations on Linux? 21:41 (quit) jeapostrophe_: Quit: jeapostrophe_ 21:51 (join) RyanRN 22:06 samth_: askhader, see rsound on planet 22:07 askhader: brilliant 22:09 askhader: But only reads .wav ohsad 22:09 eli: askhader: If you just want to listen to music, see collects/ffi/examples/xmmsctrl.rkt 22:10 askhader: Yes, I won't be manipulating the music. 22:10 eli: And if you want to play sounds in mp3s, look for the allegro library. (It's something like sdl.) 22:10 samth_: askhader, write a gstreamber binding and put it on planet! 22:10 eli: askhader: In this case you can do the xmms thing, it's probably the easiest. 22:11 eli: gstreamer is for more than just listening; and besides, it's designed to be easy to interface through sub-processes. 22:11 askhader: it, being the xmms wrapper? 22:11 (quit) carleastlund: Quit: carleastlund 22:12 askhader: I would consider writing mpd bindings if mpd didn't suck bullocks. 22:12 samth_: yes, i understand that gstreamer does lots of things - that's why a planet library would be so useful! 22:14 eli: askhader: Yes -- if you just want to play some music, then controlling xmms or running some `play' subprocess would be very easy. Shouldn't take more than a few minutes. 22:14 (join) jeapostrophe_ 22:15 askhader: I was thinking of just writing an mplayer wrapper since mplayer plays pretty much everything already and the actual playback of media files is irrelevant to the computation I'm trying to achieve with racket. I could alternatively write .m3u playlist files. 22:19 eli: askhader: That's probably easy too, if it's practical. 22:19 eli: (to use mplayer, that is.) 22:20 eli: I think that VLC can also be controlled easily via a listening port. 22:20 askhader: Ample options. 22:31 eli: askhader: BTW, yet another option is Windows -- the MCI interface is *extremely* easy to use, and it abstracts nicely over all the media types the system knows about. 22:32 askhader: Ja winbl0wz >.> 22:34 eli: askhader: I'm as much up for flaming it as you'd expect, but the bottom line wrt to a sound interface is that it is the most convenient one. 22:34 eli: Linux suffers from 2^n interfaces, all incompatible in various ways, 22:35 eli: and OSX forces you to write 2 tons of boilerplate code just to do anything. 22:35 eli: (OSX was probably the most PITA-ish platform for the rsound interface that was mentioned earlier.) 22:36 askhader: I'm in total agreeance. 22:44 samth_: agreeance - word of the day 22:46 eli: Advantage of being a non-native speaker: easily invent words according to the rules, and easily parse such words regardless of being valid words or not. 22:47 eli: samth is canadian, so he's borderline. 22:53 Fare: eli: so Windows, the only good platform? 22:54 eli: ...as far as sound support goes. 22:54 Fare: dammit, I was hoping to be able to quote you out of context 22:55 eli: :) 22:55 eli: The Windows and Linux sides are not surprising here, it's OSX that was a surprise in just how horribly it sucks. 23:01 samth_: eli, you'll be punished for this 23:03 Fare: for revealing your canadianness? 23:04 offby1: HE'S CANADIAN?!? 23:04 offby1 flees 23:06 eli: It could be fun to see how far I could go with that joke... 23:11 (quit) jeapostrophe_: Quit: jeapostrophe_ 23:13 offby1: Don't joke about that kinda thing 23:14 (join) danbrown 23:15 samth_ tries to think of nationalities to associate with eli 23:16 samth_: i think american is probably the most offensive 23:16 eli: Ha! 23:17 eli: I thought that you'd try similarly with a neighboring country, which will be ... difficult. 23:23 (join) jonrafkind 23:24 Fare: samth: roman or turkish citizen. 23:29 jonrafkind: samth, did you really just use LoL in an email 23:29 jonrafkind: please turn in your computer badge. you are suspended for a month 23:32 eli: jonrafkind: http://landoflisp.com/ 23:32 jonrafkind: yea I know.. 23:33 jonrafkind: so now I can use lol with impunity right? since it has a valid meaning? 23:33 jonrafkind: LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL LOL v 23:33 eli: Only as LoL. 23:34 askhader: So I've written a basic function to produce a simple nested vector structure that represents a directory tree. The following paste contains a simplified version of the function that computes the structure. I'd like to know what you folks think of the style of the code? (a 'track' is a flat data-type) http://paste.lisp.org/display/116430 23:34 jonrafkind: lOl 23:35 eli: askhader: Why vectors? 23:35 (join) vu3rdd 23:35 askhader: o(1) reference time, I think was the deciding factor. 23:36 eli: What's the sizes that you'll be dealing with? 23:37 Fare: next, Land-of-Lisp, the racket edition? 23:37 Fare: Region-of-Racket ? 23:37 Fare: Reign-of-Racket ? 23:37 askhader: Aproximately 58 gigs worth of music on my private library. 23:37 askhader: Length in the order of tens of thousands, I think. 23:37 askhader: Maybe more. 23:38 eli: Fare: That acronyms much worsly. 23:38 eli: askhader: So it's not more than a few thousands for the file entries, right? 23:38 askhader: In production, yes. 23:39 eli: ...and whatever you're doing with it, it's intended for operations that the user is doing wrt to music. 23:39 Fare: Racket's Outer Territory, Foreign Land ? 23:39 askhader: wrt? 23:39 eli: WRT: with respect to 23:39 (join) emma 23:39 eli: In that case, I think that the difference between vectors and lists is neglegible, 23:40 askhader: When /wouldn't/ the difference be neglegible and how do you figure? 23:40 eli: and if it's all for human-driven operations, then it's optimizing in a place that won't see any difference. 23:40 askhader: Well the operations with this data certainly isn't all human driven. 23:41 eli: Probably around one or two orders of magnitude more files, 23:41 askhader: I'm going to be using these structures to attempt to implement some sort of machine learning technique for playlist generation. 23:41 eli: and possibly subject to extensive *cheap* and automated operations. 23:41 eli: So, if you're dealing with tags a lot, the cost of reading them will dominate the result anyway. 23:42 askhader: So you think I ought to use mutable lists instead. 23:42 Fare: Racket's Outstandingly Typical Fun Land ? 23:42 askhader: Yes, I was thinking the same thing in terms of tags. 23:42 eli: Reading a tag from a single file takes more time than copying a 10k list... 23:43 eli: And there's not even any need for mutable lists -- just use plain lists. 23:44 askhader: Is the decision between lists and vectors usually one of performance? 23:45 eli: It's more of a question of what fits your needs more naturally, performance is only a factor in the above cases -- where there's a *lot* of data, and/or when it's used very heavily. 23:47 askhader: Well the 'listed' version of that program certainly looks cleaner. One call to map got rid of a complete (let ..) nest 23:47 Fare: what about the decision between (unary) church numerals and builtin integers? 23:48 Fare: Speed has always been important otherwise one wouldn't need the computer. —Seymour Cray 23:49 (quit) samth_: Ping timeout: 252 seconds 23:50 eli: Fare: That's an awful quote. 23:51 eli: askhader: See also `fold-files'. 23:57 (join) jeapostrophe_ 23:58 askhader: eli: Oh, very nice.