内容に「C」を含む
171〜180件目 / 224件
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 次へ

 GPL解説vol.3―フリーソフトウェアとコピーレフト― / マルパチ 

どうもマルパチです。
前回前々回の記事が長くなりすぎたので今回はあっさりいきたいと思います。題して「GPL(=General Public License)ライセンスソフトウェアを使うと何ができて何ができないのか。」

GPLライセンスのソフトウェアはフリーソフトウェアです。
ここで気をつけなければならないのはフリーソフトウェアはフリーソフトではないということ。言葉は似ていますが両者の間には大きな違いがあります。
フリーソフトは「タダで」使用することができるソフトウェアのことです。使用が認められているに過ぎないので、フリーソフトの著作権者は必ずしもソースコードを開示しません。使用する分にはソースコードは不要だからです。
一方フリーソフトウェアは「自由に」使用・研究・改変ができるソフトウェアを意味します。自由な研究、自由な改変のためにはソースコードが必要不可欠ですよね。ですからフリーソフトウェアはソースコードが開示されます。

さらに「フリーソフトウェアの完全なコピー」及び「改変されたフリーソフトウェア」は自由に再配布することができます。ただし再配布する場合はGPLの要求する条件に従わなければならないので注意が必要です。
その条件を以下に説明します。

「フリーソフトウェアの完全なコピー」は4つの条件を守れば、ソースコード形式で再配布できます。ソースコードをコンパイルしたものはそもそも「フリーソフトウェアの完全なコピー」ではないので4条件を守っただけでは再配布できません(GPLv3第4条1パラグラフ)。注意してください。

4つの条件とは①適切な著作権告知を全てのコピーに目立つように発行すること、②GPLが適用される旨・GPLv3第7条に基づく非許可条項が適用される旨の全ての告知を完全に保持すること、③無保証である旨の全ての告知を完全に保持すること、④GPLのコピーを全ての受取人に提供すること。→GPLv3第4条1パラグラフ
①の「適切な著作権告知(appropriate copyright notice)」というのがわかりにくいと思います。これはつまりフリーソフトウェアの元々の著作権告知をそのままにしておけ、変更するなという意味です。第1回で説明したようにソースコードの著作権者は作成者です。作成者の手による著作権告知を勝手に変えてしまうのはダメだということですね。
②の「GPLv3第7条に基づく非許可条項」というのは著作権者が付け加えたGPLの要求する条件をさらに厳しくする追加条件のことです。逆に言えば著作権者が付け加えたGPLの要求する条件を緩和する追加条件はあなたの判断で削除することができるのです。
③の「保証がない旨の全ての告知」とはソースコードにコメントされている"WITHOUT ANY WARRANTY"または"ABSOLUTELY NO WARRANTY"の記載のことですね。GPLの作成者であるGNUプロジェクトはソースコードにこの文句をコメントすることを推奨しています。もちろんあなたが勝手に削除することなど出来ません。→参考リンク
気づいた方もおられるかと思いますが、これらの条件の中には「再配布は無償でなければならない」とは書かれていません。それどころかGPLは再配布を有償で行ってもよいとはっきり書いています(GPLv3第4条2パラグラフ)。早い話がお金を取っても良いということです。GPLソフトウェアがフリーソフトではなく「フリーソフトウェア」であるという所以です。

さて次は「改変されたフリーソフトウェア」を再配布する条件について説明したいところですが…
あっさりいくとか言ったのに全然あっさりしてないじゃないか!!
自分の見立ての甘さにがっかりしました。てなわけで次回に続く!


ちょっと補足です。
ここで問題になるのがあなたが受け取ったGPLソフトウェアが最初からコンパイルされたオブジェクトコードを含んでいた場合です。オブジェクトコードを再配布したい場合には別途GPLv3第6条の条件が課されるのですが…。
オブジェクトコードとGPLの関係についてはまた別に記事を書きたいと思います。

2010/01/12(Tue) 14:54:49

 GPL解説vol.2.5―GPLリンク集― / マルパチ 

自分用もかねてGPL(=General Public License)のお役立ちリンク集を作ってみます。

GNU General Public License
GPLの正文が読みたいときはここです。

GNU一般公衆利用許諾書
独立行政法人情報処理推進機構によるGPLの日本語訳です。ただしあくまで「GPL正文を日本語に訳したもの」であって「GPL正文」ではありません。ですから法的にはなんの意味もない文書ともいえます。しかし良くできた日本語訳なのでGPLの参考教材として使えます。

Frequently Asked Questions about the GNU Licenses
(GNU GPLに関して良く聞かれる質問)
GNUプロジェクトによるGPLのQ&A集です。GPL作成者による公式のQ&A集なのでGPLの文言解釈に迷ったときは真っ先に見ます。

GNU GPLv3逐条解説書
独立行政法人情報処理推進機構によるGPLのコンメンタール(逐条解説)です。日本語で書かれていますし何より情報量が多いので教科書として使えます。

また気が向いたときに随時リンクを追加していくつもりです。
2010/01/11(Mon) 12:38:33

 scripty2 / magicien 

いつのまにかbisonの疑問が解決されているっ!
法律屋さんが身近にいると心強いですな。
要望...ってほどじゃないけど、GPLの話は個人的にもとてもためになるので、このまま続けて欲しいなぁと思ったり。
今後ソフトを公開する上での伏線のような部分もあるので。
ただ、BSDとかその他のライセンスのことも知りたいなぁと思ったり。
そこらへんはお任せします。

で、閑話休題。
サイトの更新を久しぶりに始めたこともあり、scriptaculousの開発状況を見に行ってみようかと思ったわけです。
2007/12に1.8.0だから、今頃は2.0とかになってたりして、と思ったわけですが...


バージョン1.8.3でした。2年でそれかぁ。まぁ開発は地道に続いてるみたいで何よりだけど。
と思っていたら、なにやら次期scriptaculousが開発されているとの噂が。
http://scripty2.com/

その名もscripty2。確かにscriptaculousって名前は長いもんね。
1から作り直してるみたいだけど、HTML5やら何やらとぶつかって、また作り直しにならないといいなぁ。
とりあえず、このサイトではscriptaculousを継続して(ほとんど使ってないけど)使って、完成度が上がったらscripty2に移行してみる、って感じでいこうと思います。


2010/01/10(Sun) 00:04:11

 夜中に犬に起こった奇妙な事件・探索編 / ノリオ 

夜中に犬に起こった奇妙な事件 コンニチハ、元読書家です。為になる話が繰り広げられている中で、自分だけ趣味に走ることにしよう。

先日、美容院で髪を切っている間にたまたま読んだ雑誌が、色々な本を紹介する雑誌だった。 その中で、文系の人にもオススメな理系の本みたいなコーナーがあって、今回のタイトルである『夜中に犬に起こった奇妙な事件』が紹介されておりました。

あらすじを簡単に述べると、自閉症だけど頭が非常に良い少年が、犬が殺された事件の犯人を追うという話。イギリスの作家が書いた作品で、全世界で読まれているベストセラーらしい。

非常に興味をそそられたので、近くの書店で探すも見つからず。学校の近くの書店で探しても見つからなかった。
そこで、さすがに紀伊国屋なら売ってるだろうと思い、歩いて行くことに。ようやく着いて、店内にある検索マシンで調べてみると、新宿南店に置いてあると表示された。・・・どこにあるのそれ。

店員さんに案内図をもらい、さらに歩くこと10数分。今度こそ・・・!
検索マシンで調べると、置いてある棚が表示されたので、そこらへんを探してみるが見つからない。不審に思いもう1度マシンで検索すると、在庫がないと書かれていた。・・・ガビーン。
さすがにもう歩いて探す気力はなく、その場で注文することにした。これが去年の年末の話です。・・・てか、素直にAmazonで注文しとけばよかったね。

そして先日、ようやく本が入荷したとの連絡が入り、本を手に入れることができた。まだ読んでいる途中なので、感想は読み終わってからまた書くかな。

教訓:海外小説はよっぽど有名じゃない限り書店に置いてない!Amazonで買おう!

2010/01/09(Sat) 23:47:07

 GPL解説vol.2―GPLライセンスソフトウェアが出力したデータとGPL― / マルパチ 

前回説明したようにGeneral Public License(=GPL)はGPLライセンスのプログラムを利用する人に対していくつもの条件を要求しています。条件に違反した人はプログラムの支配者である著作権者から「やめろ!!」と言われかねません。有り体に言えば法廷で争うというやつです。
条件はGPLを読めば全部書いてあるのですが、見てのとおりGPLは法律文書ですしこの手の文書になれていない人にはかなり読みづらいでしょう。そこで今回以降ひとつひとつの条件について詳しく触れてゆきたいと思います。
記念すべき最初のテーマは前回予告したとおり「GPLライセンスソフトウェアが出力したデータにもGPLが適用されるか?」でいきます。

例えばあなたがGPLライセンスのエディタを使ってコードを書いたとしましょう。エディタはあなたの書いたコードをファイルとして保存(出力)します。この場合あなたの書いたコードにGPLライセンスを適用しなければならないのでしょうか?
GPLライセンスを適用しなければならないと言うことはつまり、あなたのソースコードをフリーソフトウェアにしなければならないということです。フリーソフトウェアにしなければならないにもかかわらずフリーソフトウェアにしないことはGPLの条件に違反します。もしあなたのしたことがGPLの条件に違反するとしたら、あなたはエディタの著作権者から訴訟を起こされる危険さえあります。…なかなかに恐ろしい話です。

まぁ不安をあおるのも良くないので答えを言ってしまいましょう。上記の例えではあなたはGPLを適用する必要は全くありません。→参考リンク(/)
なぜならエディタの著作権者はエディタそれ自体に対してのみ著作権を持っているからです。あなたがエディタに入力したコードはあなたの著作物です。あなたが支配するあなたのコードに対してGPLが難癖をつけることはできないというわけです。だからあなたが自分のコードに対してGPLを適用しようがすまいがあなたの勝手なのです。
ですがここにもう一つの例を挙げたいと思います。

GPLライセンスのコンパイラがあなたの作ったプログラムの中にコンパイラの一部(パーサなど)をコピーしたとしたらどうでしょう?
実はこの場合あなたの書いたプログラムにはGPLが適用されるのです。というのもGPLライセンスのプログラムAから出力されたBがAの一部を含む場合には、BにもまたGPLが適用されるからです(GPLv3第2条1パラグラフ3センテンス)。→参考リンク(/)。
もしコンパイラがしでかしたことに気づかずあなたのプログラムをフリーソフトウェアにし忘れたら…。プログラマーの皆様は変な争い事に巻き込まれぬようくれぐれもお気をつけ下さい。

とはいえ例外もあります。bisonがその一つです。(ただしver1.24以降のみ)
bisonはあなたのプログラムにbisonの一部であるパーサプログラムをコピーします。しかもbisonはGPLライセンスソフトウェアです。するとあなたのプログラムにはGPLが適用されるはずなのですが、GPLは適用されないのです!(ただしver1.24以降のみ)
どういう事かといいますと、GPLは著作権者に対してGPLの条件に例外を設けることを認めているのです(GPLv3第7条1パラグラフ)。そしてbisonの著作権者はバージョン1.24以降のbisonが出力したパーサプログラムを非フリーソフトウェアに使用することを許諾する例外を設けています。→参考リンク
バージョン1.24以降のbisonを使っている人はbisonの出力したパーサプログラムのソースコードをのぞいてみてください。以下のようなコメントが書き込まれているはずです。
"As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice..."
これはつまりバイソンのパーサプログラムを含んだあなたのソフトウェアをあなたの好きな条件で配布して良いということです。ですからあなたのソフトウェアを非フリーソフトウェアにしてもよいのです。

うーん、これでmagicienの疑問が解決したらいいんだけど…。

次回のテーマは「GPLライセンスソフトウェアを使ったら何をしなくてはならないのか」をテーマにしたいと思います。が、magicienから要望があったら他のテーマにするかもしれません。
2010/01/09(Sat) 18:30:25

 GPL解説vol.1―GPLとはなんぞや?― / マルパチ 

さて今回からGeneral Public License(=GPL)について触れてゆきたいと思います。

ソースコードの作成者は作成したソースコードに対して著作権を有します(著作権法17条)。だからプログラマーが汗水垂らして作成したソースコードにタダ乗りする奴に対しては「やめろ!!」と言えるわけですね。これは前回説明したとおり。

とはいえプログラムというのは多くの人の手が加わることによって進歩してゆくもの。他人の作ったソースコードに手を加えたいと願う人にとって現状の著作権法は満足できる法律ではないわけです。→参考リンク
そのように願う人たちが生み出したのがGPLというわけですね。

GPLは代表的なコピーレフトのソフトウェアライセンスの一つです。
(いきなり「コピーレフト」だの「ライセンス」だのいってもわからないと思いますが説明すると長くなりますし本稿を理解する上では不要なので説明しません。いちおうWikipediaへのリンクだけ張っておきます。)

GPLの肝はソースコードに対する著作権が生きているということ。つまりソースコードは著作権者に支配されているにもかかわらず誰もが自由にソースコードを使うことができるのです。
なんでやねん、と思うでしょう?からくりは単純です。ソースコードを支配しているということはソースコードを自分の好き勝手に処分して良いということです。だから自分の作成したソースコードを自由に実行・複製・改変・再配布しても良いと許すことも自由なのです。そしてソースコードの自由な実行・複製・改変・再配布を許諾する文書こそがGPLなのです。

ここまで読み進めてきた人の中には疑問に思う人もいるかもしれません。わざわざGPLなんて小難しいものを使わなくても「著作権を放棄する」と言ってしまえば同じことなのではないかと。
実はそのような方法は既にあります。「パブリックドメイン」と呼ばれる方法がそれです。
パブリックドメインはパブリックドメインで悪くない方法なのですが、ある重大な欠陥があります。

例えば著作権の放棄された鈴木さん作成のパブリックドメインソフトウェアAがあるとします。Aは佐藤さんに改変されてA´になりました。田中さんはA´をさらに改変したいと思いました。
しかし田中さんはA´を改変できないのです!
なぜならA´の著作権は佐藤さんが持っているから。鈴木さんはせっかくソースコードの著作権を放棄したのに、これでは著作権の捨て損です。
そこでGPLはこのように要求します。
「ソースコードの改変は許すけれども条件としてA´にもGPLを使いなさい(GPLv3第5条1パラグラフc項)。」
これにより田中さんはA´を自由に改良することができるというわけです。
(余談ですがGPLライセンスのコードを一行でも利用するとソースコードの全てにGPLライセンスを使わなければならなくなるわけです。伝染病に似ていると言うことで「ライセンス感染」などと皮肉る人もいるようです。)

GPLはソースコードを実行・複製・改変・再配布する人に対してこの他にもいくつかの条件を設定しています。その条件については次回以降詳しく解説してゆきたいと思います。
とりあえずはmagicienがbisonのGPLライセンスに苦しんでいるようなので「GPLライセンスプログラムの出力物にGPLライセンスが適用されるか」をテーマにいきます!
2010/01/08(Fri) 18:19:06

 lex/yacc 勉強中 / magicien 

相変わらず中身のない記事です。
マルパチがGPLに触れたことに関連して。

lexは字句解析のためのプログラム、yaccは構文解析のためのプログラム。
というわけで、コンパイラに使われたりするlex/yaccですが、 今はこれを使って(3Dの)xファイルのパースをしてたりします。

10日ほど前から使い始めたのですが、使った感想としては、便利、ですねこれは。
これ使えば何か面白いことができそうでわくわくします。
暇があればHyperTalk(懐かしい!)のパーサでも作ってみるか...

ところで、Macでlex/yaccを呼ぶと、実際にはlex/yaccのGNU版であるflex/bisonが呼び出されます。
で、flexのライセンスはBSD、bisonのライセンスはGPLのようです。
flexもbisonも、最終的にC言語のコードを生成するわけですが、bisonのGPLライセンスがなかなか曲者のようで、 過去にはいろいろと問題が起こったようです。
今ではbisonが生成したコードにはGPLライセンスが適用されないらしいですが...調査が必要そうだなぁ
flexの方は"info flex"コマンドでCopyrightを確認したところ、修正BSDライセンスっぽい(たぶん)。というわけで、安心して使えそうです。


2010/01/08(Fri) 03:34:44

 著作権についてのウンチク(またはGPL解説vol.0) / マルパチ 

さて前回の予告通りGPL(General Public License)の解説に入ろうとしたわけですが...その前に著作権についてうんちくをたれた方が良いかと思ったんで今回は著作権について。
今回の記事は法律を勉強したことのある人にとっては当たり前の内容。法律のわからないプログラマー向けにプログラマーとは切っても切れない関係にある著作権について基本的な講釈をたれることが目的です、はい。

wikipediaによると「著作権(ちょさくけん)とは、言語、音楽、絵画、建築、図形、映画、写真、コンピュータプログラムなどの表現形式によって自らの思想・感情を創作的に表現した者に認められる、それらの創作物の利用を支配することを目的とする権利をいう」のだそうです。
wikipediaの説明は必要にして十分なものですが、法律の心得がない人向けの説明としてはちょっと不親切。

そこでかみくだいて一番大事な要点を一つだけ挙げます。
著作権の一番大事なところはソースコードを「支配」できるということ。
著作権が支配権であるということは非常に重要。いきなり支配とかいわれても何がなにやらだと思うので具体例を挙げます。

例えば自分のPCを赤の他人が勝手にいじくってHDDの中身をのぞいていたらどう思いますか?
大方の人は腹が立って「やめろ!!」と言うはずです。このやめろと言う根拠になるのが「支配権」。PCを所有する人はPCに対する所有権を持っているわけですが、この所有権は著作権と同様に「支配権」であるとされています。
ですからプログラマーは自分の作ったソースコードを勝手にいじくったり勝手に利用したりする他人に対して「やめろ!!」と言えるわけですね。これが支配権であるということであり、著作権のキホンのキです。
(もちろん実社会のトラブルは上記のたとえみたいに単純ではありません。「やめろ!!」と言えるか言えないかは身近な法律家に実際の状況を話して判断を仰がなければならないわけです。)

ところがネットを見ると著作権フリーのソースコードが大量にあふれています。
ちょっと待てと。ソースコードは作成者(=著作権者)に支配されているのではないのかと。フリーのソースコードを自分のソースに組み込みたいのはやまやまだけど、後から「やめろ!!」と言われるのは困るぞ。
この問題を解決するために作られたのがGeneral Public License、略してGPLです。というわけで次回こそはGPLについて解説していきたいと思います。
2010/01/06(Wed) 12:31:50

 謎の検索上位 / magicien 

今年の目標でDarkHorseで100位以内と書きましたが、驚くべきことに10位以内にこのサイトが表示されるキーワードがありました。
"Objective-C ベジェ"の組み合わせで、なんと10位に!

Objective-Cでベジェ曲線を簡単に扱う方法はないかと検索していて発見したわけですが、もちろん自分のサイトに書いてあるはずがありません。
しかも、どこからもリンクされていないはずなのに。なぜこんなことに...

察しのいい人はわかったかもしれませんが、ベジェ曲線は3Dモデルのモーションの補間に使おうと思って検索していたわけです。
既に実装は終わっているので、いずれソースを公開しようかと思います。
解決法があると思って来てしまった人はご迷惑をおかけしました。

2010/01/04(Mon) 11:56:21

 いやー、すげぇな / マルパチ 

前回の投稿から2年以上が経っちゃったんですね。

あれから大学卒業したり、院に進学したり、一生懸命やったけど結局辞めちゃったり、就職決まったりと盛りだくさんだったわけです。久々の投稿なんで思い返してみると、いやー、すげぇな!これほんとに2年以内の出来事?

てなわけでこれからはちょくちょく書いていきたいと思います。
次回はプログラムをやる人にはなじみ深い(?)であろうGeneralPublicLicenseについて書こうかな。需要があると良いんだけど(笑

2009/12/29(Tue) 22:58:31