[Wikitech-l] Hiring Community Liaisons (Contract)

2013-05-18 Thread Howie Fung
*

Hey all,

For the last 18 months, the Engineering  Product Development department
has been experimenting with the role of “Community Liaison, Product
Development” - a staff member embedded in the Product team and tasked with
factoring community concerns into our software development process, keeping
editors informed about what we’re doing, and maintaining a dialogue between
those who write code and those who write articles.

While there is always room for improvement, I think this role has shown a
lot of promise.  We have a number of large projects coming down the
pipeline (e.g., visual editor, discussion systems) and we need more help
reaching out to our contributor communities, especially our non-English
speaking projects, as our outreach there has traditionally been challenged.
 We’d like to recruit a small number of English-speaking or multilingual
editors to do the Community Liaison job with different development teams
and focuses.

In particular we’re looking for people with a strong history of
contributions to our projects who can provide sound and reasoned judgment
and are trusted to do so by their community. Speaking other languages in
addition to English is a major plus, as one of the objectives here is to
ensure we can properly interact with and support non-English projects.
 I’ve included the full job description below.

Our immediate need is for help with the Visual Editor.  We’d like to hire a
few community liaisons to help inform different Wikipedia language
communities of the upcoming launch, create spaces for feedback and
discussion, synthesize feedback for the Visual Editor team, and other
activities required to support the Visual Editor launch later this year.

If this is a role that would interest you, please e-mail Philippe Beaudette
at 
pbeaude...@wikimedia.orghttps://mail.google.com/mail/?view=cmfs=1tf=1to=pbeaude...@wikimedia.org.
 And if you know someone else who might fit the role, let them know about
it :-). We’re provisionally interested in hiring 2-3 liaisons, at an hourly
rate commensurate with experience.  This can be a part-time role, but we’ll
need at least 15 hours/week for the length of the engagement (minimum 3
months).  Please do apply if you think it’s a role that suits you, and if
you find places we haven’t notified, spread the word!

Thanks.


Howie
*
_
Howie Fung
Director of Product Development
Wikimedia Foundation


*

Community Liaison Job Description

Background Information and Statement of Purpose

The Wikimedia Foundation’s Engineering  Product Development Department is
looking at ways to more effectively incorporate broad community
perspectives in decisions and hold dialogues with our editors about the
scope, pace and features of upcoming changes to Wikimedia projects. As part
of this, it is hiring additional Community Liaisons from our volunteer
community.

Scope of Work

Support and improve our ongoing software development projects, in
particular:

   -

   Building up a network of volunteers from both English language and
   non-English language wikis, increasing the number of projects we can
   interact with;
   -

   Engaging the community in the software development process, by acting as
   a conduit for community questions, bugs and and feature requests, talking
   to editors about our work and how they can participate in it effectively,
   and recruiting them for workgroups and studies;
   -

   Being available from time to time to provide expertise and knowledge
   about our projects, including but not limited to training
   externally-sourced staff in the way our projects work, answering their
   questions, and providing expert advice on an ad-hoc basis;
   -

   Ensuring that our community is represented in the decision-making
   process and that our planned software adequately reflects user needs;
   -

   Monitoring Wikimedia projects, with the assistance of a network of
   volunteers, for emerging issues that have an impact on Engineering
   programmes; and
   -

   Other duties as needed.


Requirements

Effective Community Liaisons will be:

   -

   Experienced users of Wikimedia projects, capable of representing our
   community within the Foundation and vice-versa.
   -

   Strong communicators (both verbally and with the written word), able to
   explain our products to different groups of users with different levels of
   technical understanding.
   -

   Able to focus on the larger picture, understanding which concerns and
   views are widespread and which are marginal or individual.
   -

   Approachable, as both users and product developers must be able to trust
   these people for the relationship to function.
   -

   Self-motivated - they will be given important projects and expected to
   execute with little to no supervision.
   -

   Strongly empathetic - they excel at understanding the perspectives of
   others and bridging the gap between different approaches to the world.
   -

   Willing and able to 

Re: [Wikitech-l] Code review of the Wikidata code

2013-05-18 Thread Niklas Laxström
On 17 May 2013 16:57, Denny Vrandečić denny.vrande...@wikimedia.de wrote:
 Hey,

 in order to sanity check the code we have written in the Wikidata project,
 we have asked an external company to review our code and discuss it with
 the team. The effort was very instructional for us.

 We want to share the results with you. The report looks dauntingly big, but
 this is mostly due to the appendixes. The first 20 pages are quite worth a
 read.

I read half of the report. Here is what I got out of it:

* We should do dependency injection to make code testable
* We should adhere to the single responsibility principle to make code
testable and less complex
* MediaWiki in many places (special pages, api, hooks to name few)
makes it impossible or at least very hard to do the above for most
classes

They proposed a solution (work around in Wikibase) to allow writing
better code in Wikibase. In section 4.1.6 it reads The sketched
approach fulfills all presented requirements: The dependency injection
mechanism is kept simple and easy to understand. But as a reader I
did not understand how it works or what would be the practical gains
for the code complexity that the solution itself introduces. I would
attribute some part of this to the many typos, mistakes and non-fluent
language in the text and examples. One example:

For example, if the a DependencyManager as configured in Illustration 1:
DependencyManager is asked to retrieve the object with the key “mail”, it will
ask the registered DatabaseBuilder to create that object and return it.

I am curious whether there was any discussions if and how these issues
could be fixed in MediaWiki core? Or do we need[1] to figure that out
on our own?

[1] I see that I already jumped on the how to get there part, but I
guess I should first ask: is there sufficient mass that thinks there
is an issue and that the issue should be fixed? I think that there is
definitely a need for core to adopt better coding practices to reduce
code complexity and allow easier unit testing. Just like the move from
svn to git and gerrit, it will need a lot of effort and can annoy
people, but in the end we will be better than before.

  -Niklas


--
Niklas Laxström

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] Server reboots now through next week

2013-05-18 Thread Happy Melon
On 17 May 2013 23:26, Petr Bena benap...@gmail.com wrote:

 hey, could you point me to that security patch? I am curious as I am
 myself running bunch of linux boxes


+1
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] Server reboots now through next week

2013-05-18 Thread Petr Bena
so far I found the problem with perf_events where exploit-containing
binary can elevate permissions of regular user to root. This is indeed
a big issue, but it seems to affect only systems with kernel newer
than 2.6.36 and only these where this feature is enabled. Also it
seems to me that only systems where untrusted users have shell access
are affected by this since it require local execution of exploit.

But thanks for information, despite it doesn't seem to require urgent
patch on systems with older kernel or any system where untrusted users
have no shell access (such as webservers) I will consider updating my
servers as well asap

On Sat, May 18, 2013 at 11:47 AM, Happy Melon
happy.melon.w...@gmail.com wrote:
 On 17 May 2013 23:26, Petr Bena benap...@gmail.com wrote:

 hey, could you point me to that security patch? I am curious as I am
 myself running bunch of linux boxes


 +1
 ___
 Wikitech-l mailing list
 Wikitech-l@lists.wikimedia.org
 https://lists.wikimedia.org/mailman/listinfo/wikitech-l

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] Server reboots now through next week

2013-05-18 Thread Petr Bena
More information:
http://www.h-online.com/open/news/item/Exploit-for-local-Linux-kernel-bug-in-circulation-Update-1863892.html

On Sat, May 18, 2013 at 3:18 PM, Petr Bena benap...@gmail.com wrote:
 so far I found the problem with perf_events where exploit-containing
 binary can elevate permissions of regular user to root. This is indeed
 a big issue, but it seems to affect only systems with kernel newer
 than 2.6.36 and only these where this feature is enabled. Also it
 seems to me that only systems where untrusted users have shell access
 are affected by this since it require local execution of exploit.

 But thanks for information, despite it doesn't seem to require urgent
 patch on systems with older kernel or any system where untrusted users
 have no shell access (such as webservers) I will consider updating my
 servers as well asap

 On Sat, May 18, 2013 at 11:47 AM, Happy Melon
 happy.melon.w...@gmail.com wrote:
 On 17 May 2013 23:26, Petr Bena benap...@gmail.com wrote:

 hey, could you point me to that security patch? I am curious as I am
 myself running bunch of linux boxes


 +1
 ___
 Wikitech-l mailing list
 Wikitech-l@lists.wikimedia.org
 https://lists.wikimedia.org/mailman/listinfo/wikitech-l

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] Code review of the Wikidata code

2013-05-18 Thread Christian Aistleitner
Hi,

On Sat, May 18, 2013 at 11:11:19AM +0300, Niklas Laxström wrote:
 They proposed a solution (work around in Wikibase) to allow writing
 better code in Wikibase. [...] But as a reader I
 did not understand how it works

I was also surprised to realize that although the report constantly
talks about a lack of dependency injection {,mechanism,facility} (in
their meaning), their solution is not dependency injection (in the
common meaning), but a service locator (in the common meaning) :-)

Seeing a separate service locator in a friendly extension comes even
as a greater surprise to me.

Although it's already close to 10 years old, to me, Martin Fowler's
article on dependency injection [1] is still a great primer on “how it
works”. The article provides nice short code snippets (Java, but they
should be easily readable by any PHP developer) and diagrams on how
things get created in different scenarios.

 or what would be the practical gains
 for the code complexity that the solution itself introduces.

I am probably biased, but for me, implementing only the service
locator solution they propose, comes with little gain.

Service locators are “only” a tool assisting in decoupling direct
dependencies between objects. That's good already, but service
locators do not help with composition of objects, which is most of the
work. They also do not help/allow to read off dependencies from
objects (as for example constructor injection would).

Additionally, MediaWiki already partly uses service locators (Getting
a Database connection). Nothing to gain in such parts.

Through service locators' additional indirection, they slow down code
a bit, but are a first step to allow for easier testing.

The real paradigm shift would be to go for dependency injection (in
the common meaning) and start using an inversion of control container.

* What would that cost us?
Some performance, due to the decoupled dependencies.

* What would that buy us?
Testable code.

Example? Example.
When implementing a unit test for a plain project renaming in gerrit,
I started stubbing the required objects and the test reached ~1000
lines of code (a single test! :-( ) although I was only 3/4 through
with setting up the required stubs.

This insane amount of code for a single test did not come as a
surprise. After all, the function under test had to move the project
around in the database, move it in the file system, add git commits to
child projects, ... and to test in isolation, you'll just have to stub
all that out.

And every further test of a different path through the same method,
would mean adding ~1300 lines of code to the test case.

So, since gerrit already embraces dependency injection, IoC, and
coding by contract, I could break the project renaming code into
smaller objects, and let the IoC container do the composition on its
own. Thereby, testing each of the parts in full isolation is
easier. And variations in code paths can be tested right where they
are. It's no longer needed to test the whole code as one blob.

For this concrete example, testing only the top-level method (assuming
sub-tasks meet the contract) requires 16 tests. For the unrefactored
code, that'd be ~20k unmaintainable lines for the tests alone.
After the refactoring for dependency injection and IoC, the whole file
of the test case including header, imports, ... (and the tests) is
~0.5k lines.

Of course, we can always refactor code even without dependency
injection or IoC containers. Everyone is doing that :-) “Dependency
Injection” is just the hip name for a series of patterns that allow to
decouple objects. And IoC containers just make it easy to stitch them
back together at run-time.


Best regards,
Christian


[1] Inversion of Control Containers and the Dependency Injection
pattern. Available at
http://www.martinfowler.com/articles/injection.html




-- 
 quelltextlich e.U.  \\  Christian Aistleitner 
   Companies' registry: 360296y in Linz
Christian Aistleitner
Gruendbergstrasze 65aEmail:  christ...@quelltextlich.at
4040 Linz, Austria   Phone:  +43 732 / 26 95 63
 Fax:+43 732 / 26 95 63
 Homepage: http://quelltextlich.at/
---


signature.asc
Description: Digital signature
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

[Wikitech-l] MediaWiki 1.21 delayed

2013-05-18 Thread Mark A. Hershberger
I have to delay the release of MediaWiki 1.21 again because of a
logistics problem.

I am used to hearing logistics in the context of shipping physical
objects -- in the American trucking industry, for example -- so I can't
help but feel a little strange saying logistics.  I had to go look up
the term and found this definition:

The detailed coordination of a complex operation involving many
people, facilities, or supplies.

That is about right.

I apologize for the confusion.

-- 
http://hexmode.com/

Imagination does not breed insanity. Exactly what does breed insanity
is reason. Poets do not go mad; but chess-players do.
-- G.K. Chesterson

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] MediaWiki 1.21 delayed

2013-05-18 Thread Mark A. Hershberger
Dmitrii,

Please do not reply-all when writing a reply to an email without also
trimming off all but one mailing list.  For my part, I'll avoid sending
out announcements with multiple lists in the To: and CC: fields from
now on.

On 05/18/2013 12:18 PM, Dmitrii Kouznetsov wrote:
 What for do you need the complex operations?
 I thought, the PHP supports only the real arithmetics..

You are using a different definition of logistics than I am.

I posted the definition I'm using:

The detailed coordination of a complex operation involving many
people, facilities, or supplies.

Perhaps the article on Wikipedia would be helpful:
https://en.wikipedia.org/wiki/Logistics

I can't release today because releasing software is a complex operation
that involves coordination and cooperation of several people -- some of
whom are not available today.

I didn't properly anticipate the amount of coordination that this would
take when I said I would make a release today.  That is why I said I ran
into a problem of logistics.

Mark.

-- 
http://hexmode.com/

Imagination does not breed insanity. Exactly what does breed insanity
is reason. Poets do not go mad; but chess-players do.
-- G.K. Chesterson

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

[Wikitech-l] State of MediaWiki's render action (parameter to index.php)

2013-05-18 Thread MZMcBride
Hi.

https://www.mediawiki.org/w/index.php?diff=597288oldid=579490

https://www.mediawiki.org/w/index.php?diff=691576oldid=686908


These two diffs explain what happened better than I could. I think this
was the best outcome, but I'm posting on this list in case I missed some
other discussion about the render action and it is, in fact, now
deprecated. I checked the talk page, but didn't see anything.

MZMcBride



___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] State of MediaWiki's render action (parameter to index.php)

2013-05-18 Thread Bartosz Dziewoński

Foreign file repo is using action=render to get file descriptions from a remote 
wiki. (I think that's how file descriptions from Commons are loaded on all WMF 
wikis, too.)

--
Matma Rex

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] State of MediaWiki's render action (parameter to index.php)

2013-05-18 Thread Chad
Yea, it's definitely being used. I've not heard of it causing problems, so
this deprecation is news to me.

-Chad
On May 18, 2013 2:53 PM, Bartosz Dziewoński matma@gmail.com wrote:

 Foreign file repo is using action=render to get file descriptions from a
 remote wiki. (I think that's how file descriptions from Commons are loaded
 on all WMF wikis, too.)

 --
 Matma Rex

 __**_
 Wikitech-l mailing list
 Wikitech-l@lists.wikimedia.org
 https://lists.wikimedia.org/**mailman/listinfo/wikitech-lhttps://lists.wikimedia.org/mailman/listinfo/wikitech-l
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] State of MediaWiki's render action (parameter to index.php)

2013-05-18 Thread Daniel Friesen
It may not be explicitly deprecated now, but it would be nice to deprecate  
and remove action=render.


We STILL have this sitting around Title:

// @todo FIXME: This causes breakage in various places when we
// actually expected a local URL and end up with dupe prefixes.
if ( $wgRequest-getVal( 'action' ) == 'render' ) {
$url = $wgServer . $url;
}


On Sat, 18 May 2013 13:15:15 -0700, Chad innocentkil...@gmail.com wrote:

Yea, it's definitely being used. I've not heard of it causing problems,  
so

this deprecation is news to me.

-Chad
On May 18, 2013 2:53 PM, Bartosz Dziewoński matma@gmail.com  
wrote:



Foreign file repo is using action=render to get file descriptions from a
remote wiki. (I think that's how file descriptions from Commons are  
loaded

on all WMF wikis, too.)

--
Matma Rex


--
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://danielfriesen.name/]


___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

[Wikitech-l] GSoC Virtual Keyboard

2013-05-18 Thread Siddha Ganju
Hi!

As had been planned I have started making the keyboards and first I
implemented the Hebrew language.

I have created a new repository[1].

Links:

GitHub link for Hebrew Keyboard:
[1] https://github.com/SiddhaGanju/Hebrew-Keyboard

-- 
Siddha Ganju
2nd Year Undergraduate Student
Computer Science and Engineering Department
National Institute of Technology, Hamirpur - 177005
E-mail Id : siddhaga...@gmail.com
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l