/srv/irclogs.ubuntu.com/2012/06/01/#launchpad-dev.txt

=== cinerama_ is now known as cinerama
wgrantlifeless: Why's the bugsupervisor not -committers?00:15
lifelesswgrant: launchpad-security has an external address, as its also the private bug contact00:16
lifelesswgrant: committer access is sufficient to know about security bugs, even if you don't get notified00:16
lifelesswgrant: (been like this for ages, not a recent change)00:17
wgrantlifeless: wut00:17
wgrantlifeless: Bugsupervisor != security00:17
wgrantBugsupervisor also != notifications unless the project is misconfigured.00:18
lifelessyes, I know that too; short story - I'm too lazy to reconfigure 30 projects bugsupervisors for no functional gain.00:18
lifeless*we* don't need separate teams for this, so using separate teams would add complexity.00:18
wgrantRight00:18
wgrantLaunchpad Security shouldn't exist00:19
wgrantIt only exists because notifications suck00:19
wgrantIts rationale for existence should disappear shortlyu.00:19
lifelessindeed00:19
lifelessbut today, going and changing a bunch of stuff - pointless pain00:20
lifelesswe can probably just merge launchpad-security into canonical-launchpad-committers in a months time00:20
wgrantYeah00:20
lifelessor reconfigure 30 odd projects.00:20
lifelessGive you a hint which route *I* would take00:20
wgrantAPI :)00:21
lifelessmerge is massively easier ;)00:21
wgrantThat's a bug.00:21
lifelessyou'll need to expand on that rather massively00:21
wgrantThat project setup is so awful has to be considered a bug.00:21
lifelessindeed00:22
lifelessbut changing one thing easier than changing 30, is natural, not a bug00:22
lifelessdoing a cascading change from -project might make sense00:22
wgrantIt involves a project group.00:22
lifelessif project groups were to get fleshed out in any direction00:22
wgrantTherefore it is a fundamentally nonsensical operation.00:23
lifelesshah, troll00:23
lifelessLUNCHTIME00:23
=== pjdc_ is now known as pjdc
wgrantlifeless: Do we want to close bug #982938, or leave it open for a better fix later?00:34
lifelessis that the optimisation we did yestarday00:35
wgrantYes00:35
lifelessclose it00:35
lifelesswe're now at what, 36 seconds latency on average00:35
wgrantRoughly.00:35
lifelessthe bug will get noisy if we talk about killing that there.00:35
wgrantThe HIB has caused load so we're seeing some minor issues occasionally.00:35
wgrantYeah, true.00:35
lifelessYou may want to file another bug saying that it takes ~36seconds on average00:35
wgrantwallyworld_: The new JS on +filebug is marvellous.00:35
lifelessso ca don't need to.00:36
lifelessIt would be a kindness.00:36
wallyworld_wgrant: yeah. and it will be better soon when i also enhance the info type buttons00:36
wgrantwallyworld_: Did you tweak the markup for the tag edit icon?00:40
wgrantwallyworld_: It's now immediately adjacent to the final tag, rather than having a small gap.00:40
wgrantI'm pretty sure it wasn't like that this morning.00:40
wallyworld_wgrant: which page?00:40
wgranthttps://bugs.launchpad.net/launchpad/+bug/82797300:40
_mup_Bug #827973: Unify custom-upload filename parsing and handling <qa-untestable> <tech-debt> <Launchpad itself:Fix Committed by cjwatson> < https://launchpad.net/bugs/827973 >00:40
wgrantOr any bug00:40
wgrantNote "tech-debt(!)" rather than "tech-debt (!)"00:41
wallyworld_wgrant: ah, possibly a small regression, removing a nbsp. i'll fix00:41
wgrantYeah, that's what I suspected. Thanks!00:41
wallyworld_thnks for noticing00:41
lifelessnbsp rather than a style?00:41
wgrantFound an old tab -- there was indeed a space there before.00:41
wallyworld_lifeless: the current meme is to use nbsp00:41
wallyworld_but style is better of course00:42
wallyworld_legacy markup from years ago i suspect00:42
lifelessperhaps you can fix using a style then ? :)00:42
wallyworld_there's a lot of places00:42
wallyworld_and a lot of disclosure stuff todo, but we can do as a slack time effort perhaps00:43
StevenKsteven@undermined:~/launchpad/lp-branches/branch-information_type-factory% zcat ~/Desktop/branch-information_type-factory-r15326.subunit.gz | testr load >/dev/null01:29
StevenKString or Integer object expected for key, unicode found01:29
* StevenK stabs testr for being crap.01:30
lifelessStevenK: yeah, so thats fixed, add the ppa01:46
lifelessStevenK: and blame python for breaking API in 2.7.01:46
StevenKlifeless: Which ppa?01:49
lifelesstesting cabal01:54
lifelessor yellow01:54
StevenKmwhudson: Is lp/codehosting/inmemory.py only testing fakes?02:22
mwhudsonStevenK: yes02:22
StevenKExcellent02:22
StevenKMaybe it should move to lp/codehosting/tests then :-)02:23
mwhudsonyeah probably02:23
wgranttesting02:23
wgrantnormally02:23
wgrantNot tests02:23
mwhudsonit implements a very restricted kind of privacy for branches iirc...02:23
bigjoolswhat was Python thinking when it decided that it was a good idea to emulate the C ?02:35
bigjoolsarse02:35
bigjoolswhat was Python thinking when it decided that it was a good idea to emulate the C ?: operator02:35
mwhudsoni have no idea02:35
mwhudsoni raised my hang to vote for the "this is a bad idea" option during a guido keynote02:36
mwhudsonmore than once, i think...02:36
lifelessbigjools: they were thinking 'how much worse can it possibly be'?02:37
bigjoolsAnd while I am ranting, Django is making me want to be violent with inanimate objects.02:41
lifelesshowso?02:42
bigjoolsbecause it's enchanted02:43
StevenKs/enchanted/cursed/02:43
bigjoolsthere's loads of magic you need to know about02:43
bigjoolsI prefer explicit02:44
* wallyworld_ likes the ?: operator 02:45
wallyworld_nice and compact02:46
lifelesswallyworld_: have you *seen* the python version ?02:46
wallyworld_yes, i use it and i don't like it but i like the concept02:46
wallyworld_it's arse about02:46
lifelesswallyworld_: trueclause if condition else falseclause02:46
bigjoolseschew obfuscation02:46
wallyworld_yes, i know02:46
lifelesswallyworld_: its insane02:46
wallyworld_i prefer the C/java variant02:46
lifelesswallyworld_: a major feature of condition ? trueclause : falseclause is its brevity ;)02:47
wallyworld_i though the original comment was directed at not liking the ?: operator at all02:47
lifelesspython's version totally fails02:47
wallyworld_yes02:47
wallyworld_seems like they wanted the idea but *had* to do it differentl out of princioal02:48
bigjools?: is fairly evil too, it encourages unreadable code except if you have the most basic needs02:48
bigjoolsit was summarily banned in one of my previous jobs02:49
wallyworld_hmm. i like it02:50
wallyworld_any construct can be abused02:50
StevenKwallyworld_: But you like Java ...02:51
wgrantwallyworld_: There is some speculation that it was done awkwardly because Guido didn't really want to do it. So he made it terrible so people would shut up but not use it.02:51
wallyworld_wgrant: that i would believe02:51
wallyworld_StevenK: sigh02:51
* wallyworld_ off for a bit - kid needs to go to orthodontist $$$$$$$$ :-(02:52
StevenKwallyworld_: Are you back?04:49
wallyworld_StevenK: yep04:49
StevenKwallyworld_: How was the orthodontist, aside from hellishly expensive?04:49
wallyworld_StevenK: no money has exchanged hands yet. we need to make a decision. it we be in the order of $7000 if we go ahead :-(04:50
wallyworld_i can't see why it costs so muh04:50
wallyworld_much04:50
StevenKDoes private health care handle any of it?04:50
wgrantBecause they can :)04:50
wallyworld_private health will cover some but not much, maybe 20%. have t check04:51
StevenKwallyworld_: Ouch, that's still ~ $550004:52
StevenKwallyworld_: So you might need to sell that shiny new phone and a kidney?04:52
wallyworld_yeah. and it may be less than 20%. i just made that up. but it won't be more than that afaik04:52
StevenKwallyworld_: Medibank Private will cover up to $3,000 depending on your extras cover04:59
StevenKBut that's a lifetime limit04:59
StevenKNot sure how it works for family cover05:00
wallyworld_StevenK: i'm with ghmba. need to look into it05:00
wallyworld_extras cover is soooo expensive for the top level05:00
StevenKs/ for the top level//05:02
* StevenK stabs the branch scanner05:02
wallyworld_StevenK: looking in a minute, justing finishing a mp05:14
StevenKwallyworld_: Thanks, I was waiting for the branch to actually scan.05:15
* StevenK prepares the lynch mob05:15
lifelessEOW, have a good weekend05:19
wgrantNight lifeless.05:20
wallyworld_StevenK: i think "If this branch is public " can be removed from the comment05:22
wallyworld_s/can/should perhaps05:22
StevenKwallyworld_: If this branch is stacked on a private branch ...05:23
wallyworld_StevenK: yes, i think so05:23
StevenKwallyworld_: Thanks for the approve, I've pushed up the comment change.05:26
wallyworld_np05:26
StevenKwallyworld_: How are you enjoying the new phone?05:41
wallyworld_StevenK: shared shitless of scratching it05:41
StevenKDon't be05:42
wallyworld_need to buy a case etc05:42
wallyworld_it's very, very nice though05:42
wallyworld_well made, fast, excellent screen05:42
StevenKwallyworld_: www.youtube.com/watch?v=kmqe9G5TIOg05:42
wallyworld_also need to root it05:42
bigjoolswallyworld_: pervert05:42
StevenKwallyworld_: That's for the Galaxy S, but the S2 and S3 have the same glass05:43
StevenKbigjools: Says the guy who wanted to have sex with his phone05:43
wallyworld_StevenK: bigjools says his nexus screen is quite badly scratched05:43
StevenKStrange, my S2 has no scratches05:43
wallyworld_StevenK: S3 gas Gorilla Glass 2 afaik05:43
bigjoolsscratched mine when I dropped it when it when flying at about 30km/h on a bike trail05:44
wallyworld_perhaps nexus didn't have gg05:44
wallyworld_i seem to recall that from somewhere05:44
StevenKwallyworld_: Watch the video and try not to cringe05:44
wallyworld_i just did :-)05:44
bigjoolsimpressive05:44
wallyworld_i'm not going to "try this at home" though05:45
StevenKThere was a better one05:45
wallyworld_although i did vut my sim card with a pair of scissors to make it into a micro sim :-)05:45
wallyworld_cut05:45
StevenKwallyworld_: http://www.youtube.com/watch?v=xaNWuGtAaxM was what I was thinking05:48
wallyworld_StevenK: those crazy koreans05:49
wallyworld_the knife did leave some scratches05:50
bigjoolswallyworld_: now you're in the real world with a smartphone, I can start recommending apps05:50
StevenKYeah, but are you going to try that? :-)05:50
StevenKCut the Rope!05:50
bigjoolsFacebook!  lol05:51
wallyworld_i've got the Whip already05:51
StevenKSoundhound05:51
wallyworld_nooooo. none of that social networking rubbish05:51
bigjoolsWhere's My Water is great05:51
wallyworld_got soundhound and shazam already, and the night sky one05:51
bigjoolsat least install G+?05:51
wallyworld_nope05:51
wgrantHahahah05:51
bigjoolsgoogle sky map?05:51
wallyworld_yep05:51
bigjoolsGPS Status05:51
StevenKbigjools: Meh. Where's My Water did not do it for me like Cut the Rope did05:51
bigjoolsjuice defender05:52
* wallyworld_ detests social networking05:52
StevenKOhh, ++ for juice defender05:52
bigjoolsStevenK: did it not cut the mustard? :)05:52
bigjoolswallyworld_: luddite05:52
bigjoolsAny.DO05:52
StevenKWind Up Knight is pretty awesome05:52
bigjoolsCardio Trainer05:52
wallyworld_if i never see another tweet or facebook update along the lines of "doing a big dump this morning" it will be too soon05:52
bigjoolsStevenK: I uninstalled that as it wanted micro payments05:52
wallyworld_bigjools: i love technology so i'm no luddite05:53
StevenKbigjools: I only paid for Book II, Book III and IV I unlocked by playing05:53
bigjoolsSprinkle05:53
wallyworld_well, i know what i'll be doing this weekend05:53
bigjoolsWhatsApp05:53
bigjoolsWifi Analyzer05:53
wallyworld_StevenK: bigjools: the other thing is - i need to get stuff off my ubuntu laptop and ubuntu doesn't like the galaxy phones05:54
bigjoolsAuthenticator for the 2FA stuff05:54
wallyworld_i have used bluetooth but that's slow as05:54
wallyworld_i really must look into a samba set up or something05:54
bigjoolswallyworld_: really? why?  My GN is fine05:54
wallyworld_bigjools: it rcognises the phone but wont mount it05:55
stubWe are moving away from big dumps to point in time recovery.05:55
bigjoolsData Counter05:55
wallyworld_lol05:55
bigjoolshaha05:55
StevenKwallyworld_: Turn on USB debugging05:55
bigjoolswallyworld_: it uses MTP, rather than USB Mass Storage :/05:55
wallyworld_StevenK: will that make it work?05:55
bigjoolslol05:55
wallyworld_so ubunti doesn't support MTP?05:56
StevenKwallyworld_: Then it will prompt you when you plug in the cable and you can say mount05:56
bigjoolsit does05:56
bigjoolsjust makes it harder IMO05:56
bigjoolsironically :/05:56
wallyworld_i'll try getting it sorted out later tonight05:57
bigjoolsat least it's plug and go for 3G data05:57
wallyworld_i did install an ftp app and ftped some stuff across also05:57
wallyworld_i'm scared of rooting it cause some people have said doing that can fuck the security chip used for wireless payments05:57
bigjoolsyeah it'll stop working05:58
wgrantIf wireless payment security depends on a DRMed handset, their wireless payment system has some pretty terrible problems.05:58
bigjoolswon't fuck it, just depends on boot loader sig or something05:58
bigjoolssince when have people implementing DRM been rational?05:58
wallyworld_i'll wait till people figure stuff out properly, bt i do want to root it so i cab block ads properly and install a full backup app etc05:59
bigjoolsI have a backup app that doesn't need root05:59
bigjoolsMyBackup05:59
bigjoolspay-for05:59
wallyworld_sure, but ones which do "everything" do05:59
wallyworld_or so i thought05:59
bigjoolsmine does everything05:59
bigjoolsI have even used it in anger :)05:59
wallyworld_hmmm. will have to take another look then. but i'm sure i've seen them and they say "well we can get most stuff but if you want app settings and aps or whatever, you need root"06:00
StevenKTitanium06:00
bigjoolswell, that's bollocks06:00
wallyworld_i tried one on belinda's S2 and it couldn't do everything without root06:01
wallyworld_can recall the details06:01
wallyworld_can't06:01
bigjoolsget MyBackup06:01
wallyworld_wil do, or titanium06:01
bigjoolsI even have it set to auto backup in the middle of every night06:01
wallyworld_but aren't you using your porn then?06:01
bigjoolsmy phone has a backuip schedule.... ffs06:02
=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
wgrantwallyworld_: Won't that a.sprite margin introduce some oddness with eg. person links?07:02
wallyworld_wgrant: they use span i'm pretty sure - i checked that i think07:02
wallyworld_that's why is used a.sprite and not .sprite07:02
wgrantNope, person and bug links are straight a.sprites.07:03
wgrantWe want the margin only on a special class which trails the thing we're editing, I guess.07:03
wgrantI don't know if that class exists :/07:03
wallyworld_hmmm. yes you are right. i can't recall where i found spans now, but i did see tham07:04
wgrantYou may be thinking of team links, where the custom icon is an img.07:04
wgrantThey probably use a span.07:04
wallyworld_could be07:07
wallyworld_i wonder if we can add a class "nopadding" or something07:07
wallyworld_wgrant: adding a nopadding class and new style to exclde the padding seems to work fine07:13
wgrantwallyworld_: That seems pretty wrong.07:19
wallyworld_or i could go the other way07:19
wgrantwallyworld_: Seems more like we want an actionicon class or something like that.07:19
wallyworld_a padding style for sprite icons classes07:20
wgrantBecause the thing with the special case is detached action icons.07:20
wallyworld_i can just enumerate the srpite classes in a css selector07:20
wallyworld_and introduce padding for those07:20
wgrantWon't work07:20
wgrantWe have some edit icons with text in the <a>07:21
wallyworld_why does that affect anything?07:21
adeuringgood morning07:24
wgrantwallyworld_: Not all edit sprites are icons that trail the thing they're editing.07:30
wallyworld_wgrant: sure, but they still need a little bit of left padding07:30
wgrantwallyworld_: The trait that makes them require the margin is that they trail the thing they're editing.07:30
wgrantNot that they're an edit sprite.07:30
wallyworld_in the cases i've seen, a little bit of left padding is fine07:31
wgrantPerhaps, but we should put padding where we want it.07:32
wgrantNot where it accidentally appears and doesn't look terrible.07:32
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring | Firefighting: - | Critical bugs: 3.47*10^2
jmloh btw11:48
jmlI did a bunch of ec2 test runs yesterday and got no email11:48
jmlfor all I know, the instances are still running.11:48
=== bac changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring,bac | Firefighting: - | Critical bugs: 3.47*10^2
bachi adeuring12:12
adeuringmorning bac12:12
bacadeuring: done many reviews today?12:12
adeuringbac: just two12:12
baccool.  i'll take colin's in a bit, unless you want to12:13
sinzuiczajkowski, a "timeout" is not an "oops". Lots of problems show up in oops reports. We use the "oops" tags for exceptions. Other critical shown in the oops reports are "404", "403", and "timeout"13:05
flacostejcsackett, sinzui: nice work on the new privacy banner :-)13:17
sinzuiflacoste, I will convey that to the team. We expect to show information types on all Lp next week.13:18
flacostesinzui: it works very smoothly on the filebug screen!13:19
sinzuiflacoste, It will be very nice when we complete the field updates so that there is one consistent way of showing the information13:20
czajkowskisinzui: ok thanks.13:22
sinzuiczajkowski, maybe we should replace the "oops" tags with "exception"13:23
wallyworld_sinzui: "What sprite is not an action?" Answer - person links <a class="sprite person">Fred</a>13:25
czajkowskisinzui: I don't know tbh, am only doing this while diogo is away so rather new to me to be honest and the tags still baffling me13:25
czajkowski*baffle13:25
sinzuiwallyworld_, that is an action since I can "activate" it. maybe you mean js-action?13:26
wallyworld_sinzui: and also product links etc. those foiled my plans to add left margin to all a.sprite elements13:26
wallyworld_i mean the little yellow/red/gree/blue icons to the right of some text13:27
wallyworld_which initiate a popup or add or help overlay etc13:27
jml(repeat) I did a bunch of ec2 test runs yesterday and got no email13:32
jmlis this a known issue?13:32
wallyworld_jml: sometimes that happens if there are too many failures and the attachment becomes too large. well, that's been the case for me on occasion13:33
jmlwallyworld_: hmm. thanks. if so, I'm in a poor situation.13:36
jmlbecause I'll never know what's wrong with my code.13:36
wallyworld_jml: you have to run the test run with the console left open13:36
wallyworld_so you csan see the errors and/or access the log13:36
jmlon that machine that I keep up all the time13:37
wallyworld_yeah, that's the one :-)13:37
jmlnow where did I put it?13:37
wallyworld_jml: you can also log on via a web browser13:37
wallyworld_even after the console session is closed, ie later on13:38
wallyworld_it logs the web address to use when ec2 starts13:38
wallyworld_from there, you can load the log into the browser13:38
wallyworld_so long as you do it before everything terminates at the end of the run13:38
jmlright.13:39
jmlinstances are down atm.13:40
jmlso that data is irrevocably lost.13:40
wallyworld_:-(13:40
jmlputting me another day behind :\13:40
wallyworld_but i was just guess when i suggested the reason for not getting email13:41
wallyworld_it's been the case for me but you may well have a different issue13:41
wgrantjml: It may also be that your bzr mail config is unsuitable.13:44
jmlwgrant: that's very likely.13:45
jmlwgrant: although I would have guessed that ec2 would have warned me.13:45
jmlit does a *lot* of verification13:45
wgrantjml: Heh13:45
wgrantjml: email must be @canonical.com, smtp_{server,username,password} must be normal Canonical ones.13:46
wgrant(well, it could probably also be a personal one, but the Canonical one is known to work :))13:46
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: bac | Firefighting: - | Critical bugs: 3.47*10^2
cjwatsonbac: did you get a chance to review my branch?  you said something earlier that you were going to18:00
baccjwatson: sorry i got tied up with something else.  i can take a break and look at it now.18:01
cjwatsonnp, just wondering18:02
baccjwatson: it looks good.  i'll approve it in a bit.  thanks!18:10
cjwatsonawesome, thanks18:11
cjwatsonNow if only I can make LFA webservice serialisation bend to my will ...18:12
cjwatsonI wonder if exported(List(value_type=Bytes())) just doesn't work18:15
=== bac changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: 3.47*10^2
Beretanyone happen to know if searchTasks(search_text=bugidnumber) is reliable?20:06
abentleyBeret, I suggest doing bugs[bugidnumber] instead.20:09
Beretok, thanks20:09
sinzuiThe rain is falling hard. I expect to fall off the net in a few minutes20:29
cjwatsonAny lazr.restful experts about?  I'm having a hard time representing something on the webservice20:41
cjwatsonI have an object one of whose properties is a list of LibraryFileAliases20:41
cjwatsonI'd like to expose this; the most elegant representation seems to be a list of Bytes, so that they become HostedFile objects on the client end20:42
cjwatsonHowever, this doesn't seem to work.  Firstly, the individual Bytes objects don't get sensible URLs, and I'm not sure how to get them into a useful tree (short of going off and defining extra collection objects, which I was hoping to avoid).  Secondly, even if I hardcode a URL suffix with Bytes(__name__="foo") (which obviously won't work properly for >1 element, but as a test), the URL in the JSON representation still ...20:44
cjwatson... doesn't seem to get deserialised properly.20:44
cjwatsonAm I just fundamentally out of luck with this approach?  Do I need to punt and return a list of URLs instead?20:44
cjwatsonOr maybe a collection of little PackageUploadFile objects so that I don't have to anger wgrant by exporting the existing PackageUploadSource etc. interfaces (oh look, I've made the problem concrete)20:53
lifelesscjwatson: so, LFAs and the API are horrible IMO21:00
lifelesscjwatson: I have no idea what will work well21:01
lifelesscjwatson: note that the api client has to talk to LP for each one anyway, if they are private, to get a time limited token21:01
lifelesscjwatson: and we really don't want to generate TLTs for things that are not being accessed21:01
cjwatsonwould URLs be better?  they seem less convenient from the client's point of view21:27
cjwatsonI dunno, I guess you can take the URL and stream the contents of the resource it points to more conveniently than you can get HostedFile to stream21:28
cjwatsonI have trouble caring about private uploads for this beyond making sure I don't inadvertently expose anything that should be private; I'm mostly trying to get the Ubuntu upload queues more usable and none of the uploads there will be private21:29
cjwatsonI was hoping that if bug 1007195 were fixed then there might be some definite value in using HostedFiles21:31
_mup_Bug #1007195: Librarian-backed HostedFile objects do not expose SHA-1 hash <soyuz-build> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1007195 >21:31
lifelessif you know that all the things this api deals with will be public, urls would be fine; TBH I'd need to page in some horrible stuff to even advise properly here21:36
lifelessand its saturday, and both girls are sick, so I'm not really here enough to do that21:37
cjwatsonheh, mind you it's a devel API with one expected client of any interest21:41
cjwatsonwell, one set of clients under the same maintenance21:42
cjwatsonso I could just say screw it, do URLs for now, and if we need something more elaborate later, do that21:42
cjwatsonless LoC in LP that way too :)21:42
cjwatsoner, fewer, whatever21:42
lifelesssure21:46
cjwatsonThanks for the advice21:48
cjwatsonHope the girls are better soon21:49
cjwatsonMy little ones are away so I'm hacking late ;-)21:49
lifelesshmm, jaunty->lucid on my old firewall, by hand. Should be fun.22:08
cjwatsonupgrading mawson for some QA (though I might not actually get to said QA before tomorrow morning, but I have to leave on time ...)23:53

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