Skip to content

Instantly share code, notes, and snippets.

@macrat
macrat / simplexer.go.y
Last active January 10, 2018 10:35
simplexerとgoyaccの組み合わせサンプル。
%{
package main
import (
"fmt"
"io"
"os"
"strconv"
"strings"
@macrat
macrat / mymarkdown.html
Last active January 1, 2018 00:17
CodeMirrorでMarkdownのモードを自作。の失敗作。 -> [そこそこ動く作](https://github.com/macrat/codemirror-mymarkdown)
<script src=http://unpkg.com/codemirror></script>
<script src=http://unpkg.com/codemirror/mode/python/python.js></script>
<script src=http://unpkg.com/codemirror/mode/markdown/markdown.js></script>
<script src=http://unpkg.com/codemirror/addon/mode/simple.js></script>
<link rel=stylesheet href=http://unpkg.com/codemirror/lib/codemirror.css />
<style>
.cm-header {
display: inline-block;
padding: .5em 0 .3em;
@macrat
macrat / survey.html
Created December 20, 2017 08:18
標本数とか標本誤差とかの計算をするやつ
<title>標本数の計算</title>
<meta name="viewport" content="width=device-width">
<style>
body {
margin: 2em;
}
.hint {
color: gray;
}
@macrat
macrat / image.go
Created November 9, 2017 05:25
golangでグラデーション作ったり、文字入れたり。
package main
import (
"image"
"image/color"
"image/png"
"os"
"golang.org/x/image/font"
"golang.org/x/image/font/basicfont"
@macrat
macrat / exceljs.js
Created September 12, 2017 13:06
node.jsでExcel生成
const excel = require('exceljs');
let workbook = new excel.Workbook()
workbook.creator = 'MacRat';
workbook.created = new Date(2000, 1, 1);
workbook.modified = new Date();
let sheet = workbook.addWorksheet('The sheet');
@macrat
macrat / kaijo_df.py
Created September 9, 2017 01:51
factorial function for pandas.DataFrame
import dask.dataframe
import pandas
def kaijo(df, max_=None):
result = df
if max_ is None:
max_ = df.max()[0]
@macrat
macrat / dynamic_typing_assertion.py
Last active September 9, 2017 14:06
pythonの型タイピングを使った動的なassert、の、構想。
import functools
import inspect
import typing
def istype(obj: typing.Any, typ: type) -> bool:
"""
>>> istype(1, int)
True
>>> istype('hoge', int)
@macrat
macrat / .vimrc
Created June 13, 2017 16:37
初心者にお勧めのvimrc
no <left> :while 1<return>smile<return>endwhile<return>
no <down> :while 1<return>smile<return>endwhile<return>
no <up> :while 1<return>smile<return>endwhile<return>
no <right> :while 1<return>smile<return>endwhile<return>
@macrat
macrat / fizzbuzz.go
Created May 9, 2017 18:22
サークルの活動中に書いた不適切なFizzBuzz。go fmtを通してあるのでたぶんきれいなこーどです。
package main
func Range(length interface{}) (r []interface{}) {
for i := 0; i < length.(int); i++ {
r = append(r, i)
}
return
}
func Map(fun func(interface{}) interface{}, arr ...interface{}) (r []interface{}) {
@macrat
macrat / fizzbuzz.c
Last active December 9, 2019 13:20
がんばってかいたFizzBuzz。gcc 4.9.4で-Wallを付けてもエラーやワーニングが表示されないことを確認済み。
#include <stdio.h>
#include <stdint.h>
int main() {
for (uint32_t i=1; i<=30; i++) {
uint64_t x = 8825495485607995750u - (i%3>0) * (8825495483553149956u - (((i/10+12336+(i%10<<8))>>(8*(i<10))) - 9621248592211244386u) * (i%5>0)) - 8825495483553153024u*(i%5>0);
puts((char*)&x);
}
}