「アノテーション」を含む日記 RSS

はてなキーワード: アノテーションとは

2018-05-31

Rubyに型宣言は入れないらしい

人間が書かなくてもコンパイラ自分で型を判断すればいいとか。

コンパイラが発達してそれが当たり前になったら型アノテーションがある言語時代遅れになるとか。

まあ、動的型を捨てて静的型になるなら別に方式はどうでもいいけど、既存ソース互換性を捨てずにそれができるとは思えないから、Rubyは世の中の静的型の流れについていけずに衰退すると思う。

2017-08-09

10年後も戦えるプログラミング言語

Java

ScalaとかKotlinかいろいろ言ってる奴いるが10年後にはどうせJavaが勝ってる。

ラムダ式とか取り入れてJavaも着実に進化しているからね。

Javaはnull安全じゃない!とかほざく奴はもちろん@CheckForNullアノテーション使ってから言ってるよな…?

フレームワーク流行り廃りがあるから微妙だが、勉強するならSpringにしておけ。それだけでいい。

JavaScript

Webブラウザに標準搭載のJavaScriptが無くなることもまずありえない。

あとやるならjQueryね。AngularJSとかすぐ廃れるから

学習コストが高いものって結局広まらいからさ…素直に現実を認めよう。

シェルスクリプト

AnsibleやFabric使ってるやつがいるがどうせ10年後にはブームが去り技術負債となっている。

シェルスクリプト代用できるのだからシェルスクリプトでやっておけ。

SQL

これだけ広まったRDBが今後使われなくなることはまず考えられない。

ORMは流行り廃りがあるが、SQLが無くなることはまずありえないのだからSQLをやっておけ。

2017-05-15

http://b.hatena.ne.jp/entry/s/speakerdeck.com/naoya/ji-shu-de-fu-zhai-toxiang-kihe-u

C#からPythonに移行するのはチョンボだったかもな。.NetStandardでクロスプラットフォーム化したのは最近から時期的にしょうがないんだけど。

今どき動的型付けなんかに移行させられたら、俺だったら退社してるな。

最近Pythonは型アノテーションくらいついてるか。

2017-02-09

google newsで表示される画像記事の内容が無関係であることが多すぎる

google newsではカテゴリトップ記事画像が表示される

その画像リンク先の記事に載っているものの中から選んで表示されているようだが, その画像記事の内容とまったく関係ないことが多すぎる

日頃から精度の低さが腹立たしい 例えば今日トップニュース

入院中の男性患者が死亡って記事あったけれど画像イヴァンカ・トランプだった

失望させてくれるな google japan

意味解析と画像アノテーションの精度も上がってんだろうから, 表示される画像と一致してるかぐらいやってくんねーかなー

2016-06-17

1.0から学ぶJava

タイトルを見て釣られクマーな皆さんこんにちは

ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。

今調べたらホッテントリメーカー2008年だそうで。どうりでねー。古臭いなーと思いましたよー。

「一から学ぶJava」ってのをね、1.0にするだけでこんなに素敵なタイトルになるんだから面白いですねー。

タイトルを思いついただけだったんですけど、思いついたらやっぱりちゃんと中身も書かないと行けないじゃないですか。やだー

面倒くさいんですけどね。ちょっと1.0から学んでみましょうか。

Java 1.0 1996年1月23日

Javaの1.0がリリースされたのは1996年1月23日ですね。発表されたのが1995年5月23日でJavaの誕生日といった場合にどちらを取るかで揉めることがあります。

かれこれ20年前なわけで、当時のパソコンというとハードウェアはCPU が Pentium 133MHz メモリ16M とかそんな感じだったかなあ。今どきの携帯電話の例としてiPhone 6sを挙げるとCPUが1.85GHz メモリ 2G ってんだから凄いですね。OSは1995年11月23日リリースされたWindows95とかそんな時代背景です。インターネットがようやく一般に普及し始めたところでしょうか。

今から思うと相当弱いハードウェアですけども、そろそろVM方式を採用しても良さそうな、そんな時代でした。インタープリタだと流石に遅い、でもC言語のようなコンパイル言語だと"Write once, run anywhere"とはいかない、という判断もあったのだろうと思います。Javaが純粋なオブジェクト指向言語ではなくintなどのプリミティブ型を持つというのは、当時のマシンスペックを考えた場合、ある程度妥当な判断だったと言えるでしょう。これが後々苦しくなってくるわけなのですが。

Javaを作った会社はSun Microsystems(サン・マイクロシステムズ)というアメリカの会社で、2010年1月27日オラクルにより吸収合併され今はありません。SolarisというOSとSPARCプロセッサでUNIXサーバーの販売で90年代後半までは一人勝ちのような状況だったと聞きます。当時にすでに「ネットワークこそがコンピュータ」(The Network is the Computer)というモットーを掲げてたんだからおかしい。1996年リリースのJavaが標準でネットワーク機能を備えていたのもこのあたりの思想から来ているのかもしれませんね。

当時のプログラミング言語としてC++が挙げられますが、C++でのプログラマへの負担といいますか、ヒューマンエラーの起きやすさといいますか、その辺を改善する目的で開発されたのがJavaだったわけです。

1996年の時点にこんな言語が登場したのですから革新的でした。

いろんな企業がJavaに賛同します。その中にはMicrosoftもありました。この時期、Microsoftは次期のWindows開発用のプラットフォームにJavaを据えようと考えていました。その後、袂を分かつことになるのですが……。

プログラム言語として構文などを見ると、C++を強く意識した構文なのは間違いなく、しかしポインタ演算を廃してポインタを機能を限定した「参照」に置き換えるなど簡素化が多く見られます。C++からはいろんな機能が削られています。関数ポインタ、構造体、演算子オーバーロードテンプレート((テンプレートについては実装が間に合わなかったという話を聞きます))などなど。そのためC++の劣化であるように揶揄する人もいますが、こうしたものを捨てて言語仕様を比較的小さくシンプルに抑えた点は評価に値すると思います。しかし、今でもこうした削減された機能を愛する人からはJavaを腐す要素として挙げられてしまうのでした。

Java 1.1 1997年2月19日

Wikipediaからピックアップすると1.1での大きな機能追加は

といったところです。当初よりJavaの内部文字コードUnicodeで文字を表すchar型は16bitで設計されていました。Unicodeは当時それほど普及しておらず、Unicode対応のテキストエディタさえ少なかったと記憶しています。時代を先取りしていると言えますが、大きな誤算はUnicodeが当初16bitのコードポイントに世界のあらゆる文字を格納しようとしていたことで、漢字圏の我々からすると16bit=65,536程度の空間に文字が全部入るわけないだろ!というものだったが故に早々に破綻し、Unicodeは21bitのコードポイントに拡張されることになるのです。これはまた後の話。

なんにせよ、日本語が対応されたのは1.1からで、日本でのJavaの採用が始まったのはこの頃からと言えましょう。

当時のJavaのGUIはAWTというものでしたが、これを用いたGUIの開発は当時は結構行われていたイメージですね。Visual BASIC でGUIを作るプロダクトも結構あったと思います。GUIのためのオブジェクト指向言語としてJavaが使われていたイメージがありますね。JavaBeansもそのための仕様でした。件のsetter/getterの話題に繋がっていくのですが。

JDBCはJavaとデータベースをつなぐインターフェースです。RMIではあるJava VMから別のJava VMにオブジェクトを送って実行する、といったことができます。こうした機能が用意されたことで、ソフトウェアフロントとしてのGUI、裏方の実装のためのネットワーク機能、データベース機能、さらにはソフトウェアを配布するためのJava Appletという布陣でJavaでのソフトウェア開発が加速していた時代といえます。

Microsoft Visual J++ もこの時代ですよ。

Java 1.1以降のバージョンのものは互換性確認のためにOracle Java Archiveからダウンロードすることができ、今でも入手することができます。もちろん、Java7ですら2015年4月にEOL(End of Life,サポート終了)となっているので、通常利用するのはJava8としてください(本稿執筆時点)。

当時のドキュメントを見るのも一興です。現在と比べると標準APIがかなり小さい。なお、当時のjavadocは今とはデザインが大きく異なります。

  • java.applet
  • java.awt
  • java.awt.datatransfer
  • java.awt.event
  • java.awt.image
  • java.beans
  • java.io
  • java.lang
  • java.lang.reflect
  • java.math
  • java.net
  • java.rmi
  • java.rmi.dgc
  • java.rmi.registry
  • java.rmi.server
  • java.security
  • java.security.acl
  • java.security.interfaces
  • java.sql
  • java.text
  • java.util
  • java.util.zip

この時代であれば、全パッケージを舐めて標準APIを学ぶこともそう難しくはありませんでした。この時代から触っている人間は新バージョンが出るたびに増えるAPIを順に学んでいけたのです。しかし、現代にJavaを学ぶ場合、どのバージョンでは何があって……というのをいちいち学ぶ必要はほぼありません。Java5以前は一緒くたでいいと思いますし、一部のAPIで歴史的経緯があってねーというのを知っていればおそらく十分ではないでしょうか。

Java 1.2 1998年12月8日

strictfpキーワード浮動小数点演算をやる人は覚えておきましょう。JavaはパフォーマンスのためにCPUの浮動小数点演算を扱うことが許されており、そのため実行するCPUによって精度が異なることがあるんですね。まあ今時のCPUだと大丈夫だとは思うんですが。

リフレクション機能ではJavaのクラスを抽象的に扱うことができます。設定ファイルに書かれたクラス名のclassロードして実行する……みたいなことができるんですね。フレームワーク的なものを作る場合には多用することになります。

1.2からは新しいGUIのSwingが採用されました。AWTがOSごとのGUIパーツを用いていたためデザインに違いがあったのに対し、Swingでは統一的なルック・アンド・フィールが用いられるようになりました。まぁ今ならJavaFXを使うのが良いと思います。

初期のJavaはやはりVM方式の実行速度の遅さが指摘されていました。実行時の構文解析を伴わないだけインタープリタよりは早いものの、実行バイナリを作るC/C++よりは遅い、そうした評価です。ここではサン・マイクロシステムズのVMにJIT(ジャストインタイムコンパイラ)が乗ったことが挙げられていますが、JIT自体は別の会社が先駆けて開発していたことは記しておきたいと思います。

JITコンパイラは実行時にJavaのバイトコードを環境のネイティブコードコンパイルして動かす技術です。この後、JITコンパイラ、動的再コンパイル技術、世代別ガベージコレクションを備えたHotspotといった様にJavaVMは進化していきます。現代では実行時の最適化が進み、大きなスケールで見た場合、Javaの実行速度はC/C++での実装と比べてそれほど遅れるものではありません。遅くても倍の時間は掛からない程度といったところでしょうか。

あとは特記すべきはコレクションフレームワークです。皆が多用しているであろうjava.util.Listやjava.util.Mapといったライブラリが整備されたのがこの時なのです。それ以前はjava.util.Vectorやjava.util.Hachtableというクラスが可変長配列の機能を一手に担っていました。今ではVectorやHashtableは使うべきではありません。

Microsoft 離反

Java の開発はSun Microsystems が主導していたけども、すべてがSunのものだったというわけでもなく。Javaには多くの会社が出資していてその中のひとつMicrosoftだったわけですね。

Microsoft の Visual J++ では delegate とか独自機能拡張もありましたけど、裁判で問題になったのは J++ でコンパイルしたclassファイルMicrosoftのVMでしか動かないという部分ですね(他社製のVMで動くclassファイルを作ることもできる)。classファイルがどこのVMでも動くの大事だろ、"Write once, run anywhere"だろ、お前何してくれてんの!と喧嘩になったわけです。当時のMicrosoftブラウザまわりでも独自拡張がやりたい放題、標準規格?なにそれ美味しいの?みたいなスタンスをあちこちで見せていたものです。

結局、この事件でMicrosoftのJavaはバージョン1.1相当でストップ。好き勝手にやれないなら独自に言語作るわーとばかりに.NET フレームワークと C# といった方向に舵を取ります。

JavaがPC上でのUI開発の主力になろうとした勢いはここで潰えます。

Java EE

Java SE とは別にこの時代に Java EEリリースされていることは特記しておきたいですね。これ以後、それまでのCGIに取って代わって、JavaはWebサービスの開発のプラットフォームとして多用されるようになります。

2000年あたりからはJavaはGUI開発というよりは、Webサービスの開発が主流という流れになっていきます。インターネットサービスが非常に発達していった時代、背後ではとてつもない量のJavaのプログラムが支えていたわけです。ただまあ、こうした産業利用は一般的ユーザーの目にはあまり入らないわけです。一般人からすればJavaといえばJava Appletみたいなイメージはずっと残っていたでしょうが、実体としてはJavaといえばServletという時代になっていたわけです。

企業で用いられる社内システムにもServletは多く採用されました。

理由はいろいろ挙げれると思うのですが

というのが大きな理由だろうと思います。JSPというテンプレートエンジンを用いてHTMLを整形してWebページを作り出す、というアーキテクチャある意味では便利で簡単でした。

もっともHTMLの表現力に足を引きずられるため、GUIの機能性という点では後退したわけなのですが。それでもメリットが大きいと判断されたのでしょう。というか、まともにGUIを組めるプログラマがほとんどいないから、GUIのシステム開発がなかなか成功しないってのもあったんでしょうけどね。

iアプリ Javaアプリ EZアプリ

2000年あたりというと携帯電話の普及も取り上げなければなりません。現代のスマホガラケーに比べれば非常に機能は貧弱で、まさに携帯「電話」でした。要するに電話とメールぐらいしかできなかったんですね。

そこにdocomoiアプリJフォン(ボーダフォンを経て現ソフトバンク)のJavaアプリ、auのEZアプリという携帯電話上でちょっとしたアプリが動くよ!というのが乗るようになってきたんです。これがJavaを組込み用途にコンパクトにしたJava MEというものが土台となっていて(正確にはiアプリちょっと違う)Servletと並ぶJava言語の大きなもうひとつの領域となっていました。

iアプリは当初は容量が10k byteまでといった制約があり、容量制限が非常に厳しかったのですが、新機種が出るたびに容量は緩和されていきました。

docomoiアプリ含めiモードによって一世を風靡します。こうした土台を作ると、その上で商売をしたい人がたくさんやってきて、勝手にコンテンツを作ってくれる。docomoはそれらから手数料を取るので労せずして大金を稼げるというわけです。賭場の胴元というわけです。

この賭場が、将来にAppleiPhone, GoogleAndroidに荒らされることになります。docomoがなかなかiPhoneを出さなかったのもiモードという自前の賭場を失うことを良しとしなかったためです。金づるを失ったdocomoSamsungと組んで独自の携帯向けOSであるTizenの開発に乗り出します。そんなTizenですが鳴かず飛ばず。噂ではインドあたりではリリースされたとか、なんとか。

RIA時代

話を2001年に戻しましょう。

Microsoft離反でGUIのプラットフォームとしてのJavaというものは存在感を弱めていました。この分野の復権に寄与したのはJava 1.4 (2002年2月6日)で導入されたJava Web Startです。

Java Appletブラウザ埋め込みで動作したのに対し、Java Web Startではブラウザから起動しつつも独立したアプリとして起動するのです。

Webシステムが企業の社内システムに採用された話は先に述べたとおりですが、やはりWebシステムのGUIというのはHTMLに引きずられて貧弱だったんですね。

端的に言えば入力値が数字かどうか?みたいなチェックがなかなか難しい。HTML上でJavaScriptでやるわけなんですが、なかなか気持よく入力できるような感じにはならなかったんですね。

また、Ajaxによるブラウザのページ遷移を伴わない通信というのが出てきたのも2005年ぐらいなので、入力値に対してサーバ問い合わせするようなことはできなかった。当時だと一旦画面遷移させないとできなかったわけです。

こうした事情から、クライアントサイド、要するにPC側でもっとリッチなUIが使いたい!という要望があったわけです。Webシステム使いにくい!という不満の噴出と言ってもいい。そこで出てきたのがRIA (Rich Internet Applications)というわけです。

Javaは1.0時代のAppletからそうですが、ネットワークを介して別のPCにプログラムを送り込み、そこで動作させるという能力を持っていました。それこそまさにRIAに求められる機能性だったわけですね。

RIAの代表とされるのは

あたりです。三つ巴の戦い、どこに軍配が上がるのか!?と注目されましたが、勝利したのはHTML / JavaScriptでした。

Google MAP で注目を浴びたAjax技術、それまでブラウザでは不可能と思われていた高級なGUIをHTML / JavaScriptで実現させました。もうやめて欲しいですよね。せっかく脱ブラウザの流れが来たと思ったのにまたWebシステムに逆戻りですよ。

RIAが失速した理由として考慮して置かなければいけないのはスマートフォンの台頭です。RIAでは端末を選ばずどこでも同じアプリが動かせる点がポイントひとつでしたが、スマートフォンではそうは行かない。"Write once, run anywhere"を破壊したのはスマートフォンだったというわけです。

しかし、先日インストールなしでアプリを実行するAndroid Instant Appsが発表されたりしまして、結局RIAの思想といいますか、要求というのは今でも息づいているのだなと思った次第です。

Java 5 (2004年9月30日)

1.3 / 1.4 では機能追加はあっても言語構文が大きく変わることはありませんでした。大きく変わったのはJava 5です。この時からバージョニングが変わって1.5ではなく5と表記されるようになりました。

Java5の特徴はなんといってもジェネリクス。それまでjava.util.Listにデータを出し入れするのにはキャストが必須だったわけですが、ようやくキャストから開放され型の安全度がぐっと高まりました。その他に以下のような変更があります。

言語としては随分変わっったわけですが、もうかれこれ10年以上前のことですからこれらの機能が「Java5から導入された」という知識は今となってはあまり必要とされません。これらの機能が使えないJava 1.4で開発をする事案が殆ど無いからです。0ではないのが悲しいところではありますが。

その後

Java 6 (2006年12月11日)がリリースされた後、Java 7 (2011年7月28日) が出るまでJavaは停滞してしまいます。その間にSun Microsystemsという会社がなくなってしまったためです。

Sun Microsystems の経営状況が悪化しており、ついに身売りをすることになりました。身売り先はIBMともGoogleとも噂されましたが結局2010年1月27日オラクル吸収合併されました。

Javaの停滞中にはJava VM上で動く非Java言語も台頭してきました。Scalaなどですね。

やや戻って2007年Androidが発表されます。Androidの開発言語にはJavaが採用されていますが、実行環境はJava VMではなく、ライセンス的な事情でJava(TM)は名乗らない微妙な位置関係にあります。

Java 5 以降で大きく言語仕様に手が入るのは Java 8 (2014年3月18日)です。並列処理を行うためのStream APIと、そのために簡易に関数を定義するためのラムダ式が導入された点が大きいですね。日付APIも刷新されました。

このように、Javaは1.1の黄金時代から今に至るまで利用ジャンルを転戦しながら産業の土台となって支えてきた歴史があります。ジャンルの趨勢により浮き沈みもあります。今後についても決して楽観視はできないでしょう。Javaを学ぶことはプログラミングを学ぶステップとしては意義はあると思いますが、Javaを学べばゴールというわけではありません。プログラム言語次世代へと移りつつあります。業界動向には注視していきましょう。

2014-03-31

PHPを書くと手が震えてくる

俺は請負で業務アプリ作成する残念なお仕事をするプログラマーだ。

最近JavaとかJavaScriptを書いてたりする。

先日PHPコードを久々に書いたのだがあまりのすごさに手が震えてきた

$hoge = new Hoge();
$hoge.execute();

これが動かない。なぜだ。

メソッドの呼び出しが「-&gt」と気づくのに数分の時間を要した。


"hello world".split(" ");

文字列を分割したかった。

勿論これは動かない。

文字列オブジェクトではないからだ。

PHPドキュメントを参照する。

まあ普通に考えて関数名はsplitだろう。

現れる警告文。

この関数PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。

ほう。なにを使えと。

。。見当たらない。。。

下のほうの注意に書いてあるなぜここなのか。

なるほど正規表現がいらないなら「explode」を使えとな。

毎回悩む、なぜ爆発なのかと。

英語にはそういう比喩でもあるのか?

あれ?そういえば「explode」ってマルチバイト対応してなかったな。

なら「mb_split」か?

「split」が非推奨なんだから非推奨だろうがヒントはあるだろうし、一応見ておくか。

非推奨じゃない!

非推奨じゃない!

mb_splitは非推奨じゃないんだ!

俺は考えるのをやめた

だんだん記憶が蘇ってくる

「preg_split」にオプションで「UTF8」をつけるのが正解だったような。

俺は考えるのをやめて爆発の呪文を唱えた。


さてこのプログラムには他のクラス必要なんだが

Symfony2DIサポートしているからInjectするようにしようか。

たぶんAutowiredくらいあるだろう。

class Service {
    /**
     * @var \PDO
     */
    protected $pdo;

    /**
     * @param \PDO $pdo
     * @Inject
     */
    public function setPDO(\PDO $pdo) {
        $this->pdo = $pdo;
    }
}

・・・・?

ドキュメントアノテーションを書く斬新さ!

俺は震える手を押さえながらそっとパソコンの電源を切った。

2012-09-21

俺のインターネット

自分が初めてインターネットに繋いだのは14歳の頃でした、それ以前もパソコン通信的なものに多少触れたりすることはあったと思います。15歳の頃からPerlを書き始め、一番最初に作ったホームページgeocitiesではなくprohostingでした。それは所謂一般的なホームページですら無く、誰でも書き換えることが可能なものでした。今で言うとwikiなのでしょうか、wikiでしょうけど当時はwikiという言葉を知りませんでした。自由にタグを書くことも出来たしscriptも書くことが出来たし、やろうと思えばそのシステム自体を破壊してしまうことも出来た。何故そんなものを作ったのかというと、これといって明確に説明できるような理由もないのだけれど、当時の自分インターネットが嫌いだった、コミュニティが苦手だった、ホームページだとか管理人さんだとか、メールだとかオフ会だとか、そういうものが当時からあって、ずっと馴染むことが出来なかった。何かを主張をすることを嫌ったし、一対一でのやり取りを嫌った。自分が書いたもの全てが、誰にでも自由に書き換えられるようにしたかった。これを書いたのは自分かもしれないし、自分ではないかもしれない、それをアタリマエのことにしたかった。インターネット上に、自分を反映させるということが上手な人たちがいて、上手く振る舞えない自分がもどかしかった。色々あってブログとか書くようになって、その時にもブログとは名ばかりでパスワードをかけていなかったし、実際にはその気になれば誰でも編集することが出来るようになっていた。そのうち勝手にformをpostして回るようなspamクローラが来てしまって、書いた記事を勝手に全部エロサイト宣伝にしてしまうので、仕方なくパスワードをかけた。パスワードを掛けた瞬間、自分プライドがズタズタに引き裂かれたことを感じた。お前らと違って、自分は誰にでもその権利を与えるのだ、と、誰にでも書き換えられることが自分の誇りだった。自分のことを嫌う人間が、めちゃくちゃに書き換えようとも、それはそれで良いと思っていた。しかし実際に書き換えていくのは人間ではなく災害のようなものだった。そうやって遊びの時間が終わってしまって、メディアアートっぽいことをやるのもやめて、ちゃんと役に立つものを作ろうと考えるようになった。誰にでも書き換えられるというのは自由ではなかった、そうやって作られた自由な世界というのは、自己主張の強い奴らが、全てを書き換えて蹂躙していくものなのだインターネットでは、いつだってエロスパム業者が全てを台無しにしてしまう。ブログを書くようになってから自分はそれなりに上手くいって、コミュニティの中で評価され、就職まで出来て、そこそこの収入を得て、安定した生活を手に入れた。Twitterでつぶやけばそれなりの人が見る、ブログを書けばそれなりの人が読む。そういう力を手に入れて、持たざる側から持つ側に回ってしまったことに対する罪悪感にいつだって押しつぶされそうになる。色んなことに失敗した。もっと上手くやる方法があったかもしれない。インターネットから、どんどん書き換えられないものが増えていった。自分の想定ではインターネットもっといい加減で、誰でも自由に編集できるようなものが当たり前になると思っていた。そうやって自由に書き換えられる世界を作って、やがて現実も書き換えられるはずだった。現実と同じように、正攻法で無くては書き換えることができない世界インターネット上にも作ってしまった。否、むしろ、現実と同じようにインターネットを書き換え可能にしたかった、と言っても良い。現実ではその気になればいつだって物理的な制約を除けば、他人に干渉することが出来るだろう。インターネットで我々を制約するのは、他人に干渉が出来ない仕組みだ。他人の権利を尊重するという牢獄。きちんとした認証、きちんとした公開範囲、プライバシーコントロールできますといった技術者が創り上げてきた安全で便利なインターネット牢獄であるネット上での情報発信の敷居は下がっていき、誰でも簡単に情報発信が出来るようになった。ということになっている。しかしそれは、追記であったり、別レイヤーであったり、アノテーションであったりする。ブログブログコメントコメントであるWikipediaの人たちは別に世界中Webページを書き換え可能にしてやろうなんてことは微塵も思っていなくて単に便利な百科事典を作っていた。信用できる情報が増えていき、ショッピング広告政治、あらゆる方面でインターネットが利用され、現実と結びつきが強くなっていく。ネット世界有名人現実でも有名人になっていき、現実有名人ネット世界でも有名になっていった。未だに2chにいるひとたち、他人のブログコメント欄日記を書く人たち、ティーカップ掲示板交換日記を書くカップルYahoo知恵袋日記を書く人たち。「自分場所を作るという努力をしてこなかった」ありとあらゆる人たち、デジタルアイデンティティ確立させようという努力放棄してきた人たち。彼らは仮住まいの、他人の作った書き込み領域居候することで、意図的に他者との境界線を曖昧にする。おそらプログラミングが出来なかったら、自分もそうしていただろう。さて、というわけでようやく本題に入ると、なぜはてな使ったら負けかなと思っているなんて思ったのだろう。はてなを使っている人間たちが、思い思いの個性的ハンドルネームを設定し、アイコンを設定し「ネット上で上手く振舞えている人たちの象徴」のように見えたからだ。「自分場所」を上手く作ることが出来る彼らは、無名で在り続ける多くの人たちにとって、羨望であり、脅威であった。アイコン不定、ハンドル不定、通りすがり人達へ。まだはてなを使ったことがない皆さんへ、改めて説明しましょう、はてな地獄だ!!!「はてな」はネットにおいて特異な存在であるネットに押し寄せる現実実名主義SNS芸能人ブログAKB48に一瞬でフォロワー数を抜かれるネットアイドルああ無残。そういった勢力に対するレジスタンスとしての「はてなしかしまた「はてな」は、その抱えている多くの個性的ユーザ層、強力な自我を持ったアイコン達によって、多くの名無しさん意図的に他者との境界線を曖昧にする人たち、ネット上でデジタルアイデンティティ確立することができない人たちにとっての脅威でもあった。そして今や、ネットで上手く振る舞えなかった人たちは、殆ど現実アイデンティティそのままで、閉ざされたソーシャルネットワークへと吸収されていった。安全便利で信頼できるインターネットを創り上げてきてしまった我々は、あえて、意図的に、インターネット混沌をもたらさなければならない。意図してパーミッション777に変えなければいけない。意図して世界をハック可能なように誘導していかなければならない。他人の権利を尊重するというのは、いつでもあなたの口を塞ぐことができるけれども、それをしないということだ。目の前にいる人間をいつだって殴り飛ばすことができるけれども、それをしないということだ。そしていざというときは、その境界線を踏み越えて、他者に干渉できるということだ。ネット上で罵倒をしたりしたところで、ナイーブ人間が凹んだりするだけで、BB弾が飛んできたり、電気ショックが走ったり、金魚ミキサーにかかったり、飼っているハムスターが死んだりするわけではない。ああ残念、あなた呪詛は届かない。大多数の人にとってインターネット安全ものであり続けている。すべての人々が、ネットを通じたトラブル揉め事に巻き込まれますように。

2010-10-11

http://anond.hatelabo.jp/20101011051243

そこには「観測範囲内では」というアノテーションがつくがな。

海の向こうを見たことがなければ海の向こうに大陸はないと言える。

2007-06-02

「ニコニコ宣言」の内容はすでに2ちゃんねるが達成している件

ニコニコ動画(γ)‐ニコニコ宣言

ニコニコ動画今日発表した宣言。

第一宣言 ニコニコは無機的な集合知ではなく人間のような感情を備えた集合知を目指します

2ちゃんねるは大規模なユーザを抱え、独自の文化や価値観を築き上げており、ある意味では2ちゃんねらー全体が一つの人格として振る舞っているともいえる。

第二宣言 ニコニコはすべてのものにコメントをつけられるサービスを目指します

オンラインオフライン問わず、この世のありとあらゆるものに対するコメント2ちゃんねるにはある。ニュース記事に対するものであったり、タレント、本、ゲーム企業など、2ちゃんねる日本で最高レベルの網羅性をもったコメントの集合ではないだろうか。

第三宣言 ニコニコはネット上に人間本位の仮想世界を構築することを目指します

2ちゃんねるは板単位で自治性をもった社会になっている。文化があり、社会があり、そこに定住する住人がいれば、それはもう仮想世界そのものである。

第四宣言 ニコニコはネットサービスユーザと双方向につくりあげる作品として提供します

2ちゃんねるユーザの書き込みそのものがコンテンツであり、アノテーションでもある。このコンテンツは書き込む人間がいなければ全く成立しない。ユーザの書き込みと、ひろゆきの悪ノリが相互に作用し合い、2ちゃんねるは運営されている。

「すべてのものにコメントをつけられる」のはいいけど、ただコメントをつけるだけなら2ちゃんねるでよくて、もっといえば双葉でもはてブでも自アンでも十分成り立つ。集合知を作ろうとしているらしいけど、コメントをいくら集めたって集合知にはならない。再利用できない情報は知識じゃないので(たとえばニコニコの動画コメントは何かの再利用ができるか?)

ちゃんと再利用するためにはアノテーションに構造をもたせないといけないし、構造をもったアノテーションなんてめんどくさくってユーザはやらない。アノテーションに構造はつけない、というのなら、それはもうインタフェースが新しくして2ちゃんねるを焼き直しただけに過ぎない。そんなんで集合知に近づく事なんてとてもとても。

それにしても、大規模に著作権侵害動画を集めて金を取るなんて、こんなシステムは一体どのくらいの期間成り立つのだろう。普通なら半年も経たずに訴訟沙汰だと思うんだけども。

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん