Skip to content

Instantly share code, notes, and snippets.

View hkoba's full-sized avatar

Kobayasi, Hiroaki hkoba

View GitHub Profile
@yuga
yuga / gist:8255552
Last active September 11, 2016 05:34

Haskellでバイナリデータ

1. はじめに

Haskellでバイナリファイルの読み書きをすることがこれまで何回かあったので、それをネタにアドベントカレンダーに参加したつもりだったのですが、定刻よりもだいぶ遅れての年始の到着となりました。申し訳ございません。これはHaskell Advent Calender 2013 11日目だったはずの記事です。明けましておめでとうございます。

さて。コンンピュータで扱うデータはすべてバイナリ形式で表現されています。したがってすべてはバイナリデータであるという言い方ができますが、しかし一般には、テキストでないデータをバイナリデータと呼びます。

Haskellにはバイナリデータを扱うライブラリがたくさんあります。どのライブラリも特別難しい要素があるわけでなく、Haskellのライブラリの中では扱いの容易な部類に含まれるものと思います。しかし、初めて取り組むときには、主要なライブラリのどれも同じようなインターフェイスを提供していることに、何を選べば良いか戸惑う人も多いのではないでしょうか。

@voluntas
voluntas / luli.rst
Last active October 28, 2018 14:01
Lua 言語用ソースコード静的解析ツール

Lua 言語用ソースコード静的解析ツール

日時:2014-05-24
作:時雨堂
バージョン:1.1.10
url:http://shiguredo.jp/

Lua ソースコード静的解析ツールは 時雨堂 が開発し販売をしています

@mala
mala / gist:8857629
Last active October 29, 2019 00:35
Flashと特定ブラウザの組み合わせでcross originでカスタムヘッダ付与が出来てしまう問題が未だに直っていない話

2014-07-09 それぞれ修正されたのを確認したので追記します。

APSB14-17 で修正されたようです

筆者が把握している範囲で、最新版のFlash Playerを利用している場合に、(crossdomain.xmlもしくはユーザーの許可なしで)cross originでカスタムヘッダを付与する方法はありません。

Webサイト運営者は

@mala
mala / gist:9086206
Created February 19, 2014 04:49
CSRF対策用トークンの値にセッションIDそのものを使ってもいい時代なんて、そもそも無かった

概要

http://co3k.org/blog/csrf-token-should-not-be-session-id について。

この記事では触れられていませんが、

  • むかし、セッションIDをHTMLソース中に埋め込んでも脅威は変わらないと主張した人がいました
  • 正確には「hiddenの値のみ漏れやすいような特殊な脆弱性が無ければ」という前提であったけれど、実際にそのようなバグはあったし、予見されていた。
  • とても影響のある人だったので、色々なサイトや書籍がその方法を紹介し、安全なウェブサイトの作り方にも載ってしまいました

この際ハッキリ言っておくべきだと思うので書きますが、そもそもセッションIDを(HTMLソース中に埋め込む)CSRF対策トークンとして使うのは間違いでした。最初から間違っていたのです。正確に言うとCSRFの話は関係ないですね。CSRF関係なく、特に「単体で」セッションハイジャックが可能になるような値を、HTMLソース中に埋め込むべきではありません。

@lestrrat
lestrrat / gist:9104980
Last active August 3, 2017 21:55
ヘビメタ英語を日常で使う風景
@callumacrae
callumacrae / build-tools.md
Last active October 25, 2023 15:14
Build tools written in JavaScript
@pasberth
pasberth / show.ml
Created March 29, 2014 12:14
多相バリアントで Show 的な
type 'a show = [`Show of (string * 'a)]
type my_int = [`Show of (string * int)]
type my_float = [`Show of (string * float)]
type my_str = [`Show of (string * string)]
let show (`Show (pretty, x) : [< `Show of (string * 'a) ]) = pretty
let print x = print_endline (show x)
let mk_my_int x = `Show((string_of_int x), x)
anonymous
anonymous / tree.hs
Created March 29, 2014 19:15
data Tree a = EmptyTree | Node a (Tree a) (Tree a) deriving (Show)
singleton :: a -> Tree a
singleton x = Node x EmptyTree EmptyTree
treeInsert :: (Ord a) => a -> Tree a -> Tree a
treeInsert x EmptyTree = singleton x
treeInsert x (Node a left right)
| x == a = Node a left right
| x < a = Node a (treeInsert x left) right
| x > a = Node a left (treeInsert x right)
#!/usr/bin/env perl
# crontab -l | ./cron2cal > ~/tmp/cron.csv
use utf8;
use strict;
use warnings;
use Encode;
use DateTime;
@zoncoen
zoncoen / vertical_centering.js
Created June 18, 2014 00:47
Print pdf with vertical centering contents in Reveal.js. Run this snippet on the Chrome dev tools just before exporting the PDF. (https://github.com/hakimel/reveal.js/issues/563)
function toArray(o) {
return Array.prototype.slice.call(o);
}
toArray( document.querySelectorAll( '.reveal .slides section' ) ).forEach(function(slide){
var outerWrapper = document.createElement('div');
outerWrapper.style.cssText = 'display:flex; align-items:center; height:100%';
var wrapper = document.createElement('div');
wrapper.style.width = '100%';