パスワードを忘れた? アカウント作成

tosihisaさんのトモダチの日記みんなの日記も見てね。 過去1週間(やそれより前)のストーリは、ストーリアーカイブで確認できますよ。

610731 journal

tosihisaの日記: ボーナス 3

日記 by tosihisa
今日支給されました。
で、正直ちょっとガックリでした。

まぁ、これで会社を辞める踏ん切りもつきましたし、
同僚でもある友人K君とも相談して、近々上長に話を
持っていきます。

どうもやっぱり今の勤め先は、「目に見える成果」しか
追いかけてなさそうです。

ただ、辞める時期はちょっと迷い中です。実は、ちょっと
Linux 関係で温めてるネタがあって、出来れば本にして出す
事が出来れば...と思ったりしているものがあります。

で、ボリューム的には、多分1ヶ月しゃにむに頑張れば、
書けなくも無いボリューム(あーでも1ヶ月じゃ苦しいかな...)
ですが、ただ、今更...なネタでもあって、ウケるかどうか
微妙です。enkai も作り上げたいですし。

なので、

(1) ウケるかどうか分からん本など書かずに、とっとと
        次の転職先へ

(2) 有休が20日以上あるので、丸々一月有休で休んで、
        頑張って執筆する。
        ->または、頑張って enkai を完成させる...。

あたりで迷い中です。

まぁでも、いずれにせよ、9月末まで、今の仕事をきちんと
片付けます。
618346 journal

tosihisaの日記: ソフトウェア特許 2

日記 by tosihisa
まだ全然まとまっていませんし、自分自身ですら十分にこの文章を
噛み砕けている訳ではありませんが、自分の手元に置いておくだけ
だと、間違って消してしまう場合もありますので、備忘録として
ココに貼っておきます。

--------------------------------------------------------------------
「ソフトウェアの特許」は悪か?

「ソフトウェアの特許」を悪とする見方は色々あります。

・例1:「割合簡単な」技術に対しても特許が取れてしまう。言ったもん勝
        ち。

  個人的には、「割合簡単」と言う定義が難しいと考えています。

  ソフトウェア特許の古典例としては、「バッキング・ストア特許」と言う
  ものがあります。これは AT&T が特許出願しました。

  「バッキング・ストア」と言うのは、Window-System を設計、実装する上
  で、割合容易に「発想」される手法と呼ばれるもので、要は、表示するウィ
  ンドウの重なりにより、隠れる部分の情報を「丸々」持っておき、ウィン
  ドウの表示状態によって、一々ウィンドウを再表示するのではなく、
  「丸々」持っている隠れた部分のみを表示する方法です。

    Window-1
  +----------+
  |          |
  |    +----------+
  |    |XXXXX     |
  +----|          |
       |          |
       +----------+
         Window-2

  XXXXX で示す部分は、Window-1 の表示部分が、Window-2 により隠されて
  いる事を示しています。「バッキング・ストア」とは、この隠れた部分の
  情報を持っておき、Window-1 が最前面になった時は、Window-1 を全て再
  描画するのではなく、XXXXX で隠された部分だけを再描画する方法です。
  (間違っていたらご指摘ください)

  さて、これは、「割合簡単」でしょうか。確かに想像は難しく無いでしょ
  うし、Web の情報を見るに、AT&T の特許申請よりも前に、MIT がすでに
  開発していたと言う情報もあります。

  確かに、「誰でもすぐに考えつく」事、例えば「痒い後頭部を右手でかく
  手法」は、これは特許にはなり得ないでしょうが、しかし、「割合簡単」
  であるかどうかを、特許を出す側が判断するのは難しいのではないでしょ
  うか。

  例えば、「C言語で、変数 i を、0~7 の間で無限にループさせるプログ
  ラム」を書くとします。

  普通は↓な感じで書くと思います。何を以って「普通」と言うかは難しい
  ですが、私の勤める職場で、C言語勉強会の例題として取り上げると、若
  いプログラマは、ほとんど以下の様なコードを書きました。

  i = 0;
  while(1)
  {
    printf("i = %d\n",i);
    i++;
    if(i >= 8)
      i = 0;
  }

  ここで、if() を使わずに、変数 i を、0~7でループするプログラムを書
  けるでしょうか?

  答えは↓の様になります。他にも解法があるかも知れない(って言うか、
  あります)。

  i = 0;
  while(1)
  {
    printf("i = %d\n",i);
    i = (i++) & 0x07;
  }

  私は、組込み出身なので、この手法は、あまり難しいとは感じないし、リ
  ングバッファを高速作動させるには、上記の手法が必要になります(if()
  では、判断命令とジャンプ命令が生成される場合があります)。しかし、
  AND の算術演算に慣れていないと、この手法は、難しいと感じるかもしれ
  ません。これを、「特許を出す側」が、容易か難しいか(独創性があるか)
  を判断できるでしょうか?

  ちなみに、上記の if() を使わない手法については、勤め先の若いプログ
  ラマは、1時間くらい悩んで答えを出した人もいれば、答えを出せなかっ
  た人もいます。

  また、この辺で難しいのは、「コロンブスの卵」になる場合があります。

  例えば、上記の if() を使わずにループさせる手法を、「あ、こんな手法
  もあるんや...」と感じる人間がいれば、答えを見て、「なーんだ、そん
  なの簡単や...」と思う人間もいるかも知れません。

  「割合簡単」と言われている事でも、「それを初めてやる」のは、実際簡
  単な事ではない場合があります。答えを言われてはじめて、「そんな簡単
  な事...」と思う場面もしばしばあります。

  「特許」は、その作用として「公開」があります。その「公開」された技
  法を見て、「そんなん誰でも思いつくって」と言うのは、個人的には、
  「コロンブスの卵」ではないかと考える時があります。

  もちろん、「バッキング・ストア特許」は、AT&T が特許を取る前に、MIT
  ですでに同じものが実装されたと言うのがあり、これは(MITから見た場合
  は)「コロンブスの卵」にはならないが、「特許」を批判する前に、自分
  の批判が「コロンブスの卵」になっていないか、注意しなければならない
  と考えます。

・例2:私は誰でもが自由に制限無く使用できるフリーソフトウェアを書い
        ています。で、私の頭で考え、実装したルーチンが、実は特許に引っ
        かかっていました...。

  これは難しい。偶然にも「再発明」してしまいました。

  自分が書いたコード(ルーチン)が、「再発明」にあたらないかを調べるの
  は、実に難しい。これが企業レベルでの話であり、その企業に知財部と言っ
  た専門の部門があれば、その部門と調整すれば調べる事も出来るだろうが、
  フリーソフトウェアのほとんどは、個人(ないし利益的背景を持たない任
  意の集まり)が開発している事が多く、自分の書いたコードが「再発明」
  にならないか調べる事は不可能に近いです。

  なぜ、「再発明」を調べる事は不可能に近いのでしょうか。それは、「関
  連特許が多すぎる」事がその理由の一つにあります。

  Xerox のコピー機1台の中に含まれる特許は、数百件にのぼるらしいです
  (正確な数を知っている方のフォローを望みます)。また、例えば、今は電
  子文書は、Acrobat(PDF)形式でやり取りする事が多いですが、Acrobat
  Reader には、どれだけの特許が含まれているでしょうか。

  もし、MS-Windows 上で動作する、Acrobat Reader を持っているなら、起
  動画面に出てくる特許の数を数えてみると良いかも知れません。その特許
  を全て回避して、Acrobat Reader 互換ソフトウェアを開発できるでしょ
  うか。

  「特許の問題」の側面として、「関連特許が多い」事が挙げられます。
  「関連特許」とは、主軸になる技術に関係するもの全てを特許出願し、少
  しでも自分の技術を守る事です。

  皮肉な話かもしれませんが、「特許」の適用範囲は、「同一のもの」に限
  られる(はず)。従って、「痒い後頭部を右手でかく方法」が特許になって
  も、「左手でかく」のは、出願されていないならば、特許侵害にあたらな
  い(はず)。従って、「痒い後頭部を右手でかく方法」を特許出願するなら
  ば、「左手でかく方法」も出願しないと効果が薄れ、結局、「右手でかく
  方法」「左手でかく方法」「右足でかく方法」「左足でかく方法」と、
  「特許だらけ」になってしまうのです。

  Xerox がコピー機の開発において取得した特許の数は、意図的に仕組まれ
  ている事もあるでしょうが、それだけ「がんじがらめ」にしないと、主軸
  となる技術を守る事が出来ないと言う面もあるのではないでしょうか。

  考えてみれば、「特許」と言うものは、数でカバーしないと守れない「脆
  弱」な部分を持っているのかも知れません。なぜなら、それは「公(おお
  やけ)」のものになり、逆を言えば、「類似品」を作るチャンスを与える
  からです(新たに何かを創造するより、すでにある何かをベースに似たも
  のを作る方が楽なはず)。

---------------------------------------------------------------------

「料理の特許」

聞いた話によると、コカコーラや、ケンタッキーフライドチキンは、その製
法を特許にせず、「門外不出」のものにしているらしいです。

考えてみると分かるが、「特許を取る」場合は、その作用として「内容を公
開する」事があります。

別段、コカコーラやケンタッキーフライドチキンの製法を「公開」し、「特
許を取る」のは、不思議な話ではありません。類似商品が出回るなら訴えれ
ばよいのです。が、もし製法が「公開」されると、ご家庭でも(作ろうと思
えば)作れる事になり、各家庭で同じものが出来るなら、わざわざ買いに足
を運ぶ事もなくなり、結果としてコカコーラやケンタッキーは、自分の首
(売り上げ)をしめる事になります。さすがに各家庭の日曜日のおやつに出て
きた自家製コカコーラを訴えて回るのは苦しい。

------------------------------------------------------------------------------

* 特許制度が存在しなければ、技術の進歩は無いのか?

  例えば、蒸気機関を発明したワットは、自分の発明に対して特許出願しま
  したが、避雷針を発明したフランクリンは、特許に対して否定的だった様
  です。

  [参考URL]
  http://www.hkd.meti.go.jp/hokig/student/j02/watt.html
  http://kengo.preston-net.com/archives/000741.shtml

  個人的には、特許制度がある事で、さらに技術が進んだ事があると考えて
  いますが、しかし、特許制度が無ければ、技術の進歩が止まる事も無いと
  考えています。

  「必要は発明の母」の諺にあるように、「発明」にする事において重要な
  のは「必要」であって、「特許」では無いと考えています。特許は、発明
  の結果につくものなのですから。

  特許があろうと無かろうと、「必要な発明」は生み出されていくものでは
  無いかと考えています。

648776 journal

tosihisaの日記: GPLの効力

日記 by tosihisa

ちと遅くなってしまいましたが、この辺とか。

http://japan.cnet.com/news/ent/story/0,2000047623,20062500,00.htm
http://pcweb.mycom.co.jp/news/2003/12/08/28.html

中々、興味深いです。特に、GPLなソフトウェアを、単に使っただけの場合、
GPLに合意したとは見なせない部分があると言うのは、確かにそうかも...で
すが、かなりビックリな部分です。

もし、そうであれば、例えば

(1) fugahoge_syssync って言う、とても便利なネットワーク間でのシステ
        ム同期システムが GPL で配布されている。
(2) あまりに出来が良くて、あまり改変される事も無く、みんなそのまま
        (改変無しに)使っている。
(3) そんなある日、fugahoge_syssync にセキュリティホールが見つかって、
        リモートでシステムの中身が覗けてしまう。
(4) 何とか穴を塞ぎたいが、開発者は本業が忙しくて、対応が遅くなってい
        る。

ってな場合、最悪開発者は、「不法行為責任」で訴えられる...って感じで
しょうか。

思えば、GPL の根底にあるものは、私の認識が正しければ、「ソフトウェア
を自由に共有しあえる事」がその根底にある訳で、「(GPLソフトを)改変し
たら、改変したあんたは GPL に合意したと見なすよ」とあるのは、ものす
ごく納得いきますし、それは、「単に使うだけ」の人も含まれるだろう...
と(勝手に)解釈していましたが、どうもそうでは無さそうです。

個人的には、およそ自由に利用できるソフトウェアは、作者の「善意」で配
布されていると考えていますので、例えそれにセキュリティホールがあった
としても、それで作者を訴えるつもりはありません。

が、今のご時世、「うちの会社に発注すれば、安くWebサーバー出来ますよ」
と言ってGPLソフトウェア使いまくって稼ぐ会社もある訳で、で、セキュリ
ティホールで損害が出たら、ソフトの作者を訴える...と言うのは、それが
現実であるとしても、少々酷な気がします。

この辺は、やはり啓蒙活動しか無いのでしょうか。

最近、Linux 界隈において思うのは、やれ Apache の設定だとか、postfix
の設定だとか、Linux で簡単にサーバーを立てる本が良く目立ちます。

その割には、GPL についてきちんと述べている本が、あまりに少ない様な気
がします。

私は、Linux を使うより前に、gcc に代表される様な GPL ソフトのお世話
になっていました。また、「Think GNU」と言う本を知り、なぜ GNU と言う
ものがあるのか?、なぜ、GPL が出来たのかを、割合早期に知る事が出来ま
したが、今のご時世、「Think GNU」の様な本が少ないな...と思う事があり
ます。
(決して無い訳ではありません。が、数として少ないと感じています)

もちろん、個人的には、GPL の根底にあるものを他人に「押し付ける」つも
りはありません。が、GPL ソフトウェアを使う限りは、出来ればその根底に
あるものは理解を...と思う時があります。

とは言え、GPL は「ライセンス」で、個人的には一種の契約と思っています。
で、「契約」である限りは、主張したい事は全て「明文化」しないと話が進
まないですし、個人的には、今の GPL(v2)も、そろそろ時代に合わせて進化
すべきなのかなと思い始めています。

いずれにせよ、世知辛い世の中だなぁ...と思う事しきりです。

651374 journal

tosihisaの日記: ダメだなぁ。 7

日記 by tosihisa
メールの整理をしてて、昔のメールを読んで、如何に皆さんに
迷惑かけまくりかを、改めて思い知る...。うぅ。皆さんすみません...。

#やっぱ転職しようか。でも、転職先でも忙しかったら、今とあまり
#変わらない...。
672227 journal

tosihisaの日記: 今更 VisualC++ 1

日記 by tosihisa
今更?ながら、Visual C++ の勉強なぞはじめてみました。

まぁ、理由は、「やっぱ Linux だけじゃ(知識として)ダメかな」って言うのも
あるのですが、それ以上には、後輩の育成をするんなら、C(Java)だけじゃダメ
だろうしなという感じです。
#出来れば「口だけ上司」にはなりたくないし...。

んで、Visual C++ で、Win アプリを書き始めた、率直な感想としては、

                    うーん、結構ラクに(Win アプリが)組めるな

って感じですね。

とはいえ、始めたばかりなんで、まだ何ともですけど...。
359390 journal

tosihisaの日記: VAIO に Plamo を入れてみる。

日記 by tosihisa
Slackware 7 with 半自力JE で使っていた VAIO PCG-C1R に、
Plamo を入れました。

PCG-C1R は、何せ Pentium MMX 266MHZ ですから、KDE とか
Moziila とかを走らせると、もう重くて重くて...なので、今は、
fvwm2 と Opera7 for Linux を使う事にしました。

この日記は、Plamo & fvwm & Opera & canna & kinput2 な
環境で書いています。結構使えそう...。
673415 journal

tosihisaの日記: 「背中」を押してあげる人 1

日記 by tosihisa
/.-J でかなり長いスレッドになっていますが、「ひきこもり」って、難しいですね。

正直、私は、少なくとも小学校2年の時から、ある意味「社会に出る事」を強要されたので、「ひきこもる」余裕はありませんでした。

私の父親は、プレハブ解体工、いわゆる土方でした。で、私が記憶している限り、始めて私が「何か社会的な仕事をした」記憶があるのは、小学2年の時に、父親に連れられ、プレハブ解体の手伝いをした事です。その時、プレハブの鉄骨が上から落ちてきた(で、水道管に直撃した事)を今でも覚えています。

その後、二十歳になり、小さいソフト屋に就職するまで、土日や、夏休み、冬休み、春休みは、ずっとプレハブ解体の手伝いをしていました。半ば強制的に。

ですので、未だに、年少時代の夏休みの思い出は、「あの時どこそこの現場に行って、鉄骨が落ちてきた(または、釘を踏み抜いた)」って言う思い出がほとんどです。

友人と遊んだ思い出より、父親に(半ば強制的に)現場に連れられ、脱水症状寸前まで汗とドロにまみれてボルトを外していた事の方が多かったです。

反抗期の頃、私もやはり父親に反発していた時期がありました。
遊びたい盛りに、半ば強制的に現場に連れられ、仕事をしなければならない。おまけに、年齢を偽らなければならないと言う事に。
#中学時代(14歳の時)、私は18歳と偽って土方工事をしていました。

でも、何と言うか、父親が他界した今にして思えば、問答無用で「社会」に引っ張り出された事があるから、今の私があるんじゃないかな...と思っています。

もし、父親が、強制的にでも私を「社会」に出さなかったら、今の私は無いのかも知れません。もしかすると、「社会」に出る事を躊躇し、ひきこもっていたかも知れません。

そういう経緯から、個人的に思うのは、「ひきこもり」をされている人は、ちょっとした(社会に出る)タイミングを掴めないんじゃないかなと思っています。多分、ですけど、ひきこもりたくてひきこもっている訳ではないんだろうと。

で、多分、「自分の背中を押してくれる人」を欲しがっているんじゃないかなぁと。

各種メディアで見聞きした範疇では、親が、子供の自主性?を尊重して、ひきこもっていても何もしないと言う親御さんがいらっしゃるようです。

でも、子供を社会的に自立させるのは、やっぱ親の仕事で、時には、タタイテでも出させないといけないんじゃないかな?と思っています。

私は、結婚はしていますが子供はいません。ですので、親の気持ちは、正直まだ分かりません。が、もし子供が生まれ、「社会」に出る事を躊躇しているようなら、自信はどこにもありませんけれど、その「背中を押してあげる」のは、最終的には、親(自分)の務めじゃないかなぁと思っています。

真意は分かりませんが...。
685070 journal

tosihisaの日記: オブジェクト指向言語とデバイスドライバの実装 1

日記 by tosihisa
最近、Java でプログラムを書きつつ、思うのですが、
Java の様な、「オブジェクト指向」言語と、よくある
「デバイスドライバ」が、よく似ている事に気付きました。

「デバイスドライバ」を作る場合、OS の仕様にもよりけり
ですが、概ね、以下のインターフェースが存在します。

・open() - デバイスを(あるプロセスに対して)使用可能にする。
・read() - デバイスからデータを読む。
・write() - デバイスにデータを書く。
・close() - (あるプロセスが)それ以上デバイスを使わない様に通知。

もちろん、これら以外のインターフェースもありますが、
OS は、汎用的であるために、標準的なデータ送受信の口
(インターフェース)を定義しています。

例えば、パラレルポートと、シリアルポートでは、データ
の送受信方法は、全然異なりますが、でも、基本的に、
open() でそのデバイスを使う事を明示し、read()/write() で
読み書きして、close() でデバイスを使わない事を明示します。

で、そのインターフェースに従っていれば、実際の動作は、
各ドライバの仕様にまかせられ、OS はインターフェース以上の
ものに関しては、原則的に関与しません。

これは、考えてみれば、そのまま、Java での、クラス間
でのデータの受け渡しインターフェースに合致します。

でも、うーん...。これが「オブジェクト指向」なのかと
言うと、何か少し違う様な気もしますね。

「オブジェクト指向」理解への道のりは、まだ遠そうです。
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...