2013年4月29日月曜日

/etc/sudoers の編集をミスったとき

/etc/sudoers の syntax erro が起こったら、
どのユーザでも sudo できなくなって危なかった。
以下解決策 (Ubuntu 12.04)


1. Recovery Mode で再起動
再起動中にShift を押し続ける

2. root mode を選択

3. mount -o remount /
で書き込みを可能なように再マウント

4. visudo で編集。

5. resume で戻る

2013年4月21日日曜日

Sublime Text 2 パッケージ

備忘録
All Complete
AutoFileName
ConvertToUTF8
HTML5
HTML Attributes
IMESupport
JavaScript console
Python PEP8 Lint
Sass
SFTP
SVN
IndentGuides
SublimeCodeIntel
jQuery

SSH経由でリモートドライブをマウント [windows]

http://www.eldos.com/sftp-net-drive/download-release.php

激しく便利なフリーソフト。

Windows でsshサーバとのファイルをやりとりしたいときにつかう。
WinSCP とかは専用のウィンドウがたちあがるが、
こちらはネットワークドライブとしてマウントされる。

公開鍵認証にも対応。すばらしい

フリー版には
IPアドレスとかの設定に名前をつけられないという制限があるが、
べつに気にしないならそのまま使用可能

2013年春

* 一回はみた
翠星のガルガンティア
変態王子
カーニヴァル
アザゼルさん
進撃の巨人
むろみさん
ニャル子さん
ハヤテ
アラタカンガタリ
ゆゆ式
ゴルゴ13
あいうら
ダンボール戦記
断裁分離
RDG
フェアリーテイル
はたらく魔王さま
マジェスティックプリンス
フォトカノ
とある科学
デートアライブ
ヴァルブレイヴ
DEVIL SURVIVOR
レヴィアタン
悪の華

* まだみてない
キングダム
ムシブギョー
俺の妹

2013年2月19日火曜日

Python: 多次元 array の argmax

多次元の numpy.array の argmax を求めたい時は以下のようにする。

import numpy
x = [numpy.array object]
numpy.unravel_index(x.argmax(), x.shape)


なぜ?
x.argmax() は、1次元行列に変換した時の位置を返す。
numpy.unravel_index は一次元に変換した時の位置と行列の次元からその行列でいうとどの位置かを計算する。
これらを組み合わせると、もとの行列の何行何列目に最大値があるのかが分かる。

2013年2月14日木曜日

parallel で並列処理

ちょっと必要になったので並列処理してみた。


たとえば、
html ディレクトリ以下のすべての .html 拡張子を持つファイルの行数を表示する。
ただし、行数を表示するたびに1秒待つ (重い処理を想定)


find で処理するためには、よくこんな感じで処理してました。
find html -name "*.html" -printf "wc -l %p; sleep 1" | sh
find コマンドが、以下のようなスクリプトを生成してくれるので、
wc -l html/aaa.html; sleep 1
wc -l html/bbb.html; sleep 2
...
それをパイプで sh に渡します。

短い場合はこれでいいんですが、ファイル数が多いなどの時間がかかる場合は
並列処理したくなります。

そこで parallel.
上と同じことを 10 並列でする場合は、以下のような感じ
parallel -j 10 -i sh -c "wc -l {}; sleep 1" -- `find html -name "*.tex"`
 -- 以下のリストを順番に {} に代入して、並列で実行してくれます。

2013年2月7日木曜日

内輪ネタ

下書き。要推敲



あるコミュニティ内では通じるが、外では語彙 (jargon) とかエピソードのことを
内輪ネタと定義します。

で、自分がそのコミュニティに入ったときから何発話目で
そのコミュニティの内輪ネタを理解し、話せるようになるかというのは
結構いろんなところで役立つんじゃないかと思います。
という話。


早く内輪ネタを理解し、話せるようになる効用は次の通りな気がします。
1. コミュニティに馴染むのが早くなる

2. 内輪ネタの階層化
   その内輪ネタがそのコミュニティ特有なのか、より一般的なのかが分かる。


3. 人の話の理解が早い
   最も小さいコミュニティを個人と定義すると、相手個人の内輪ネタがわかれば
   内容理解にリソースを割ける。

4. 本を読む時の理解が早い


   著者の使う表現や語彙に適応できるので、内容理解にリソースを割ける。

5. 別コミュニティの内輪ネタとの類推が可能
   そのコミュニティの性質がわかるかも。
   受けそうな内輪ネタを作れる。

6. 自分の「常識」が本当は違うことが理解できる
   当然知ってるべき「常識」は単なる内輪ネタだったりするかも




これができるためには、
1. 周りの人の会話から「理解できない語・表現」を見つけ出すこと
2. その語の用法と意味を文脈から理解すること
3. その語がコミュニティで通じているのか否かを判断すること
が必要です。
さらに、できるだけ早く内輪ネタを使い始めるには、
いちいち意味を尋ねることなく会話から判断できたい。
これって、「技術は盗め」という教訓と似ている気がしています。
いちいち教わることなく重要そうなことを抽出して身につける能力だからです。


じゃあどうすればいいか?
わからん。