[00:06:56] jdlrobson: it's getting late; i'm not sure why RA isn't working for me even with the global vars set up, but I'm just gonna upload _a_ patch that's not a _perfect_ patch for now since I can't test it [00:14:16] niedzielski: bearND you guys around? [00:14:28] dr0ptp4kt_: hello! [00:14:30] mhurd: would you do some spot tests with the ios app? the patch is deployed [00:14:48] dr0ptp4kt_: I am [00:14:53] dr0ptp4kt_: ya [00:15:11] hi niedzielski and bearND. long story, there as a logic bug / feature in the action=mobileview api, and that caused some stale template material to be served by it [00:15:34] legoktm kindly provided a fix which roan deployed. it seems to have fixed the issue. BUT [00:15:51] niedzielski and bearND, would you please check that the app is generally functioning properly? [00:16:08] dr0ptp4kt_: sure. is there phab for this i missed? [00:16:35] niedzielski: no phab, no. [00:16:44] hopefully it has a list of good example pages to try [00:17:02] dr0ptp4kt_: reagan article seems clean now [00:17:03] dr0ptp4kt_ bearND: that's kind of what i was thinking. any articles / repro steps for testing? [00:17:03] bearND and niedzielski i'll send you a page [00:17:17] dr0ptp4kt_: ok cool. thanks [00:17:26] niedzielski: bearND in this case probably just running any tests that actually use the api would be a good start [00:17:37] but doing some checks just to make sure basic features are working would be helpful [00:18:30] niedzielski: bearND in this case the bad behavior has disappeared. os it's a matter of validating that the app still functions as normal. review of the logic suggests the apps won't know the difference. but just in case it would be good to know if the apps misbehave for any reason. [00:22:01] dr0ptp4kt_: do you have the link to the patch that was deployed? I don't see anything like that on https://wikitech.wikimedia.org/wiki/Deployments#Monday.2C.C2.A0December.C2.A014 [00:23:28] bearND: https://gerrit.wikimedia.org/r/#/c/259183 . the output format ought not have changed as a result, and i doubt collisions around datetime stamps or anything like that. i don't recall if the android app is getting revision ids that could cause toc/tou bugs (they would theoretically be transient as template changes propagate anyway) [00:25:49] jdlrobson: basically what you'd have to do is to create an API module which intersects the watchlist and gather tables and ouputs a list of revisions (recent changes to the gather list) and you could use that as a generator for revisions [00:26:33] which would be another watchlist functionality reimplementation :( since the watchlist API does exactly that [00:26:53] um, intersect the recentchanges and gather tables, I mean [00:34:41] bd808, dr0ptp4kt_: I filed https://phabricator.wikimedia.org/T121466?workflow=create [00:36:53] bearND dr0ptp4kt_: everything seems ok on my end [00:37:00] legoktm: thx [00:37:03] niedzielski: thx [00:43:20] jhobs: missed your pull request cos i was looking at the code review column! [00:43:34] jdlrobson: whoops my bad [00:44:38] jdlrobson: please make sure you see my comments above though; I was unable to test this fix locally as I can't get RA working for some reason after a git pull [00:47:23] reason for code duplication is to override current behavior for all 3 class cases without using "!important" [00:49:48] heading out for today [00:51:24] jhobs: minor change needed :( [00:52:00] jdlrobson: ok i can fix it quick before i leave [00:52:19] jdlrobson: what is it? I don't see any comments from you yet [00:52:24] basically drop the prefixes [00:52:28] not needed these days [00:53:03] ok np [00:53:27] (incidentally my first version didn't have them until I noticed the mixin being used had them) [00:54:36] jdlrobson: fixed [00:58:22] jhobs: looking [00:58:30] guessing will need to get a release done too [00:58:34] jdlrobson: not sure what's up with jenkins... [01:00:16] jdlrobson: also, on initial inspection of the code, your redirectToFragment patch looks good (wow apparently I was WAY overthinking it), but I'll test it more thoroughly tomorrow [01:00:55] \o bmansurov [01:01:00] o/ [01:01:19] gonna need to a Cards release soon [01:01:26] ok [01:01:41] anyways, I'm out for the night. bmansurov if you have some time tomorrow I'd like a second pair of eyes on why RA isn't showing up on my local instance [01:02:06] jhobs: ok, can I get more info about your local instance? [01:02:37] bmansurov: one vagrant one standalone. We can talk more about it tomorrow tho in a hangout or something. [01:02:53] ok [01:03:09] o/ [01:03:41] later, jhobs [01:04:44] bmansurov: https://gerrit.wikimedia.org/r/259200 :) [01:05:00] jhobs: i could have helped you with that :) [01:05:10] jdlrobson: i pinged you :/ [01:05:18] jhobs: you did? sorry i missed that [01:05:22] oh yeh [01:05:28] sorry been in meetings most of day [01:05:36] no worries, that's what I figured [01:05:49] bmansurov: i think once that patch has merged we've got everything out in the last train for december [01:05:56] we can just focus on cleaning up user profile and bugs [01:06:15] aaand merged [01:06:16] w00t! [01:06:30] bmansurov: do you think you'll get a chance to start profile work today? Jon K has been asking about it :) [01:06:39] sure [01:06:54] the 8 pointer right? [01:16:43] bmansurov_brb: yup [01:16:49] i gotta head off soon anything you need from me? [01:17:54] jdlrobson: not sure yet, I'll need to go through my notifications and emails first [05:23:32] Hi niedzielski-afk , you around? :) [05:23:45] josephine_l: hello! [05:24:34] Heya! :) I know it's a bit early for our meeting, but if you have time to spare could I ask you a couple of Android questions first? [05:24:43] josephine_l: sure :) [05:25:27] Do you have the Upload to Commons app source code on your computer? Would be easier if I can reference it directly (with line numbers or something) [05:25:36] josephine_l: yep [05:26:33] Sweet. :) So, I'm trying to find out where in the code I can access the pic that is chosen for uploading, to apply the exifinterface methods on it [05:26:59] Unfortunately I can't seem to completely wrap my head around where exactly that is [05:27:21] josephine_l: hm, so my first thought is that it's at least in a Fragment and probably an Activity since it's an older app [05:27:31] I've narrowed it down to somewhere in ContributionsListFragment.java, ContributionController.java, or ShareActivity.java [05:27:48] Since they all deal with picking the picture [05:28:16] josephine_l: if i tap double shift, i can wildcard "Fragment" [05:28:37] Oh! That's pretty cool :) [05:28:52] But what word would I be looking for? [05:29:10] josephine_l: it's probably being displayed in an ImageView of some kind [05:29:35] josephine_l: so i can look for an ImageView in a given class and see if anyone sets a picture on it. i'm firing up the emulator right now to look for clues [05:30:21] Thanks! But uh, do we want to access it from the ImageView then, not when the user selects it? Or it doesn't matter? [05:31:09] josephine_l: think we want to access it after selecting [05:31:52] josephine_l: ok, so i have some things like title, description, categories. i can look values/strings.xml and find all the references to these [05:32:00] Hmm. So if I can figure out which image the ImageView is displaying on the screen where user is prompted for title/desc, that should work? [05:33:10] josephine_l: yeah, where they're prompted for categories is i think where we'd want to search for some on their behalf [05:34:43] The picture is displayed in the background already in the title/desc activity before the category search activity. So I was thinking maybe it would speed up the process if we start looking from the title/desc activity? [05:36:38] josephine_l: hm, that sounds like an optimization to me. i think it's a good idea but it might be simpler to start at the point where you need the data [05:36:53] Ah, okay, gotcha. [05:40:10] josephine_l: anyway, i followed a "Categories" string, detail_panel_cats_label, to fragment_media_detail.xml. the associated java file is MediaDetailFragment which i can bring up by double tapping shift and typing MDF. [05:40:58] josephine_l: the file looks promising as it has a lot of image networking code and even a comment, "Load image metadata: desc, license, categories" [05:42:18] niedzielski, awesome, thanks! Uh, could I ask how you found detail_panel_cats_label and followed it to that .xml file, and found the assoc. java file? I get what the result is, but got a bit lost trying to follow how you get there? [05:45:22] But yeah, I'm looking at MediaDetailFragment.java too, and the displayMediaDetails() method is where I think the answer is. I'm looking at where/how the actual .jpg file is stored in there. [05:45:34] josephine_l: sure, i double tapped shift and went to values/strings.xml. i hit ctrl f and searched for "Categories". there were only a couple strings with that value. i right clicked categories_activity_title and selected find usages. it was only referenced in CategorizationFragment. i took a look but it didn't seem like it had all the pieces from [05:45:35] the upload info screen. i did the same thing with detail_panel_cats_label and ended up at MediaDetailFragment [05:47:25] niedzielski, wow, thanks! That'll be very helpful later on :) [05:55:14] niedzielski, do you think media.getFilename() at line 188 of MediaDetailFragment.java could be what I'm looking for? I don't think I can run exifinterface on the ImageView version of the image, so I'd want the actual filename right? [05:56:48] josephine_l: just a moment. brb [05:59:41] Sure, no probs [06:05:15] ah, sorry. back now :) [06:05:47] :) [06:06:01] josephine_l: yeah, that's right. you just want the filename [06:06:04] I'm trying to get it to print the name of the image in logcat [06:06:08] No luck so far though [06:06:46] josephine_l: so, just something like new ExifInterface(filename) [06:07:22] josephine_l: what does media.getFilename() print? [06:07:29] protected void onPreExecute() { [06:07:30] extractor = new MediaDataExtractor(media.getFilename(), licenseList); [06:07:30] Log.i("Image", "Image name is " + media.getFilename()); [06:07:30] } [06:07:40] I added the Log.i , but it doesn't seem to print anything [06:07:56] As in, nothing with the "Image" tag shows up on logcat at all [06:07:58] josephine_l: you built and installed succesfully? [06:08:18] I believe so. I'll try building again [06:08:47] josephine_l: i don't normally use logcat directly. i use https://github.com/JakeWharton/pidcat with the package name. it color codes everything and stays outside of the ide [06:10:02] Oh, okay! I'll look at using that script later, thanks. [06:10:18] Actually I'm having a bit of trouble with all of the tests I'm running [06:10:24] I need to upload an actual picture for each test [06:10:38] And those pictures all have to be pushed to the emulator's sdcard [06:10:56] And they all actually get sent to Commons so I can't upload nonsensical stuff either :/ [06:12:54] josephine_l: hm, maybe you can neuter the upload or we can ask nicolas if he has something built in to disable it [06:13:09] Neuter the upload? [06:17:22] josephine_l: yeah. i'm checking out uploadcontroller right now [06:20:27] niedzielski, ah, okay, thanks. Would definitely be a huge help if we could find a way to do that. I recall asking Nicolas before, but he says he uses real images all the time. I don't have that many photos though, and I just discovered yesterday that the GPS setting for my camera was off this whole time. Heh. [06:24:22] josephine_l: how does he have that many good photos? [06:24:32] josephine_l: this is coming from a cat owner [06:25:25] niedzielski, hahahahah, I have no idea! :D I think he travels a lot. [06:26:07] I do have quite a lot of pics stored up, but all without GPS tags unfortunately. Should have thought of enabling the setting sooner. [06:27:22] josephine_l: well, i'm still poking around but i think the part where you select the image doesn't require an actual upload. maybe you were right to start where you did at image selection time, not categorization time [06:29:35] niedzielski, ah, okay. We can't use MediaDetailFragment then, right? [06:29:52] josephine_l: yeah, i think where you were logging is good [06:31:06] niedzielski, that log was at MediaDetailFragment [06:31:50] josephine_l: right, around line 188 [06:32:03] niedzielski, isn't that only called at categorization time? [06:33:38] josephine_l: :| [06:33:43] josephine_l: ah, i see [06:33:57] niedzielski, on the bright side, MDF seems to be calling a Media method [06:34:11] So maybe I could call that method myself, but in a different location? [06:36:16] josephine_l: so if i just select a previously uploaded image, i see that code get called at line 188 [06:37:11] niedzielski, oh? hmm... [06:37:27] So it only runs with previously uploaded images. Weird. [06:38:13] josephine_l: i think for prototyping, the most important thing is just operating on image files. you could do that here in that app or make a dummy project. once the code starts shaping up, you can refactor it into the proper place [06:38:48] josephine_l: unfortunately, the filename does not seem to be local [06:39:17] josephine_l: oh wait, this file just has a confusing name. it is local [06:39:28] niedzielski, I did that with the mini app that I linked in the phab task I think. It shows that exifinterface works fine. Unfortunately the next step seems to be implementation in the actual app [06:39:52] So that's where I'm stuck [06:40:10] josephine_l: ok, than i guess we need to figure out how to skip uploade [06:40:12] uploads* [06:40:24] niedzielski, yeah, I think so. :/ [06:41:00] I'm still trying to figure out why that code only gets called when selecting a previously uploaded img [06:41:51] To make things worse, there are logcat errors from the existing version of the app. I tried fixing them today but the fix didn't seem to be simple, so I figure I just have to leave it for now. [06:43:59] josephine_l: oh, i was thinking the change i made didn't work and had somehow broken the next button but it looks like disabling uploads is actually easy [06:44:09] niedzielski, ooh? [06:44:26] josephine_l: just comment out line 14in uploadcontroller.java [06:44:39] 143* [06:44:44] sorry my pc is lagging terribly [06:45:05] niedzielski, haha, I was wondering why you were asking me to comment out an import :) [06:45:33] Awesome, thanks! I'll try that out now [06:47:52] Oh, crap, I made some modifications to the AVD and now all the files in its sdcard are gone. Pushing files now... [06:50:08] josephine_l: i think you can push a directory recursively [06:50:39] niedzielski, how much space do you allocate to your emulator's sdcard? [06:51:38] josephine_l: i htink i normally use the default for wikipedia app. i think that's 200MB. for pictures, you might want more [06:52:44] niedzielski, okay. Do you need to restart your emulator after pushing files to it too? [06:52:59] josephine_l: no [06:53:15] niedzielski, hmm. Mine only seems to recognize the files after a restart [06:53:19] josephine_l: you're just pushing to /sdcard/DCIM or some place, right? [06:53:32] sdcard/Download, but yea, should be same [06:53:45] josephine_l: oh, well, the media store might not be picking up sideloaded file changes [06:53:59] josephine_l: i think i even saw that recently on an api 23 physical device [06:54:16] niedzielski, yeah, not a big deal I guess. I'm just waiting for the restart so that I can test the new upload code [06:54:22] Hi Nicolas! :) [06:55:18] niedzielski, it crashed after I selected the category [06:55:24] It didn't crash for you? [06:56:46] josephine_l: hm, so where the title says "Categories" and it has the searchable list? [06:57:06] josephine_l: i seemm to able to select with no problem [06:57:40] niedzielski, no after that, when you have selected the Category and clicked the picture of the floppy disk [06:57:54] Seems like Nicolas' net is on the fritz, lol [06:58:17] josephine_l: ah yeah that crashes [06:58:30] but for the geo and categorization, do you need to get that far? [06:58:41] niedzielski, Oh!! Good point... [06:59:11] Yeah, I didn't think of that. We don't have to when we're prototyping, we can just uncomment the line before the final tests right? [07:01:09] josephine_l: that's what i was thinking. i mean, you can build out some developer only settings that can be more easily turned on / off if it's helpful. we have that functionality hidden in the wikipedia app but it might take a little bit to refactor the code for that [07:01:43] niedzielski, gotcha, thanks. This should work fine for our needs. :) [07:02:38] So... where were we before I derailed us with the testing question? [07:02:59] josephine_l: i think you were just trying to wire up the exif extraction [07:03:00] Ah, at media.getFilename() [07:03:41] niedzielski, the log doesn't even show up for me when uploading a previous picture [07:03:44] Hmm [07:03:54] Maybe because the previous picture was never actually uploaded [07:04:18] But not sure why it does that. I think I should try to call the method at another place. Maybe in categorization fragment. [07:06:17] josephine_l: ah yeah, that code does not seem to run in this path :| [07:06:53] niedzielski, I think I'm just logging at the wrong place. [07:08:02] Hello! [07:08:07] Hi Nicolas :) [07:08:20] I check the logs... [07:09:56] Nicolas: hello! [07:10:12] Sorry for the delay :-/ [07:10:45] I see you talked about where to integrate the EXIF calls, I think it is the main next thing indeed. [07:11:33] Nicolas, no problems. :) Yeah, we're still trying to figure that out. [07:12:01] While all 3 of us are here though, are we all good with settling for Method C for week 1? Can I set that task to 'Done'? [07:14:28] By the way, I am on vacation so I took many geolocalized pictures, I can send them to you if you need non-dummy pictures for tests :-) Don't worry about descriptions and such, I will give the files very descriptive filenames, and please upload from a new account which I will follow in order to check categories and add descriptions :-) [07:14:48] Not method D? [07:15:05] Oh, yeah, method D sorry. Basically just a small tweak to Method C right? [07:15:13] Exactly. [07:15:34] Sounds good to me! [07:16:05] Nicolas, it would be great if you could send me the pictures. :) We've managed to tweak the code to prevent uploads which will be useful in prototyping stages, but when we are testing the pre-release version I think having your pics will be very helpful for me [07:16:35] OK! [07:17:09] niedzielski, are you okay with Method D (a revised method C with altered radius)? :) [07:18:16] josephine_l: ok, ShareActivity.onCreate().mediaUri is the locale android uri used to load the image AFAIK [07:19:52] niedzielski, oh, okay, thanks. So I should be trying to reference that Uri with exifinterface? Is a Uri referenceable as an actual image though? [07:20:06] Searching for the right place in the source code can take time, but it is a good way to get to know a new app and how it works :-) [07:20:21] josephine_l: D is fine with me. we can always revise it as needed [07:20:59] Great, I'll update the task accordingly. [07:21:23] Yeah, I've learnt a lot about the app over the past few weeks. :) Feels like there's a lot more to learn though [07:22:40] josephine_l: i think you need an actual file path from the content resolver but i'm not sure. [07:23:03] niedzielski, okay. I'll look that up later, see if I can get that to work. [07:23:23] Where do we want to write the gpsCoords() method though? [07:23:38] Should I make a whole new class for it, or just put it in ShareActivity as a method? [07:24:58] josephine_l: if this comment is accurate, ExifInterface might only work with JPEGs https://android.googlesource.com/platform/frameworks/base/+/b267554/media/java/android/media/ExifInterface.java#129 [07:25:28] (i assume other formats have exif or some kind of metadata but idk) [07:25:55] niedzielski, oh.... hm. [07:26:17] All of the Commons files I've seen have been JPEGs [07:26:32] I guess I assumed thats the format camera photos are always saved as in mobile phones [07:27:03] josephine_l Nicolas: i would guess jpegs to be most common. on that note, i'm afraid i have to hit the hay :) feel free to email me any questions and i'll follow up [07:28:07] niedzielski, sure thing! Umm, I was hoping to be able to travel for a few days over the New Year, and make up the time in other weeks. Is that okay with you guys? [07:28:11] I think we could use a class for images, as our app is all about processing images. Refactoring is not in scope, but adding a class with the EXIF-related methods could be the best thing to do if that direction sounds OK. [07:28:59] Nicolas, noted, I'll try to make a new class for it and see how that works out [07:30:05] We only need to guess categories wih JPG I guess, but indeed the upload should still work if someone tries to upload a PNG for some reason (for instance a screenshot). [07:30:44] So I'll just put in a check to make sure that the file is a JPG, before calling the coord method? [07:32:51] Nicolas josephine_l: moving time around is fine with me. just don't put yourself in a bind wrt outreachy end dates [07:32:55] or maybe a try/catch, and don't attempt categorization if the try fails [07:33:33] so that we don't have to guess whether a file is JPG-compatible or not (which is not simple) [07:33:33] Err, dced, sorry [07:33:39] josephine_l: btw, i will be happy to review your patches if you're interested in feedback [07:34:17] niedzielski, that would be great, thanks. How do I submit them to you? I'll have my code up on GitHub [07:34:36] Nicolas, sorry, I missed the first part of your sentence [07:35:08] Nicolas josephine_l: moving time around is fine with me. just don't put yourself in a bind wrt outreachy end dates [07:35:36] josephine_l: i think Nicolas just wants pull reuqests on github? anyway, maybe you can flag me on those if you want feedback [07:35:55] josephine_l: ok, i'm heading out now. have a good one :) [07:35:57] niedzielski, Great, thanks. It'll only be for 3 days, so I'll do the other 4 days of that week, and slip an extra day in before that. [07:36:07] niedzielski, okay, will do! Bye :) [07:36:07] sounds good [07:36:10] I am OK with moving around too, especially if next week's work is done early :-) [07:36:40] Nicolas, haha, am trying to do that. :) Hopefully I can solve this current problem so I can move on [07:36:42] I was just saying that we should try to check whether a file is JPEG or not [07:37:28] Just apply the EXIF method, and if it fails just process the file as if it contained no latitude/longitude (many phones have GPS disabled so that happens too). [07:37:50] Nicolas, okay. So no need to check explicitly for JPG? [07:37:59] s/we should try to check whether a file is JPEG or not/we should NOT try to check whether a file is JPEG or not/ [07:38:04] Just put a try catch statement in the exif method [07:38:16] sorry for the confusion, we should NOT try (-_-;) [07:38:17] Haha, got it :) [07:38:50] so we should use a try/catch (sorry for being so confusing haha) [07:39:12] S'all good. :) Yep, I'll do that. [07:39:28] I just need to figure out how to reference the image Uri as an actual image file [07:39:37] So that I can run the exif method on it. [07:41:54] Nicolas, I should head off for dinner soon. If there isn't anything else you'd like to discuss? :) [07:43:03] If I think of anything else I will post on phab, have a good meal! (having breakfast myself) [07:43:24] Nicolas, great, ttyl! :) [09:38:45] mornin' [12:30:29] im heading out to walk the dog [12:30:33] i'll be back in an hour [13:16:02] heading out for lunch [14:13:10] yo [15:37:12] dbrant: is it true that we should always prefer to load a saved page when it exists and a refresh is not requested? [15:38:30] niedzielski: i.e. when network is unavailable? that should probably be the preferred behavior. [15:38:55] dbrant: er, actually i mean all the time [15:39:23] dbrant: so if a user has saved a page, does it imply that they would prefer not to incur additional network usage? [15:40:23] niedzielski: interesting point... On the one hand, it's important for the user to see the very latest revision of the page... [15:42:31] phuedx: hey, how do I test if a page exists in php? [15:42:36] dbrant: ok, so it sounds like you think we should stick with cache -> network -> saved pages? [15:43:10] niedzielski: yeah, I think that seeing the latest revision slightly outweighs data usage. [15:44:23] bmansuro_: I suppose $title->exists() would do the job [15:44:23] https://doc.wikimedia.org/mediawiki-core/master/php/classTitle.html#a388ccc7f3f08b8e69507e866b71f4027 [15:44:35] bmansuro_: if you have a title object, then https://github.com/wikimedia/mediawiki/blob/e87668e86ce9ad20df05c1baa8e7cf3f58900524/includes/Title.php#L4239-L4254 [15:44:44] or ask codezee [15:45:08] dbrant: ok cool. thanks. i think if we switch saved pages to something more bookmark-y, perhaps in the upcoming gather work, this will be expected behavior [15:46:13] i keep on forgetting about doc. [15:47:11] niedzielski: and technically, the behavior should be slightly different for forward vs. back navigation. For forward, it should be network > cache > saved pages, and for backward, it should be cache > network > saved pages. [15:47:44] dbrant: we shouldn't always prefer cache? [15:48:31] niedzielski: nope, because then we'll start receiving complaints from users about the Recent Deaths article not being updated. :p [15:49:44] dbrant: for some reason, i thought we had some kind of minimal network revision check for cache [15:50:03] niedzielski: we don't have that yet [15:50:42] niedzielski: I think I'd started to build this in a patch a while ago, but it rotted away :( [15:51:11] dbrant: i think that would simplify our PageLoadStrategy a bit if we only have to handle two flows: cached (and implicitly network) -> saved pages and force refresh (network) [15:51:55] dbrant: that's a bummer [15:52:00] niedzielski: that would be a good tech-debt item [15:52:51] dbrant: yeah, i'm just trying to figure out this saved page item and i'm not finding the logic flow to be self evident. i was trying to refactor a bit to get a handle on it [15:52:58] saved page bug* [15:54:29] niedzielski: https://phabricator.wikimedia.org/T101271 <- closed, but can be revived. [15:56:42] dbrant: hm, yeah this patch looks familiar [16:11:30] does anyone know how we can get patches to an extension to show up in wikimedia-dev? [16:32:45] niedzielski: dbrant: with Retrofit we may not need our own cache anymore. Retrofit uses the OkHttp cache and automatically sends If-None-Match if it gets an etag. RB does send etags, but I think the regular MW API doesn't. [16:33:25] codezee: you mean gerrit notifications in irc? [16:33:51] jdlrobson: yes [16:33:52] bearND: that'd be pretty awesome. do you know if retrofit will work in offline mode? i was curious if we could transition saved pages to the retrofit cache some how [16:34:50] bearND: that would also eliminate some of that HTML processing we have to do for saved pages and no doubt a few bugs [16:34:54] codezee: https://wikitech.wikimedia.org/wiki/Grrrit-wm [16:35:32] jdlrobson: also your feedback on having a blacklist variable for namespaces at https://phabricator.wikimedia.org/T114723 would be helpful :) [16:43:35] niedzielski: good question. I'll check it in a bit [16:45:51] bearND: oh, i was just curious. we wouldn't even be able to do this until january or beyond [16:52:59] niedzielski: according to http://stackoverflow.com/questions/23429046/can-retrofit-with-okhttp-use-cache-data-when-offline it sounds liek it's possible, but may require some hacking [16:54:19] bearND: that'd be pretty neat. yet another reason to be excited about the switch to content service [16:55:48] niedzielski: i'm trying to eventually eliminate our own page cache. That should help ease OOM issues [16:56:58] bearND: i think the more we can leverage pro libs like retrofit, the better and easier to maintain the app will be. very cool [16:57:03] for that to really happen we would like to also see this behavior when using MW API [17:03:48] JonKatz: dr0ptp4kt_ jdlrobson are you guys beaming in? [17:04:05] kristenlans yes. wrapping up another meeting [18:03:33] kristenlans: just saw this, sorry for the delay! we were talking summit presentation. it was fun. [19:31:37] I've got new PhpStorm licenses if anyone is in need [19:33:29] mdholloway dbrant|brb bearND: it sounds like there's some issues requesting images right now. fyi [19:38:28] niedzielski: would you mind elaborating? It works for me. [19:39:56] bearND: i was getting a 503 for many images at upload.wikimedia.org. you can see it most easily by engaging link preview on uncached images [19:41:15] hey, is Baha here? [19:43:08] niedzielski: Hmm, I still don't see that. Any specific articles I should look at? [19:43:58] bearND: no, but it seems to be working now. ori confirmed the issue earlier [19:44:07] ok [19:48:40] marxarelli: do extension tags only work on a feature level? [19:48:48] (see https://gerrit.wikimedia.org/r/#/c/257410/2) [19:53:44] where is HTML of section of MobileFrontend's skin located? [19:56:37] Albert221: I believe it's generated in core [19:56:50] Albert221: what are you trying to add to the head? [19:57:18] I'm working on T100377 and firstly I want to locate the code I'll be working on [19:57:55] I'm not familiar with WikiMedia architecture for now [19:58:11] hmm i'm not sure how easy that will be to remove. The RSS feed will be added via OutputPage->addLink [19:58:18] so you'd need to find what adds that [20:09:58] bearND: is something going on with the service? [20:10:28] dbrant: why? [20:10:30] bearND: i'm getting a 503 for the "Uranus" article. [20:11:01] other articles are fine... [20:12:13] dbrant: same here, requesting from the browser :( [20:12:30] dbrant: i see it, too. That's very strange. Maybe gwicke has some idea? [20:17:13] Where are those four RSS feeds? On my fresh WikiMedia installation (with MobileFrontend) I only see one of them: http://imgur.com/xhWXOR0 [20:17:29] (related to T100377) [20:18:45] dbrant: bearND: running locally, it looks like it's running into a problem parsing the pronunciation url for that particular article [20:19:02] aha [20:19:04] dbrant: bearND: ("neptune" also has a pronunciation file but is fine) [20:19:17] mdholloway: yeah, when I run it outside the app I see it as a 500 [20:27:28] andre__: and I have little meta-question. Is asking the same thing on 2 #channels good? [20:30:16] dr0ptp4kt_: back , my connection should be good now [20:31:40] dr0ptp4kt_: very sorry about connection issues [20:33:58] Albert221: just ask here, it's a better (more focused) audience :) [20:35:19] I'm working on T100377, but on fresh WikiMedia w/ MobileFrontend installation I see there's only one with RSS feed, not four as described in Phabricator task. andre__ has reproduced that and confirmed. So should I just work like there's only this one to show/hide depends on config, right? [20:35:30] * andre__ passes https://phabricator.wikimedia.org/T100377 as a link [20:36:15] it might just be that the Phab task got outdated - it's 6months old and maybe someone unintentionally fixed it in the meantime. Maybe maybe. If I get it all correctly. [20:40:00] bearND: dbrant: this will at least fix the error for 'Uranus' without causing any regressions I can think of. https://gerrit.wikimedia.org/r/#/c/259329/ [20:40:26] andre__: Albert221 it's possible those rss feeds are coming from another extension/site config. [20:40:41] it may be more complicated than it seems work-wise [20:41:37] bearND: dbrant: it looks like the parsing code contains an assumption that the filename in 'File:' will be the exact filename on Commons, which isn't the case at least for https://en.wikipedia.org/wiki/File:Uranus.ogg [20:41:40] hello FlorianSW! Nice to see you there :) "I'm working on T100377, but on fresh WikiMedia w/ MobileFrontend installation I see there's only one with RSS feed, not four as described in Phabricator task. andre__ has reproduced that and confirmed. So should I just work like there's only this one to show/hide depends on config, right?" [20:42:08] here* [20:42:35] hi Albert221 :) Let me check :) [20:42:44] bearND: dbrant: if there are other cases where they deviate in unexpected ways, it might take a deeper fix, but this is the first such case i've seen [20:43:02] btw: Great to see you working on other tasks here in MediaWiki universe :) [20:43:15] mdholloway: thanks, i'll take a peek [20:45:23] Albert221, could take a bit longer :P I updated my Windows to build 1151 and now my virtualbox doesn't want to do, what I say :D But, if you only see one rss feed, solve the task with this one. Sounds sane to me. I'll check that as fast as possible and let you know, ok? :) [20:49:38] bd808 our transition check-in weekly meeting somehow vanished (?), reinstated for this week and next [20:50:18] no problem :) is there any documentation of creating new configuration variable? [20:50:23] kristenlans: good catch and thanks [20:50:38] mdholloway bearND: i know i am the guy with all these problems that no one else has but... are you guys getting a 500 on the prod content service? [20:50:41] Albert221, iirc, yes, let me find it for your! :) [20:50:51] mdholloway bearND: i just want to go to uranus [20:51:22] Albert221, this looks like anything about that: https://www.mediawiki.org/wiki/Manual:Wg_variable :) [20:51:33] ohh, you're the best [20:51:58] mdholloway bearND: or is this actually causing the entire page to fail? https://gerrit.wikimedia.org/r/#/c/259329/ [20:52:32] niedzielski: yes, it's causing the entire page to fail [20:52:43] bearND: thanks! [20:59:58] bearND: i actually just updated with a check that querySelector(selector) is truthy/non-null. (mind-meld!) [21:00:29] mdholloway: yes, we had the same thought at the same time [21:01:01] mdholloway: maybe it's better to store the result in a variable so we don't have to query the DOM multiple times? [21:01:39] bearND: makes sense, will update [21:02:34] mdholloway: There are other articles with issues, see services channel [21:02:49] is https://www.mediawiki.org/wiki/Extension:MobileFrontend page generated automatically from includes/config/*? [21:03:06] mdholloway: e.g. [[Odisha]] is still broken [21:03:33] Albert221, nope, it's manually updated [21:06:12] bearND: hmm, no good. should i update the current patch to just do a null check and prevent the page load failures, and then take a closer look at the pronunciation URL parsing? [21:07:25] mdholloway: actually, your second PS fixed it also for [[Odisha]]. When I tried it earlier I had PS1. [21:08:28] how can I run tests on MobileFrontend? [21:08:37] bearND: yeah, with PS2 it's still not pulling the correct file URL out, but the null check will at least allow the request to complete. [21:09:39] (successfully.) [21:12:28] dbrant: it might be neat to make the action bar fade to the palette color on scroll [21:13:03] niedzielski: hmm, yes indeed..... [21:14:14] mdholloway: it would be good to have some of those pages added to the tests [21:14:54] bearND: yeah. looks like there are other undefined values causing TypeErrors as well, e.g.: http://localhost:6927/pt.wikipedia.org/v1/page/mobile-sections/Brasil [21:17:00] Albert221, what tests, phpunit (php) or qunit (JavaScript)? :) [21:17:25] phpunit [21:18:47] Albert221, run "make phpunit" in MobileFrontend's root directory :) [21:19:35] is there any alternative for Windows? :/ [21:21:15] Albert221, uhh, I don't know :/ You could upload your change to gerrit and let jenkins run the tests, until someone with +2 rights (or whitelisted) +1 the change or comment recheck :/ [21:24:06] at least that :/ but my change doesn't seem to work. Here's what I've changed: http://imgur.com/wDiG3Ix (in both files that's on the end of the screen). I've navigated to ?action=purge but I still see this [rel="alternate"] in my head. Maybe there's other kind of cache? Maybe my code simply doesn't work? [21:24:48] and I don't see this var_dump output too [21:27:06] Albert221, try Ctrl + F5 to clear the browser cache (or disable the browser cache) [21:27:08] :) [21:27:45] that doesn't help :( [21:28:24] Albert221, wait, you omit the app link, only, not the rss feed link :) [21:28:49] *facepalm* [21:32:52] but it looks like code responsible for that isn't in MobileFrontend. grep for "addLink" doesn't show me anything related to RSS and "application/atom+xml" shows nothing [21:34:17] yes, there's includes/Feed.php file in core [21:36:08] it's however not it :/ [21:37:44] Albert221, that's correct. The feeds are generated in core, the task is to omit them in MobileFrontend, e.g. through hooks :) [21:38:34] Little hint: The code you're looking for is somewhere in this snippet: https://github.com/wikimedia/mediawiki/blob/4e0762c70a97b8b8cfc54b934e518cddd6950e9a/includes/OutputPage.php#L3290-L3585 [21:53:40] yes, now I see. It's Feed config variable. And asking just to be sure: I should set this Feed config variable basing on (my newly created) $wgMFRSSFeedLink. Am I right? :) [21:54:35] Albert221, that would be the easiest solution, yep :) [21:55:43] Albert221, btw.: If you ping me (write my username in your message) you usually get a faster answer, because I'm not really often look into irc when I'm working on something :P [21:55:47] Do the android crash reports still go to OTRS? [21:56:07] I'll remember that FlorianSW :) [21:56:51] Reedy, I remember a change in gerrit where this was changed, that the crash reports will go to a third party provider, but I'm not sure :( [22:07:55] FlorianSW sorry but I really don't like asking that much basic questions... but what's extension's bootstrap (or main, I don't know how it's on MediaWiki called) file or hook where I can call it? [22:08:48] Albert221, you're he to ask questions, no matter if this are basic ones, or not :D So, no worris :P [22:09:21] Albert221, you need to take a hook, which is called _before_ the variable (you want to change) is used. [22:09:33] which variable you want to change? [22:09:49] $wgFeed [22:10:01] Albert221: Asking "basic" questions is totally cool at the beginning. It gets worse after a few years around, when you might have to lose a reputation. Trust me. :D [22:10:27] haha it must be true :) [22:10:31] aha, andre__, that's interesting :D [22:11:22] Albert221, isn't wgAdvertisedFeedTypes what you want? :/ [22:13:32] and now I feel you trusted me that I chose the right variable, but I didn't and you failed on me:( [22:15:38] Albert221, no no no, I just asked, maybe your variable is better? So, trust yourself and try to convince me, why you think, that wgFeed is the better one. Even if you come to the conclusion, that it isn't, you have learned :) [22:18:50] I choose $wgFeed, because on MobileFrontend we just want (if config says so) to get rid of any RSS feed and it seems that outside wgAdvertisedFeedTypes check is for example Sitemap which - I think - is unnecessary on mobile :) [22:18:54] brb [22:19:16] bearND mdholloway dbrant|brb: i was thinking of moving the article menu bar view and friends to org.wikipedia.page.leadimages to live next to LeadImagesHandler. they're currently under org.wikipedia.views but they weren't really meant to be super generic. any objections? [22:20:15] Albert221, that sounds reasonable! But in fact, it doesn't really matter for the base problem. Even if we think, e.g. in code review, that wgFeed is better as wgAdvertisedFeedTypes or vice versa, the change would be minimal. So feel free to use the one that fits better in your opinion. [22:20:38] Albert221, do you have some minutes, so that I can explain you, how to find the best hook? [22:21:51] niedzielski: sounds good to me! [22:32:54] niedzielski: sounds good to me [22:36:21] niedzielski: i'll be there in a minute or two [22:36:53] dr0ptp4kt_: sounds good [22:39:02] bgerstle: you froze. good talking with you [22:39:35] I'm here, but I have to leave. it's late and my parents aren't happy with fact that I'm that late on PC. when will you connect tomorrow? [22:39:40] FlorianSW [22:40:08] dr0ptp4kt_: sorry back now, my wifi spontaneously crapped out [22:40:13] do you want to hop back on and wrap up? [22:40:51] bgerstle: hopped on next 1:1. let's keep discussing over the weeks though, maybe even at the next tech leads weekly meeting [22:40:58] ok [22:41:03] ttyl! [22:41:26] Albert221: I'm not sure, I think 4 or 5 pm (UTC+1) [22:42:02] you're the same timezone as me. Will it be good to explain these hook's things tomorrow? :) [22:43:29] Albert221: if you're UTC+1, then yes :D Ok, let's continue tomorrow :) [22:43:34] have a good night! [22:43:42] thanks, bye :) [23:12:01] jdlrobson: JonKatz i'll file a bug for this specific stale page https://en.m.wikipedia.org/wiki/Wikipedia:Featured_picture_candidates/Peacock_butterfly [23:13:47] niedzielski: hi! :) there are three your tickets in QA Signoff - all about added buttons to the overflow menu. Is it in UI already? [23:14:30] etonkovidova: hey! these should all be in the latest alpha [23:14:47] niedzielski: hmm... checking again [23:14:56] etonkovidova: the navigation button requires using the prod Content Service / RESTBase [23:15:38] niedzielski: and those buttons are just there not like some dev features? [23:17:20] etonkovidova: ok i just downloaded latest alpha. the share and bookmark buttons should be available on and off Content Service / RESTBase. the geolocation button is only available using Content Service / RESTBase [23:17:47] etonkovidova: the mount everest article has a geolocation [23:18:07] niedzielski: in the latest alpha the color of the overflow menu has changed [23:19:08] etonkovidova: when i set "useRestbase_setManually" and "useRestbase" in dev settings and refresh the article, i see the geolocation [23:19:23] niedzielski: thanks! checking... [23:21:23] niedzielski: I see it! [23:21:30] etonkovidova: woo!