Wikifunctions:Status updates/2024-06-26
◀ | Wikifunctions Status updates | ▶ |
Welcome, Daphne!
This week we are happy to welcome a new member on the Wikifunctions team. Daphne Smit is joining us as a senior software engineer, to work on all the parts and pieces of Wikifunctions, with a particular eye towards the front-end user experience. Here we have Daphne saying hello in her own words:
Thrilled to join the Abstract Wikipedia Team as a Senior Software Engineer. My coding journey started back when tables were the new thing and we had luckily almost forgotten about iFrames. Previously, I worked as a freelance developer making long legal documents available to everyone. Now, it’s time to step up my game and be part of a movement making knowledge freely available to everyone. I’m ready to bring my passion for problem-solving and user-centric design to Wikimedia.
I’ve just moved from the bustling canals of Amsterdam to the cozy charm of Zwolle, a Hanseatic City that has already won me over. When I'm not crafting impactful user experiences, you’ll find me playing basketball, tackling bouldering walls, or surfing the waves in Portugal or France. I live with my cat, Silver, who occasionally assists in debugging by walking across my keyboard. I also love hiking, with favorites like the Tongariro Crossing in New Zealand and the Pico do Areeiro - Pico Ruivo trek in Madeira.
I’m excited to start learning and contributing to this great project, where Abstract Wikipedia and Wikifunctions team up like peanut butter and hagelslag (yes we do that in The NL).
Please join me in welcoming Daphne to the team!
Input needed: Design proposal towards better multi-linguality of the About widget
During this Quarter, we’ve been working on improving the experience of use for multi-lingual readers and editors.
Wikifunctions currently provides a set of features that let translators and other multi-lingual editors contribute in their own language. Despite being possible to add content in multiple languages, the process is not as simple as it could be. Moreover, sometimes Wikifunctions displays content in a language that readers don’t know, or can’t speak (T359772).
The goals of this update that you'll find at the page on the About widget’s improvements, are:
- for readers (and function users), to confidently display content in languages that each person is familiar with, and make it clear when content in their UI language is not available to provide a potential entry point for contribution.
- for editors, to streamline the translation process, making it possible to add multiple translations with ease in a single publishing step.
We started a page for designs on Wikifunctions, that also hosts this particular design.
We'd love to hear your thoughts about this proposal. Feel free to leave any feedback on the Discussion page.
Volunteers’ Corner on July 1st, 2024
Next week, on Monday, July 1st, 2024, at 17:30 UTC, we will have our monthly Volunteers’ Corner. Unless you have many questions, we will follow our usual agenda, of giving updates on the upcoming plans and recent activities, having plenty of time and space for your questions, and building a Function together. Looking forward to seeing you on Monday!
Recent Changes in the software
This week we've been making minor improvements to complete the Quarter's work.
We landed a fix to last week's improvement to how "enum" Types (ones with an identity key, like Month) are displayed, in order to show the special radio control for Booleans, rather than the drop-down, and rushed this out to production ahead of the release to avoid disruption (T367159).
We identified a change in behaviour in the back-end services, and for now have disabled the failing test whilst we investigate and fix it; we do not think this should directly impact community-written Test cases, but please report if you're affected (T368041).
Our newest team member, Daphne (above) landed her first patches with us, one to disable the code editor control when creating a new Implementation until you've selected the language (T343635), and another to fix some lint errors in our jest test structure code. We also adjusted the control flow of our Object editing database access layer, avoiding the deprecated MediaWiki code that assumes global language state.
We've added infrastructure to track the relationships between Objects in a "secondary" database table (T357552). Though this for now is mostly meant so we can report better on what Types are used in Function definitions and how often, to help the community focus attention where it will have the most impact, we expect to expand this feature for tracking in future.
Finally, we fixed the code for publishing new Objects, making the substitution of 'Z0' to the new ZID when creating new Type converters just like for Implementations (T367168), which will allow for better community control of custom Types in the future.
New Type: Day of the week
We released a new Type, an enumeration, for the seven days of the week, implementing the community proposal.
We are still soliciting proposals for months from other calendars, and, if relevant, for weekdays of other calendars. You can use the proposals for the Gregorian calendar month and the Igbo calendar month as templates. We would very much prefer proposals from people who know a given calendar very well, than trying to build it ourselves based on the relevant Wikipedia articles.
There is now also a proposal for calendar dates (of the proleptic Gregorian calendar, to be precise) and related Types. Feedback is very welcome.
Function of the Week: subtract integers
Last week we introduced Integers, Natural numbers with signs, so that we can finally represent negative numbers too! The community immediately seized the opportunity to create plenty of new Functions, and now we have more than three dozen Functions dealing with Integers. Thank you all!
Many of the Functions are versions of the Functions with Natural numbers, now extended to Integers: addition, multiplication, and number comparisons are now all available for the whole Integer range.
The one Function that highlights the Integer range the best is the subtraction Function: subtract natural numbers with floor of 0 (Z13569). But now, we have an Integer-based subtraction Function, and we can subtract a bigger number from a smaller number (and thus yield a negative number as the result). Accordingly, that’s one of the three Test cases. The other two Tests are subtracting a smaller number from a bigger number, resulting in a positive number, and finally subtracting a negative number from a number.
Besides three Tests we also have three Implementations. Two are in code: one in Python, one in JavaScript, both simply using the binary '-' operator in the given languages. My favourite Implementation, as usual, is the composition: it uses addition, but negates the second argument before adding it up. I.e. when you want to calculate 2 - -7, it instead negates the second argument, turning the -7 into a 7, and then adds the two numbers up, calculating 2 + 7.
Another interesting variant Function is a subtraction Function for two Natural numbers that results in an Integer, and thus has no constraints on the input arguments.