Skip to content

Instantly share code, notes, and snippets.

Avatar
🌁
Down by the Bay

Saagar Jha saagarjha

🌁
Down by the Bay
View GitHub Profile
View top10words.c
#define _XOPEN_SOURCE 700
#include <ctype.h>
#include <ftw.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// djb2 because it's short
unsigned int hash(char *string) {
unsigned int hash = 5381;
@saagarjha
saagarjha / fixjit.c
Last active Jul 23, 2020
Fix applications that use JIT on Apple silicon but don't know about pthread_jit_write_protect_np
View fixjit.c
// The usual: compile with clang libfixjit.c -arch arm64 -arch arm64e -shared -o libfixjit.dylib, add to DYLD_INSERT_LIBRARIES.
#include <errno.h>
#include <pthread.h>
#include <stdatomic.h>
__attribute__((constructor)) static void fix_jit() {
unsigned long long mask;
__asm__ volatile("mrs %0, s3_4_c15_c2_7" : "=r"(mask): :);
__asm__ volatile("msr s3_4_c15_c2_7, %0" : : "r"(mask & 0xfffffffff0ffffff) :);
@saagarjha
saagarjha / CreateGhidraApp.sh
Created May 15, 2020
Creates a Ghidra.app bundle for macOS
View CreateGhidraApp.sh
#!/bin/sh
set -eu
mkdir -p Ghidra.app/Contents/MacOS
echo "
@import Foundation;
int main() {
execl([NSBundle.mainBundle.resourcePath stringByAppendingString:@\"/ghidra/ghidraRun\"].UTF8String, NULL);
@saagarjha
saagarjha / webserver.service
Created Oct 6, 2019
systemd service to run a webserver
View webserver.service
[Unit]
Description=Python Web Server
After=network.target
[Service]
Type=simple
Restart=always
User=root
WorkingDirectory=/share
ExecStart=/usr/bin/python3 -m http.server 80
@saagarjha
saagarjha / hn_timestamps.py
Created Aug 6, 2019
Grab timestamps for all your Hacker News comments
View hn_timestamps.py
#!/usr/bin/env python3
import json
import re
import urllib.request
if __name__ == "__main__":
comments = json.load(urllib.request.urlopen("https://hacker-news.firebaseio.com/v0/user/saagarjha.json"))["submitted"][::-1]
for comment in comments:
timestamp = json.load(urllib.request.urlopen("https://hacker-news.firebaseio.com/v0/item/" + str(comment) + ".json"))["time"]
@saagarjha
saagarjha / webserver.sh
Created May 26, 2019
OpenRC init script to run a webserver
View webserver.sh
#!/sbin/openrc-run
start() {
start-stop-daemon --start --chdir /share --background --exec /usr/bin/python3 -- -m http.server 80
}
stop() {
start-stop-daemon --stop --chdir /share --exec /usr/bin/python3 -- -m http.server
}
@saagarjha
saagarjha / theme.py
Last active Mar 26, 2019
iTerm2 Script to change the theme automatically based on the system appearance
View theme.py
#!/usr/bin/env python3
import iterm2
async def set_theme(connection, theme):
# Themes have space-delimited attributes, one of which will be light or dark.
parts = theme.split(" ")
if "dark" in parts:
preset = await iterm2.ColorPreset.async_get(connection, "Fixed Solarized Dark")
@saagarjha
saagarjha / darknano.c
Last active Mar 22, 2019
Disables bright colors in nano on macOS
View darknano.c
#include <string.h>
int overridden_strncasecmp(const char *s1, const char *s2, size_t n) {
if (n != 6 || strncmp(s2, "bright", n)) {
return strncasecmp(s1, s2, n);
} else {
return !0;
}
}
@saagarjha
saagarjha / iterm-set-profile.m
Last active Jun 6, 2018
Set the correct iTerm profile based on whether dark mode is enabled or not
View iterm-set-profile.m
// Compile with clang -F/System/Library/PrivateFrameworks -framework SkyLight iterm-set-profile.m
#import <Foundation/Foundation.h>
BOOL SLSGetAppearanceThemeLegacy(void);
int main() {
if (SLSGetAppearanceThemeLegacy()) {
printf("\033]50;SetProfile=Solarized Dark\a");
} else {
printf("\033]50;SetProfile=Solarized Light\a");
View MyDocument.swift
//
// Logic necessary to implement a "closing handler" for a NSDocument
//
// This is inspired by:
// - https://stackoverflow.com/questions/49343307/best-practice-to-implement-canclosewithdelegateshouldclosecontextinfo
// - https://github.com/keith/radars/blob/master/NSDocumentSwiftAnnotations/NSDocumentSwiftAnnotations/Document.swift
// Keith's supporting documentation for his radar submission: http://www.openradar.me/33422662
// Documentation:
// - https://developer.apple.com/library/content/releasenotes/AppKit/RN-AppKitOlderNotes/
// Paragraph called: "Advice for Overriders of Methods that Follow the delegate:didSomethingSelector:contextInfo: Pattern"
You can’t perform that action at this time.