[python][unix] リダイレクションやパイプの有無を識別する方法

リダイレクションやパイプを使用している場合は読み込み、使用してない場合はヘルプを表示するなど、 切り替えたい場合は次のように書くのがいいのかな。 import os import sys if os.isatty(os.sys.stdin.fileno()): print_usage() sys.exit(1) # 標準入力…

リダイレクションやパイプと、端末の入力を同時に行う方法

お題 リダイレクションやパイプからデータを読み込んだ上で端末の入力を読み込む、 そんなプログラムを書こうとしてはまったので整理。イメージ: $ echo hoge foo bar | ./to_upper_case_and_xxx.py HOGE FOO BAR input: <- 端末からなにか入力この場合、次…

はてなブログはじめました!

それだけ!

[python] CPUのエンディアンを調べる方法

pythonで以下を実行。 import sys print sys.byteorder ビッグエンディアンなら'big'、リトルエンディアンなら'little'と表示される。

Gitでコミットをやり直す方法 (パッチ編)

git

う〜ん、困った。 あるコミットはUTF-8、またあるコミットはEUC-JPでログを書くなんて…。修正しようにも $ git rebase -iでは文字化けてしてまってうまくいかない。ちょっと大げさかもしれないけど、次の方法で修正する。 既存コミットのパッチに書き出す 第…

一般ユーザでscreenが使えない

ServersMan@VPS(CentOS5)で一般ユーザだとscreenが使えない。 Sorry, could not find a PTY.なんて言われちゃいます。一般ユーザで screen が動かない - プログラマ 福重 伸太朗 〜基本へ帰ろう〜によると /dev/ptmxのパーミッションが足りないようだ。 $ ls…

MacBook Air 11インチ欲しい!

めっちゃほしい!

chkconfigの使い方

chkconfigは/etc/init.dに登録されたサービスの自動起動を管理するコマンド。 なんどやっても覚えないのでまとめとく。 サービスの一覧 登録されているサービスを表示するには--listを指定する。(と言っても省略可) サービス毎にどのランレベルで起動するか…

Snow LeopardにしたらMacPortsが動かなくなった

mac

Snow Leopardにしてからportコマンドエラーが出るようになった。 dlopen(/Library/Tcl/macports1.0/MacPorts.dylib, 10): no suitable image found. Did find: /Library/Tcl/macports1.0/MacPorts.dylib: mach-o, but wrong architecture while executing "l…

.ssh/configでサーバを踏み台にする方法

はじめに ログインしたいサーバが直接公開されておらず、別のサーバを経由しないとログインできないことがある。 そんな時はProxyCommandが便利。 やり方 ~/.ssh/configに次のように記述してみよう。 Host honmei-host ProxyCommand ssh fumidai-host nc %h …

vimshellが便利過ぎる件

vim

vimshellとは? vimshellはVimからシェルを起動するVimScript。 ただ起動するだけなら:!コマンドでも足りるけど、こちらは非同期に処理できないので、実行中はVimでコードを書けないとか欠点が多い。 vimshellなら非同期なシェルが使えるし、色分け・補完も…

SQLAlchemyでカラムの値を遅延ロードする方法

どんなO/Rマッパでもそうだと思うけど、モデルを取得すると基本的に全てのカラムから値を取り出そうとする。 1レコードのサイズが少なければ問題にならないが、BLOBのようにサイズの大きなカラムを追加するととたんにパフォーマンスが悪くなってしまう。 SQL…

Gitのリポジトリからファイルをエクスポート

git

svn exportみたいに、ファイルをエクスポートする機能を見つけたのでメモメモ。例: $ git checkout-index -a -f --prefix=export/ -a 履歴管理されているすべてのファイルをエクスポート。省略した場合は明示的にファイルを指定する 例) $ git checkout-ind…

MacのDNSを設定

mac

ハマったのでメモメモ。 Macに自前のDNSを設定しようと、/etc/resolv.confにnameserverを追加してみた。 nameserver 172.16.232.131でも一向に反映されない。digで調べても以前のDNSに問い合わせている。 ネットで調べたところ、Macのresolv.confは仮初めの…

ServersMan@VPS(CentOS5)にPython2.6をインストール

ServersMan@VPS(CentOS5)に入ってるPythonが2.4と古い、今時2.4はキツイよ…。 てなわけでPython2.6を新しくインストールしてみるよ。 zlibをインストール easy_installでzlibが必要になるから、予めzlib-develをインストールしておく。 # sudo yum install z…

Chromeに検索エンジンを追加する

FirefoxにもあるのでChromeにもあるだろうと思いつつも、最近まで調べなかった検索エンジンの追加。 とても簡単なのでまとめとく。 どんな機能? この機能はアドレスバーからの検索で、文字通り任意の検索エンジンを追加できるというもの。 標準ではGoogle検…

Snow LeopardでIMEの切り替えを速くする

mac

以前からMacのIME切り替え時にタイムラグを感じていていたところ #mac 以前からIMEの切り替えに微妙にタイムラグを感じるんだよなぁ。英語 -> 日本語に切り替えてすぐに文字を入力すると英語のままだったり。ATOKだからなのかな。2010-09-19 17:08:24 via Tw…

.ssh/configの書き方

sshを使ってると接続するサーバ毎に、ポートが違ったり秘密鍵が違ったりで引数を切り替えることがよくある。 接続するサーバ毎に指定する引数は決まっているので、よくシェルスクリプトやエイリアスで対処してきたが、.ssh/configを用意すればssh側で面倒み…

SSHで公開鍵認証

SSHで公開鍵認証をするためのまとめ。 公開鍵を作成 $ ssh-keygen -t rsa -t で指定できる暗号化方式には他にdsaやrsa1があるみたいだけど dsaは強度がイマイチ、SSH2を使いたいのでrsaにしとく。(SSH1の場合はrsa1を指定) 実行結果: Generating public/priv…

MySQLでエクスポートとインポート

エンコーディングの設定 まずはDBのエンコーディングを修正。試験管のなかのコード :: MySQL の文字エンコーディング関連設定 を参考に。MySQLの設定ファイルは、Ubuntuであれば/etc/mysql/my.cnfにあるので 次の項目を追加する。 [mysql] default-character…

postgreSQL 8.1.11のシーケンス

sql

postgreSQL 8.1.11では、シーケンスの名前を変更するのに ALTER SEQUENCE (元のシーケンス名) RENAME TO (新しいシーケンス名) と書けない。代わりに ALTER TABLE (元のシーケンス名) RENAME TO (新しいシーケンス名) ならいける。 シーケンスもテーブル扱い…

Ubuntuでflvからmp3を抽出

毎回、忘れて検索するのでメモメモ。 参考にさせてもらったサイトはこちら。 日記/2007-10-27/flv ファイル変換 - BAK インストール 必要なものはffmpegだけ。apt-getでインストール。 # apt-get install ffmpeg 実行 引数は多いけど、コマンド一発叩くだけ…

sshfsをインストール

sshfsって? sshfsっていうのは、sshで接続可能なリモートホストを「マウント」することで FinderやExplorerでローカルファイルのようにアクセス可能にするツールらしい。 もちろん、普通にsshで接続したってアクセスできるんだけど。 それはcdだのlsだのリモ…

zshでsvnコマンドの補完に関する不具合を修正

gentooにインストールしたzshとsubversionで、補完がうまく動作せず、次のようなエラーが出る。 _arguments:comparguments:303: invalid argument: ARGさすが、ファイル名の補完も効かないのは不便です ><。とりあえず、エラーログでググってみたら、既に…

[mac] Macの暗号化

僕は、会社で私物のMacBookを持ち込んで仕事をしている。 そんでもって、そのMacBookを頻繁に家に持ち帰ってもいる。このMacBookには、多少なりと会社関連のファイルが含まれていて 万が一、紛失や盗難が発生するとかなり問題があったりします。そこで、Mac…

[game] 密かにくにおくんが復活してた♪

昔に比べて、絶対的にゲームをやる時間が減ってきた今日この頃だけど、 やっぱり、今でもゲームは大好きです。 そして、一番好きなゲームは何かと聞かれたら、躊躇することなく 「くにおくんシリーズ」をあげると思う。 (シリーズな時点で一つに絞り込めてな…

CPANのモジュールを一括更新

CPANで、モジュールを追加してたらインストールにこけたので、インストール済みのモジュールを更新してみた。 これは、その時のメモ。 古くなったモジュールをリスト表示 # perl -MCPAN -e "CPAN::Shell->r" 古くなったモジュールを一括更新 (再インストール…

リッドクローズドモード

mac

MacBookには、リッドクローズドモードっていうのがある。 これを利用すると、本体の蓋を閉じたまま、外部ディスプレイに画面を表示できるので、ノートなんだけどデスクトップみたいに使うことができる♪ 会社でがっつり作業する時は、やっぱり大きな画面がい…

w3mをインストール

MacPortsからインストールするんで、とっても簡単♪ # sudo port install w3m ついでにw3mの設定で、表示ページをFirefoxで開けるようにしておく。 oで設定画面を開く [外部プログラム] -> [外部ブラウザ]に"open /Applications/Firefox.app"を設定 この設定…

KeyRemap4MacBookをインストールしてみた

KeyRemap4MacBookとは これは Mac OS X 向けのキーボードリマッパーです。 単純なキー配列の変更はもちろん、Emacs モードや SandS (Space and Shift) モードなどの強力なリマップもサポートしています。 http://www.pqrs.org/tekezo/macosx/keyremap4macboo…