Skip to content

Instantly share code, notes, and snippets.

View yogthos's full-sized avatar
🤷‍♂️

Dmitri Sotnikov yogthos

🤷‍♂️
View GitHub Profile
@yogthos
yogthos / xonotic-ubuntu.md
Last active April 27, 2024 19:56
setting up a Xonotic server on Ubuntu 18

Guide for running a Xonotic dedicated server on Ubuntu 18.04

sudo apt install git gcc autoconf automake libtool libgmp3-dev g++ libz-dev libjpeg-dev libx11-dev libgl-dev libxpm-dev libasound2-dev libsdl2-dev unzip 
git clone git://git.xonotic.org/xonotic/xonotic.git
cd xonotic/
./all update -p
./all compile -r
cp server/server.cfg data/
#!/usr/bin/env bb
(require '[clojure.java.shell :refer [sh]])
(defn exit [error]
(println error)
(System/exit 1))
(defn open-folder [folder]
(let [folder (some-> folder (io/file))]
(when (nil? folder)
@yogthos
yogthos / clojure-beginner.md
Last active April 11, 2025 15:58
Clojure beginner resources

Introductory resources

@yogthos
yogthos / pixelfed-images.cljs
Last active November 21, 2023 11:53
a script to download photos from Pixelfed data export JSON file
#!/usr/bin/env lumo
(ns pixelfed-images.core
(:require
[clojure.walk :refer [prewalk]]
[cljs.core :refer [*command-line-args*]]
[clojure.string :as string]))
(def fs (js/require "fs"))
(def https (js/require "https"))
(def stream (.-Transform (js/require "stream")))
@yogthos
yogthos / core.cljs
Last active February 18, 2025 04:46
Gjs ClojureScript example
(ns gjs-example.core)
(defn main []
(set! (-> js/imports .-gi .-versions .-Gtk) "3.0")
(let [Gtk (doto (-> js/imports .-gi .-Gtk) (.init nil))
window (Gtk.Window.
(clj->js
{:type (-> Gtk .-WindowType .-TOPLEVEL)
:title "A default title"
:default_width 300
@yogthos
yogthos / reddit-video.cljs
Last active January 24, 2021 21:03
a Lumo script for downloading Reddit videos using youtube-dl
#!/usr/bin/env lumo
(ns reddit-video.core
(:require
[cljs.core :refer [*command-line-args*]]
[clojure.string :as string]))
(def https (js/require "https"))
(def process (js/require "child_process"))
(defn js->edn [data]
@yogthos
yogthos / datepicker.cljs
Created October 19, 2018 22:11
example of adapting Reagent atom based API to re-frame
(ns re-frame.datepicker
(:require [cljs-pikaday.reagent :as pikaday]))
(defn datepicker [k]
(r/with-let [date (r/atom @(rf/subscribe [:schedule/event-modal-details-value k]))
date-tracker (r/track! #(rf/dispatch [:schedule/update-event-modal-details k @date]))]
[pikaday/date-selector
{:date-atom date
:pikaday-attrs {:format "YYYY-MM-DD"}
:input-attrs {:read-only true :class "form-control"}}]
#!/bin/sh
palette="$1.palette.png"
if [[ ! -e $palette ]]; then
ffmpeg -y -i $1 -vf palettegen $palette
fi
filters="fps=15,scale=640:-1:flags=lanczos"
@yogthos
yogthos / config.edn
Last active August 23, 2018 12:34
Twitter to Markdown
{:access-keys
{:consumer_key "XXXX"
:consumer_secret "XXXX"
:access_token_key "XXXX"
:access_token_secret "XXXX"
:account "arstechnica"
:content-filters [".*badwords.*"]
:include-replies? true
:include-rts? true
:output-file "tweets.md"}
@yogthos
yogthos / atom_clojure_setup.md
Last active October 20, 2017 12:31 — forked from jasongilman/atom_clojure_setup.md
This describes how I setup Atom for Clojure Development.

Atom Clojure Setup

This describes how I setup Atom for an ideal Clojure development workflow. This fixes indentation on newlines, handles parentheses, etc. The keybinding settings for enter (in keymap.cson) are important to get proper newlines with indentation at the right level. There are other helpers in init.coffee and keymap.cson that are useful for cutting, copying, pasting, deleting, and indenting Lisp expressions.

Install Atom

Download Atom

The Atom documentation is excellent. It's highly worth reading the flight manual.