-
Kinesis Freestyle (Terrible key switches. Mushy and un-lovable)
-
Kinesis Freestyle Edge (Traditional layout with too many keys, mech switches, proably too big to be tented easily/properly)
-
Matias Ergo Pro (Looks pretty great. Have not tried.)
-
ErgoDox Kit (Currently, my everyday keyboard. Can buy pre-assembled on eBay.)
-
ErgoDox EZ (Prolly the best option for most people.)
This gist is a list of instructions that I used to program my ATTiny85s with Micronucleus. They worked for me, but your mileage may vary! I would highly recommend starting by looking at the SparkFun article linked at the bottom for schematics and more in-depth info. This gist is mostly just a copy/paste list. | |
## Required: | |
- ATTiny85 | |
- AVR programmer | |
- 1 uF capacitor | |
- Micronucleus FW: https://github.com/micronucleus/micronucleus/releases | |
- avrdude: http://www.nongnu.org/avrdude/ | |
## Setup: |
Forenote: Most of the following is simply my point of view as an emulator developer. Various names are omitted for privacy reasons.
I usually write blog posts aimed at developers, but I'd like to make an exception just this once. For a lot of game consoles you have likely noticed that there's multiple emulators for said console. Even for more modern systems like the Nintendo 3DS, you've got several active emulators such as Citra, Mikage and Panda3DS, and some less active ones at the moment such as Corgi3DS. This has made many people in the emulation community ask "Why do emulator developers not simply collaborate"? Thus, I'd like to dedicate this post to answering this question as an emulator developer myself.
Even when we're working on different emulators, we very often collaborate and help each other. A lot of people don't know, since it usually happens ov
This note details the changes made to the Zen and ZMK codebase to improve the experience of e-ink displays.
You can test out below changes using your Zen config repo by modifying your config/west.yml
file, following ZMK instructions:
manifest:
remotes:
- name: caksoylar
It sometimes happen you need change code on a machine from which you cannot push to the repo.
You’re ready to copy/paste what diff
outputs to your local working copy.
You think there must be a better way to proceed and you’re right. It’s a simple 2 steps process:
1. Generate the patch:
git diff > some-changes.patch
# WARNING : This gist in the current form is a collection of command examples. Please exercise caution where mentioned. | |
# Docker | |
sudo apt-get update | |
sudo apt-get remove docker docker-engine docker.io | |
sudo apt install docker.io | |
sudo systemctl start docker | |
sudo systemctl enable docker | |
docker --version |
FROM ubuntu:bionic | |
RUN mkdir /app | |
COPY requirements.txt icons_rc.py main.py mainwindow_ui.py config.json /app/ | |
RUN apt-get update && \ | |
apt-get install -y python3 python3-pip xvfb libqt5x11extras5 && \ | |
pip3 install -r /app/requirements.txt |
#lang racket | |
(define (expr? e) | |
(match e | |
[(? number? n) #t] | |
[(? symbol? x) #t] | |
[`(λ (,(? symbol? x)) ,(? expr? e)) #t] | |
[`(,(? expr? e0) ,(? expr? e1)) #t] | |
[_ #f])) |
Tailwind is optimised to work with JavaScript/TypeScript ecosystems, but other languages might have good integrations also.
This is the case for OCaml-derived languages that are used to do Frontend development. For the most part, a tighter integration might not be needed and using the Tailwind setup guide and regular classNames with strings is good enought.
let make = (~text) => {
<h1 className="text-3xl font-bold underline">{React.string(text)}<h1>
// ==UserScript== | |
// @name youtube popup killer | |
// @namespace http://tampermonkey.net/ | |
// @version 0.3 | |
// @description try to take over the world! | |
// @author Selbereth | |
// @match https://*.youtube.com/* | |
// @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com | |
// @grant none | |
// ==/UserScript== |