Skip to content

Instantly share code, notes, and snippets.

View fasterthanlime's full-sized avatar
🌃
4 oreos from heaven

Amos Wenger fasterthanlime

🌃
4 oreos from heaven
View GitHub Profile

JSON output

Ever since butler has become responsible for downloading, patching, unzipping in the itch app, it has had a JSON-lines output mode.

If you pass --json (or -j) — which the app always does — it'll output lines like this:

{"level":"info","message":"Resuming at 46 MiB / 286 MiB","type":"log"}
@fasterthanlime
fasterthanlime / 001-tiny.sh
Last active September 17, 2017 17:45
Trying to figure out if GCS is super slow just for me or for everyone
curl -o /dev/null "https://storage.googleapis.com/dl.itch.ovh/capsule-dash/video_160x90_250k.webm"
#include <windows.h>
#include <AccCtrl.h>
#include <Aclapi.h>
#include <WinNt.h>
#include <stdio.h>
#define SafeRelease(x) if (x != NULL) { LocalFree((HLOCAL)x); x = NULL; }
DWORD AddAceToObjectsSecurityDescriptor (
@fasterthanlime
fasterthanlime / .zshrc
Last active August 5, 2017 12:03
Make git status outside dirs (because of zsh running it all the time) not super-slow on msys2
# that's it!
export GIT_CEILING_DIRECTORIES=/:/home
// before
const Component = require("./component");
class Container {
render() {
return <Component/>;
}
}
  • first-class transpiler support (pick your syntax sugar of choice, have it be sourcemapped easily in debuggers/stack traces/etc.)
  • easy & accurate code coverage tools (with sourcemaps too)
  • integrated console, debugger, memory, CPU profiler, network inspector (a key shortcut away, even in the production version of the app)
  • remote debugging too (renderer and main process - with the UI showing remotely in a way you can interact with)
  • great support for integration tests (aka webdriver - you basically send mouse/keyboard events and inspect the DOM to make sure what you expect to happen on screen happens)
itch => ./itch (interpreter => /lib64/ld-linux-x86-64.so.2)
libnode.so => ./libnode.so
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
libgtk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0
libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3
libgdk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1
libatk-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0
1117 silly decomposeActions remove zopf@4.5.0
1118 silly install executeActions
1119 silly doSerial global-install 734
1120 verbose correctMkdir C:\Users\amwenger\AppData\Roaming\npm-cache\_locks correctMkdir not in flight; initializing
1121 verbose lock using C:\Users\amwenger\AppData\Roaming\npm-cache\_locks\staging-6211b113012dc3ab.lock for C:\msys64\home\amwenger\Dev\itch\node_modules\.staging
1122 silly doParallel extract 734
1123 silly doReverseSerial unbuild 734
1124 silly unbuild zopf@4.5.0
1125 info lifecycle zopf@4.5.0~preuninstall: zopf@4.5.0
1126 info lifecycle zopf@4.5.0~uninstall: zopf@4.5.0
--- many cut lines ---
1117 silly decomposeActions remove zopf@4.5.0
1118 silly install executeActions
1119 silly doSerial global-install 734
1120 verbose correctMkdir C:\Users\amwenger\AppData\Roaming\npm-cache\_locks correctMkdir not in flight; initializing
1121 verbose lock using C:\Users\amwenger\AppData\Roaming\npm-cache\_locks\staging-6211b113012dc3ab.lock for C:\msys64\home\amwenger\Dev\itch\node_modules\.staging
1122 silly doParallel extract 734
1123 silly doReverseSerial unbuild 734
1124 silly unbuild zopf@4.5.0
1125 info lifecycle zopf@4.5.0~preuninstall: zopf@4.5.0
@fasterthanlime
fasterthanlime / the-point-then.md
Created July 10, 2017 09:08
You don't even get Steam keys? Jeez, what's the point then?

I'm so glad you asked!

Buying on itch.io:

  • Supports creators - our default cut is 10%, but they can pick any.
  • Lets you play the games you buy, DRM-free, whether you want to use our desktop client or not.

Many platforms out there are fighting for the "best Steam key reseller" title, which often means "the cheapest", and some are famously known for not caring whether said keys were acquired legitimately or not.

(Keep in mind that key reselling is something Valve allows because having more players now means more revenue later. If/when it stops being economically viable for them, they'll have no reason to keep allowing that. Those platforms might have to rethink their model then.)