Skip to content

Instantly share code, notes, and snippets.

View marihachi's full-sized avatar
🕹️

marihachi marihachi

🕹️
View GitHub Profile
@ikasoba
ikasoba / main.c
Created November 25, 2023 03:40
オレオレallocとfree
#include <stdalign.h>
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
char mem[1024];
void* last_pointer = mem;
typedef struct {
@greymd
greymd / sudo新一.md
Last active June 28, 2024 00:26
sudo新一

 オレは高校生シェル芸人 sudo 新一。幼馴染で同級生の more 利蘭と遊園地に遊びに行って、黒ずくめの男の怪しげな rm -rf / 現場を目撃した。端末をみるのに夢中になっていた俺は、背後から近づいてきたもう1人の --no-preserve-root オプションに気づかなかった。 俺はその男に毒薬を飲まされ、目が覚めたら・・・ OS のプリインストールから除かれてしまっていた!

sudo がまだ $PATH に残っていると奴らにバレたら、また命を狙われ、他のコマンドにも危害が及ぶ』

 上田博士の助言で正体を隠すことにした俺は、 which に名前を聞かれて、とっさに『gnuplot』と名乗り、奴らの情報をつかむために、父親がシェル芸人をやっている蘭の $HOME に転がり込んだ。ところが、このおっちゃん・・・とんだヘボシェル芸人で、見かねた俺はおっちゃんになりかわり、持ち前の権限昇格能力で、次々と難タスクを解決してきた。おかげで、おっちゃんは今や世間に名を知られた名エンジニア、俺はといえばシェル芸 bot のおもちゃに逆戻り。クラスメートの convertojichattextimg にお絵かきコマンドと誤解され少年ワンライナーお絵かき団を結成させられる始末。

 ではここで、博士が作ってくれたメカを紹介しよう。最初は時計型麻酔 kill 。ふたについた照準器にあわせてエンターを押せば、麻酔シグナルが飛び出し、プロセスを瞬時に sleep させることができる。 次に、蝶ネクタイ型 banner 。裏についているダイヤルを調整すれば、ありとあらゆる大きさのメッセージを標準出力できる。必殺のアイテムなら fork 力増強シューズ。電気と磁力で足を刺激し、 :(){ :|:&amp; };: でプロセステーブ

/**
* AiScript interpreter
*/
import autobind from 'autobind-decorator';
type ValueType = 'boolean' | 'number' | 'string' | 'object' | 'array' | 'function';
type VNull = {
type: 'null';
@xreiju
xreiju / misskey_reaction.js
Last active May 5, 2021 12:21
Show the reactions for the specified noteId #misskey
// Requirement: node-fetch
// How it works:
// $ node misskey_reaction.js xxxxxxxxxxxxxxxxx(noteId)
// $ node misskey_reaction.js https://${host}/notes/xxxxxxxxxxxx(noteId)
// You need to put your token here to get it working.
const i = '!YOUPUTYOURTOKENHERETOGETTHISPROGRAMTOWORK'
//
const fetch = require('node-fetch')
@xreiju
xreiju / misskey.md
Last active March 15, 2021 10:56
Misskey入門.md

Misskey入門

登録、投稿などの基本操作にはすぐに慣れるでしょうから、ここでは触れません!

なお、PC版を使っていることを前提に記述していますが、スマホ版でも似たような手段で設定を変更することができます。

アイコンが丸いのが嫌

設定 -> Web -> 円形のアイコンを使用 のところから、四角いアイコンへ変更できます。

@xreiju
xreiju / misskey_spotify_nowplaying.py
Last active May 9, 2023 11:39
Spotifyの#nowplayingをMisskeyに投稿したいだろ
# requirements: request, spotipy(needs MANUAL installation)
# $ python3 misskey_spotify_nowplaying.py <spotify ID> (silent)
# silentが指定されている場合、Misskeyにpostされずに投稿内容のプレビューのみを実行します。
# 2018/08/20: tokenではなくmisskey-hookを使うように変更しました。以前は"i"を使っていました。履歴参照。
import json, sys, urllib.request
import spotipy
import spotipy.util as util
@betaEncoder
betaEncoder / STM32_programming_tips.md
Last active September 22, 2020 15:03
Tips for STM32 self programming

STM32のFlashメモリを書き換える時のメモ

アプリケーションによっては,製品出荷時にユニークなIDを記憶させたり,キャリブレーション値を保持する時にMCU内蔵のEEPROMへデータを書き込む事があります.
しかしながら,STM32シリーズのチップにはEEPROMがありません.どうやらFlashメモリをEEPROMのように書き換えて使う想定のようです.

Flash特有の懸念

FLASHメモリと言えば書き換え可能な回数が限られており,頻繁な書き換えは信頼性の低下が懸念されます.
そこでデータシートを参照してみると,最低でも1万回の書き換えが保証されているようでした.   これならループを回して書き換えたりしない限り,メモリの劣化は考えなくても良さそうです.
懸念はそれだけではありません.Flashメモリは1バイトづつ書き込む事はできるものの,消去はセクタ単位での一括消去となります.故に,書き換える場合には以下の手順が必要です.

@xreiju
xreiju / montecarloPi.d
Created May 7, 2017 02:36
Calculate Pi with Monte Carlo Method in D
import std.stdio, std.random, std.math;
const POINT_AMOUNT = 1000;
struct Point {
real x, y;
bool isInCircle() {
real num = pow(x, 2) + pow(y, 2);
return num <= 1;
}
@biogeo
biogeo / indentation.pegjs
Created March 23, 2017 17:55
"Offside rule" indentation parsing with PEG.js
// Parse a document using "offside rule" indentation (as in Python) into lines
// grouped by indentation level, using PEG.js.
// Attempts to segregate the "stateful" rules from the other production/parsing
// rules by "disallowing" indentation-level-sensitive rules from consuming any
// text.
{ var margin_stack = [""]; }
Document
= content: Element+
@danharper
danharper / CancellationTokenSource.js
Last active January 7, 2024 17:58
JavaScript "CancellationToken" for cancelling Async/Promise functions
const CANCEL = Symbol();
class CancellationToken {
constructor() {
this.cancelled = false;
}
throwIfCancelled() {
if (this.isCancelled()) {