Discuss 5 June 2020 MWstake Meeting
Mark: Oh we seem to be able to do that meeting earlier without sending in the room. So you know that maybe that one. Yeah. Anyway, I'm looking at The Ether pad. See mediawiki news. Oh and it's a new it's a new etherpad thing look so clean and pretty. so there's what's this user options manager? Send to your you there.
Gergő: I figured they could have a section about recent changes in delicate chord chord changes since they didn't have anything on the agenda anyway.
Mark: Yeah, please this is I'm very interested in that I could you talk some more about that.
Gergő: Sure right now.
Mark: Yeah, go ahead.
Gergő: Okay. Hello everyone. So, so I figured it'd be nice to have an ongoing section of a change in gravity, Cortland. So stable interface policy is the big news. It's not really news. We have talked about it at the previous meeting, but it's a big change. So maybe it's worth repeating. You can think that it does on the link, which is in The Ether Pad but the short version is the rules about what's considered a stable class to use or to extend change. If something is stable, that means that it's going to be the plication bargaining when it's changed and you will have like at least half a year to update your code to not break if it's something is unstable, then it's going to just change without warning. And what what is stable and what is not is being restored the discussed for the complete mediawiki court and properly annotated which wasn't the case before. So this is an ongoing stuff. You might want if you meet an extension, you might want to check whether the stuff you are using is stable. but similar interests Sargon
Mark: Yeah, this is. No, no, I'm just saying this is definitely a good thing having some sort of policy grandness rather than just you know ad hoc.
Gergő: The previous previous policy was
Mark: It's good.
Gergő: basically that everything that's public is stable. But that was just not maintainable. So that worked as long as no one really changed me they make a call. But now the foundation has occurred team which has pretty ambitious goals to make everything work with dependency injection and so on and that requires a lot of changes and previous policy was just unsustainable, so they are shrinking to more more. consider the set of stable classes
Mark: Sounds good.
Gergő: Yeah, the computer the computer a PC update. We want to talk about the Clark or should I?
Mark: I can talk about it. We had a composer RFC meeting Cindy might have something to say as well. But we had a composer RMC meeting or we talked about the RFC to replace the old composer RFC and I'm we decided that it sounded like everyone was read that the new RFC was a good thing and it Like the next step or to document some best practices for the RFC and then work on code changes that will be needed. Is there anything I else I need this our should be said Cindy Marcus.
Cindy: Now that's that sounds good. Yeah, there's a next step of you know the details for what's documenting the best practices and what the RC will bring and then I guess we'll have another meeting.
Mark: So Brian has his question here.
Markus: Google search
Mark: Go ahead.
Markus: I was just wondering who who does the documentation so would that be something we should put some extra effort in like I can I can activate robot for example 2?
Mark: Activate him.
Markus: Activate isn't isn't that a good work.
Cindy: Activate. Yeah. No, I think it was Mark and my unspoken assumption that will Mark and Robert wrote the original argument or if see with me commenting from the sidelines, but I can I can help with that as well. But yeah, if Robert could, you know take the leader work with Mark and That would be great.
Gergő: Writing the draft policy for composer to neutral policy is Lansing and then the other didn't talk too much about that at the Arab see but the other pending thing is fixing exception handling So currently the exception Handler is set up after setup dot PHP that somebody in the middle of setup that PHP said that the PHP is all the initialization accepting Obsession handling something that exception logging. And if if you if you update your code base into something that doesn't work like you have that one extension forget to update the other extension and end up with something incompatible. Then that's going to result in an exception being thrown but he hardly in the setup phase and: theater that point we don't have an exception Handler so you get something grow and ugly and that's apparently a big problem for people using composer. So someone needs to write temporary. Option Handler, which is installed for that part of the process.
Mark: So perhaps that that's a good point. Perhaps we could get Marcus. Do you think that Robert would be a good person to ask to write that code because I can work more on the documentation bit me can work on the code then and
Markus: Yes, I can do that. Yeah, I think that's a good idea and I'm pretty sure he will like to do that you love to do that.
Cindy: There's a third piece to it as well as she's concerned coughing. There's a third piece to it as well that sort of slipped by quietly in the meeting Brian Davis mentioned composer merge plug-in and the fact that there's no group currently responsible for maintaining it and worse than that. It will stop working with composer 2.0 which is going to be reduced released imminently perhaps not tomorrow, but at some point soon so I have internally started the process in my group of my team of trying to assess whether we can take them over stewardship or composer Birds plug-in if that happens then we would also need to Assign somebody to actually update the code to make it work with composer 2.0 not guaranteed that we'll be able to fit into our timeline taking over ownership of it. But that's what I'm trying to work towards but it might also be worth having somebody take a look at that code and figure out if there are any patches we can propose to it that would bring it in alignment with composer 2.0.
Mark: I ingest just about the merge plug-in. I think the I think the composer developers themselves were not a big fan of the merge plug-in if I recall correctly.
Cindy: that was I spoke to Brian about it a little Brian Davis about a little bit yesterday and he did say, you know because they he had proposed upstreaming composer much emerged plug-in into composer and they were not eager to take it on but he did say that the way it works right now is He is the word hack. I hesitate to use the word hack. It's it, you know, it finds its way into composer and various hooks that are fragile that potentially break with composer upgrades as in what is happening right now with composure 2.0 so You know, it would be awesome to have to approach them again perhaps and say, you know, we've been using composer merge plug in for X years now and it's become a critical part of our infrastructure and you know and has you know continue to work whatever maybe maybe we can you know. Try again to encourage them to accepted into composer.
Mark: So on the merge plug in there was a Drupal was using it initially for a while and then they dropped it.
Mark: They dropped it because you know the composer, you know core team didn't like it and Drupal is like wholesale composer. So anyway, just pointing that out.
Cindy: That's a shame.
Gergő: If you paint ourselves into a corner with much plug in tennis and the new RFC also puts us into a reasonable position to just drop it and use plain composer. If they are of psychotics update the only thing we would need the much plugin for is merging mediawiki chord. It's the composer file which handles all the extensions. and and that part can be handled in different ways ugly advice, but it's possible so
Cindy: Yeah, the thing that I mentioned this in the in the RFC meeting good things that I literally just discovered a week or so ago when I was working with chameleon is that you can actually in the composer merge into composer that local dot Json file in addition to having the extra section. That's got the merge information. You can also put in require require section and so it is useful also. In media Wiki site using mediawiki. If you in order to since the media Wiki's composer dot. Json is is managed. You know, it's a part of the infrastructure. It's checked in to get you don't really want to modify it and then when you update your mediawiki have your local changes to composer dot Json get overwritten, so it is useful not only for the merge capability but also for having another place where you can Indicate you were you can include the requires Clauses the other extensions the if you're installing them with composer that you're using in your own environment using a requires cause the requires close actually has the full, you know, with the version information so helps to keep your versions of compatible. Whereas the merge just merges whatever happens to be in the path that's provided. So there is another benefit to having that. You're not local dot Json file within that the it allows you to separate your local changes with what's in
Cindy: meeting Wiki's composer dot Json file, then I'm not saying there's
Gergő: Shut up.
Cindy: Then I'm not saying there's no other way to do that. But yeah.
Gergő: I mean, but that's how you use composer. Normally you have a computer file for your project and then you put all your libraries into that file you put on your extensions into that file. The only thing that's weird for media Vicki's that you cannot put media Wiki itself into that file because it expects to be installed differently, but that's a problem. We could probably work it out and then compose a local G isn't would be
Gergő: renamed composite resin or something and that would be the composer. You're actually getting to composer and it would.
Cindy: Gergő: It would call in mediawiki as a library book somehow. That's messy but two other.
Mark: Is that that right that whole approach someone tried that and there was some work on making Kim mediawiki installable via composer but it's it's stalled basically.
Gergő: You don't necessarily have to make it installable. You just have to make sure that the Tendencies will be installed by composer.
Cindy: So all of media Wiki's can extend it
Cindy: to spend his days would be an it's composer dot Json and then you'd have a higher level composer about Json that would bring that in.
Cindy: Yeah. But at any rate it works it works, you know the way it is right now works if with the composer merge plug-in if you've got it in a separate file.
Mark: So that's enough about Hoosier. Could you go on to the next
Gergő: Okay. Yeah, just quickly going back to
Gergő: Brian's question about the Civil interface police a sort of stable and Air Force policy helps the foundation mainly in that they have to deal with not so many stable interfaces, but it makes it easier to change in their faces. So it's
Mark: But he knows it's also good for third-party developers to know what to expect.
Gergő: I mean having having stable interfaces is good for exact part is primarily for example like this, but the the actually changes now is that we are going to have less stable interfaces than we used to it's going to be a little more obvious for almost everything was stable and that stable and what's not but until now puts too much of a burden on the foundation. So So that that was the reason for that was the bush.
Cindy: I lied. I lied one more bit to that which is that the stable interface policy itself has been approved. But the changes to court interfaces to Mark which interfaces are stable has not yet been done that's on the road map for my team not clear whether we're going to get that into 1.35 or not. We're trying to but they're also a lot of other things that we're trying to get into 1.35, which is going to have a code freeze interest was about five weeks now. So so the policy has been defined and accepted but we still you know, since the 1.35 is an LTS. We'd like to get those stable interfaces to find but it's unclear whether we'll be able to beat the clock.
Gergő: Fact I completely forgot to that but that's also a big announcement that we have a date for the next release now, right?
Cindy: Yes. Yes. We do have an update on the neck on the release that the code freeze is going to be something like July 13th. I think it's a Monday and then at that point the release Branch will be cut and then the target would be to you know release candidate would be released and that we get to closure and actually do the 1.35 release early and August.
Markus: You said that's July 15th.
Markus: June 15 Tonight. Okay.
Cindy: yeah, I think it was the 13th, but I
Cindy: could be wrong. I don't have my calendar in front of me right now.
Markus: The AI could roughly in the meeting room around you knows.
Gergő: Putting on the new log or syntax. So the vector skin which is the default for the kapadia is being very factored Foundation once Wikipedia to look like more reader friendly and they want to make the skin the chrome parts around the content lighter. The one one part of the change is to make the logo smaller. So if G look at most side levels currently than it's a single image. And the top of the image is some kind of logo image and under that it's that is a site name and they want to split that into to have a separate site name text and the separate logo image and that means the configuration settings for local files change and at some point in the next release that's going to start storing the application warnings. So all the different logos for skins and but not need to be updated. And if you have your own sites that aren't locals will probably also need to be updated. You don't see the change on the kapadia yet. But if you visit Wikipedia beta so the staging version of Wikipedia, then you can look at How this looks?
Mark: I'm actually it's insincere working on the logo code. Maybe it's a good time to start. I think I have a bug that I found if the if the logo URL is not a static image. There's there seems to be issues there. But anyway that I so maybe now is a good time to post that bug and try to get some work on it anyway.
Gergő: Yeah, it's the time this is done by the baptism waiting room. I guess they are called just that now. Okay new Hooks and texting to do you want to talk about that or should I?
Markus: please talk about
Cindy: Feel free. Yeah, that's fine.
Gergő: So so the hook system has been revamped. That's part of the change is for fun and for supporting dependency injection that Because with study Cooks you you cannot inject dependencies and if you hook Handler is an object, then you can and on the other hand the developerworks wanted to support the interfaces for hooks So currently if you write a hook and and get the function signature from that is not very for the compiler to detect that but as if every hook would be defined as an interface than compiler can check whether you have implemented it correctly. Got the compiler time errors and the hook changes and you haven't updated your code and so on. So the old hook system has been replaced it to classes who container to Crown are and who container is kind of like a service container which and which holds all the which is where you registered your handlers and then whole cranberries across that he was to call the hooks. It's a it's not really documented yet. So so that's in the works called hooks have been replaced. So So I guess I'll give an update then Thunder is documentation, or maybe that's up to the stakeholders to write. I'm not quite sure that will be documentation in mediawiki code itself, but not sure how much of the week is
Cindy: I think I think Alex past killing.
Gergő: going to get it.
Cindy: Alex is the tech writer on our team. And I think she if she hasn't done it already. I think she is going to be documented that.
Gergő: That's good. So the way you register hooks in extension that Jason is going to change slightly and so the commercial extensions have to be updated at some point. Although of course one break, but for a long time energy in what?
Mark: So I have a quick question about this the way hooks are registered. Now, some people have used and abused by putting closures inside their local settings dot g dot PHP, you know putting a Even writing functions in their local settings and then hooking those directly into the into the w g hooks is that I guess that's going to make that invisible in the future.
Gergő: Well now it's not that a global variable. It's a container and you need to get ahold of the container and and was the closure to it. Other than that so you can still register sings in because I think so. I haven't actually used new system yet. So I'd be missing something.
Markus: All right. I have a question to you. Did do you have any indication of what the effect on the semantic mediawiki is? Because they use rather they also have a hook. I think they use hook objects as well and have an obstruction for that dude. Did they already comment on that system?
Cindy: I'm not aware of them commenting on it.
Markus: Oh, sorry. I just thought that was a good good sentence at The Stance of foundation in semantic mediawiki.
Cindy: Yeah, no. No, that's a hue you raised a really good point and you know, there's been conversations about the new parser interface. But I do not know that there's been any conversation about the hooking place.
Markus: Okay. Just wondering if there's some Community disruption to be expected.
Cindy: Yeah, that's a conversation. That should definitely play place.
Mark: So I think what we should do then is create an issue on the semantic mediawiki GitHub and say, you know, this is an issue. We need to make sure it's taken care of and at least at least and that is a good thing that you brought up the these changes care go because this allows us to you know, think about these things and what we need to do. I really appreciate that. Um, so I guess after this meeting I will go over there and write a bug about are an issue on GitHub for it. If there's a URL did that I can point you for the hook thing ours that is airing.
Cindy: I'll look after the meeting and I'll send you something mark.
Markus: Well, I'm pretty sure that it's at least I mailed to the meeting this bite him starting where he introduced that gives system.
Cindy: There was a recent mail here.
Gergő: They ought to hook system still exists a legacy system. So everything that works now this
Gergő: point keep working. It's just I didn't lie fertilizer.
Cindy: But for a while, yeah, it'll eventually yeah, it'll be it'll be phased out. I want to say that I heard at least a year. It'll be supported. so there will be a transition period
Mark: Well, yeah, but it's this is a perfect time for us to say to you know, whoever although James Hong Kong. Now know if he's got caught up in a name that stuff going on in Hong Kong. I haven't heard from him recently. Anyway, it would be a good time to get him thinking about.
Cindy: No, I agree. This is the time. Now that the hooks the new hooks infrastructure has been released now is the time to start adapting extensions to lose it. Yeah.
Gergő: The next stop is the abstract database schemas. So this was a very low-key change, but because it's it's volunteer different but scientific. He actually has a Second paralysis done for database schemas, which is going to hopefully replace Bergen over and over time. So if you maintain extension which has to create or change database table stand you probably know that currently you are supposed to write for different SQL files for for creating that table my SQL file sqlite file. Pasquale V integral because I think even protocol used to be supported when actually does that most of the extensions only support my SQL stuff breaks and predictability if you use for example, Microsoft SQL, if you use postgres, then it's even weirder because they have their own schema, which is not really compatible with the my SQL schema. So it was a horrible no man's land and and that is work now to Define schemas as abstract PHP objects or Json objects and culture and then use some of the functionality provided by Doctrine to transform that to SQL for any language supported by Doctrine. And that is ongoing work to convert the existing database schemas into left of segmentation. And this is something again this volunteer-driven work and it could use a lot of help. So if you have ever struggled with
Mark: Are you still alive?
Gergő: maintaining your schema changes then maybe this is something you might find it interesting to have out with and of course for this were called extensions. We have to be supported at some point even code is only at the beginning of the process now, so So have fun.
Cindy: This is going to add a little bit more to that. So one of the things so yeah, this is work being done here. I would have wished for our team to have capacity to take the worm work on because it's important work and and it's a great Improvement. But right now we don't have the capacity and so there's been done volunteer by volunteer. So, you know, I Echo what character says about Getting help to get this done the other implication of this. Was that something that was a blogger for beginning. This was the support for Oracle and Microsoft SQL server in core because as Gary said there was you know to support them with this to take some additional work and they were not, you know, they needed to to be evolved the code. So a decision was made. You know in collaboration with Developers for the those two databases to remove the support from Oracle and Microsoft SQL Server from core and then to provide a capability to allow databases to be added in extensions. And the agreement was that we would try and get that support in by 1.35 so that because the developers that support the Oracle and Microsoft SQL Server. Server implementations do so on an LTS basis and 1.35 is going to be an LTS. So we so right now we have a contractor who's working on the the framework the infrastructure code that's necessary in order to be able to have a database loaded from an extension and I've asked Mark to test out their approach you The Prana database that he built support for so that it's hoped that that that framework for allowing you to unload a database in an extension will be available by the 1.35 release and then those developers can go at go back and re record their support for Oracle and Microsoft SQL server in extensions.
Gergő: And the last news item is interruptions manager. So these are class was one of those are still is one of those glasses in lady Vicki which to everything and extremely hard to manage and one of the big ongoing initiatives of think this team is to pick up media Vicki into a modern object-oriented system where I've been as a single responsibility and you have stateless services and state objects, which do not have much business logic and and little step in that is moving all the options handling code out of the user class and interruptions manager options is user preferences basically, so all the stuff you see on the special preferences screen and then some And this is not strictly a functionally equivalent change because previously the the options that was stored in the user object. So if you had multiple user object instances, then they could have different state and now it's stored internally in user options manager and you only have one manager. So there are some very slight changes in Behavior. So if you have code which does something clever with user options, you might want to make sure That's still talking. If you just use options at the basic level, then it's probably not going to affect you in any way other than you will have to replace user get option with user manager himself different. The one method is the forget it, but that's just that they will change.
Mark: so I'm I'm sorry. I'm just I'm looking at the I turned on closed captioning for this and it's interesting how Google changes its mind about things as you go as it goes back. Anyway, it also had gerd. Oh talking about a baptism room somewhere. So I don't know like what? Okay. Anyway, um, anyway, I'm sorry. scatterbrain, um Is there anything else people want to talk about about changes the stuff that year ago was going over. I really appreciate Gary go bringing that up because it is hard to you know, synthesize or distill what all the things that are happening. And so, you know, that is excellent. Cindy do you want to do we want to not do you but do we want to talk about the tasks that we had thought about, you know, do we want to bring that up now or do we want just discuss that offline, you know some more.
Cindy: I'm not sure if we're ready to talk about that yet, you know past you know, if folks want to look at the meeting with key stakeholders fabricator work board and what tasks are there and you know, make sure that anything that you'd like us as a group to be working on whether we've got capacity or not. You know that we at least represent, you know have on there a list of things that are potential projects for us to take on and that was my Be a good time Mark for you to talk about what we're what we've been discussing recently as a board and the fact that one of the things that the reason Mark mentions. Me that he and I and a Vita had a discussion as a group as part of our board work to come up with a list of potential projects that we might want to once we get the membership. I guess. I'm just going ahead and talking about it Mark.
Mark: Yes, you are. Thank you.
Cindy: So once we get the membership model in place and people can actually pay to join the meeting with key stakeholders group. And we have an income stream where we can actually do work. The idea is that we as a community have insight into what things that would be useful for mediawiki users meeting with the developers to have access to that. We as a non Wikimedia mediawiki Community having the you know, the sum is greater than the parts, you know, joining our efforts together as a community to to put the Power behind some initiatives in the question is what would be a good first or a good list of the first five, you know over time projects that we might work on. Okay. So I'm just going to throw it out here since we already came up with an initial list just to give you an idea. I take back everything I said, so from the conversation that we had with Evita the other day. And again, this is not a final list by any stretch. to the imagination with this is a list of the kinds of projects that we might be interested in getting involved in one of them is what we call pingback version 2 which is enhancing the information that dingbat currently returns to have more information so that we can get better get a better sense of what the state of the media Wiki sakiko system is and who's using what so for example what extensions are loaded and what versions and this is sort of Of a hybrid thing with API wiki wiki apiary as well to take the benefit of some of the information that's gathered by wiki wiki apiary some that's gathered by paying back see what may be a unified approach to being a way to track what the status of mediawiki usages. That was the first thing the second one and I think Mark mentioned this in one of the riot channels recently. G is something that would allow Wiki manager to schedule cron jobs that are related to the the working the working of the wiki and so to have a way to add and to kick off cron jobs from some sort of management interface associated with the wiki
Mark: Just so just so we're all clear on
Cindy: and go ahead.
Mark: that. That's not just a user interface thing. That's also you know something that would be exposing that functionality to extensions because extensions require you right now to go set up separately cron jobs. So anyway, I'm sorry.
Cindy: Yeah, no, no.
Mark: I just want to make that clear.
Cindy: No, that was a very good and it was the semantic tasks was one of the extensions that you're using as an
Cindy: example that in order to have it run. It needs this Cron job. And so, you know to have a supported interface for extensions for that. The next three came from a list of requests from Vitas users one. Is some way originally it was terms of it more as a global, you know higher level edit conflict capability, you know, the issue that if you've got two people that are editing a page the same time there is an edit conflict mechanism, but she wanted her producers wanted to have more of an idea a priori of somebody else's actually editing the page at the same time. There is an extension called Who's online that does Just in general for the wiki gives you a way to have a list of you know, and what it does is basically it just you know, as a page is accessed. It stores information in a database table that the expires after 10 minutes. So it's really coarsely grained. It's not like he's not going to be a foolproof way, but it's a way to get a sense of somebody else is also looking at the same thing you are and so The idea is to expand that so not as per Wiki, but per page view perhaps of getting a sense of somebody else is getting ready to edit the same page that you are that you might pick up the phone or send them an eye in and say, you know, let's not conflict where I'm taking care of that or whatever the next one was getting the collection excerpt extension working again. I'm not sure why it's not working. I'm gonna go probably has more insight and I think Mark also on that. That but the point is is that care collection is not completely working and it would be great. If it were a lot of people liked it when I did.
Gergő: Collections to though because collections used to be backed by that's the name also Jake.
Bryan: the offline later
Gergő: Also Jake. Yeah. Yeah, they're fine content generated and the offline content generator was basically discarded by the foundation. It was too much effort to maintain. I imagine that's not something they want to take over because it's a lot of effort to maintain. And without that it's not very clear. So the collection six expansion you can still use it to manage collections of articles, but it cannot really do anything with those collections. So I'm not sure if that's
Gergő: You in theory you can use video press to print books from set of Articles and I have no idea if that's working but not but that's up to be depressed. I imagine.
Mark: So the there is another extension that dang. I forgot. I just had his name and I forgot it again the wiki Works people were making that allows you to specify, you know, pages and front matter that would go into a PDF creation via docbook and I thought that we could Buying that with collections so collections can you can create a book and have front matter and back matter and then you know the docbook export takes care of the PDF generation. I'm not sure I've known this is only a concept right now. I'm not sure this would work but it's out. I have users that really want this ability. So I'm probably going to be working on that.
Rich: Ike Ike
Cindy: I'm sorry.
Mark: What's that?
Cindy: What was that rich?
Rich: I'm sorry from wikibooks write your own car on and Ike.
Mark: Like it was like yeah.
Rich: That's all.
Cindy: So then they go ahead.
Mark: Um, and I I'm sorry Cindy. I wanted to go back to this is online thing and asked Marcus. I believe blue spies had something like that is that true that you used to have a way to are still do have a way to notify someone. Hey, hey, someone is editing this right now and do it real time.
Markus: Yes, we have so in blues price. We have a ping system that is continuously pinging the server and make sure that the session stays on even if people have like edit mode on for a long time and we kind of transfer information there. So when a person starts editing a page the Ping sends the information back to this to to lose by said to me your keys. And then it's get it gets distributed over other pings of people who using the same who seeing the same page. It's not immediate. So because of Cervelo the king something like it you cannot actually tweak it of course, but I think we thing every 15 or 30 seconds. So the max lack is like a minute until you get the information but you get depending on how so normally I think it's 10 seconds so much. Slag is 20 seconds until you know that the person is editing the okay what I found actually really cool is the information then when you just reading a page but you know that somebody's currently editing editing that page. So for those people it's also good information is not only putting Collision, but it's a collision detection or prevention but it's also for this for information that there is maybe some immediate new version of that page of coming.
Cindy: right and it's also sort of a community thing, you know that, you know knowing that somebody else is there with you can also you know
Cindy: sort of you know, there's the whole social aspect and things too. Yeah, it gives you a sense that
Markus: totally so
Cindy: you're not there alone.
Markus: Yeah, totally so so I wonder if so, if you start working on that we might also collaborate on that induced by squared gradually. I see pulling out partial portions of the code that are now depending on the whole blue spice framework and make them available as like a standalone Library so you can just use them and we might reprioritize our order of you know doing that.
Cindy: Yeah, that would be great that
Markus: So if that helps.
Cindy: That would be you know, if that already exists and it would be possible to extract it. That sounds like really useful functionality, you know, just
Cindy: conversation with a I used to be a college professor and one of my former colleagues who's looking at, you know how to redesign education in this new world where things are being done more remotely and she was talking about, you know, visiting the you know, these online classroom management applications where people no go and see, you know what the assignments are whatever but it's not a collaborative experience and what we've sort of you know in the conversation realized is that the difference is you know, she was talking about if you all remember second life and there was a whole period where people were looking at, you know teaching second life and you know, I've heard also that people are there was somebody who tweeted that they're doing their meetings now and what is it Red Dead Redemption or something? So they sit by the campfire and here the wolves howl. But the key there is that is that community that you're there together and you know, it's not just that they're your they're looking at information. But you know that other people are looking at the same information at the same time and that you know, even if you're not talking to each other just that presents the fact that you're all there together creates a
Cindy: different experience. And so that's where I think that this kind of thing could also be helpful there for giving more of a community
Markus: we do have some experience with that
Cindy: feeling about editing or over.
Markus: So we have an in addition. We use that mechanism or similar mechanism to to show who's online in a Wiki so that only goes for small-scale Wiki's, but it's cool
Markus: I go into my company Wiki and I see that three of my colleagues also working in the wiki know that is the
Markus: He know that is the gift as you said that gives you a sense of hey, I'm not alone here and even that sometimes, you know crazy times of the day you see This person is also here. So I'm not the only crazy person neither as morning or whatever. Yeah, so I think that gives especially for small communities. That is a good good way to do things and give them a sense of pride.
Cindy: I'm getting more and more excited about this as you know, I want to bump this up higher on the list. Yes. I think this could be very cool. So just briefly the fifth thing that was on the list probably won't get us quite as excited which is notifications that are currently sent in just plain text emails aren't very pretty and people don't like them very much and they really like it to be more multimedia content.
Mark: But I have a question about that and
Cindy: a great idea
Mark: gergõ may know something about this when I upgraded to 134. I've been using 127 when I upgraded 134. I noticed that the edit notifications going out had were HTML email. Is that a chord change? Is that a change in Echo? You know, where do you know anything about this?
Gergő: I don't have a question specifically. I know that the registration team has have been changed and I'm not sure if that's done in court or in growth experiments, but that truth exists some bad. I don't think that it only occurred
Mark: Okay, yeah.
Gergő: notifications about human budget lists, but so I did notifications and something on your watchlist is edited.
Mark: Right. Yes, um and maybe I don't know. Anyway, I can go look in the code and figure it out where it came from, but it looked like the hey this this page has been changed. It looked like those had been updated so And there's now a preference that
Cindy: I want to say that.
Mark: there's now a preference in that you can choose HTML or plain text emails.
Cindy: Yeah, I want to say that when I added a covid of occasions to comment streams that there was something in the code that indicated that there was a choice between plain text in HTML, but it's been a while now. So it's just more of a vague recollection. But but that came to mind when
Cindy: dimension and I'm like doesn't do that.
Gergő: In general about Prosecco and maybe
Gergő: kick or support HTML emails then support them in very different ways. But it formatively code you would
Gergő: just have to write a templates and and the core by default just tries to send you over a similar notification to what you see in the little drop So that's HTML by default but not down. particularly pretty and there is actually we're going on right now to make the turn and watch lists. Echo echo notifications, but that hasn't played that yet. So that's kind of be like you so but if you are interested in I will send
Gergő: you a link.
Cindy: Yeah, it was it just watch list She was talking about I don't recall notification. what whether she was talking about
Gergő: I think yeah, I think so.
Cindy: Mark: This was edit notifications that I saw so, you know, it wasn't watchlist notifications. I don't think maybe it was now I have
Gergő: So what?
Cindy: Yeah, I can't remember what she was.
Mark: to go.
Cindy: I can't remember what she was occurring to his/her users.
Mark: Well, I remember the email that I
Gergő: What kind of?
Mark: so I'm thinking about the email like got and I'm trying to I'm not maybe that was just a watchlist notification instead of the the email that shows you the differences. But anyway.
Gergő: I mean you don't get to discussions about your own at its if someone needs then you get identification because it's of your watchlist you can get a notification because it links you to a page you have created. I think those are actually the two options. What are you can get amplification because that b**** happened to the orthotic page on done. That's a completely different system. And the that has been reflected. Right? That was a big change to use a talk notification that I'm sure I have no idea if that involve Danny. Visual changes, but that was definitely work on that.
Mark: Cook anyway. Yeah, I Sorry, I'm watching my subtitles and they're not matching what I say. Anyway, go ahead.
Cindy: Yes, I that was the end of the list and that was a really long answer to or an answer that started out with no. No, I don't think we should talk about this now. So sorry about that. But yeah, that's what I had.
Mark: No, I'm glad that we talked about it.
Mark: I'm you know, it's because all those things I think it gives us a better idea of hey what are people actually interested in it got us talking about. Hey, this is actually something that builds Community around the wiki so, you know,
Cindy: And if it has any other ideas about things that we could also take on as a project for the stakeholders group, you know, either just, you know, let let your local board member now or you know added to add it to the fabricator work border brother.
Gergő: going back to bed.
Mark: And that now you can see that Marcus is going to get all these requests from Germany, you know, all these people coming to them Brando's off the internet.
Markus: I only in the internet was an avatar on the pseudonym, so My student name is Mark a
Gergő: It's going back to the previous item for the second time is the
Gergő: That is the comitia foundation is working on push notifications. I wonder if this is interesting for you markers because if you want to do like presence presence tracking nicely than you don't want to pull So you would either either have a this advert. socket open or you would have some kind of push notification system as I understand. Those are two nice technical options. And push notification is something the foundation is working on and I am not sure how flexible it is, but maybe it's worth reaching out and making sure that if it's something that can cover Furious cases, it's mainly to it's mainly for the benefit of the Wikimedia apps. So the Android and iOS app and I think at some point not soon but at some point it's going to involve converting a code to push notifications. But it would certainly be nice if other extensions could make use of the capability to do State updates and and I don't know how much they have solved about that aspect.
Markus: Right. That's that's a really good Hinton. I would definitely try to get hold of someone in the push notification. I've seen I've read about it and I have to see if that fits that purpose as well. Cool.
Mark: So if Brian and or Rich could tell tell us a little bit about the wiretap extension how it applies to this because I saw you both mention it and I know of it, but I haven't used it. So
Bryan: Go ahead Ridge.
Rich: Oh, okay. Well, I was going to say maybe a demo I couldn't show my screen right now and show you what it does it. Will that be helpful?
Mark: Yeah, yeah.
Rich: Okay. Now I turned off my camera present.
Bryan: Another separate, but is there any relationship between watch analytics and wiretap is far the label that's used?
Rich: Yeah, I can let me elaborate a little bit on both. So are you guys no you're not. All right. You should now be seeing on the screen. Somebody let me know.
Mark: Yeah, I can see. Yeah, go ahead.
Rich: Okay, so in the URL at the top you can see it's a special page called wiretap and what it is is for different ways to look at site utilization. The default view is a per-user refresh. So every time a user logged in or otherwise visits the site. It generates this table and all this data is being stored in an additional table added to the database. This individual user data is less valuable than let me see if the chart works. Okay. So this is a chart showing unique user hits over time with different rolling averages applied. So the individual blue dots are showing me the number of unique users. Let me see if you're showing me the number of unique user hits over time. And so at the at the simplest level the extension is basically just creating this kind of Orwellian record of everyone who ever touched the site that information is not as interesting to me as much as when my management at the end of year says, you know how rich how many users are using the site and so if you simply have this aggregate number of times that somebody refreshed the page the information can be misleading. So being able to have this extension generate a plot on to me the green the green line the light green line, which is the 20-week day moving average. No weekends is the best expression of how many people I have on this particular what? So for example, if I go to my landing page, this is a Meza. This is a mess of deployment. So this is a Wiki Farm. There's probably 12 or so Wiki's there and I can visit any one of them and get this kind of data. Then there's the unique user page hits. It gives you both access to the raw data so I can use the external I can. Can mine this data in the background and then I can aggregate this data with the data from the other sites and I can put these nice plots together that show the aggregate utilization of every Wicked on my farm in the NASA world. We talk about we use what's called sand plots. Have you guys ever heard of sand plots? Let me see if I can pull up a quicksand plot. So this is green or this green and purple graph is a sand plot. So if you've ever seen where people take multi colored sand and they fill a jar with different layers and it's pretty that's where the plot gets its name. And so you could imagine like the green the green would be the utilization of one Wiki The Purple would be the utilization of another and then the aggregate would be the you know, the sum of all so really from my perspective as an Systems older my desire is to be able to show management from one year to the next how much employee engagement I have on the site. I try not to let people know that it is tracking their individual clicks because people get a little freaked out on that. But the but the bottom line is is that wiretap does put all that data into a table in the database. So I think that Whose Line could do a very could very easily. Determine who has hit, you know do a quick search to see who's hit page that you're editing. If you're looking for just an example of you know, what code is required to do all this or or if you want to keep the two extension separate and just have them have an option that allows one to mine the data from the other you want to hear more or is that a pretty good overview?
Bryan: Edwin link to it in the chat, but I looked at what would be linked to the usage of a page but that you can use that to build in on any payment but a little button, you know who's been to that page which can be helpful in accompanying if there's like their manager will be ticked that went out with like fully charge your time like this now and then Griffin see who's actually gone to the Penguins to see that change which is pretty handy, but I'll also it can be a little unnerving for some people to know that every clerk is being tracked. So sometimes it's better not to advertise the others much.
Rich: Right and Brian, I think you're referring to watch analytics, right?
Bryan: No, that's a chat. It's a wiretap wing. So it's your domain and then special wiretap and filter page equals and then whatever the page name is. And so that like if you could wiretap and you want to filter on any page, that's what you'd get. But that means you can also build that in the link. So you reckon you can put it on a page to have some music.
Rich: I'm so sorry. Let me let me do that. So right so this is my main page and if I view the wiretap, there's a what Brian is talking about is wonderful point. I'm sorry. I forgot to bring it up is on the right hand side of everybody's name. There's a filter link. And in the second column on the right hand side of every page that has been visited. There's a filter. Is this are we this is what we're talking about.
Bryan: Yeah, yeah.
Rich: Okay, so I can so I can go to the
Bryan: Thank you.
Rich: main page. I can see that my that I visited the main page just now and I can filter on the main page and it shows me a time history of everyone who's ever seen the main page. And so that's good.
Bryan: and then I'll all I'm saying is work at the URL there. You can kind of see how it's built up and then you can just kind of reproduce that to serve that on any printer. If you want to give a link to a page in order to a Pages view history without having the user a professional pagers find the lat.
Rich: Oh, yeah.
Bryan: that they had been seen and then filter on it.
Rich: Yeah. Well Brian, I think Brian tell me if I understand right you're saying that wiretap. wiretap. or something that we can drop into a page that would show who the last three visitors are and when
Bryan: Yeah, I mean, how do you even know I actually just have a link that auto how I'm on some pages? Bild, you know the link that URL there so on any page you can park it and you can see that page from but holding the baby out and doing what we did the last 5 or 10 would be even better.
Rich: Yeah. Now the downside I know that if if Greg rundlett were here free file, he would say that this extension doesn't scale well. And that because it is literally tracking every click from every user that data starts to become overwhelmed and so in my world, you know, I'm probably looking at 100 users. with you know light to moderate daily use if I imagine if this were a Wikimedia site, you know with thousands of users might those tables might be problematic
Mark: Well right now I don't think you would do this on a site of Wikimedia size with you know, SQL and tables. I think you would use push notifications and UDP channels like IRC, like they're talk like they do our have in the past. I'm not sure what the youth right now.
Gergő: videos using Kafka and I currently but we used to use UDP. Yes.
Rich: So that's that's beyond what I understand. So I trust your judgment.
Mark: Well, it's past time. We've been here more than an hour. I didn't want to keep anyone from you know lunch or whatever.
Cindy: I just pasted a link in the in the
Cindy: chat. I didn't realize it was happening today. But in 20 minutes, there's going to be a tech talk by Evan prodrome. Oh the product manager of my department on the API portal and API Gateway. If you're interested, the API portal that Marcus is colleagues are working on it. Hello world for us and and being associated API Gateway project.
Gergő: Isn't that the silent Friday violation or something?
Cindy: Yeah, exactly. Evan had sent out the announcement last nine last night at nine saying just trying to get this in before silent Friday. I have no idea I guess because they had previously had the tech talks already scheduled for Friday's and they didn't reschedule them. But yeah, it's I right away. So we do now have at the foundation silent Fridays and they're apparently Not So Silent. so cool.
Cindy: Just wanted to sneak.
Gergő: So what?
Mark: time on social media Wiki stuff today
Cindy: Yeah, exactly.
Gergő: Yeah, I wanted to quickly test about docs. What do you think about taking on extension management as a project? I know it sounds big and scary. But if if the composer Burke if the compass a type c works out then that's actually a pretty nice connection point to extension
Gergő: management because then extension management is basically about managing composer
Cindy: I think that would be
Markus: It's big. It's big and scary. He's gone. No, but I think
Cindy: What happened?
Mark: He just he just drops that and leaves.
Markus: here I go. My my sense on this is big and scary. We should not really. Talk to loud about it. But obviously of course composers might be one step in that world that leads towards an essential management without You know without having all the burden of thinking in any big projects, so that's how I feel about it.
Gergő: So I think having a user interface for like browsing and selecting extensions is a very well-defined eject the composer RFC would make
Gergő: that immediately useful because you have that list you can trivially generate the composer file and we already have some infrastructure in place for collecting extension data that's currently used for horrible Lua hacks in medieval Couture, but that could be reused for
Gergő: but that could be reused for a portal.
Mark: Is there a you know, what would be ideal here go is a fabricator tasks that we could put on the on the work board. Is there anything for that? Because I do I did hear them talking about the extension management stuff in the in IRC meeting RFC meeting. I'm wondering if there's any any task or right now.
Cindy: There is an extensive amount of I'm not sure if it's really the same hotels. scope I can look for it. But I think it might be slightly different and it certainly doesn't assume composer as a substrate.
Cindy: Cuz we didn't have that.
Mark: Well, whatever. It was did not assume composers a substrate because I started thinking I forget who this was an RFC meeting but he forgot he started talking about. Oh, hey, this is this bit would be useful for this. So anyway, um, yeah be useful if there was a task or some, you know specified thing with more details on that.
Gergő: I can certainly create that. I'm not familiar with the existing tasks too much. But if they decide if synthesized it doesn't exist and probably doesn't exist.
Mark: That would be great.
Cindy: Not not with respect codes or but I'm
Mark: Thank you.
Mark: Yeah. Well, I mean it's quarter till one going to let you all.
Cindy: It's time.
Mark: So I'm going to let you all I feel I don't want to leave because y'all are y'all are talking about so much good stuff right now.
Markus: I have to leave her as well.
Cindy: It's time.
Markus: So half a night.
Mark: Yeah, see I'll let Marcus Marcus is leaving all the cool.
Markus: Yes, I'm the Ice King.
Mark: People are gone.
Markus: I'm the ice break and that that person who is the first to lease, but that's Lex. Actually we don't have to have a bad conscience mine.
Cindy: Yes. That's right. Let's select left hours ago.
Cindy: See y'all later. Take care.
Mark: All right.
Bryan: I agree.
Mark: See you Peter Peter
Gergő: spill it
Mark: You just showed up. Bye.
Rich: Thank you guys for letting me be part of this. See you later.
Bryan: But out of curiosity. I'm you need a meet yourself. If you want to talk about how did you the meeting that started like an hour before you showed up and we have some old invites that are out there that started an hour later. So we're trying to make sure we do a better job about communicating the right time. How did you know about the meeting? You're still you're still on mute. Somehow you need to unmute I can see that you're muted on the
Peter: Oh, there we go.
Bryan: yep. There you go.
Peter: Yeah, I don't know I got an email.
Peter: I got an email. I think I got an email and it told me there was a riot message. So I clicked on that and then offered a link to the meeting which I had no idea when it would start but it was already in progress.
Peter: I don't know why those things take so long and I never seem to have enough information to schedule these beatings. Although today. I have so many simultaneous online meetings. It's ridiculous. So but I can sometimes just come if I know do you already know. When the next one will be I could be
Bryan: Yeah, yeah.