memo

opensslでpkcs#12を扱ったときのメモ

opensslでpkcs#12を扱ったときのメモpkcs#12はユーザー識別情報を安全に転送するための形式。 転送する情報は秘密鍵(pkey)、証明書(x509)、や証明書チェーン、パスワードなど。 # pkcs#12が持っているデータをpem形式に変換する openssl pkcs12 -in sample.p…

2分探索木

「プログラミングの基礎」をちょっとずつ読んでて2分探索木の走査がでてきたんで、pythonでも書いてみました。ocamlだとこう type tree_t = Empty | Leaf of int | Node of tree_t * int * tree_t (* 目的 : dataが2分探索木treeに含まれているかを調べる *)…

ocamlで文字列を1文字ずつのリストにする

昨日、pythonとrubyについて書いたので、ocamlでどう書くか調べてみた。 こんな感じか (* 文字列を1文字ずつ分割してstring listにして返す*) (* split_string : string -> string list *) let split_string s = Str.split (Str.regexp "") s;; (* test *) l…

python、rubyで文字列を1文字ずつのリストにする

間違ってpythonでstr.split(//)とか書いてしまった。split(//)でできるのはrubyだった。ruby str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" str.split(//) => ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m"…

エラトステネスのふるい

「プログラミングの基礎」で課題にエラトステネスのふるいが出てきたんで、pythonで同じように書いてみたプログラミングの基礎 (Computer Science Library)作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア: 単行本購入: 17人 クリック:…

macのショートカットキーで↖(斜め上矢印)

pycharmで「Jump to Navigation Bar」のショートカットが「⌥↖」で、どうやって入力すんのかなと調べました。↖はHomeキーの記号で、Homeキーがない場合は「fn + ←」で入力できました。 Jump to Navigation Barはこんな感じでファイルを選択できます。

7-minute-workoutをサポートしてくれる7Min

少し前にNYTimesで、7分のワークアウトで効率よく最大のフィットネス効果が得られるというメニューが紹介されて、ちょっと話題になりました。 The Scientific 7-Minute Workout - NYTimes.com その後ライフハッカーでも紹介されました。 1日たったの7分間! …

python で 挿入ソート

最近プログラミングの基礎をちょっとずつ読んでます。プログラミングの基礎 (Computer Science Library)作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア: 単行本購入: 17人 クリック: 409回この商品を含むブログ (126件) を見るocamlを…

CreateViewでモデルのユーザー属性にログインユーザーを設定する

formにhiddenでユーザーidを設定しておくのを見たことがあるんですが、それだとhiddenの値を改ざんされる場合があります。djangoのドキュメントにちゃんとやり方が書いてあって、form_validで行うのが良いようです。 # views.py from django.views.generic.e…

Bootstrapのbuildでエラー

make bootstrap-jsで以下のエラーになったので調べてました。 $ make bootstrap-js mkdir -p bootstrap/js cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-…

オブジェクトが走査可能かどうか調べる

if hasattr(obj, '__iter__'): for e in obj: pass In Python, how do I determine if an object is iterable? - Stack Overflow

サーバーサイドのログをブラウザに表示 - DjangoでChrome Loggerを試してみた

サーバーサイドのログをChromeのコンソールに表示するライブラリを見つけたのでDjangoで試してみました。まずchromeのプラグインをinstallします。 chromeの右上のボタンがでますので、使うときはactiveにします。 次にpythonのライブラリをインストール pip…

jsでシーケンスダイアグラムを描画するjs-sequence-diagrams

なんか面白そうなので試してみました。 js-sequence-diagrams by bramp underscore.jsとRapha〓lに依存してるので用意します。Underscore.js Rapha〓l―JavaScript Library <div id="diagram"></div> <script src="js/vendor/underscore.js"></script> <script src="js/vendor/raphael-min.js"></script> <script src="js/vendor/sequence-diagram-min.js">

DjangoでDigest認証をかける

django-digestというパッケージを使うとdjangoでdigest認証をかけることができます。 python-digestに依存してるので一緒にinstallします。 pip install django-digest python-digest akoha / django-digest / wiki / Home ― Bitbucket dimagi/python-digest…

Djangoでbasic認証をかける

djangosnippetsにmiddlewareのサンプルがあります Django snippets: Basic Auth Middleware ついでにBasic認証の仕組みをメモしておこうと思います。 Basic認証の流れ 1. クライアントが認証が必要なページをリクエスト2. サーバーはユーザー名とパスワード…

skypeで会話履歴を検索する

過去の会話を検索したいとき、一応チャットの上部にこんなリンクがあって、全部表示してCTR+ + Fで検索することができますが 長く使っているグループチャットだと表示するのに時間がかかりますし、ヘタしたら固まります。 調べてみたらチャットで/searchと発…

攻撃元のIPアドレスを遮断するFail2ban

ログファイルを監視してくれて、攻撃を探知したら、iptablesのルールを書き換えてアクセスを遮断してくれるようです。 Fail2banこちらのエントリで知りました。My First 5 Minutes On A Server; Or, Essential Security for Linux Servers | Bryan Kennedy …

Bootstrapを使ったカッコいいデザインのサイトを集めたBootstrap Expo

Bootstrap Expo Bootstrap使ってこんなカッコいいサイトができるんですねぇ (私のような)デザインができない人間が、とりあえず見れるサイトを作るためのcssフレームワークって認識でしたが、自分がしょぼいだけでした。

man ascii

小ネタman ascii で アスキーコード表が確認できるいつか役に立つかもしれん それにしても花粉がつらいです

x509証明書

昨日作成してみた自己署名証明書をpythonで扱ってみる PyOpenSSLを使うとりあえず、load_certificateで読み込んで中身を確認 # coding=utf-8 from OpenSSL.crypto import load_certificate, FILETYPE_PEM with open('cacert.pem') as f: x509 = load_certifi…

ubuntuで認証局を作成

$ cd /usr/lib/ssl/misc $ sudo ./CA.sh -newca CA certificate filename (or enter to create) Making CA certificate ... Generating a 1024 bit RSA private key .....++++++ ...................................++++++ writing new private key to './d…

pyopensslのインストールでエラー

ubuntuですこんな感じのエラー $ sudo pip install pyopenssl Downloading/unpacking pyopenssl Downloading pyOpenSSL-0.13.tar.gz (250Kb): 250Kb downloaded Running setup.py egg_info for package pyopenssl warning: no previously-included files mat…

pingが通るけどNo route to host

pingが通るけどtelnetで疎通確認するとNo route to hostといわれるんで調べてたら、実に参考になりそうなエントリを見つけまして解決しました。iptablesで弾かれてただけでした。 まずサーバー側で設定を調べる $ sudo /sbin/iptables -L --line-numbers --l…

正規表現をわかりやすく可視化してくれるdebuggex

Debuggex: A visual regular expression debugger 正規表現を入力すると、可視化してくれて、どこかマッチするのかとかよくわかる。 電話番号だとこんな感じ こんど正規表現を扱うとき、思い出したら使ってみよ

pythonでホスト名取得

import socket hostname = socket.gethostname()

任意のサイズのランダムデータを作成する

100Gくらいのデータを作成 $ head -c 1000000m /dev/urandom > 100Gfile書き込みにsudoが必要な場合 head -c 1000000m /dev/urandom | sudo tee 100Gfile > /dev/null参考 : 中身がランダムなファイルを任意のサイズで作成する 参考 : sudoしているのに、リ…

テキストをアニメーションさせるライブラリ Textillate.js

Textillate.js リンク開くとだいたいどんなことができるのかわかります。 テキストを表示させる、消すときにいろいろなアニメーションをさせることができます。見てて面白い。ドキュメントみる限り結構自由にカスタマイズできそうです。

memcachedの起動オプションのメモ

オプション 意味 備考 -t スレッド数 cpuのcore数より増やしても意味がない? -L メモリ確保にラージページを利用する manによると(if available)とあり、OSによって使えるかどうかわからない -C CASを無効にする 使わないなら無効にしておいたほうがいいか…

memcached-toolを使ってみたときのメモ

memcachedの中身を確認するのにmemcached-toolが使える memcached-toolはperlスクリプト memcached/scripts/memcached-tool at master · memcached/memcached · GitHub 何もパラメータを指定せずに実行してみるとヘルプが表示される $ ./memcached-tool Usag…

Python/RubyでSHA-2

python # coding=utf-8 import hashlib text = "任意の文字列" #print hashlib.sha224(text).hexdigest() print hashlib.sha256(text).hexdigest() print hashlib.sha384(text).hexdigest() print hashlib.sha512(text).hexdigest() ruby # -*- encoding: ut…