Jonathan Hamilton Profile
Jonathan Hamilton

@FroshKiller

Followers
124
Following
11K
Media
1K
Statuses
21K

He/him, or use they/them if you want, or die mad about it

Raleigh, NC
Joined April 2008
Don't wanna be here? Send us removal request.
@FroshKiller
Jonathan Hamilton
4 years
Some personal news.
Tweet media one
0
0
7
@FroshKiller
Jonathan Hamilton
2 years
RT @FroshKiller: If you see the herb, jump the curb.
0
1
0
@FroshKiller
Jonathan Hamilton
2 years
RT @JoeRGannascoli: @James_Sir_ @daveweigel Broom stick? Smarten up.
0
1
0
@FroshKiller
Jonathan Hamilton
2 years
If you see the herb, jump the curb.
0
1
3
@FroshKiller
Jonathan Hamilton
2 years
RT @FroshKiller: I think I want to play with you if you *know* about GNS theory, but I don't want to play with you if you *talk* about GNS….
0
1
0
@FroshKiller
Jonathan Hamilton
2 years
"Simulation theory" guy.
0
0
1
@FroshKiller
Jonathan Hamilton
2 years
Final Fantasy XVI is a UK government scheme to get work for as many voice actors with Manc and West Country accents as possible.
1
0
1
@FroshKiller
Jonathan Hamilton
2 years
I'm being gangstalked by these friggin' sunnygirl bots.
0
0
0
@FroshKiller
Jonathan Hamilton
2 years
Could've avoided every bit of this with a second opinion about the signature of the API function. "Why are you just taking any string here?" But no, now we're stuck in the shit heap.
0
0
1
@FroshKiller
Jonathan Hamilton
2 years
The easiest path: If the data parameter is a string, just use it. Otherwise, serialize the object as JSON correctly. We will have to incrementally improve things by replacing the calls providing bobo strings with the original dicts as we find them.
1
0
1
@FroshKiller
Jonathan Hamilton
2 years
Unfortunately, this whole project is lousy with calls to this function passing in their own homegrown strings.
1
0
1
@FroshKiller
Jonathan Hamilton
2 years
Rather than a string, that function should take an object parameter and handle the JSON serialization itself. Make it easy to do the right thing.
1
0
1
@FroshKiller
Jonathan Hamilton
2 years
Why is this preventable? The function to make the API request has a data parameter that expects you to give it a string. which means serialization is left up to the caller, who is free to completely fuck it up like this.
1
0
2
@FroshKiller
Jonathan Hamilton
2 years
So rather than serialize the object correctly with json.dumps, which would've rendered JavaScript's "null" keyword in place of "None," someone just called the built-in str function on the dict.
1
0
2
@FroshKiller
Jonathan Hamilton
2 years
None is Python's keyword for a null value. That string of parameters that looks vaguely like JSON is actually the string representation of a Python dict. The value at the key "providertype" was None, so there that is.
2
0
1
@FroshKiller
Jonathan Hamilton
2 years
I deployed a patch this morning, and in a seemingly unrelated bit of code, we started catching errors calling this internal API. The API endpoints expect JSON data on the request, and we apparently started sending a bogus None value. You might see where this is going.
Tweet media one
2
0
0
@FroshKiller
Jonathan Hamilton
2 years
I usually take pains to anonymize, but it feels pointless here.
1
0
1
@FroshKiller
Jonathan Hamilton
2 years
I'm gonna have to share another entirely preventable bug.
1
0
3
@FroshKiller
Jonathan Hamilton
2 years
linus tech tips gets that work opportunity tax credit except instead of convicts it's for the most punchable faces.
0
0
1
@FroshKiller
Jonathan Hamilton
2 years
Tim Pool has tragically died after being backed over by a Power Wheels Jeep.
0
0
1