/srv/irclogs.ubuntu.com/2011/06/01/#bzr.txt

pooliehi spivvo?01:09
spivHi poolie!01:21
* spiv waits for the cold&flu pills to kick in01:21
=== idnaria is now known as idnar
pooliehullo there03:02
poolieoh what a shame03:02
pooliespiv are you well enough to talk over the gc cycle thing with me03:25
spivpoolie: probably03:26
pooliehere or phone?03:26
spivHere's probably better given the state of my sinuses03:27
poolieyeah03:27
spivI might make the odd unpleasant sound :)03:27
poolie:)03:27
poolieso basically, vila implies that we ought to manually use weakrefs between application type objects03:27
poolieeven when we don't want actual weakref type behaviour of "i don't care if it's there or not"03:27
spivI do feel like a missed a memo about that somewhere03:27
poolieme too03:27
pooliehm03:28
spivI don't really know what the justification is, exactly03:28
poolieso, for example03:28
poolieif python was not capable _at all_ of dealing with cycles03:28
pooliewe would need a strict design rule about avoiding them, either by this method or something else03:29
poolie(and i'd mostly prefer the "something else")03:29
pooliebut... is it really that bad?03:29
spivI'm sure it probably helps memory be reclaimed sooner, but I'd really like to see some quantification of how much and how soon.03:29
spivI guess my big question is: why do we (or at least vila) believe avoiding these cycles is significant benefit?03:30
poolieyes03:31
spivI can certainly imagine it *might* be03:31
poolieand, secondly03:31
poolieif that problem exists, are weakrefs the best solution to it?03:31
spivAnd I could also perhaps be sold on an argument that this forces a bit more thoughtfulness about object lifetimes03:31
spivHmm03:32
pooliei think a design rule of "be thoughtful about object lifetimes" makes sense03:32
spivWeakrefs are certainly the most obvious solution :)03:32
pooliehm03:32
pooliei think the most obvious solution is to refactor the objects so there are no cycles03:32
pooliesometimes this is hard03:32
spivBut I suppose there are other options like splitting apart the objects more — right.03:33
pooliebut, here, having both the branch and the config each point to a lock would do03:33
poolieand it doesn't seem that hard03:33
poolie(modulo foreign format and api versioning stuff)03:33
spivI'm also not sure if the benefit is meant to be for CPython or some other VM03:34
poolieright, obviously this will vary by vm quite a lot03:34
spivRight.03:34
spiv(And it wouldn't totally shock me to find that weakrefs cause surprising differences in GC behaviour on some VMs)03:36
poolieright, or that they make things much slower03:36
poolieor more precisely access through them may be slower03:37
spivSo I'm quite looking forward to the mail you asked vila to send, in the hope it answers some of these questions.03:38
pooliei might send one first03:40
poolieand he can respond03:40
spivMore mail == more good!  At least in small doses :)03:40
poolielifeless: does that ring any bells with you (https://lists.ubuntu.com/archives/bazaar/2011q2/072972.html) ?03:44
lifelessmmm03:47
lifelessso I think some python implementations are worse than others03:48
lifelesswould you like me to reply to the list ?03:48
poolieprobably yes03:48
poolies//yes, unless you'd really rather prefer irc03:49
lifelesslist is fine03:49
lifelessyou pinged me is all :)03:49
pooliethis ws doc is very good :)03:57
lifeless?03:58
poolieyour service analysis proposal04:00
lifelessah, cool.04:00
lifelessthanks!04:00
lifelesspoolie: replied to that gc mail04:33
pooliethanks04:33
spivHmm, what version of testtools does PQM have?05:24
maxbHopefully whatever is codified in bzr-landing-dependencies05:44
maxbhttp://package-import.ubuntu.com/status/php5.html#2011-05-30%2002:58:42.080261 feels potentially transient - can I get a requeue to check?05:51
=== maxb changed the topic of #bzr to: Bazaar version control <http://bazaar.canonical.com> | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: jam | UDD failure ratchet: 487
spivmaxb: hmm, I suspect it's not, but sure.05:53
spiveglibc also has the same issue05:54
maxboh05:54
maxbWhoops, I thought this was a unique new one05:54
spivOh well, requeued anyway, just in case :)05:55
spivI think this is a failure revealed by the "remove stale connections from possible_transports" fix05:55
pooliehi maxb06:51
poolieooh nice topic06:51
maxb:-)06:51
maxbSo, somehow, the UDD importer has sprouted another test failure on natty since the sprint06:51
maxbIt doesn't feel particularly complex, but I've no idea what's changed to cause it to happen now but not then06:52
pooliehm06:55
* maxb wonders why BzrDir.sprout takes a source_branch argument, and then ignores it06:57
spivmaxb: it doesn't?06:59
maxbIt certainly seems to in my vim :-)06:59
spivOr with less layers of negation: it isn't ignored, it's passed to _find_source_repo06:59
spiv(in trunk; the code was a little different in 2.3, but still not ignoring source_branch IIRC)07:00
maxbwhoops. too many matches in close proximity, I didn't spot that one07:03
poolieok, no more mail for today07:14
spivmaxb: yep, php5 still fails the same way07:31
maxbhm07:32
maxbI have it running locally, and all it has accomplished so far is to make my laptop quite toasty warm to the touch :-)07:32
spivmaxb: I suspect the possible_transports includes a smart transport that is still in use, or something like that07:33
spivOr that a transport that's not safe to re-use there, e.g. you can't pull from a repo (get_stream) and push back to a repo (insert_stream) on the same smart connection at the same time.07:34
spivIt's interesting to me that it's a condition that's hit so rarely though.07:35
maxbhm. I wish we had a command "bzr delete-tags-not-in-ancestry"07:35
spivmaxb: should be easy enough to write that plugin...07:37
maxbyes. It's more of a case of "Nooooo! Not another mental context switch!" :-)07:38
spivAs always, it'd be good to know what the pre-existing request is in the TooManyConcurrentRequests traceback07:39
spivHmm,07:39
spivI filed a bug about something that would address that a few weeks ago07:40
spivhttps://bugs.launchpad.net/bzr/+bug/74547707:40
ubot5Ubuntu bug 745477 in Bazaar "Keep a record of recent events from bzrlib subsystems to use in crash reporting" [Medium,Confirmed]07:40
poolie:)07:47
vilahello guys, how are your cycles today ?08:02
* vila ducks08:02
vilakidding, poolie: I answered your email08:02
vilain summary: let's not start a jihad against gc cycles, this has never been my intent08:03
vilaspiv: /me blinks, the failure for your start_bzr_subprocess log details was related to testools ?!?!  :-(08:09
poolievila, what do you mean by08:21
poolie" Such discussions tell me that this08:22
poolie> doesn't work. That is far more concerning that using weakrefs or not to08:22
poolie> me."08:22
vilaThat trying to do minimal implementations to make reviews easier tend to trigger issues unrelated to the proposal slowing down the whole landing08:22
vilaThere should be a better way to deal with that08:23
pooliehm08:23
vilaEither there is an obvious better solution to use and the proposal and that should be done before landing08:23
vilaOr the issue should just be discussed and a new proposal will address it08:24
pooliehm08:25
pooliei agree in general08:25
vilaI ran into the case (as a reviewer) with i18n : I can't see an obvious way to address an issue and I tell Naoki: sorry, you can't land this08:25
vilaI feel really bad saying that :-(08:25
poolieusing weakrefs where they're not obviously necessary doesn't seem like the minimal implementation08:25
pooliethis is one case where we can probably land things and continue the conversation08:25
poolieas i think you have08:26
vilaright, but what do you propose as an alternative, I'm fine doing a followup for that08:26
vilajust tell me "I'd prefer this" not "I don't like that"08:27
pooliedo you know whether weakrefs increment the referents refcount?08:27
vilathe former leaves me with a way to go while the later is just blocking me08:27
pooliei guess no08:27
vila('you' and 'me' being general, not specific)08:27
pooliewell, i think many of your things it's just been "I don't understand this"08:28
vilaso, since the proposal, I had several discussions and I'm not sure anymore weakref is as simple as I thought08:28
poolie:)08:29
vilaI still think it's less costly than leaving python handle it but... meh, I can live with just a comment saying, hey look, we create a cycle there, gnark gnark, go python have fun08:29
pooliewhy do you think that?08:30
vilathink what ? That it's harder for python to break this cycle than to not have to worry about it ?08:30
vilaAIUI python gc will break it, it just requires more work08:31
vilaso 'have fun' == 'go, try harder'08:31
pooliei can believe it takes more cycles08:31
poolieis it more, or less, than dealing with the weakref?08:31
vilamy gut feeling is that it will be very surprising that it takes less08:32
vilathe weakref "just" dereferences once08:33
vilaand only for lock/unlock which doesn't occur often either08:33
viladon't08:33
vilalet's try again08:34
poolieok, so it's basically just gut feel08:34
vilaFor me, here, using a weakref is as prophylactic as using free(ptr) ; ptr = None08:34
pooliehm08:35
vilaso I know for sure I won't try to call free again on ptr (free implementations that barf on ptr == NULL (gha NULL not None) should just die)08:35
pooliesure08:35
pooliethough, today, in C, with valgrind, that code is no longer such a good idea08:36
poolieor not unambiguously good08:36
pooliebut anyhow08:36
vilaI can change my habit and forget about it08:36
pooliemm08:36
vilaIt would make a bit more happy to understand what problems *you* have with weakref here though...08:36
pooliei think having one person adding weakrefs out of habit would be bad08:36
pooliealso, relying just on gut feel as to what ought to be faster is pretty unreliable08:37
vilahmm08:37
vilaAnd what is your gut feel here ?08:37
pooliei am trying to avoid making assumptions about how python performs08:38
pooliei think the reasonable base assumption is that it works as documented, ie unreachable objects will be gc'd08:38
poolieif we find a particular case where it's slow, let's work out how to fix it08:39
poolieif we can generalize from evidence that a particular pattern ought to be avoided, great08:39
pooliei don't think we have that evidence yet so let's just write the simplest thing08:39
vilahaaaa, that I can buy easily, so what you're proposing is to just use self.branch and be done with it !08:39
poolieyes, of course08:40
pooliesorry if that wasn't clear08:40
vilagee, no it wasn't08:40
vilabut s/wasn't clear/vila didn't get it/ :)08:40
spivvila: I replied to your mail08:40
spivvila: to add to the conversation in here, I wouldn't assume that weakrefs are necessarily less work for the GC implementation than a regular reference.  They're certainly *different* work.08:41
spivvila: and yes, +1 to just ignoring cycles and letting Python take care of garbage collecting them.08:43
vilaright, so basically we don't know, I'd be happy to write tests so we all get a better understanding but I believe this is not a priority08:43
spivRight08:43
poolieno, it's really not08:43
vilas/believe/damn well know/08:43
spivIf we had infinite spare time I'd be curious to know how CPython copes with e.g. 10000s of weakrefs08:43
spivAnd of course there's the runtime cost in our code of resolving the weakref.ref instance to the actual object08:44
vilayup, I start to realize weakref *implementation* doesn't match my mental model which roughly was more along the lines of: takes a ref but don't increment the refcount08:45
spivRight, the implementation has to be more complex than that08:45
poolieso08:45
pooliefewer lines of code, faster reviews, generally08:45
spivSo that if e.g. that object is deallocated and a new one allocated at the same memory location the weakref doesn't accidentally hand you the new object08:45
spivvila: it may also interest you to know that it took a few releases of CPython before they really worked out all the bugs in how weakrefs interacted with the gc08:46
spivvila: there's some interesting comments in gcmodule.c and a .txt file near it in the source with some of the gory details08:47
poolieso are we all agreed?08:49
awilkinsThe default is now urllib2 isn't it? Not curl?08:54
jammorning all08:55
awilkinsThe reason I'm asking is essentially about SOCKS proxy support, in both bzr and ubuntuone-client08:55
pooliehi jam08:56
awilkinsubuntuone-client at least uses python-libproxy, which means it can cope with a PAC script, but then does not know what to do about SOCKS proxies. Bazaar does not use python-libproxy, and presumable doesn't know what to do about PAC scripts.08:56
pooliehm08:57
poolierequires running arbitrary javascript iirc?08:57
awilkinsBoth of them are high-profile Canonical projects, written in Python, so it would seem that they could both benefit from coping with SOCKS and doing it the same way... the personal itch I'm scratching is that I have a PAC script I use to switch proxies at work / home, but it doesn't really work very well with many things that don't support SOCKS08:58
pooliewithout checking, i think we do use urllib2 by default08:58
awilkinspoolie, libproxy provides the PAC script runner - ubuntuone-client uses the python binding of this library08:58
pooliepatches to use libproxy would be welcome08:58
awilkinspoolie, I looked at ways of handling socks with urllib2 and they involve monkeypatching it's socket implementation, I think08:59
poolie:/ probably09:00
pooliehow does u1 do it?09:00
awilkinsNot to say I want to see a switch to curl - it was far more hassle AFAIR09:00
pooliejelmer: hi?09:00
awilkinsU1 doesn't - it only copes with HTTP proxies09:00
jampoolie, spiv, vila, jelmer: time for standup?09:01
poolieyes09:01
pooliespiv gave his apologies09:01
pooliealso, jr, hopefully09:01
pooliebut jelmer and jr seem to be asleep09:01
Riddellmorning09:01
jamRiddell: ^^09:01
poolie... or, to have adifferent nick to what i thought :)09:01
pooliehello09:01
RiddellI'm not asleep, I'm the only one in the mumble chatroom09:02
poolietouché09:02
vilahehe09:02
awilkinsI guess you boys will be back in 20 mins or so if you are having a stand-up09:06
* awilkins contemplates monkeypatching sockets09:06
jamawilkins: I know there was a python-dev discussion about how hard it is to override the socket interface for the http libs09:21
awilkinsjam, A common answer seems to be "PySocksify", which involves patching the whole "socket" implementation09:23
awilkinshttp://stackoverflow.com/questions/2317849/how-can-i-use-a-socks-4-5-proxy-with-urllib209:25
awilkinsDoes setting socket.socket affect everything, or just the module-local import of socket?09:26
bob2global09:27
maxbI'd suggest just using a LD_PRELOAD socksifier09:27
bob2yes09:27
bob2tsocks or socksify09:27
maxbtsocks is what I use09:27
maxbit has the very useful feature of conditionally socksifying based on destination address09:28
awilkinsI use tsocks also, but it's awkward to use it on things that start up with your session.09:38
awilkinsLike ubuntuone-client09:39
pooliejam:  oh, i guess in particular, reviewing udd mps too would be good09:52
pooliei have some alpha code that gives you a tun device that redirects into socks09:52
pooliei wonder where09:52
vilajelmer: looms push don't know about lossdy, 1 failure (well 3 times the same really)  http://paste.ubuntu.com/615680/09:53
pooliehttps://code.launchpad.net/~mbp/+junk/tunnel-forward09:53
jelmervila: I'll have a look - thanks09:54
vilajelmer: great, thanks to you, the hidden question was: will he look or should I ? :D Not urgent09:55
=== hunger_ is now known as hunger
jelmervila: :)09:56
vilaall: false alarm regarding pure python compat, it was just out-of-date extensions09:59
pooliemaybe in july we should try the sip conference system10:00
jelmerThat might be nice; mumble is still flaky here10:04
jelmerI'll be sure to boot into natty rather than oneiric for next weeks' standup10:04
pooliewow, oneiric already?10:11
poolieis it good?10:11
jelmerIt's pretty good, a lot of it is already GNOME3, and it's fairly stable usually10:13
poolieok; good night10:21
jelmerhave a good evening, talk to you later10:22
jamRiddell: I'm back around whenever you are10:39
jamjelmer: Do you have SIP set up already?10:39
jamwe could try it (I have it set up here, and I know poolie does)10:39
RiddellI've not used sip10:40
jamRiddell: I found it reasonably easy to set up ekiga, as we have instructions on the canonical wiki10:41
jamI used it for the sprint10:41
jamsince paying for 8hrs of phone time would have been bad :)10:41
jelmerjam: I don't have it set up yet, but I might as well have a look now if we're going to use it later10:43
jamjelmer: any chance you can kill jelmer_ ?10:43
jamanyway10:43
jamjelmer: I think poolie would like to switch, but I don't know any time frame10:43
jammumble tends to work better for large groups (IME)10:43
jambut still has stuff like poor echo cancelation10:43
jamactually, Skype still has the best echo cancelation of any programs I've used10:44
jelmerSkype has worked best for me too, both on Ubuntu and Android10:44
jelmerI find Mumble works reasonably well compared to most SIP apps on Ubuntu, but the Android app is still not quite there yet10:45
Riddellah, I need to ask sysadmin for a SIP account first10:46
Riddelljam: well shall we chat on mumble?10:47
jamRiddell: mumble's fine for me10:48
jamand yes, you have to email rt@ to get your voip account10:48
Riddelljam: you can't hear me?10:49
jamRiddell: I can't hear you now, it isn't turning your lips read10:49
jamred10:49
jamso it isn't getting your "activation" volume, or whatever10:49
Riddelljam: still no?10:50
Riddellthe icon goes red here10:50
jamstill nothing here10:51
jamRiddell: I still don't see your lips go red10:53
jamI can try relogging if it is maybe on my side. but you can hear me, right?10:53
Riddelljam: no I can't hear you10:53
jamrelogging now10:53
jamRiddell: can you still hear me?11:57
Riddelljam: nope11:57
jamRiddell: ok, I'll reconnect11:57
jamI can hear you11:57
jamRiddell: Did I go silent again?12:02
Riddellyes12:02
jam:'(12:02
jamRiddell: do you have another voice program we can try?12:03
Riddelljam: could try skype12:03
jamRiddell: see private message12:05
jelmerjam, vila, Riddell, poolie, spiv: UDD meeting in #ubuntu-meeting for those interested12:11
jamjelmer: are you sure it is this week? I thought this was the off-week12:11
jelmerjam: Yep, at least according to the wiki page12:12
jammgz: when you get this, I think we just need a live chat about: https://code.launchpad.net/~gz/bzr/lazy_hook_test_cleanup_785054/+merge/6158612:15
jamI don't think I can just review the patch12:15
sbarcteamhi guys.14:36
sbarcteamI have failed to commit into a folder I have write access to with bzr.14:36
sbarcteamthe folder is owned root:root, and I'm committing as another "regular" user.14:37
sbarcteamBUT14:37
sbarcteamThere are ACLs, and the user can create files/folders inside repository's folder with UNIX shell.14:37
sbarcteamIs it possible bzr assumes UNIX permission model and avoids trying operations on files/folders owned/permitted badly by "UNIX" convention ?14:37
sbarcteamI did dig the bzrlib code.,14:38
spivsbarcteam: IIRC bzr doesn't check first (in this scenario), it just attempts to create (trusting that the OS will return a permission error if it doesn't have permission, etc).14:39
spivsbarcteam: pastebin the error you get?14:39
sbarcteamthe specific operation bzr fails upon is this locking LockDir14:40
sbarcteamand it gives me some kind of file.14:40
sbarcteamdoes lock files creation require special kind of access list entry ?!14:40
spivPlease, paste the text of the actual error into http://paste.ubuntu.com/.  Perhaps run the command with -Derror to force bzr to give a traceback too.14:42
spivThat way we can tell which specific filesystem operation is failing.14:42
ScottKI'm having trouble fixing a mistaken tag.  It seems no matter what I do I get conflicting tags when I try to push the change.  Would someone point me to some documentation about how to handle this (I did what I thought bzr help tag was suggesting)?14:43
spivScottK: 'bzr tags -d $source' is presumably listing a different rev for that tag than 'bzr tags -d $dest'?14:44
spivScottK: either reapply the tag delete/rename/update directly to dest too, or just delete it in dest then push.14:45
ScottKspiv: Thanks.14:52
mgzjam: I'm around briefly, but out again shortly. I should be around all tomorrow though.15:31
jammgz: either way15:32
vilaspiv: eerk, you're around ! I think I fixed bug #788235 ;)15:32
ubot5Launchpad bug 788235 in Bazaar "blackbox.test_serve.TestBzrServe.test_bzr_serve_port_(readwrite|readonly) hangs on maverick " [High,Confirmed] https://launchpad.net/bugs/78823515:32
jamI'm gone the rest of the wek15:32
jamweek15:32
mgzokay, let's go over it quickly now15:33
mgzvila and I discussed it a little a few evenings ago, my real problem is I don't get how hooks are meant to work now15:34
jamthey aren't  (?) :)15:34
vilahehe15:34
jammgz: so is the issue you aren't sure if hook dicts should be completely empty?15:35
jamor whether we should be able to reset them, or what?15:35
mgzI'm not sure what work needs to be done to get the level of hook isolation tests expect15:35
mgzcurrently the old code iterates over known hook objects and fiddles with their attributes15:36
mgzand when lazy hooks were added, some (broken) code for emptying and refilling the new _lazy_hooks dict was added15:36
mgzbut when trying to make that code do what it appeared to be wanting to, I found 1) it made no difference in practice and 2) when I tried to test with a new hook point rather than a known one, isolation didn't work at all15:37
vila2) is because you didn't register your hook (not hook point)15:38
mgzI call install_lazy_hook / the other install method15:38
mgzwhat else needs doing?15:38
mgzanyway, apart from some ugliness in the tests, what I'm trying to verify should be pretty clear from the code15:39
vilathe misunderstandings are because we tend to call hooks what the code calls hook points (except for lazy_hook which tends to blurry the lines even more)15:39
vilamgz: have you tried registering your hook ?15:39
mgzI... don't know what that would look like15:39
vilaI take that as a no then ;)15:40
vilasomething like hooks.known_hooks.register_lazy(your_test_module, your_hook, your_hook_class)15:41
mgzokay, so how do I isolate *that* to the test...15:42
vilahehe15:42
vilawith a lot of effort ?15:43
jammgz: presumably you'll have 2 levels of TestCase, right?15:44
jamthe inner one which actually does some trivial thing, asserting it is isolated15:45
jamand the outer one as the bzrlib test case15:45
jamthe bzrlib case can register the hook point15:45
jamand the inner one then fiddles with registering a test-spceific callable15:45
jamthen when the outer one finishes running the inner one, it asserts that everything is cleaned up.15:46
mgzyup.15:46
mgzthe current tests have an inner case that installs and calls a hook15:46
vilaa hook point15:46
jammgz: why is it "_clear_hooks" and "_restoreHooks" one of those is misrepresented :)15:46
vilabut don't install the hook in known_hooks15:46
mgzinstalls a hook point and triggers a hook callback15:47
mgz...some name cleanup really would help15:47
jammgz: I use the terms HookPoint and callback15:47
mgzthen the outer case triggers the hook again, the theory being that the hook callback should then *not* be called15:47
jamI think the code is a bit confused as well.15:47
mgzanyway, I'd like this isolation code to just be test.overrideAttr(_mod_hooks, "_dict_where_all_hook_callbacks_live", {})15:49
mgzbut life isn't that simple.15:49
jammgz: so are your tests not failing? or failing too much?15:52
mgzyup, both.15:52
mgzthe lazy one using the lock hooks doesn't fail15:52
mgzand the new hook point that doesn't get into known_hooks fails by,15:53
mgznever triggering the callback for lazy installation15:53
mgzand always triggering the callback for eager installation (ie, doesn't get cleaned up)15:54
mgz...I think I have those two the right way round15:54
mgzso, "hooks not in known_hooks are broken" is a fine answer for those two15:54
mgz...would be nice if the code actually asserted that15:55
mgzanyway, I think I don't want to rewrite the hooks code, so may just delete the bogus tests and the redundant cleanup and see if anything else breaks15:59
mgzokay, I'm off.16:04
jammgz: have a good evening16:09
vilaargh, the new SSD arrived too late :-( The old one died in flames...16:33
maxbliteral flames?16:35
maxb:-)16:35
fullermdProbably.  Somebody sent it too many nasty emails, and it committed suicide.16:39
gouram i right that qbzr is more advanced than bzr-gtk and therefore recommended to be used withing explorer?16:56
gouri'm familiar with cli using freebsd (and before that linux), but would like to know to recommend right tool for (potential) contributors who are GUI-fans16:58
jelmergour: yeah, qbzr is definitely more advanced and better integrated into bzr-explorer16:59
gourjelmer: thank you17:00
=== beuno is now known as beuno-lunch
gourcool, it's possible to convert branch into colbranch :-)17:33
=== deryck is now known as deryck[lunch]
vilasigh, lots of lossage, all restored except for babune which I will need to restore from a  3 weeks old backup (of course) and some bits I managed to get back from the ashes17:56
vilanow to turn the bits into files...17:57
fullermdSo, that counts as a test failure, right?   8-}18:00
vilahehe, thanks, I will end on that, couldn't have dream better ending :)18:00
vilabye folks, have fun !18:00
fullermdBetter hope it's transient, and not repeatable   :p18:00
=== sidnei_ is now known as sidnei
=== beuno-lunch is now known as beuno
=== deryck[lunch] is now known as deryck
=== zyga is now known as zyga-afk
=== cbz_ is now known as cbz
=== Ursinha is now known as Ursinha-afk
=== yofel_ is now known as yofel
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-nom
=== Ursinha-nom is now known as Ursinha
EM03how is performance now of the system?22:54
lifelessgood22:55
EM03i remember it used to be not to good lifeless22:56
lifelessEM03: sure, it used to be slowed23:04
pooliehi all23:34

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!