User:DBrant (WMF)/Goodies

Uncle Dmitry's bag of goodies. You're welcome.

Apps team pages

 * Mobile team portal
 * Apps team page
 * Release process
 * Why apps?
 * Release history (update with every release)
 * Roles, responsibilities
 * Development cycle
 * All subpages under mobile apps
 * App readme and FAQ and Play Store description
 * Apps/Desktop feature matrix

Goals

 * Our work on Feeds and Navigation.
 * 2015-2016 road map for android and ios.
 * Planning for Q4
 * Goals for Q4

Phabricator boards

 * Mobile app goals
 * Android app
 * General/unknown app
 * iOS app development and backlog.
 * Content service
 * Roadmap board
 * Reading admin board
 * Project creators
 * Guidelines for new projects
 * Older mobile apps board
 * Calendar board (for marking vacation)

Android
$ brew install jd-gui $ brew install dex2jar $ d2j-dex2jar  -o  $ adb tcpip 5555 $ adb connect :5555 $ adb -s :5555 usb $ adb shell $ netcfg $ adb shell $ am broadcast -a android.intent.action.BOOT_COMPLETED The above may actually cause your device to reboot, in which case you'll get the event when the device finished booting! ;) $ adb shell $ am broadcast -a com.android.vending.INSTALL_REFERRER -n org.wikipedia/org.wikipedia.analytics.InstallReceiver --es "referrer" "referrer_url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWombat&campaign_id=foo&install_id=bar" In the above, make sure you set the package name ("org.wikipedia") to the correct flavor that you're testing, and optionally change the "referrer_url" to something else.
 * Screen sharing: Android Screen Monitor (ASM)
 * Memory profiling: Eclipse MAT
 * Decompile: APKtool, dex2jar
 * Material Design icons
 * Convert SVG to vector drawables
 * Activity lifecycle
 * Porter/Duff modes
 * ImageView scaleTypes
 * Annotations
 * Device metrics
 * Install Google apps in Genymotion.
 * To do ADB over the network:
 * To switch back to ADB over USB:
 * To get the IP address of the device:
 * To simulate a BOOT_COMPLETED event:
 * To simulate an INSTALL_REFERRER event:

MySQL

 * Linux/Windows/Mac: MySQL Workbench
 * (Windows only) Establish an ssh tunnel to stat1003:
 * SSH Hostname: localhost, SSH Username: dbrant, MySQL Hostname:, Username: research
 * Get the password for the "research" user from.
 * Note, when installing on Windows, and you find that Workbench fails to connect to Wikimedia's stat1003 over the Bastion tunnel, try using this fork of paramiko.
 * Also, to make text fields appear properly, go to Edit -> Preferences, SQL Editor -> SQL Execution, and check the box "Treat BINARY/VARBINARY as nonbinary character string."
 * Mac only: Sequel Pro
 * MySQL Host:, Username: research, SSH Host:
 * Get the password for the "research" user from.

Gerrit

 * all open patches in Android app
 * all open patches in java-mwapi
 * all open patches in MobileApp extension
 * all patches by me
 * https://www.mediawiki.org/wiki/Git/Reviewers Gerrit reviewer bot]

Git
$ git remote add upstream https://github.com/foo/bar.git $ git fetch upstream $ git checkout master $ git merge upstream/master
 * To sync a fork with the upstream repo:

API

 * Documentation
 * Api Sandbox
 * Parsoid DOM spec
 * CirrusSearch

Services
https://en.wikipedia.org/api/rest_v1/page/summary/Cat http://appservice.wmflabs.org/en.wikipedia.org/v1/feed/featured/2016/07/05 http://appservice.wmflabs.org/en.wikipedia.org/v1/page/random/summary
 * RESTBase for apps
 * Documentation
 * Content service in gerrit
 * URL shortener
 * Examples:

Jenkins/Zuul issues
Remember to always !log in #wikimedia-qa when performing manual commands via Jenkins control panel.
 * Jenkins admin
 * Add a comment of "recheck" to force Jenkins to reevaluate a patch.
 * Known issues
 * Gearman deadlock

Event logging
$ ssh deployment-eventlogging03.eqiad.wmflabs $ tail -f /srv/log/eventlogging/all-events.log | grep "MobileWikiApp"
 * Event logging:, Hive:
 * Event logging schema list
 * Event logging help for production and beta.
 * Event logging testing on labs:
 * Hive help
 * Hive FAQ and samples
 * Hue
 * Refinery source code for daily/monthly uniques

Bromine (releases) (formerly Caesium)
To copy stuff over: $ scp [file] bromine.eqiad.wmnet:~/[file] $ scp app.apk bromine.eqiad.wmnet:/srv/org/wikimedia/releases/mobile/android/wikipedia/alphas/app.apk
 * https://releases.wikimedia.org/mobile/android/wikipedia/

Android builds
$ ssh android-build.eqiad.wmflabs $ sudo -s $ sudo -u android-build /bin/bash $ cd /srv/builds
 * New: http://android-builds.wmflabs.org/
 * Gerrit

$ ssh dbrant@tools-login.wmflabs.org $ OR: ssh dbrant@tools-dev.wmflabs.org $ become wikipedia-android-builds $ webservice [start|stop]
 * Old: http://tools.wmflabs.org/wikipedia-android-builds/, http://tools.wmflabs.org/?tool=wikipedia-android-builds

Partners

 * List of partners and apk builds.
 * List of Global South/North countries
 * Zero portal
 * Testing

people.wikimedia.org

 * This is hosted on
 * https://people.wikimedia.org/~dbrant/
 * Help on Wikitech

TranslateWiki

 * Translation for app strings

Wikidata

 * autodesc
 * WDQ
 * Documentation

Maven repo
$ ssh dbrant@tools-login.wmflabs.org $ cd /data/project/android-maven-repo/public_html
 * https://tools.wmflabs.org/android-maven-repo

.ssh config
Host bastlabs HostName bastion-eqiad.wmflabs.org User dbrant Host *.eqiad.wmflabs !bastion-eqiad.wmflabs.org User dbrant IdentityFile ~/.ssh/id_rsa ProxyCommand ssh -a -W %h:%p bastlabs Host bastprod HostName bast1001.wikimedia.org User dbrant Host *.eqiad.wmnet *.wikimedia.org !bast1001.wikimedia.org User dbrant IdentityFile ~/.ssh/id_rsa ProxyCommand ssh -a -W %h:%p bastprod
 * 1) Use bastion-eqiad.wmflabs.org as proxy to labs
 * 1) Production bastion host

Onboarding/Fundamentals

 * Gerrit
 * MediaWiki-Vagrant
 * Bash git prompt
 * Git completion
 * Dotfiles
 * Mobile Web dev sessions
 * Research FAQ

Administrative

 * NOC
 * Labs mobile instances
 * Help
 * Deployments
 * Test Wiki
 * Block, Unblock
 * Mobile report card (limn)
 * Search metrics
 * Wikipedia manual of style
 * Wikimedia blog
 * JetBrains licenses

Miscellaneous
exiftool -AllDates-= -AllDates="2008:01:01 12:00:00" -overwrite_original -r.
 * My gists
 * Typographical symbols
 * Emoji cheat sheet
 * FIT file tools
 * Encode an Exif date tag into photos (recursively, in a whole directory):
 * Manage a website using git.
 * File format archive
 * Online graphing calculator
 * Online hex editor

Teachable moments

 * Community wishlist 2015
 * Gather
 * RfC to disable Gather
 * Our proposal to the RfC (see talk page)
 * Moderation criteria
 * Extension talk page
 * Old RfC for user-specific lists
 * Risker's checklist for new content-creation extensions
 * Antandrus's observations on Wikipedia behavior
 * Sue Gardner's guide to working with online communities
 * Refactoring is the enemy of the product owner.
 * Do the least amount of work while still delivering value to the user (or at least strike a balance between user-facing goals and technical debt).