Ryan Markel

Destiny 2: Month One Gallery

I have a lot to say about Destiny 2, and keep meaning to write about it, but for now, I thought I would post a little gallery of the screenshots I’ve taken over the first month of the game, especially as I’ve been playing through it with my son and it’s become family time. :)

Advertisements

macOS Command Line Tips

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:

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!

Summer Games Done Quick 2017 Viewing Guide

My summer vacation has started, which usually means it’s almost time for Summer Games Done Quick. GDQ is a twice-annual speedrunning marathon, and each one lasts for a week. The summer one tends to be my favorite; the runs can be a bit more laid back and the charity is preferable to the one they use for the winter marathon.

You can find the channel for GDQ on Twitch any time you want to watch. The full event schedule is posted here, and there are some things you should know about it:

  • The schedule can and will change throughout the event, so if there is a game you are really interested in watching, you should check the schedule the same day of that game and also a bit before it’s supposed to come on the air. Runs are unpredictable, so there’s natural fluidity to the time slots.
  • For different types of games, there are different run categories. Pay attention to things like:
    • 100% or any%, the two most frequent run completion types – one involves collecting or doing everything a game has to offer; the other is just getting to the end of the game as fast as possible.
    • Restrictions like glitchless, 2 players 1 controller, co-op, and the like. This will give you more information regarding the general atmosphere of the run.
  • Runs have an estimated time to completion, which will give you the approximate time you’ll need to watch the run.

Keep in mind when watching these speedruns that many of them will involve the players going through the game in ways you haven’t in the past. If a run doesn’t call for glitchless or other restrictions, you’re likely to see things done to intentionally break the game and skip large amounts of the actual intended gameplay. This takes some getting used to and can look really weird the first time you watch a run for a favorite game.

That said, if you just relax and watch some people play games while using quite frankly amazing execution, muscle memory, and crazy amounts of practice, you can have a pretty good time. I suggest you find games you have played and liked on the schedule and trying to watch those to get started.

If you aren’t sure, here are some runs I think are likely to be great this week:

  • Sunday
    • Luigi’s Mansion any%, no OOB (out-of-bounds). The restriction means the runner can’t break the constraints of the levels to get places the game didn’t intend, so this requires going through a decent amount of the game, and is estimated at around an hour.
    • Metroid Prime 100%. Some people really find these runs interesting because there is good execution necessary, but I frankly find them boring because large amounts of the run take place out-of-bounds. If you want to see a game get broken, watch this.
    • Castlevania: Symphony of the Night, any% glitchless. One of the all-time great games, played to full extent, in 36 minutes. Should be fantastic.
  • Monday
    • Super Monkey Ball Deluxe, Ultimate. Watch people wreck this game with what is essentially playing angles very carefully. Looks reckless, is actually super-controlled.
    • Mirror’s Edge, any% glitchless. A game that was designed with multiple paths in mind. Speedrunners have no doubt found all the super-fast ones, and the execution necessary for this should be impressive.
  • Tuesday
    • I Am Bread, any%. I say this because I tried playing this game and found it inscrutable and impossible, and this runner is going to beat it in 15 minutes and make me feel really old in the process.
    • Pokemon Puzzle League, 1P Stadium, Super Hard. Puzzle game execution at this high a level is always impressive.
    • FPS Block of games, starting with Half-Life. Every game here should show super-impressive play, even with glitches.
  • Wednesday
    • Ninja Gaiden 3, any%. Watch this and then remember how hard these games are and hate yourself immediately.
    • Marble Madness, any%. See above.
    • Castlevania: Rondo of Blood, Richter any%. The finest 2D Castlevania pre-Symphony, done in 25 minutes. It’s likely you aren’t familiar with this entry in the series (it was on Turbo CD), so you should give it a peek.
    • Mega Man X2, any% race. Four runners play side-by-side, trying to finish first in a live situation. X2 has a super-optimized run that is really impressive to watch and easy to grasp.
  • Thursday
    • Shadow of the Colossus, NTA. I personally don’t think this game is as awesome as a lot of people do, but the run should be impressive.
    • Portal, inbounds. Should be one of the more amazing-looking runs of the whole event.
    • Chrono Trigger, any%, no wrong warp. Puwexil is one of the best RPG runners to watch. His commentary during the run (and the “couch commentary” helping him along) will be great and will explain exactly what’s going on as he does the run. CT is also a great run.
    • Tetris: The Grand Master block. You should watch this because I won’t; once you have seen these runs once, you have seen them all, but this is Tetris at a level that’s more instinct than reaction. TGM is way harder than any Tetris you have played (they will play on arcade hardware).
    • The Legend of Zelda: A Link to the Past, all dungeons, swordless. I don’t even know how you would do this, so I’m going to be watching this one with fascination.
  • Friday
    • Super Mario Series Warpless Relay Race. Great games, done head-to-head, and with relay handoffs to boot.
    • Metroid Block. Always one of the highlights of any GDQ. Usually tight races, high execution, sequence breaking in a lot of cases.
  • Saturday
    • Dark Souls 3, All Bosses. Watch someone rip through this game with way less health than you would ever try to play with and weird items you didn’t think about using.
    • Super Mario 64, 120 star. Every star. Every level. A game that requires crazy-cool execution and looks rad when people pull it off.
    • Earthbound any%, glitchless. An RPG to send the marathon into the sunset, and a run that even today is still being rerouted and changing to be more efficient.

There’s plenty more I could have put in here, but these are the things I’d suggest to anyone who asked me about GDQ and what they should peek in on.

I hope you watch and have some fun doing so. Please consider donating to the event!

New Laptop Time!

I’m fortunate to work at a great company that refreshes our laptops with new tech every couple of years, and today was MacBook Christmas for me: my new Touch Bar MacBook Pro showed up.

Whenever I do a laptop refresh, I choose to install everything new instead of using a system transfer, specifically so I can reevaluate what apps I use, whether there are other options available, and find new things in those apps’ settings that I might not have seen before.

As part of this process, I’m going to do a series of blog posts showcasing the apps I use on a regular basis and explaining why I choose to use them and how they fit into my personal workflows.

Once I have them going, I’ll post a link to the archives here, but if you’d like to know when I post them, feel free to follow my blog. :)

How to Install PHP Apps on Ubuntu with Nginx, in 20 Steps

  1. provision hosting instance
  2. point domains
  3. guess package names for your package installer
  4. clone a bunch of git repositories
  5. try to figure out where everything you installed actually went
  6. install the packages you missed
  7. employ arcane magic and half-written tutorials to write an nginx config
  8. let i = 1
  9. nginx -t
  10. service nginx restart
  11. check app
  12. change one line of nginx config
  13. let i = i + 1
  14. if i < 5000 goto 9
  15. post on StackOverflow
  16. find config option that “works”
  17. get white screen of death
  18. curse person who decided web apps should now require a compiler
  19. question your intelligence and self-worth
  20. delete hosting instance

WordCamp 2017 Talk Submissions

It’s time to look forward to WordCamp US at the end of the year: seeing lots of familiar faces, attending fantastic sessions by creative and knowledgeable people, and volunteering to help create a great event for every attendee.

Last year, I gave a lightning talk on code review that I thought went very well; it was an adaptation of a talk I gave earlier in the year at WordCamp St. Louis based on the experience I’ve had with code review as a culture-centric thing at Automattic and specifically on the WordPress.com VIP team.

The deadline for talk submissions for this year is tomorrow, and so far, I have submitted two talks (I’ll bring up the third in a bit here):

Security, the VIP Way

My VIP team colleagues suggested this topic. We deal with some pretty large sites with lots of users, and can be the target of attacks by unsavory people, so we have developed security policies and best practices that we have found to be successful. I think I could relay some of these practices and give good examples in an engaging way.

I submitted this as a 50-minute talk, but it could be adapted as a lightning talk. I think this talk is pretty straightforward and would need some creative slide deck management to make it my particular style of engaging.

User Support: Playing to Win

OK, so this one is a long shot—and to be honest, I haven’t written it yet, but it’s nearly-fully-formed in my head. Support has been my career for over a decade now.

I have also played fighting games for a huge chunk of my life, but only in the last few years have I taken playing them seriously and competitively.

Fighting games are about resource management, spacing, timing, and adaptation. It struck me at one point that a lot of that is very similar to how I approach support interactions. I want to find a way to bridge those metaphors in a talk.

This would almost definitely be a lightning talk, and I submitted it that way. The slide deck would be really challenging and enjoyable to create. I’m secretly hoping this one is chosen.

A Third Talk?

Just a bit earlier this evening, I considered submitting a third talk based on my blog post from last night, regarding advice for applying to Automattic. After I wrote it, it occurred to me that a lot of what I talk about in the back half of the post is less specific to Automattic and more interesting in the context of open-source-related companies, of which Automattic is one.

But when it came time to write the abstract, I couldn’t come up with a good way to frame the talk that wouldn’t come across as “hey, you should come work at Automattic.”

The concept I had: I would talk with some other people at other WordPress-ecosystem and maybe even other OSS-ecosystem companies, and gather some more information from them about their workplaces and what they like to see.

In the end, because of where I work, there are optics to consider. Does it come across as a recruitment effort? Some people might look at it and think that it does, especially since I would be referencing a post that’s specifically advice for people who might want to work here. What I would love to get across is that there are lots of great companies in WordPress orbit people can work for, or could start, and I suspect they share these open-source traits. It’d probably be interesting.

But I won’t be submitting that one. I feel comfortable talking on my own space here about the work culture of Automattic and why I love working there (and I do this often because it’s all true), but I’m not comfortable making that the subject of a talk at one of the two large-focus gatherings of people from all of the WordPress community. It could be interpreted in a way I’d rather not evoke if I can avoid it.

How’s The Third Talk Different from The First Talk?

(Thought I’d address it because I know someone will think it.)

To be concise: I think there’s a big difference between sharing best practices concerning the WordPress software and supporting users and giving a talk where my workplace is a focus. Bonus: at VIP, we work in partnership with various agencies and WordPress users, so many of those best practices have developed in active collaboration. I feel comfortable sharing those practices in a broader arena without making it overly Automattic-centric.

“How Do I Get a Job at Automattic?”

I get about a half-dozen emails a year via my contact form asking me this question or asking related questions, like how to craft a resume, or what it’s like to work at Automattic. I thought I’d jot something down so I can just send a link the next time this happens, as my advice hasn’t changed much over time. :)

I’ve been here for seven years as of this writing, so I thought I’d share what I tell people who ask me this question (in a slightly expanded format). I’m not involved in hiring. This is not “official” advice of any kind. It’s just what I say to people, made public and repeatable.

First things first:

I love working at Automattic. You might not.

I will extol the virtues of my job whenever you ask me about it. It’s the best place I’ve worked, and I have found it to be very rewarding.

Not everyone will feel this way. The amount of freedom we have to get or not get our jobs done is unlike anything else out there. It can be very isolating and lonely to not see your team in person more than two to three times per year. I think even those of us who have embraced what we do struggle with this from time to time, and for some it can be significant.

But if you are willing to engage without having to be asked to do so, love working with people who are intelligent and come from all walks of life, and are down with being challenged often, you’ll probably fit in well.

So, how to get a job here? Let’s talk.

Read through our open positions and see if something is right for you.

You can find Automattic’s open positions here. Take a look and see if you spot something you’d enjoy doing and think you can do well. Read the job description and requirements to make sure you understand them and know how you would theoretically fit in the role.

Now, take a strong, focused look at the part of the job listing that talks about how to apply. This is going to be very important. :)

Follow the instructions regarding how to apply. Read them twice.

There are some things you will see in every job listing regarding how to apply. Take note of them and follow them. They are not there at random. Basically:

  • Make a resume/CV/whatever you want to call it. Prioritize and emphasize experience and skills that would directly impact the job role, but don’t ignore even side things that make you unique.
  • Attach it to an email sent to the address provided in the job description. The email is your cover letter. Introduce yourself. Be concise. This is your first impression, and it’s text-only. (As we are largely a text-communication-driven company, you should get used to this idea.) Make sure you include anything that’s specifically requested in the job description call for applications.
  • Double-check your spelling and grammar. Fix anything you need to fix.
  • Check it again.
  • Once more.
  • Send and wait. :)

You might get a trial; you might not. But putting yourself out there is the first step.

(Oh, and if you don’t know about how our hiring works with the trial process, where you perform contract work to see how that goes, you should probably read about that.)

I’m not lying when I say that’s pretty much it. When you boil down the process of applying for a job here, it’s pretty simple. That said:

Here are some focuses/traits I believe in based on my time at Automattic.

Again, let me stress this is my opinion and not in any way “official.” Nothing I say here is even remotely a guarantee, and I don’t have anything to do with hiring (really, I don’t), but these are things I will usually recommend to someone when they ask me personally what they can focus on.

These are mostly things I really like to see or admire in people I work with. :)

Be open to criticism.

It’s totally possible you’ll be rejected for the job, either before or during the trial process. When this happens, you may receive some reasons why you were turned down. Or you’ll receive some constructive feedback during your trial. Be open to it. Embrace the idea that you don’t know everything, because believe me—as a full-time employee for many years now, I still realize this often.

Be dogged in adapting to and implementing that criticism.

I applied to Automattic three separate times over a year-and-a-half before I received a trial. I had to change focus mid-trial before I was hired based on feedback. Some of the best colleagues I have at Automattic went through a trial, received feedback and a rejection, and then trialed again later with success. If and when you receive feedback, take it to heart and then apply it. Or apply again. Or both. :)

Be willing to say up-front when you don’t know something and be open to learning.

I would rather work a million times over with someone who is willing to admit when they don’t know something or are stuck on something and ask for help than someone who tries to fake it. Admitting you need help is not a weakness. It is literally impossible for everyone to be an expert at everything.

Be willing to help others.

I’m big on leading by example. Everyone has gifts and strengths, and everyone is at a different level. Just as you should be willing to let others help you, be willing to share your knowledge and experience with others. Be kind and instructive. Don’t always offer to just take charge of things—though on occasion, that’s necessary—but aim to level up your (potential) team.

Be yourself.

Automattic contains the most diverse and interesting group of people alongside whom I have ever worked. It is an amazing collection of individuals from whom I have learned much and with whom I have enjoyed spending time during meetups. Embrace this and be willing to commit yourself to it as well. (BTW, if the real you is introverted, that’s totally OK. There are lots of us here. If you have to take a break, we understand.)

Have at least a passing familiarity with the Automattic suite of products.

How much of this depends greatly on the job for which you are applying. Some positions might not require a lot of PHP or familiarity with WordPress. Others will be based almost entirely around this. I think it’s a good rule of thumb to at least know the core business of Automattic and what we do before wanting to work here. :)

Embrace open source.

An open source ethos drives Automattic and is core to our identity. Know what that means. Past and ongoing contributions to open source projects, whether it’s code, testing, design, documentation, or whatever, will give you valuable experience in what it’s like to work with those types of projects and is a bonus.

(Again, this will somewhat depend on your desired job role.)

Get comfortable with text-only communication. And in learning how your writing tone can be interpreted.

To be honest, I still have trouble with this sometimes. Text communication is hard. Without vocal inflections, facial expressions, and other body language, it’s easy to read something and get the wrong impression.

It’s a skill to craft your text communication in a way that others will understand your tone and intention. Dedicate yourself to learning that skill. (Yes; sometimes this means using emoji. They are very, very helpful for establishing tone.)

This space reserved.

I’m sure there are things I’m not thinking of, but I have been writing this blog post for three days and I should probably just publish it. If you are a fellow Automattician and reading this, and I forgot something obvious, ping me and let me know. If you are a reader and you have additional questions, feel free to contact me. I’ll edit some things in to this post later if needed.

I will never stop learning. I won’t just work on things that are assigned to me. I know there’s no such thing as a status quo. I will build our business sustainably through passionate and loyal customers. I will never pass up an opportunity to help out a colleague, and I’ll remember the days before I knew everything. I am more motivated by impact than money, and I know that Open Source is one of the most powerful ideas of our generation. I will communicate as much as possible, because it’s the oxygen of a distributed company. I am in a marathon, not a sprint, and no matter how far away the goal is, the only way to get there is by putting one foot in front of another every day. Given time, there is no problem that’s insurmountable.

Fighting Game Reference Screens, Upgraded

Around a year or so ago, I posted a bunch of reference screens captured from various fighting games, to help streamers plan their UI against the actual game without needing to hook up a capture device or to search for images on Google.

It struck me today that putting that here was probably not the easiest thing to find, or the easiest thing for people to use in their projects, so today, I moved the whole thing over to GitHub as a new repository:

https://github.com/ryanmarkel/fg-reference-screens

Contributions are welcome, and requests for screens should be filed as issues. I hope these are useful to you in your stream production.

Preparing to Run Brackets at Large FGC Events

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.

One-Second Galaxy Fight

I’ve actually never played this game before, but this tournament(?) of matches for an (I’m assuming relatively) obscure Neo-Geo title with the timer set to only one second is beautifully insane:

A port of the title to PS4 was released last week, and you can buy that here for $7.99.

It’s been confirmed the one-second round timer is possible in the port:

If anyone knows any of the other rules that were used in the Japanese tournament video, let me know; it looks like it’s at least set to Level 1. I’m not sure there are any other settings that matter. :)