[00:00:07] works fine with python Dellie.py directly [00:01:50] change import wikipedia to [00:02:12] from pywikibot import wikipedia [00:03:59] Betacommand: I already have "import pywikibot" and it works with "python", but not "jstart" - will this fix it? [00:04:36] what is the exact command that is used? [00:06:26] $ jstart -once -continuous python Dellie.py [00:06:45] add -cwd [00:07:15] Betacommand: is it documented? [00:07:23] yeah [00:07:40] it's not in "man jstart" or jsub [00:09:18] i forget where its documented but it stands for change working directory to current [00:10:32] did that fix it? [00:11:11] nope, same error [00:11:29] :S [00:11:36] anyway, need to go now [03:50:14] mutante: The Germans want to remove timestamps from revisions. [03:50:16] FWIW. [03:52:31] http://tools.wmflabs.org/tsreports/ [03:52:47] > Sorry, tsreports is down. This is probably transient, and tsreports will be up in a minute or so. If problems persist, please contact https://nl.wikipedia.org/wiki/Gebruiker:Valhallasw ! [03:52:53] (sad face) [03:58:20] Nemo_bis: I believe the Bugzilla DB replication bug is open again. [04:07:03] So much scrollback in here. [04:07:13] I don't want to move all my shit from the Toolserver. :-( [04:10:02] Nemo_bis: https://bugzilla.wikimedia.org/show_bug.cgi?id=28339 [04:40:44] Gloria: It's not "The Germans", it's <200 users, mostly from dewiki. That wouldn't even pass for a tiny minority of dewiki users alone. And I would gamble a lot that most of the people who supported that RfC-ish thing do not actually comprehend the issue or the effect of the request beyond a kneejerk to "OMG people are profiling editors! Bad!" [04:41:44] Coren: Sorry, ze Germans. [04:41:44] Better? :-) [04:41:45] Also they brandy about the EU privacy directive as though it applied to information that is already made public by the users themselves. It doesn't. [04:42:07] I agree with you. [04:42:56] On the general issue and on the EU privacy directive. [04:42:56] Daniel and Jeremy were discussing funky timestamps on some wiki. [04:42:56] I was just noting that (some of) ze Germans want to remove timestamps altogether. [04:42:56] Nope. Better is, "A few users, most of them happening to be German." :-) [04:44:09] I'm not sure ~200 is a few. [04:44:09] The RFC had significant participation, for better or worse. [04:44:09] Personally, I find this clamour for privacy downright hilarious. I stayed a few months in Düsseldorf, and what impressed me most is neighbors asking you what you have to hide because you keep your shades down all day. :-) [04:44:30] Perhaps not when you compare to all users or even all active users, but that's the case with any discussion anywhere. [04:44:54] I find the trolling ("deep user inspector") amusing. [04:44:54] It seems like something I would do. [04:45:40] Doesn't change anything. An RFC with 2000 people in support of changing the license to -NC would also be moot. Transparency of editing is one of the /basis/ of how the projects work. It's a non-started. [04:45:40] non-starter* [04:46:24] Sure. [04:46:42] Though transparency of editing is a vague phrase. [04:46:42] We purge IP data after a certain time period and don't generally expose it for users. [04:46:58] That's not transparent. [04:46:59] We also allow user renames. [04:47:08] Which can go against transparency. [04:47:27] We don't even expose a user's own data to themselves (yet!). [04:47:35] I'm hoping to fix that (allowing self-CU). [04:47:57] Gloria: Well yeah, /because/ we don't expose it to users. Some of the data is considered more private than other. But a wiki works because there is an association between identity (or pseudonimity) and edit history. It's basic accountability. [04:48:15] Preach, sister, preach. [04:48:44] However, when several hundred users are concerned, we have to find a way to ... address that. [04:48:44] Tomasz's proposal wasn't bad. [04:48:53] Though the "standing in for Erik" bit made me wtf. [04:49:11] I don't know how I feel about self-CU. One the one hand, it makes some sense; but on the other I don't feel all that hot about allowing people to test what proxies hides their origin best and how to avoid being detected when socking. :-) [04:49:33] Erik is on vacation. Tomasz was the designated mouthpiece. :-) [04:50:29] https://bugzilla.wikimedia.org/show_bug.cgi?id=27242 is the CU bug, BTW. [04:50:34] In case you're interested. [04:50:43] I kind of am. [04:50:59] Given that Erik is a robot, I assume "on vacation" means that he's undergoing routine maintenance. ;D [04:51:07] A tool being strongly objected to by the community could always be shown the door in practice. But that's a nuclear option I would be hesitant to invoke without /overwhelming/ concensus. [04:51:36] Well, there's showing it the door and there's (forcibly) modifying it. [04:51:59] Thought the two are probably linked. Richardsimona seemed pretty intent to force the issue. [04:52:16] I would /never/ do that. I'd disable, with instructions on what changes would be necessary to make it acceptable. [04:52:35] As I did already a couple times about resource hogs. [04:52:43] Hmm, right. But that's an implementation detail. [04:53:10] I was saying that there's a difference between saying "you can't host that here" vs. "you can't host that here as-is." [04:53:13] Or something. [04:54:00] Gloria: is the assignment to Emufarmers still relevant on that bug? [04:54:17] Ricordisamoa * [04:54:37] greg-g: Dunno. He had some code. [04:55:07] greg-g: Like he had a test wiki with Special:CheckUserSelf working. [04:55:11] I'll poke the bug, though. [04:55:24] Oh, I assigned it. [04:55:57] Set it back to wikibugs, thanks. [04:57:10] A self checkuser would be delicate, and definitely can't use the normal CU interface. That one leaks information about other users. [05:01:31] Gloria: yeah, didn't know he had code, was that linked from the bug? [05:01:43] Nah, he showed me privately. [05:01:54] gotcha [05:02:17] Coren: I think the best implementation would be a separate Special page. [05:02:18] I like it, fwiw, but I guess I missed that RfC meeting [05:02:31] Tim didn't like it. [05:02:40] And there seem to be others who want to kill it. [05:02:44] yeah, read (about half) of the log [05:05:51] And then there was a more recent talk page section. [05:06:10] I'm more reluctant than others to kill RFCs, I think. [05:13:36] Personally, I'm lukewarm about the idea. Like I said, I agree in theory with the principle behind the request but I would expect most of the people who'd have an actual use for the data would have malice aforethought. Joe Random would be satisfied by "in the past N days, we have recorded X edits by your accounts from the following $geolocations[]" [05:27:04] Coren: Joe Random would, yes. But we're talking about an audience of Wikimedians. ;-) [05:27:07] They love transparency. [05:27:28] Given the German uprising, I think getting self-CU through will be easier. [05:27:38] I used "uprising" there for you. ;-) [06:19:09] hi [06:19:42] Is there one [06:20:12] I want to help [06:35:41] is anyone up and about [06:36:05] could you tell me the longest non-indef block currently enacted on en.wikipedia? [09:10:41] Is there something in wmflabs terms of use that discourages ignoring user feedback? Appears there are some tools users don't like, but developer deliberately ignores their frustration and refuses to listen. [09:11:06] About 119 users whose feedback had been ignored. [09:44:16] gry: Yes, everyone is watching the privacy policy discussion. [09:55:40] Gloria: :) I mean that I would not want more devs like that to host their tools here. [09:56:07] If they persistently ignore user feedback is it an unhealthy environment in my view. [09:56:27] gry: People are free to make and use their own tools. [09:56:40] And fork the code. [09:56:46] If you don't like his tool, don't link to it? [09:56:51] It's obviously useful. [09:57:29] yeah, I understand it being opt-in is silly. Just it being opt-out might seem polite if many people want it. [09:58:42] and I would see some merit in er, encouraging healthy development environment. [10:12:20] Does anyone know if there's a policy about Google Analytics on Labs tools? [10:12:43] https://tools.wmflabs.org/ricordisamoa/dui/ loads a resource from GitHub. [10:40:10] Gloria: no, there isn't [10:41:09] the draft policy doesn't disallow google analytics even on Wikimedia projects after all :) [10:41:22] https://meta.wikimedia.org/w/index.php?title=Talk:Privacy_policy&diff=6809856&oldid=6809060 [11:19:20] I don't mind the tool giving so much info together, but I do mind developers who ignore users a fair bit [12:24:28] Coren: Anything happening on that service user groups or should I file a full bug request? [14:15:41] . [15:41:16] jarry1250: Sorry, with the holidays there was a lot of user requests I had to take care of in limited time. I'll try to do that deploy today. [15:45:36] Nemo_bis: Actually, that's not quite right. Any tool that redirects or has the browser fetch resources from a third party need to (a) explain that it does and (b) not do it before the user has been notified and been given an opportunity to back off. [15:47:25] I just answered to what I thought was the question [15:48:48] funny, "privacy policy" is a red link on http://tools.wmflabs.org/ [15:49:18] Nemo_bis: Well, it hasn't been written yet since it depends on the global one. [15:49:30] Nemo_bis: But the TOU are clear about it. [15:50:22] depends? anyway, quite weird [15:51:47] I don't see anything like that on the TOU [15:57:08] Nemo_bis: 6. Not share any Private Information outside of your Labs Project; and [16:01:12] Coren: that sentence is preceded by "If you do collect any Private Information", so if one doesn't collect but only let someone else collect it doesn't apply [16:03:26] on a less legalistic and more concretely useful note, it would be productive to have some suggestion at https://wikitech.wikimedia.org/wiki/Nova_Resource_Talk:Tools/Help#Hosted_jQuery_etc. [16:03:31] That's kinda a good point; it does obscure the intent. I'll talk with Luis about clarifying this. [16:12:25] Nemo_bis: Just commented there. [18:36:24] (03PS1) 10Tim Landscheidt: Unreviewed changes to rmtool [labs/toollabs] - 10https://gerrit.wikimedia.org/r/104397 [18:38:57] (03CR) 10Tim Landscheidt: "This is a patch that was hidden in changeset #66294. Petan, are these still things you want to have changed?" [labs/toollabs] - 10https://gerrit.wikimedia.org/r/104397 (owner: 10Tim Landscheidt) [20:51:28] Quick newbie labsdb question: why do I get Access denied for user 'p50380g50970'@'%' to database 'commonswiki_p' doing this: [20:51:49] connection = MySQLdb.connect(host="commonswiki.labsdb", db="commonswiki_p", read_default_file="~/replica.my.cnf" ) [20:51:55] but it works doing this: [20:52:07] mysql --defaults-file=$HOME/replica.my.cnf -h commonswiki.labsdb commonswiki_p [20:52:20] ??!?! [20:53:12] never nimd [20:53:15] mind [20:53:19] D'uh! [20:54:54] actually do mind [20:55:08] that line is exactly what throws the error :-( [20:56:41] dschwen: I don't know that the library you use actually expands '~'. Does it? [20:57:22] hm, hold on [20:57:25] It's a shell thing, like glob expansion of $FOO; it's /possible/ that your library understands and expands it but I doubt that. [20:57:38] s/of/or/ [20:58:12] since echoes the correct username (which it can only know from the replica.my.cnf) I guess the ~ part works [20:58:30] amirite? [20:59:16] the ~ is also used in the docs of mysql python (http://mysql-python.sourceforge.net/MySQLdb.html) [20:59:37] je suis confusee! [21:12:38] dschwen: I think mysql-python does understand it, yes [21:12:48] let me give it a try... [21:13:53] dschwen: your line works for me... [21:14:33] and I can also get data from the databse [21:15:33] wtf [21:15:45] well, thank sfor trying [21:16:16] Coren, I think you should take a look at it... [21:17:16] Need moar info. Like a stacktrace, or the result of the actual DB interaction. [21:17:35] Especially if it works when done "by hand" [21:18:02] oooooooohhh [21:18:09] nargh [21:18:15] ok, the connect does work [21:18:28] I'm trying to create a temporary table on that db [21:18:33] THAT does not work [21:19:02] create temporary table p50380g50970__dump (tl_from int, score int) [21:19:12] well, yes, because you're not allowed to do that [21:19:19] but that is probably also somethin stupid... [21:19:24] you can create a database p50380....__something [21:19:28] then create a temp table in that [21:19:35] oh [21:19:41] hm [21:20:04] a slight inconvenience [21:23:41] after I create a db, why does "show databases" not list it? [21:24:38] sigh [21:24:42] of course NOW it does [21:25:05] and why are there some user databases with only a single underscore, rather than two? [21:25:41] because that's apparently also allowed [21:26:16] uh huh [21:26:18] ;-) [21:26:31] well, yay! it works for me now! [22:28:50] hi [22:28:57] Cyberpower678: around, about PHP? [22:29:14] Kind of. [22:29:58] Cyberpower678: what does this error mean exactly? http://tools.wmflabs.org/pirsquared/iw.php [22:31:52] Cyberpower678: http://tools.wmflabs.org/pirsquared/iw.php.txt, I can't figure out to get it to work [22:32:29] PiRSquared, are you calling a member from a class stored in a variable? [22:32:39] I mean calling a function [22:32:54] $slicedb = new mysqli($slice, $username, $password, $dbname); [22:32:55] $stmt = $slicedb->prepare("SELECT `page_namespace`, `page_title`, `iwl_title` FROM `iwlinks` JOIN `page` ON `iwl_from` = `page_id` WHERE iwl_prefix=?"); [22:33:31] $stmt->bind_param("s", $foo); [22:33:52] Why is it not an object, Cyberpower678 ? [22:34:39] Hold on... lemmethink [22:37:56] PiRSquared: mysqli_prepare() returns a statement object or FALSE if an error occurred. [22:38:00] http://www.php.net/manual/en/mysqli.prepare.php [22:38:21] valhallasw, yes, but doesn't throw a fatal error when being called. [22:38:25] PiRSquared: check $slicedb->error [22:38:29] Something else is going on. [22:38:42] $slicedb is not holding an object. [22:38:43] BTW, am I doing the slice thing right? [22:38:51] other than that [22:38:53] Cyberpower678: why would it do that? then you wouldn't be able to handle mysql errors gracefully [22:39:00] Cyberpower678: $stmt is not an object [22:39:01] each slice separately? [22:39:17] valhallasw, ? [22:39:35] Cyberpower678: $stmt->bind_param <-- it's $stmt that's not an object, not $slicedb [22:40:01] valhallasw, it should be. [22:40:05] yeah, but why? Is the SQL correct? [22:40:05] Read the manual. [22:40:13] Cyberpower678: no, it should not. It can be FALSE. [22:40:24] Cyberpower678: I did read the manual, but I came here after a few hours. [22:40:27] /facepalm [22:40:29] valhallasw: when is it FALSE? [22:40:33] PiRSquared: if an error occurs [22:40:35] Sorry, I confused myself there. [22:40:36] 23:37 < valhallasw> PiRSquared: mysqli_prepare() returns a statement object or FALSE if an error occurred. [22:40:38] error such as? [22:40:44] invalid SQL? [22:40:50] so: check $slicedb->error [22:41:07] http://www.php.net/manual/en/mysqli.error.php [22:41:20] thanks [22:41:35] also check mysqli_connect_errno() is not 0 [22:42:04] If it is, then there is an issue with your connection. [22:42:19] PiRSquared: overall, I also don't get what you're doing in the code [22:42:37] valhallasw: it's not documented either [22:43:05] PiRSquared: you're looping over slices (?), creating a new mysqli instance for each, then preparing a statement [22:43:11] PiRSquared, what's not documented [22:43:18] and then you call $slicedb->select_db($dbname); [22:43:23] and *then* you call $stmt->bind_param("s", $foo); [22:43:46] er [22:43:47] sorry [22:43:51] yeah [22:43:58] but witout creating a new statement [22:44:51] also for the sake of all that's good INDENT YOUR CODE plzthxbye [22:45:01] * Cyberpower678 goes to sleep. :p [22:45:07] valhallasw: emacs on tools doesn't have a php-mode [22:45:11] and vim is too hard [22:45:21] (re: indentation) [22:45:48] you have a keyboard with a tab key, right? :P [22:47:09] in any case, the $stmt = ... should be outside the if statement [22:47:27] and after the $slicedb->select_db($dbname);, I think. [22:47:35] I thought it would be more efficient to keep it every time [22:47:46] as it is the same every time [22:47:59] (and only change if it is a new slice) [22:48:16] oh, also [22:48:19] Since valhallasw made me look like an idiot now, I'll leave you (PiRSquared) in his hands. :p [22:48:19] $i+=1; [22:48:20] if ($i == 0 || $slice !== $old) { [22:48:46] you probably mean if ( $i == 1 || ... ) there [22:48:49] $i is never 0, but it doesn't matter anyway [22:49:00] because $slice !== $old the first time anyway [22:49:07] right [22:49:46] so what does $slicedb->error return? [22:49:53] checking [22:50:05] if you just add an echo $slicedb->error; just after the if (mysqli_connect_errno()) block or so [22:50:26] SELECT command denied to user 'p50380g50850'@'10.4.0.128' for table 'iwlinks' [22:50:30] which database are you connecting to? [22:50:38] whatever the slice is [22:50:38] maybe xxwiki instead of xxwiki_p ? [22:50:46] hm, maybe [22:51:41] I've never written PHP before, so sorry if I'm doing something stupid [22:52:00] * valhallasw tries not to touch PHP even with a 10ft pole, if possible [22:52:18] ever since I found flask, I have not found a reason to do PHP anymore :-) [22:52:57] PiRSquared, can I see your script? [22:53:15] Cyberpower678: http://tools.wmflabs.org/pirsquared/iw.php.txt, I can't figure out to get it to work [22:53:41] 404 [22:53:42] I only care about the Cyberpower678: remove the comma at the end [22:54:28] valhallasw: I usually use python, but I figured I would try PHP for something [22:54:43] (although I've never written a server-side program like this before, actually) [22:55:49] hi MF-W [22:55:59] salü PiRSquared [22:56:03] Can I ask a question? :P [22:56:28] Don't ask to ask, ask. [22:56:46] PiRSquared: $slicedb = new mysqli($slice, $username, $password, $dbname . "_p"); [22:56:52] ^ you forgot the _p there [22:56:59] how do I move files from my home directory to the directory of my tool? mv refuses to do it, saying : "cannot create regular file `': Permission denied" [22:57:07] valhallasw: I changed it http://tools.wmflabs.org/pirsquared/iw.php.txt [22:57:16] oh, right [22:57:20] I'll try that [22:57:39] now it takes ages to finish, but at least it's doing something [22:58:06] it might be working [22:58:20] It hung up [22:58:44] I'm on a sugar rush right now, so I can't think straight. [22:59:36] MF-W: hm? [22:59:43] try ``take'' [22:59:57] from the tool account? [23:00:23] I have no idea. I saw it on the MOTD once [23:00:33] well, me too :P [23:00:41] but then it complains it doesnt own the directory of the files [23:01:04] https://wikitech.wikimedia.org/wiki/Nova_Resource:Tools/Tips [23:03:46] valhallasw: at least it works now, I'll work on the formatting next [23:04:01] cool [23:04:24] MF-W: you should be allowed to move files from your home dir to the tools home dir [23:04:35] but if you just created the tool, you might need to log out and in again [23:05:01] k, I will try that [23:06:24] still "mv: cannot create regular file" [23:07:12] MF-W: what's the exact command? [23:07:52] $ mv certainbot.py /data/project/mfw-bww/ [23:10:55] MF-W: if you run groups, local-mfw-bww is shown? [23:11:13] because that group has full write rights on /data/project/mfw-bww/ ... [23:11:33] it is [23:18:58] I've been having a very similar problem with groups not taking effect [23:19:56] Coren knows about it, but perhaps a bug report is in order [23:20:36] What was that? [23:21:25] MF-W: and become mfw-bww ? [23:21:38] valhallasw: that works [23:25:41] MF-W: try copying the file using the tool account, then? [23:26:18] then I get mv: cannot stat `/home/mf-warburg/c/certainbot.py': Permission denied [23:30:13] MF-W: hrm, you'll have to give world +r on the file, and +rx on all the dirs above [23:30:21] sorry, I'm going to bed now. [23:30:58] hm ok