2014年の記事
bashのpushd, popdを使ってディレクトリを移動しまくってみる
bashの組み込みコマンドである"pushd"、"popd"、"dirs"の使い方を調べてみた記録です。
pythonで経過日数を計算する。ライブラリは使わない。
ある日付からの経過日数を計算するプログラムを、ライブラリを使わずに実装してみました。
生まれた日から今日までの日数をpythonで。
Python/Tkinterを使って、生まれた日から今日までの日数を計算するプログラムを書いてみました。短かく書けるでしょ、と言おうと思ったのだけれど、Tkinterを使うと長い…。
gentooのaudacityでピッチを変えたい
gentooにインストールしたaudacityにはデフォルトでは「時間軸のスライド/ピッチの変更」という項目が無いので、USEフラグを変更して使えるようにする方法です。
express4でPOSTメソッド使おうとしたらbodyDecoderもbodyParserも無かった。
node.js/express4でPOSTメソッドを受けとって、bodyの中身を読み取る方法です。
pythonでmercurialのリポジトリを見てみる
mercurialはpythonで書かれているので、pythonプログラムからリポジトリを扱うことが非常に簡単に出来ます。というわけで、リポジトリの履歴を辿って変更の情報を表示するプログラムを書いてみました。
gitのリポジトリをmercurialに変換する
gitで一度作ったリポジトリを、mercurialに変換するためのmercurialエクステンションの紹介です。
gentooでPILを更新しようとしたらfterrors.hが見つからないって言われた
gentooにPILを入れる際に、`freetype/fterrors.h`が見つからないというエラーが出る場合の対処方法です。
node.jsで404と500のエラー処理
node.js/expressで404や500などのHTTPエラーが発生した場合のレスポンスをカスタマイズする方法です。
node.jsのNunjucksっていうjinja風なテンプレートエンジンを使ってみる
Pythonのjinjaのようなシンタックスで書けるnode.js用のテンプレートエンジン「nunjucks」の使い方の解説です。
pythonのクラスでprivateっぽいことをしよう
Pythonではプライベートなメンバを作れない…ということになっていますが、一応似たような事は可能です。この記事では、プライベートっぽいメンバの定義の仕方と、その挙動を解説しています。
pythonでクラスメソッドを使ってみる
C++やJavaではわりとよく使われるクラスメソッドですが、Pythonでも使うことが出来ます。というわけで、Pythonのクラスメソッドの使い方の解説記事です。
jThree Class Tokyo
jThreeのハンズオンに行って、ハッカソンで全天球画像のビューワーのようなものを作りました。かなり簡単に出来て、とても良い感じ。
OpenSSLを使ってC言語でAES暗号
C言語でOpenSSLを使って、AES暗号の暗号化や復号を試してみました。若干面倒な手間が必要ですが、その分簡単に別のアルゴリズムに切り替えられるようです。
OpenSSLのBIGNUM関連の関数群に関するメモ
C言語/OpenSSLのBIGNUM関連の日本語ドキュメントが極端に少なかったので、必要そうなところだけ和訳したものです。
python3ならintとbytesの変換が楽勝になる
python3.2を使って、バイナリデータとintを相互に変換変換する方法です。
gentooでジャンボフレームを使ってみる
gentoo/OpenRCの環境でジャンボフレームの設定をしてみました。iperfを最適使って最適なMTU値を探して、最後に永続化の設定をしています。
macのtmuxの中でもvimでクリップボードを使いたい
何も考えずにmacportsでインストールしたtmuxの中では、vimのクリップボードが上手く動かないようです。この記事では、macのtmuxの中でもクリップボードを使えるようにします。
bellumなんていうchrome extension作りました
仲間内で夏休みのハッカソンをやって、「bellum」という名前のchrome拡張を作りました。某動画投稿サイト風のチャットを、普通のWebページ上で実現するというものです。
mdadmのRAID5にディスクを追加した
mdadmで作ったRAID5のディスクアレイに新しいHDDを追加する手順の解説です。
tsocks使ってみたらlocal subnetがどうのこうので失敗した
tsocksを使っているときに発生した「xxx.xxx.xxx.xxx is not on a local subnet!」というようなエラーを修正する方法です。
apacheでmod_authz_svnを読み込もうとしたら失敗した
apacheでmod_authz_svgモジュールを読み込む際に発生した「undefined symbol: dav_svn_get_repos_path」という感じのエラーへの対処方法です。
bashのifで正規表現マッチ
bashの組み込みオペレータを使うと、if文で正規表現マッチが出来るようです。実際に試してみました。
pythonのyieldでグリーンスレッド(笑)
pythonのyieldを使って、ものすごく簡易的なグリーンスレッドっぽいものを実装してみました。
Processing触ってみた
教育用(?)のプログラミング言語であるProcessingを使って、お絵かきソフトっぽい何かを作ってみました。
jQueryでタッチパネルを扱う
jQueryでタッチパネルへのタッチイベントを取得して、アニメーションするものを作ってみました。同時タッチ数制限とか無くいくらでも取得出来るようです。
gnuplotでグラフに出す前に計算する
gnuplotの中で、csvから読み取ったデータを計算してからプロットする方法です。
MongoDB起動しようとしたら_S_create_c_localeがどうので起動しない
MongoDBを起動するときに発生する「_S_create_c_locale name not valid」というようなエラーへの対処方法です。
gentooでtimezone-dataとやらをアップデートしようとしたらsymbolic linkがどうので失敗した
gentooの`sys-libs/timezone-data-2014a`を更新しているときに発生する、`Too many levels of symbolic links`というエラーへの対処方法です。
pythonのgeventにAssertionErrorとか言われて詰みかけた話
pythonのgeventで発生する「assert not self.headers_sent」や「TypeError: an integer or string of size 1 is required」とかいうエラーへの対処方法です。
pythonのgeventとやらでwebsocket
pythonのgeventというライブラリを使って、websocketを使ったリアルタイム通信を実装してみました。
sshサーバをプロキシサーバとして使う
OpenSSHにはsocksプロキシとして動作させる機能があるようです。というわけで、実際に試してみました。もの凄く簡単でした。
UNIXソケットとやらをC言語で試してみた。
macやlinuxなんかで使えるUNIXソケットを使った通信をC言語で試してみました。
python3.2以降のlru_cacheが素敵すぎて。
python3.2からfunctoolsモジュールに追加された「lru_cache」というデコレータを使って、関数の引数と戻り値のペアをキャッシュする方法です。
pythonのベンチマーク用モジュールtimeitの使い方と落とし穴。
pythonの標準モジュールの一つである「timeit」というベンチマークツールの使い方の紹介です。
pythonの__setattr__をオーバーライドしてみたら楽しいかもしれない。
pythonの__setattr__をオーバーライドして、クラスの色々な挙動をカスタマイズするという実験をしてみました。
pythonには__getattr__の他に__getattribute__なんてものがあるらしい。
pythonがクラスのメンバを取得する流れと、その仮定で使う`__getattr__`と`__getattribute__`の挙動について調べてみました。
uwsgiでpython動かそうとしたらunrecognized optionって言われた。
nginxとuwsgiを組み合わせてpythonを動かそうとしたところ、「unrecognized option '--wsgi-file'」というエラーが出たので対処方法を調べました。どうやらプラグインが足りなかったようです。
nginxでエラーページが表示されない
nginxを試していたのですが、上手く404ページが表示されずに"200 OK"が返ってきてしまっていました。この問題への対処方法です。
pythonで最大値、最小値を求める色々
pythonでリストやタプルなどなどの中の最大値や最小値を探す方法です。
続:google+はメールアドレスを流出させる(かもしれない)
で、サ変接続とは何なのか。
「サ変接続」というものの解説です。「~される」、「~した」、「~する」、「~せよ」みたいな感じに繋がるもの、らしいです。
google+はメールアドレスを流出させる(かもしれない)
aタグではてなブックマークに追加するためのリンク
HTMLのaタグだけを使ってはてなブックマークに追加するためのリンクの作り方です。
google+の共有ボタンをaタグだけで作る
google+で共有するボタンを、javascriptを使わずにaタグだけでWebサイトに設置する方法です。
apacheで特定のディレクトリ、特定のUAだけ拒否する。
apacheで実行しているWebサーバで、特定のディレクトリに対する特定のユーザーエージェントだけを拒否する方法の解説です。
linuxのmdadmで作ったRAID5を壊したり直したり。
linuxでRAIDを実現するためのツールであるmdadmの使い方の解説です。RAID5環境を構築したり、ディスクを破壊してみて復旧を試みたりしています。
vimでdiffを取る。
vimだけで2つ以上のファイル同士の差分表示をすることが出来たりします。そのやり方の解説です。
jinja2の関数が結構便利でびっくり。
pythonのflaskやdjangoで使われるテンプレートエンジンである「jinja2」のマクロの使い方です。関数のようなイメージで、わりと色々なことが出来ます。
パス末尾のスラッシュを強制するapacheの設定
apacheでディレクトリの最後に必ずスラッシュを付けるように強制する設定の方法です。
ubuntuのpyexiv2を無理やりgentooに移植した話。
pythonのpyexiv2というライブラリをgentooで上手くコンパイル出来なかったので、ubuntuでコンパイルしたものを無理矢理加工して使えるようにしてみました。
pythonのpyexiv2でExifをごにょごにょする
pythonのpyexiv2というモジュールを使ってjpegのExifデータを読み込んだり書き込んだりを試してみました。
PILで縦横比保ったまま画像を縮小
Python/PILで、画像の縦横比を保ったまま画像を小さくする方法です。長辺を指定の長さに合せてくれるます。
pythonでローマ数字を作る
pythonを使って、数値をローマ数字に変換するコードを書いてみました。
PILで保存するときにencoder error -2とか言われた。
Python/PILでプログレッシブJPEGを保存しようとした時に発生する「encoder error -2 when writing image file」というエラーへの対処方法です。
python/tkinterのlabelに貼り付けた画像を消す方法。
Python/tkinterで、一度ラベルに表示させた画像をあとから削除する方法です。
apacheのmod_rewriteでSSL通信を強制する。
Apacheのmod_rewriteモジュールを使って、特定のページ(あるいは全てのページ)でSSL通信を強制させる設定の方法です。
apache2でURLの最後のスラッシュの省略をさせない
Apacheで立てたWebサーバで、ディレクトリ名の末尾のスラッシュを強制するための設定の方法です。
あけまして