Home > Latest topics

Latest topics 近況報告

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

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

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

Page 28/241: « 24 25 26 27 28 29 30 31 32 »

「xpcnativewrappers=no」の廃止 - Jun 09, 2010

レガシーな仕組みが1つ廃止されたようだ。

XPCNativeWrapperについては過去に行った拡張機能のセキュリティに関するプレゼンの中でも紹介した。現在も既に、chrome権限があるコードからWebページの内容に触る時は基本的には必ずXPCNativeWrapperを介してアクセスしないといけないようになってるんだけど、そういう仕組みがまだ入ってなかった頃の書き方でも拡張機能を書けるように、敢えてこの仕組みをOFFにするための機能があった。それがchrome.manifestでのxpcnativewrappers=no指定。今回上記のbugで投入されたパッチによって、この指定がそもそも機能しないようになった。

XPCNativeWrapper越しでなく生のJavaScriptのオブジェクトにアクセスする方法としては、xpcnativewrappers=no以外にもう1つ、任意のオブジェクトの.wrappedJSObjectというプロパティを見る方法がある。今回投入されたパッチではこの機能までは削除されていないように見えるので、今までxpcnativewrappers=noを使っていた人は、Webページ内のJavaScriptのオブジェクトにアクセスしてた箇所では.wrappedJSObjectを書き加えるようにすれば一応は動くようになるんじゃないかと思う。セキュリティ的には、そもそもラップされてない生のJSObjectに触らなきゃいけないという設計自体を変えた方がいいんだけど。だいたい、XPCNativeWrapperが入ったのってFirefox 1.5がリリースされるよりも前の話だよ。今なおXPCNativeWrapperの存在を前提にしてないコードって、どんだけ古いのさ?

コマンドラインでのリモート操作に慣れてきた - 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を起動してみようという記事に添えられてた、自分にとってはまるでチンプンカンプンだった「基本コマンド集」みたいな。あの頃は「こんなん見てもわかんねーよ」と思ってたのに、いざ自分が「こっち側」に来てしまうとその時の「駄目なお手本」をそのまま繰り返す事しかできていないという事が、どうしようもなく悲しい。

CygwinのホームディレクトリをWindowsのホームディレクトリにする - Jun 08, 2010

Windows Vista以降では C:\Users\ユーザ名 が、Windows XPでは C:\Documents and Settings\ユーザ名 がホームなんだけど、Cygwinをインストールした時に作られるショートカットから起動したbashでは、ホームが別の位置になってる。Cygwinインストール先のCygwin.batを編集すると、この問題を解消できるようだ。

@echo off

C:
chdir C:\cygwin\bin
set HOME=C:\Users\%USERNAME%
bash --login -i

うちの環境だとこんなん(C:\cygwin以下にCygwinが入ってる)。%USERNAME%と書いておけば現在のユーザのホームディレクトリが勝手に選ばれる。

さくらのレンタルサーバで定期的なバックアップの作成 - Jun 08, 2010

以前やった事の復習で。以下のようなスクリプトを ~/backup.sh として作成した。

#!/bin/sh

BACKUP_DAYS=14
destparentdir=~/backup

# BACKUP_DAYSより古いバックアップは自動消去
find $destparentdir/ -ctime +$BACKUP_DAYS -type d -maxdepth 1 -print0 | xargs -0 rm -r -f

destdir=$destparentdir/`date +%Y-%m-%d_%H-%M-%S`
mkdir $destdir
# vオプションは、試しに実行する時用。
tar cjvf $destdir/www.tar.bz2 ~/www
tar cjvf $destdir/scripts.tar.bz2 ~/*.sh
crontab -l > $destdir/crontab

で、crontabによって定期的に実行するように設定するわけなんだけど、さくらのレンタルサーバの場合サーバコントロールパネルにcron管理用のインターフェースがあって、5個までならここから管理できるみたい。というわけで時々実行するように設定しておいた。

同じ所に置いとくんじゃバックアップとして意味が薄いので、できればそのうちローカルにscpでダウンロードするとかそういう風にしてみたい。

レンタルサーバ借りて何年目かにしてやっとここまで辿り着いたよ!(今までなんもやってなかったという事があり得ないですねハイ)

さくらのレンタルサーバ スタンダードプランでrep2 - Jun 08, 2010

いくつか前例はあるようだ。

僕の契約はスタンダードプランなんだけど、複数ユーザでFreeBSD 7のサーバを共用してる状態で、管理者権限は無い。クライアントはUbuntu 10.04。という前提で。

sshの準備

何はともあれ、まずはリモート操作のための準備を整える。

ssh ユーザ名@ドメイン名

これでsshでログインできるんだけど、いちいちパスワードを訊かれてしまう。なのでsshの公開鍵を置いておくことにした。

  1. 1回、上記の要領でSSHでログインする。
  2. mkdir .ssh
  3. chmod 700 .ssh
  4. vi .ssh/authorized_keys
  5. ローカルにある公開鍵(~/.ssh/id_rsa.pubなど)の内容を貼り付けて、ファイルを保存する。
  6. chmod 600 .ssh/authorized_keys
  7. exit

再度上記の要領でsshでログインを試みると、今度はパスワードを訊かれなくなる。scpも。

rep2設置

  1. p2拡張機能パックの「依存ライブラリ込み」のファイル一式をダウンロードする。今回は rep2ex-100227-0215.7z を使った。
  2. ファイルを展開する。
  3. cd rep2ex-100227-0215-with-deps
  4. tar zcvf rep2.tar.gz rep2 で再圧縮する。
  5. scp ~/rep2.tar.gz ユーザ名@ドメイン名:~/ でサーバに送る。
  6. ssh ユーザ名@ドメイン名:~/ でサーバに入る。
  7. mkdir ~/p2data でWebから見えない位置にデータディレクトリを用意する。
  8. tar zxvf rep2.tar.gz で展開する。
  9. mv rep2 www/ でWebから見える位置に移動。
  10. パーミッションを設定する。
    1. chmod 705 www/rep2
    2. cd www/rep2
    3. find . -name "*.php" -type f -print | xargs chmod 705
  11. vi conf/conf_admin.inc.php で初期設定を変更する。
    • $_conf['data_dir']などで指定しているデータディレクトリの位置を、先程作ったデータディレクトリへのパスに書き換える。 ~/p2data/ にデータディレクトリがあってrep2のindex.phpが ~/www/rep2/index.php にあるという位置関係なら、値は "../../p2data/" になる。
    • どこからでもアクセスを受け付けるようにするなら、 $_conf['secure']['auth_host'] の値を 0 にする。
  12. http://ドメイン名/rep2/index.php にアクセスしてみる。

上記の参考エントリではこれだけでいけるという風に書いてあるんだけど、僕の場合はPHPのエラーで動かなかった。magic_quotes_gpcをOffにしろとかなんとか。

さくらのレンタルサーバのサーバコントロールパネルを見てみると「PHP設定の編集」というのがあったので、ここを見てみたところ、デフォルトの設定に対して必要な設定項目だけ上書き指定できるようだったので、magic_quotes_gpc = Off と記入して保存した。その後再度rep2のページにアクセスしてみた所、今度はちゃんとユーザ登録用のフォームが表示された。

ローカルのrep2のログを引き継ぐ

実はローカルで今までrep2を動かしてたので、そのログや「お気にスレ」などのデータを引き継ぎたかった。ローカルのデータは ~/public_html/rep2/data/ に置いてた、という前提で。

  1. exit (sshでサーバに入ったままなのであれば)
  2. cd ~/public_html/rep2
  3. tar zcvf data.tar.gz data で圧縮する。
  4. scp ~/data.tar.gz ユーザ名@ドメイン名:~/ でサーバに送る。
  5. ssh ユーザ名@ドメイン名:~/ でサーバに入る。
  6. tar zxvf data.tar.gz で展開する。
  7. rm -r p2data
  8. mv data p2data
  9. rm p2data/p2_auth_user.php で古い認証ユーザの設定を削除する。
  10. http://ドメイン名/rep2/index.php にアクセスしてみる。

今まで見てたスレの過去ログが見えるようになっていれば成功。

余談

今回の事で、さくらのレンタルサーバにsshで入る方法を習得した。もう少し色々試したら、定期的にサーバにある内容をまとめて圧縮してバックアップということもできるようになれるかな。なれるといいな。

「幻覚ピカソ」が完結してた→また捨てるに捨てられない本が増えてしまった - Jun 05, 2010

実に綺麗に終わった……最後、泣いた。ぼろぼろ泣いた。僕は、泣いた作品は捨てるに捨てられなくなってしまうので、また本棚のスペースが足りなくなってしまう。

主人公の葉村ヒカリは、根暗で絵ばっかり描いてる高校生。あまりに絵ばっかり描いてるから、あだ名は「ピカソ」。そんなピカソはある日唐突に、大きな事故に巻き込まれてしまう。一緒に事故に巻き込まれた友人・山本千晶は死に、ピカソは生き残った。でも彼が生還したのは、千晶が死の間際に彼の生還を願い、ある事と引き替えにかりそめの命を神から与えられたからだった。ピカソの前に幽霊として急に現れた千晶は、ピカソに言う。「人助けをしなさい、それがピカソが生き続けるための代償」。かくしてピカソは唯一の特技である「絵」を使ってクラスメイト達の心の闇を描き出し、千晶と共に彼らの深層心理に飛び込んで難問を解決していく事になるのだった……

僕が古屋兎丸を知ったのはライチ光クラブだったんだけど、全然違う作風で驚いた。耽美な絵柄で悲劇や残酷劇を描くのがメインの人なのかと思ってたけど、この作品では悩み多い年頃の少年少女の青春をさわやかに描いてる。

登場するキャラクター達は皆悩みを抱えているのだけれども、悩みがこんがらがってて何が「本当の問題」なのか分からないし、どこからこの状況を打破していけばいいのか糸口すらも分からないしで、前に進めず足踏みを強いられている。ピカソと千晶がするのは、こんがらがった悩みをひとつひとつ解きほぐして、糸口を見つける事。そこから先の事、見つけた糸を手放さないでちょっとずつでも問題を解決していくのは、あくまで悩んでいた彼ら自身の仕事だ。

多くのクラスメイト達の手助けをしてきたピカソは、最後にピカソ自身の心の闇と対面させられる。彼自身意識していなかった心の闇に、いよいよ立ち向かわないといけなくなる。彼が抱える闇の正体は何なのか? その闇を取り除くとはどういう事なのか?

後味はほろ苦いけど、そこには希望がある。全3巻、見かけたら読んでみて下さい。

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

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

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

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

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

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

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

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

携帯から送られたメールの中に含まれている絵文字を判別したかった - May 31, 2010

またRailsなんですけど。

携帯端末のメールで絵文字を入力した物を送信して、Railsアプリ(いわゆる勝手サイトにあたるもの)でそれを受信したら何か処理をしたい、っていう場面でどぉぉぉーもうまくいかなくて一日悩んでた。

ActionMailer::Baseを継承した独自のクラス(Mailmanとかそういう名前で定義してる)のMailman.receive()に渡ってきたメールの内容から、絵文字を検出したかった。

class Mailman < ActionMailer::Base
  def receive(mail)
    some_operation(mail.subject)
    some_operation(mail.body)
  end

  def some_operation(string)
    # ここで絵文字を検出したい
  end
end

jpmobileとかMbMailとかが利用できるのかなと思ったんだけど、うまくいかない。DoCoMoの端末から絵文字入りのメールを送っても、絵文字のコードにマッチするはずの正規表現に全然マッチしない。

んで、もっとよく調べてみたら、勝手サイトだからなのか何なのか、DoCoMoのメールサーバからメールが送られる時点で絵文字の情報は完璧に失われるんですね絵文字は全部「〓」に変換されてしまってて、〓の文字コードは(Unicodeだと)0x3013だから、さっきのコード表から作った正規表現にはマッチするわけがない。

まあ、やりたかった事は「絵文字があったらエラーを返す」という事だったので、「〓」が有るか無いかだけ見るというソリューションでだいたい問題なかったんですけれども。(「〓」自体を送信できないという問題は残るけど、こんな文字は普段使わないからその問題は無視する)

1日まるまる無駄にしてしまった……

メールのヘッダに埋め込む用に文字列をBase64エンコードする - May 28, 2010

所用でRuby on Railsのテストケースを書いているのですが、メールを受信してあれこれする処理のテストのためのfixtureを用意するのにいちいちホントにメールを送信してそのソース文字列をコピペするとかそういう事をやってたら面倒すぎたので、Subjectとかのヘッダ部分を簡単に書き換える方法を探した所、Rubyでやるのが早いっぽい事が分かったのですが、忘れそうなのでメモしておきます。

irbを起動して

require "base64"
def encode( str )
  "=?iso-2022-jp?B?" + Base64.encode64( NKF.nkf( '-j --utf8-input', str ) ).chomp + "?="
end

を貼り付ける。後はencode("文字列")でその都度結果を見ればいい。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

もう一度引用する。

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

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

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

Page 28/241: « 24 25 26 27 28 29 30 31 32 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のつぶやき