 <?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mwstake.org/w/index.php?action=history&amp;feed=atom&amp;title=Blog_Post%3A42</id>
	<title>Blog Post:42 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mwstake.org/w/index.php?action=history&amp;feed=atom&amp;title=Blog_Post%3A42"/>
	<link rel="alternate" type="text/html" href="https://mwstake.org/w/index.php?title=Blog_Post:42&amp;action=history"/>
	<updated>2026-04-30T04:44:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://mwstake.org/w/index.php?title=Blog_Post:42&amp;diff=874&amp;oldid=prev</id>
		<title>Mark Hershberger at 18:37, 13 February 2017</title>
		<link rel="alternate" type="text/html" href="https://mwstake.org/w/index.php?title=Blog_Post:42&amp;diff=874&amp;oldid=prev"/>
		<updated>2017-02-13T18:37:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:37, 13 February 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|title=Impressions from the Jerusalem Hackathon 2016&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|title=Impressions from the Jerusalem Hackathon 2016&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|tags=Hackathon,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|tags=Hackathon,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|people=Mark Hershberger,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|author=Markus Glaser&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|author=Markus Glaser&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mark Hershberger</name></author>
	</entry>
	<entry>
		<id>https://mwstake.org/w/index.php?title=Blog_Post:42&amp;diff=769&amp;oldid=prev</id>
		<title>Markus Glaser at 10:41, 23 June 2016</title>
		<link rel="alternate" type="text/html" href="https://mwstake.org/w/index.php?title=Blog_Post:42&amp;diff=769&amp;oldid=prev"/>
		<updated>2016-06-23T10:41:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:41, 23 June 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This year’s [[mw:Wikimedia_Hackathon_2016|European Hackathon]] took place in Jerusalem, Israel (well, this is not exactly Europe, but only encyclopaedists would insist here). [[meta:Wikimedia_Israel|Wikimedia Israel]] gave us a very sweet welcome, thanks for that!&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This year’s [[mw:Wikimedia_Hackathon_2016|European Hackathon]] took place in Jerusalem, Israel (well, this is not exactly Europe, but only encyclopaedists would insist here). [[meta:Wikimedia_Israel|Wikimedia Israel]] gave us a very sweet welcome, thanks for that!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The main focus of the hackathon was working on the community wishlist and several projects could be completed. I want to share a story of a not completed task, though. So before the conference, I picked a task for myself which was to add an expiry date to watchlist items. This, so it seemed, was reasonably challenging, but not impossible to do when you are at a place where all the MediaWiki hackers are. Add a table column, a few user interface items and some logic to expire and remove watchlist entries. However, when looking at the [https://phabricator.wikimedia.org/T100508 Phabricator ticket&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;], there was a list of 25 blocking tasks which had to be resolved before. Why was that? It turned out that watchlist code is one of the oldest code areas in MediaWiki and no one had touched it for years (except for some necessary adoptions). The watchlist code seems to be spread all over the place and has to be refactored in several ways. The good news is, a team of core developers took on the task and it will be way easier to work on the watchlist in the future. There are several takeaways from this.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The main focus of the hackathon was working on the community wishlist and several projects could be completed. I want to share a story of a not completed task, though. So before the conference, I picked a task for myself which was to add an expiry date to watchlist items. This, so it seemed, was reasonably challenging, but not impossible to do when you are at a place where all the MediaWiki hackers are. Add a table column, a few user interface items and some logic to expire and remove watchlist entries. However, when looking at the [https://phabricator.wikimedia.org/T100508 Phabricator ticket], there was a list of 25 blocking tasks which had to be resolved before. Why was that? It turned out that watchlist code is one of the oldest code areas in MediaWiki and no one had touched it for years (except for some necessary adoptions). The watchlist code seems to be spread all over the place and has to be refactored in several ways. The good news is, a team of core developers took on the task and it will be way easier to work on the watchlist in the future. There are several takeaways from this.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* First, never misunderestimate the complexity of code. Even seemingly simple tasks can become a refactoring hell.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* First, never misunderestimate the complexity of code. Even seemingly simple tasks can become a refactoring hell.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Second, it is not always the experts who trigger a reduction of technical debt. Had the community not voted this task very high, probably the old watchlist code would sit there for another few years.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Second, it is not always the experts who trigger a reduction of technical debt. Had the community not voted this task very high, probably the old watchlist code would sit there for another few years.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Markus Glaser</name></author>
	</entry>
	<entry>
		<id>https://mwstake.org/w/index.php?title=Blog_Post:42&amp;diff=768&amp;oldid=prev</id>
		<title>Markus Glaser: Created page with &quot;{{Blog Post |title=Impressions from the Jerusalem Hackathon 2016 |tags=Hackathon, |people=Mark Hershberger, |author=Markus Glaser }} This year’s mw:Wikimedia_Hackathon_201...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mwstake.org/w/index.php?title=Blog_Post:42&amp;diff=768&amp;oldid=prev"/>
		<updated>2016-06-23T10:41:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Blog Post |title=Impressions from the Jerusalem Hackathon 2016 |tags=Hackathon, |people=Mark Hershberger, |author=Markus Glaser }} This year’s mw:Wikimedia_Hackathon_201...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Blog Post&lt;br /&gt;
|title=Impressions from the Jerusalem Hackathon 2016&lt;br /&gt;
|tags=Hackathon,&lt;br /&gt;
|people=Mark Hershberger,&lt;br /&gt;
|author=Markus Glaser&lt;br /&gt;
}}&lt;br /&gt;
This year’s [[mw:Wikimedia_Hackathon_2016|European Hackathon]] took place in Jerusalem, Israel (well, this is not exactly Europe, but only encyclopaedists would insist here). [[meta:Wikimedia_Israel|Wikimedia Israel]] gave us a very sweet welcome, thanks for that!&lt;br /&gt;
&lt;br /&gt;
The main focus of the hackathon was working on the community wishlist and several projects could be completed. I want to share a story of a not completed task, though. So before the conference, I picked a task for myself which was to add an expiry date to watchlist items. This, so it seemed, was reasonably challenging, but not impossible to do when you are at a place where all the MediaWiki hackers are. Add a table column, a few user interface items and some logic to expire and remove watchlist entries. However, when looking at the [https://phabricator.wikimedia.org/T100508 Phabricator ticket]], there was a list of 25 blocking tasks which had to be resolved before. Why was that? It turned out that watchlist code is one of the oldest code areas in MediaWiki and no one had touched it for years (except for some necessary adoptions). The watchlist code seems to be spread all over the place and has to be refactored in several ways. The good news is, a team of core developers took on the task and it will be way easier to work on the watchlist in the future. There are several takeaways from this. &lt;br /&gt;
* First, never misunderestimate the complexity of code. Even seemingly simple tasks can become a refactoring hell.&lt;br /&gt;
* Second, it is not always the experts who trigger a reduction of technical debt. Had the community not voted this task very high, probably the old watchlist code would sit there for another few years.&lt;br /&gt;
* Third, a hacky solution might have been possible. However, this is not the way to go unless we want to have even more bad code in the software.I am very delighted to see that the Foundation team has tackled the task even though it is more time consuming than initially thought.&lt;br /&gt;
It is a good attitude in our movement to take community wishes very serious.&lt;br /&gt;
&lt;br /&gt;
So instead, I ended up translating some [[mw:How_to_become_a_MediaWiki_hacker/de|entry pages for developers]] into German and hope, this helps someone to get started and find their way into MediaWiki hacking. In that course, Manuel Schneider and I also worked on a [[mw:Template:Developing_extensions|navigation for extension developers]], which should provide them with easy access to all the necessary material about extension development. This is not finished yet, and we appreciate your input on what's important for MediaWiki developers.&lt;br /&gt;
&lt;br /&gt;
Special thanks go out to [[meta:User:Maor_X|Maor Malul]], who took us to the best Kurdish restaurant in Jerusalem and showed us around his very lovely neighbourhood, including the synagogue.&lt;/div&gt;</summary>
		<author><name>Markus Glaser</name></author>
	</entry>
</feed>