Home > Latest topics

Latest topics 近況報告

たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。

萌えるふぉくす子さんだば子本制作プロジェクトの動向はもえじら組ブログで。

宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

Page 9/77: « 5 6 7 8 9 10 11 12 13 »

職場環境 - Oct 02, 2010

最近、僕は「自分って幸せだなあ」と思うことが多いです。このエントリでは、仕事の面におけるその理由を考えてみたいと思います。

さて、僕は今の職場環境が気に入っている。給与面で自分は不満を感じていないし、空気も好きだ。要するに幸せだと、自分の主観では思ってる。

須藤さん(現社長)は就活?の時にGoogleやはてなを見学して、ブースに区切られた上でヘッドホンまでしてるような環境を見て「こういう所では働きたくないなあ」と思ったらしい。

僕は最初はその話に正直ピンと来なかったんだけど、分からない事や知らない事で困った時に「教えて」と気軽に訊きあったり、変数名の付け方に困った時や機能の切り分け方・設計方針に迷った時に「どっちがイイと思います?」とアドバイスを求めたり、作業内容と全然関係無いどうでもいい話(本当にどうでもいい話)をしたり、というのが当たり前(会議の時だけそうするんじゃなくて、常時そう。だから栃木にオフィスを開設するにあたっても、テレビ会議のシステムを常時動かしっぱなしにしておいて、画面の向こうに向かって「ちょっと、池添さーん」と呼びかけられるようにしておこう、という風な話になった。)の今の職場環境に慣れてくると(東京に来てから結構長い間お客さんの所に半常駐だった時期があって、クリアコードの方にずっといるようになったのは途中からだった。半常駐だった所は個々人のブースが別れていたし、ヘッドホンしてる人もいて、どちらかというと前述のGoogleに近い感じだったんじゃないかなと思う)、須藤さんの言っていたことがどういう事だったのかが、なんとなくこういう事なのかなあ、という感じで分かってきたような気がする。

端的に言うと、今の自分が「個々人の席がブースで区切られてて、ヘッドホンで耳を塞いでる人もいたりして」という環境に放り込まれて「仕事をしろ」と言われた時に、やっていける自信がない。精神的負荷で潰れるとかじゃなくて(それもあるかもしれないけど)、自分にはそれでは何もできないんじゃないかって思う。IP unreachableな環境に置かれた時に、GoogleもWikipediaもMDNMXRも何も無い環境では右も左も分からないよ!という風な感じで。

須藤さんや池添さんはよく、「自分達は間違いをどうしても犯してしまう残念な人達なんだから、間違いが起こったり、一人ではうまく行かなかったりする前提でいた方がいい」という感じの事を言っている。だから、リポジトリへのコミットの単位は短くするし、自動テストも書く。1人だと煮詰まるから、些細な事でも相談する。2人でも煮詰まるから、相談してる人同士の横から割り込んで意見を言ったり言われたりもする。僕はずっと、そういう環境で自分の残念な部分を他の人に大いに補ってもらいながら作業していて、そのおかげで自分の能力以上の成果(=会社にとっての売り上げ)が出てきたと思っているから、今更1人でやれと言われても心細くて仕方がない。

Googleのような職場環境は「他人に頼るより自分でやった方が早い」とか「他人と関わらずに1人でやった方が能率が上がる」とかそういうタイプの人でなければ、少なくとも、自分がそういうタイプだと自信を持っている人でなければ生きていけない環境なんじゃないのかなーと思う。学者タイプとか研究者タイプとか。誰にも邪魔されずに作業することで最高のパフォーマンスを発揮して素晴らしい製品を生み出す、という人のための環境なんじゃないのかと思う。

翻って自分は、残念な人間だ。物覚えは悪いし知らないことだらけだし頭の回転も遅いし発想力もない。だから独創的な製品を生み出すことはできないと思う。できるのは、自分の中から湧き出てくる物でお金を儲けることではなく、自分が知ってる複数の世界の間の非対称性を埋めることで労働の対価を得る事だけだと思ってる。

この辺の話を見ても、僕は(この1点だけを見たら)elm200氏よりも小飼弾氏の話の方にシンパシーを感じる。

自分が今いる環境に順応した結果としてそう思うようになって、自分が今いる環境に対して問答無用で快感を感じるように自分の精神構造が自己調整された結果だ、という事も考えられるんだけど、とりあえず今は、「自分は元々そういう性質の人間だった」「それにピッタリ上手くハマる環境に収まることができた」という事だと考えておこうと思う。そう考えていた方が自分の主観的には幸せでいられるので。

あ。僕がこう思ってるからって、弊社の他の人がどう思ってるかは分かりませんよ。当たり前ですけど。

あと、このエントリの主題は僕1人のトピックとしては「僕は今いる環境が好きです、Googleはイヤです」だけど、一般化すると「人は自分に合った環境にいることが幸せなのだ、世間で素晴らしいとされている環境が誰にとってもフィットするというわけではないのだ」という話だと僕は思っております。

デフォルメが下手なのは、見る目が無いって事なんだよね、何事に対しても。 - Oct 02, 2010

ちびキャラっていうんですか? なんて言うのが妥当なんだろう、まあ、デフォルメされたキャラクターのこと。

4コママンガとか描く時って、コマが小さいじゃないすか。だからリアルな頭身のキャラクターだと描きにくい。デフォルメされたキャラクターにせざるを得なくなる。商品のPOPに描く時もそんな感じ。だけどそういう時の自分の絵が嫌いで嫌いで仕方ない。そういう時のデフォルメされたキャラクターをかわいらしく描ける人が羨ましくて仕方がない。昔から。

この2つを見て瞬間的に、R-Styleの方には嫌悪感を覚えた。ねんぷちの方は素直に「可愛いなあ」と思うのに。それは何故なんだろう、という事を考えたんだけど、なんとなく上記の話による同族嫌悪なんじゃないかなあと思った。

R-Styleの商品写真の唯(センターで黒いタイツはいてるキャラ)の脚がエロいと思うんですよ。僕がデフォルメされたキャラクターを描こうとしてもやっぱり脚をエロく描いてしまうと思うんですよ。エロい脚を描こうと思うとこのくらいの頭身が限界になるんじゃないかと思う。少なくとも僕の表現力ではそう。これ以上頭身が下がった状態で、僕にできる表現で脚をエロくすると、多分すごく変になる。だから頭身をこれ以上下げられない。

じゃあエロくしなきゃイイじゃん、って話ですよ。特定の特徴を強調してそれ以外の情報を省くのが「デフォルメ」なんだから、「かわいさ」を強調したいならそれ以外は省けばいいわけですよ。理屈ではそう。でも僕にはそれができないのですよ。

「かわいいもの」を描かなければいけないのに、「かわいさ」以外の要素をそぎ落とさなければならないのに、エロいものへの欲求を捨てることができない。その結果、「かわいい」以外の余計な物である「エロい」の臭いをプンプン漂わせたイヤな絵になってしまう。デフォルメの過程で「可愛い」以外のディティールを省こうとしてそこに「エロさ」が残ってしまったから、「かわいい」だけでなく「エロい」まで無駄に強調されてしまう。なんとグロテスクなんだろう。僕は僕が描いたデフォルメ絵を見るとそう感じずにはいられない。

思えば僕は昔から、余計な物を省くのが苦手だった。特徴を抜き出してそれ以外のディティールを省くのがコツである所の「似顔絵」というジャンルも、陰影を強調して影の中のディティールを真っ黒に塗りつぶしてしまうような絵も、昔から僕にはできていなかった。

絵以外でもそうだ。部屋の中には「今は使ってないけど、いつか使うかもしれないし……」という物がどんどん増えていくし、プログラムを作ればあれもこれもと詰め込みたがるし、味噌汁を作ればあれもこれもと野菜をブチ込みたがる。取捨選択ができないんだ。何が大事で何が大事でないのかが分からないんだ。物事の要点がどこにあるかが分かってないんだ。審美眼のない、焦点がぼやけた、とてもつまらない人間だと自分で思う。

センスが無いんだよね。一言で言うと。

僕がアサノさんのことを「すげえなあ」と思うのも、このへんが大きな理由なんじゃないかなと思う。

愚行権 - Aug 07, 2010

ロボット工学三原則っていうのがある。

  • 第一条 ロボットは人間に危害を加えてはならない。また、その危険を看過することによって、人間に危害を及ぼしてはならない。
  • 第二条 ロボットは人間にあたえられた命令に服従しなければならない。ただし、あたえられた命令が、第一条に反する場合は、この限りでない。
  • 第三条 ロボットは、前掲第一条および第二条に反するおそれのないかぎり、自己をまもらなければならない。

リンク先にも書いてあるけど、これは平易に言い直せば「何より安全で、それでいて便利で、できれば丈夫で」ということだ。この優先順位は非常に重要で、便利さのために安全性を犠牲にしてはならないし、丈夫さのために便利さを犠牲にしても(本来求められている要件を満たさないような物になってしまっても)いけない。ロボットだけでなく道具一般を作る時にも言える事だ。

ただ、これを厳密に守っているとできない事というのは当然出てくる。例えば、人を殺すロボットというのは作れない事になる。これは、ロボット工学三原則がまとめられた背景の1つに「ロボットが人を殺すんじゃないかという恐怖を払拭するため」という目的があるから、その目的においては願ったり適ったりなんだけど。しかし、この三原則が出てくる小説の中でも「人間が敢えて危険を冒す必要がある作業をしようとして、ロボットが止めに入ってしまうので作業が進まない」というジレンマが出てくる。多分、スタントマンみたいな事や、新薬の臨床試験なんかは、できないことになる。

人命とか安全性とかとトレードオフでしか得られない物を、どうしても得たい。という人の行動を正当化するのが、愚行権という言葉だ。僕も愚行権をよく行使しているという自覚がある。本当だったらちゃんと栄養バランスを考えた食事を取らないといけないんだろうけど、やる気がないから晩ご飯はお菓子だけで済ませてしまおう、とか。

ただ、そういうトレードオフな選択をできるのは、あくまで自分の事だけなんだよね。自分と同じくらい(あるいはそれ以上)に判断力のある相手に「君もそうするかい?」と訊く事はできても、「お前もそうしろ」と押しつける事はできない。「君もそうするかい?」と訊いた後に、相手が「俺もそうしよう」と同じ行動を取る事を選ぶか、それとも自身の考えに基づいて拒否して「俺はちゃんと野菜食べたいから、コンビニ行ってサラダ買ってくるわ」と別の行動を取るか、その選択は相手に委ねる事になる。

お互いがそういう風に自己決定権を尊重し発動しあえるという前提があるからこそ、他人同士というのはうまくやっていけるものなのだと、僕は思う。他人から自己決定権を奪うような事は、原則としてしてはいけないと思っている。相手にも自分にも自己決定権があるからこそ、「みんな好きなようにやればいいと思うよ」と僕は言える。

問題は、本当にその決定が正当な物なのか?ということだ。

自己決定権の行使には、正確な判断材料が欠かせない。「めんどくさいなあ、お菓子で晩ご飯済ませちゃおうかな」という考えの決定には、「きちんとした食事を準備するのはめんどくさい」とか「お菓子だけ食べてると栄養バランスが偏る」とか「栄養バランスが大事」とか、いろんな情報が必要だ。諸々の情報を勘案して「それでも敢えてこの選択を取ろう」と判断したからこそ、その判断は自己決定権の行使として意味がある。「お菓子を食べると健康にいいんだよ、お菓子だけ食べてれば健康になれるんだよ」なんて間違った情報を吹き込まれてしまって、それに大きな影響を受けて下してしまった判断は、正当で意味のある判断と言えるのかどうか?

また、判断のエンジン自体も正しくないといけない。「何十年と先に起こり得るリスクと、今のこの一瞬の快楽とを天秤にかけて、敢えて今の快楽を取ろう」と判断するからこそ、その判断には意味がある。「将来って何? そんな事より、みんな毎日お菓子食べてるから僕もお菓子食べたい!!!!!!! お菓子おいしい!!!!!!」みたいな短絡的思考しかできないのだとしたら、慎重に考える事もできるけど敢えて短絡的になってみたのではなく、慎重に考えるという事がそもそもできないのだとしたら、その判断は、正当で意味のある判断と言えるのかどうか?

安全でないことをやることを他人に促して決意させるなら、その決定は、正しい情報と確かな判断力に基づいて行われていなくてはならない。正しい情報も提供できない、判断力を持っている事も確かめられないなら、危ないことはできないように設計しておくべき。そういう設計ができないのなら、そもそもそういうシステム自体を提供しないべき。そういう考え方が重要なのではないかと僕は思う。

話は変わるけど、そういう事を考え出して、子供を持つのは自分には無理なんじゃないか? とか、子供を持つというのは恐ろしい、とか、そういう風な事をふと思った。

だって、右も左も分からない、自己決定権を行使できるとはまだまだ言えない子供の人生を、自分が預かる事になるんですよ。自分一人の事なら、愚行権を気楽に行使できる。でも相手のことだとそうは言えない。特にその相手が、自分のしている事の良し悪しすらもよく分かっていないのなら。「子供の自主的な判断に任せてますから」と言って何も手を出さなければ、子供はただただ素直に自分にとっての快楽を追求して、お菓子ばっかり食べたりどっかの女を孕ませたりどっかの男に孕まされたり犯罪を犯したり、とにかく何でも馬鹿なことをするだろう(僕は性悪説の立場なのでそう考えてる)。

かといって、「子供に判断力なんか無いんだから」と何もかもを親が代わりに決めてしまうわけにもいかない。その「子供」が「大人」になる機会自体を潰してしまう、自分一人では何も決められない「大きな子供」に育ってしまうかもしれないし、あるいは、「自分のしたいことを何もさせてもらえない」というストレスで心を病んで不幸な人生を送らせてしまうかもしれない。

なんかもうその点だけで、世の人の親というのは尊敬に値するんじゃないかとすら思える。全くの放任でもなく、全くのがんじがらめでもない。完全に相手に委ねるのでもなく、完全に自分が判断を代行するのでもない。中間を行ったり来たりしながら最適なバランスで接する、そんなことを世の人の親はみんなやってるのか!?と思うと、うわー自分にはそんなこと無理だ、としか思えない。(そして実際、そうできなくてグダグダになった挙げ句、親子で万引きだとか自分で何も考えられない頭空っぽな大人だとか、そういうのが出てくるんだと思う。)

Windows 7のVirtualStoreに泣かされた - Jul 29, 2010

「C:\Program Files\foo\bar\hoge.txt」という位置にあるファイルを読み込んで処理するアプリケーションを開発していて、テストって事でhoge.txtを書き換えてみたのに、アプリケーションの方でhoge.txtを読み込んでみると、書き換える前の内容が返ってくるんですよ。え、このhoge.txtじゃなくて別の位置のhoge.txtを読みに行っちゃってるの? と思って「C:\Program Files\foo\bar\hoge.txt」を消してみると、「ファイルが見つかりません」ってエラーになるんですよね。だから見に行ってるのは確かにこのファイルで間違いないはずなのに。

僕は普段秀丸エディタを使ってるんですが、秀丸エディタって、書き込み権限が無いファイルを開くと「読み込み専用」って表示されて閲覧だけの状態になるんですよね。でも今回のhoge.txtはそうなってないから、ちゃんと書き換えも保存もできてるんですよ。一回秀丸エディタのウィンドウを閉じて、もう一度「C:\Program Files\foo\bar\hoge.txt」を開くと、さっき保存した時の内容になってるんで、書き込みに失敗したというわけでもない。なのに、自作のアプリで「C:\Program Files\foo\bar\hoge.txt」を開くと、秀丸エディタで書き換える前の内容が返ってくる。他にも同じ現象が起こってる人がいるみたいだし。何なんですかこれは?

……結論から言うと、犯人はWindows Vista以降で導入されたVirtualStoreという仕組みでした。

Windows Vista以降ではファイルに対して書き込みができない時に、「書き込めませんでした」というエラーを出す代わりに「C:\Users\ユーザ名\AppData\Local\VirtualStore」っていうフォルダの中にファイルを書き出すアプリケーションがあるみたいなんですね。今回は秀丸エディタがそうだったんですけど。実際、「C:\Users\ユーザ名\AppData\Local\VirtualStor\Program Files\foo\bar\hoge.txt」を見たら、さっき書き換えたはずの内容でhoge.txtが存在していました。

で、この状態で秀丸エディタで「C:\Program Files\foo\bar\hoge.txt」を開こうとすると、Windowsが「C:\Users\ユーザ名\AppData\Local\VirtualStor\Program Files\foo\bar\hoge.txt」の内容を返すみたいなんですよ。これはWindowsのファイル入出力の仕組みが透過的にやっていることらしくて、秀丸から見た時のファイルの位置はあくまで「C:\Program Files\foo\bar\hoge.txt」のままであるというのがポイント。で、この時メモ帳などの別のアプリケーションから「C:\Program Files\foo\bar\hoge.txt」を開くと、今度はVirtualStoreの方ではなく「C:\Program Files\foo\bar\hoge.txt」の実体の方が返される。その結果、「秀丸エディタとメモ帳でそれぞれ同じファイルを開いてるはずなのに、実際に見えてる内容が違う」という現象が起こる。

しかも最悪なことに、どうやら一回この状態に嵌ってしまうともうお手上げのようで、それ以後は秀丸ではVirtualStoreの方のファイルにしかアクセスできないんですよね。参った。もうVirtualStoreを全部消してしまいたい位なんですけど、VirtualStoreを見てみると他にもいろんなファイルが存在してるので、同じようにVirtualStoreの方の内容が返ってきてるお陰で正しく動作しているという状態のアプリケーションが他にもあるんだったら、不用意にVirtualStoreを消してしまうと大変なことになりかねないので消すわけにもいかない。

「コントロールパネル」→「管理ツール」→「ローカル セキュリティ ポリシー」で「セキュリティの設定」→「ローカル ポリシー」→「セキュリティ オプション」→「ユーザー アカウント制御:各ユーザの場所へのファイルまたはレジストリの書き込みエラーを仮想化する」を「無効」にするとVirtualStoreを無効にできるようなので、クリーンな環境でWindows VistaやWindows 7を使い始める時は、無効にしとくといいような気がします。本来できないはずの事をユーザに気取らせずにやろうとするから無理が生じるのであって、システムファイルをいじれるのは管理者権限がある人だけというルールを徹底していれば、無駄な混乱はしなくて済むのです。LinuxとかBSDとか、そういうものですし。

追記。付いたコメントの中に、僕の目には「Program Files以下にあるファイルをわざわざユーザが書き換えなきゃいけないという仕様が今の時代にはそもそもあり得ないでしょ。技術レベルの低い無能な似非プログラマがWindowsの仕様に逆ギレとか、まったく自業自得のくせに滑稽極まりないし。プププのプー」と言っているように見える物がいくつかあったけれども、Firefoxでいえばapplication.iniにあたるような、そう頻繁に書き換える訳じゃないけど可変のパラメータを外部ファイルで定義できるようにしておくためのファイルをいじってテストしてた時に遭遇した話なので、結構イラッとしました。


2019年4月25日追記。Windows 10になった今もVirtualStoreは仕組みとして存在し続けているのですが、さすがにこの時代になるとVirtualStoreのトラップに引っかかるアプリの方が時代後れでしょと言っていいような感じで、秀丸エディタも64bit版を使えばこの問題にハマらずに済むようになりました。よかったよかった。

ヒステリーとか癇癪とか - Jul 13, 2010

癇癪を起こした事がない人、というのもいるんですね。というかもしかして、癇癪を起こした事がある人の方が割合的には少なかったりするんでしょうか? 僕は小さい頃から良く癇癪を起こす子だったと思うので、自分基準で考えてしまいますが、世間基準だと僕みたいなのは珍しい方なんですかね。

安い煽りにすぐ乗せられてしまう。嫌味を言われたらカチンと来て、何か言い返さないと気が済まない。我慢ができない。自分がいいと思った物の価値を他人が認めていないとイライラする。何で僕チンの思い通りにお前らは動かないんだよ!!!と考える。そういうのの行き着く先にある、頭の中が真っ白になってしまって理屈で物を考えられなくなって、それまでは「しょうがない」と思って我慢できていたはずの事でも我慢できなくなって噴出してきて、息が荒くなって、顔を真っ赤にして、歯を食いしばって、何か言いたいんだけど、でも思っている事の中身を言葉にする事ができなくて、だから何も言葉が出てこなくて、「フゥーッ!!!! フーッ!!!! ヒゥーッ!!! ヒグゥーッ!!!! ヒゥーッ!!!!」と過呼吸になる。

そういうタイプの人間なんですよね僕は。普段の生活で今はそういうのが出てくるような機会がほとんど無いけれども、強いストレスがかかるとたまに、そういう方向に転がり落ちそうになる。

発達障害とか精神病とか知恵遅れとかそういう奴なんだと思いますよ。日常生活で支障のない範囲、にギリギリ収まっているというだけで。「お前ごときが障害者を名乗るのはおこがましい」「お前ごときのようなありふれた人間が、自分は特別だと思いたいばかりに障害者を自称するから、本当の障害者が肩身の狭い思いをさせられるんだ。恥を知れ恥を。」等々、言いたい人は言えばいいと思いますが。

一昨日くらいですかね。そういう酷い癇癪を起こす夢を見たんですよ。この僕チンを裏切ったな!!!!!みたいな感じの、ひどく幼稚で自己中心的な理屈で癇癪を起こすという夢を。目が覚めた時にはリアルに過呼吸になってました。ああ、すっかり忘れていたけれどもこれが僕の本性なんだよなあ、という事を改めて意識しました。

障害児の第1子がいる状態で第2子を産むかどうかって話をたまたま読んで、なおのこと暗い気分になる今日この頃です。

商業誌とWebマンガ - Jun 20, 2010

Web連載漫画の真実の魔法少女が、だいぶ前に連載終了してた事を今頃知った。理由は、商業誌で連載するためらしい。

「再編集版として」とのことなので、もう一度最初から描き直すのと続きを描くのとを同時には進められないという単純な人的リソースの問題が大きいんだろうなとは思うけど、続きが気になって読んでた身としては、残念だ。多分自分は、連載誌を買ってまで読もうとはしないだろう(基本的にコミックス派だし)。

こんな感じで読まなくなる人の数と、商業連載を改めて追う人の数と、掲載誌の元からの読者の数との計算。Web連載を人に見られる=アクセスカウンタが回るという事により得られる自己満足と、商業連載によって得られる原稿料+何より大きな「商業誌で連載してる」「プロの『漫画家』をやれてる」という自己満足の大きさとの比較。そういった諸々を考慮に入れて、この作者の人はWebではなく紙媒体の方を選んだのだろう。ただの一読者である自分が意見するような資格はないし、意見するつもりもない。

僕が思ったのは、仮に(このリンク先のWeb漫画の作者に限らず、「マンガを描く人」一般という意味での)作者の目的が岸部露伴のような「読者に読んでもらうこと」であったとしたら、紙媒体での商業連載という選択はこれから先Web連載に比べてどれだけ優位であり得るんだろうか? という事だ。

もちろん、週刊少年ジャンプのようなメジャー誌ならそっちの方が圧倒的に優位なのは間違いないと思う。あと「複数作品の同時連載」というスタイルであるが故に、看板作品目当ての読者に「お、この新連載なかなかイイね」という感じで目を付けて貰いやすいというメリットもある。編集者が付く事で、もしその編集者が有能な人であれば、作品がもっと良くなっていく可能性があるというのもメリットだと思う。

でも、マイナー誌で部数が少なくて、看板作品の読者層が自作の読者層と重なっていなくて、編集者もノータッチだったりあるいは元の良さをスポイルするような口出しばかりをされたり、という風な感じだったら、紙媒体の商業連載のメリットはなくなってしまうんじゃないだろうか。

そんな風に考えるのは、僕が天気予報もニュースもWebでしか見ないWeb中心の生活の逸般人だからなんですかね?

追記。「仮に作者の目的が~であったとしたら」って書いてあるのに「じゃあそれだったらまず同人誌がなくなるよね」とかツッコんでる人がいたけど、上に書いたような目的以外の目的を持っているなら同人誌でも商業誌でもそれぞれに価値があるだろう、という事まではこのエントリでは全く否定していないので、何故そこにツッコむのかがよく分からないです。

さくらのレンタルサーバでvimとbashとscreen - Jun 09, 2010

さくらのレンタルサーバ(スタンダードプラン)は初期状態ではこんな風になってた。

  • シェルはcsh
  • viは多分普通のvi(vimではなく)

Ubuntuのコンソールとの違いに戸惑う事が多くなりそうだったので、人に教えてもらって、以下のように設定してみる事にした。

  • ログインしたらシェルはbashになるように。
  • viと打ったらvimが起動するように。
  • gnomeターミナルみたいに複数のセッションを切り替えられるように。(GNU Screen)

シェルをbashに

トレンドはzshらしいけどよくわからんからbashで。

ここにある通りやったらできた。

  1. chsh -s /usr/local/bin/bash でパスワード入力を求められるのでパスワードを入れる。
  2. vi ~/.bash_profile でログイン後に実行される初期設定を編集する。内容はとりあえず以下。
    if [ -f ~/.bashrc ]; then
      source ~/.bashrc
    fi

これで、bash起動と同時に ~/.bashrc が読まれるようになる。~/.bashrc はこの段階ではまだ空。

vimのインストール

ここの指示通りにやったらできた。

  1. ソースをダウンロードする。
  2. 展開する。
    • tar jxvf vim-7.0.tar.bz2
    • tar zxvf vim-7.0-extra.tar.gz
    • tar zxvf vim-7.0-lang.tar.gz
  3. vim70というディレクトリの中にすべてのソースが展開されているので、その中に入って作業する。 cd vim70
  4. パッチを当てる。
    1. mkdir patches
    2. cd patches
    3. ftp://ftp.vim.org/pub/vim/patches/7.0/を見て一番新しいパッチの番号を調べる。僕がやった時は243だった。
    4. curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.0/7.0.[001-さっき調べた最後のパッチの番号]' ですべてのパッチをダウンロードする。
    5. cd ..
    6. cat patches/7.0.* | patch -p0 ですべてのパッチを当てる。
  5. configureしてmakeしてinstallする。
    1. ./configure --enable-multibyte --enable-xim --enable-fontset --with-features=big --prefix=~/opt/vim インストール先としてhome以下を指定すること。僕は特に意味もなくopt以下にしてますが。
    2. make && make install
  6. 文字エンコーディングを自動認識するための設定を ~/.vimrc に書き加える。

これで、 ~/opt/vim/bin/vim でvimを起動できるようになった。

screenのインストール

UbuntuでGnome使ってるとGnomeのターミナルで新しいタブを開いて並行して作業するということができるけど、「sshで入った先」ではタブを開けない。タブを開くと、手元のマシンの方の新しいセッションになってしまう。

「sshで入った先」でもそういう事ができるようにしとくと便利だよと言われたので、GNU Screenという物を入れてみた。sshでログインする先のマシンにこれが入っていれば、ログイン先で「タブを開く」みたいな事ができるようになる。でもさくらのレンタルサーバのFreeBSDには入ってなかったので、これも自分で入れないといけない。

ここの指示通りにやったらできた(同じとこばっか参照してる)。

  1. ソースをダウンロードする。 wget ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-4.0.3.tar.gz
  2. 展開する。 tar xzf screen-4.0.3.tar.gz
  3. screen-4.0.3というディレクトリができるので、その中に入って作業する。 cd screen-4.0.3
  4. configureしてmakeしてinstallする。
    1. ./configure --prefix=~/opt/screen インストール先としてhome以下を指定すること。
    2. make && make install

これで、 ~/opt/screen/bin/screen でscreenを起動できるようになった。

設定まとめ

~/.bash_profile はこうなった。後半部分は、ログインしたら勝手にscreenを起動するようにするための物。

if [ -f ~/.bashrc ]; then
  source ~/.bashrc
fi

if [ $TERM != "screen" ]; then
 exec screen -S main -xRR
fi

~/.bashrc はこうなった。

export LANG=ja_JP.UTF-8 # 日本語で。

PATH=$PATH:~/opt/vim/bin # vimにパスを通す。
PATH=$PATH:~/opt/screen/bin # screenにパスを通す。
export PATH

alias vi='vim' # viと打ったらvimを起動する。

~/.screenrc はこうなった。教えてくれた人の言われるままにコピペしただけ。画面の一番下の行を使って、今どのプロセスを見てるのかを常時表示するようにしてある。(これがないと今自分で何をやってるのかさっぱり分からない)

defencoding utf8
hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"
  • Gnome端末で言う所の「新しいタブを開く」:Ctrl-A→c
  • Gnome端末で言う所の「タブを閉じる」:exit
  • Gnome端末で言う所の「右のタブへ移動」:Ctrl-A→n
  • Gnome端末で言う所の「左のタブへ移動」:Ctrl-A→p
  • screenから一時的に抜ける:Ctrl-A→d

使いこなせてるとはとても言いがたいけど、とりあえずここから始めようという感じです。

Cygwin……

CygwinのOpenSSHから接続してると、なんかscreenが変なことになった。PuTTYで接続した場合は何ともない。これ、Cygwinが悪いのか誰が悪いのか……とりあえずWindowsからやる時はPuTTYの方を使う事にしようと思います。

追記。GnomeのターミナルからやったらCygwinの時みたいに変な事にはなってない……みたい。やっぱりCygwinが悪いのかなー。

コマンドラインでのリモート操作に慣れてきた - Jun 08, 2010

右も左も分からないままああだこうだやってるうちに、ちょっとずつだけど、コマンドラインからリモートであれこれ操作する事に慣れてきた気がする。

  • 操作が効かなくなったらとりあえず Ctrl+C で強制終了する。Ctrl+Z も試してみる。
    • それでも駄目なら(別セッションで) ps aux | grep 反応しなくなったプロセスの名前 でプロセスのIDを調べて kill 調べたプロセスID でプロセスを強制終了させる。
  • ファイルの中身をとりあえず見たい時は less ファイルのパス で見れて、q で終了できる。
  • ファイルの中身を編集したい時は vi ファイルのパス でエディタ起動して、i を1回押してから必要な所を書き換えて ESC:wqEnter で上書き保存&終了できる。
  • 向こうで何かサーバを立ち上げててその動作を確認したいという時は、 ssh -L こっちの入り口のポート番号:向こう側のホスト名またはIPアドレス:向こう側の出口のポート番号 ユーザ名@sshで接続するホスト名またはIPアドレス でこっちと向こうを繋げられる(sshポートフォワード、あるいはトンネル)。リモートでApacheを立ち上げてて、手元で動いてるFirefoxで表示確認をしたい時は、ssh -L 8080:localhost:80 piro@host という風にすれば、手元のFirefoxで http://localhost:8080/ とやればリモートのApacheにアクセスできる。

とかそういうのが分かって、いざというときもとりあえずどうにかできるという気がしてきたから。

でもbashとかirbとかtelnetとか、終了する時のコマンドがquitだったりexitだったりと統一されてないのはまだ戸惑う。

こうやって書き出してみるとスゲー陳腐だ。10年以上前に月刊ASCIIの付録CD-ROMでTurbo Linuxを起動してみようという記事に添えられてた、自分にとってはまるでチンプンカンプンだった「基本コマンド集」みたいな。あの頃は「こんなん見てもわかんねーよ」と思ってたのに、いざ自分が「こっち側」に来てしまうとその時の「駄目なお手本」をそのまま繰り返す事しかできていないという事が、どうしようもなく悲しい。

勉強会ってそもそも何のためにやるんだろ - Jun 03, 2010

勉強会って何なんだろう。何のためにあるんだろう。という事が、考えれば考えるほど分からなくなってくる。

僕がWeb標準に傾倒してたりMozillaの拡張機能開発に持てる限りの時間をつぎ込んだりしてた時は、そもそもそれらをテーマにしたイベント自体が存在していなかったか、存在していても僕はそれを知らなかった。知識を得たかったらソースコードや英語の原典に当たるしか無くて、ノウハウを得たかったら自分で試してみるしか無くて、同じ事に興味を持ってる人同士で集まって勉強会を開くというのは想像もできなかった。技術的な向上は、人と会ってする物という認識があまりない。

だから、僕にとってMozillaのイベント(当時で言えばMozilla Party)とかは、知識や経験を得るための場というよりも、お祭りのような意味合いの方が強かった。Shibuya.jsもそうだった。行って何を得て帰ってくるかではなくて、行く事自体が目的だった気がする。

大阪から新幹線なり夜行バスなりで時間とお金をかけて東京にまで出かけて、長くても1日とかそのくらいだけ滞在して、帰ってくる。その過程で技術的な物を手に入れる事はあまり考えてなかった気がする。それだったら、大学の必修の講義を受けた後の有り余ってる時間で調べたり試したりした方が効率いいじゃんって思ってたんじゃないかと思う。

話を聞きに行きたかったというよりも、同じ事に興味がある人と会う機会が欲しかったんだと思う。だから懇親会には必ず参加するようにしてるし、そっちの方が自分にとっては重大事という気がする。この間テスト駆動開発の勉強会の後で懇親会に出れなかったのはとても残念だった。

勉強会的な物に全く意味が無い、とは思わない。JSDeferredのコードリーディングやテスト駆動開発の実習のように、コードと向き合う時間がある物は自分にとっては得る物が多かったと思う。こういう事こそまさに、実際に集まってやらなきゃできない物なんじゃないかと思う。逆に、「前に講師が一人立って淡々とプレゼンして大勢の聴講者がそれを聞くだけ」というスタイルの物は、極論すれば別に実際に集まってやらなくたっていいんじゃないのと思う。そういうスタイルでやる意味があるのは、Shibuya.jsとかジョジョ勉強会とかのように、その場の空気を共有する事に意味がある物くらいなんじゃないかって思う。

まあ、世に多数ある一般的な「勉強会」にはほとんど参加した事がない人間だから、そう思うのかもしれないんですけど。

フリーソフト作者の自衛のための手段としてのオープンソース化と、自衛のための「寄付は受け付けないよ」 - May 16, 2010

夜フクロウというMac OS X用のメジャーなTwitterクライアントがあるんだけど、夜フクロウのアップデートに伴って、作者のポリシーによって一部の機能が削除されたというか使い方が制限されるようになったそうだ。それに対して、その機能を使っていたユーザが「なんで機能を削除したんだ」「作者の横暴だ」「作者にはユーザの要望に応える義務がある」「作者の思想を押しつけるな」といった発言を作者に対して行ったそうだ。

以前、僕はこんな事を書いた。

あなたが使いたい物がどこにもないのなら、あなたが自分で作るしかない。使いたい物があっても作る気が無いのなら、誰にも文句は言えない。作る気がなくても使いたいのなら、賃金なり労力なりのコストを負担するのが当然。あなたのためにタダで働いてくれる都合のいい奴隷は、そうそういない。いまあなたがタダで利益を得られているとしたら、他の人がその人自身のためにやったことのおすそ分けを貰っているからにすぎない。おすそ分けが少ないぞと文句を言う権利はあなたにはあるけれども、それに応じる義務は誰にも無い。なんでおすそ分けをもっとよこさないんだ、と不満を述べる姿はただ滑稽なだけだ。

この辺の僕の認識は今もずっと変わっていない。

しかし作者がどう考えていようとも、「お客様は神さまだろゴルァ!!!」と横暴な物言いをするユーザは出てくるし、「ちょっとくらい耳を傾けてくれてもいいのに」と言って結局は全面的に要求が受け入れられるまでいつまでもしつこく食い下がるユーザも出てくる。それは避けられない。

でも、そういう声に毎日のように晒されてウンザリしてやる気を削がれたり、強迫観念に囚われて精神を病んでしまったりすることは、避けられると思う。自作のソフトウェアをオープンソースなライセンスのもとで公開するのは、そのための自衛の手段として有効なんじゃないかと僕は結構本気で思ってる。

フリーソフトウェア(※ここではストールマンが言う所の自由なソフトウェアの事)やオープンソースの考え方がどういう理由で出てきたかは、この際どうでもいい。重要なのは、「嫌ならフォーク(元のプロジェクトと袂を分かち、別プロジェクトとして分岐・継続すること)してよ」と言えるようになるという点だ。

こういう声を受けてストレスを感じる人というのは、多分、責任感が強いとかマジメだとか、そういう気質を持ってるんだと思う。だからこそ、要望が寄せられると「自分がやらなきゃいけない」と感じて抱え込んでしまうんじゃないだろうか。

クローズドソースだと、まさに文字通り「自分がやらなきゃ誰もできない」ので言い訳ができない。要望に応えないことを選ぶ場合、それに対する責めに真っ正面から立ち向かわないといけない。精神力が強くないとやってらんない。

でも、オープンソースにしておけば、言い訳ができる。自分がやらなくても、他の誰かがソースコードに手を加えて実現することが、理屈の上では可能なのだから。自分一人で抱え込まなくてもよくなる。

あるいは、「どうしてもやりたいんだったら自分でやってくれ」と言うこともできる。僕はよく、そういう言い方をしてると思う。自分自身が、他の人の作った拡張機能が動かなくなったのを見よう見まねで改造して動くように修正した、という所からアドオン開発のキャリアがスタートしているから、実感を持ってそう言ってる。やる気と時間さえあれば多分できるはず、本気でそれが必要なんだったら何が何でもやるはずだ、そう思ってる。こうなると、その機能がいつまで経っても実現されないのは、「僕のせい」ではなく「自分でやろうとしないその人のせい」になる。

相手がどう思おうとどうでもいい、とにかく自分の中でそういう理屈で言い訳ができるって事が大事なんだと思う。

同じ理由で僕は、Mozilla Add-onsの寄付募集機能も使わないようにしてる。

AMOでは、作者が設定しさえすればPayPal経由で寄付を受け取れるようになっている。ちょっと前にそういう機能が付いた。機能を使ってる人もちょっとずつ増えていってるみたいだ。でも僕は今の所、寄付機能を使って寄付を募るつもりはない。

何故かというと、「金払ってるんだから言う事を聞けよ」って言われるストレスに晒されたくないからだ。「いい物にはお金を払いたい、だから寄付したいんだ」と言われたらそれはそれで嬉しい。でも、金と一緒に「そしてお金を払ったんだからこっちの言う事を聞いて欲しい」という要求がくっついてくるんだったら(「寄付」のためのシステムを「対価を払うため」に使われるんだったら)、金は受け取りたくない。受け取らない代わりに自由でいさせて欲しい。

というか、相手がそう言っていなくても多分自分の中で「金を受け取っておいて無視するのか?」という声が聞こえてくるだろうと思う。金を受け取っていなければ、「別に、応えなきゃいけない義理はないんだし」という言い訳をしやすい。相手に対してというよりも、自分自身に対して、そう言い聞かせやすくなる。

アドウェア(広告を表示する機能をくっつけて公開することで、費用を広告収入でまかなうという配布形態)にしないのもこの理由が大きい。まあ、広告を入れる余地がどこにもないという設計上の理由もあるんだけど。

確かにソースを公開しないでいれば、競合相手が登場しにくくなって、名声を独り占めできるかもしれない。確かに寄付を募れば、お金が手に入るかもしれない。でも、何かを得るためには何かを失わないといけない。自由な時間、自分自身からも追い立てられることのない気楽な状態、そういう物が代わりに失われる。それに耐えられない脆弱な神経しか持ち合わせていないので、僕は、地位名声の独り占めも寄付金も諦めることにした。僕は、気楽な方がいい。ストレスに追い立てられながらこなすのは、生きるために避けられない仕事だけでいい。生きるために必要でない余暇のことにおいてまで、ストレスに追い立てられなくてはならない道理はない。

このエントリを見て阿久根市長みたいだなと言う人もいるようだ。

阿久根市長がどういう事を言ってるのか逐一ウォッチしてる訳じゃないからちゃんと把握してないんだけど、「自分でやれ」「嫌ならフォークしろ」とかそういう言い方が該当するんだろうか。それとも、作者が暴君のように振る舞う限りは作者自身は気楽だけど、その分のストレスは善良なユーザにしわ寄せが行ってるということだろうか。

僕は、善意のソフトウェア作者に精神を病んで欲しくない。フリーソフト作者(※言うまでもないけど、ここでは自由ソフトウェアではなく無料ソフトウェアの方ね)の中に一定数いるであろう「便利な物を作ってみたから、みんなもどうぞー」という素朴な善意でソフトウェアを公開している気のいいあんちゃんが、たかり体質の人間にまとわりつかれて疲弊して潰れる姿は、見たくない。だからこのエントリは、そういう人に自衛のための手段を紹介するという点にフォーカスして書いたつもり。

たかり体質の人は、「それが当然だ」という理由を尤もらしい言葉で強い語調で語る。だから気が弱い気のいいあんちゃんはうっかり「もしかしたら本当にそうなのかな」って思ってしまうかもしれない。

もう一度引用する。

あなたが使いたい物がどこにもないのなら、あなたが自分で作るしかない。使いたい物があっても作る気が無いのなら、誰にも文句は言えない。作る気がなくても使いたいのなら、賃金なり労力なりのコストを負担するのが当然。あなたのためにタダで働いてくれる都合のいい奴隷は、そうそういない。いまあなたがタダで利益を得られているとしたら、他の人がその人自身のためにやったことのおすそ分けを貰っているからにすぎない。おすそ分けが少ないぞと文句を言う権利はあなたにはあるけれども、それに応じる義務は誰にも無い。なんでおすそ分けをもっとよこさないんだ、と不満を述べる姿はただ滑稽なだけだ。

ユーザからの要望に応えることが作者自身にとっても当たり前になってくると、そもそもなんで要望に応えなきゃいけないの?という事が分からなくなってくる。自分で自分をがんじがらめにして、「要望に応えなきゃ」というプレッシャーだけが一人歩きしてしまう。

だから、思い返してみて欲しい。何故自分がそれを始めたのか、そして、何故それを続けているのかを。あなたは、エンドユーザの奴隷になるためにソフトウェアの公開を始めたのか? 違うだろう。

Page 9/77: « 5 6 7 8 9 10 11 12 13 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき