Hello everyone,
This is one of my major updates regarding my GSoC project (named ConventionExtension), which I have been working on for about three months now. This project has come a long way and it has reached a point where a lot about it can be shared with others. Since I don't post that often in this list I would like to make this post a long one, and talk about the status of my extension and where its headed in the coming weeks. Some of the features which were part of my timeline for GSoC but were not completed are put under the section "Things yet to be done" along with the other features that I would be working on in the upcoming weeks.
*1. Completed Features* * * 1. Dashboard Page (more features are likely to be added depending upon the feedback I gather from the people who have set up conferences on their wiki in the past) 2. Author Registration Page 3. Conference Setup Page 4. Backend (DB) for storing the conference details 5. The basic architecture of the extension:
5.a) Model classes - encapsulating the basic objects required for this extension 5.b) Api Module -- for interacting with ajax calls from the client 5.c) Util classes 5.d) Templates -- classes exending QuickTemplate class, providing a basic layout for Dashboard and Author Register pages 5.e) UI classes - classes extending SpecialPage class (Dashboard, AuthorRegister and ConferenceSetup pages) 5.f) JS + CSS resource modules
6. Parser tags, Magic Words (Variables) and a parser function parser tags --> <conference>, <page>, <account>, <registration>,<passport>,<author>,<submission>,<event>,<organizer> and <location>
variables --> {{CONFERENCENAME}}, {{CONFERENCEVENUE}}, {{CONFERENCECITY}}, {{CONFERENCEPLACE}}, {{CONFERENCECOUNTRY}}, {{CONFERENCECAPACITY}}, {{CONFERENCEDESCRIPTION}}
parser function --> {{#cvext-page-link}} 7. Sidebar modification (added some new portals for the conference) 8. Schedule Template System - which automates the process of creating a schedule for the conference, as new locations and events are added to the system. 9. Content Pages - these are the default set of pages that are created for the conference by the extension (Note : these are just like any other wiki pages whose content can be modified using the wiki interface)
*2. Things yet to be done !* * * 1. *DB rollback implementation in most of my model classes 2. *Account Setup Page (for registration of users) 3. *Modification of User pages for displaying content related to the conference 3. Organizer management module (most part of it is already implemented in the basic architecture, just some additions needed regarding the permissions and rights for this group) 4. Payment Gateway 5. Support for languages other than English 6. Some more parser functions and variables which would help in editing the content pages of the conference
* - These features were not completed during the GSoC period.
I really enjoyed my experience of working with such a vibrant community over this summer, especially thankful to all the people who helped me out in the IRC channel may it be regarding the setting up of labs, or helping me out with the localisation issues, or even suggesting me come up with a better feature than what I had already implemented. Other community fellows who reviewed my big chunks of code, many issues which I very easily missed were pointed out with a proper explanation of what needs to be done, have helped me a great deal in improving it. And finally I would like to thank Sumana and Greg for managing this program so well, and my mentor Jure Kajzer for his unmatched support and guidance throughout the summer.
Some important links: Proposal Page - http://www.mediawiki.org/wiki/User:Chughakshay16/GSOCProposal(2012) Gerrit changesets - https://gerrit.wikimedia.org/r/#/q/ConventionExtension,n,z Extension Page - http://www.mediawiki.org/wiki/Extension:ConventionExtension
Suggestions are always welcome !
On Wed, Aug 22, 2012 at 8:40 AM, akshay chugh chughakshay16@gmail.com wrote:
- Parser tags, Magic Words (Variables) and a parser function
parser tags --> <conference>, <page>, <account>, <registration>,<passport>,<author>,<submission>,<event>,<organizer> and
<location>
This is a disgusting way to store data.
-1
On Sun, Aug 26, 2012 at 11:34 PM, John Du Hart compwhizii@gmail.com wrote:
On Wed, Aug 22, 2012 at 8:40 AM, akshay chugh chughakshay16@gmail.com wrote:
- Parser tags, Magic Words (Variables) and a parser function
parser tags --> <conference>, <page>, <account>, <registration>,<passport>,<author>,<submission>,<event>,<organizer> and
<location>
This is a disgusting way to store data.
-- John
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Thanks the explain in-depth about why storing configuration in articles is a good thing. Keep up the good work. On Aug 26, 2012 2:11 PM, "akshay chugh" chughakshay16@gmail.com wrote:
-1
On Sun, Aug 26, 2012 at 11:34 PM, John Du Hart compwhizii@gmail.com wrote:
On Wed, Aug 22, 2012 at 8:40 AM, akshay chugh chughakshay16@gmail.com wrote:
- Parser tags, Magic Words (Variables) and a parser function
parser tags --> <conference>, <page>, <account>, <registration>,<passport>,<author>,<submission>,<event>,<organizer> and
<location>
This is a disgusting way to store data.
-- John
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
-- Thanks, Akshay Chugh skype- chughakshay16 irc - chughakshay16(#mediawiki) [[User:Chughakshay16]] on mediawiki.org _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
On 12-08-27 04:10 PM, John Du Hart wrote:
Thanks the explain in-depth about why storing configuration in articles is a good thing. Keep up the good work.
See this is also unnecessary.
Your original message might have been better stated as
Hey, I love this idea, but is there a reason you decided to use articles instead of a database structure to store the data? Thanks in advance for the no doubt interesting answer.
Instead, you antagonized Ashkay and didn't get an answer. And now here we are.
Wasn't there a thread about conduct? Where did that end up? :)
Ashkay, incidentally, I would also love to hear more about why you decided this, if you have a minute to answer!
Thanks all,
On Aug 26, 2012, at 11:04 AM, John Du Hart compwhizii@gmail.com wrote:
This is a disgusting way to store data.
I don't think we need to talk to each other like this.
--- Brandon Harris, Senior Designer, Wikimedia Foundation
Support Free Knowledge: http://wikimediafoundation.org/wiki/Donate
During your time in GSoC, what type of things did you mentor explain?
Because i've had a quick peruse of your gerrit change sets and I know they are only minor but I do see a few things that our Coding Conventions cover as well as stylize (which is a script that is can be run)
Hello Peachey,
Honestly I never got into reading any Coding Conventions or style guide while I was developing code for my extension, but I have been going through them for the past couple of weeks and have been fixing those style issues with my code since. Its only a matter of time before all such issues will be addressed, I am continually working on fixing them. You can go and see my latest patches where you will get a sense of all those issues being taken care into account. I have kept a todo list of all such comments which were posted in my changesets, so before my code is finally ready to be tested or even reaches a point of being presentable it will have all such elements that you are trying to point out here.
On Mon, Aug 27, 2012 at 2:54 AM, K. Peachey p858snake@gmail.com wrote:
During your time in GSoC, what type of things did you mentor explain?
Because i've had a quick peruse of your gerrit change sets and I know they are only minor but I do see a few things that our Coding Conventions cover as well as stylize (which is a script that is can be run)
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
(Splitting this off from John's critique of ConventionExtension.)
Hi.
MediaWiki has participated in several (Google) Summer of Code iterations now (https://www.mediawiki.org/wiki/Summer_of_Code) and I'm wondering how this partnership program is evaluated.
Whenever this program wraps up at the end of the (Northern Hemisphere's) summer, I always sense a worrying amount of frustration and annoyance from all parties involved. The projects are usually overly large and complex and from what I understand, nearly all of the projects from Google Summer of Code don't end up in production environments. If the projects are lucky, they end up in a MediaWiki extension; if they're unlucky, they rot away in a code repo branch somewhere or behind a configuration variable set to false by default. The end result being that:
* the people who worked on these projects are frustrated and annoyed because they didn't get their code deployed [to Wikimedia wikis, a wide audience, or anyone at all in some cases];
* the people who mentored these students are frustrated and annoyed for similar reasons; and
* the people (end-users) who wanted to see these projects successfully completed are frustrated and annoyed that these features still don't exist.
So I'm left wondering how the cost v. benefit equation works out for this program. How do you evaluate the program and whether MediaWiki ought to remain a continued participant?
And, of course, should MediaWiki decide not to participate in Google Summer of Code in 2013, are there other [better] ideas for getting people involved in MediaWiki development?
MZMcBride
MZMcBride wrote:
MediaWiki has participated in several (Google) Summer of Code iterations now (https://www.mediawiki.org/wiki/Summer_of_Code) and I'm wondering how this partnership program is evaluated.
After I posted this, Sumana pointed out that MaxSem has done a great evaluation here: https://www.mediawiki.org/wiki/User:MaxSem/GSoC_analysis.
There's also a good overview of past projects at https://www.mediawiki.org/wiki/Summer_of_Code_Past_Projects.
And, of course, should MediaWiki decide not to participate in Google Summer of Code in 2013, are there other [better] ideas for getting people involved in MediaWiki development?
Perhaps a better model: https://www.mediawiki.org/wiki/UCOSP_Spring_2012?
MZMcBride
Most software projects fail (for some definition of "fail"). Even for highly skilled and highly experienced companies and shops, most software projects fail. I'm not going to look up the Gartner and Forrester and Chaos reports this late on a Monday night, but google away.
GSoC is an investment that is not intended to have a short-term payoff. The fact that ANY GSoC code makes to production is fantastic.
GSoC is an investment in the long term. It is intended to provide real concrete experience to promising students in real environments, including all the frustrations and annoyances that everyone on a software team experiences in the real world all the time. Schools simply do not provide that experience. Some fraction of those participants will take those experiences into the future of software development, to make real improvements, both to code and to process.
Furthermore, considering GSoC solely in terms of benefit to Mediawiki/Wikipedia is short-sighted. Take a look at the organizations participating: http://www.google-melange.com/gsoc/projects/list/google/gsoc2012 . What would your opinion be if WMF were not on that list?
On Mon, Aug 27, 2012 at 5:32 PM, MZMcBride z@mzmcbride.com wrote:
(Splitting this off from John's critique of ConventionExtension.)
Hi.
MediaWiki has participated in several (Google) Summer of Code iterations now (https://www.mediawiki.org/wiki/Summer_of_Code) and I'm wondering how this partnership program is evaluated.
Whenever this program wraps up at the end of the (Northern Hemisphere's) summer, I always sense a worrying amount of frustration and annoyance from all parties involved. The projects are usually overly large and complex and from what I understand, nearly all of the projects from Google Summer of Code don't end up in production environments. If the projects are lucky, they end up in a MediaWiki extension; if they're unlucky, they rot away in a code repo branch somewhere or behind a configuration variable set to false by default. The end result being that:
- the people who worked on these projects are frustrated and annoyed
because they didn't get their code deployed [to Wikimedia wikis, a wide audience, or anyone at all in some cases];
- the people who mentored these students are frustrated and annoyed for
similar reasons; and
- the people (end-users) who wanted to see these projects successfully
completed are frustrated and annoyed that these features still don't exist.
So I'm left wondering how the cost v. benefit equation works out for this program. How do you evaluate the program and whether MediaWiki ought to remain a continued participant?
And, of course, should MediaWiki decide not to participate in Google Summer of Code in 2013, are there other [better] ideas for getting people involved in MediaWiki development?
MZMcBride
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Chris McMahon wrote:
Most software projects fail (for some definition of "fail"). Even for highly skilled and highly experienced companies and shops, most software projects fail. I'm not going to look up the Gartner and Forrester and Chaos reports this late on a Monday night, but google away.
GSoC is an investment that is not intended to have a short-term payoff. The fact that ANY GSoC code makes to production is fantastic.
GSoC is an investment in the long term. It is intended to provide real concrete experience to promising students in real environments, including all the frustrations and annoyances that everyone on a software team experiences in the real world all the time. Schools simply do not provide that experience. Some fraction of those participants will take those experiences into the future of software development, to make real improvements, both to code and to process.
Thank you for this. You make some good points.
So I guess it might just be a matter of better managing expectations of all parties involved? The disappointment factor is serious and dangerous, in my opinion. It can be mitigated by setting appropriate expectations for the students involved, the mentors involved, and the end-users involved, many of whom desperately want to see some of these features live.
Furthermore, considering GSoC solely in terms of benefit to Mediawiki/Wikipedia is short-sighted. Take a look at the organizations participating: http://www.google-melange.com/gsoc/projects/list/google/gsoc2012 . What would your opinion be if WMF were not on that list?
Personally, I don't care very much about being a participant for the sake of being a participant (and I imagine many others feel similarly). I think for a lot of people who watch these Summer of Code projects, it _is_ about benefit to MediaWiki/Wikimedia, particularly as getting involved in these projects can detract from already painfully finite mentoring and reviewing resources.
MZMcBride
On Tue, Aug 28, 2012 at 3:07 AM, MZMcBride z@mzmcbride.com wrote:
Furthermore, considering GSoC solely in terms of benefit to Mediawiki/Wikipedia is short-sighted. Take a look at the organizations participating: http://www.google-melange.com/gsoc/projects/list/google/gsoc2012 . What would your opinion be if WMF were not on that list?
Personally, I don't care very much about being a participant for the sake of being a participant (and I imagine many others feel similarly). I think for a lot of people who watch these Summer of Code projects, it _is_ about benefit to MediaWiki/Wikimedia, particularly as getting involved in these projects can detract from already painfully finite mentoring and reviewing resources.
I think you touch the most important point here. I'm one of the main people who manage GSoC for KDE. KDE is the biggest org taking part in GSoC this year in terms of number of students mentored. In addition we are running our own program (Season of KDE) next to it. So in total I'd say we've mentored about 100 students through these programs this year alone. We didn't get there by accident. You know what the main benefit of GSoC is in my opinion? Getting an organisation into the mindset of mentoring - into the mindset of "yes we need to train new people because they can do awesome things even if they screw up sometimes on the way there".
Cheers Lydia
I think you touch the most important point here. I'm one of the main people who manage GSoC for KDE. KDE is the biggest org taking part in GSoC this year in terms of number of students mentored. In addition we are running our own program (Season of KDE) next to it. So in total I'd say we've mentored about 100 students through these programs this year alone. We didn't get there by accident. You know what the main benefit of GSoC is in my opinion? Getting an organisation into the mindset of mentoring - into the mindset of "yes we need to train new people because they can do awesome things even if they screw up sometimes on the way there".
+1000. I <3 that way of thinking and I'd very much like our community to have the same attitude towards GSoC. We're a community working towards education of the world. Participating in GSoC as a mentoring organization is a right fit.
- Ryan
On Tue, Aug 28, 2012 at 9:41 AM, Ryan Lane rlane32@gmail.com wrote:
I think you touch the most important point here. I'm one of the main people who manage GSoC for KDE. KDE is the biggest org taking part in GSoC this year in terms of number of students mentored. In addition we are running our own program (Season of KDE) next to it. So in total I'd say we've mentored about 100 students through these programs this year alone. We didn't get there by accident. You know what the main benefit of GSoC is in my opinion? Getting an organisation into the mindset of mentoring - into the mindset of "yes we need to train new people because they can do awesome things even if they screw up sometimes on the way there".
+1000. I <3 that way of thinking and I'd very much like our community to have the same attitude towards GSoC. We're a community working towards education of the world. Participating in GSoC as a mentoring organization is a right fit.
Agreed.
GSoC imho is not about getting code written but getting people involved in our community. As such we should look and see how many people remain involved after GSoC.
Finne
TL;DR: we're improving at student retention but need to get better at producing something useful at the end of a mentorship period; some suggestions follow.
On 08/28/2012 04:44 AM, Finne Boonen wrote:
On Tue, Aug 28, 2012 at 9:41 AM, Ryan Lane rlane32@gmail.com wrote:
I think you touch the most important point here. I'm one of the main people who manage GSoC for KDE. KDE is the biggest org taking part in GSoC this year in terms of number of students mentored. In addition we are running our own program (Season of KDE) next to it. So in total I'd say we've mentored about 100 students through these programs this year alone. We didn't get there by accident. You know what the main benefit of GSoC is in my opinion? Getting an organisation into the mindset of mentoring - into the mindset of "yes we need to train new people because they can do awesome things even if they screw up sometimes on the way there".
+1000. I <3 that way of thinking and I'd very much like our community to have the same attitude towards GSoC. We're a community working towards education of the world. Participating in GSoC as a mentoring organization is a right fit.
Agreed.
GSoC imho is not about getting code written but getting people involved in our community. As such we should look and see how many people remain involved after GSoC.
Finne
It has now been three months since the "pencils down" late in late August when GSoC 2012 officially ended. Therefore it's a good time to look at the nine students we accepted to see how many are still involved with MediaWiki, how many of the GSoC projects themselves are anywhere near what their original targets were, and whether we would prefer to try this again next year or go for a different approach to outreach and mentoring.
The answers: * seven of the nine students are still actively working on MediaWiki development. This is better than last year -- at this time last year, only about 2-3 of the eight accepted students remained involved. * one project hit its target (including merge into trunk) and about four others are partially merged into trunk and still have momentum towards completion. This is a little better than last year; about 2 projects from last year are fully merged into trunk and about 1 more is partially merged but there's no momentum towards the finish.
https://www.mediawiki.org/wiki/Summer_of_Code_2012/management reflects how I wanted to run this year's GSoC. I think we did well at "People are more important than code" selection, which is one reason we're doing well at retention. But I failed at ensuring that students were scoping their proposals at about 6 weeks of coding work and dedicating the entire last month of the summer to bugfixing and code review. The proposals usually allotted either no time or about 2 weeks for merging with trunk, pre-deploy code review, and integration. I think smaller scoping would have helped, so in the future, we should simply not accept proposals that do not allot at least a third of the summer to code review and response to code review.
I also failed at staying hands-on enough in ensuring frequent mentor-student communication. Having multiple hands-on mentors who were available to do code review REALLY helps, as we see from Nischay Nahata's success (he is our only student this year who got all his project code merged), and I think that in future years we should mandate that all students have two mentors, each of whom commit to reviewing new patchsets within 2 business days. Students can't afford delays in code review. The WMF is improving how it makes time for its engineers to mentor newer contributors (more on that this week) and that will help with this; we're also growing experienced volunteer developers who are interested in mentoring, so I think a 2-mentors-per-student mandate is doable. We should also mandate twice-weekly voice or videocall meetings and do spot checks to ensure they're happening; multiple students didn't have enough communication with their mentors and were shy about pushing for it.
Now, to discuss future mentoring approaches:
I tried to get us into UCOSP again for fall 2012 and was told they were out of slots, so I'm pushing to get us into UCOSP for spring 2013.
We couldn't muster enough mentors to do Google Code-In well so we aren't doing it this year.
Quim Gil is the administrator for our participation in the Outreach Program for Women, so I'll let him discuss how he wants to manage that and how he'll be setting expectations appropriately. :-) I think mandating two mentors per participant is a very good idea, Quim, what do you think? Also: instead of making newbies write fixed proposals with schedules, these OPW internships can follow broader charters and flex to accommodate students' interests and abilities, and it's easier to rescope iteratively to ensure that something useful gets produced by the end of the three months. The fact that some of the internships will be in marketing or communications will help with this, as it's easier to get fast critique of those deliverables. (Also, participants don't have to be students, so some of them will be more mature!)
And regarding future Google Summer of Code management, Yaron Koren wrote:
So here is my proposal: there should be in place some plan of action, ideally for every project, in case it goes overlong and doesn't get completed in time. That can take several forms: a commitment by the mentor or another experienced developer to finish up the project; a commitment by the WMF to fund the student to finish it, if the student turns out to be serious and it's just a simple lack of time that was the issue; a commitment by the WMF to fund someone else to finish it or just a commitment by the student to finish it themselves, on a volunteer basis. The last of those is tricky, because that tends to be the conclusion at the end of uncompleted projects anyway - the student keeps working on it, but that usually only lasts for a few months before the student's school work and/or regular work get in the way, and then the project often falls by the wayside. A commitment on the WMF and/or mentor side would be the ideal thing - and if there's no such guarantee for a specific project, then that should be taken into consideration when deciding on whether to accept it.
This is worth discussing when we decide whether to apply for Google Summer of Code 2013 (if Google decides to run it again).
Does anyone particularly agree or disagree?
Thank you for this summary. It is very useful.
Would you mind commenting more on lessons learned about the selection of candidates? We need the right now for
https://www.mediawiki.org/wiki/Outreach_Program_for_Women
On 11/18/2012 05:17 AM, Sumana Harihareswara wrote:
Quim Gil is the administrator for our participation in the Outreach Program for Women, so I'll let him discuss how he wants to manage that and how he'll be setting expectations appropriately. :-)
As commented in another thread, I have just drafted
https://www.mediawiki.org/wiki/Talk:Mentorship_programs
I think mandating two mentors per participant is a very good idea, Quim, what do you think?
Defaulting to two is ok, but we can be flexible here - in both ways. Sometimes a single mentor can be trustworthy, sometimes not even two will convince us. ;)
Just like with candidates, there is no magic formula for mentors (neither for program admins) :)
Also: instead of making newbies write fixed proposals with schedules, these OPW internships can follow broader charters and flex to accommodate students' interests and abilities, and it's easier to rescope iteratively to ensure that something useful gets produced by the end of the three months.
I like a lot your "People are more important than code" meme but we need to find a balance here.
I agree that the candidate shouldn't spend much time with formalities like defining whether task X will take exactly 2 or 3 weeks. Still, it is good (for everybody) to go through that exercise before presenting a proposal. It filters those excessively lazy or unskilled and it helps the candidate and the mentor to see whether the generic idea survives a first reality check.
Still, your concerns are valid, and I have tried to address them in the list of selection criteria.
https://www.mediawiki.org/wiki/Talk:Mentorship_programs#Criteria
So here is my proposal: there should be in place some plan of action, ideally for every project, in case it goes overlong and doesn't get completed in time.
Good idea. Also included in the selection criteria.
OK, let me try to clarify this issue a bit. I know Akshay understands the concept as we have talked about this for about a week before he even started this project but i guess he is not using the right terms for the message to come across.
Basically what you're asking is "Why use native MW functionality instead of custom DB objects to store data". You might not be asking this but if you would have tried to understand Akshay's concept and if you'd go trough the code and instead of looking for spacing issues took a moment to look at the logic, you'd see this is what you're asking.
And here's my anwser:
1. forward compatibility (upgradability). If your code uses very narrow link to core you need to maintain that link throughout the native code upgrades. By using native concepts of storing and accessing data in the first place your code gets upgraded for you when the native code upgrades. This extension is using a lot of of such basic concepts that can't change radically in a short time without breaking a lot of other extensions out there. If we'd use DB we'd first have to make sure our DB is abstracted and then maintain compatibility when DB schema and it's abstraction evolves. We'd also have to make sure our code is able to install and upgrade using mw installer principles which would mean yet another additional task.
2. core MW functionality. This extension is in fact a way of linking individual pieces of data (in our case articles about a conference, about events, about locations, about people) into one structure, but while still keeping them what they are: an article. We are applying properties to articles that define their purpose and position in this structure and for that we're using page_props table as these are just that ... page properties. As page_props are a in a sense volatile data, as they get rebuilt every time a page gets parsed so the simplest way to achieve concurrency of these properties over page rebuilds is to make sure that they get recreated by the core itself along with other properties and this is done by using a parser tag. There is still some work to be done, to enable editors to do some inline editing of these tags by masking them and by using alternative editor hook principles. But to link back to the question at hand, my counter-question would be "why reinvent core mw functionality by using custom DB objects for storing page properties?"
3. "cost/effect". The parser tag, besides containing parameters needed to establish the right page_props state for a given page, also has a few additional data chunks, that could possibly be put into custom db objects, however as those chunks of data are small and get used rarely and even then in most cases it is only when doing editing trough administrative dashboard, it would be prudent to ask yourself if you can excuse creating that much additional code for so little effect. I failed to see that effect being enough for the cost and that's why i suggested Akshay to not use custom DB objects just to store that.
This extension is still a beta and as such needs some lovin' to get it from this hackish state to a stable release, but by my accounts the core functionality of it is sane.
And as for standards ... I've mentored Akshay the same way i mentored some people locally and the same way i have mentored all of the interns i've had. I've told them to forget about standards when doing test cases and alpha work, remember they exist when doing beta and try to apply most of them when doing releases as it has proven to be a good strategy for getting fresh solutions and not just crappy copy-pasting of stale snippets to get the work done. And also, just as the code, the standards too need be updated once in a while (and that can't happen if you consider them a law at all times). You might "frown upon" certain things at a given moment, but in the next moment that might just become a logical solution for your problem ... so do take into an account it's "flaws", be skeptical about it's validity ... just don't dismiss it too soon.
And John, as i've told you (or at least tried to tell you) on IRC: before understanding why someone does things in a certain way it's impossible to say if it's good or bad (or even disgusting in your case), so please, try to understand before making conclusions.
LP, Jure
On 08/26/2012 08:04 PM, John Du Hart wrote:
On Wed, Aug 22, 2012 at 8:40 AM, akshay chugh chughakshay16@gmail.com wrote:
- Parser tags, Magic Words (Variables) and a parser function
parser tags --> <conference>, <page>, <account>, <registration>,<passport>,<author>,<submission>,<event>,<organizer> and
<location>
This is a disgusting way to store data.
wikitech-l@lists.wikimedia.org