Skip to content

Instantly share code, notes, and snippets.

View dotcypress's full-sized avatar

Vitaly Domnikov dotcypress

View GitHub Profile
GPIO0: GPIO Pin features
GPIO0 PB11/DMIC-DATA0/PWM2/TWI0-SDA/SPI1-CLK/DBI-SCLK/CLK-FANOUT1/UART1-CTS/PB-EINT11
GPIO1 PB10/DMIC-DATA1/PWM7/TWI0-SCK/SPI1-MOSI/DBI-SDO/CLK-FANOUT0/UART1-RTS/PB-EINT10
GPIO2 PE9/NCSI0-D5/UART1-CTS/PWM3/UART3-RX/JTAG-DI/MDIO/PE-EINT9
GPIO3 X
GPIO4 X
GPIO5 X
GPIO6 X
GPIO7 X
@dotcypress
dotcypress / pid.rs
Created November 17, 2021 01:49
Rusty PID
use core::ops::*;
pub struct Regulator<F>
where
F: Default + Add<Output = F> + Sub<Output = F> + Mul<Output = F> + PartialOrd + Copy,
{
kp: F,
ki: F,
kd: F,
last_error: F,
use byteorder::{BigEndian, ByteOrder};
use eeprom24x::{ic, Eeprom24x, SlaveAddr};
use hal::hal::blocking::delay::DelayMs;
use hal::hal::blocking::i2c::{Write, WriteRead};
use hash32::{Hasher, Murmur3Hasher};
// EEPROM: 512 pages * 32 bytes = 16,384 bytes
// Index size: 32 pages * 8 refs = 256 slots
// Max key size: 12 bytes
// Max record size: 4095 bytes
@dotcypress
dotcypress / telegram-login.js
Created February 24, 2018 08:34
Telegram authorization data checker
const { createHash, createHmac } = require('crypto')
function checkSignature (token, { hash, ...data }) {
const secret = createHash('sha256')
.update(token)
.digest()
const checkString = Object.keys(data)
.sort()
.map(k => `${k}=${data[k]}`)
.join('\n')
@dotcypress
dotcypress / flutures-micro.js
Last active February 2, 2018 20:08
ZEIT's Micro meets Futures
const { readFile } = require('fs')
const { isFuture, node, encase, after } = require('fluture')
const futurize = (handler) => async (req, res) => {
const result = await handler(req, res)
return isFuture(result) ? result.promise() : result
}
module.exports = futurize(
async (req, res) => {
@dotcypress
dotcypress / urm.rs
Created October 15, 2017 05:26
Unlimited Register Machine
//! Unlimited Register Machine
//! https://proofwiki.org/wiki/Definition:Unlimited_Register_Machine
use std::collections::HashMap;
type Address = usize;
type State = HashMap<Address, usize>;
#[derive(Debug)]
enum Op {
@dotcypress
dotcypress / test.txt
Created September 28, 2016 18:03
Unicode test
1. 👩‍👩‍👧‍👦
2. ❤️
3. 👍🏽
@dotcypress
dotcypress / keybase.md
Last active January 6, 2017 18:36
My publicly-auditable identity

Keybase proof

I hereby claim:

  • I am dotcypress on github.
  • I am dotcypress (https://keybase.io/dotcypress) on keybase.
  • I have a public key whose fingerprint is 9F83 5882 AEEA B17D B12C 78DE D844 1EF8 F3DF 1924

To claim this, I am signing this object:

@dotcypress
dotcypress / now.plugin.zsh
Last active November 26, 2022 19:12
zsh autocomplete plugin for △ now
_now_commands ()
{
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C \
":command:->command"\
"*::options:->options"
case $state in
@dotcypress
dotcypress / ◢◤.zsh-theme
Last active January 16, 2022 23:31
◢◤
GREEN="%{$fg_bold[green]%}"
YELLOW="%{$fg_bold[yellow]%}"
CYAN="%{$fg_bold[cyan]%}"
RED="%{$fg_bold[red]%}"
MAGENTA="%{$fg[magenta]%}"
RESET="%{$reset_color%}"
PROMPT='$RED◢◤ $CYAN%c $YELLOW$(git_prompt_info)$(git_prompt_status)$RESET'
RPROMPT='$MAGENTA%~ $RESET'