Skip to content

Instantly share code, notes, and snippets.

@rob-brown
rob-brown / derived-stats.csv
Last active September 14, 2020 02:43
Amiibo Personality Research
Personality Total Wins Total Loses Total KOs Total Falls Total Damage Given Total Damage Received Total Match Wins Total Games Win Rate KOs per Game Falls per Game Damage Given per Game Damage Received per Game Damage Given per KO KOs per Fall
Offensive 35 10 124 83 18,524 14,856 7 45 77.8% 2.756 1.844 411.64 330.13 149.39 1.49
Lightning Fast 31 12 116 81 17,116 14,349 6 43 72.1% 2.698 1.884 398.05 333.70 147.55 1.43
Technician 25 26 120 120 19,038 18,943 3 51 49.0% 2.353 2.353 373.29 371.43 158.65 1.00
Daredevil 27 26 125 124 20,083 20,122 3 53 50.9% 2.358 2.340 378.92 379.66 160.66 1.01
Lively 30 19 125 102 19,715 16,985 5 49 61.2% 2.551 2.082 402.35 346.63 157.72 1.23
Entertainer 20 26 103 112 16,931 17,670 3 46 43.5% 2.239 2.435 368.07 384.13 164.38 0.92
Unflappable 15 30 93 114 15,780 18,145 1 45 33.3% 2.067 2.533 350.67 403.22 169.68 0.82
Sly 1 35 37 107 7,516 15,793 0 36 2.8% 1.028 2.972 208.78 438.69 203.14 0.35
@rob-brown
rob-brown / ElixirConf2014.md
Last active December 4, 2020 05:38
Notes from ElixirConf 2014

ElixirConf 2014

Dave Thomas—Opening Keynote

Twitter | Slides

Think different(ly)

Get out of your rut and learn new ways to think.

@rob-brown
rob-brown / pokemon-trainer-ratings.csv
Last active April 14, 2021 02:21
Pokémon Trainer SSBU Stats
Placement Figure Win Rate Rating
1 Ivysaur 73.0% 29.06
2 PT Ivysaur 72.0% 28.89
3 Charizard 69.0% 27.67
4 Squirtle 69.0% 26.81
5 PT Squirtle 58.0% 26.59
6 PT Charizard 61.0% 26.38
@rob-brown
rob-brown / SecretMessage.exs
Last active June 7, 2021 14:48
Encode secret messages into text using zero-width spaces
defmodule SecretMessage do
@zero "\u200C"
@one "\u200D"
def encode(text, secret) when byte_size(text) > byte_size(secret) do
secret
|> obfuscate
|> Stream.concat(Stream.repeatedly fn -> "" end)
|> Stream.zip(String.codepoints text)
@rob-brown
rob-brown / amiibo_ssbu.tcl
Last active February 19, 2022 01:20
HexFiend Amiibo Binary Templates
little_endian
# HexFiend Reference: https://github.com/HexFiend/HexFiend/blob/master/templates/Reference.md
proc parse_system {} {
goto 0
section "System" {
hex 1 "BCC1 (UID3 ^ UID4 ^ UID5 ^ UID6)"
hex 1 "Internal (Always 0x48)"
@rob-brown
rob-brown / mastermind.ex
Last active August 15, 2022 08:43
A Mastermind game implemented in Elixir.
defmodule Mastermind do
defstruct rounds: 10, choices: 6, answer: nil, guesses: []
def start, do: game_loop %Mastermind{}
defp game_loop(game = %Mastermind{answer: nil}) do
game
|> start_computer_mastermind
|> game_loop
@rob-brown
rob-brown / links_awakening.tcl
Created October 18, 2022 02:47
HexFiend Amiibo Binary Template
@rob-brown
rob-brown / access.log
Created February 17, 2022 22:56
Log file for parsing coding challenge
This file has been truncated, but you can view the full file.
1523756544 3 239.163.2.230 1845784 66.166.213.116 80 TCP_HIT/200 1846031 GET http://interview.tubi.tv/04C0BF/v2/sources/content-owners/any-enter-films/275211/v0401185814-1389k.mp4+740005.ts - 0 486 "-" "TubiExoPlayer/2.12.9 (Linux;Android 6.0) ExoPlayerLib/2.4.2" 49343 "-"
1523756611 58 113.240.47.127 3364824 66.166.213.116 80 TCP_HIT/200 3365071 GET http://interview.tubi.tv/04C0BF/v2/sources/content-owners/any-enter-films/326260/v20169101326-1256x544-3063k.mp4+3713710.ts - 0 616 "-" "Mozilla/5.0 (Linux; Android 5.1.1; AFTT Build/LVY48F; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36" 49343 "-"
1523756639 3 36.194.144.76 2227424 66.166.213.116 80 TCP_HIT/200 2227671 GET http://interview.tubi.tv/04C0BF/v2/sources/content-owners/paint-from-rights/398629/v201711170053-2061k.mp4+4582327.ts - 0 604 "-" "Mozilla/5.0 (Linux; Android 5.1.1; AFTM Build/LVY48F; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36" 49343 "-"
1523
@rob-brown
rob-brown / personality.ex
Last active April 10, 2023 18:12
Elixir code to compute SSBU amiibo personalities. Some code omitted to focus on the core algorithm.
defmodule Personality do
@doc """
Parses the attributes from the amiibo and returns the
personality name.
"""
def parse_amiibo(amiibo = %Amiibo{}) do
amiibo
|> Attributes.parse()
|> calculate_personality()
end
@rob-brown
rob-brown / ExecuteSigil.ex
Last active April 11, 2023 08:18
An Elixir sigil for executing terminal commands similar to Ruby.
defmodule ExecuteSigil do
@doc """
Handles the sigil %x. Takes the given command line string, unescapes the necessary
characters and replaces interpolations, executes it, and returns the
results as a string.
## Examples
iex> %x"echo Hello \x45\x6c\x69\x78\x69\x72\x21"