しょんぼり技術メモ

まいにちがしょんぼり

Raspberry Piをゴミ除去+キャッシュプロクシサーバにして快適な生活を手にする

エロ広告滅びろ。

というわけで、なんかムラッときてRaspberry Piを買ったのでメモ。

インストール

NOOBSを使う。1.3Gぐらいあるので、偉大なるjaistのミラーからダウンロードするのが良い。http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/images/
その間にSDカードをフォーマットしておく。今回はAmazonで一緒に勧められた東芝の16Gのやつ。SDカードのフォーマットツールで綺麗にしておく。

で、NOOBSのzipを解凍し、中身をSDカードにぶちこんでRaspberry Piにぶちこんで各種ケーブルをぶち込んで電源を接続すれば良い。あとはRaspbianを適当にインストールする。

Squid+Ziproxy+Privoxy

Squid: キャッシュ担当、Ziproxy: コンテンツ圧縮担当、Privoxy: フィルタ・ゴミ除去担当。クライアント側で指定する最初のプロクシはSquidで、そこからZiproxy→Privoxy→The internetに出て行く流れ。

大変分かりやすいこちらのサイトを参考に設定を行う。Raspberry Piだからといって特別なことは何もない。せいぜい、JPEG2000にしたりするのを躊躇う程度。なお、俺は虹裏の画像を綺麗な状態で見たいので、画像処理系は一切無効にしている。Squidにキャッシュさせるのが目的。

Squidについては、とりあえずSDカードの空き領域を使うことを考えてキャッシュサイズを設定すれば良い。

Privoxyについては、こちらのサイトのモノを使ってみている。今後イラッときたら追加していくつもりで。

なお、出先で使うためにはVPNが良い。うちの場合はルータにPPTP/L2TPをやらせているので、特にRaspberry Pi側には入れない。最近オープンソースになったSoftether VPNをRaspberry Piに入れた人もいるようなので、選択肢として大変良いだろう。

【追記】squidのキャッシュをSDカードにしていると、キャッシュ書き込みでSDカードが早死にしそうな気がしたので、そこらへんのUSBメモリを挿してext4パーティションを作って/var/spool/squidを移動した。キャッシュでUSBメモリが早死にしてもシステムは生き残れるので、きっとこの方が良い。
また、privoxyがデフォルトだとGIFアニメを無効化してくれていたので、虹裏では除外するように設定した。default.actionを参照。

MRTG

今の時代はZabbixとかが良いらしいのだが、mrtgがなんか好きなのでこちらを使う。
Raspberry Piに入れる方法については、こちらのページを参照すると大変良い。
また、mrtgを実行するとなんかエラーになるので、こちらのページにあるsedコマンドを叩いて修正すれば良い。

クライアント側

あとはiPhoneiPadで、プロクシの設定を行えば良い。設定すべき対象はSquidのプロクシなので、デフォルトならば3128/tcpを指定する。適当にログを取りながら、不快な広告などをどんどんブロックして、Quality of Lifeを向上させよう。

情報系の道に悩める君へ

ここ最近、いわゆる「情報系」の進路について考える機会がたびたびあったので、曲がりなりにも情報系の進路を選んだ人間としての思いをここに記しておきたい。

情報系の道に進むと言うこと

「情報系の道に進む」と言うことを、ここでは「工業系、特に情報工学情報科学をメインに扱う学科や学部を選択し、勉学に勤しむこと」を指すことにする。早い話が、工業高校の情報科に進んだり、大学の情報ナントカ学部とかに進んだりすることだ。

ここで、「情報系」と呼ぶものは「情報科学」「コンピュータサイエンス」とは似て非なるものであることに注意して欲しい。進路に悩む若者であれば尚更である。
もしあなたが誰かに―おそらくヒゲを生やした不健康そうな男だろう―情報系の進路について相談したとき、「そもそも情報とは」とか「情報理論が」などと言い出したら注意が必要である。あなたはその瞬間のために、次のおまじないを覚えておくべきである。

あなたの言う「情報系」はジャバ、私の考えているものはジャバスクリプト、それぐらい違う

意味は分からなくて良い。ガクシャやケンキュウシャという病気に取り憑かれた人間をおとなしくさせるためのおまじないである。このおまじないを正しく唱えれば、相手は黙るはずである。そうしたら、あなたの描いている未来について話そう。もし黙らなかったら、その人に相談する価値はないので、「コロンキュービックリ」とか「えんいー」と叫びながら逃げ出すと良いだろう。


閑話休題。さて、情報系の道に進もうかどうか悩む人は、おそらく最も合理的な方法、つまり損得勘定で決めようとするだろう。

「情報系の道に進む」ことで何を失い何を得るだろうか。
簡単に言えば、「学校に行っている間の時間の分だけ、他の分野に費やす時間」を失い、「学校に行っている時間の分だけ、情報系の知識や経験を身につけることができる時間」を得る。当たり前の話だけれど、これは極めて重要な事実である*1

では、具体的にどんなことになるのか。例を挙げるならば、イラストレータになりたいけど結局情報系の道を選んだ人間は、イラストレータを目指して情報系の道を選ばなかった人間に比べ、絵を描くことに費やせる時間が減り、イラストレータになりにくくなる。言い換えれば、誰もが共通して持っている「時間」という資源を、ある人は情報系の分野に費やし、ある人は絵を描くことに費やす。その結果が異なって来るであろうことは想像に難くない。時間を投資しなければ、結果は得られないのだ。もちろん、時間を「絵を描くこと」に投資したからと言って、必ずイラストレータになれるわけでもない。

なに、工学系の学生でも小説書いたり音楽作ったりしている奴も居るだろう?ごもっとも。そういった人たちは、「学校に行っている時間」以外の時間を投資しているだけである。彼らは、時間を積極的に投資しているだけである。なにせ、時間という資源は、放っておけば減っていくのだ。

というわけで、「情報系の道に進む」とは、時間という資源を「情報系分野」に投資することを意味する。これは他の分野でも同じ事である。
そこで、他のどんな分野でもなく「情報系分野に投資する」ことについて考えてみたい。

情報系分野に時間を投資すると言うこと

では、情報系分野に時間を投資することで、具体的に何が得られるのだろうか。

簡単に言えば、便利な道具の使い方を覚えることができる。それも、現代においてとても役に立つ道具である。

大工の道を志した人間は、ノコギリやトンカチ、カンナやノミの使い方を学ぶだろう。それによって、木材と道具があれば、いろんなものが作れるようになる。それはきっと楽しい。
情報系の道を志した人間は、ツールやプログラミング言語、ライブラリの使い方を学ぶだろう。それによって、コンピュータとツールがあれば、いろんなものが作れるようになる。これはとても楽しい。

大工の道を志せば、ふと「こんな本立てが欲しい!」と思ったときに、木材を買ってきて加工することで、自分の欲しい本立てを作ることが出来るようになる。
情報系の道を志せば、ふと「こんなソフトが欲しい!」と思ったときに、目の前のパソコンでプログラムを書いたりすることで、自分の欲しいソフトを作ることが出来るようになる。

残念なことに自分は大工の道を志していないので、これ以上のことは書けないのだけれど、道具の使い方を覚えるというのはそういうことである。その道具を使った仕事で生計を立てていくかも知れないし、そうじゃなくても庭に犬小屋を建ててと娘にねだられる日が来るかも知れない。

要は、情報系の道に進むということは、パソコンと言う名の道具の使い方を身につけると言うことである。

情報系の道に進んでも得られないもの

さて、進路に悩む人にとって大事なのは「得られそうだけど得られないもの」だろう。情報系と括ったときには、そのギャップについては枚挙に暇がないほどだと思うが、決定的なものについて述べておきたい。

情報系の道に進んでも、チヤホヤされない。

この事実を受け止めて欲しい。絵を描ける人や音楽を作れる人、料理を作れる人や工作が上手な人に比べて、圧倒的にチヤホヤされない。もちろん、チヤホヤされるようなプログラマやエンジニアも存在するが、これはトップアイドルを目指すようなものなので、圧倒的熱意のある人は頑張って欲しい。私にはトップアイドルをプロデュースするぐらいで十分でした。
情報系においては、チヤホヤされるボーダーラインというか、チヤホヤされるための条件のようなものが厳しいのだ。何せ、ぱっと見、華がない。プログラマならばまだ良いが、ネットワークエンジニアと呼ばれる人たちは、成果が表に出にくい。あなたが普段、水道を支えている技術者に感謝しているかどうかを考えてみれば良い。おそらく、存在すら気に留めたことがないだろう。そういう類いの世界がたくさんある。

情報系の道というと、よく「ゲーム作るの?」と言われるが、彼らが評価するのはゲームの外見であり、プログラムそのものではない。ゲームシステムやストーリ、グラフィックは評価されても、ゲームエンジンが評価されることは稀である。そういうことだ。そもそも、情報系の道に進んでゲーム制作に携わる人間自体が稀である。

段階別・進路に悩むあなたへ

最後に、情報系に進むか悩んでいる人たちや、進んでしまったが悩んでいる人たちに向けてメッセージを送り、筆を置きたい。


小学生のあなたへ。いまできるあそびをせいいっぱいたのしんでください。


中学生のあなたへ。情報系の道に進むと、エロに強くなります。中学の時点で交際相手が見つからなかったら、選択肢として検討してみてください。でも、まだ決断しなくても間に合います。自分が何をしたいのか、チヤホヤされたいのかについて、ゆっくり考えてみてください。


高校生のあなたへ。情報系の道に進むと、ひょっとしたら仕事に役立つ可能性が上がるかも知れません。パソコンが「暇つぶしの道具」以上の何かに見えるなら、選択肢として検討してみてください。何かを作ることが好きな人であれば、楽しめるかも知れません。


情報系を選ばなかった大学生のあなたへ。社会人としてやっていく上で最低限必要な情報系の知識というものを身につけておくと、少しだけ役に立つかも知れません。


情報系を選んだ大学生のあなたへ。あなたは何を作れるようになりましたか?作っていて楽しかったですか?楽しく感じた人で、まだ働きたくなかったら、大学院を検討してみてください。楽しくなかった人は、シャカイに溶け込むために、オフィスを使えるようになっておくと良いでしょう。


情報系修士課程のあなたへ。卒業論文はどうでしたか?研究のなかに楽しい要素は少しでも見つかりましたか?その要素を延ばしていきたいと本当に願うのなら、博士課程を検討してみてください。でも、悩むくらいなら、やめておいた方が良いかも知れません。楽しい要素が見つけられなかった人は、研究という苦痛にして有意義な活動のなかで身につけたものが、今後どのように活かせるかという視点で物事を考えてみると良いと思います。



情報系博士課程のあなたへ。死なないで。




 


 

*1:授業中の内職については考えない。勉学に勤しむこと、を「情報系の道に進む」の定義に盛り込んでいるのはそのためだ

0120-116116に電話しても一向に繋がらないときは、Webから問い合わせをすると良い

タイトルで完結シリーズ。NTTフレッツ光の工事の関係で、0120-116116に電話をしなければならない状態に陥った。しかしかけてみると全然繋がらない。このままでは入居に間に合わず生命存続の危機を迎えてしまう。

そういうときは、NTT東日本 | お問い合わせ一覧 | サポート | フレッツ光から問い合わせれば良いことがわかった。工事に関する問い合わせが「サービスに関するお問い合わせ」になるのかはよくわからないが、事情を説明し、電話が繋がらなくて中指立てている旨をやんわりと書いたところ、少し立ってから連絡先電話番号に電話がかかってきて、あっさり工事日が決まった。

日本電信電話株式会社への電話よりも、インターネットの方が手っ取り早く解決してしまう。なるほど、電話に出ない間、社員総出でこのギャグを披露していたのか。なかなかやるじゃないか。潰れてしまえ。

MacでNFSをexport名と異なるディレクトリ名で自動マウントしたいときはディスクユーティリティを使う

タイトルで完結シリーズ。
NFSで"hoge"というディレクトリをexportしているとき、これを"/path/to/fuga"にマウントしたい場合、ただマウントするだけなら

# mount -t nfs nfsserver.example.com:/path/to/dir /path/to/fuga

で良い。

一方、MacでFinderからマウントするときは、例によって融通が利かなくて/Volumes/hogeにマウントされてしまう。大便をお召し上がりになればよろしいのに。

そんなときは、ディスクユーティリティを使う。何故?などと愚かなことを聞いてはいけない。Macだからだ。
ディスクユーティリティを起動し、メニューの「ファイル>NFSマウント」を選択する。左下の「+」から追加。
リモートNFSのURLに、nfs://nfsserver.example.com:/path/to/dirを設定し、マウント先に /path/to/fuga を設定すれば良い。オプションを付けたければ、▶詳細マウントパラメータ をクリックして開いて、"-o"のあとに設定するような項目を書けば良い。これで自動マウントが有効になる。

追記。-o nfc というオプションをつけないと、UTF8-MACのチンカス仕様(パ→ハ゜みたいなやつ)にハマって、システムからはファイルが存在するように見えるのにアプリからはアクセスできない状態に陥る。素晴らしすぎて下痢が止まらない。

さすがMac OSだ。大便をお召し上がりになればよろしいのに。

Future Home Controller をRubyからいじるラッパを作った

タイトルで完結シリーズ。
Future Home Controller フューチャーホームコントローラーを買ったので、このWeb APIRubyプログラムからいじるためのラッパを書きました。
https://github.com/syonbori/fhc4rubyに置いてあります。

コレを使って、PC上でSinatraなサーバを動かして、タイマーを作ってみました。

これを会話シナリオに突っ込んで、「コンピューター、三分はかって」と呼びかけると3分後に知らせてくれます。

Scientific Linux 6.1でShibboleth SP環境を作る

http://sites.duke.edu/linux/shibboleth/を参考にしつつ、repoファイルは

[shibboleth2]
name=Packages needed for Shibboleth 2.x
baseurl=http://install.linux.duke.edu//pub/linux/shibboleth2/el-6/$basearch
gpgkey=http://download.opensuse.org/repositories/security:/shibboleth/CentOS_5/repodata/repomd.xml.key
gpgcheck=1
enabled=1

こうして、

# yum install shibboleth

でOK。

yyyymmdd形式の日付を含むファイルのうち、欠落している日を探すスクリプト

hoge.yyyymmdd.logのような形式を持つログファイルが大量に手元にあり、そのうち欠落している日を探すという処理が必要になったので、Rubyでちゃちゃっと書きました。
結構あちこちでありそうなケースだと思うんですが、既存のツールの組み合わせで書く方法が思いつかなかったのでRubyで。
Gist: listup the lacking files with date from and date to · GitHub