Skip to content

Instantly share code, notes, and snippets.

View lambdalisue's full-sized avatar
🎮

Λlisue (Ali sue・ありすえ) lambdalisue

🎮
View GitHub Profile
@lambdalisue
lambdalisue / config.py
Created October 14, 2023 13:22
Keyhac
import sys
import os
import datetime
import pyauto
from keyhac import *
def configure(keymap):
# Setting with callable object (Advanced usage)
@lambdalisue
lambdalisue / bookmarklet
Last active January 13, 2023 05:25
Docbase で記事幅をウィンドウ幅に合わせるブックマークレット
javascript:(function() {
const t = document.querySelector('.c-MainLayout_Content article div');
t.style.maxWidth = "none";
t.style.width = "99%";
}())
@lambdalisue
lambdalisue / test.sh
Created October 13, 2022 04:53
Bash test difference (-z/-n)
check() {
# -z: True when the string length is 0
if [ -z $DUMMY ]; then
echo '-z $DUMMY'
fi
if [ -z "$DUMMY" ]; then
echo '-z "$DUMMY"'
fi
if [ -z "${DUMMY+xxx}" ]; then
echo '-z "${DUMMY+xxx}"'

Keybase proof

I hereby claim:

  • I am lambdalisue on github.
  • I am lambdalisue (https://keybase.io/lambdalisue) on keybase.
  • I have a public key ASBZIH_RGffOoVv_5tfnY5LlFQR3vfTF19AiLk2543RStAo

To claim this, I am signing this object:

@lambdalisue
lambdalisue / markdown.tmpl
Last active October 8, 2021 14:55
Makrdown template of protoc-gen-doc for better looks in GitHub Pages
<details open markdown="block">
<summary>Table of contents</summary>
<ul>
<li>
<a href="#services">Services</a>
<ul>
{{- range .Files}}{{range .Services}}
<li><a href="#{{.FullName | lower | replace "." ""}}">{{.LongName}} (<code>{{.FullName}}</code>)</a></li>
{{- end}}{{end}}
</ul>
@lambdalisue
lambdalisue / sixel.rs
Created September 6, 2021 19:16
Minimum SIXEL in Rust
use anyhow::{anyhow, Result};
use std::io::Write;
// MIT: Atanas Yankov <atanas.yankov98@gmail.com>
// https://github.com/atanunq/viuer/blob/3b99255f0d1586dd5b8cb1d409fa8515d9e77493/Cargo.toml#L10
// https://github.com/atanunq/viuer/blob/3b99255f0d1586dd5b8cb1d409fa8515d9e77493/src/printer/sixel.rs#L23
pub fn render_image(image: &image::DynamicImage) -> Result<()> {
let image = image.resize(128, 128, image::imageops::Nearest);
let encoder = sixel::encoder::Encoder::new()
.map_err(|e| anyhow!("failed to create a sixel encoder: {:?}", e))?;
@lambdalisue
lambdalisue / download-gh-release
Last active September 1, 2021 10:32 — forked from maxim/gh-dl-release
Download assets from private Github releases
#!/bin/bash
#
# Usage:
#
# download-gh-release {user}/{repo} {file} [{tag}]
#
repo=$1
file=$2
tag=${3:-latest}
@lambdalisue
lambdalisue / parseeval.ts
Created June 29, 2021 18:32
Parse Vim's `eval.txt` to generate function definition JSON
const tagPattern = /\*(.+)\(\)\*/;
function* parse(content: string): Generator<{ fn: string, args: string[] }> {
const lines = content.split("\n");
const founds = lines.flatMap((v, i) => {
const m = v.match(tagPattern);
if (!m) {
return [];
}
const index = i;
@lambdalisue
lambdalisue / get-dslite-aftr-in-asahinet.md
Created June 9, 2021 05:53 — forked from stkchp/get-dslite-aftr-in-asahinet.md
ASAHIネットのDS-Liteの終端(AFTR)を取得するメモ

ASAHIネットのDS-Liteの終端(AFTR)を取得する

ASAHIネットがDS-Lite対応したので、 自宅の適当なLinuxルーターにて設定しようとして詰まったAFTR取得に関するメモ。

Linuxルーターを使ってる人向けのニッチなものだけど、情報として残しておく。

終端の情報公開について

@lambdalisue
lambdalisue / spoof.py
Last active February 14, 2020 12:21
Spoof process parent in Windows via Win32 APIs
import ctypes
from contextlib import contextmanager, ExitStack
from ctypes import byref, sizeof, Structure, POINTER
from ctypes import wintypes
# Alias
windll = ctypes.windll # type: ignore
WinError = ctypes.WinError # type: ignore
SIZE_T = ctypes.c_size_t
TRUE = 1