Brickipedia
Brickipedia
avatar Log in

User talk:Jack Phoenix

From Brickipedia, the LEGO Wiki
← User:Jack Phoenix

Welcome, Jack Phoenix!

Welcome to Brickipedia, a member of the Brickimedia Network. I hope you like the place and choose to join our work.

Wiki.png

Here are a few helpful links to get started:

Remember that you should always sign your comments on talk and vote pages using four tildes, like this: ~~~~.

I hope you enjoy editing here and being a Brickipedian! If you have any questions, feel free to contact me on my talk page. Happy editing!—CJC95

You are free to remove this message after you have read it.


Hi CJC95 (talk) 20:39, 5 June 2014 (UTC)

Hello there! --Jack Phoenix (talk) 13:34, 11 June 2014 (UTC)

Question[edit]

Hello ^_^ I had a question on the MW support desk since George recommended me to post it there, but there's no replies to it so I thought I might ask you since you're really experienced and techy. My question is located at https://www.mediawiki.org/w/index.php?title=Project:Support_desk&offset=20150429021233&limit=20#How_to_select_nth-child_of_grandparent_element_instead_of_direct_parent_element_56384 but I'll copy and paste it here just in case:


"Is it possible to select the nth-child of its grandparent element (2nd parent), versus it's parent element? I researched and apparently there are no CSS parent selectors.

My source code is located at http://dev.brickimedia.org/wiki/User:Codyn329/Sandbox/4

I want to do this so I can highlight the current day out of all the days on the calendar. However, since the way I nested it..

<div class="calendar-all-days">
   <div class="calendar-week">
      <div class="calendar-day">

When I select the parent of .calendar-day, it goes to .calendar-week instead of .calendar-all-days.

The main CSS block I'm trying to use to do this is here (Note - I'm using a magic word in a parser function (#css from Extension:CSS) so direct input of {{CURRENTDAY}} in the parentheses should be OK I assume):

.calendar-day:nth-child({{CURRENTDAY}}) {
  background: #27ae60;
  color: #fff;
  font-weight: bold;
}

I hope this question isn't too loaded. If you can help that'd be awesome, thanks :) Codyn329 (talk) 00:04, 4 May 2015 (UTC)

Re:Points and Stuff[edit]

Thank you so much! I will start editing as soon as I can!!! Sibo the First (talk) 05:15, 4 May 2015 (UTC)

Yay, award![edit]

Gold Brick.jpg
Gold Brick
Soupperson1 has awarded you a Gold Brick! Gold Bricks are awards given by users to other users for all their hard work. Great job!

You can copy the code for this Gold Brick and add it to your userpage.

Soupperson1 also added the following comment: For all of your hard work

Soupperson1 Friends are Forever! <3Friends girls.jpg

Wow, thank you! This was a nice surprise. :) --Jack Phoenix (talk) 13:51, 6 September 2015 (UTC)

Important changes for 2016[edit]

Brickipedia and the Brickimedia Network are undergoing big changes in 2016. Discussions are currently open and need your input at Project:2016 Changes:

  • New hosting – Brickipedia is considering changing servers. Please share your opinion on the matter.
  • Consolidate the sites – Brickimedia Customs and LEGO Stories Wiki have recently merged, but to further optimize the site and the community, it has been proposed to consolidate the sites to simply Brickipedia and the Great Ball Contraption Wiki.
  • Readership and Engagement – Proposal to frequently survey the community and visitors to gather data to continue optimizing the site.
  • Scrap the Admin Wiki – Proposal to give the community more transparency by deleting the private admin wiki for Brickimedia.
  • New subsites – Ideas to expand Brickipedia's project scope by adding new namespaces.

Please voice your opinion and read over the proposals and comments! --ToaMeiko (talk) 02:00, 13 March 2016 (UTC)

Important changes for 2016[edit]

Brickipedia and the Brickimedia Network are undergoing big changes in 2016. Discussions are currently open and need your input at Project:2016 Changes:

  • New hosting – Brickipedia is considering changing servers. Please share your opinion on the matter.
  • Consolidate the sites – Brickimedia Customs and LEGO Stories Wiki have recently merged, but to further optimize the site and the community, it has been proposed to consolidate the sites to simply Brickipedia and the Great Ball Contraption Wiki.
  • Readership and Engagement – Proposal to frequently survey the community and visitors to gather data to continue optimizing the site.
  • Scrap the Admin Wiki – Proposal to give the community more transparency by deleting the private admin wiki for Brickimedia.
  • New subsites – Ideas to expand Brickipedia's project scope by adding new namespaces.

Please voice your opinion and read over the proposals and comments! --ToaMeiko (talk) 02:00, 13 March 2016 (UTC)

Questions and other stuff[edit]

I always love to learn more stuff everyday, so questions are basically my best friends! :P I've some questions for you:

  • Does phabricator have a built in GUI? - This question I'm asking is because I'm used to changing files through a GUI, such as Github's GUI where you can edit the text and then press a button. If not, then is there a way to edit repos/projects besides Gerrit yet, like learning Git? There's so much I want to improve and contribute to, but unfortunately can't because Wikimedia and their structures are unnecessarily confusing :(
  • ResourceLoader modules can be disabled..right? - Yesterday for some reason I assumed that ResourceLoader MW modules can be disabled, but then I looked through the docs at mediawiki.org and it came to me that maybe it wasn't possible; Do you happen to have an answer?

Thanks :D Codynguyen1116 (talk) 06:47, 17 April 2016 (UTC)

Questions are good, keep 'em coming!
I think that either there's no such GUI or at least it's disabled on Wikimedia's Phabricator. For example, in the mediawiki/tools/grabbers repository, there is a button labeled "Open in Editor" next to the "View Raw File" button, but it's grayed out for me at least (see for yourself).
That being said, while gerrit no doubt is annoying, it's not a showstopper. Did you try this quick & dirty guide to gerrit I made you a while ago? Did it (not) work? We can talk about this in chat the next time you're online and I can guide you through the whole process of making a change and submitting it (and, depending on the repository, getting it merged).
This sorta depends on what's your definition of "disabled" and what modules you're talking about, but...no, not really (AFAIK). As an extension or a skin developer, you can tell MediaWiki that "this file/these files should only be loaded when a certain RL module is available & loaded"; the Refreshed skin does this. See Refreshed's skin.json file, the definition of $wgResourceModuleSkinStyles['refreshed'] (lines 78-82): note the plus sign. (Confusing? Probably. Also I doubt that this was the best explanation. As always, feel free to ask me for more details if/when you need such.) --Jack Phoenix (talk) 10:50, 17 April 2016 (UTC)

chat[edit]

you should get on chat sometime soon whenever you get the opportunity :D Codynguyen1116 (talk) 06:00, 7 June 2016 (UTC)

Greetings, Active User[edit]

LegoFan4000's monthly message- July 2016!

Welcome to LegoFan4000's monthly message

In this message I will be posting every month with updates and whatevers going on.

Helpful stuff[edit]

Featured article

41125-10.jpg

Olivia is a Friends mini-doll figure introduced in 2012. She is one of the five main characters of the theme and the protagonist of the television series LEGO Friends of Heartlake City, appearing in all seven episodes. She is the smart girl of the group of friends. She currently appears in twenty sets and she has seventeen variations between them. Olivia also appears in thirty-eight of the forty-eight Friends webisodes. Olivia has seventeen variants, all of which have the same hairpiece. The headpiece's eye colour was initially amber in 2012 but was later changed to a rust brown colour. Olivia has light nougat skin. Olivia's eyes are currently rust brown in colour. Above her eyes, she has curved black eyebrows. She has a smile, which is decorated with bright purple lipstick.

Read more... Featured story

Adventures in Heartlake:41114
41114-FanSoup1.jpg
Theme: Friends
Author: Soupperson1

Featured review This month's featured review is on 10696 LEGO Medium Creative Brick Box, written by Brikkyy13.

Bclassic1.JPG

Hello! Today I'm reviewing one of the Classic sets that are new for 2015, 10696 LEGO Medium Creative Brick Box. This set was kindly donated to Brickipedia by our friends over at The LEGO Group. So, is this set worth picking up, or is it just another parts pack? As you can see, the packing is quite unconventional. Like most sets branded under the "LEGO" name alone (i.e. not any specific theme) the parts are packaged in large re-usable for containers.

Read more...

Featured art Estari

ArtofEstari.jpg

Links[edit]

If you have any questions, or feedback about this, feel free to ask me at my talk page.

I hope you enjoy editing here and being a Brickipedian! Happy Editing! —LegoFan4000

You are free to remove this message after you have read it.

While vs Foreach looping in PHP[edit]

Figured since you're a code wizard, I should ask you this! Is there any reason why in the MediaWiki PHP code conventions it states that foreach() is recommended and should be used for iteration instead of while()? Thank you :) SamanthaNguyen (talk) 10:59, 26 July 2016 (UTC)

The "Assignment expressions" section of the PHP coding conventions simply states that using while() is unnecessary in new code. I think that using while() to loop over database query results is somewhat of a PHP4-ism, i.e. you can do so but it's not necessarily recommended, but it probably won't break anything — just like how you can declare a function as function someFoo( $whatever, $whateverAgain ) instead of public static function someFoo( MyClass $whatever, SomeOtherClass $whateverAgain ) — type hinting ("MyClass", "SomeOtherClass") and method visibilities are PHP5+ things. Realistically speaking, though, you don't need to worry about PHP4 because PHP4 has reached its end of life several years ago, and these days even PHP5.3 is EOL and MW requires like PHP 5.5 or something like that (as of MW 1.27 and newer). --Jack Phoenix (talk) 12:13, 26 July 2016 (UTC)
Ah, I see thank you! :) Another question, hope this doesn't annoy you xD Do you know a way to import a JSON file into a JS file? Here's the back-story - I'm currently creating a Periodic Table of Elements because I decided, there's no better way to study for Chemistry for my Sophmore high school year than make my own periodic table in HTML5 and use it as a study guide - right? xD My idea was to write all the elements in a JSON data format, since each element is basically an object with a collection of data, and then convert it to JS where it converts them to usable strings and wraps them around HTML elements, and loops through that until its wrapped every element in HTML and created the whole table! I also added extra field keys so that they could appear as a tooltip on click or mouseover. https://github.com/SamanthaNguyen/periodic-table/blob/master/elements.json This is the file I created, and I want to import it to a JS file into a JSON variable, and then do the conversion from there. Would that be possible and doable - is there a better way to do this? o: Hope this makes sense! Sorry if I'm bothering you xD

SamanthaNguyen (talk) 07:34, 27 July 2016 (UTC)

I'm more than happy to answer programming-related questions and help you to become a better dev!
JSON is a relatively popular choice these days, as it's fast, hence why MediaWiki first transitioned from PHP-based i18n to JSON i18n and then even to JSON-based extension & skin setup files! Who knows, maybe one day a significant portion of MW is written in JSON...(personally I hope that's not the case, but you never know!)
jQuery provides $.parseJSON, which sounds exactly like what you need. Interestingly, though, the page notes that in jQuery 3.0 (there's a jQuery 3.0?! Apparently so. Thankfully MW includes a somewhat older version of jQuery — I assume that's documented on mw:jQuery) that method is deprecated and you're supposed to "use the native JSON.parse method instead". I guess that makes some sense in a post-IE8 world, although I'm quite confident there's at least one relatively popular but stupid browser which doesn't implement that or implements it incorrectly. Given Android's popularity, for example, you can be sure that old versions of the Android Browser as well as Chrome are around. Though I'm hoping both of those are new enough to implement JSON support properly. --Jack Phoenix (talk) 13:53, 27 July 2016 (UTC)

Greetings, Active User[edit]

LegoFan4000's monthly message- August 2016!

Welcome to LegoFan4000's monthly message

Need something? Head over to Chat for help with anything on this site or any of the Brickimedia Projects.

Helpful stuff[edit]

Featured article

BlackKnights-shield.png

The Black Knights were one of the various factions of LEGO's Castle theme and were introduced in 1988. During its run, a total of thirteen sets were released as part this series, including two major castles, making it one of the larger LEGO Castle factions of this era. The black colour of their fortifications was one of the features that set the Black Knights apart from earlier factions. The Black Knights were also distinguished by their symbol, which was a blue wyvern dragon featured on their shields and banners, a motif that was also used by the Dragon Masters with different colours. The Black Knights were phased out as regular theme after 1994 but the crest still made occasional appearances until 1996.

Read more... | See more featured articles

Featured story

Template:Featured story/2017/06

Featured review

Template:Featured review/2017/06

Featured art Template:Featured art/2017/06

Links[edit]

If you have any questions, or feedback about this, feel free to ask me at my talk page.

I hope you enjoy editing here and being a Brickipedian! Happy Editing! —LegoFan4000

You are free to remove this message after you have read it.

Refreshed skin[edit]

Hi Jack,

I have applied the changes in this commit to the Refreshed skin on the wiki I am admin but I am still having the problem of emoji replacing the icons in iOS. I just wondered if I am missing something? I know this is a vague message but I have no clue why it isn't working so I thought you might be able to help.

Thanks, Lachlan (talk) 14:51, 11 August 2016 (UTC)

Hi Lachlan,
Hmm, that's strange. Alas, I don't have an iOS device nor access to one, so my abilities to help you out here are woefully limited, but let's see...
  1. Did you apply all changes to all four listed files? Sorry, I know this is a silly question, but look at Coasterpedia's main page, I still see <!--[if IE]><link rel="stylesheet" href="/w/skins/Refreshed/refreshed/iefontfix.css" media="screen" /><![endif]--> in the page source; if you look at the changes I made to Refreshed.skin.php, you'll notice that the iefontfix.css file is no longer loaded only for IE, but for all browsers, despite its now-misleading name.
  2. What about the device's local cache? I recall there being problems with some versions of iOS caching things way too aggressively. So you might want to check what purging the device's local cache does, too.
--Jack Phoenix (talk) 15:28, 11 August 2016 (UTC)
Thanks for the quick response, I have checked myself and the IE conditional statements are not there - it must have taken a while for the website to update because I have copied all the changes in the commit. I don't have any iOS devices either making testing difficult, instead I have been using BrowserStack. I have taken screenshots on a 5S and a 6 and both have the same problem so a caching issue seems unlikely.
Thanks again, Lachlan (talk) 18:51, 11 August 2016 (UTC)

A barnstar for you![edit]

Vitruvian Barnstar Hires.png The Technical Barnstar
For all your technical work. LegoFan4000 talk 11:52, 13 August 2016 (UTC)

MultimediaViewer[edit]

For testing MultimediaViewer, can you install it on social-tools.wmflabs and test it while using Refreshed, see whether or not it's site-specific? Thanks :)

SamanthaNguyen (talk) 04:32, 14 August 2016 (UTC)

Re: SocialProfile[edit]

~discussing in chat~ SamanthaNguyen (talk) 18:51, 16 August 2016 (UTC)

https://gist.github.com/SamanthaNguyen/cea4046bf7a20d7937b4d829526efc3b tada :) SamanthaNguyen (talk) 19:46, 16 August 2016 (UTC)

Disney Castle[edit]

Hi. If you could send me an email with your name and shipping address, that would be swell. You can do it in PM on chat too, if you'd rather. Please do it quickly, because we have to get back to LEGO before the 19th. Thanks. :) Berrybrick (talk) 00:58, 17 August 2016 (UTC)

Hey, that's great! :D Also don't worry about it, everyone makes mistakes every now and then :) @Testing: Sounds good! Put it on labs and I'll test it tomorrow when I get the time. ^-^

SamanthaNguyen (talk) 02:21, 25 August 2016 (UTC)

Done, let me know how it goes and I'll merge the patchset if it passes your QA. :) --Jack Phoenix (talk) 03:04, 25 August 2016 (UTC)

My wiki[edit]

[1] What extension(s) am I missing? LegoFan4000 talk 14:57, 25 August 2016 (UTC)

https://www.mediawiki.org/wiki/Extension:StringFunctions / https://www.mediawiki.org/wiki/Extension:ParserFunctions. CJC95 (talk) 15:22, 25 August 2016 (UTC)
Seems you have ParserFunctions, so could add to LocalSettings.php
$wgPFEnableStringFunctions = true; 
and get them working. CJC95 (talk) 15:25, 25 August 2016 (UTC)

Re: SocialProfile, Echo notifications, MediaWiki 1.27 upgrade, image migration and more![edit]

let's talk about it on chat :D SamanthaNguyen (talk) 21:06, 27 August 2016 (UTC)

for your magical code wizardry..[edit]

i hand you a small kitten (i'm already jealous :( :P) for your crazy code spells!

http://41.media.tumblr.com/05c26af8245e100e0b319dffec763458/tumblr_n04nj1eO101ssyeu4o1_500.jpg

SamanthaNguyen (talk) 01:39, 12 September 2016 (UTC)

D'awwwwwwwwwwwwwwwww, that is one cute kitty! :D --Jack Phoenix (talk) 15:10, 12 September 2016 (UTC)
yesh it's super fluffy and adorable SamanthaNguyen (talk) 03:54, 13 September 2016 (UTC)

Git submodules[edit]

Since I know you're busy, I went ahead and posted a message on Ajraddatz's talk page (I've assumed you haven't been able to contact any git wizards yet? if you haven't that's totally okay, don't worry), so tada! Let's wait and see what he says. :)

SamanthaNguyen (talk) 03:54, 13 September 2016 (UTC)

Yeah, I haven't been working on that, sorry. I googled a bit and found this slightly tl,dr GitHub help article on (not) using git submodules. Haven't had the time to go through it and test it, though. --Jack Phoenix (talk) 17:14, 13 September 2016 (UTC)

No worries! He didn't have an answer but there's still more people we can try and talk to :) SamanthaNguyen (talk) 02:00, 14 September 2016 (UTC)


VisualClear[edit]

(also unrelated thing, epxanding on from last comment): Do you happen to know the history behind <div class="visualClear"></div>? I'd like to know why it was originally created - was it a HTML & CSS hack to bypass something back a few years ago (although I can't think of why this would be written to bypass something)? I believe more sane methods of doing the same thing are available, such as applying CSS to the actual element (that doesn't have the class .visualClear with a margin). I've mentioned this before, such as in the TopUsers phabricator task (T143388). Why would a skin fail to render / get close to failing if such a line was removed? Really curious, as I'd like to see it removed it at one point or another (I've seen it in multiple extensions, not just TopUsers module in mw-ext:SocialProfile, like RandomUsersWithAvatars, see Line 85 on RandomUsersWithAvatars.class.php. There are better ways to do it, and empty elements can cause accessibility issues and (potentially!) confuse readers using technology-assistive devices. Thank you! :)

Edit: I was browsing through the SportsTeams extension, and saw a commit that referred to "the SocialProfile commit", which I was able to track back to at commit #a1c4da4 at mediawiki-extensions-SocialProfile. While it does clear up that the visualClear class actually dates back to the core of the MediaWiki software, it still doesn't explain why it's there, which is confusing. It sounds like technical debt, and it's managed to spread out on multiple lines on multiple extensions, for example: line 73 on RandomUsersWithAvatars.class.php was another offending instance of this happening (wow :o)

Thanks in advance! I'm interested to see a response - Also please don't take this comment as offense to your coding abilities - my intentions are to help improve the extensions ^_^ SamanthaNguyen (talk) 02:17, 14 September 2016 (UTC)

visualClear and/or things like it are still necessary. That particular CSS class is as old as MonoBook itself (or technically older, since MonoBook somewhat "evolved" from Mono which evolved from DaVinci).
As for why it's there...well, use your browser's developer tools to manually remove it and see how much it messes up the page. :) I'm actually not sure if that's the case on Refreshed, but with MonoBook/Vector/most other (even remotely) popular skins, that CSS class is very much needed. It does feel somewhat hacky, but most of the time it just works as you'd want it to.
Technical debt is very much a thing with social tools, given both the sheer size of their codebase and the lack of developers — even in 2006/2007, when ArmchairGM (and later Wikia) was heading the development of these tools, you could count the amount of developers with two hands' fingers. Nowadays you don't need more than one hand to do that, and even so, it basically boils down to me fixing things (or not fixing, in which case they stay broken unless a user steps up with a patch — this has happened a few times in the past!). It would be ideal to reduce the amount of technical debt, but at the same time we must be careful not to break anything, and that's not always so easy.
If you were attempting to offend me, well, I'm sorry but I gotta say that you failed miserably at that. :P It's gonna take a lot of time and dedication to offend me, and I'm still willing to bet that fixing 15 hard bugs in MediaWiki's lovely Parser.php would be easier than that. ;-) --Jack Phoenix (talk) 09:22, 14 September 2016 (UTC)

mai fingers[edit]

My fingers are dead after opening up 30+ tickets within 2 days. JSYK, I'm probably gonna take a break from writing tickets for a few days after I report everything I find for the social tools (mainly WikiForum but If I find some in the others I'll do it) :P

SamanthaNguyen (talk) 04:52, 21 September 2016 (UTC)

Re:AFTv5 and responsiveness[edit]

I tested your max-width for the child element (..articleFeedbackv5-panel) and it went smoothly, so yes it does sound good as a commit! I also +1'd your commit for the other phabricator task you mentioned. (although I still hate px units, and for good reason too. :P) SamanthaNguyen (talk) 15:00, 25 September 2016 (UTC)

A barnstar for you![edit]

Vitruvian Barnstar Hires.png The Technical Barnstar
Your dedication to the MediaWiki software is outstanding - so many contributions, and using your knowledge to help improve not only for communities such as this one (Brickimedia), but for other communities too, as a volunteer. You're not being paid yet you still keep at it. Awesome job :D SamanthaNguyen (talk) 01:02, 15 October 2016 (UTC)
So I never thanked you properly in public for this. Just where are my manners? So, um, thank you! A little recognition goes a long way as software developers don't get enough of that most of the time. --Jack Phoenix (talk) 19:40, 24 October 2016 (UTC)

Planning the VisualChanges proposal to send to the 2016 WMF CWS[edit]

The 2016 Community Wishlist Survey for members across Wikimedia projects (including MediaWiki.org) to vote on is going to be happening soon, so if you have time tomorrow, could we start discussing together on how we should write the porposal about VisualChanges? Thanks in advance :) Sorry I've notified so late, I've been mainly working and trying to finalize the rough draft of the UI (which is quite complex). We should make sure it'll fit within Community Tech's scope) and explain how it'd help veteran users and new users (the core community), and make sure we can do what's possible to lessen their workload as much as possible (if it were to pass), since it would be a collaborative effort (creating all of the UI was part of the plan to work towards a lesser workload, otherwise it'd require rethinking an interface from scratch for them). :) We should also note that if it was to pass, it should be a BetaFeature, since it would be something completely brand new and would require much iterative testing, etc etc.

SamanthaNguyen (talk) 03:55, 24 October 2016 (UTC)

Sure thing, just ping me on chat and I'm sure we can work out something. --Jack Phoenix (talk) 19:40, 24 October 2016 (UTC)

AJAXPoll[edit]

Hey, when you have time, could you look at https://www.mediawiki.org/wiki/Topic:Teq68x8k7s4m9x38 ? Thanks :)

SamanthaNguyen (talk) 05:20, 7 November 2016 (UTC)

Your request for rights[edit]

Jack, I regret to inform you that your request for rights is invalid. You need at least 500 mainspace edits to make a request, but you only have 470 at the moment. I've closed the vote but left it on the page since I don't think you'll have any trouble reaching the requirements. LCF (talk!) 07:17, 27 November 2016 (UTC)

Actually the page does not say that you need 500 mainspace edits, but rather 500 content namespace edits. In addition to the main namespace, the following namespaces are configured as content namespaces ($wgContentNamespaces) on this wiki: Brickipedia News (NS_NEWS, internal ID 2000), Fan (NS_FAN, internal ID 112), Inventory (NS_INVENTORY, 114), Review (NS_REVIEW, 118) and Part (NS_PART, 120). SQL never lies, so:
MariaDB [(none)]> SELECT COUNT(*) FROM en.revision JOIN en.page ON rev_page = page_id WHERE rev_user_text = 'Jack Phoenix' AND page_namespace IN (0,112,114,118,120,2000);
+----------+
| COUNT(*) |
+----------+
|      504 |
+----------+
1 row in set (0.01 sec)
But you can use Special:Editcount/Jack Phoenix to verify that I didn't make up the result. --Jack Phoenix (talk) 07:37, 27 November 2016 (UTC)
I don't need to see anything, but thanks anyway. I'm just reading off what the policy said when it was instated (this was over a year before Customs was added back to enbp - I don't know anything about BP News or Reviews at that time, however.), "content" being defined as the main, part, and inventory namespaces. A lot has changed since then, but perhaps you should take a look at this vote on the forum. If you could vote on that, we might be able to change that rule, as it is archaic at this point. LCF (talk!) 18:54, 27 November 2016 (UTC)

Refreshed[edit]

Hi, I installed the latest version of refreshed on my wiki but when I add the code to LocalSettings.php it breaks the site and shows a white screen. Any ideas? 2600:1000:B00E:51F:D077:A97B:77CE:A93A 23:23, 27 November 2016 (UTC)

The proper place for this discussion is mw:Skin talk:Refreshed. You'll want to take a look at mw:Manual:How to debug first. --Jack Phoenix (talk) 04:52, 28 November 2016 (UTC)

WMUI color palette[edit]

(copy pasted from last night's PM):

* SamanthaNguyen: I believe it should be changed to #00af89 (from M82), while the red should be changed to #d33 (also from M82, WMUI color palette)
* SamanthaNguyen: I'm not sure how they should be exactly styled though, as in if the background should be a lighter red, or if it's white, or if the background is #d33 or if the border is #d33 (or if there even should be a border!), since that hasn't really been styled yet
* SamanthaNguyen: Related specifically to phab:T152171; I think we should wait until we can get some input from Volker, who leads the UI standardization efforts
* SamanthaNguyen: (sorry rephrase, I mean we should put the color change in a future, separate commit)

Basically, I think we should wait until we can get a response from Volker :) SamanthaNguyen (talk) 02:36, 3 December 2016 (UTC)

Generic new admin message[edit]

This is a generic message expressing congratulations at your becoming an admin and informing you that if you have any questions you should ask, since no one else has done this yet. CJC95 (talk) 11:34, 4 December 2016 (UTC)


{insert generic comment about girl power} Congrats! :P Soupperson1 Friends are Forever! <3Friends girls.jpg

Thank you, my fellow colleagues! I'll be sure to nag you both equally if and when I have questions. ;-) --Jack Phoenix (talk) 16:57, 4 December 2016 (UTC)

http://i.imgur.com/0mKXcg1.gif {insert generic cliche congrats here} :D SamanthaNguyen (talk) 22:01, 4 December 2016 (UTC)

Thank you for doing the actual opping! :-) --Jack Phoenix (talk) 02:13, 5 December 2016 (UTC)

Congrats on the admin, ashley![edit]

^ Jello chitchat! 22:31, 4 December 2016 (UTC)

Muchas gracias Rock-O-Jello! --Jack Phoenix (talk) 02:13, 5 December 2016 (UTC)

VoteNY redesign mockup[edit]

You tell me to post design mockups on your talk page, so here you go! :P -> codepen:SamanthaNguyen/debug/zoaQOx

It's based on WikimediaUI/OOJS-UI, and the ButtonWidget that's classified as primary and progressive. (Source: OOJS-UI UI Demos ) It's currently done with just plain CSS, and FontAwesome.

Currently there isn't any empty heart icon, full & empty like icon in WikiFont, although there's some star icons available. For the purpose of this demo and to show a rough concept, it's using FontAwesome (for now), but in the real extension there should be a folder named something like assets stored with WikiFont SVGs. It shouldn't use a git submodule (compared to how Refreshed uses a submodule), since that would just be unnecessary. It's only a couple of icons, and we could update it manually when necessary. I don't think they change that much anyways actually, so updating it manually shouldn't be too hard IMO :)

The hovering to change icon works by checking whether or not the button has been :hovered over, and then styles its descendant selector, i by changing the content of it's psuedo-selector, :before, which looks like:

.button-like:hover i:before {
	content: "\f164";
}

This would work for WikiFont too, except we'd just a different unicode for selecting the icon ;) The star rating works slightly differently, with using some different CSS selectors (e.g ~) and a couple properties. (Source: https://css-tricks.com/star-ratings/ ). The stars doesn't fully work yet, since I created a slightly different HTML structure for semantics, but I'll fix it tomorrow since it's kinda late here! As for the star :hover color, it uses the color YELLOW50 which is equivalent to #fc3 and rgb(255,204,51) from the WikimediaUI color palette. The star :active color will use YELLOW30 (#ac6600 / rgb(172,102,0)), also from the color palette.

I was thinking that the icon could be configurable via setting the value of the variable in LocalSettings.php, which could possibly be: $wgVoteNYIcon, or it could be set via a custom attribute in the custom vote tag - although I think the icons should be consistent so that the user doesn't possibly get confused. I showed both though just to show how it'd look like, and what you think about different icons?

Let me know your thoughts if you see this message later!

Edit: If anyone else wants to post feedback too, feel free to. :P SamanthaNguyen (talk) 06:36, 9 December 2016 (UTC)

The stars look nice and probably are more HiDPI-friendly than the current ones as the current ones are images.
I'm not sure about redesigning the green voting box as a "like" button, though. This much I can say: we don't want the combination of 1) the button-esque CSS styles, 2) the thumbs up icon and 3) the word "like", because Facebook did that already. I'm okay with the heart, though — since obviously we can't use stars to indicate "like" here like how browsers etc. do! Thus there's no need to introduce a new configuration global or anything for this redesign.
Here's a "redesign", if you can call it that, which I worked on earlier. As you can see, the CSS needs (lots of) love and the awkward raw timestamp oughta be passed through a formatter function of some kind...but, of course, that's not the whole story: turns out that while the code itself is technically OK, it calls a few core methods in a way that isn't anymore possible. I've submitted this patch to core to see if we could get that fixed, but I bet it won't happen quickly. --Jack Phoenix (talk) 07:31, 9 December 2016 (UTC)

Refreshed and MediaWiki version[edit]

Hi Jack, I'm not sure if you're the right person to ask so hopefully you can help with this.

Is the Refreshed skin compatible with MediaWiki 1.28? I want to update my wiki but I see Brickipedia is still on 1.26 so I wondered if there is a problem with the skin on newer versions of MediaWiki. I don't want to update the site and find the skin broken.

Thanks again, Lachlan (talk) 14:55, 17 December 2016 (UTC)

The proper place would likely be mw:Skin talk:Refreshed so that more people can see the question and the answer, since this is a generic MediaWiki question and not a Brickipedia-specific one.
That being said, it certainly looks to be compatible with 1.28: the social tools test wiki at social-tools.wmflabs.org is running MW 1.28 with plenty of custom skins and extensions and the skin looks fine. The only tricky part when it comes to the Refreshed skin is initializing the WikiFont submodule, which is a hard dependency and thus required for the skin to work. --Jack Phoenix (talk) 18:04, 17 December 2016 (UTC)
Thanks for the advice, I wasn't aware of this test wiki so if that is running 1.28 I should be fine. I'll bear that in mind in the future. Lachlan (talk) 08:55, 21 December 2016 (UTC)

git rebasing?[edit]

If you have time tomorrow, could you help teach me how to rebase patches? I was reading through https://git-scm.com/docs/git-rebase, but it seemed a little confusing. Thanks in advance! :-)

SamanthaNguyen (talk) 09:55, 2 January 2017 (UTC)

git docs are notorious for being confusing and using overly complicated words and concept to describe simple operations.
So in the best case, you can rebase via gerrit's web UI by clicking on the rebase button. Alternatively there's cherry-pick, which means "take this commit and (try to) apply it on top of the current master".
But sometimes you genuinely need to rebase manually:
# download patch / git review -d ### or whatever
git fetch
git rebase origin/master
# fix conflicts; need to "git add" conflicted files here!
git rebase --continue
git push gerrit HEAD:refs/for/master
So if you were to rebase gerrit:304597 which currently cannot be merged, you'd click on the "Download" link (top right, next to "Patch Sets (2/2)", copy the command from the "Checkout" row (git fetch https://gerrit.wikimedia.org/r/mediawiki/skins/Refreshed refs/changes/97/304597/2 && git checkout FETCH_HEAD and execute it to download the patch locally, and then run the commands listed above (git fetch, git rebase origin/master, and so on).
In reality sometimes it's easier to just check out a copy of the repository (unless you already have it checked out!) and manually reapply the patch. If you keep the same Change-Id, gerrit will treat the new patch as an updated version of the old one. So you could clone a copy of the Refreshed repo, manually apply the code changes from gerrit:304597 and include Change-Id: Ib42c546213a63a0fbb60b9c5bca23b5334e25479 as the last line of the commit message and once you'd push the change back, it would be treated as a new version of gerrit:304597 and it'd show up there (instead of creating a new patchset). I'm not sure if you can call that exactly rebasing, though. --Jack Phoenix (talk) 13:37, 2 January 2017 (UTC)

Code review of ArmChairGM's/wikia's old UserImages extension[edit]

You asked me to practice code reviewing by code reviewing an old extension that Wikia wrote, so here's a code review. It gave me a headache. :P (code review in progress) I tried to poke out comments on security, and ended up writing down comments about other stuff too! (Also you were right when you said it was full of batsh*t-crazy code.. :P)

MiniAjaxUpload.php
  • Line #54, Line #62, Line #130, Line #189 - Should check for equality with a stricter equality operator (===)
  • Line #210 - Inline styling
  • Line #225 - Inline styling
  • Line #232 - ereg() is a deprecated function in PHP. Should check for equality with a stricter equality operator (===)
  • Line #243 - Inline styling
  • Line #308, Line #309, Line #310 - these can be compacted into one line.
  • Line #325 - Inline styling
  • Line #334 - Should check for equality with a stricter equality operator (===)
  • Line #337 - Inline JavaScript
  • Line #375 - Should check for equality with a stricter equality operator (===)
  • Line #399 - Should check for equality with a stricter equality operator (===)
  • Line #405 - Inline JavaScript
  • Line #406 - Inline stylesheet
  • Line #407 - This CSS block isn't needed.
  • Line #411 - Overqualified CSS selector - just state the CSS class instead.
  • Line #412 - Appending units for 0 are unnecessary. Value needs spacing after property
  • Line #413 - Value needs spacing after property
  • Line #416 - Overqualified CSS selector - just state the CSS class instead
  • Line #417 - Appending units for 0 are unnecessary. Value needs spacing after property
  • Line #422 - Inline JavaScript
  • Line #449 - Should check for equality with a stricter equality operator (===)
  • Line #467 - Should use the HTMLForm class instead (also currently uses inline JavaScript in the anchor element)
  • Line #468 - these HTML attributes are deprecated.
    • border can be replaced with the border property in CSS (e.g border: 0;)
    • cellpadding can be replaced with padding CSS property on td elements (e.g td { padding: 0;)
    • cellspacing attr can be replaced with border-spacing CSS property on the table element (e.g table { border-spacing: 0; })
  • Line #510, Line #521, Line #565 - Should check for equality with a stricter equality operator (===)
  • Line #511 - Should be i18n message instead
  • Line #518 - (AFAIK) there's no need for this line when it's just going to be immediately redefined in the next line at 519.
  • Line #531 - Should be i18n message instead
  • Line #551 - Inline JavaScript
UserImages.i18n.php
UserImageList.php
  • Line #21 - Should be loaded through ResourceLoader
  • Line #22 - Should be loaded through ResourceLoader
  • Line #45 - Should be i18n message instead
  • Line #114 - Inline JavaScript
UserImages.css
  • UserImages.css - Every value for each property should have a space right after the property, use em instead of px units, avoid floats when possible,
  • Line #45 - Separate selectors into different lines
  • Line #47 - Use shorthanded hex color value instead
UserImages.js
  • Line #2 - Color value should be lowercase
  • Line #11 - ajax isn't a valid value for the API action module
  • Line #20 - huh? I'm assuming this line is trying to connect to some sort of Yahoo API? Whatever data is trying to be retrieved from the Yahoo API (if it is), there's probably an alternative to get the data.

SamanthaNguyen (talk) 08:41, 8 January 2017 (UTC)

Heh, yeah, sorry about that! If it's of any consolation (probably not :P) a lot of the time code review is that — 'especially when working with a codebase that's almost a decade old! That at least somewhat explains many (but not all!) of the things you pointed out, which are related to general code quality and best (or worst, as the case might be) practises. 2006 and 2007 might've been a whole lotta different than what 2016 and 2017 are/will be, but inline JS and whatnot wasn't exactly the best practise then either, but it was only ResourceLoader (in MW 1.16) that forced developers to rethink their JS loading logic, for example.
Looking at the things you found, I'm simply going to say that you're 100% right on all of those and there are probably plenty of other things to fix (which I've fixed in my local copy). Some security things I noticed from a quick glance:
MiniAjaxUpload.php
  • Line #333 — This isn't validated at all, save for the length check below so Special:MiniAjaxUpload?callbackPrefix=<your nasty JS here> would lead into XSS since the value of the URL param is passed as-is to the JS. I'm not fond of how the $msg param is handled either, as it's not very obvious that its value is safe since it comes from MediaWiki messages. (Technically speaking a rogue admin could modify one of the three error messages passed into mainUploadForm(), but these kind of XSS "holes" still exist all over the place. The general assumption, which may or may not be true, depending on the site and various other circumstances, is that admins are trustworthy.)
  • Line #532 — Hello there SQL injection, my old friend. It's extremely unlikely to be safe to use $this->mUploadSaveName in the (raw!) SQL query like that. This (potential but likely) SQL injection point wouldn't exist had the developers used MediaWiki's database abstraction layer for constructing the query. Using the DBAL has the nice "side-effect" of producing cross-DBMS-compatible SQL (in most cases; in practise non-MySQL/MariaDB DBMSes do some strange stuff which may or may not cause b0rkages).
  • Line #553 — Classic XSS times four! $img_tag and $desc are escaped, but improperly; Tim Starling once said that there's no reason to ever use addslashes() in MW code, and thus it's more than likely that there's a better replacement for that. htmlspecialchars() is (IIRC) preferred over htmlentities. $prefix and $this->mUploadSaveName are passed as-is without escaping into the output, which is a big no-no.
  • And the same XSS stuff persists in the uploadError() method.
UserImageList.php
  • Lines 21 and 22 use $wgStyleVersion...but it isn't declared as a global. On setups where the nowadays deprecated (and, IIRC, removed) PHP option register_globals is enabled, this could lead into code injection by letting an attacker set the value of $wgStyleVersion from an external script. That's why MW code had the if ( !defined( 'MEDIAWIKI' ) ) { die(); } checks in place back when MW supported versions of PHP where the aforementioned nasty register_globals option existed.
  • Lines 32 and 157 — $user_name (the user URL param) is passed as-is into the HTML output, so visiting a URL like Special:UserImageList?user=<script>alert('lol')</script> would execute the JS code; thus this is an XSS injection point.
  • Lines 64 and 75 — the SQL queries are ugly and should be using the DBAL (and that way there wouldn't be a need to manually escape the user name or anything with addslashes(), which you shouldn't be using in the first place)
UserSlideShow.php
  • Being rather similar to UserImageList.php, this file suffers from many of the same issues. An additional noteworthy XSS point here is the user name ($user_name, the user URL param) being passed as-is without any validation or sanitization to the HTML output on lines 150 and 151.
Additionally it's noteworthy that even though this extension attempts to be somewhat stand-alone (like many other ones — SystemGifts, UserProfile, etc. — which were later bundled into a single extension called SocialProfile) there's no setup file of any kind and parts of this extension actually live in extensions/wikia/UserProfile/UserProfilePage.php (currently /extensions/SocialProfile/UserProfile/UserProfilePage.php) — namely the getMiniGallery() function and the call to it on UserProfilePage::view() on line 87. (In addition to being badly designed interdependent code, there's at least one XSS vuln in there, on line 312.)
In any case, I hope you learned something about security, especially in the context of MediaWiki. :) In retrospect the review I asked you to do wasn't exactly the easiest, since the code won't run on modern MWs and thus you couldn't test it and you had to rely only on the MW.org documentation and your skills for spotting the various issues. For a slightly easier and probably more useful challenge, you could try finding an extension that hosts its source code on the WMF git and is actively maintained, but not deployed on WMF sites and consists of a reasonable amount of files (that basically translates to "most things which aren't SocialProfile or Semantic MediaWiki" :P) and testing it out and reviewing it for possible security issues. (And if you do manage to find a security issue that isn't yet fixed, please report it appropriately on the WMF Phab!) --Jack Phoenix (talk) 18:12, 8 January 2017 (UTC)

Refreshed[edit]

Sorry to bother you, but I need a response here asap. 2600:1000:B00F:CF38:DD2F:928D:CCCC:D82E 16:22, 29 January 2017 (UTC)

I was going on a patrolling spree and didn't mean to patrol this one. Watch out for a potentially hazardous link. Vasko (talk) 18:46, 29 January 2017 (UTC)
Oh relax, :P, it's just a link to a topic on the MediaWiki page for refreshed. 2600:1000:B02F:88F4:18BA:C1A1:A9FF:3746 19:45, 29 January 2017 (UTC)
Alright, just wanted to make sure! :) Vasko (talk) 08:40, 30 January 2017 (UTC)