The on-wiki version of this newsletter can be found here:
https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2024-06-26
--
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
<https://en.wikipedia.org/wiki/HTML_element#Frames>. 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.*
<https://www.wikifunctions.org/wiki/File:Hagelslag_chocolate_sprinkles.jpg>
*I’ve just moved from the bustling canals of Amsterdam to the cozy charm
of Zwolle <https://en.wikipedia.org/wiki/Zwolle>, a Hanseatic City
<https://en.wikipedia.org/wiki/Hanseatic_League> 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
<https://en.wikipedia.org/wiki/Tongariro_Alipne_Crossing> in New Zealand
and the Pico do Areeiro
<https://en.wikipedia.org/wiki/Pico_do_Areeiro> - Pico Ruivo
<https://en.wikipedia.org/wiki/Pico_Ruivo> trek in Madeira.*
*I’m excited to start learning and contributing to this great project,
where Abstract Wikipedia
<https://en.wikipedia.org/wiki/Abstract_Wikipedia> and Wikifunctions team
up like peanut butter and hagelslag
<https://en.wikipedia.org/wiki/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
<https://phabricator.wikimedia.org/T359772>).
The goals of this update that you'll find at the page on the About widget’s
improvements
<https://www.wikifunctions.org/wiki/Wikifunctions:Design/About_widget_improv…>,
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
<https://www.wikifunctions.org/wiki/Wikifunctions:Design>, 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
<https://zonestamp.toolforge.org/1719855000>, we will have our monthly
Volunteers’ Corner <https://meet.google.com/xuy-njxh-rkw>. 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
<https://phabricator.wikimedia.org/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
<https://phabricator.wikimedia.org/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
<https://phabricator.wikimedia.org/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
<https://phabricator.wikimedia.org/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
<https://phabricator.wikimedia.org/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 <https://www.wikifunctions.org/view/en/Z17402>, an
enumeration, for the seven days of the week
<https://www.wikifunctions.org/view/en/Z17402>, implementing the community
proposal
<https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Day_of_the_…>
.
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
<https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Gregorian_c…>
and
the Igbo calendar month
<https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Igbo_calend…>
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
<https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Gregorian_c…>
(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
<https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2024-06-20>,
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: subtraction with Natural numbers is floored on zero
<https://www.wikifunctions.org/view/en/Z13569>. But now, we have an
Integer-based
subtraction Function <https://www.wikifunctions.org/view/en/Z17111>, and we
can subtract a bigger number from a smaller number (and thus yield a negative
number as the result <https://www.wikifunctions.org/view/en/Z17117>).
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 <https://www.wikifunctions.org/view/en/Z17115>, and finally subtracting
a negative number from a number
<https://www.wikifunctions.org/view/en/Z17118>.
Besides three Tests we also have three Implementations. Two are in code:
one in Python <https://www.wikifunctions.org/view/en/Z17114>, one in
JavaScript <https://www.wikifunctions.org/view/en/Z17127>, both simply
using the binary '-' operator in the given languages. My favourite
Implementation, as usual, is the composition
<https://www.wikifunctions.org/view/en/Z17248>: it uses addition
<https://www.wikifunctions.org/view/en/Z16693>, but negates
<https://www.wikifunctions.org/view/en/Z17186> 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 <https://www.wikifunctions.org/view/en/Z17315> that results
in an Integer, and thus has no constraints on the input arguments.