I very recently put together a Drop CTRL mechanical keyboard, which I find I quite love—but it of course has some drawbacks.

It’s not fully QMK-compliant, which is kind of a bummer, but even if it were, it turns out that configuring LEDs on a keyboard using QMK is a bit of a beast. I usually use a solid-color layout, but just setting that up using QMK turned out to be something of an ordeal.

Let’s just say that I’m not 100% down with configuring my keyboard with a text file.

Thankfully, in my research on this over the past week, I found a rather new firmware for the Drop CTRL that solves a bunch of problems I’d had with it.

Enter endgame.

This is the function layer, which is a complete godsend. Even better, when holding the layer function key, the available modified keys light up differently from the remaining keys on the board.

It’s really, really cool to be able to change LED color on the fly using just a key combination on the board. The stated goals of this firmware branch are really great, and I’m hoping to keep an eye on it for a while and see how much work is done.

You can find this specific firmware in the QMK Github repository here if you are interested in checking it out for yourself.

Planning to work towards earning the title “Savior” in Destiny 2? Here’s your guide to the triumphs necessary to claim the Seal and equip the title before it expires at the end of the Season of Dawn.

14 total Triumphs are necessary to complete the Seal. I’ve reordered them slightly below to group them by theme/location.

Obtaining the Triumphs

The Season of Dawn Collections Badge

You’ll need the following to complete this one:

  • The Global Resonance triumph, which is also included in this Seal. It drops the Timeswept Shell Ghost shell.
  • The Crucible Quests “Stronger Together” and “Fire Breather.”
  • The Gambit Quests “Tear It Up” and “Spitting Distance.”
  • The Vanguard Quests “Duty Driven” and “Shoot Fast, Tread Lightly.”
  • Collecting a full set of the seasonal armor. You receive this automatically if you have the premium track on the Season Pass.
  • Obtaining all three seasonal exotic weapons: Symmetry, Devil’s Ruin, and Bastion.
  • Acquiring one of each weapon available as a reward from the Sundial activity.

The most time-consuming bits of this will be the seasonal ritual quests, which require engaging with all three major playlist activities, and in half of them, using specific weapons to earn the ritual weapons for the season.

As long as you are engaging with the seasonal exotic quests as they appear during the season, you should receive the rest of this more or less naturally. You’ll need to make sure you pull at least one of each weapon from the Sundial activity.

EDZ Resonance: Increase the Resonance Rank of the EDZ Obelisk to 10.

Tangled Shore Resonance: Increase the Resonance Rank of the Tangled Shore Obelisk to 10.

Mars Resonance: Increase the Resonance Rank of the Mars Obelisk to 10.

Nessus Resonance: Increase the Resonance Rank of the Nessus Obelisk to 10.

Global Resonance: Increase the total Resonance Rank of all Obelisks to 40.

These will require engaging with the seasonal activity nodes on each of the four selected planets. To increase the Resonance Rank of the Obelisks, you’ll need to run weekly bounties that can be found at each Obelisk, or receive drops from running playlist activities, the Sundial, or the Menagerie.

The Tangled Shore and Mars Obelisks are available in the game now. EDZ and Nessus receive their Obelisks on 17 December.

Race Through Time: Complete the Sundial within a set amount of time. (Checkbox indicates this is for Niruul specifically.)

Inotam’s Ruin: Defeat Inotam, Oblivion’s Triune, within the Sundial.

Flayer Slayer: Defeat each of the Psion Flayers found within the Sundial (3).

I received the time trial triumph after my first run of the Sundial, so I have no idea how quickly you need to complete the activity. It’s possible this just requires not failing at any given section of the activity. If you are cycling it often enough, these should happen for you automatically.

Over time, Flayers are being added to the Sundial. It’s not obvious at this point whether they are being added to a rotation, or replacing each other. To be safe, I’d recommend running the Sundial as soon as you can when one is added, to ensure you receive the completions.

Ozletc is being added on 17 December, and Tazaroc on 24 December. Inotam is being added on 4 February.

Legendary Psion: Defeat Inotam, Oblivion’s Triune, on Legend difficulty or higher.

Legend Sundial is not available until 7 January, and Inotam is not being added until 4 February. It’s somewhat likely that running Sundial on Legend will require a pre-made fireteam, meaning this may not be possible to do solo.

Undefeatable: Complete a run of the Sundial without dying.

The hardest part of doing this at the time of this post is surviving the “cages” Niruul places on you during the boss fight. They require other players to shoot them to prevent you from dying. This would be significantly easier with a pre-made fireteam.

Saintly Savior: Save Saint-14 from the Infinite Forest.

The seasonal schedule indicates this will likely be completable starting on 17 December. This is a story progression quest found within Season 9.

Link Repair: Repair each of the fractured links found on the Tower Obelisk.

It’s unclear when this will be added to the game.

Torch-Bearer: Complete the Empyrean Restoration effort and light the beacon.

Empyrean Restoration is an event or quest on the seasonal calendar, and it’s scheduled to be released on 4 February. You won’t be able to complete this until then.

Devil’s Ruin: Travel to Twilight Gap and collect the materials required to repair Devil’s Ruin.

The Devil’s Ruin quest is scheduled to open on 7 January.

Bastion: Acquire the Exotic fusion rifle Bastion.

The Bastion quest is scheduled to open on 28 January.

A Chronological List

Here’s what you can do when, if you want to start getting ahead.

  • Immediately
    • Begin increasing the Resonance Rank of the Tangled Shore and Mars Obelisks.
    • Finish the first steps in the Saint-14 Quest, which are available from Osiris.
    • Begin work on the Crucible, Vanguard, and Gambit seasonal quests and ritual weapon quests.
    • Run Sundial and collect each of the four weapons available. Defeat Niruul. Attempt to do so quickly to receive the time trial Triumph.
  • 17 December
    • Complete the Saint-14 rescue quest.
    • Begin increasing the Resonance Rank of the EDZ and Nessus Obelisks.
    • Defeat Ozletc in the Sundial activity.
    • Run the Sundial and collect the four remaining weapons now available.
  • 24 December
    • Run the Sundial and defeat Tazaroc.
  • 7 January
    • Complete the quest to obtain Devil’s Ruin.
  • 28 January
    • Complete the quest to obtain Bastion.
  • 4 February
    • Complete a run of the Sundial at Legend or higher, defeating Inotam.
    • Begin the Empyrean Restoration event/quest.
  • Unknown
    • Perform quest steps necessary to complete/fix the Tower Obelisk.

The earliest possible date to complete the title is likely 4 February, and the Season of Dawn concludes on 9 March. You must complete all necessary Triumphs before the weekly reset on 9 March.

Solstice of Heroes is now a week old, and three weeks of earning special seasonal event drops, upgrading armor sets, and completing Moments of Triumph remain before we start transitioning to Season Four and Year Two of Destiny 2.

If you haven’t participated in a seasonal event in Destiny 2, or if the last seasonal event you participated in was The Dawning around the turn of the year, it might be unclear how the limited-time Solstice Engrams function. Let’s talk about what they are, how you get them, and how they work, so you can spend the rest of the event either optimizing for obtaining the stuff you want or ignoring that this grind exists.

Continue reading “Solstice of Heroes Engrams”

At tomorrow’s reset, Destiny 2 players start celebrating the Solstice of Heroes event—the culmination of the first year of Destiny 2 and a send-off leading into the release of Forsaken and the start of Year Two.

Part of Solstice of Heroes includes the Moments of Triumph, which are specific bounties you can complete for your Destiny 2 account for completing various activities throughout the first year of the game. The initial Moments were made public on July 7th, but a group of them remained hidden and couldn’t be completed until Solstice starts tomorrow.

I previously revealed these hidden goals here and explained what they are and how many points towards the maximum score they would provide. But in this guide, I’d like to cover the entirety of the Moments of Triumph and what they’ll provide to you when you earn them, so you know where to focus your attention for the remaining five weeks of Season Three and Year One.

You can also read up on Bungie’s official guide to Moments of Triumph and how they will work here. The deadline for completing the Moments of Triumph is 28 August 2018.

Continue reading “Moments of Triumph Guide: Celebrating Year One of Destiny 2”

Destiny 2’s Solstice of Heroes event doesn’t start until next Tuesday, the 31st of July, but thanks to some API information that’s already been added to support the event, we can take a look at the requirements for progressing the armor set unique to the four-week-long celebration.

If you don’t yet know about Solstice of Heroes, Bungie’s post announcing the event is here.

Continue reading “Solstice of Heroes: Armor Progression Guide”

On Bungie Day, bungie.net and the Destiny API were updated with information on the first year’s Moments of Triumph, which is a set of tasks players can complete before the end of the year to earn specific and exclusive rewards.

Many players logged in to find they’d completed most or all of the accomplishments for the year, especially if they had been engaging with endgame content over that time—but six of the bounties remained hidden:

(The remaining missing bounty is in the Activities tab.)

In patch 1.2.3, the remaining bounties were patched into the API and were not obscured, so we now know what needs to be done to earn the remaining points. These bounties can be earned starting on the 31st of this month.

Bronze Bounties

These Bounties are worth 10 points each.

  • Running Errands: Complete 25 Bounties.
  • The Hero We Deserve: Complete 25 Public Events on Heroic Difficulty.

These should be fairly easy to complete and turn in over the four-week period of the event and can be done solo without too much trouble. Remember that you can complete a maximum of 10 Bounties per-day, per-character—5 from Zavala, and 5 from Shaxx. 25 Public Events will take a few hours of patrol.

Silver Bounties

The first of these Bounties is worth 25 points; the second is worth 30.

  • In My Element: Collect 250 Elemental Orbs.
  • Remember Who You Are: Complete each Redux Mission at least once.

I haven’t seen any information that would tell what “Elemental Orbs” are, but given the number you have to collect, they would seem to be related to Orbs of Light in some way. Perhaps during Solstice of Heroes, Orbs of Light will be Elemental Orbs instead? We’ll find out, but this goal should be attainable through regular gameplay and would be soloable. Public Events would be a solid way to build this up, as players often use supers liberally when completing them. Take friends who will chain supers with you to speed this up.

The Redux Missions were revealed in Bungie’s post on Solstice of Heroes, and are replayed story missions that have been altered to have different enemies. I’m assuming these are more difficult than the stock missions. They should also be soloable, but would obviously be easier with a fireteam.

Gold Bounties

These bounties are worth 50 points each, and are tied specifically to the Resplendent Armor leveling system that will be a focal point of Solstice of Heroes.

  • Fashion Hero: Upgrade the full Solstice of Heroes armor set to Legendary quality.
  • Above and Beyond: Masterwork any Solstice of Heroes armor.

I plan on writing more specifically regarding what will be necessary to level the Solstice of Heroes armor set during the event, but the basic overview has been provided in Bungie’s post regarding the event.

These will be more complicated and time-intensive grinds.

To upgrade a set to Legendary, most of the tasks will be soloable. One of the pieces requires completing a Nightfall Strike, and so will require you either to group with players using the Guided Games functionality or by grouping with other players you know or have met via an LFG service.

Obtaining a Masterworked armor piece will be harder to solo, and the soloable methods provided will be more time-consuming. The two methods you can solo are:

  • Defeat bosses. The number provided in the item manifest is 10, but there’s not any more clarity than that—it might not strictly mean 10 strike or raid bosses.
  • Achieve the Legend rank in the Valor Crucible rankings. This will require playing quite a few matches, but with Valor now being given for all game modes other than Trials of the Nine (since patch 1.2.3), you’ll have many more options to choose from in leveling this up.

I’ll talk more about the Solstice armor and leveling those pieces in a later post.

With the exception of the armor Masterwork requirement, these Bounties shouldn’t be too rough. You’ll have four weeks within which to complete these activities. If you need help with them, consider checking out the100 and finding a group to play with!

I’ll be running a decent number of sessions there to help people attain these goals. You can find my profile here.

If you have questions or corrections for this post, reach out to me on Twitter. Most of the API data can be found in an easily-readable format on light.gg.

This past Friday, I gave a 20-minute presentation on WordPress security, giving a high-level overview of things you can do to help keep your sites secure.

The Presentation

Here's a SlideShare embed of the presentation deck:

And you can download the Keynote source file for my presentation, including presenter notes.

Twitter Questions

As part of my talk, I asked attendees to submit any questions they might have had via Twitter using the hashtag #wpvipsec. Here are the questions I received, and some brief answers to them as best I can provide.

As we have been transitioning some of the WordPress.com VIP platform to our next-generation VIP Go platform, we've had to reinvent some of this stuff slightly. :) You'll be pleased to know that we have made the mu-plugins we use on VIP Go publicly-viewable on Github, and you can see our custom two-factor module here.

https://twitter.com/NelsonTheFresh/status/936659951711408129

I don't know very much about securing sites via VPN, but I'm assuming here that you have site access (even front-end) locked to internal IPs only based on that VPN connection. That should handle a large portion of your security from outside attack, assuming the VPN is using appropriate security precautions.

At this point, your chief enemy is likely to become human error. This is where portions of the talk surrounding things like limiting user capabilities and access to certain settings pages can really help you out. Making sure your users are following good account security processes for connecting to the VPN is also critical.

As I suggested in the Q&A after the talk, I highly recommend that user roles and capabilities be in your WordPress engineering toolbox. They are enormously useful.

Multisites are interesting because they have additional layers of user access. Let's look at the two admin roles:

Super Admin: This should be as limited as humanly possible. The only users who should have superadmin powers on a multisite IMO are system administrators, your development team, and support users who will be assisting other users with account-level actions regularly. (An additional user or two might be necessary if you have people who need to spin up new sites on-demand rather than contacting your support team.) You should certainly require two-factor authentication here, and if you can require proxy or VPN access at this level, you absolutely should look into that as an option.

Administrator: This is going to be on a site-by-site basis within the multisite. If you can craft custom roles and their capabilities finely enough for your needs so that non-development users who are "in charge" of a site can use those roles instead of full admin, you should absolutely do this. Ideally, this user group and the Super Admin user group are as close to identical (and as limited) as possible.

The remainder of the roles are easier to parse. I'd like to especially recommend here (as I did during the talk) the use of an audit trail plugin; as you will have many users working on sites, and some with superadmin powers, the helpfulness of knowing which users performed which actions increases.

Additional Questions?

If you have any questions that haven't been covered above or in the talk, please send me a reply on Twitter and I'll be happy to drop them in the post and let you know when I have updated it.

I'll be updating this post occasionally with new information, as well as a link to the talk's video archive when it's available. To be notified of this, please either follow my blog or follow me on Twitter.

Bear dropped this on Twitter in reply to PerfectLegend, and I thought it worth it to mention something about how I handle it. Using this method, I have never had a problem with the following problem:

Here’s how you make this less of a problem:

Talk about this with your players before you start your bracket.

Issue clear expectations for things like bathroom and smoke breaks, because players will ask you for these things. Let them know that they need to ask for them immediately after one of their matches, and that you have to OK them by looking at the bracket and seeing what time is available for people to do so. Also let them know that when you and they agree on a time limit for these activities, and they go over the time limit, they can be DQ’d.

Know where you are in the bracket and how long matches take.

You can’t be honest with players regarding the time available to them for a break unless you know how much room you have in a bracket for those things. You’re generally only going to be able to give them break time in the first couple of rounds, because that is the only time you have a lot more matches to play than stations.

Make sure you are playing out matches by rounds as much as possible to give players time to rest between their matches. Don’t run one person way through the bracket before you have had other players get their matches in.

Write breaks down on the bracket sheet or a notebook/notepad (if using electronic bracketing, which you shouldn’t be in most cases), and make sure the player sees you do it.

When I have a player ask for a break, I talk to them briefly about what they are leaving to do and ask them how long it will take them to do it. I check the time on my watch, and then tell them exactly when I expect they will be back for their next match. I then write their player name and the agreed-upon return time on the bracket, showing them as I do this, and let them go have their break.

This becomes a two-way agreement; I let them take the break, and they agree they’ll be back by that time. If they aren’t back by that time, I generally give them two to three minutes’ grace period before issuing a DQ loss. (This also means that when budgeting the time for their break, I give them two to three minutes less than I actually have for them.)

Above all, be fair and respectful.

Before every bracket I run, I set expectations that I’m going to respect players’ time, and that in return, I expect certain courtesies from them. It’s only in partnership with your players that you’ll be able to run an efficient and well-received bracket. Respect your players’ time and communicate with them clearly, and they will respect the decisions you may have to make.

As previously mentioned, one of my favorite exercises is to avoid using system transfers when I move to a new MacBook, and instead start over from scratch, as I learn something new every time.

One big difference this time around has been that I am in the command line much more now than I have been in the past. I’ve been working actively on this as a skill, and as a result, it means more time sitting at a prompt.

The default terminal in macOS is fantastic, at least for the reason that it’s a modern OS with UNIX-like command line syntax—but there are some way it falls short, based on either its BSD roots or choices made by Apple.

The good news is that you can make up for a good number of those shortcomings with a bit of work, and find some neat tricks at the same time. I asked on Twitter for some additional tips:

I’ll be sharing any tips that I’m pointed to there for the first time in this post and subsequent edits, so if you have any tips of your own, drop me a reply on that tweet and I’ll check them out.

Optional Step One: Install a Terminal Replacement

This is very greatly a matter of personal preference, but I usually replace the Terminal app with an alternate solution. (This is where we pour one out for TotalTerminal a.k.a. Visor, of blessed memory.)

I prefer iTerm2 and its advanced features such as split panes, shell integration, and more intelligent buffering and options, but you may find something of your own you prefer. iTerm2 is also open source under the GPLv2.

Install Xcode Command Line Tools

Before we can do anything else of note with the command line, we should install some command line stuff that’s left out by default in macOS but very useful for a lot of the other things we’ll want to do. Thankfully, Apple made this bit pretty easy.

Open your command line and run:

xcode-select --install

You’ll be prompted to confirm this installation with a GUI dialogue. Accept it, and macOS will download the developer tools for you. (You will possibly end up upgrading some of these tools, but that’s OK. This will get you started and give you the basics you need.)

Get a Monospaced Font That’s Not Monaco

Monaco as a font is OK, but not great. There are two alternative options I usually recommend.

The first is the monospaced font that comes bundled in with the default Terminal app:SF Mono. Apple doesn’t distribute this font outside of either Terminal or Xcode from what I can tell, but you can extract it from the Terminal app if you would like. Get to the folder containing the font files using this:

open /Applications/Utilities/Terminal.app/Contents/Resources/Fonts/

Select all the files in that folder and open them, which will take you to Font Book to try and install them. Font Book will tell you there are problems with the font files. Font Book is lying. The installation will work, and I haven’t seen any reports of it being problematic.

(I think the warning is because doing this might possibly be against the terms of use for the font.)

If you would rather not pull SF Mono out of Terminal, or if the errors give you pause, another great option is to install Anonymous Pro, which has been my go-to fixed width font for years. It’s a great option and has a free license. You can download it here.

Get Homebrew for Package Management

Modern Linux distributions often use package managers to add and remove installed software with ease.

Now, when you run into a command line tool or other utility someone’s pointed out to you, you can usually install it more or less automatically with Homebrew. Here’s an example for wget, which quite honestly should be included with macOS, but isn’t:

pathfinder:nodecg ryanmarkel$ wget
-bash: wget: command not found
pathfinder:nodecg ryanmarkel$ brew install wget
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Deleted Formulae
kibana@4.1

==> Installing dependencies for wget: openssl@1.1
==> Installing wget dependency: openssl@1.1
==> Downloading https://homebrew.bintray.com/bottles/openssl@1.1-1.1.0f.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring openssl@1.1-1.1.0f.sierra.bottle.tar.gz
==> Using the sandbox
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl@1.1/certs

and run
  /usr/local/opt/openssl@1.1/bin/c_rehash

This formula is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/openssl@1.1/lib
    CPPFLAGS: -I/usr/local/opt/openssl@1.1/include

==> Summary
🍺  /usr/local/Cellar/openssl@1.1/1.1.0f: 6,421 files, 15.5MB
==> Installing wget
==> Downloading https://homebrew.bintray.com/bottles/wget-1.19.1_1.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring wget-1.19.1_1.sierra.bottle.tar.gz
🍺  /usr/local/Cellar/wget/1.19.1_1: 11 files, 1.6MB

Suggested Homebrew Packages

You can get pretty fancy with Homebrew. My colleague Jeremy Herve has a great script he uses to run it when spinning up a new system, and he posted about that here. I don’t install that many things via Homebrew, but there are a handful of things available through it that I use with some regularity.

If you know of any cool utilities I don’t; feel free to ping me on Twitter and tell me about them.

mas

(source on GitHub; MIT license)

mas is a great utility that helps you with both installing and maintaining apps you have installed through the Mac App Store (which, admittedly, is fewer and fewer apps over time). You can even use it to search for apps and manage your authentication status.

pathfinder:nodecg ryanmarkel$ mas list
409183694 Keynote (7.2)
408981434 iMovie (10.1.6)
485812721 TweetDeck (3.9.889)
443987910 1Password (6.7)
904280696 Things3 (3.0.3)
803453959 Slack (2.6.2)
442007571 AntiRSI (3.3.0)
557168941 Tweetbot (2.5.1)
407963104 Pixelmator (3.6)
409201541 Pages (6.2)
682658836 GarageBand (10.2.0)
409203825 Numbers (4.2)
692867256 Simplenote (1.1.8)

cloc

(source on GitHub; GPLv2 license)

At work, we do a lot of code review and scheduling those code reviews. If I have a bundle of code and I want to size it up quickly to see what it does, I use cloc to do this. It’s a great first-look at how much work a review could end up being.

pathfinder:Development ryanmarkel$ cloc ryanmarkel-v2/
    1933 text files.
    1905 unique files.
     146 files ignored.

github.com/AlDanial/cloc v 1.72  T=8.46 s (211.5 files/s, 32469.1 lines/s)
----------------------------------------------------------------------------------------
Language                              files          blank        comment           code
----------------------------------------------------------------------------------------
PHP                                    1305          18979          44697          79398
CSS                                      79           5329           2056          32684
JavaScript                              149           4631           5865          20148
PO File                                  73           8254          12486          20091
XML                                      74            869            926           5606
Markdown                                 40           1512              0           3896
JSON                                     31             14              0           3282
HTML                                      9             14              0           1444
Velocity Template Language                1             11              4            470
Bourne Shell                              6            114             40            468
Maven                                     1             30             21            305
YAML                                     10             52            111            262
Ant                                       1             19             30            140
INI                                       7             27             89             95
DTD                                       1             25             54             69
XSLT                                      1              5             14             19
make                                      1              1              0              3
----------------------------------------------------------------------------------------
SUM:                                   1789          39886          66393         168380
----------------------------------------------------------------------------------------

streamlink

(source on GitHub; BSDv2 license)

streamlink is a forked successor of livestreamer, which unfortunately became a dead project but is insanely useful. It uses command line instructions combined with (normally) an install of VLC to open streaming video using a method that tends to be much lighter-weight than using a browser. It will help you identify various transcodes as well, and can be used even to load authentication-required video for some services.

pathfinder:Development ryanmarkel$ streamlink https://twitch.tv/gamesdonequick
[cli][info] Found matching plugin twitch for URL https://twitch.tv/gamesdonequick
Available streams: audio_only, 160p (worst), 360p, 480p, 720p, 720p60 (best)

Bring Some Color to bash

Some of the tools that are included with macOS at the command line and its default configuration are slightly altered from defaults you may be used to in other UNIX-like environments. One that tends to bother me is that by default, ls doesn’t have any color indicators for output. By default, it looks like so:

This really isn’t helpful. Let’s add at least some color marking by adding this to our ~/.profile:

export CLICOLOR=1

Now, when I’m in a terminal session in any terminal app, I should see my directories like so:

You may also wish to customize your prompt using the information you can find here, but the number of options there are a bit much for me to get into.

Using pbcopy/pbpaste

Mark Jaquith replied to me with this tip:

https://twitter.com/markjaquith/status/881500386888175618

Straight up: I did not even know about pbcopy and pbpaste, but reading the man pages for them, it’s crazy I went this long without knowing what they were and how to use them.

You can use the commands to move text back-and-forth between your terminal session and the macOS Clipboard. This should be self-explanatory, but for example, I just realized that I could have used it to put large chunks of the output from commands in this very post without having to select it and copy it.

What Am I Forgetting?

If there’s a neat trick or setup tip you think I’m missing, please let me know! Drop a reply to either the tweet for this post or the one I posted earlier and let me know what I can add!

Combo Breaker 2017 is coming up in a handful of days, and I’ll be on the floor helping run brackets to do my part to make it a great experience for competitors.

I enjoyed my volunteer time a ton last year, and I’m happy to help make this year’s event a similar success. Assuming there are new volunteers this year who haven’t run brackets at a big event before, I thought I’d put together a list of things that have worked for me in running an efficient, well-organized bracket and getting the most out of my volunteer time.

So, here we go, in no particular order other than this first one, which is most important:

Attend the Volunteers Meeting before the Event

This is non-negotiable. Every event will have specific ways they do things. They are not always going to be the same from event to event or even year to year. They are almost certainly different from what you have been running for your locals, house events, or whatever you have run before. Your head TO or other bracket coordinator should have sent you a message with the meeting times. Show up.

When you are there, the most important thing you can do—even if you have been to a million of these—is to listen. Things may have changed from the previous year, and there will be others at the meeting who have not done this before. They need to be able to hear, and for that to happen, everyone in the meeting needs to be listening.

If you have questions, ask them at the meeting. It’s far more efficient for you to have your questions answered before a single bracket has started than to try to track down other staff once there are hundreds of people on the event floor and you are facing a time limit for running your pool.

Do Your Homework

You will have your pool assignments ahead of time so you know when you are needed and can schedule yourself accordingly. Players will have their pool assignments ahead of time so they can plan for their matches.

This means you should know who is in your pools before you get started. You’ll also know what games you will be running. Take the time to see who you’ll be working with, study the rules for the games you have been assigned, and make sure you know when you are supposed to be there.

Know who your game’s TO is and what they look like. Know who the head TO is and what they look like. You need to have this information in your head so you can quickly and efficiently get help if and when you need it. Come prepared.

Wear a Watch

You’ll be responsible for getting your brackets done on time. This means you will need to know the following at all times:

  • How long you have before your next bracket starts
  • Whether you are at the threshold of time for you to start DQ’ing players (varies by event)
  • How much longer you have to get the pool done to end on-time

You need to have a clock somewhere on your person the whole time you are staffing the event. A phone is fine, but phones can get dropped, run out of battery, be misplaced, or the like. (I carry a portable charging battery with me at all events in case my phone starts running low.)

YMMV on this suggestion, but I prefer a watch because it’s less obtrusive, easier to glance at when needed, and far more incident-proof than a phone.

Carry a Notebook

When you run into a sticky situation, or if you need to track what’s going on at any given point during your bracket, notes can save you from problems or time-delaying issues. Assume the following when you are running the bracket:

  • Someone will have to go to the bathroom and will (or should) tell you they are doing so to prevent being DQ’d
  • A player will ask you about the rules for the game you are running
  • You’ll need to look at your own schedule to keep things straight and report to the correct place
  • Someone not even in your bracket will see your staff shirt and ask you a question to which you may or may not immediately know the answer
  • Other staff people may have things they need your help with that you can’t get to immediately

A notebook is your lifeline in most of these situations. Things I recommend for your notebook:

  • Put your schedule in it so you can refer to it at any time
  • If someone asks you something and you need to get to it later, write it down so you don’t forget
  • Jot down the rules and default settings (or anything specific that’s different!) for the games you are running so you have it available instantly
  • Write down player names if they leave and inform you they are doing so, as well as what time they left the pool stations (when they leave, you should tell them how quickly they should be back to avoid a DQ situation)

Last year, I carried my Moleskine around in the venue, but it was overly bulky and not very practical. I recommend a smaller notebook style, like a Moleskine Cahier or a Field Notes notebook. They fit in a pants pocket and are easier to move around with.

Relatedly, when you take a pencil for writing on your brackets (because events use paper brackets), take two so you have a backup.

Early = On Time. Be On Time.

Find out what the expectations are for players and when they should report to a pool station for their brackets. Be there five minutes before that time so you are there when players arrive. Politely clear away any casuals at the station in advance of your brackets by setting time expectations with those players as you get things ready. Mark players on your bracket as they check in with you so you know who is there.

Take Care of Yourself

Don’t forget to eat something. Drink water like it’s going out of style. Wear comfortable shoes you can stand in for a couple of hours at a time without problems. Clear any bathroom breaks you might need before your bracket starts. Get some good sleep the night before.

If you are miserable, you are going to pass that savings on to your players, and they won’t have as good a time. Which brings me to my last point:

Have Fun. Help Players Have Fun.

This is your job when you help run an event.

Yes, you are there to enforce rules, make sure players are not being disruptive or otherwise problematic, and to run your brackets on time. You can do these things and still have a good time, which will result in your players also having a good time.

Bracket runners do not get salty. Be fair. Be calm. Encourage your players to have a good time. Answer their questions. Thank your players for being there when they are out of the pool. Congratulate the players who escape the pool to later brackets.

Anything Else?

If I missed something here you think is important, drop me a reply on Twitter and let me know. I’ll be happy to add things to this guide.