Skip to content

Instantly share code, notes, and snippets.

View stoph's full-sized avatar
🏎️

Christoph Khouri stoph

🏎️
View GitHub Profile
@stoph
stoph / convert.py
Created February 23, 2024 20:58
Convert Shopify's products.json to csv file for import
# https://<shopify.store.com>/products.json?limit=250 (defaults to 30)
import csv
import json
def convert_json_to_csv(json_file, csv_file):
with open(json_file, 'r', encoding='utf-8') as file:
data = json.load(file)
products = data['products']
@stoph
stoph / gist:7bb7fe09c85ec1fac58b34c7dfc1ea1b
Created November 29, 2023 15:53
Show Mac App Switcher on all screens
# Enable
defaults write com.apple.dock appswitcher-all-displays -bool true; killall Dock;
# Revert
defaults delete com.apple.Dock appswitcher-all-displays; killall Dock
@stoph
stoph / gist:1fa9d20cf34fdab87e6d6667f1d3e5d0
Created September 18, 2023 15:42
Expandable Textarea
/**
* Expands a textarea element to fit its content up to a maximum height.
* @param {string} id - The id of the textarea element.
* @param {number} [maxHeight=0] - The maximum height of the textarea element. 0 for no maximum.
* @author Christoph Khouri <christoph.khouri@gmail.com>
*/
function expandableTextarea(id, maxHeight = 0) {
const textarea = document.getElementById(id);
textarea.style.height = 'auto';
textarea.style.height = (textarea.scrollHeight) + 'px';
namespace
{
template<typename T1>
void debug(T1 v){
#ifdef ENABLE_DEBUG
Serial.println(v);
#endif
}
template<typename T2>
@stoph
stoph / section_titles.py
Last active February 7, 2022 17:07
Extract all section titles from MMPs
from progressbar import ProgressBar
import requests
from lxml import html
import os
import tqdm
pbar = ProgressBar()
filename = "mmp.urls"
@stoph
stoph / Car_and_Driver-full_screen_image.js
Created November 2, 2021 00:40
Bookmarklet to view a gallery image from Car and Driver full screen
javascript:void%20function(){function htmlToElement(e){var t=document.createElement("template");return e=e.trim(),t.innerHTML=e,t.content.firstChild}var img=document.getElementsByClassName("active")[0].getElementsByClassName("slide-image-wrap")[0].getElementsByTagName("picture")[0].getElementsByTagName("img")[0],img_src=img.src.split("?")[0];document.body.appendChild(htmlToElement('<div id="view_image" style="display:flex;position:fixed; max-width: 100%;max-height: 100%;z-index:999; top: 0; left:0;" onclick="this.remove()"><img style="object-fit: contain;width:auto;height:auto;object-fit: contain;" src="'+img_src+'"></div>'));}();
@stoph
stoph / github1s-new-window.js
Created February 12, 2021 21:07
Opens a new window for github1s from a github page.
javascript: if(window.location.hostname=="github.com")window.open(window.location.href.replace('github.com', 'github1s.com'));
@stoph
stoph / media_control.py
Created January 25, 2021 14:11
Pi Bluetooth Media Control
import dbus, dbus.mainloop.glib, sys
from gi.repository import GLib
def on_property_changed(interface, changed, invalidated):
if interface != 'org.bluez.MediaPlayer1':
return
for prop, value in changed.items():
if prop == 'Status':
print('Playback Status: {}'.format(value))
elif prop == 'Track':
#include <Adafruit_NeoPixel.h>
#define LED_PIN D6
#define LED_COUNT 60
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
int state = 3;
void ICACHE_RAM_ATTR button_press() {
@stoph
stoph / PrincSoftwareEngineer.md
Created December 16, 2015 06:27
Princ Software Engineer (PHP)
Company Description

Do you want to make the Internet better? We do too. And we’re always looking for people with great ideas. We need free spirits and straight shooters. Creatives and critics. Nerds with nerve. People who love the Internet, but can see its cracks… and future, too. At AOL we’re focused on radically redefining the world of online communications. We are transforming how people around the globe connect with information, entertainment and one another by bringing together award winning journalists and innovative technologies to create rich and engaging consumer experiences. We look for people who are exceptionally imaginative, collaborative, and truly excited about our mission - to inform, entertain and connect the world.

Job Description

The AOL Media Platform team is growing!

We are looking for experienced and dedicated senior Software Engineers with expertise in PHP, JavaScript, and related web technologies. Location is flexible.

Are you interested in working on a platform that ser