Monday, 2007-05-07

*** tpb has joined #tp00:00
*** ChanServ sets mode: +o tpb00:00
mithrodmpayton: oh? what do you have to do?00:06
mithrodmpayton: I would like to get your into a state of being able to push code soon00:07
dmpaytonmithro: That should be by this weekend.00:08
mithrodmpayton: if you have a chance sometime today, we could do some test commits?00:08
dmpaytonmithro: Sure. I was going to work on the blog, but I'll probably just end up going with WP.00:09
llnzbbl, hopefully00:11
*** llnz has quit IRC00:11
mithrodmpayton: well - it shouldn't take long00:13
*** DystopicFro has quit IRC00:17
*** DystopicFro has joined #tp00:17
mithrodmpayton: tell me when you want to do it :P00:18
dmpaytonmithro: sure thing.00:26
dmpaytonWow, Google just flagged me as a spyware application.00:26
nashYou - specifically?00:28
* nash wonders if he can be tagged as a "rogue installer" application ;-)00:28
dmpaytonnash: yeah, me specifically00:32
dmpaytonwhen I try to go to google groups, I get sent to
dmpaytonhas a CAPTCHA...and I can enter the text, but there's no submit button, so...00:34
dmpaytonso... I'm effectively barred from using Google Groups.00:35
nashI get 'not found on this server"00:35
mithrodmpayton: hit enter?00:35
dmpaytonmithro: Oddly enough, we had a discussion in one of my classes about that very issue00:36
mithrodmpayton: which issue? :P00:36
dmpaytonas in, no "submit" button00:36
dmpaytonbut hitting enter00:36
mithrodmpayton: so hitting enter works?00:37
dmpaytonmithro: yep00:37
mithrodmpayton: so want to give git a try?00:39
dmpaytonmithro: Sure.00:41
mithrookay setting up the repository on the server now00:42
dmpaytonAlright00:42, yes?00:43
mithrodmpayton: your on linux right?00:44
dmpaytonmithro: Negative. WinXP.00:44
mithrodmpayton: oh :/00:44
dmpaytonI have debian on disk, but my laptop didn't like when I put it in.00:44
mithrois down?00:45
dmpaytonWhat flavor of linux would you recommend?00:46
mithroUbuntu :P00:47
dmpaytonkeeping in mind I've never used linux before00:47
dmpaytonHeh, k00:47
dmpaytonWhats the difference between ubuntu and debian?00:47
jothammore userfriendly00:48
mithroUbuntu us debian with a user friendly gloss00:48
jothamdebian has somewhat actively discouraged 'end users'00:48
jothamubuntu was designed from the start to be a consumers linux00:48
jothami run debian on my internet gateway, web server, dev machine, and ubuntu on my desktop00:49
mithroI would highly recommend Ubuntu :)00:49
jothamyeah, i'm with mithro00:49
mithrodmpayton: you could use the CVS gateway00:50
*** tuna-fish has quit IRC00:54
tpb<> (at
dmpaytonmithro: Awesome.00:59
*** tuna-fish has joined #tp01:02
mithrodmpayton: so you managed to find some binaries for windows?01:09
dmpaytonmithro: negative.01:14
dmpaytonCame across though01:14
tpbTitle: Cygwin Information and Installation (at
nashDystopicFro: You around at all01:16
mithrodmpayton: Cygwin is pretty cool01:17
mithrogive you things like bash on Windows01:18
mithrodmpayton: it's pretty easy to install too01:19
dmpaytonI'm gonna get a dual-boot going01:19
dmpaytonit's time to reformat, anyways01:19
dmpaytoninstead of burning it to CD, I should be able to put it on my flash drive and install from there, right?01:21
mithrodmpayton: never done that01:21
mithrohaving a ubuntu cd about is pretty useful incase something goes wrong01:21
dmpaytonDunno if I brought any blanks with em when I moved.01:22
dmpaytonI requested a free cd, but... 4-6 weeks doesn't fit my time frame.01:22
mithrodmpayton: yeah01:24
dmpaytonbrb, gonna dig through some boxes.01:24
dmpaytonFound 2 potentially blank cd-r's (as in, nothing writtin on the cover)01:26
mithrodmpayton: cool01:26
mithro ?01:27
tpb<> (at
dmpaytonOne of the disks has Illustrator + InDesign CS201:28
tpb<> (at
dmpaytonOh hey, even better01:30
dmpaytonGonna take +12 hours to install, though.01:31
dmpaytonnow it's up to 2001:32
nashCan you get a net isntall version or something?01:32
nashala debian01:32
mithrodmpayton: well -- maybe to start with cygwin?01:32
mithrodmpayton: any luck?01:37
dmpaytonmithro: installing cygwin now01:38
mithrookay cool01:38
jothamwhat are you trying to do01:40
jothamcygwin makes baby jesus cry01:40
jothami'd suggest just running a real linux01:40
dmpaytonjotham: well, I have three options:01:44
dmpayton1) cygwin (for now)01:44
dmpayton2) install debian, which I have on disk01:44
dmpayton3) wait for ubuntu to download (+15 hours), and install it01:45
* nash mutters about what is wrong with debian, aside from not having shuttleworths money?01:45
dmpaytonnash: from what I hear, ubuntu is more user-friendly, which, seeing as I'm new to linux, is more appealing to me.01:47
nashdmpayton: I think the difference is neglible..01:48
* dmpayton contemplates01:50
mithronash: the difference is quite huge :P01:50
jothami think the difference is large too01:51
jothami'm a long time debian user and a some 6 months ubuntu user01:51
* mithro has been using debian for about 8 years now, ubuntu for 1-2 years01:51
jothami'd wait on ubuntu rather than letting satans bastard child cygwin spawn in your file system01:52
jothamor use debian if you are feeling adventurous01:52
dmpaytonUbuntu it is.01:53
dmpayton2%, woo01:54
jothamyou don't have much bandwidth or what?01:54
jotham(not a crime...) or is the site just slow?01:54
dmpaytonSite might just be slow...01:55
dmpaytonShouldn't be a bw issue... bittorrent isn't running01:55
jothammost sites limit to 50k per http session, but if you use something like DownThemAll (firefox download accelerator) you tend to get great speed increases01:56
jothamsince by default it spawns 4 sessions on a site01:56
jothamor use axel in linux =) but that's a bit chicken-and-egg01:56
dmpaytonjotham: Sweet, thanks01:57
*** dmpayton has quit IRC01:57
*** dmpayton has joined #tp01:58
dmpaytonfrom +15 hours to 30 minutes...Wow.02:02
dmpaytonWell, I also chose a different mirror, so that probably has to do with it aswell.02:02
mithrodmpayton: yay!02:06
jothamthat's more like it =)02:07
mithrodmpayton: find a cd-r?02:13
dmpaytonmithro: Yep.02:13
mithrowhat network card do you have?02:14
dmpaytonNo idea02:14
dmpaytonwhatever one Dell decided to put in it.02:14
dmpaytonintegrated broadcom02:16
mithrodmpayton: that should work if you are installing feisty02:25
* dmpayton starts backing stuff up02:30
mithrodmpayton: always good to do anyway :P02:31
mithrowhats the model of your laptop?02:31
dmpaytonInspiron 600002:31
dmpaytonWhat's a good IDE for linux?02:32
nashEclipse is popular.  I use gvim, gcc & cscope myself, although it's not what most people call an IDE02:34
dmpaytonEh, eclipse...02:34
mithroi use Gvim and iPython02:34
nashApple does python now?02:34
mithropydev + eclipse is okay for people with lots of ram02:34
mithroipython is an improvement over the normal interactive python02:35
mithrothings like tab complete02:35
dmpaytonI used eclipse at work...switched back to crimson editor/komodo02:35
nashdmpayton: Used vi or a varient before?02:35
dmpaytonnash: neg.02:35
nashnasty learning phase, but once you get there it's awesome - moded editors screw with your head02:36
* dmpayton should really get around to working on the material for his unix class...02:37
dmpaytonI think there's a chapter on using vi02:37
mithroi would recommend vim over vi02:37
mithrohowever I don't know anyone who uses just plain vi02:38
nashmithro: Does ubuntu even ship a vanilla vi02:38
mithroi think nvi is installed by default02: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 different02:38
dmpaytongotta reboot02:40
*** dmpayton has quit IRC02:40
mithrohope it goes well02:41
jothami like vim02:42
jothamnever got to know vi/nvi enough to develop an opinion02:42
nashquestion is - is it worth recommening cream, or should we throw him in the deep end02:42
nashA plugin for vim that makes it modeless02:43
nashhowever it's hard to shift to normal vim after02:43
jothamwhat's wrong with the modes =\02:43
mithronever heard of it02:43
nashmakes vim very useful for people who just started02:43
nashjotham: What's wrong with modes?  Easy they screw with your head02:44
jothamstill wish i could get my vim to love the vimrc for python02:44
*** dmpayton has joined #tp02:50
dmpaytonAnyone know an alternative to daemon tools?02:50
nashI'm not sure what daemon tools is... so I may have an alternative running right now02:53
dmpaytonnash: ISO mounting02:54
nashon unix or windows?02:57
mithrodmpayton: alcohol 120%?02:58
nashOtherwise - why not just mount -o loop foo.iso02:58
dmpaytonnash: I'm still on windows, no mount command here.03:01
nashdmpayton: Then I have NFI ;-)03:02
mithrodmpayton: you going to try install from flash disk?03:02
nashI've essentially been 100% windows since 199603:02
nashs/windows/windows free/03:02
dmpaytonnash: Lucky you.03:03
nashNo... just makes it painful when I have to use a windows box for something03:04
mithrodmpayton: if you have a CD-R, i would recommend just burning it :P03:04
dmpaytonwth... the ubuntu iso is 0 bytes03:05
nashDoes your widows program support rock ridge?03:05
dmpaytonrock ridge?03:24
nashThats the ISO extension to support long file names03:26
dmpaytonbut the iso is showing 0 bytes on my desktop03:29
dmpaytonand it wont mount in alcohol 120% or winvcd03:30
nashBeats me - my first step in solving windows problems is usually 'install debian' ;-)03:32
nashIt's generally not a useful response ;-)03:32
mithrodmpayton: maybe it didn't download correctly?03:37
dmpaytonmithro: Yeah, I've been redownloading it. Taking longer this time. 34% with about an hour and 20 minutes to go.03:38
mithrodmpayton: okay03:38
dmpaytonreading in the meantime.03:38
tpbTitle: Making the Switch (at
nashanyway - I'm off home03:46
nashnight all03:46
*** nash has quit IRC03:47
dmpaytonFucking dog...03:52
dmpaytonI'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
dmpaytonafter she /see's/ me watching her03:54
mithrodmpayton: this is why I like cats :P03:57
dmpaytonYeah, we have one of those, too03:57
dmpaytonI threw my wallet at the dog...missed, damnit03:58
dmpaytonshe bolted back into the bedroom, jumped on the bed, and hid under the covers03:58
dmpaytoni threw her ass outside, and my fiance gets mad at /me!/03:58
mithrodmpayton: ahh well04:00
* dmpayton shrugs04:00
dmpaytonThat's life.04:00
dmpaytonpray that there's no glitches in the burning process...04:49
dmpaytonburning now...04:49
mithrodmpayton: so how did it go?04:57
mithroi have to admit I havn't made a coaster in like 5 years04:58
dmpaytonmithro: still burning, 84%04:58
dmpaytonwhen it's done, i'm gonna boot from disk to make sure it worked okay04:59
dmpaytonthen i'm going to bed. Gotta be up to meet the lawyers in the morning.04:59
dmpaytonright-o... done burning, I'm off to explore Ubuntu!05:00
dmpaytonI'll be back before I head out for the night05:01
*** dmpayton has quit IRC05:01
*** dmpayton has joined #tp05:11
dmpaytonI hate GAIM05:11
dmpaytonbut I am LOVING ubuntu05:11
jothamgaim sucks =)05:12
*** llnz has joined #tp05:12
jothami use pandion for gtalk, and don't really use msn anymore05:13
dmpaytonwb llnz05:13
dmpaytonjotham: I only have gtalk installed because it notifies me when I get a new email05:14
dmpaytonworkspaces is nice.05:17
mithrohey dmpayton05:17
mithroyour in ubuntu now?05:17
llnz~seen xdotx05:18
tpbllnz: xdotx was last seen in #tp 1 day, 3 hours, 9 minutes, and 45 seconds ago: <xdotx> afk. reading.05:18
dmpaytonUsing GAIM to connect to IRC05:18
mithrouse xchat05:18
llnzmust be a lot of reading05:18
mithrosudo apt-get install xchat05:18
llnzi use konversation05:18
tpbTitle: Derek's Summer of Code Blog (at
jothamor use irssi05:19
dmpaytonNo post yet... but it's 95% written.05:19
mithro95% written? the post?05:19
mithrohe he okay05:20
mithrowas thinking the blog :P05:20
dmpaytonmithro: Heheh, nah... I was working on my own, but I'm gonna use blogger to save me some time.05:20
mithrodmpayton: okay - as long as you still getting that experiance05:21
dmpaytonBesides, I've been learning a lot about through using it at work, which is more real-world-ish than writing a blog app...05:21
mithrodmpayton: cool05:24
dmpaytonIf I didn't still have to write in VB.NET this summer, I'd consider just wiping XP all together05:27
mithrovmplayer is free :P05:29
* llnz is back05:30
dmpaytonNice... all the media buttons work out of the box05:32
dmpaytonWish I could test wireless05:32
mithrodmpayton: no wireless?05:39
mithrovmplayer is vmware's free virtualisation tool05:39
mithrodmpayton: no local access point?05:39
dmpaytonmithro: Havn't had the money for a router yet. Right now I'm the only one with internet access05:41
mithrodmpayton: ahh well, not long now till Google money starts flowing :)05:41
mithrodmpayton: don't forget to add yourself to Planet SoC05:42
dmpaytonmithro: I'll probably have to wai till I get the first $2000 for the router.05:42
dmpaytonYeah, I'll do that as soon as I add the first post.05:42
dmpaytonalso, any experience with CrossOver Office?05:42
mithrodmpayton: it's your money :P05:42
mithrodmpayton: i just use open office05:43
mithrowhat do you need in MS Office?05:43
dmpaytonmithro: Yeah, but there's two other people going nuts without i-net. :P05:43
dmpaytonmithro: re: CrossOver Office:
mithro2? your dog uses internet? :)05:43
tpb<> (at
dmpaytonmithro: Brooke's brother lives with us. He's why we're meeting lawyers in the morning.05:44
CIA-3llnz documents * r4247101f7bf7 /protocol/protocol.xml: Fixed structure tags for SetFilters frame05:44
dmpaytonShe's becoming his legal guardian05:44
mithrodmpayton: sounds complicated05:44
tpbTitle: CrossOver - Wikipedia, the free encyclopedia (at
mithrodmpayton: I know what Cross Over is :P05:45
mithrojust never found the need for it05:45
mithroI use OpenOffice for all my office needs, and gimp for the ocasional touchup05:46
dmpaytonI found Open Office to be buggy...05:46
dmpaytonAnd I'd much rather stick with PS than learn another graphics program05:46
mithrodmpayton: come to the dark side, use GIMP :P05:47
dmpaytonCrossOver allows you to install World of Warcraft...Damnit, I wish I'd never found XO...05:47
dmpaytonWith that knowledge, my productivity is shot05:47
dmpaytonHL2, too!05:48
mithrodmpayton: you can get your WoW account banned :P05:49
mithroanyway I'm off to dinner dinner05:49
mithrosudo apt-get install cogito05:49
dmpaytonmithro: I cancelled WoW two days ago... :(05:49
dmpaytonGot till May 20 till it's officially off, though05:50
dmpaytonAnyways, have fun eating05:50
dmpaytonI'm going to bed05:50
*** dmpayton has quit IRC05:52
CIA-3llnz web * r445fb03321e5 /dev/documents/protocol2html.xsl: In protocolxml (via protocol2html.xsl) use long name when available06:33
llnzafk a bit06:34
*** dmpayton has joined #tp06:47
dmpaytonOkay, I lied. No bed yet.06:47
dmpaytonmithro: ping?06:47
dmpaytonFigures, still eating.06:58
mithrodmpayton: back07:03
mithrowas watching TV07:03
dmpaytoncan't add it to the planet, though...07:04
mithrodmpayton: oh?07:05
mithroyou have to sign up before you can add a blog07:06
dmpaytonmithro: I did. I click on Add Content, only Forums shows up.07:07
mithrodmpayton: ah you might have to wait to be "approved" before they let you add a blog07:07
mithro ?07:08
dmpaytonmithro: Access Denied07:10
mithroyeah - probably need to wait a few days07:11
*** nash has joined #tp07:23
dmpayton'llo nash07:24
mithrohey nash07:26
* llnz is back again07:26
llnzhi nash07:26
llnzwb dmpayton07:26
mithrodmpayton: shouldn't you be heading to bed :P07:26
dmpaytonmithro: Nah, it's only 4:30am. :D07:26
* llnz adds dmpayton's blog to his feedreader07:26
nashWhat was the blog URL?07:26
dmpaytonGotta be up in 4 hours...07:26
nashAhh... the good old uni days...07:27
* nash wishes he could still do that sort of thing... every nigh07:27
dmpaytonnash: http://dmpayton-soc.blogspot.com07:27
dmpaytonnash: Nope, lawyers. :)07:27
tpbTitle: Derek's Summer of Code Blog (at
daxxarI should blog that07:28
daxxarErr, blog this*07:28, per'aps.07:28
dmpaytonyeah, I'll probably be moving mine to, but that wont be for a while07:28
dmpaytonanyways, feed would still be available through blogspot07:29
dmpaytonMy bed is calling me.07:36
*** dmpayton is now known as dmpayton_07:36
*** mithro has quit IRC08:01
*** mithro has joined #tp08:01
mithrollnz: how goes everything?08:15
mithrofinished the presentation?08:17
llnznope, haven't started it yet08:17
llnztrying to get the last of my funding currently08:17
mithrollnz: when do you have to do it?08:17
llnzthe presentation? in the next month or so, i think08:19
mithroahh okay - a while off?08:20
llnzquestion, 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 list08:21
llnzping, get time remaining, get features, get game info, set filters08:21
llnzi was thinking about that08:23
llnzi was thinking that only login into the same account would be allowed08:23
llnzeffectively doing nothing08:23
*** Demitar_ has quit IRC08:26
llnzalso, if you allow login anytime, create account should be available anytime as well08:26
mithroi'm confused08:27
llnzi am talking about frames that the client can send the server, after connection08:28
mithroI don't see a point for ping08:28
llnzso in the connected (pre-login) state, or in the logged in state08:28
mithroget time, get features, get game, set filters, login, create08:29
llnzso a client could send this sequence of frames: connect, login, login, login, create, login, login08:30
llnzand the server will have to accept that?08:30
mithrollnz: that doesn't seem valid to me08:30
mithroconnect->create->login or connect->xxx->login08:31
llnzso if i have this sequence "connect->xxx->login->yyy", which frame types are common to xxx and yyy?08:32
mithronone really - set filters possibly?08:32
llnzget time remaining?08:33
llnzget features and set filters?08:33
llnzget game info?08:33
mithroi don't think ping should be allowed before connect08:33
llnzi am talking about after ping08:34
llnzerrr.... after connect08:34
llnzi would rather have nothing before connect, but get features is currently allowed08:34
nashYou need features before you login08:36
mithronash: why?08:36
nashSo you can see things like SSL and string encoding08:36
mithronash: s/login/send connect frame/08:36
nashYou should also be able to do things like "what games are here" tpp08:37
mithronash: to connect to a server you currently send a connect frame and then you can do that -> then you can login08:37
nashblerg... always as I'm about ot go to bed...08:37
nashthen it is fine08:38
nashnot quite yet08:38
llnznash: string padding will be the first filter available in tpserver-cpp :-)08:40
nashllnz: Excellent ;-)08:40
llnzworking 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 method08:41
CIA-3nash galaxie * r90f458b56200 / (edje/basic-info.edc tpe_gui.c): Work on orders.08:49
CIA-3nash galaxie * r2ae77e9ac196 /tpe_gui.c: Put windows on their own layer.08:49
CIA-3nash galaxie * rd2269df164e4 /tpe_gui.c: Fix raise and potential crash woth object boxes.08:49
CIA-3nash galaxie * ra0106a8c12c0 /todo.txt: Todo note08:49
CIA-3nash galaxie * raab358db3ea7 /tpe_gui.c: Type fix in message.08:49
CIA-3nash galaxie * rfccec015825d /galaxie.c: Remove AI start up version.08:49
CIA-3nash galaxie * rd05fe1b6c8c6 /tpe_orders.c: Fragment large order lists.08:49
CIA-3nash galaxie * rd4d28f5efb82 /tpe_msg.c: Remove some debug messages.08:49
CIA-3nash galaxie * r7d8aebebfeeb /Makefile: Better dependancies08:49
CIA-3nash galaxie * r2cfef9410570 / (Makefile themeinterface.txt tpe_comm.c): Merge with git+ssh://[email protected]/var/lib/git/galaxie.git08:49
CIA-3nash galaxie * re8771da21578 /Makefile: Fix dependancies.08:49
CIA-3nash galaxie * r31d9c76c791e / (galaxie.c tpe_comm.c tpe_msg.c): Merge with git+ssh://[email protected]/var/lib/git/galaxie.git08:49
nashI'm surprised CIA wasn't kicked for flooding08:50
CIA-3llnz tpserver-cpp * r5eb82c9f92d1 /tpserver/ (net.h playerconnection.cpp):08:50
CIA-3Added filter feature numbers and Set Filters frame handling (pre-login only)08:50
CIA-3Was quite simple, only string padding filter currently useable currently.08:50
CIA-3No filters advertised yet in Features frame.08:50
CIA-3nash galaxie * r376670d4cbdb / (9 files): Start of orders - doesn't compile yet...08:55
CIA-3nash galaxie * r12de00d86fbe / (7 files): More order stuff.08:55
CIA-3nash galaxie * r27c482b39d10 / (5 files in 2 dirs): Basic order work - the order box itself.08:55
CIA-3nash galaxie * r0ae29f15195d / (8 files in 2 dirs):08:55
CIA-3Object popups for orders, and generally better window management.08:55
CIA-3Also the framework for complete and good window management.08:55
CIA-3nash galaxie * r2cac861cd981 /Makefile: More dependancies for code. No false dependancy on Makefile for artwork.08:55
CIA-3nash galaxie * rcda9ccab7a59 / (tpe_gui_orders.c tpe_gui_private.h tpe_obj.c tpe_obj.h): Start adding magics08:55
CIA-3nash galaxie * ra3c40cb69f14 /edje/ (6 files in 2 dirs): Remove old and ugly images.08:55
CIA-3nash galaxie * r9c58726931af / (tests/ tpe_gui_orders.c): Add URL test to revision control08:55
CIA-3nash galaxie * ra571c97650b4 / (5 files in 2 dirs): More general improvement of order windows.08:55
CIA-3nash galaxie * rc6c630f9c856 / (22 files in 4 dirs): Merge with order branch - order windows and system refactor.08:55
nashAnyway - time for bed08:57
nashNight all08:57
mithronash: wow :P09:00
*** Demitar_ has joined #tp09:02
* llnz wanders off09:34
llnzlater all09:34
*** llnz has quit IRC09:34
*** mithro has quit IRC14:54
*** mithro has joined #tp15:18
*** dmpayton_ has quit IRC15:22
*** nash has quit IRC17:54
*** dmpayton_ has joined #tp18:19
*** dmpayton_ is now known as dmpayton18:19
mithromorning dmpayton18:44
dmpaytonafternoon mithro18:44
dmpaytonHow goes things?18:44
mithrojust getting up to go to uni18:45
dmpaytonfun fun18:45
dmpaytonOkay, this is weird...18:52
*** mithro has quit IRC19:14
*** nash has joined #tp19:24
jothamholy crap yield is cool, why didn't i pay attention to it before19:29
jotham(python key word)19:29
dmpaytonjotham: what's it do?19:37
*** mithro has joined #tp19:37
dmpaytonwb mithro19:38
mithro~seen niphree19:38
tpbmithro: niphree was last seen in #tp 1 week, 5 days, 12 hours, 27 minutes, and 11 seconds ago: <niphree> hello19:38
mithrodmpayton: btw how goes the email?19:39
jothamdmpayton: you are a python coder?19:39
dmpaytonjotham: I'm trying to be. :P19:39
dmpaytonmithro: i'll get the email sent out tonight sometime.19:39
* mithro is molding dmpayton into a python coder :P19:39
jothamdmpayton: ok simple example19:40
* dmpayton is a PyNewb19:40
mithrodmpayton: your currently in windows? :/19:40
tpbTitle: Nopaste - No description (at
dmpaytonmithro: Yeah. It'll be a few days before I can format. :/19:41
jothamdmpayton: 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 intact19:41
jothamdmpayton: which means i can now impliment poor mans cooperative multitasking in a project19:41
mithrojotham: yield was cool when I first discovered it19:42
jothambtw that script should output something like19:42
jotham0 import random19:42
mithrojotham: but I got over it fairly quickly19:42
jotham2 class LineReceiver:19:42
nashjotham: Do you mean 'co-routines'?19:42
jothamnash: yes19:42
jothammithro: well i have a specific task19:42
jothami'd ignored yield until now because i had no need for it19:42
jothambut this means i can keep redrawing the screen and handling input events while the path finding code works on a sollution19:43
mithrojotham: it's useful for doing a limited number of things19:43
nashcoroutines != poor mans multithreading19:43
jothamnash: i said poor mans cooperative multitasking..19:43
mithrocooperative multitasking is always doomed to failure19:43
jothamwell in this case it's the perfect sollution19:43
nashWell it's in a single process, so it's not multitasking in any sense - and it is still very different to threads19:44
jothambut 'poor mans' is a qualifier19:44
nashIt 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 issues19:44
tpb<> (at
jothamok, going buy what i know of cooperative multitasking it's very similar in pattern19:45
jothami assume this is how twisted does a lot of its stuff19:45
nashCo-op Multitasking however requires you to trust process in different securoty domains...19:46
mithronash: it requires you to be very very careful, as one bug in your code stops everything from running19:46
nashHence 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 processor19:47
nashmithro: Unlike threads...?19:47
jothamhonestly this discussion is getting silly19:47
jothamam just reading about closures in ecmascript19:49
nashAnyway - If I recall correctly, python doesn't do yield properly - it can ony be called at the top level I believe19:49
jothami think i need to run some tutorials for the web developers here19:49
jothamcalled at the top level?19:49
nashyou can't call yield from a function19:49
jothami think i misunderstand what you are saying19:50
jotham>>> def foo ():19:52
jotham...     for n in range(2):19:52
jotham...             yield n19: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
jothamso i think i misunderstand you?19:52
jothami mean i am calling it from a function but it's converting it into a generator19:54
jothamis that what you mean, or what19:54
mithrodmpayton: so how is everything going?19:59
mithroIE Where are you at regarding stuff20:00
*** llnz has joined #tp20:01
mithrohey llnz20:01
mithroyour around early today20:01
llnz~seen xdotx20:01
tpbllnz: xdotx was last seen in #tp 1 day, 17 hours, 53 minutes, and 30 seconds ago: <xdotx> afk. reading.20:01
llnzhi mithro20:01
llnzjust popping in while i have a break20:02
llnzand pondering20:06
nashjotham: I thought you call yield from an arbitrary function called from the generator20:09
nashit had to be in the same function context20:09
nashYou can't have x() call y() which calls yield20:09
* xdotx reappears20:11
llnzhi xdotx20:11
mithrohey xdotx20:11
mithrolong book? :P20:11
xdotxyeah i'm bad about that. book is almost always followed by sleep, which is usually followed by school20:13
jothamnash: sure you can, just return the result of y from inside x20:15
jothamnash: since it's passing a generator instance back20:15
jothambut maybe that isn't the point you were trying to make20:16
jothami haven't looked at those sort of complexities with yield20:16
nash :: "The yield statement is only used when defining a generator function, and is only used in the body of the generator function."20:17
tpbTitle: 6.8 The yield statement (at
nashIt can't be called from a function the generator calls.20:18
nashBasically means you can't do true co-routines with it - for that you need to use lua or similar20:18
jothamok that's good to know, that could have caught me out20:19
CIA-3llnz documents * r77e3b3d80437 /protocol/protocol.xml: Fixed longnames for Category and Design frames20:19
nashjotham: coroutines were added rather late to python, and it shows :-(20:20
mithronash: what would you use coroutines for?20:23
llnzxdotx: how are you going?20:23
nashWhere i want something like threads ;-)20:23
nashmithro: Since i do most of my programing in C... whenever I use a setjmp ;-)20:23
nashHowever setjump is a PITA20:24
nashIt's great for animations and other effects as you can have a nice set of state built up20:24
nashAnd then blow away the whole routine (if it is a closure)20:24
jothami've had quite a few problems with threads in windows not being able to share resources20:24
xdotxllnz: pretty good. it's unnaturally hot here20:24
jothamwierd stuff like file handles corrupting20:24
nashthreads suck... ;-)20:25
jothampretty frustraiting actually20:25
llnzxdotx: fun20:25
jothamyeah for serious20:25
mithrojotham: sharing resources between threads is a tricky business20:25
nashthreads are for people who can't handle state machines20:25
jothami seldom use threads20:25
mithronash: threads and state machines can be pretty complimentary20:25
jothami haven't ever used them (well PRETENDED to as the case may be with python) in python20:25
mithropython threading also sucks :P20:26
mithroplot GIL20:26
jothamit's pretend that's why20:26
mithrodunno how I got plot from bloody20:26
jothamthreading just seems like a lazy answer to an engineering problem,20:27
nashjotham: Yes20:27
jothami know that's a gross generalism20:27
jothambut most of the times i see it used that's what it is20:27
mithropypy should hopefully solve a lot of the Python threading woahs20:27
nashmithro: Except that threads generally make the statemachine unsolvable in a general case20:27
jothamin this world of 99,000 core hyper-whatsits i'm sure threading will be encouraged more and more20:27
nashYes and no.20:28
nashYou can always have async execution without traditional threads20:28
nashWe do it already with graphic cards20:28
mithronash: why? state machines are little things which click around depending on events right?20:28
nashYes, 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, $220:30
mithronash: hrm - that is too low level for me :P20:31
mithroI just have a thread which contains a state machine, as events come in the thread changes states20:32
mithroas there is a limited number of input events, and a limited number of states - it's all perfectly tractable20:32
nashExcept to validate threads correctly you need to consider all points where execution can switch, as the current active thread is part of the state20:33
mithronash: why? the "switching" is totally transparent to the thread20:34
nashBased on what you said, you should be using coroutines20:34
nashmithro: Umm.. doesn't matter if it transparent20:34
mithronash: why? one state could be "calculate a shortest path" - using coroutines (at least in python) would mean the whole system could block20:35
nashThe threads context (ie state) == everything it can access == all memory, which can be modified by any other thread20:35
mithronash: are you assuming that threads can access each other via a method other then events?20:36
nashWell 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 necessary20:36
nashYes. Any library call could be a data path for instance20:37
mithroi'm not sure what you mean by a data path20:39
*** EdBoy has joined #tp20:41
nashif there is any data stored by a library function, if one thread changes a value it affects the other.20:41
EdBoyllnz: your server disconnects so much :X20:41
llnzwhich server? or
EdBoyuh lemme check20:42
EdBoyI'm the one that emailed you a while ago20:42
llnzcool20:43 is the one20:43
EdBoyit disconnects me around every 10 minutes20:43
llnzwhat client?20:43
mithronash: ahh - but library functions with no contained side effects are bad :P20:44
jothamnash: can you URL me to knuth talking about coroutines? i didn't have much luck googling20:44
nashYes, because they make analysing threaded programs hard... where hard = pratically impossible20:44
jothami have to say mithro hasn't really given me any more confidence in threading =)20:45
jothamit still seems to the part of the map labeled 'here be monsters'20:46
tpb<> (at
mithronash: on a side note, which functions might has such side effects?20:46
llnzEdBoy: it could be that the NAT between the internet and the server drops inactive connections20:46
EdBoyIs there a way to fix that?20:47
jothamsend null packets20:47
jothama lot of clients have the option to do that20:47
jothamer null bytes20:48
nashjotham: That's not lightweight BTW20:48
EdBoynot this client anyway20:48
dmpaytonoh snap, it's edboy20:49
jothamour firewall does it too, drops connections after 15 minutes20:49
jothamnash: the file? or the sending of nulls?20:49
EdBoydmpayton: oh snap, it's dmpayton20:49
EdBoyI won't say your name/aliases :P20:49
EdBoyyou just noticed me here?20:49
nashmithro: Easiest example is setenv & locale which can change the effect of other functions20:49
nashjotham: The .ps.gz20:49
dmpaytonEdBoy: it's kinda obvious what my name is, not like it's a big secret.20:49
EdBoyugh, you took your pretty portfolio site down20:50
jothamnash: yeah i don't know what to open a ps with in windows, was looking for a viewer20:50
EdBoyand have you gotten anywhere with a web client or are you waiting until SoC?20:50
llnzping frames are in the protocol to keep connections alive20:50
EdBoyllnz: they don't seem to work in my client20:50
dmpaytonmithro: 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
llnzEdBoy: tpclient-pywx doesn't send ping frames20:51
nashjotham: I'm only 90% sure that discusses co routines..20:51
nashjotham: ghostview for windows20:51
EdBoyllnz: lucky me, I picked the one that doesn't help me ;o20:52
nashjotham: Otherwise go to knuths homepage, and look at hsi Art Of Computer Programming 4 pre-prints20:52
llnzEdBoy: demo1 on the otherhand has a real ip address and doesn't have that problem20:52
nashAnd I too will brb... My mouse just ran out of batteries20:57
jothamoh there we go20:59
tpb<> (at
*** EdBoy has left #tp20:59
dmpaytonnash: rechargeable energizers FTW!21:00
dmpaytonI"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 freeze21:15
*** llnz has quit IRC21:16
dmpaytonafk, gonna go deep fry my face21:32
mithrojotham: the only way to do threading reliabily is to make sure you have NO shared data21:37
nashmithro: So use separate processes ;-)21:39
dmpaytoncool, my feed is now on the planet21:39
jothammithro: ... yeah i realise that21:46
jothami've used threads in C++ off and on for years21:47
jothamnot really a fan of them21:47
jothamhaving to jury rig all your code to avoid race conditions and manage locks ends up being messy21:47
jothamand when the project gets big keeping track of all the possible states is a total bitch21:47
nashjotham: 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
jothamlike i said at the start, i had wierd problems with file handles corrupting21:49
jothamwhich pretty much jipped my entire design21:50
jothamand google was full of people with the same problem21:50
nashProbably a buffering issue21:50
nashMoral... don't use threads ;-)21:50
jothamyeah the project is long gone now21:50
nashRecent 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
nashThe bug is somewhere deep in pthreads in uclibc or similar - NFI where... they still don't know21:52
nashMeanwhile we implemented a non-threaded version... in 2 days21:52
nashThey have spent more time writing emails about the problems in the threaded version then we did making it non-threaded21:53
nashAnd we use less memory too ;-)21:53
nashWhich is useful for a 32meg embedded device21:53
jothamthat's another thing21:58
*** mithro has quit IRC23:11

Generated by 2.5 by Marius Gedminas - find it at!