*** tpb has joined #tp | 00:00 | |
*** ChanServ sets mode: +o tpb | 00:00 | |
mithro | dmpayton: oh? what do you have to do? | 00:06 |
---|---|---|
mithro | dmpayton: I would like to get your into a state of being able to push code soon | 00:07 |
dmpayton | mithro: That should be by this weekend. | 00:08 |
mithro | dmpayton: if you have a chance sometime today, we could do some test commits? | 00:08 |
dmpayton | mithro: Sure. I was going to work on the blog, but I'll probably just end up going with WP. | 00:09 |
llnz | bbl, hopefully | 00:11 |
*** llnz has quit IRC | 00:11 | |
mithro | dmpayton: well - it shouldn't take long | 00:13 |
*** DystopicFro has quit IRC | 00:17 | |
*** DystopicFro has joined #tp | 00:17 | |
mithro | dmpayton: tell me when you want to do it :P | 00:18 |
dmpayton | mithro: sure thing. | 00:26 |
dmpayton | Wow, Google just flagged me as a spyware application. | 00:26 |
nash | You - specifically? | 00:28 |
* nash wonders if he can be tagged as a "rogue installer" application ;-) | 00:28 | |
dmpayton | nash: yeah, me specifically | 00:32 |
dmpayton | when I try to go to google groups, I get sent to http://www.google.com/sorry/?continue=http://groups.google.com/ | 00:33 |
dmpayton | has a CAPTCHA...and I can enter the text, but there's no submit button, so... | 00:34 |
dmpayton | so... I'm effectively barred from using Google Groups. | 00:35 |
nash | I get 'not found on this server" | 00:35 |
dmpayton | Huh... | 00:35 |
mithro | dmpayton: hit enter? | 00:35 |
dmpayton | mithro: Oddly enough, we had a discussion in one of my classes about that very issue | 00:36 |
mithro | dmpayton: which issue? :P | 00:36 |
dmpayton | as in, no "submit" button | 00:36 |
dmpayton | but hitting enter | 00:36 |
mithro | dmpayton: so hitting enter works? | 00:37 |
dmpayton | mithro: yep | 00:37 |
mithro | dmpayton: so want to give git a try? | 00:39 |
dmpayton | mithro: Sure. | 00:41 |
mithro | okay setting up the repository on the server now | 00:42 |
dmpayton | Alright | 00:42 |
dmpayton | git.or.cz, yes? | 00:43 |
mithro | dmpayton: your on linux right? | 00:44 |
dmpayton | mithro: Negative. WinXP. | 00:44 |
mithro | dmpayton: oh :/ | 00:44 |
dmpayton | I have debian on disk, but my laptop didn't like when I put it in. | 00:44 |
mithro | is git.or.cz down? | 00:45 |
dmpayton | Yeah. | 00:45 |
mithro | :/ | 00:45 |
dmpayton | What flavor of linux would you recommend? | 00:46 |
mithro | Ubuntu :P | 00:47 |
dmpayton | keeping in mind I've never used linux before | 00:47 |
dmpayton | Heh, k | 00:47 |
dmpayton | Whats the difference between ubuntu and debian? | 00:47 |
jotham | more userfriendly | 00:48 |
mithro | Ubuntu us debian with a user friendly gloss | 00:48 |
jotham | debian has somewhat actively discouraged 'end users' | 00:48 |
mithro | s/us/is/ | 00:48 |
jotham | ubuntu was designed from the start to be a consumers linux | 00:48 |
dmpayton | gotcha. | 00:49 |
jotham | i run debian on my internet gateway, web server, dev machine, and ubuntu on my desktop | 00:49 |
mithro | I would highly recommend Ubuntu :) | 00:49 |
jotham | yeah, i'm with mithro | 00:49 |
mithro | dmpayton: you could use the CVS gateway | 00:50 |
*** tuna-fish has quit IRC | 00:54 | |
mithro | http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpclient-pyweb.git;a=summary | 00:56 |
tpb | <http://ln-s.net/UUJ> (at git.thousandparsec.net) | 00:56 |
dmpayton | mithro: Awesome. | 00:59 |
*** tuna-fish has joined #tp | 01:02 | |
mithro | dmpayton: so you managed to find some binaries for windows? | 01:09 |
dmpayton | mithro: negative. | 01:14 |
dmpayton | Came across http://www.cygwin.com/ though | 01:14 |
tpb | Title: Cygwin Information and Installation (at www.cygwin.com) | 01:14 |
nash | DystopicFro: You around at all | 01:16 |
mithro | dmpayton: Cygwin is pretty cool | 01:17 |
mithro | give you things like bash on Windows | 01:18 |
dmpayton | Cool | 01:18 |
mithro | dmpayton: it's pretty easy to install too | 01:19 |
dmpayton | I'm gonna get a dual-boot going | 01:19 |
dmpayton | it's time to reformat, anyways | 01:19 |
dmpayton | instead of burning it to CD, I should be able to put it on my flash drive and install from there, right? | 01:21 |
mithro | dmpayton: never done that | 01:21 |
mithro | having a ubuntu cd about is pretty useful incase something goes wrong | 01:21 |
dmpayton | Hmm... | 01:22 |
dmpayton | Dunno if I brought any blanks with em when I moved. | 01:22 |
dmpayton | I requested a free cd, but... 4-6 weeks doesn't fit my time frame. | 01:22 |
mithro | dmpayton: yeah | 01:24 |
dmpayton | brb, gonna dig through some boxes. | 01:24 |
mithro | cd-rw? | 01:24 |
dmpayton | back | 01:25 |
dmpayton | Found 2 potentially blank cd-r's (as in, nothing writtin on the cover) | 01:26 |
mithro | dmpayton: cool | 01:26 |
mithro | https://help.ubuntu.com/community/Installation/FromUSBStick ? | 01:27 |
tpb | <http://ln-s.net/UUg> (at help.ubuntu.com) | 01:27 |
dmpayton | Sweet | 01:27 |
dmpayton | One of the disks has Illustrator + InDesign CS2 | 01:28 |
mithro | https://help.ubuntu.com/community/Installation/FromWindows | 01:29 |
tpb | <http://ln-s.net/UUj> (at help.ubuntu.com) | 01:29 |
dmpayton | Oh hey, even better | 01:30 |
dmpayton | Gonna take +12 hours to install, though. | 01:31 |
dmpayton | err | 01:32 |
dmpayton | s/install/download | 01:32 |
dmpayton | now it's up to 20 | 01:32 |
nash | Can you get a net isntall version or something? | 01:32 |
nash | ala debian | 01:32 |
mithro | dmpayton: well -- maybe to start with cygwin? | 01:32 |
mithro | dmpayton: any luck? | 01:37 |
dmpayton | mithro: installing cygwin now | 01:38 |
mithro | okay cool | 01:38 |
jotham | what are you trying to do | 01:40 |
jotham | cygwin makes baby jesus cry | 01:40 |
jotham | i'd suggest just running a real linux | 01:40 |
dmpayton | jotham: well, I have three options: | 01:44 |
dmpayton | 1) cygwin (for now) | 01:44 |
dmpayton | 2) install debian, which I have on disk | 01:44 |
dmpayton | 3) wait for ubuntu to download (+15 hours), and install it | 01:45 |
* nash mutters about what is wrong with debian, aside from not having shuttleworths money? | 01:45 | |
dmpayton | nash: from what I hear, ubuntu is more user-friendly, which, seeing as I'm new to linux, is more appealing to me. | 01:47 |
nash | dmpayton: I think the difference is neglible.. | 01:48 |
* dmpayton contemplates | 01:50 | |
mithro | nash: the difference is quite huge :P | 01:50 |
jotham | i think the difference is large too | 01:51 |
jotham | i'm a long time debian user and a some 6 months ubuntu user | 01:51 |
* mithro has been using debian for about 8 years now, ubuntu for 1-2 years | 01:51 | |
jotham | i'd wait on ubuntu rather than letting satans bastard child cygwin spawn in your file system | 01:52 |
jotham | or use debian if you are feeling adventurous | 01:52 |
dmpayton | Ubuntu it is. | 01:53 |
dmpayton | 2%, woo | 01:54 |
jotham | you don't have much bandwidth or what? | 01:54 |
jotham | (not a crime...) or is the site just slow? | 01:54 |
dmpayton | Site might just be slow... | 01:55 |
dmpayton | Shouldn't be a bw issue... bittorrent isn't running | 01:55 |
jotham | most sites limit to 50k per http session, but if you use something like DownThemAll (firefox download accelerator) you tend to get great speed increases | 01:56 |
jotham | since by default it spawns 4 sessions on a site | 01:56 |
jotham | or use axel in linux =) but that's a bit chicken-and-egg | 01:56 |
dmpayton | jotham: Sweet, thanks | 01:57 |
dmpayton | brb | 01:57 |
*** dmpayton has quit IRC | 01:57 | |
*** dmpayton has joined #tp | 01:58 | |
dmpayton | Back. | 01:59 |
dmpayton | from +15 hours to 30 minutes...Wow. | 02:02 |
dmpayton | Well, I also chose a different mirror, so that probably has to do with it aswell. | 02:02 |
mithro | dmpayton: yay! | 02:06 |
jotham | that's more like it =) | 02:07 |
mithro | dmpayton: find a cd-r? | 02:13 |
dmpayton | mithro: Yep. | 02:13 |
mithro | cool | 02:13 |
mithro | what network card do you have? | 02:14 |
dmpayton | No idea | 02:14 |
dmpayton | whatever one Dell decided to put in it. | 02:14 |
dmpayton | integrated broadcom | 02:16 |
mithro | dmpayton: that should work if you are installing feisty | 02:25 |
* dmpayton starts backing stuff up | 02:30 | |
mithro | dmpayton: always good to do anyway :P | 02:31 |
mithro | whats the model of your laptop? | 02:31 |
dmpayton | Inspiron 6000 | 02:31 |
dmpayton | What's a good IDE for linux? | 02:32 |
nash | Eclipse is popular. I use gvim, gcc & cscope myself, although it's not what most people call an IDE | 02:34 |
dmpayton | Eh, eclipse... | 02:34 |
mithro | i use Gvim and iPython | 02:34 |
nash | Apple does python now? | 02:34 |
mithro | pydev + eclipse is okay for people with lots of ram | 02:34 |
mithro | ipython is an improvement over the normal interactive python | 02:35 |
mithro | things like tab complete | 02:35 |
dmpayton | I used eclipse at work...switched back to crimson editor/komodo | 02:35 |
nash | dmpayton: Used vi or a varient before? | 02:35 |
dmpayton | nash: neg. | 02:35 |
nash | d'oh | 02:36 |
nash | nasty learning phase, but once you get there it's awesome - moded editors screw with your head | 02:36 |
* dmpayton should really get around to working on the material for his unix class... | 02:37 | |
dmpayton | I think there's a chapter on using vi | 02:37 |
mithro | i would recommend vim over vi | 02:37 |
mithro | however I don't know anyone who uses just plain vi | 02:38 |
nash | mithro: Does ubuntu even ship a vanilla vi | 02:38 |
mithro | i think nvi is installed by default | 02:38 |
* nash knows a original vi officinado - he gets annoyed when he has to use vim in vi-compatible mode, because he uses some fo hte features that make it different | 02:38 | |
dmpayton | gotta reboot | 02:40 |
dmpayton | brb | 02:40 |
*** dmpayton has quit IRC | 02:40 | |
mithro | hope it goes well | 02:41 |
jotham | i like vim | 02:42 |
jotham | never got to know vi/nvi enough to develop an opinion | 02:42 |
nash | question is - is it worth recommening cream, or should we throw him in the deep end | 02:42 |
mithro | cream> | 02:43 |
mithro | s/>/? | 02:43 |
nash | A plugin for vim that makes it modeless | 02:43 |
nash | however it's hard to shift to normal vim after | 02:43 |
jotham | what's wrong with the modes =\ | 02:43 |
mithro | never heard of it | 02:43 |
nash | makes vim very useful for people who just started | 02:43 |
nash | jotham: What's wrong with modes? Easy they screw with your head | 02:44 |
jotham | still wish i could get my vim to love the vimrc for python | 02:44 |
*** dmpayton has joined #tp | 02:50 | |
dmpayton | Hmm.. | 02:50 |
dmpayton | Anyone know an alternative to daemon tools? | 02:50 |
nash | I'm not sure what daemon tools is... so I may have an alternative running right now | 02:53 |
dmpayton | nash: ISO mounting | 02:54 |
nash | on unix or windows? | 02:57 |
mithro | dmpayton: alcohol 120%? | 02:58 |
nash | Otherwise - why not just mount -o loop foo.iso | 02:58 |
dmpayton | nash: I'm still on windows, no mount command here. | 03:01 |
nash | dmpayton: Then I have NFI ;-) | 03:02 |
nash | sorry | 03:02 |
mithro | dmpayton: you going to try install from flash disk? | 03:02 |
nash | I've essentially been 100% windows since 1996 | 03:02 |
nash | s/windows/windows free/ | 03:02 |
dmpayton | nash: Lucky you. | 03:03 |
nash | No... just makes it painful when I have to use a windows box for something | 03:04 |
mithro | dmpayton: if you have a CD-R, i would recommend just burning it :P | 03:04 |
dmpayton | wth... the ubuntu iso is 0 bytes | 03:05 |
dmpayton | brb | 03:05 |
nash | Does your widows program support rock ridge? | 03:05 |
dmpayton | back | 03:24 |
dmpayton | rock ridge? | 03:24 |
nash | Thats the ISO extension to support long file names | 03:26 |
dmpayton | dunno | 03:29 |
dmpayton | but the iso is showing 0 bytes on my desktop | 03:29 |
dmpayton | and it wont mount in alcohol 120% or winvcd | 03:30 |
nash | Beats me - my first step in solving windows problems is usually 'install debian' ;-) | 03:32 |
nash | It's generally not a useful response ;-) | 03:32 |
dmpayton | lol | 03:32 |
mithro | dmpayton: maybe it didn't download correctly? | 03:37 |
dmpayton | mithro: Yeah, I've been redownloading it. Taking longer this time. 34% with about an hour and 20 minutes to go. | 03:38 |
mithro | dmpayton: okay | 03:38 |
dmpayton | reading http://makingtheswitch.wordpress.com in the meantime. | 03:38 |
tpb | Title: Making the Switch (at makingtheswitch.wordpress.com) | 03:38 |
nash | anyway - I'm off home | 03:46 |
nash | night all | 03:46 |
*** nash has quit IRC | 03:47 | |
dmpayton | Fucking dog... | 03:52 |
dmpayton | I'm sitting in the dining room... dog walks out of the bedroom, looks at me, goes to her bowl and takes a drink, looks at me, then walks into the living room and squats down... | 03:54 |
dmpayton | after she /see's/ me watching her | 03:54 |
mithro | dmpayton: this is why I like cats :P | 03:57 |
dmpayton | Yeah, we have one of those, too | 03:57 |
dmpayton | I threw my wallet at the dog...missed, damnit | 03:58 |
dmpayton | she bolted back into the bedroom, jumped on the bed, and hid under the covers | 03:58 |
dmpayton | i threw her ass outside, and my fiance gets mad at /me!/ | 03:58 |
mithro | dmpayton: ahh well | 04:00 |
* dmpayton shrugs | 04:00 | |
dmpayton | That's life. | 04:00 |
dmpayton | pray that there's no glitches in the burning process... | 04:49 |
dmpayton | burning now... | 04:49 |
mithro | dmpayton: so how did it go? | 04:57 |
mithro | i have to admit I havn't made a coaster in like 5 years | 04:58 |
dmpayton | mithro: still burning, 84% | 04:58 |
dmpayton | when it's done, i'm gonna boot from disk to make sure it worked okay | 04:59 |
dmpayton | then i'm going to bed. Gotta be up to meet the lawyers in the morning. | 04:59 |
dmpayton | right-o... done burning, I'm off to explore Ubuntu! | 05:00 |
dmpayton | I'll be back before I head out for the night | 05:01 |
*** dmpayton has quit IRC | 05:01 | |
*** dmpayton has joined #tp | 05:11 | |
dmpayton | I hate GAIM | 05:11 |
dmpayton | but I am LOVING ubuntu | 05:11 |
jotham | gaim sucks =) | 05:12 |
*** llnz has joined #tp | 05:12 | |
jotham | i use pandion for gtalk, and don't really use msn anymore | 05:13 |
llnz | back | 05:13 |
dmpayton | wb llnz | 05:13 |
dmpayton | jotham: I only have gtalk installed because it notifies me when I get a new email | 05:14 |
dmpayton | workspaces is nice. | 05:17 |
mithro | hey dmpayton | 05:17 |
mithro | your in ubuntu now? | 05:17 |
dmpayton | Yep! | 05:18 |
llnz | ~seen xdotx | 05:18 |
tpb | llnz: xdotx was last seen in #tp 1 day, 3 hours, 9 minutes, and 45 seconds ago: <xdotx> afk. reading. | 05:18 |
mithro | cool | 05:18 |
dmpayton | Using GAIM to connect to IRC | 05:18 |
mithro | use xchat | 05:18 |
llnz | must be a lot of reading | 05:18 |
mithro | sudo apt-get install xchat | 05:18 |
llnz | i use konversation | 05:18 |
dmpayton | btw... | 05:18 |
dmpayton | http://dmpayton-soc.blogspot.com/ | 05:18 |
tpb | Title: Derek's Summer of Code Blog (at dmpayton-soc.blogspot.com) | 05:18 |
jotham | or use irssi | 05:19 |
dmpayton | No post yet... but it's 95% written. | 05:19 |
mithro | 95% written? the post? | 05:19 |
dmpayton | yeah | 05:19 |
mithro | he he okay | 05:20 |
mithro | was thinking the blog :P | 05:20 |
dmpayton | mithro: Heheh, nah... I was working on my own, but I'm gonna use blogger to save me some time. | 05:20 |
mithro | dmpayton: okay - as long as you still getting that web.py experiance | 05:21 |
dmpayton | Besides, I've been learning a lot about web.py through using it at work, which is more real-world-ish than writing a blog app... | 05:21 |
llnz | brb | 05:21 |
mithro | dmpayton: cool | 05:24 |
dmpayton | Y'know... | 05:26 |
dmpayton | If I didn't still have to write in VB.NET this summer, I'd consider just wiping XP all together | 05:27 |
mithro | vmplayer is free :P | 05:29 |
* llnz is back | 05:30 | |
dmpayton | vmplayer? | 05:31 |
dmpayton | Nice... all the media buttons work out of the box | 05:32 |
dmpayton | Wish I could test wireless | 05:32 |
mithro | dmpayton: no wireless? | 05:39 |
mithro | vmplayer is vmware's free virtualisation tool | 05:39 |
mithro | dmpayton: no local access point? | 05:39 |
dmpayton | mithro: Havn't had the money for a router yet. Right now I'm the only one with internet access | 05:41 |
mithro | dmpayton: ahh well, not long now till Google money starts flowing :) | 05:41 |
mithro | dmpayton: don't forget to add yourself to Planet SoC | 05:42 |
dmpayton | mithro: I'll probably have to wai till I get the first $2000 for the router. | 05:42 |
dmpayton | Yeah, I'll do that as soon as I add the first post. | 05:42 |
dmpayton | also, any experience with CrossOver Office? | 05:42 |
mithro | dmpayton: it's your money :P | 05:42 |
mithro | dmpayton: i just use open office | 05:43 |
mithro | what do you need in MS Office? | 05:43 |
dmpayton | mithro: Yeah, but there's two other people going nuts without i-net. :P | 05:43 |
dmpayton | mithro: re: CrossOver Office: http://www.desktoplinux.com/articles/AT7770280571.html | 05:43 |
mithro | 2? your dog uses internet? :) | 05:43 |
tpb | <http://ln-s.net/UXN> (at www.desktoplinux.com) | 05:43 |
dmpayton | mithro: Brooke's brother lives with us. He's why we're meeting lawyers in the morning. | 05:44 |
CIA-3 | llnz documents * r4247101f7bf7 /protocol/protocol.xml: Fixed structure tags for SetFilters frame | 05:44 |
dmpayton | She's becoming his legal guardian | 05:44 |
mithro | dmpayton: sounds complicated | 05:44 |
dmpayton | mithro: http://en.wikipedia.org/wiki/CrossOver | 05:45 |
tpb | Title: CrossOver - Wikipedia, the free encyclopedia (at en.wikipedia.org) | 05:45 |
mithro | dmpayton: I know what Cross Over is :P | 05:45 |
mithro | just never found the need for it | 05:45 |
mithro | I use OpenOffice for all my office needs, and gimp for the ocasional touchup | 05:46 |
dmpayton | I found Open Office to be buggy... | 05:46 |
dmpayton | And I'd much rather stick with PS than learn another graphics program | 05:46 |
mithro | dmpayton: come to the dark side, use GIMP :P | 05:47 |
dmpayton | CrossOver allows you to install World of Warcraft...Damnit, I wish I'd never found XO... | 05:47 |
dmpayton | With that knowledge, my productivity is shot | 05:47 |
dmpayton | HL2, too! | 05:48 |
mithro | dmpayton: you can get your WoW account banned :P | 05:49 |
mithro | anyway I'm off to dinner dinner | 05:49 |
mithro | sudo apt-get install cogito | 05:49 |
dmpayton | mithro: I cancelled WoW two days ago... :( | 05:49 |
dmpayton | Got till May 20 till it's officially off, though | 05:50 |
dmpayton | Anyways, have fun eating | 05:50 |
dmpayton | I'm going to bed | 05:50 |
dmpayton | G'night | 05:50 |
*** dmpayton has quit IRC | 05:52 | |
CIA-3 | llnz web * r445fb03321e5 /dev/documents/protocol2html.xsl: In protocolxml (via protocol2html.xsl) use long name when available | 06:33 |
llnz | afk a bit | 06:34 |
*** dmpayton has joined #tp | 06:47 | |
dmpayton | Okay, I lied. No bed yet. | 06:47 |
dmpayton | mithro: ping? | 06:47 |
dmpayton | Figures, still eating. | 06:58 |
mithro | dmpayton: back | 07:03 |
mithro | was watching TV | 07:03 |
dmpayton | Wb | 07:03 |
dmpayton | dmpayton-soc.blogspot.com | 07:03 |
dmpayton | can't add it to the planet, though... | 07:04 |
mithro | dmpayton: oh? | 07:05 |
mithro | you have to sign up before you can add a blog | 07:06 |
dmpayton | mithro: I did. I click on Add Content, only Forums shows up. | 07:07 |
mithro | dmpayton: ah you might have to wait to be "approved" before they let you add a blog | 07:07 |
mithro | http://planet-soc.com/node/add/feed ? | 07:08 |
dmpayton | mithro: Access Denied | 07:10 |
mithro | yeah - probably need to wait a few days | 07:11 |
dmpayton | Prolly | 07:14 |
*** nash has joined #tp | 07:23 | |
dmpayton | 'llo nash | 07:24 |
mithro | hey nash | 07:26 |
* llnz is back again | 07:26 | |
llnz | hi nash | 07:26 |
llnz | wb dmpayton | 07:26 |
mithro | dmpayton: shouldn't you be heading to bed :P | 07:26 |
nash | heyo | 07:26 |
dmpayton | mithro: Nah, it's only 4:30am. :D | 07:26 |
* llnz adds dmpayton's blog to his feedreader | 07:26 | |
nash | What was the blog URL? | 07:26 |
dmpayton | Gotta be up in 4 hours... | 07:26 |
nash | Ahh... the good old uni days... | 07:27 |
* nash wishes he could still do that sort of thing... every nigh | 07:27 | |
dmpayton | nash: http://dmpayton-soc.blogspot.com | 07:27 |
dmpayton | nash: Nope, lawyers. :) | 07:27 |
tpb | Title: Derek's Summer of Code Blog (at dmpayton-soc.blogspot.com) | 07:27 |
daxxar | Ooh | 07:28 |
daxxar | I should blog that | 07:28 |
daxxar | Err, blog this* | 07:28 |
daxxar | gsoc.daxxar.com, per'aps. | 07:28 |
dmpayton | yeah, I'll probably be moving mine to soc.dmpayton.com, but that wont be for a while | 07:28 |
dmpayton | anyways, feed would still be available through blogspot | 07:29 |
dmpayton | Okay | 07:36 |
dmpayton | My bed is calling me. | 07:36 |
nash | night | 07:36 |
*** dmpayton is now known as dmpayton_ | 07:36 | |
mithro | night | 07:39 |
mithro | brb | 08:01 |
*** mithro has quit IRC | 08:01 | |
*** mithro has joined #tp | 08:01 | |
llnz | back | 08:11 |
mithro | llnz: how goes everything? | 08:15 |
llnz | good | 08:16 |
mithro | finished the presentation? | 08:17 |
llnz | nope, haven't started it yet | 08:17 |
llnz | trying to get the last of my funding currently | 08:17 |
mithro | llnz: when do you have to do it? | 08:17 |
llnz | the presentation? in the next month or so, i think | 08:19 |
mithro | ahh okay - a while off? | 08:20 |
llnz | yeah | 08:20 |
llnz | question, are these the only frames that can occur at any time after the connect frame? | 08:21 |
* mithro is currently building a TODO after I finish list | 08:21 | |
llnz | ping, get time remaining, get features, get game info, set filters | 08:21 |
mithro | login? | 08:22 |
llnz | i was thinking about that | 08:23 |
llnz | i was thinking that only login into the same account would be allowed | 08:23 |
llnz | effectively doing nothing | 08:23 |
mithro | hrm? | 08:24 |
*** Demitar_ has quit IRC | 08:26 | |
llnz | also, if you allow login anytime, create account should be available anytime as well | 08:26 |
mithro | oh? | 08:27 |
mithro | i'm confused | 08:27 |
llnz | i am talking about frames that the client can send the server, after connection | 08:28 |
mithro | I don't see a point for ping | 08:28 |
llnz | so in the connected (pre-login) state, or in the logged in state | 08:28 |
mithro | get time, get features, get game, set filters, login, create | 08:29 |
llnz | so a client could send this sequence of frames: connect, login, login, login, create, login, login | 08:30 |
llnz | and the server will have to accept that? | 08:30 |
mithro | llnz: that doesn't seem valid to me | 08:30 |
mithro | connect->create->login or connect->xxx->login | 08:31 |
llnz | ok | 08:31 |
llnz | so if i have this sequence "connect->xxx->login->yyy", which frame types are common to xxx and yyy? | 08:32 |
mithro | none really - set filters possibly? | 08:32 |
llnz | get time remaining? | 08:33 |
llnz | get features and set filters? | 08:33 |
llnz | get game info? | 08:33 |
llnz | ping? | 08:33 |
mithro | i don't think ping should be allowed before connect | 08:33 |
llnz | i am talking about after ping | 08:34 |
llnz | errr.... after connect | 08:34 |
llnz | i would rather have nothing before connect, but get features is currently allowed | 08:34 |
mithro | hrm.... | 08:34 |
nash | You need features before you login | 08:36 |
mithro | nash: why? | 08:36 |
nash | So you can see things like SSL and string encoding | 08:36 |
mithro | nash: s/login/send connect frame/ | 08:36 |
nash | You should also be able to do things like "what games are here" tpp | 08:37 |
mithro | nash: to connect to a server you currently send a connect frame and then you can do that -> then you can login | 08:37 |
nash | blerg... always as I'm about ot go to bed... | 08:37 |
nash | okay | 08:38 |
nash | then it is fine | 08:38 |
nash | not quite yet | 08:38 |
llnz | nash: string padding will be the first filter available in tpserver-cpp :-) | 08:40 |
nash | llnz: Excellent ;-) | 08:40 |
llnz | working on the code that sets it up, want to move all the processing for frames which can occur any time after connect (both before and after login) to a single method | 08:41 |
CIA-3 | nash galaxie * r90f458b56200 / (edje/basic-info.edc tpe_gui.c): Work on orders. | 08:49 |
CIA-3 | nash galaxie * r2ae77e9ac196 /tpe_gui.c: Put windows on their own layer. | 08:49 |
CIA-3 | nash galaxie * rd2269df164e4 /tpe_gui.c: Fix raise and potential crash woth object boxes. | 08:49 |
CIA-3 | nash galaxie * ra0106a8c12c0 /todo.txt: Todo note | 08:49 |
CIA-3 | nash galaxie * raab358db3ea7 /tpe_gui.c: Type fix in message. | 08:49 |
CIA-3 | nash galaxie * rfccec015825d /galaxie.c: Remove AI start up version. | 08:49 |
CIA-3 | nash galaxie * rd05fe1b6c8c6 /tpe_orders.c: Fragment large order lists. | 08:49 |
CIA-3 | nash galaxie * rd4d28f5efb82 /tpe_msg.c: Remove some debug messages. | 08:49 |
CIA-3 | nash galaxie * r7d8aebebfeeb /Makefile: Better dependancies | 08:49 |
CIA-3 | nash galaxie * r2cfef9410570 / (Makefile themeinterface.txt tpe_comm.c): Merge with git+ssh://[email protected]/var/lib/git/galaxie.git | 08:49 |
CIA-3 | nash galaxie * re8771da21578 /Makefile: Fix dependancies. | 08:49 |
CIA-3 | nash galaxie * r31d9c76c791e / (galaxie.c tpe_comm.c tpe_msg.c): Merge with git+ssh://[email protected]/var/lib/git/galaxie.git | 08:49 |
nash | I'm surprised CIA wasn't kicked for flooding | 08:50 |
CIA-3 | llnz tpserver-cpp * r5eb82c9f92d1 /tpserver/ (net.h playerconnection.cpp): | 08:50 |
CIA-3 | Added filter feature numbers and Set Filters frame handling (pre-login only) | 08:50 |
CIA-3 | Was quite simple, only string padding filter currently useable currently. | 08:50 |
CIA-3 | No filters advertised yet in Features frame. | 08:50 |
CIA-3 | nash galaxie * r376670d4cbdb / (9 files): Start of orders - doesn't compile yet... | 08:55 |
CIA-3 | nash galaxie * r12de00d86fbe / (7 files): More order stuff. | 08:55 |
CIA-3 | nash galaxie * r27c482b39d10 / (5 files in 2 dirs): Basic order work - the order box itself. | 08:55 |
CIA-3 | nash galaxie * r0ae29f15195d / (8 files in 2 dirs): | 08:55 |
CIA-3 | Object popups for orders, and generally better window management. | 08:55 |
CIA-3 | Also the framework for complete and good window management. | 08:55 |
CIA-3 | nash galaxie * r2cac861cd981 /Makefile: More dependancies for code. No false dependancy on Makefile for artwork. | 08:55 |
CIA-3 | nash galaxie * rcda9ccab7a59 / (tpe_gui_orders.c tpe_gui_private.h tpe_obj.c tpe_obj.h): Start adding magics | 08:55 |
CIA-3 | nash galaxie * ra3c40cb69f14 /edje/ (6 files in 2 dirs): Remove old and ugly images. | 08:55 |
CIA-3 | nash galaxie * r9c58726931af / (tests/url-parse.sh tpe_gui_orders.c): Add URL test to revision control | 08:55 |
CIA-3 | nash galaxie * ra571c97650b4 / (5 files in 2 dirs): More general improvement of order windows. | 08:55 |
CIA-3 | nash galaxie * rc6c630f9c856 / (22 files in 4 dirs): Merge with order branch - order windows and system refactor. | 08:55 |
nash | Anyway - time for bed | 08:57 |
nash | Night all | 08:57 |
mithro | nash: wow :P | 09:00 |
*** Demitar_ has joined #tp | 09:02 | |
* llnz wanders off | 09:34 | |
llnz | later all | 09:34 |
*** llnz has quit IRC | 09:34 | |
*** mithro has quit IRC | 14:54 | |
*** mithro has joined #tp | 15:18 | |
*** dmpayton_ has quit IRC | 15:22 | |
*** nash has quit IRC | 17:54 | |
*** dmpayton_ has joined #tp | 18:19 | |
*** dmpayton_ is now known as dmpayton | 18:19 | |
mithro | morning dmpayton | 18:44 |
dmpayton | afternoon mithro | 18:44 |
dmpayton | How goes things? | 18:44 |
mithro | just getting up to go to uni | 18:45 |
dmpayton | fun fun | 18:45 |
dmpayton | Okay, this is weird... | 18:52 |
*** mithro has quit IRC | 19:14 | |
*** nash has joined #tp | 19:24 | |
jotham | holy crap yield is cool, why didn't i pay attention to it before | 19:29 |
jotham | (python key word) | 19:29 |
dmpayton | jotham: what's it do? | 19:37 |
*** mithro has joined #tp | 19:37 | |
dmpayton | wb mithro | 19:38 |
mithro | ~seen niphree | 19:38 |
tpb | mithro: niphree was last seen in #tp 1 week, 5 days, 12 hours, 27 minutes, and 11 seconds ago: <niphree> hello | 19:38 |
mithro | dmpayton: btw how goes the email? | 19:39 |
jotham | dmpayton: you are a python coder? | 19:39 |
dmpayton | jotham: I'm trying to be. :P | 19:39 |
dmpayton | mithro: i'll get the email sent out tonight sometime. | 19:39 |
* mithro is molding dmpayton into a python coder :P | 19:39 | |
jotham | dmpayton: ok simple example | 19:40 |
* dmpayton is a PyNewb | 19:40 | |
mithro | dmpayton: your currently in windows? :/ | 19:40 |
jotham | http://rafb.net/p/3azJhI19.html | 19:40 |
tpb | Title: Nopaste - No description (at rafb.net) | 19:40 |
dmpayton | mithro: Yeah. It'll be a few days before I can format. :/ | 19:41 |
jotham | dmpayton: in that example L8 will return like the 'return' keyword, but next time the read_line function is called it will continue executing from that point...with all the local context intact | 19:41 |
jotham | dmpayton: which means i can now impliment poor mans cooperative multitasking in a project | 19:41 |
mithro | jotham: yield was cool when I first discovered it | 19:42 |
jotham | btw that script should output something like | 19:42 |
jotham | 0 import random | 19:42 |
mithro | jotham: but I got over it fairly quickly | 19:42 |
jotham | 1 | 19:42 |
jotham | 2 class LineReceiver: | 19:42 |
jotham | etc | 19:42 |
nash | jotham: Do you mean 'co-routines'? | 19:42 |
jotham | nash: yes | 19:42 |
jotham | mithro: well i have a specific task | 19:42 |
jotham | i'd ignored yield until now because i had no need for it | 19:42 |
jotham | but this means i can keep redrawing the screen and handling input events while the path finding code works on a sollution | 19:43 |
mithro | jotham: it's useful for doing a limited number of things | 19:43 |
nash | coroutines != poor mans multithreading | 19:43 |
jotham | nash: i said poor mans cooperative multitasking.. | 19:43 |
mithro | cooperative multitasking is always doomed to failure | 19:43 |
jotham | well in this case it's the perfect sollution | 19:43 |
dmpayton | interesting.. | 19:44 |
nash | Well it's in a single process, so it's not multitasking in any sense - and it is still very different to threads | 19:44 |
jotham | sure | 19:44 |
jotham | but 'poor mans' is a qualifier | 19:44 |
nash | It is a good solution, I just want to say, its not a 'poor man's anything'. It's a very powerful tool without the crap that causes thread issues | 19:44 |
jotham | http://en.wikipedia.org/wiki/Computer_multitasking#Cooperative_multitasking.2Ftime-sharing | 19:44 |
tpb | <http://ln-s.net/Uii> (at en.wikipedia.org) | 19:44 |
jotham | ok, going buy what i know of cooperative multitasking it's very similar in pattern | 19:45 |
jotham | i assume this is how twisted does a lot of its stuff | 19:45 |
nash | Co-op Multitasking however requires you to trust process in different securoty domains... | 19:46 |
mithro | nash: it requires you to be very very careful, as one bug in your code stops everything from running | 19:46 |
nash | Hence you mp3 player is vulnerable to bugs in your web browser, or even worse, your mail client is vulnerable to policy decisions by the commercial vendor of your word processor | 19:47 |
nash | mithro: Unlike threads...? | 19:47 |
jotham | haha | 19:47 |
jotham | honestly this discussion is getting silly | 19:47 |
jotham | am just reading about closures in ecmascript | 19:49 |
nash | Anyway - If I recall correctly, python doesn't do yield properly - it can ony be called at the top level I believe | 19:49 |
jotham | i think i need to run some tutorials for the web developers here | 19:49 |
jotham | called at the top level? | 19:49 |
nash | you can't call yield from a function | 19:49 |
jotham | i think i misunderstand what you are saying | 19:50 |
jotham | >>> def foo (): | 19:52 |
jotham | ... for n in range(2): | 19:52 |
jotham | ... yield n | 19:52 |
jotham | ... | 19:52 |
jotham | >>> foo() | 19:52 |
jotham | <generator object at 0x00A78580> | 19:52 |
jotham | >>> [n for n in foo()] | 19:52 |
jotham | [0, 1] | 19:52 |
jotham | so i think i misunderstand you? | 19:52 |
jotham | i mean i am calling it from a function but it's converting it into a generator | 19:54 |
nash | bbs | 19:54 |
jotham | is that what you mean, or what | 19:54 |
mithro | dmpayton: so how is everything going? | 19:59 |
mithro | IE Where are you at regarding stuff | 20:00 |
*** llnz has joined #tp | 20:01 | |
mithro | hey llnz | 20:01 |
mithro | your around early today | 20:01 |
llnz | ~seen xdotx | 20:01 |
tpb | llnz: xdotx was last seen in #tp 1 day, 17 hours, 53 minutes, and 30 seconds ago: <xdotx> afk. reading. | 20:01 |
llnz | hi mithro | 20:01 |
llnz | just popping in while i have a break | 20:02 |
llnz | and pondering | 20:06 |
nash | jotham: I thought you call yield from an arbitrary function called from the generator | 20:09 |
nash | it had to be in the same function context | 20:09 |
nash | You can't have x() call y() which calls yield | 20:09 |
* xdotx reappears | 20:11 | |
llnz | hi xdotx | 20:11 |
mithro | hey xdotx | 20:11 |
mithro | long book? :P | 20:11 |
xdotx | heheh | 20:11 |
xdotx | yeah i'm bad about that. book is almost always followed by sleep, which is usually followed by school | 20:13 |
jotham | nash: sure you can, just return the result of y from inside x | 20:15 |
jotham | nash: since it's passing a generator instance back | 20:15 |
jotham | but maybe that isn't the point you were trying to make | 20:16 |
jotham | i haven't looked at those sort of complexities with yield | 20:16 |
nash | http://docs.python.org/ref/yield.html :: "The yield statement is only used when defining a generator function, and is only used in the body of the generator function." | 20:17 |
tpb | Title: 6.8 The yield statement (at docs.python.org) | 20:17 |
nash | It can't be called from a function the generator calls. | 20:18 |
nash | Basically means you can't do true co-routines with it - for that you need to use lua or similar | 20:18 |
jotham | ok that's good to know, that could have caught me out | 20:19 |
CIA-3 | llnz documents * r77e3b3d80437 /protocol/protocol.xml: Fixed longnames for Category and Design frames | 20:19 |
nash | jotham: coroutines were added rather late to python, and it shows :-( | 20:20 |
mithro | nash: what would you use coroutines for? | 20:23 |
llnz | xdotx: how are you going? | 20:23 |
nash | Where i want something like threads ;-) | 20:23 |
nash | mithro: Since i do most of my programing in C... whenever I use a setjmp ;-) | 20:23 |
nash | However setjump is a PITA | 20:24 |
nash | It's great for animations and other effects as you can have a nice set of state built up | 20:24 |
nash | And then blow away the whole routine (if it is a closure) | 20:24 |
jotham | i've had quite a few problems with threads in windows not being able to share resources | 20:24 |
xdotx | llnz: pretty good. it's unnaturally hot here | 20:24 |
jotham | wierd stuff like file handles corrupting | 20:24 |
nash | threads suck... ;-) | 20:25 |
jotham | pretty frustraiting actually | 20:25 |
llnz | xdotx: fun | 20:25 |
jotham | yeah for serious | 20:25 |
mithro | jotham: sharing resources between threads is a tricky business | 20:25 |
nash | threads are for people who can't handle state machines | 20:25 |
jotham | i seldom use threads | 20:25 |
mithro | nash: threads and state machines can be pretty complimentary | 20:25 |
jotham | i haven't ever used them (well PRETENDED to as the case may be with python) in python | 20:25 |
mithro | python threading also sucks :P | 20:26 |
mithro | plot GIL | 20:26 |
mithro | s/plot/bloody/ | 20:26 |
jotham | it's pretend that's why | 20:26 |
mithro | dunno how I got plot from bloody | 20:26 |
jotham | threading just seems like a lazy answer to an engineering problem, | 20:27 |
nash | jotham: Yes | 20:27 |
jotham | i know that's a gross generalism | 20:27 |
jotham | but most of the times i see it used that's what it is | 20:27 |
mithro | pypy should hopefully solve a lot of the Python threading woahs | 20:27 |
nash | mithro: Except that threads generally make the statemachine unsolvable in a general case | 20:27 |
jotham | in this world of 99,000 core hyper-whatsits i'm sure threading will be encouraged more and more | 20:27 |
nash | Yes and no. | 20:28 |
nash | You can always have async execution without traditional threads | 20:28 |
nash | We do it already with graphic cards | 20:28 |
mithro | nash: why? state machines are little things which click around depending on events right? | 20:28 |
nash | Yes, but threads mean that your # states go through the roof. As every micro-code instruction outside a lock is a new state. You can't lump x <- y into a single transition, instead you need to consider 'load #y; save #x' or more likely lea $1,#y; ld $1, $2; lea $3, #x; st $3, $2 | 20:30 |
mithro | nash: hrm - that is too low level for me :P | 20:31 |
mithro | I just have a thread which contains a state machine, as events come in the thread changes states | 20:32 |
mithro | as there is a limited number of input events, and a limited number of states - it's all perfectly tractable | 20:32 |
nash | Except to validate threads correctly you need to consider all points where execution can switch, as the current active thread is part of the state | 20:33 |
mithro | nash: why? the "switching" is totally transparent to the thread | 20:34 |
nash | Based on what you said, you should be using coroutines | 20:34 |
nash | mithro: Umm.. doesn't matter if it transparent | 20:34 |
mithro | nash: why? one state could be "calculate a shortest path" - using coroutines (at least in python) would mean the whole system could block | 20:35 |
nash | The threads context (ie state) == everything it can access == all memory, which can be modified by any other thread | 20:35 |
mithro | nash: are you assuming that threads can access each other via a method other then events? | 20:36 |
nash | Well which is a reason why python zealots should read more knuth... A proper coroutine should be able to suspend it's execution at any time, and should to allow other routines to work if necessary | 20:36 |
nash | Yes. Any library call could be a data path for instance | 20:37 |
mithro | i'm not sure what you mean by a data path | 20:39 |
*** EdBoy has joined #tp | 20:41 | |
nash | if there is any data stored by a library function, if one thread changes a value it affects the other. | 20:41 |
EdBoy | llnz: your server disconnects so much :X | 20:41 |
llnz | which server? llnz.dyndns.org or demo1.thousandparsec.net? | 20:42 |
EdBoy | uh lemme check | 20:42 |
EdBoy | I'm the one that emailed you a while ago | 20:42 |
llnz | cool | 20:43 |
EdBoy | llnz.dyndns.org:6923 is the one | 20:43 |
EdBoy | it disconnects me around every 10 minutes | 20:43 |
llnz | what client? | 20:43 |
mithro | nash: ahh - but library functions with no contained side effects are bad :P | 20:44 |
EdBoy | tpclient-pywx | 20:44 |
jotham | nash: can you URL me to knuth talking about coroutines? i didn't have much luck googling | 20:44 |
nash | Yes, because they make analysing threaded programs hard... where hard = pratically impossible | 20:44 |
jotham | i have to say mithro hasn't really given me any more confidence in threading =) | 20:45 |
jotham | it still seems to the part of the map labeled 'here be monsters' | 20:46 |
xdotx | heh | 20:46 |
nash | jotham: http://www-cs-faculty.stanford.edu/~knuth/fasc0a.ps.gz | 20:46 |
tpb | <http://ln-s.net/UjW> (at www-cs-faculty.stanford.edu) | 20:46 |
mithro | nash: on a side note, which functions might has such side effects? | 20:46 |
llnz | EdBoy: it could be that the NAT between the internet and the server drops inactive connections | 20:46 |
EdBoy | ah | 20:47 |
EdBoy | Is there a way to fix that? | 20:47 |
jotham | send null packets | 20:47 |
jotham | =\ | 20:47 |
EdBoy | righto | 20:47 |
jotham | a lot of clients have the option to do that | 20:47 |
jotham | er null bytes | 20:48 |
nash | jotham: That's not lightweight BTW | 20:48 |
EdBoy | not this client anyway | 20:48 |
dmpayton | oh snap, it's edboy | 20:49 |
jotham | our firewall does it too, drops connections after 15 minutes | 20:49 |
jotham | nash: the file? or the sending of nulls? | 20:49 |
EdBoy | dmpayton: oh snap, it's dmpayton | 20:49 |
EdBoy | I won't say your name/aliases :P | 20:49 |
EdBoy | you just noticed me here? | 20:49 |
nash | mithro: Easiest example is setenv & locale which can change the effect of other functions | 20:49 |
nash | jotham: The .ps.gz | 20:49 |
dmpayton | EdBoy: it's kinda obvious what my name is, not like it's a big secret. | 20:49 |
EdBoy | ugh, you took your pretty portfolio site down | 20:50 |
EdBoy | why?? | 20:50 |
jotham | nash: yeah i don't know what to open a ps with in windows, was looking for a viewer | 20:50 |
EdBoy | and have you gotten anywhere with a web client or are you waiting until SoC? | 20:50 |
llnz | ping frames are in the protocol to keep connections alive | 20:50 |
EdBoy | llnz: they don't seem to work in my client | 20:50 |
EdBoy | *shur* | 20:50 |
dmpayton | mithro: I'm gonna try to get that email out tonight, and the design doc will probably have to wait until I'm finished with this project for work which should be by the end of this week. | 20:50 |
* EdBoy shrugs* | 20:50 | |
llnz | EdBoy: tpclient-pywx doesn't send ping frames | 20:51 |
nash | jotham: I'm only 90% sure that discusses co routines.. | 20:51 |
nash | jotham: ghostview for windows | 20:51 |
EdBoy | llnz: lucky me, I picked the one that doesn't help me ;o | 20:52 |
jotham | cheers | 20:52 |
nash | jotham: Otherwise go to knuths homepage, and look at hsi Art Of Computer Programming 4 pre-prints | 20:52 |
llnz | EdBoy: demo1 on the otherhand has a real ip address and doesn't have that problem | 20:52 |
EdBoy | ah | 20:53 |
mithro | brb | 20:54 |
EdBoy | brb | 20:54 |
nash | And I too will brb... My mouse just ran out of batteries | 20:57 |
jotham | oh there we go | 20:59 |
jotham | http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html | 20:59 |
tpb | <http://ln-s.net/Ujd> (at www.chiark.greenend.org.uk) | 20:59 |
*** EdBoy has left #tp | 20:59 | |
dmpayton | nash: rechargeable energizers FTW! | 21:00 |
dmpayton | I"m kinda surprised... I bought this mouse 3 weeks ago, and the battery meter hasn't gone down one notch. | 21:02 |
* nash watches dmpayton's watch freeze | 21:15 | |
nash | s/watch/mouse/ | 21:15 |
llnz | hehe | 21:16 |
llnz | bbl | 21:16 |
*** llnz has quit IRC | 21:16 | |
dmpayton | afk, gonna go deep fry my face | 21:32 |
mithro | jotham: the only way to do threading reliabily is to make sure you have NO shared data | 21:37 |
nash | mithro: So use separate processes ;-) | 21:39 |
dmpayton | cool, my feed is now on the planet | 21:39 |
jotham | mithro: ... yeah i realise that | 21:46 |
jotham | i've used threads in C++ off and on for years | 21:47 |
jotham | not really a fan of them | 21:47 |
jotham | having to jury rig all your code to avoid race conditions and manage locks ends up being messy | 21:47 |
jotham | and when the project gets big keeping track of all the possible states is a total bitch | 21:47 |
nash | jotham: And when something goes wrong... it can be impossible to track down, as debuggers don't work with threads (or more correctly they change behaviour so much as to be useless with most thread issues) | 21:49 |
jotham | yep | 21:49 |
jotham | like i said at the start, i had wierd problems with file handles corrupting | 21:49 |
jotham | which pretty much jipped my entire design | 21:50 |
jotham | and google was full of people with the same problem | 21:50 |
nash | Probably a buffering issue | 21:50 |
nash | Moral... don't use threads ;-) | 21:50 |
jotham | yeah the project is long gone now | 21:50 |
nash | Recent story... our toolkit has a rule we tell all our clients "don't use threads". Anyway, one client "who knows better" just had to pay us a bucket load of money to track a bug caused by them using threads (they assumed it was a bug in our code being exposed by threads). | 21:52 |
nash | The bug is somewhere deep in pthreads in uclibc or similar - NFI where... they still don't know | 21:52 |
nash | Meanwhile we implemented a non-threaded version... in 2 days | 21:52 |
nash | They have spent more time writing emails about the problems in the threaded version then we did making it non-threaded | 21:53 |
nash | And we use less memory too ;-) | 21:53 |
nash | Which is useful for a 32meg embedded device | 21:53 |
jotham | that's another thing | 21:58 |
*** mithro has quit IRC | 23:11 |
Generated by irclog2html.py 2.5 by Marius Gedminas - find it at mg.pov.lt!