Skip to content

Instantly share code, notes, and snippets.

@macrat
macrat / fssql.py
Created December 6, 2018 12:43
SQL上にファイルシステム的なもの
import hashlib
import pathlib
import sqlite3
class Tree:
def __init__(self, db, tag):
self.db = db
self.tag = tag
@macrat
macrat / TarFileSystem.go
Created December 5, 2018 13:32
go言語でtarアーカイブをファイルシステムっぽく扱うやつ。作りかけ。
package main
import (
"archive/tar"
"io"
"os"
"path/filepath"
"gopkg.in/src-d/go-billy.v4"
"gopkg.in/src-d/go-billy.v4/osfs"
@macrat
macrat / nyaan.py
Created August 14, 2018 12:45
にゃーん信号
# http://neocat.hatenablog.com/entry/20120917/1347902845
class Nyaan:
table = {'A':'にゃんにゃーん', 'B':'にゃーんにゃんにゃんにゃん', 'C':'にゃーんにゃんにゃーんにゃん', 'D':'にゃーんにゃんにゃん',
'E':'にゃん', 'F':'にゃんにゃんにゃーんにゃん', 'G':'にゃーんにゃーんにゃん', 'H':'にゃんにゃんにゃんにゃん',
'にゃーん':'にゃんにゃん', 'J':'にゃんにゃーんにゃーんにゃーん', 'K':'にゃーんにゃんにゃーん', 'L':'にゃんにゃーんにゃんにゃん',
'M':'にゃーんにゃーん', 'N':'にゃーんにゃん', 'O':'にゃーんにゃーんにゃーん', 'P':'にゃんにゃーんにゃーんにゃん',
'Q':'にゃーんにゃーんにゃんにゃーん', 'R':'にゃんにゃーんにゃん', 'S':'にゃんにゃんにゃん', 'T':'にゃーん',
'U':'にゃんにゃんにゃーん', 'V':'にゃんにゃんにゃんにゃーん', 'W':'にゃんにゃーんにゃーん', 'X':'にゃーんにゃんにゃんにゃーん',
'Y':'にゃーんにゃんにゃーんにゃーん', 'Z':'にゃーんにゃーんにゃんにゃん',
@macrat
macrat / pam_login.c
Created May 28, 2018 16:29
C言語でPAMを使ってログイン認証
#include <security/pam_appl.h>
#include <security/pam_misc.h>
#include <stdio.h>
#include <string.h>
#define USERNAME "this is username"
#define PASSWORD "this is password"
static int conv_func(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr) {
@macrat
macrat / tic-tac-toe.py
Created May 20, 2018 05:53
chainerでマルバツゲーム。失敗作。
import numpy
import chainer
import chainer.links as L
import chainer.functions as F
def judge(board):
"""
>>> judge(numpy.array([[ 1, 1, 1],
... [.5, 0, .5],
@macrat
macrat / dice-count.py
Created March 12, 2018 04:18
Python/OpenCVで特徴点マッチングして、DBSCANでクラスタリングしたらサイコロの目の合計とか出せないかと思ったやつ。失敗。
import os
import cv2
import numpy
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN
images = [cv2.imread('dataset/samples/' + x) for x in os.listdir('dataset/samples') if x.endswith('.jpg')] # サイコロの特定の面の教師画像
original = cv2.imread('dataset/random/0.jpg') # ランダムにサイコロを転がした画像
<!doctype html>
<title>new blankdown design</title>
<meta name=viewport content="width=device-width,initial-scale=1">
<body>
<nav>
<div id=nav-inner>
<textarea id=search-box cols=1 placeholder="search"></textarea>
<ul id=tag-area>
@macrat
macrat / face_finder.py
Created February 6, 2018 06:07
顔を見付けたら通知するシステム
import base64
import cv2
import numpy
import sendgrid
SENDGRID_APIKEY = 'your API key here'
TO_ADDRESS = 'mail-to@example.com'
FROM_ADDRESS = 'mail-from@example.com'
@macrat
macrat / markdown-with-simplexer.go
Created January 10, 2018 11:20
simplexerでMarkdownをHTMLに変換する実験
package main
import (
"fmt"
"os"
"github.com/macrat/simplexer"
)
const (
@macrat
macrat / simplexer.go.y
Last active January 10, 2018 10:35
simplexerとgoyaccの組み合わせサンプル。
%{
package main
import (
"fmt"
"io"
"os"
"strconv"
"strings"