[04:19:12] I'm rewriting it completely myself now. [04:21:35] I learned a bunch of things about Wikifunctions' JSON structure along the way. [04:22:55] I tried but I don't know any lua so I was just stitching some random things I googled together and it didn't work [05:12:48] Please don't conclude from what's happening now that I do know Lua :) (re @Feeglgeef: I tried but I don't know any lua so I was just stitching some random things I googled together and it didn't work) [05:13:23] I'm just _writing_ some Lua that _appears_ to do what I want in a certain narrow use case that I need. [13:48:48] Wikifunctions quite often uses labels of ZObject keys as user interface strings. For example, in https://www.wikifunctions.org/w/index.php?title=Special:CreateObject&uselang=en&zid=Z14&Z14K1=Z18784 , "function", "code", and "composition", are labels of keys ("Implementation" is a label of a whole object). [13:48:51] Now here's a question. "function" is Z14K1. Is it always safe to assume that for such cases, the page Z14 has exactly one array of multilingual values identified as K1? Is it conceivable that there is more than one somehow? (It seems unlikely according to what I know, but what I know may be incorrect.) [13:48:51] And, to clarify, if it is used as an interface string, is it definitely a multilingual there? [17:11:51] Not for persistent function calls (re @amire80: Now here's a question. "function" is Z14K1. Is it always safe to assume that for such cases, the page Z14 has exactly one array ...) [17:12:06] Otherwise is fine [17:17:52] I'm not sure that I understand. Can you elaborate and give an example? (re @Feeglgeef: Not for persistent function calls) [17:19:03] A Z7 looks like this: [17:19:04] Z1K1: Z7 [17:19:06] Z7K1: Z801 [17:19:07] Z801K1: Z6 [18:00:25] Yes. Z14K1 is the function that an implementation implements. It is specified for the Implementation type, Z14, (on page Z14) as the first Key, with Z3K3 ([en] ‘label’) being an object of type Z12, an array with elements of type Z11. (re @amire80: Now here's a question. "function" is Z14K1. Is it always safe to assume that for such cases, the page Z14 has exactly one [18:00:25] array ...) [18:02:30] Right but keys can be labeled and not be of types (re @Al: Yes. Z14K1 is the function that an implementation implements. It is specified for the Implementation type, Z14, (on page Z14) as...) [18:04:40] How do you mean? A key is always a Z3 and its Z3K3 is always a Z12. (re @Feeglgeef: Right but keys can be labeled and not be of types) [18:25:36] It could be a Z17 (re @Al: How do you mean? A key is always a Z3 and its Z3K3 is always a Z12.) [18:36:47] The meetup to talk about what happened this year in Wikifunctions will start soon and if it started the link to the conference room will be published here. So if you are interested in attending at the meetup you can join. [18:44:01] https://meet.google.com/gbt-hbuj-ngr [18:50:57] Yes, but Z17K3 is also a Z12 (according to the third key’s Z3K1). (re @Feeglgeef: It could be a Z17) [18:52:08] Yes (re @Al: Yes, but Z17K3 is also a Z12 (according to the third key’s Z3K1).) [19:01:24] meet.google.com/zyj-tbxd-ycf [19:25:48] Can we get a Wikitext type that renders as wikitext? [19:50:17] https://t.me/Wikifunctions/16641 Maybe we’ll find out “soon” (re @Feeglgeef: Can we get a Wikitext type that renders as wikitext?) [20:36:00] So I just attended that video meeting organized by @hogue_456 , and with help from Feeglgeef , I made https://www.wikifunctions.org/view/en/Z21230 , which actually works [20:36:57] it's far more complicated than I imagined it would be, but yeah, it works [20:37:05] and also a composition implementation for https://www.wikifunctions.org/view/en/Z19658 , which doesn't work, but Feeglgeef says that it's because of a bug in Wikifunctions [20:37:34] There's probably a more simple way to do it (re @amire80: it's far more complicated than I imagined it would be, but yeah, it works) [20:38:30] for https://www.wikifunctions.org/view/en/Z21230 , I'd also love to make some validation. For example, to verify somewhere that the lexeme is actually in Russian, because this function is expected to output only Russian. [20:39:36] Also, I was surprised that Wikidata doesn't have lexemes for Russian adjectives for "Spanish" and "English", even though it has quite a lot of Russian lexemes in general. I tested with lexemes for "Hindi" and "Hebrew". [20:39:40] We could make an if(languageoflexeme(lexeme) = Russian): doLogic() else: throw (re @amire80: for https://www.wikifunctions.org/view/en/Z21230 , I'd also love to make some validation. For example, to verify somewhere that ...) [20:39:52] Yes, something like that. (re @Feeglgeef: We could make an if(languageoflexeme(lexeme) = Russian): doLogic() else: throw) [20:40:19] Although it probably means doing more compositions, which, I've got to admit, is not entirely fun. [20:44:46] Is there something specific about compositions that isn’t fun for you? (re @amire80: Although it probably means doing more compositions, which, I've got to admit, is not entirely fun.) [20:45:15] Inexperience? [20:45:33] Compositions just aren't the right no code solution [20:45:55] It still requires experience and knowledge to use correctly [20:47:33] Lack of documentation. (re @Al: Is there something specific about compositions that isn’t fun for you?) [20:47:45] And this (re @amire80: Lack of documentation.) [20:49:09] The only documentation that I know about making compositions is at https://www.wikifunctions.org/wiki/Wikifunctions:How_to_create_implementations#Composition . It looks too short, it definitely has several mistakes, and it doesn't explain everything. [20:49:10] Let’s do documentation, then 🤷‍♂️ (re @Feeglgeef: And this) [20:49:39] I fixed a few things there recently to the best of my (very limited) understanding, but it needs much more [20:49:57] I'm too lazy (re @Al: Let’s do documentation, then 🤷‍♂️) [20:50:09] Someone else can [20:50:36] w:WP:SOMEONE ELSE I think is the link [20:51:20] [[w:WP:SOMEONEELSE]] [20:51:51] I don’t think I ever looked at that. I’ll get round to it soon. (re @amire80: I fixed a few things there recently to the best of my (very limited) understanding, but it needs much more) [20:53:49] And [[w:WP:SEP]] (re @Feeglgeef: [[w:WP:SOMEONEELSE]]) [21:12:00] There’s not much there that is incorrect. We should probably explain what a composition is and how we decide what it should contain. Is that the sort of thing you have in mind? (re @amire80: I fixed a few things there recently to the best of my (very limited) understanding, but it needs much more) [21:25:36] How did you learn all this without documentation? [21:26:16] Experience (re @amire80: How did you learn all this without documentation?) [21:26:30] It's like the US and college [21:26:36] Like, I see all those menus and recursive trees with "Function call", "Argument reference", etc., and I don't understand how can I even start getting any experience. [21:27:05] It's extremely cryptic. [21:27:22] I started with writing things for existing functions in JS [21:27:52] That gave me a good amount of experience with the function model without dragging me too deep and keeping me motivated [21:28:09] I've been programming for about thirty years. I've been contributor to Wikipedia and other Wikimedia projects for twenty years. And I barely understand anything in Wikifunctions. [21:30:04] lmao same [21:30:11] I'd imagine it be really easy if you have good OOP knowledge (re @amire80: I've been programming for about thirty years. I've been contributing to Wikipedia and other Wikimedia projects for twenty years....) [21:31:01] I learn OOP from a couple of books and wrote a pretty big project using it in 1996. [21:31:23] But maybe that's just because I know it (re @Feeglgeef: I'd imagine it be really easy if you have good OOP knowledge) [21:33:57] When I started contributing to Wikipedia twenty years ago, the documentation for new contributora was pretty okay. At least for me. Evidently, it was not easy for everyone then, and it's still not easy for everyone now. But myself and thousands of other people managed to figure out how to write Wikipedia articles just from Wikipedia's own help pages. This is not my [21:33:57] experience with Wikifunctions. [21:34:43] Well Wikipedia would have been around for 2 years longer than Wikifunctions at that time, so give us a minute (re @amire80: When I started contributing to Wikipedia twenty years ago, the documentation for new contributora was pretty okay. At least for ...) [21:37:24] The history of Wikifunctions begins in 2020, not in 2023. Lots of documentation was written already in 2020. I read (and translated) a lot of it. But it helps me very partially. [21:39:02] Wikifunctions is all “documentation”. Every page in main space precisely specifies an object. Of course, it’s not written in a very human language, but this is the challenge. Everything we add in human language makes us less universally (in)comprehensible 🤷‍♂️ (re @amire80: How did you learn all this without documentation?) [21:39:08] yeah, I think this is going to be the big challenge of Wikifunctions. There are constantly complaints that Wikidata is too difficult to use, to explain. [21:39:36] which causes adoption problems [21:40:21] wikifuctions is 10x worse in pretty much every way [21:40:30] I mean, one could also say the history of Wikipedia started in 1996 or 2000 but whatever (re @amire80: The history of Wikifunctions begins in 2020, not in 2023. Lots of documentation was written already in 2020. I read (and transla...) [21:40:46] Nuh uh (re @wmtelegram_bot: wikifuctions is 10x worse in pretty much every way) [21:40:59] Respectfully [21:49:07] then I suggest you try to explain it to an average English Wikipedian with no existing knowledge of Python or JavaScript and see how far you get. [21:49:37] "Code on a wiki" (re @wmtelegram_bot: then I suggest you try to explain it to an average English Wikipedian with no existing knowledge of Python or Ja...) [21:50:43] "with a couple exceptions and differences" [22:02:13] No, Wikipedia definitely started in 2001. The general ideas of wikis started earlier, and by a weird coincidence, I happened to be familiar with it a little bit since 1997. (re @Feeglgeef: I mean, one could also say the history of Wikipedia started in 1996 or 2000 but whatever) [22:02:47] "a couple" 🥳 (re @Feeglgeef: "with a couple exceptions and differences") [22:02:59] Yes, but you say the concept and documentation of WF started in 2020 (re @amire80: No, Wikipedia definitely started in 2001. The general ideas of wikis started earlier, and by a weird coincidence, I happened to ...) [22:03:42] The concept of a wiki and Jimmy Wales owning an encyclopedia started in 1997 and 2000 respectively [22:07:11] AntiComposite, I /kind of/ understand these complaints about Wikidata. I mostly disagree with them, but I hear them and I understand them. Ignoring them is not smart, and they should be addressed. And yet, Wikidata has thousands of editors and lots of consumers (hard to say how many exactly). And Wikidata acquired them quite quickly. [22:07:54] yeah, at least with Wikidata I've been mostly successful in teaching folks how to use it [22:09:05] My theory is that Wikidata acquired users quickly because literally the first thing that its developers did when they deployed it was to integrate it with Wikipedia in a way that added a feature that lots of Wikipedians had been begging to have for many years (centralized interlanguage links). [22:09:36] The AW team is working on that (re @amire80: My theory is that Wikidata acquired users quickly because literally the first thing that its developers did when they deployed i...) [22:09:48] It's been quite slow, though [22:10:58] This was 2013 https://meta.wikimedia.org/w/index.php?title=A_proposal_towards_a_multilingual_Wikipedia (re @Feeglgeef: Yes, but you say the concept and documentation of WF started in 2020) [22:16:33] or autofilled templates (re @amire80: My theory is that Wikidata acquired users quickly because literally the first thing that its developers did when they deployed i...) [22:16:48] Such as ruwiki and azwiki infoboxes [22:17:01] I don't see a mention of a wiki of functions here (re @Al: This was 2013 https://meta.wikimedia.org/w/index.php?title=A_proposal_towards_a_multilingual_Wikipedia) [22:17:22] One could also trace the idea of an encyclopedia to the 1800s [22:17:37] Give us 200 more years and we'll catch up [22:26:26] That came a bit later. (re @nerim4n: Such as ruwiki and azwiki infoboxes) [22:26:40] And never became universal, unfortunately (re @amire80: That came a bit later.) [22:47:37] I think that definitely helped. it quickly became the way to handle interwiki links which meant there was a much higher chance that someone would end up on the site in the first place, whereas wikifunctions currently exists in a little bubble that's difficult for people to stumble across (re @amire80: My theory is that Wikidata acquired users quickly because literally [22:47:37] the first t [22:47:37] hing that its developers did when they deployed i...) [22:49:02] one thing that probably isn't helping is that there's no obvious way to create a function [22:51:51] wikidata has a "create a new item" link right in the sidebar, the closest wikifunctions has is the "suggest a function" link on the main page, which sounds like other people are in charge of creating functions, not like something you can do yourself [22:54:44] (I still don't have any idea where the link is... I know I found it once after going to loads of pages and almost giving up, but I've since forgot ten which page was the right one) [22:55:22] The “create an object” link on the Community Portal, is a link to create a function. (re @Nikki: wikidata has a "create a new item" link right in the sidebar, the closest wikifunctions has is the "suggest a function" link on ...) [22:56:29] It’s also at the start of the Suggest a Function page. (re @Nikki: (I still don't have any idea where the link is... I know I found it once after going to loads of pages and almost giving up, but...) [22:56:56] neither of which are where I would think to look :P [22:59:24] No. There’s nothing to stop us putting a link on the Main Page or in the sidebar. (re @Nikki: neither of which are where I would think to look :P) [23:05:43] It’s also in the Create a Function section of the Introduction. (re @Nikki: neither of which are where I would think to look :P) [23:14:19] I have a line of JS to do this (re @Nikki: wikidata has a "create a new item" link right in the sidebar, the closest wikifunctions has is the "suggest a function" link on ...) [23:15:05] I'm going to merge that and my don't copy script and my don't change my language script [23:15:07] I know it's very simple for experienced users to do, but that's the wrong audience (re @Feeglgeef: I have a line of JS to do this) [23:15:41] We'd need someone with interface admin to make it a gadget (re @Nikki: I know it's very simple for experienced users to do, but that's the wrong audience) [23:15:46] I'd be fine with that [23:15:58] someone with interface admin rights could just edit the sidebar [23:16:06] Yeah [23:16:46] I'll RfIA on top of my RfA. I don't expect it to go well, but whatever [23:22:26] Ah, sorry… I hadn’t noticed you were trying again. Happy to support RfA. (re @Feeglgeef: I'll RfIA on top of my RfA. I don't expect it to go well, but whatever) [23:43:18] Looks like I have a permission to edit the sidebar. Maybe because I'm global sysop. [23:43:24] I've just tried adding it. [23:43:33] Yeah (re @amire80: Looks like I have a permission to edit the sidebar. Maybe because I'm global sysop.) [23:43:35] I still don't see it. [23:43:40] I expected that page to be an introduction to what wikifunctions is. not sure I ever looked there :/ [23:43:42] the places that I would probably look first are the catalogue (if it lists existing functions, it will probably tell me how to create a new one to add to the list), the faq ("how do I create a function?"), the help link in the sidebar (there's probably a help page for how to create a function), and special pages (special pages are normally listed there) (re @Al: It’s [23:43:42] also in th [23:43:43] e Create a Function section of the Introduction.) [23:43:47] Maybe because caching caching caching. [23:43:57] yeah, sidebar caching is annoying [23:43:59] I do (re @amire80: I still don't see it.) [23:44:09] Now I do, too. [23:44:11] I don't know how it works, I just wait a long time and hope for the best [23:44:19] Feel free to revert. [23:44:27] Can you make it more consise? [23:44:46] Like "Create function" [23:45:05] All the others are 1-2 words [23:45:06] I want it to be conveniently translatable. [23:45:22] I reused an already translated message. [23:45:35] Can we create a new thing for it, then? Or hardcode it in English (re @amire80: I want it to be conveniently translatable.) [23:45:36] ultimately the problem I have is that none of the links sound like the right place to go if I want to edit, so when I do click on random links, I'm skimming looking for hints that it's the page that's going to have the info I want, so I'm likely to miss links buried somewhere in the page [23:45:37] I had trouble finding the link on the community portal even after you said it was on there (because I was looking for "function") and I overlooked it several times on the suggest a function page (because the first thing I did was look at the toc, which doesn't include anything that would make me think there's any info about creating a function) (re @Nikki: I expected [23:45:37] that page to [23:45:39] be an introduction to what wikifunctions is. not sure I ever looked there :/ [23:45:40] the places that I would pro...) [23:46:54] I'd prefer hardcoding it. It also makes the menu bigger on my device which really really sucks (re @Feeglgeef: Can we create a new thing for it, then? Or hardcode it in English) [23:47:32] And, can you move it up for my userscript's sake? [23:48:20] It probably will be clicked on more than site support and help anyway [23:48:24] don't hardcode things in english, this is supposed to be a multilingual project [23:48:36] Hardcode an alternative in English (re @Nikki: don't hardcode things in english, this is supposed to be a multilingual project) [23:48:55] Multilingual translators can change it whenever [23:49:12] The 4 words is really bad and looks off and in the wrong place [23:49:43] the proper way to do it would be to add a message to the wikimediamessages repo [23:49:55] Sure, let's do that (re @Nikki: the proper way to do it would be to add a message to the wikimediamessages repo) [23:50:19] Just don't put a 4 word message in my damn sidebar [23:50:22] (or for the wikifunctions people to add it to the wikilambda extension, which would make sense too) [23:51:03] I still don't see it so I can't really comment on what it looks like right now [23:51:14] I think all of the complaints in the Telegram have been ones that We not a developer priority (re @Nikki: (or for the wikifunctions people to add it to the wikilambda extension, which would make sense too)) [23:51:36] Which is why I want interface adminship [23:52:04] As the staff editing policy gives them no authority to override it :) [23:53:32] You can make a userscript that changes it to two words :) (re @Feeglgeef: Just don't put a 4 word message in my sidebar) [23:53:50] That's like really inconvenient (re @amire80: You can make a userscript that changes it to two words :)) [23:53:59] yet that's what you keep telling other people to do [23:54:42] Actually a good idea (re @amire80: You can make a userscript that changes it to two words :)) [23:54:45] Thank you [23:58:07] on wikidata I have `document.querySelector("html:lang(en) #n-special-newitem span").textContent = "New item";` in my browser's user js extension to shorten the link for creating a new item and that seems to work ok for me [23:58:52] would need a different selector on wikifunctions, obviously, but I can't inspect the element if it doesn't exist for me yet :P [23:59:16] Done (re @Feeglgeef: Actually a good idea) [23:59:40] Does the Python or JS function code have any access to the MediaWiki platform functions? Scribunto, for example, has access to quite a lot of functions from core MediaWiki and extensions: Message parsing, language names, JsonConfig, MCR slots, etc. Can it be done from Wikifunctions' code? [23:59:55] No (re @amire80: Does the Python or JS function code have any access to the MediaWiki platform functions? Scribunto, for example, has access to q...)