profile
viewpoint
Drew Rodman dcrodman San Francisco, California

dcrodman/archon 11

Server implementation for the MMO game Phantasy Star Online

dcrodman/bb_reverse_proxy 2

A PSOBB reverse proxy intended to sit between a PSOBB client and server and intercept traffic

dcrodman/dotfiles 2

My personal dotfile configuration

dcrodman/autorsync 0

A simple utility to automatically `rsync` directories in response to file change events.

dcrodman/monkey-interpreter 0

An interpreter for the "Monkey" programming language from the book "Writing an Interpreter In Go"

dcrodman/packet-warrior 0

Packet capture engine that can be used as a standalone application or compiled to a Python library with boost::python.

dcrodman/qmk_firmware 0

Open-source keyboard firmware for Atmel AVR and Arm USB families

dcrodman/retail_inventory 0

Project for a Databases course that represents a very simplified version of what an inventory management system might look like for a retail store.

dcrodman/sitdown 0

Hacking standing desks

dcrodman/sourcegraph 0

Universal code search and navigation tool (self-hosted)

push eventdcrodman/autorsync

Drew Rodman

commit sha 95b739f586c16f73d3298edc32a5e3de821592a8

Initial commit

view details

Drew Rodman

commit sha 39580f01c2a7553b6f91cbad6d1a3979e3f6ae23

Add README

view details

Drew Rodman

commit sha cd8ef0b1a36090d6e01ba24f75a46a4e101939ec

Implicitly ignore the .autorsync file

view details

Drew Rodman

commit sha 1fe1b9d4c599a78015a4b55b84c2fc54eb9dce9e

Update README

view details

push time in a day

create barnchdcrodman/autorsync

branch : master

created branch time in a day

created repositorydcrodman/autorsync

A simple utility to automatically `rsync` directories in response to file change events.

created time in a day

push eventdcrodman/archon

Drew Rodman

commit sha 776d8ee8018c4fec29d5141396189250eaaf9612

Switch to an explicit config arg for binaries

view details

push time in 2 days

push eventdcrodman/archon

Drew Rodman

commit sha e7e52a36bf6768406389ba22df1c2c64f5633674

Rename launcher package to frontend

view details

push time in 2 days

push eventdcrodman/archon

Drew Rodman

commit sha 82b418efad21c0bae10cae644c17bf6e708bd6d3

Move/rename launcher_test and refactor for testability

view details

push time in 9 days

push eventdcrodman/archon

Drew Rodman

commit sha fa8f59eefbd0541f6212f67fe886e4ab22856b83

Add context to frontends This is really just to enable testing cleanup for now but eventually this will be used to implement clean shutdown

view details

Drew Rodman

commit sha b9c2e2a0ce5aa66c95c9353dafafc662bd66abb0

Add launcher test

view details

push time in 9 days

push eventdcrodman/archon

Drew Rodman

commit sha 387f547d6399af1fc572b910355c16a63688e751

Minor accuracy tweaks to login packet

view details

Drew Rodman

commit sha a36dfce34d2c41b7a7be9f767f24d143d0778c49

Remove init function from top-level package Config will be explicitly invoked with the Load() function instead to ease testing and make things clearer

view details

Drew Rodman

commit sha 8bc095f26d5746e1e9f68cfe8b919d738900060c

Rename serverFrontend to frontend

view details

Drew Rodman

commit sha 4bff3288ef9a2bd396a1a4906ccaba092a359924

Clean up some warnings and replace missed fmts with logs

view details

push time in 10 days

issue openeddcrodman/archon

Setup script

Add a bash script to the setup/ directory that automates the steps in the README

created time in 21 days

GollumEvent
GollumEvent
GollumEvent

startedrevery-ui/revery

started time in a month

push eventdcrodman/dotfiles

Drew Rodman

commit sha 6c00019beff37b9ba87071a396fc13f54abc180e

Add rbenv init to zshrc

view details

push time in a month

PR opened muxinc/mux-python

Reviewers
Fix print usage in ingest and non-existent-asset examples

The following examples have a couple of lines where they mix the use of Python 2 syntax for print with Python 3:

  • video/ingest.py
  • video/none-existent-asset.py

This change allows the examples to be run directly in Python 3.

+5 -5

0 comment

2 changed files

pr created time in 2 months

create barnchmuxinc/mux-python

branch : dr/fix-example-prints

created branch time in 2 months

push eventdcrodman/dotfiles

Drew Rodman

commit sha 5f94c73045f7784c4ba8dbbe509816b8df8d0e64

Remove hostname on right of prompt

view details

push time in 2 months

startedstarship/starship

started time in 2 months

push eventdcrodman/dotfiles

Drew Rodman

commit sha bb51f3bd7361882e29b06817a36219d93d1b1ded

Improvements

view details

Drew Rodman

commit sha 7143ff9dc842aeac48c32c70c6b416ff8481efdc

Add hughlogin by default for silencing terminal login message

view details

Drew Rodman

commit sha afb267d3923ebddafffd87b3c0153bfe677031dc

Cleanup and reorganize some things

view details

push time in 2 months

push eventdcrodman/dotfiles

Drew Rodman

commit sha 3e7e0f824238e530311869b57402392a63a0e58d

Cleanup

view details

push time in 2 months

push eventdcrodman/monkey-interpreter

Drew Rodman

commit sha 61b11738f863b95c7370e3628f2ff5d01dad47f0

Add everything related to arrays

view details

Drew Rodman

commit sha a0ed4e4389b0eb7d7b0e37abc1dfd8c8a0214352

Hashes and print (the rest of the owl). Done with the book!

view details

push time in 2 months

push eventdcrodman/dotfiles

Drew Rodman

commit sha e815edbfca31f8240ef423bc7f8758835cf4bc6d

Add some stuff

view details

push time in 2 months

push eventdcrodman/dotfiles

Drew Rodman

commit sha 648c0dd50ae30af9cc5fa00b09583e0799171969

Update README.md

view details

push time in 2 months

push eventdcrodman/monkey-interpreter

Drew Rodman

commit sha 2d3e200ff27e42141100c80f297432f3b9404c11

Add error handling to evaluator

view details

Drew Rodman

commit sha 55b61d8b8936745efc6fca1ee9d7be4f7255d9b6

Implement the rest of the core language spec

view details

Drew Rodman

commit sha 3d19a5d37f423c51d9982a58b9c4ee03af7fecea

Add support for strings

view details

push time in 2 months

delete branch dcrodman/sourcegraph

delete branch : dr/issue-6607

delete time in 3 months

issue commentdcrodman/archon

Client intermittently disconnects after character selection

This was happening more intermittently before the major frontend refactoring (811e468), now it seems pretty steady

dcrodman

comment created time in 3 months

push eventdcrodman/archon

Drew Rodman

commit sha 476fdcbdc65c26ad45b98575d52d93bda094508b

Send packets to the packet_analyzer utility asynchronously

view details

push time in 3 months

push eventdcrodman/archon

Drew Rodman

commit sha dffd32564db907c8f8ae6ac1ad13665230fc5f17

Rename shipgate metadata service...again

view details

push time in 3 months

GollumEvent

push eventdcrodman/archon

James Protzman

commit sha cc76d8420328c427e27439fd781bd50d572c057e

Add better support for soft deleting characters Also updates the add_account utility with additional account management tools and renames the binary

view details

push time in 3 months

push eventdcrodman/archon

James Protzman

commit sha db0220ba88bdac6247adf3943e6a978cffb882e3

Distinguish soft and permanent deletes for accounts and characters

view details

James Protzman

commit sha e299d948be67febd83280d5bbd0929d480062157

remove os.exit

view details

James Protzman

commit sha c2352b8c6264b2f8b150f18f021fb045f2e61b5c

Remove unnecessary flag logic

view details

James Protzman

commit sha e7298223420b5fcf956922f8f9e10359fa8052e1

format imports, add tests, update existing tests

view details

James Protzman

commit sha 51d87d8b7eb6fad5266eb09bda883dfde7643012

go fmt

view details

James Protzman

commit sha 0237bb28970ece33d51870335d5c1e24a4c00434

sort imports account/main.go

view details

James Protzman

commit sha 7367b2f466e90a7f2d5af4ff37ccd5c560b1011a

Update readme with changes

view details

James Protzman

commit sha 77c85f9294d5b71cc280beb5a9c05094230bc904

Fix index on TOC

view details

James Protzman

commit sha de5418f4e3c308c96f5dba520ddf0412d2e0c513

lowercase anchor

view details

James Protzman

commit sha 7e08fcaeb985c1439375fd1b4bd90b138b3ce074

decrease header level for header 8

view details

James Protzman

commit sha 8b13c69a5a109889f085ed7fa81c24529835e631

Add usage, switch from flags to args

view details

push time in 3 months

PR merged dcrodman/archon

Add support for soft and permanent deletes of account/character entries
  • Update add_account utility to be more versatile; you can now soft-delete, perm-delete, and add accounts.
  • Add separate functions for soft/perm delete of account / character table entries.
+277 -68

3 comments

9 changed files

JNProtzman

pr closed time in 3 months

Pull request review commentdcrodman/archon

Add support for soft and permanent deletes of account/character entries

 in `config.yaml`). You may also provide a CIDR block.  You can do this with your own tool (or SQL) Archon comes with a small utility for adding accounts: -    ./add_account+    ./account --add

I didn't realize these were flags, can you make this more like a conventional *nix-y subcommand? I.e account [add|delete|...] ...

JNProtzman

comment created time in 3 months

Pull request review commentdcrodman/archon

Add support for soft and permanent deletes of account/character entries

 https://www.pioneer2.net/community/threads/tethealla-server-setup-instructions.1 in `patcher.go` that correspond to your client. If none exist, you'll have to find the offsets with a hex editor. -### 7. Add files the patch directory+### 7. Add files to the patch directory

Man you can tell that I wrote most of these after coding all day, thanks for cleaning up these typos

JNProtzman

comment created time in 3 months

Pull request review commentdcrodman/archon

Add support for soft and permanent deletes of account/character entries

 func TestVerifyAccount(t *testing.T) { 				return tt.context.account, tt.context.err 			} -			_, err := VerifyAccount(tt.args.username, tt.args.password)--			if err != tt.result.err {+			if _, err := VerifyAccount(tt.args.username, tt.args.password); err != tt.result.err {

nit: You don't have to change this but personally I find this exchange of horizontal complexity for vertical complexity to be more difficult to read

JNProtzman

comment created time in 3 months

Pull request review commentdcrodman/archon

Add support for soft and permanent deletes of account/character entries

 func TestCreateAccount(t *testing.T) {  	for name, tt := range tests { 		t.Run(name, func(t *testing.T) {-			originalCreateAccount := createAccount+			defer func() {

Good catch

JNProtzman

comment created time in 3 months

pull request commentdcrodman/archon

Add support for soft and permanent deletes of account/character entries

Ah adding coverage of the new methods to auth_test would be great since that's one of the few tested modules in the codebase right now

JNProtzman

comment created time in 3 months

Pull request review commentdcrodman/archon

Add support for soft and permanent deletes of account/character entries

 func FindAccount(username string) (*Account, error) { 	return &account, nil } +// FindUnscopedAccounts searches for a potentially soft-deleted account with the+// specified username, returning the *Account instance if found or nil if+// there is no match.+func FindUnscopedAccounts(username string) (*Account, error) {

nit: FindUnscopedAccount since the result is a single Account instance

JNProtzman

comment created time in 3 months

Pull request review commentdcrodman/archon

Add support for soft and permanent deletes of account/character entries

 var createAccount = func(account *data.Account) error { 	return data.CreateAccount(account) } +// DeleteAccount takes the specified credentials and soft-deletes a record in+// the database, returning any errors encountered.+func DeleteAccount(username string) error {+	return softDeleteAccount(username)+}++var softDeleteAccount = func(username string) error {

Check out auth_test - it makes it possible to fake the actual ORM interaction in the test so that this doesn't need a bunch of database setup

JNProtzman

comment created time in 3 months

pull request commentdcrodman/archon

Add support for soft and permanent deletes of account/character entries

I didn't realize that gorm soft-deleted by default, that's a pleasant discovery to keep in mind. And makes this change even easier than I thought.

Manually removing accounts should be an infrequent task since a soft delete should happen via Recreate and there should be rather few cases for permanent deletion. I've also been trying to keep the tools in cmd/ pretty Unix-y in that they really only do one thing, but this doesn't strictly have to be the case.

All in all looks good to me, nice work!

JNProtzman

comment created time in 3 months

push eventdcrodman/archon

Drew Rodman

commit sha f6733fd24a36a5ff4bdc5633463abde49821a6f5

Refactor character server's shipgate calls into its own struct

view details

push time in 3 months

push eventdcrodman/archon

Drew Rodman

commit sha b593d1d3fb34eaa147e0cc888fe317d603e94e71

Refactor ship server to use new client model

view details

push time in 3 months

issue openeddcrodman/archon

pq: zero-length delimited identifier at or near """"

I'm not sure what's causing this, the character information is persisted to the database but I keep seeing this error string when using the Dressing Room. Probably just need to enable Postgres logging and see what SQL is being generated since it looks like the Character struct being saved has the right data.

Steps to reproduce:

  1. Create a character
  2. Log out
  3. Log in and select "Dressing Room"
  4. Select "OK" (with or without changes)
  5. This error appears in the console
(../archon/internal/data/character.go:71) 
[2020-05-14 14:33:29]  pq: zero-length delimited identifier at or near """" 
ERRO[2020-05-14 14:33:29] pq: zero-length delimited identifier at or near """" 
WARN[2020-05-14 14:33:29] error in client communication: pq: zero-length delimited identifier at or near """" 

created time in 3 months

push eventdcrodman/archon

Drew Rodman

commit sha 1b332af84265ae34bf31e4c6d4c683bb4647597a

Rename entrypoint files in cmd/ to main.go

view details

Drew Rodman

commit sha 37b26e2b5d13ad5aeaed5755d07fe69475813039

Move top level packages into internal/ and rename server.Client

view details

Drew Rodman

commit sha b000d9f035d1c51060f583e592adc01f33ba3f3e

Package restrucuring and export fixes

view details

Drew Rodman

commit sha 811e468c3950beb32e893c3bb91dd6893a060616

Rewrite the frontent server layer and everything about clients

view details

push time in 3 months

push eventdcrodman/archon

Drew Rodman

commit sha fbcac9683feebfaaeed8929546fbd7a3b5d01e1e

Slim down the number of calls to the packet analyzer

view details

push time in 3 months

push eventdcrodman/monkey-interpreter

Drew Rodman

commit sha bdb044f5bbec0fefd38b430ebeb870e746aea6c0

Add infix and prefix expression evaluation

view details

Drew Rodman

commit sha 2d1fe3ebfefe33f74ba650f30f793148f0b3207a

Add conditional support to evaluator

view details

push time in 3 months

more