00:05 (quit) neilv: Ping timeout: 245 seconds 00:15 (join) neilv 00:15 (quit) neilv: Changing host 00:15 (join) neilv 00:25 (quit) Fare: Quit: Leaving 00:32 (join) jeapostrophe_ 00:32 (quit) jeapostrophe_: Client Quit 04:30 (nick) tanami -> mapcadr 04:33 (join) ahc 04:38 (quit) mapcadr: Changing host 04:38 (join) mapcadr 04:40 (quit) ahc: Ping timeout: 276 seconds 05:00 (join) ahc 05:09 (quit) ahc: Quit: Computer has gone to sleep 05:30 (join) MayDaniel 05:40 (quit) hanDerPeder: Quit: hanDerPeder 05:44 (quit) pygospa: Quit: leaving 05:44 (quit) MayDaniel: 06:04 (quit) writer: Quit: writer 06:05 (join) ahc 06:23 (join) masm 06:23 (join) mapcadr_ 06:27 (quit) mapcadr: Ping timeout: 240 seconds 06:37 clklein: mattmight: I think it's here: http://planet.racket-lang.org/display.ss?package=pfds.plt&owner=krhari 06:54 (nick) mapcadr_ -> mapcadr 06:54 (quit) mapcadr: Changing host 06:54 (join) mapcadr 07:04 (quit) neilv: Ping timeout: 265 seconds 07:09 (quit) ahc: Quit: Computer has gone to sleep 07:25 (quit) martinhex: Read error: Connection reset by peer 07:26 (quit) mapcadr: Ping timeout: 250 seconds 07:26 (join) martinhex 07:31 (join) mapcadr 07:35 (join) mceier 07:37 (join) ahc 07:48 (quit) ahc: Ping timeout: 245 seconds 07:53 (join) ahc 07:59 (quit) ahc: Ping timeout: 252 seconds 08:13 (quit) martinhex: Remote host closed the connection 09:31 (join) b-man_ 09:38 (join) jeapostrophe_ 09:41 (quit) jeapostrophe_: Client Quit 09:46 (join) anRch 10:18 (join) jeapostrophe_ 10:20 mattmight: Oops. Already re-implemented it. 10:33 (quit) jeapostrophe_: Quit: jeapostrophe_ 10:34 (join) jeapostrophe_ 10:38 (quit) mceier: Quit: leaving 10:39 jeapostrophe_: mattmight: always check planet :) 10:39 jeapostrophe_: http://planet.plt-scheme.org/display.ss?package=pfds.plt&owner=krhari 10:55 (quit) jeapostrophe_: Quit: jeapostrophe_ 11:12 (quit) anRch: Quit: anRch 11:13 (join) jeapostrophe_ 11:21 (quit) jeapostrophe_: Quit: jeapostrophe_ 11:45 (quit) tonyg: Remote host closed the connection 12:02 (join) mceier 12:22 (quit) b-man_: Remote host closed the connection 12:32 (quit) vu3rdd: Remote host closed the connection 12:46 (quit) tv|z: Ping timeout: 276 seconds 12:47 (join) tv|z 13:08 (join) neilv 13:08 (quit) neilv: Changing host 13:08 (join) neilv 13:20 (join) jonrafkind 13:37 (join) MayDaniel 13:44 (join) jeapostrophe_ 14:01 (quit) MayDaniel: Read error: Connection reset by peer 14:07 (quit) jeapostrophe_: Quit: jeapostrophe_ 14:19 (join) ahc 14:21 (quit) jao: Remote host closed the connection 14:29 (join) jeapostrophe_ 14:30 (quit) jeapostrophe_: Client Quit 14:31 (join) b-man_ 14:49 (join) jao 15:21 (quit) neilv: Ping timeout: 272 seconds 15:31 (join) neilv 15:31 (quit) neilv: Changing host 15:31 (join) neilv 15:32 (quit) neilv: Client Quit 15:33 (join) MayDaniel 15:33 (quit) b-man_: Read error: Connection reset by peer 15:38 (quit) MayDaniel: 15:41 (join) jeapostrophe_ 15:44 (quit) jeapostrophe_: Client Quit 15:54 (join) writer 15:55 (join) jeapostrophe_ 15:56 (quit) jeapostrophe_: Client Quit 16:14 (join) jeapostrophe_ 16:14 (quit) jeapostrophe_: Client Quit 16:19 (join) jeapostrophe_ 16:21 (quit) jeapostrophe_: Client Quit 16:30 (join) hanDerPeder 16:30 (join) jeapostrophe_ 16:30 (quit) jeapostrophe_: Client Quit 16:36 (quit) hanDerPeder: Quit: hanDerPeder 16:39 (quit) ahc: Quit: Computer has gone to sleep 16:42 (join) jeapostrophe_ 16:43 (join) ahc 16:43 (quit) jeapostrophe_: Client Quit 16:52 (quit) ahc: Ping timeout: 245 seconds 16:52 (join) ahc 16:56 (join) b-man_ 17:31 (quit) ahc: Quit: Programming – you're doing it wrong 17:55 (join) writer_ 17:56 (quit) writer: Disconnected by services 17:56 (nick) writer_ -> writer 17:56 (quit) writer: Changing host 17:56 (join) writer 18:10 Lajla: Does Roacket support docstrings in any fashion? 18:10 Lajla: chandler, you the honour the answer this one. 18:12 (join) jeapostrophe_ 18:14 (quit) b-man_: Remote host closed the connection 18:14 (quit) jeapostrophe_: Client Quit 18:45 jonrafkind: theres define/doc or something 18:45 jonrafkind: well at least provide/doc 18:45 (quit) mceier: Quit: leaving 18:45 jonrafkind: what would you do with the docstring if you could write one? do you want to write (get-doc-string some-function) ? 19:21 (quit) mapcadr: Changing host 19:21 (join) mapcadr 19:53 (join) jeapostrophe_ 19:54 (quit) jeapostrophe_: Client Quit 20:06 Lajla: jonrafkind, I'm not sure, I just wanted to know I guess. 20:06 jonrafkind: you can always write a really simple macro to get it 20:06 Lajla: That is true 20:06 Lajla: But that will probably add a lot of complexity for each definition 20:07 Lajla: You know, I was thinking 20:07 Lajla: And when I'm thinking 20:07 Lajla: that means that stuff will, and shall, go wrong. 20:07 jonrafkind: (define-syntax-rule (define+doc-string (name args ...) doc body ...) (define (name args ...) body ...) 20:07 Lajla: But why do functions have docstrings in so many languages? 20:07 Lajla: Don't you want bindings to have them? 20:07 jonrafkind: well they are usually a poor man's documentation system 20:07 Lajla: Really? 20:07 Lajla: I thought they were state of the art. 20:07 Lajla: CLojure has them. 20:07 Lajla: And that is stateof the art. 20:07 Lajla: Without TCO. 20:07 Lajla: But still 20:07 Lajla: State of the art. 20:08 Lajla: But like, say bindings have docstrings, that makes a lot more sense nay? 20:08 jonrafkind: i dont think ive ever used a doc string in any language that supports them 20:08 Lajla: Then you can also give them to constants 20:08 jonrafkind: i usually goto the web to read about the functions 20:08 Lajla: And why would function literals need them? 20:08 Lajla: Yeah, but if you have a repl. 20:08 jonrafkind: function literals shouldn't have them 20:08 Lajla: It's pretty nice. 20:08 jonrafkind: yes 20:08 Lajla: Well, they can if docstrings are part of lambda 20:08 Lajla: rather than part of define. 20:09 jonrafkind: thats true, but it would be nice to have a use-case for such a feature 20:09 Lajla: Clojure has a pretty sophistuicated metadata system on functions 20:09 jonrafkind: does clojure allow doc strings for function literals? 20:09 Lajla: You can even put the email of the author in them. =P 20:09 Lajla: Clojure has them for everything it seems 20:09 Lajla: You can add metadata to about everything. 20:09 Lajla: Including numbers 20:10 jonrafkind: 5 ""brought to you by jon!!!!11111111111oneone!" 20:10 Lajla: (with-meta {:doc "this is the number three, an exact integer"} 3) 20:10 Lajla: That's now the number 3 with a docstring. 20:10 jonrafkind: so whats that number + 4 20:10 jonrafkind: how does meta information move around? 20:10 Lajla: well, 7 without doc I guess. 20:10 Lajla: Not really. 20:11 Lajla: But it's just a bizarre example I guess. 20:11 Lajla: But I like the fact that constants can also have docs here, not only functions, and that it's more extensible. 20:11 Lajla: But I think just making them part of define, rather than of lambda, solves a lot more. 20:11 Lajla: (doc ...) would have to be a special form then though, I guess. 20:11 jonrafkind: i suppose.. i rarely use the repl for anything 20:12 Lajla: But it makes hacking and slashing without knowing what you do so much easier. =( 20:13 jonrafkind: well now there are chaperones in racket, i wonder if you can attach arbitrary values to them 20:13 Lajla: I don't now what that is, because I am a noob who knows nothing of racket, if I did, I would surely conceide that racket is the most superior language for any task in the world. 20:13 jonrafkind: yea I guess you can 20:14 jonrafkind: http://docs.racket-lang.org/reference/chaperones.html?q=chaperone#(tech._chaperone) 20:14 jonrafkind: basically you can wrap a value in a "chaperone" and have it act like the original value except for some cases 20:14 jonrafkind: so probably you could wrap functions inside chaperones that contained a doc-string 20:15 Lajla: Hmm 20:15 Lajla: how hygienic are these things I wonder. 20:15 Lajla: Like, structs are made with macros mainly, right? 20:15 Lajla: In racket? 20:15 jonrafkind: yea 20:15 jonrafkind: i dont think theres any relation between chaperons and hygiene 20:15 Lajla: so like, if I were to have a random struct, and try (vector-ref random-struct 0) 20:15 Lajla: Does that give me something 20:15 Lajla: ? 20:15 Lajla: Well, no, I'm just insane and keep hopping from subject. =( 20:19 (join) b-man_ 20:24 Lajla: jonrafkind, you don't know? =( 20:24 jonrafkind: structs are vectors or something yea.. 20:25 jonrafkind: well it didnt work 20:25 Lajla: So basically the hygiene can be broken if you know how it ś implemented? 20:25 Lajla: Well, if it can be broken there is no hygiene, but you get what I mean. 20:26 jonrafkind: no i dont get it 20:26 jonrafkind: what does this have to do with hygiene 20:27 Lajla: Well, I mean, like 20:27 Lajla: if you know how it's implemented 20:27 Lajla: Can you reference them in another way. 20:27 Lajla: Like, let's just asssume that structs really are vectors. 20:27 jonrafkind: thats not hygiene.. thats just lack of encapsulation 20:28 Lajla: And (program.how-many-clicks hello-world) really macros out to (vector-ref hello-world 9) or something. 20:28 Lajla: Ahh, well. 20:28 Lajla: Then you do get what I mean. 20:28 Lajla: But can you enter it? 20:28 Lajla: Is the encapsulatoin imperfect? 20:28 jonrafkind: it didnt work in the repl 20:28 Lajla: yeah, but maybe there's another way. 20:28 jonrafkind: maybe the implementation for structs changed 20:29 Lajla: We will break into this. 20:29 (join) cs-student 20:29 Lajla: And when we do. 20:29 Lajla: We will get nice and shiny white airbook macs. 20:29 cs-student: hey can i install drracket on ubuntu? 20:29 jonrafkind: ok but im busy reading pictures of lolcats 20:29 Lajla: We can put into envelopes. 20:29 jonrafkind: cs-student, yea theres an ubuntu installer 20:29 Lajla: cs-student, yes 20:29 cs-student: i got the *.sh file but i dont know how to run it 20:29 Lajla: You have my permission 20:29 cs-student: where is the installer? 20:29 jonrafkind: http://download.racket-lang.org/racket-5-0-2-bin-i386-linux-ubuntu-jaunty-sh.html 20:29 rudybot: http://tinyurl.com/29zba65 20:29 jonrafkind: are you in a terminal? 20:29 jonrafkind: run 'sh blahblah.sh' 20:29 jonrafkind: or chmod +x blah.sh; ./blah.sh 20:30 jonrafkind: files ending in .sh means they are shell scripts where 'sh' is the name of the shell 20:30 jonrafkind: you are probably not running the 'sh' shell, most likely you are running bash, but for historical purposes sh is linked to bash 20:30 cs-student: on terminal i typed in "sh " and then dragged in the file from my desktop to the terminal window 20:30 jonrafkind: i dont think you can do that 20:30 cs-student: and it just opened up another program that showed me the source 20:30 jonrafkind: you have to give the name of the file to sh 20:31 jonrafkind: go to where you downloaded the file and type 'sh blah.sh' 20:31 jonrafkind: using cd and whatnot 20:31 cs-student: ok 20:31 Lajla: You can just use the GUI, no? 20:31 jonrafkind: i dunno, does ubuntu run sh files? 20:31 Lajla: double click on the sh file works okay in most configurations I guess, but I think it's the chmod maybe. 20:32 jonrafkind: oh, so then its useless 20:32 Lajla: you imply that I use anything but gnunewsense? 20:32 Lajla: You dare to insinuate that I would give my FREEDOMS away? 20:32 jonrafkind: maybe you can right click on the file and chmod +x it 20:32 Lajla: cs-student, 20:32 Lajla: do you have a screenshot 20:34 Lajla: jonrafkind, anyway, back to the imporant matters. 20:35 Lajla: The incapsulation of structs. 20:35 Lajla: The very fait of the universe may depend on this research, we need this to break Dr. Evilus evil plans for universal domination via the quantum-singularity-prism. 20:35 Lajla: fate 20:37 jonrafkind: read the source :p 20:41 Lajla: Can't I just turn the wheel until I have the answer. 20:41 Lajla: cs-student, 20:41 Lajla: do you have scroansheets? 20:41 Lajla: Of your most perilous situation 20:54 cs-student: ok i think i got it 20:54 cs-student: thnx 20:55 Lajla: cs-student, we were happy to be off service. 20:55 Lajla: Now. 20:55 Lajla: will you help us defeat Dr. Evilus? 20:55 Lajla: You get a free pogostick and a cool helmet for it. =) 20:55 jonrafkind: dont scare the customers 20:55 Lajla: =( 21:01 (quit) askhader: Quit: Lost terminal 21:02 (join) askhader 21:09 (quit) b-man_: Ping timeout: 264 seconds 21:19 (join) ben___ 21:19 (part) ben___ 21:21 (join) benk_ 21:22 benk_: Can anyone point me at the best place to find slideshow examples? 21:22 (join) hanDerPeder 21:23 benk_: Also has anyone ever formatted code besides racket/scheme code in slideshow? For example haskell or ml? 21:23 benk_: or common languages like java c++ etc. 21:23 askhader: Have you heard of latex? 21:24 askhader: http://www.latex-project.org/ 21:24 askhader: It's a very simple document preparation system. 21:24 benk_: sure. Is there a straightforward way to embed latex into slideshow? 21:25 askhader: Hm. 21:25 askhader: latex can write to a plethora of formats 21:25 askhader: I'm /certain/ it can work with slideshows, I know because I attend lectures (often related to scheme) where the instructor prepared the slides in tex 21:26 benk_: You're pretty sure he uses slideshow? 21:26 benk_: he/she 21:26 askhader: Uh, certain? 21:26 askhader: Also haskell, the very same prof 21:27 benk_: There are styles for laying out haskell code in latex. I guess he uses something like that and then embeds the tex output into slideshow 21:28 benk_: I'll check the slideshow docs. 21:28 askhader: What exactly do you want your tool to do?> 21:29 benk_: Well I want to be able to use the drawing / animation primitives in slideshow along with haskell code samples and latex type system rules 21:30 (quit) cs-student: Quit: Page closed 21:31 askhader: I'm sorry, maybe I'm being dull but I have no idea what you're looking for. 21:34 benk_: If I could embed typeset latex into slideshow directly that would suffice 21:36 benk_: I just looked in the repository. There's a file there by jay mccarthy called slideshow-latex.plt 21:37 askhader: http://www.latex-project.org/ 21:37 askhader: er 21:37 askhader: http://amath.colorado.edu/documentation/LaTeX/prosper/ 21:41 (quit) askhader: Quit: leaving 22:40 (quit) masm: Quit: Leaving. 22:51 eli: rudybot: init http://tmp.barzilay.org/x 22:51 rudybot: eli: your "http://tmp.barzilay.org/x" sandbox is ready 22:52 eli: rudybot: (define plus (with-meta 'doc "Curried addition" 'author "Eli Barzilay" 'license "LGPL" (lambda (x) (with-meta 'doc (format "A function that adds ~s" x) (lambda (y) (+ x y)))))) 22:52 rudybot: eli: Done. 22:52 eli: rudybot: (get-prop plus 'author) 22:52 rudybot: eli: ; Value: "Eli Barzilay" 22:52 eli: rudybot: (get-prop plus 'license) 22:52 rudybot: eli: ; Value: "LGPL" 22:52 eli: rudybot: (get-prop plus 'doc) 22:52 rudybot: eli: ; Value: "Curried addition" 22:52 eli: rudybot: (get-prop (plus 8) 'doc) 22:52 rudybot: eli: ; Value: "A function that adds 8" 22:52 eli: Lajla: ^ 23:04 (join) askhader 23:21 tewk: ffi question? how do I pass the address of cstruct to a function 23:22 tewk: Is there an exmaple somewhere? 23:25 (quit) hanDerPeder: Quit: hanDerPeder 23:34 (join) Kevin_ 23:34 (quit) rudybot: Ping timeout: 260 seconds 23:34 Kevin_: hi there everyone 23:35 Kevin_: I had a computer science question 23:35 Kevin_: it's not really related to Dr. Racket though 23:35 askhader: Ask. 23:35 (quit) rapacity: Ping timeout: 252 seconds 23:35 Kevin_: allright, well it's a bit complex, but basically: 23:35 (quit) mapcadr: Ping timeout: 260 seconds 23:36 askhader: tewk: Address of cstruct? 23:36 Kevin_: say you wanted to write a program in which a server send out instant updates to mobile devices 23:36 Kevin_: so for example, like push email 23:36 Kevin_: specifically, it's a mobile banking application 23:37 Kevin_: so basically, a user would get an update or a message whenever the account balance is less that $100 or something 23:38 Kevin_: Is there some sort of architecture or something involved in this? 23:38 Kevin_: I was looking at CORBA 23:38 Kevin_: and it seemed like it was kind of relevant 23:38 Kevin_: http://www.omg.org/gettingstarted/corbafaq.htm#HowWork 23:40 askhader: Well I haven't heard of one but my experience is limited. Give the channel some time, it's not always instantly reactive to activity. 23:40 Kevin_: what do you guys think? 23:40 Kevin_: no problem 23:40 Kevin_: I don't actually plan on making this, you see 23:41 Kevin_: and I'm not very well versed in computer scienece 23:41 Kevin_: this is simply for an assignment I have haha 23:41 (join) mapcadr 23:41 askhader: Well another problem is that I'm not sure what kind of an answer you're looking for. Do you want an algorithm to solve this type of problem? 23:42 askhader: Or a specific implementation of this sort of thing? 23:43 Kevin_: well, I'm not too sure on the whole thing. Basically, I need to explain in more depth how it works. I can't just say "the server pushes messages to the phone" 23:44 askhader: So your server needs to be aware of which phone maps to which account. 23:44 askhader: or vice versa, actually. 23:44 Kevin_: yes 23:45 askhader: Also, your implementation would need a specific protocol for which the data can be transferred. 23:45 Kevin_: I'm sorry, what do you mean by "specific protocol" 23:45 askhader: The internet, for example. 23:46 askhader: Well the internet is a series of communication protocols. 23:46 Kevin_: ah, yes 23:46 Kevin_: I understand 23:46 Kevin_: I think I remember reading about that 23:46 Kevin_: would IIOP be one? 23:46 askhader: IMAP - Internet Message Access Protocol might be a place to start 23:46 askhader: Sure 23:47 Kevin_: but this protocol 23:47 Kevin_: it has to be able to send not just text 23:47 askhader: Is that so? 23:47 Kevin_: actually 23:48 Kevin_: I suppose it could just be text 23:48 askhader: Well there are solutions to all these problems. 23:48 askhader: After you've dealt with data transfer you might want to look at ways by which the server checks accounts efficiently. 23:49 Kevin_: so how it searches through accounts? 23:49 askhader: Although I've never worked on such a system (nor studied, I'm still in my early years of Computer Science), one naive solution would be to just check each account indefinitely. Although for large banks this can become problematic. 23:49 askhader: Sure, searching through accounts is a big part of the problem. If you want to get into it. 23:49 Kevin_: the way I see it in my head is: 23:49 Kevin_: all the accounts are constantly being monitored 23:49 Kevin_: suddenly 23:50 Kevin_: the bank sees "oh, this guy's balance is low. I need to send him a message" 23:50 askhader: Consider the following. 23:50 askhader: It may be near impossible for your server to be aware of all your accounts at the same time, but if you introduce a few 'rules` into your program then you can make assumptions that simplifies the problem. 23:50 askhader: For example. 23:52 askhader: If you create a new paramter associated with each bank account, let's call it 'notified' then you can just do the following. If a transaction takes place, check if the balance is less than 100. Yes? Check if 'notified' is TRUE - if not, notify the user and set NOTIFY to true. 23:52 askhader: Otherwise, do nothing. 23:52 Kevin_: ah, makes sense 23:53 askhader: And if the balance goes above 100, set notified to FALSE 23:53 Kevin_: and then basically do that to each account? 23:53 askhader: Nope, just when a transaction takes place. 23:53 Kevin_: ah, yes 23:54 askhader: of course you must set the `notified` variable accordingly when an account is created. 23:54 (join) vu3rdd 23:54 Kevin_: but how would a bank know when a transaction has taken place? 23:55 Kevin_: so lets say somebody swipes their debit card somewhere 23:55 askhader: A bank knows when activity happens. 23:55 askhader: It's the primary function of a bank. 23:55 Kevin_: haha, yeah I suppose 23:55 askhader: But it all comes down to changes in the account. 23:56 askhader: So you want to define a data type 23:56 askhader: Call it an 'account' 23:56 askhader: An account has the following fields (maybe more) client-name balance notified 23:56 askhader: Oh and mobile-number 23:56 askhader: If balance changes, a transaction took place? =] 23:57 askhader: And a bank keeps a list of accounts, presumably sorted somehow. 23:57 Kevin_: ok, I see 23:58 Kevin_: what this was ultimately leading up to is that: 23:58 Kevin_: 1. you have an app on your phone 23:58 Kevin_: 2. you make a transaction 23:59 Kevin_: 3. a notification is automatically sent to that app detailing the transaction 23:59 askhader: The complexity of this problem depends on the tools at your disposal.