00:04 (quit) mceier: Quit: leaving 00:07 (quit) kvda: Quit: x__x 00:11 (quit) Kaylin: Quit: Leaving. 00:33 (quit) dnolen: Read error: Connection reset by peer 00:49 (join) kvda 00:50 (quit) hash_table: Ping timeout: 265 seconds 00:50 (quit) getpwnam: Ping timeout: 265 seconds 00:52 (join) vu3rdd 00:52 (quit) vu3rdd: Changing host 00:52 (join) vu3rdd 01:19 (quit) jeapostrophe: Ping timeout: 245 seconds 01:55 (quit) jacius: Remote host closed the connection 01:59 (join) jeapostrophe 01:59 (quit) jeapostrophe: Changing host 01:59 (join) jeapostrophe 02:30 (join) mye 02:39 (quit) jeapostrophe: Ping timeout: 256 seconds 02:44 (join) hkBst 02:44 (quit) hkBst: Changing host 02:44 (join) hkBst 03:13 (join) mye_ 03:16 (quit) mye: Ping timeout: 240 seconds 03:19 (join) antithesis 03:21 (quit) jonrafkind: Ping timeout: 245 seconds 03:23 (join) mye__ 03:23 (quit) kvda: Quit: Computer has gone to sleep. 03:26 (join) jesyspa 03:27 (quit) mye_: Ping timeout: 244 seconds 03:29 (quit) antithesis: Remote host closed the connection 03:29 (quit) soegaard: Ping timeout: 245 seconds 03:29 (join) antithesis 03:33 (join) djcb 04:04 (join) nilyaK 04:56 (quit) nilyaK: Quit: Leaving. 05:10 (join) bitonic 05:28 (join) neilv 05:29 (join) dzhus 05:31 (join) jyc_ 05:34 (quit) jyc: Ping timeout: 245 seconds 06:04 (quit) jyc_: Read error: Connection reset by peer 06:27 (join) masm 06:49 (quit) djcb: Remote host closed the connection 06:50 Shambles_: Anyone around that's willing to help me with a thought experiment involving removing mutation? 06:51 (join) gciolli 06:58 (quit) jesyspa: Read error: Operation timed out 07:03 (join) jesyspa 07:14 (quit) vu3rdd: Ping timeout: 245 seconds 07:35 (quit) dzhus: Ping timeout: 248 seconds 07:43 (join) soegaard 07:50 (join) cdidd 08:03 (quit) cdidd: Read error: Connection reset by peer 08:04 (join) cdidd 08:12 (join) kanak 08:13 (join) Shviller 08:32 (quit) bremner_: Quit: ZNC - http://znc.in 08:34 (quit) noam: Read error: Connection reset by peer 08:34 (join) noam 08:35 (quit) soegaard: Ping timeout: 245 seconds 08:44 (join) jorick 08:45 jorick: How can I add "plugins" to my program? Like; people could write contrib modules which would add functionality to the program? 08:46 (join) jeapostrophe 08:46 (quit) jeapostrophe: Changing host 08:46 (join) jeapostrophe 08:47 bremner: rudybot: doc dynamic-require 08:47 rudybot: bremner: your sandbox is ready 08:47 rudybot: bremner: http://docs.racket-lang.org/reference/Module_Names_and_Loading.html#(def._((quote._~23~25kernel)._dynamic-require)) 08:50 (join) jao 08:50 (quit) jao: Changing host 08:50 (join) jao 08:54 (join) getpwnam 08:55 (join) hash_table 08:59 (quit) jesyspa: Ping timeout: 250 seconds 09:01 (join) jesyspa 09:07 (join) netrino 09:18 Shambles_: Anyone willing to help with the thought experiment? 09:19 neilv: it's a monday morning at work. you might have better luck on the email list 09:19 Shambles_: I'll wait until later. I'm not wild about mailing lists, and chat is less likely to preserve my ignorance for (easily searchable) posterity. 09:20 neilv: nope. every word here shows up prominently in google 09:20 Shambles_: I don't think it's that difficult a question. It just involves thinking differently than I'm used to about maintaining state. 09:20 Shambles_: It shows up here (unfortunately), but it's mixed in with everything else. 09:23 Shambles_: I've looked at the papers on 'world'-style programming. It doesn't discuss the implementation much, but I can easily imagine it all be implemented with only one "set!". What I've been trying to do is figure out if it's possible to get rid of that last "set!", 'holding onto' the current state for the various events to share. 09:24 Shambles_: I know if you don't need to share state across functions you can just use tail recursion and pass the state as a argument. I also know if I want to, effectively, jam several functions into one, I can make another argument (e.g. keyword or symbol) that indicates which code it should run. 09:25 Shambles_: The remaining problems are the fact this is basically a loop, which would 'busy wait' a lot. I wondered if it would be possible to insert yields to make it behave reasonably in a real-world program (e.g. average GUI program, like a Notepad clone, or a simple game). 09:29 (join) dnolen 09:34 (quit) hash_table: Ping timeout: 240 seconds 09:34 (quit) getpwnam: Ping timeout: 240 seconds 09:53 (join) Girffe 09:54 Girffe: Hi, I'm trying to install racket on Ubuntu 12.04. When I type racket, it tells me to install it simply with sudo apt-get install racket, but when I try using that, it says it can't find the package racket, even though universe it enabled. 09:54 Girffe: Is there supposed to be a way to install racket via universe or do I have to use launchpad? 09:55 (quit) cdidd: Ping timeout: 245 seconds 09:56 (join) cdidd 09:56 (join) jeapostr1phe 09:56 (quit) jeapostrophe: Ping timeout: 265 seconds 10:05 Shambles_: It looks like event handlers have to be separate functions so I guess I can't get rid of that last set! though the idea would work in theory, I guess. 10:06 bremner: Girffe: it shows on packages.ubuntu.com as being there 10:06 bremner: http://packages.ubuntu.com/precise/lisp/racket 10:13 samth: Shambles_: you should look up functional reactive programming 10:14 samth: jorick: look up the paper "DrScheme: a programming environment for Scheme" by Findler et al 10:14 samth: it talks about the plugin architecture there 10:14 Shambles_: samth: I'm familiar with it. It seems to be the same as Lucid-style dataflow programming. One practical problem is it's a separate language from Racket, and I suspect that means it has some of the same issues as Typed Racket. I'd want to be able to use most of the standard library. 10:15 samth: Shambles_: if you want to use racket's gui system, be prepared for a lot more than 1 set! 10:15 (quit) Girffe: Ping timeout: 245 seconds 10:15 samth: the lower levels of every real gui in use today features mutation heavily 10:16 Shambles_: samth: The other problem is I know how that's implemented internally, and there's a ton of mutation involved (basically any time a depended-upon value changes, the dependent variable is assigned a new value). The only reason I care about this immutable stuff is the more mutable state I can get rid of, the easier I can multithread it. 10:16 Shambles_: samth: That, and I'm trying to force my head into a Lisp-appropriate way of thinking. 10:17 samth: Shambles_: multi-threading plus guis is a tricky problem 10:18 Shambles_: samth: Granted, there's a lot of mutation in GUI's. However, all 'console' handling (graphics, sound, keyboard, and mouse) aught to be done in the main thread, so everything stays in sync (no audio/video desynch, for instance). 10:18 samth: right 10:19 Shambles_: samth: And some of this stuff applies to things like networked servers. It looks like you actually /could/ get away with the 'do it all with one function and tail recursion' judging from the networking examples, but they're using sleep, which usually makes people scowl at you. 10:19 Shambles_: samth: You're usually supposed to use something that causes the program to block (stop the OS scheduler from running it) until some event happens (e.g. keyboard/mouse input). So it doesn't peg a core at 100%. 10:19 samth: Shambles_: yes, you can certainly write functional-style network programs 10:19 samth: that's the universe part of the library 10:20 Shambles_: samth: Universe? 10:20 samth: from `2htdp/universe` 10:20 Shambles_: samth: That's a teachpack though, right? 10:20 (quit) cdidd: Quit: Leaving 10:20 samth: it's just a library 10:20 Shambles_: samth: Not something intended for real use? 10:21 samth: it's not for building http servers, if that's what you mean 10:22 Shambles_: Is there anything wrong with using what I'd planned for real world networking? One function that 'dispatches' based what it read from input, and passes any state that would otherwise need to be mutated as a argument for tail recursion? 10:23 (join) cdidd 10:25 (quit) jesyspa: Read error: Operation timed out 10:25 Shambles_: And is there something better to use to reduce the load on the processor than sleep? Something that says "wake me up when there's more work to do"? 10:25 (join) Demosthenes 10:27 (join) jesyspa 10:35 (quit) cdidd: Quit: Leaving 10:40 (quit) antithesis: Remote host closed the connection 10:40 Shambles_: samth: You there? 10:40 samth: Shambles_: just block on what you're trying to do, in a separate thread 10:40 samth: but sleeping is fine too 10:41 neilv: gah. paid work calls 10:41 (quit) neilv: Quit: Leaving 10:41 Shambles_: samth: Will I run into any problems doing the one-function-as-a-loop thing with networked programs? 10:41 samth: Shambles_: it really depends 10:41 (join) getpwnam 10:42 samth: i haven't done it 10:42 (join) cdidd 10:42 Shambles_: samth: What would it depend on? 10:42 samth: how much network programming have you done? 10:42 (join) hash_table 10:43 Shambles_: samth: Not a lot. I haven't really needed or wanted to. About the most involved thing I've done is talking to WMI to get a bunch of information off of computers I administered. That program was poorly written (it'd fail if any of the machines were offline, for example), but it worked well enough to get my job done. 10:43 Shambles_: samth: And that wasn't in Racket. 10:44 (join) antithesis 10:44 samth: Shambles_: then i recommend doing more of that, before exploring new paridigms 10:44 Shambles_: samth: Why is that? Not to mention I don't really have a huge need to do network programming day to day. 10:45 samth: Shambles_: inventing new stuff when you don't have a solid grasp of what went before rarely works out 10:46 Shambles_: samth: I'm not trying to invent anything new. I'm trying to figure out how I could write something 'real' fully-functionally. Cheating by using something someone else wrote that uses mutation underneath doesn't help me learn anything, since that seems to be a common suggestion. 10:47 samth: Shambles_: haskell is implemented highly imperatively under the hood 10:47 samth: but you can learn lots by writing functional programs in it 10:47 Shambles_: samth: I know how to do simple computations and manipulate data structures purely functionally. I/O doesn't give me any trouble in Lisp, and I don't see any real advantage to avoiding it. Doing without mutable state is unintuitive, though. 10:47 samth: no one knows everything that goes on under the hood 10:48 samth: Shambles_: then try writing some guis using 2htdp/universe 10:48 (quit) antithesis: Remote host closed the connection 10:48 samth: if what you're trying to do is learn, then that's perfect 10:48 Shambles_: samth: I find it's I/O mechanism offensive (I do not like monads), and the recommended solution there would be to cheat and use the state monad, rather than trying to find some way to actually avoid the mutable state. 10:49 Shambles_: samth: I've played with World. I don't know what universe is, but it can't be that different. I was trying to figure out how one would go about implementing World without using set anywhere. I can easily get it down to one set! 10:50 (join) anRch 10:50 samth: Shambles_: how do you do the drawing functionally? 10:51 Shambles_: I've just been trying to figure out if you can get rid of the last set! and it looks like you could for networked programs, but not GUI ones, since the networked programs seem to use a single tail-recursive function, but the GUI seems to require multiple functions (which, as far as I can tell, requires mutation) for the event handlers. 10:51 samth: and anyway, how you implement it depends entirely on what interface is provided by the lower levels for things like event handling 10:52 Shambles_: samth: I'm not sure how it works now, but in the VGA days it was just writing to a strip of memory in I/O space. You'd have to do it through the toolkit anyway, since Windows won't let you at the raw hardware. And that's I/O, not state anyway. 10:53 samth: Shambles_: i think that distinction is less obvious than you'd think 10:54 Shambles_: samth: I'm aware you can, theoretically, hurt yourself by doing things like using file I/O to simulate mutable variables, complete with race conditions. In practice this doesn't seem to be a big problem, and I've not been impressed with anything that tries to paper over I/O's imperative nature. 10:55 Shambles_: samth: There is, on the other hand, a good practical reason to try to get rid of real (not I/O) mutable state, and that's multithreading. I could live with the one "set!". I'm just trying to figure out whether you can eliminate it. For some reason you don't seem to want to answer that, but keep telling me I should be doing something different. 10:56 samth: you can always get rid of `set!`, in any system, by passing around that state 10:56 Shambles_: samth: From what I can tell by looking at the documentation the answer is "no, for GUI programs, because you'd need a mutable variable to share the current state between event handlers" and "yes, for network programs", but nobody is exactly clarifying that. 10:56 samth: but whether you can make that work for a particular system depends on the API that you're working on top of 10:57 Shambles_: samth: How would I get rid of "set!" in a GUI program when I need to do something on a timer event, and something else on a keypress event? 10:57 samth: Shambles_: for example, you'd have your timer and keypress event take and return the state of the world 10:57 samth: just like world does 10:58 samth: but for network programming, similar issues arise -- for example, the api of epoll() has an impact on whether you need mutation 10:58 Shambles_: samth: Yes, that's all well and good. World, underneath, 'replaces' the previous world state with the current one using mutation. That's the only way I can think of to have the event handlers as separate functions but still be able to 'see the same world'. 10:58 samth: also, you might or might not be able to write everything with only one event handler 10:58 Shambles_: samth: I'm trying to get confirmation or denial if this is the case. 10:59 samth: Shambles_: i don't think you're asking a meaningful question 10:59 (quit) jrslepak: Quit: This computer has gone to sleep 10:59 (join) soegaard 10:59 (quit) dnolen: Ping timeout: 240 seconds 11:00 Shambles_: samth: I guess that's as much a matter of opinions as whether asparagus tastes good. In my defense, I'd point out that someday I might want to implement something like World for a environment that doesn't already have it (e.g. Python). Knowing my options for how it could be implemented is useful in that situation. 11:01 samth: Shambles_: but in that case, how you can implement it is almost entirely determined by the underlying python apis that you're using 11:01 samth: which is the point i'm trying to make 11:03 Shambles_: samth: Understanding the mechanism is necessary, not just understanding the API you have to describe the mechanism in. The question I had was whether (in a language with tail call optimization, wihich Python doesn't have, but some people have implemented Lisps that do on top of it already, but they don't have a World-like option for programming) it's possible with no mutation. 11:03 samth: that depends on your api to the handlers, among many other things 11:03 samth: when programming on top of the racket/gui API, i'm confident that mutation is required 11:04 Shambles_: samth: If the GUI code could be handled as a single tail-recursive function I *think* it would work. I don't see any reason you couldn't get at the Win32 event queues that way. I wondered if I was missing anything. You're also being purposfully vague about whether doing it this way is a good idea for networked programs, though you seem to indicate it works. 11:05 samth: Shambles_: i don't know the answer to these questions, and i don't think they're meaningful in the level of generality 11:05 samth: and i also very strongly feel that the desire of people new to a certain kind of programming to know how everything works all the way down is unhelpful 11:06 Shambles_: samth: I'm not promising to do anything, since I'm not convinced I'm skilled enough yet, but if you really think this is pointless, I can think of three environments I'd like to run Lisp 'on top of', Python (since it's embedded in everything), Perl (my chat client has it embedded), and AutoHotKey (which is nice for automation). 11:07 samth: i don't know what you think i said was pointless 11:07 Shambles_: samth: Lisps on top of Python already exist, but there's basically nothing other than the raw interpreter. If you want something like World, you have to write it yourself. It could be nice for, say, Blender Game Engine. 11:07 samth: but running lisp on those environments sounds quite useful 11:07 Shambles_: (10:59:12 AM) samth: Shambles_: i don't think you're asking a meaningful question 11:08 samth: right, and that question is very different from "how do i implement lisp on top of Perl" 11:08 Shambles_: I've explained why the question is meaningful (I want to know my options for implementing something like World). 11:09 Shambles_: Actually implementing Lisp on top of Perl is a entirely different question, unrelated to how far you can get rid of mutation. The Perl (and Python, and AutoHotKey) bit was explaining "why I care about what goes on underneath the hood". 11:09 (quit) jesyspa: Read error: Connection reset by peer 11:09 Shambles_: As an aside, since you seem to be having a go at me for trying to understand how things work, I've noticed a hatred amongst academics for implementation details. For one, if you don't think about how things can/should be implemented the efficiency is crap, and if it's bad enough, nobody will use it, even if it's free. 11:10 (join) jesyspa 11:10 (quit) masm: Ping timeout: 252 seconds 11:10 samth: Shambles_: i don't "hate implementation details" 11:11 Shambles_: Further, some of us don't like being stuck "thinking in" some limited paradigm. The 'common tongue' that all high level languages have is assembly, which is "what goes on in the machine". There's no need to know if a carry flag is set by this or that, but a basic understanding of "what it does in the machine" is EXTREMELY useful to someone that doesn't know, say 11:11 Shambles_: Prolog, and is trying to figure out how to make it do something interesting for the first time. 11:11 samth: i spent yesterday looking at assembly output for lock-free data structures, among other things 11:11 (join) veer 11:12 samth: i do, however, think that explaining things in terms of how they're implemented is usually a mistake 11:12 samth: and i think that is entirely the wrong way to learn prolog 11:12 Shambles_: I have screwed around with Lisp over a decade ago. It was, primarily, e-lisp, with some Common Lisp on the side. I never really got a good handle on it. I'm here because I want to replace Python with Racket for my day to day 'screwing around' language. It seems to be well suited for the same kinds of things. I'm not super familiar with all this stuff already 11:13 Shambles_: So I'm having to check whether my ways of thinking about things (like getting rid of state) are correct. 11:14 Shambles_: samth: I strongly, strongly disagree. I don't think I'd ever have understood anything about Prolog if I hadn't finally gotten an explanation about how it works internally. Frankly, on the surface, the thing makes no sense. At a very, very vague level "you put in some facts, and some rules, and stuff comes out" yes, that 'explains' things, but not to the point of being able to use it for something. 11:15 samth: Shambles_: if what you mean by "what it does in the machine" is depth-first search over the solution space, then yes, understanding that is important to understand prolog 11:15 (quit) noam: Read error: Connection reset by peer 11:15 samth: if you mean "how the warren abstract machine works", then that's a bad way to understand it 11:16 (join) noam 11:16 (join) masm 11:16 Shambles_: samth: If you've gotten through high school you probably understand basic facts, and that you could chain them together to prove something. You probably wouldn't, fresh out of high school, know about backward chaining, and how breadth- vs depth-first search could change the kind of proofs you got (shorter, but slower with the former, assuming multiple proofs exist). 11:16 (quit) hkBst: Quit: Konversation terminated! 11:16 Shambles_: samth: And how I/O works would be right out, since it depends on knowing the order the rules are tested. 11:19 (quit) jeapostr1phe: Ping timeout: 240 seconds 11:19 Shambles_: samth: So I'm not going to apologize for trying to get a "common tongue" (what it does in the machine) explanation for how things work. I'm far from the only one that learns this way. It works just fine, and there are benefits to it. 11:20 (quit) masm: Ping timeout: 245 seconds 11:21 Shambles_: samth: If you'd like to confirm or deny whether the "a tail recursive function, with argument for dispatch, and argument for what would otherwise have to be mutated" works for avoiding all mutation while maintaining state in a functional program, and whether it works in Racket for GUI's (we seem to have established "no") or networking (we seem to have established "yes"), that would help me. 11:21 samth: Shambles_: you seem to think that i have answers for these questions that i'm not telling you 11:21 samth: but i don't 11:22 samth: certainly to write network programs in racket mutation is also required, because of the design of the networking api 11:22 Shambles_: samth: So you don't know whether, ignoring the API, if it's possible to avoid mutating state entirely (and no, I'm not talking about cheating with monads), and don't know if this works in practice with Racket's standard library? 11:22 Shambles_: samth: Okay, now we're getting somewhere. 11:23 Shambles_: samth: The examples I found in the documentation often just use a simple recursive function. What is an example of where mutation would be necessary? 11:23 samth: shambles_: i'm confident that you can write neither gui not network programs in racket without mutation, relying only on the lowest-level apis in racket 11:23 samth: a simple recursive function for what? 11:24 Shambles_: I've closed the window. I'll try finding it again. 11:25 Shambles_: http://docs.racket-lang.org/more/ The "Hello World server" would be an example. 11:26 Shambles_: That's not actually the one I was looking at before, but it works. I was somewhere in the Racket Reference. 11:29 samth: the `handle` function is imperative in the "More" tutorial 11:29 (join) MayDaniel 11:30 Shambles_: samth: I see I/O, but no state. It looks to me like if you wanted to maintain, say, a count, for how many times a connection had been handled, you could just pass it as a argument to the "loop" function. 11:31 (quit) MayDaniel: Read error: Connection reset by peer 11:34 (join) masm 11:38 (quit) masm: Ping timeout: 245 seconds 11:38 (quit) veer: Read error: Connection reset by peer 11:38 (join) veer 11:42 (join) masm 11:43 (join) nilyaK 11:45 (quit) soegaard: Ping timeout: 245 seconds 11:46 (quit) masm: Ping timeout: 245 seconds 11:48 (quit) bitonic: Ping timeout: 245 seconds 11:51 (join) masm 11:55 (quit) masm: Ping timeout: 248 seconds 11:56 (join) random_malice 11:57 (join) jao` 11:58 (quit) getpwnam: Ping timeout: 240 seconds 11:59 (quit) jao: Ping timeout: 240 seconds 11:59 (join) mceier 12:01 (join) bitonic 12:02 (quit) jao`: Changing host 12:02 (join) jao` 12:02 (nick) jao` -> Guest47767 12:03 (quit) mceier: Client Quit 12:03 (join) mceier 12:17 (quit) veer: Quit: Leaving 12:17 (join) masm 12:19 (quit) anRch: Quit: anRch 12:21 (quit) kanak: *.net *.split 12:21 (quit) wtetzner: *.net *.split 12:21 (quit) jrslepak_neu: *.net *.split 12:21 (quit) rsimoes: *.net *.split 12:21 (quit) masm: Ping timeout: 265 seconds 12:26 (join) masm 12:30 (quit) masm: Ping timeout: 265 seconds 12:32 (join) Fare 12:32 (join) jao 12:32 (join) kanak 12:32 (join) wtetzner 12:32 (join) rsimoes 12:32 (join) jrslepak_neu 12:34 (quit) sstrickl: Quit: sstrickl 12:36 (join) masm 12:36 (nick) Fare -> Guest11190 12:48 (join) jonrafkind 13:12 (quit) bitonic: Ping timeout: 260 seconds 13:14 (join) bitonic 13:15 (quit) Demosthenes: Ping timeout: 252 seconds 13:41 (join) sstrickl 13:43 (quit) gciolli: Ping timeout: 248 seconds 14:10 (join) nd-danl 14:10 (join) antithesis 14:11 nd-danl: anyone run 64bit windows racket under emacs? 14:12 (join) anRch 14:40 (quit) jesyspa: Ping timeout: 245 seconds 14:47 (join) jesyspa 15:11 (join) mye_ 15:11 (quit) jesyspa: Ping timeout: 252 seconds 15:13 (join) jesyspa 15:14 (quit) mye__: Ping timeout: 250 seconds 15:15 (join) mye 15:18 (quit) noam: Read error: Connection reset by peer 15:18 (quit) mye_: Ping timeout: 245 seconds 15:18 (join) noam 15:22 (join) Girffe 15:23 Girffe: Hi, I installed Racket on Ubuntu 12.04 just now, but DrRacket doesn't seem to work 15:23 Girffe: when I try to run it from the terminal, it says "ffi-lib: couldn't open "libjpeg.so.62" (libjpeg.so.62: cannot open shared object file: No such file or directory)" 15:23 jonrafkind: sudo apt-get install libjpeg62 15:24 Girffe: thanks, that fixed 15:24 Girffe: it 15:26 (join) jeapostrophe 15:26 (quit) jeapostrophe: Changing host 15:26 (join) jeapostrophe 15:28 Girffe: When I start drracket it doesn't have any of the buttons like run or choose language, any idea why? 15:34 (quit) hash_table: Ping timeout: 240 seconds 15:34 (quit) random_malice: Ping timeout: 250 seconds 15:34 (quit) Girffe: Quit: Page closed 15:36 (join) gciolli 16:03 (quit) anRch: Quit: anRch 16:03 (quit) netrino: Quit: Ave! 16:03 (quit) kanak: Ping timeout: 245 seconds 16:16 (join) DanBurton 16:25 (quit) antithesis: Quit: antithesis 16:28 (quit) gciolli: Ping timeout: 245 seconds 16:30 (join) getpwnam 16:30 (quit) jorick: Quit: Leaving 16:30 (join) antithesis 16:30 (join) hash_table 16:32 (quit) masm: Quit: Leaving. 16:36 (quit) antithesis: Quit: antithesis 16:54 DanBurton: samth: hey I have a new feature request for you http://bugs.racket-lang.org/query/?cmd=view&pr=12821 16:55 DanBurton: regarding Typed Racket and contracts 17:04 (join) RacketCommitBot 17:04 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/W9pfrw 17:04 RacketCommitBot: [racket/master] Document new TR aliased definitions. - Sam Tobin-Hochstadt 17:04 RacketCommitBot: [racket/master] Repair failing test case (wrong expected value). - Sam Tobin-Hochstadt 17:04 (part) RacketCommitBot 17:05 (join) masm 17:05 (join) Demosthenes 17:12 (quit) Nisstyre: Changing host 17:12 (join) Nisstyre 17:13 (join) gciolli 17:14 (join) yoklov 17:16 (quit) mye: Ping timeout: 252 seconds 17:19 (quit) cdidd: Ping timeout: 252 seconds 17:48 (quit) ssbr__: Ping timeout: 252 seconds 17:49 (join) jrslepak 18:01 (quit) jesyspa: Read error: Connection reset by peer 18:05 (join) jesyspa 18:06 (quit) mceier: Quit: leaving 18:14 (quit) sstrickl: Quit: sstrickl 18:22 (quit) Demosthenes: Ping timeout: 245 seconds 18:24 (quit) jonrafkind: Quit: Ex-Chat 18:25 (join) jonrafkind 18:36 (quit) manu3000: Remote host closed the connection 18:47 (quit) DanBurton: Quit: leaving 18:55 (quit) jeapostrophe: Ping timeout: 245 seconds 18:56 (join) jyc 19:11 (join) dzhus 19:19 (quit) dzhus: Ping timeout: 244 seconds 19:23 (join) jeapostrophe 19:23 (quit) jeapostrophe: Changing host 19:23 (join) jeapostrophe 19:29 (join) raphie 19:29 raphie: hey, does anyone know how to disable the gui popup that occurs when running a server built using universe.ss? 19:30 (join) sstrickl 19:34 (quit) jeapostrophe: Ping timeout: 248 seconds 19:34 (quit) nilyaK: Quit: Leaving. 19:36 (join) Kaylin 19:36 (join) dnolen 19:36 (quit) jonrafkind: Ping timeout: 244 seconds 19:42 raphie: anybody on? 19:43 bremner: yes. But since I have no idea about your question, I didn't answer. IRC is like that. 19:44 bremner: actually, that's the good case. 19:45 samth: raphie: i don't think you can 19:46 raphie: samth: damn. I'd like to run a server I wrote on my ubuntu server machine, but gtk complains 19:47 bremner: raphie: I used xpra on the server last time I needed to do something like that. 19:47 bremner: but that needs most of X installed on the server, I expect. 19:47 bremner: vnc would be another option 19:51 raphie: and that'll work on a server with no graphics card? 19:51 bremner: sure 19:51 bremner: at least xpra does. I know less about vnc, but I guess it should also. I think eli uses it that way 19:52 bremner: you need a decent network link 19:56 raphie: working on it, thanks for your help 19:56 raphie: on the topic of universe.ss, is there a way to change the port? 19:56 raphie: from 4567 20:03 (quit) masm: Quit: Leaving. 20:09 (quit) gciolli: Ping timeout: 256 seconds 20:15 (quit) stchang: Read error: Operation timed out 20:18 (join) stchang 20:21 yoklov: any way to zero-pad a number with something like printf? 20:22 yoklov: e.g. with c printf i'd do "%04x" 20:28 (quit) Kaylin: Quit: Leaving. 20:28 jamessan: rudybot: doc format 20:28 rudybot: jamessan: your sandbox is ready 20:28 rudybot: jamessan: http://docs.racket-lang.org/reference/Writing.html#(def._((quote._~23~25kernel)._format)) 20:30 jamessan: hmm, but it doesn't do width 20:32 (quit) bitonic: Quit: WeeChat 0.3.7 20:38 (quit) raphie: Ping timeout: 245 seconds 20:41 (quit) Nisstyre: Quit: Leaving 20:42 (join) Nisstyre 20:44 yoklov: yeah, i know :/ 20:44 (join) Demosthenes 20:54 (join) kvda 20:56 (join) raphie 20:56 raphie: egads, racket is segfaulting 20:57 offby1: :-( 21:00 (join) mye 21:04 eli: raphie: Yes, vnc should work for that -- and you can get the bandwidth requirement to something very minimal too if you don't need it except rarely. 21:08 (quit) mye: Ping timeout: 265 seconds 21:16 asumu: yoklov: there is a SRFI that lets you do that, let's see... 21:17 asumu: rudybot: (require srfi/48) 21:17 rudybot: asumu: your sandbox is ready 21:17 rudybot: asumu: Done. 21:17 asumu: rudybot: (format "~w3F" 3) 21:17 rudybot: asumu: ; Value: "33F" 21:18 asumu: rudybot: (format "~w,3F" 3) 21:18 rudybot: asumu: w00f 21:18 asumu: rudybot: (format "~5,3F" 3) 21:18 rudybot: asumu: and this is _not_ equal (string= "\351" (format "%c" ?\351)) 21:18 asumu: rudybot: eval (format "~5,3F" 3) 21:18 rudybot: asumu: ; Value: "3.000" 21:19 asumu: Oh, that doesn't quite zero pad. 21:19 asumu: On the left, if that's what you wanted. 21:28 (quit) jao: Ping timeout: 245 seconds 21:31 (quit) raphie: Ping timeout: 245 seconds 21:37 jamessan: srfi/54's cat is supposed to be able to do it, but I can't manage to get it to 21:58 (quit) jesyspa: Quit: leaving 22:05 yoklov: hm, i was hoping for something like 0x0001, but i managed to get around needing it 22:05 (quit) elliottcable: Ping timeout: 246 seconds 22:19 (join) freakazoid 22:23 (quit) dnolen: Ping timeout: 244 seconds 22:24 (quit) Demosthenes: Ping timeout: 260 seconds 22:34 (join) nilyaK 22:37 (quit) yoklov: Quit: computer sleeping 22:39 (join) yoklov 22:40 (quit) nilyaK: Ping timeout: 265 seconds 22:41 (join) Kaylin 22:48 (join) jonrafkind 23:09 (join) jeapostrophe 23:09 (quit) jeapostrophe: Changing host 23:09 (join) jeapostrophe 23:14 (join) Demosthenes 23:18 (join) dnolen 23:18 (quit) Demosthenes: Ping timeout: 245 seconds