はてなキーワード: 富豪的プログラミングとは
VSCodeとLanguageServerProtocolによって、人類は多様なプログラミング言語に対して安価でお手軽なIDE機能を手に入れた。
このような富豪的プログラミング環境において、「一つのファイルは最大400行!」がオールドファッションセオリーと化したことは明らかである。
そも、IDEとは何か。
人類は脳領域をテキストファイルに拡張することに成功したが、その頂きは未だ遠い。
ただ思い出す、と、テキストファイル群中から期待する箇所を装置に出力する、の間の容赦ない時間スケールの隔絶。
IDEはこの隔絶を埋めることができる。
思い出したい、と念じると同時に人はgdとキーを叩き、定義ジャンプする。
この時、人がジャンプしているのはファイルシステムのインデックスではない。
時間だ。
時間を跳躍したのだ。
有子「あっキレイなお花!」
有子「いい考えね!じゃあさっそく・・・あれ?」
共太「ん?どうしたんだ?」
共太「なっなんだってー!」
-----
共太「最近SNSのアカウントが巻き込まれ凍結されるって話をよく聞くけどまさか有子のアカウントがなぁ・・・」
有子「私なにも悪いことしてないよ!お花や猫の写真をシェアしたりしてただけだもん!」
分美「あら?どうしたの?」
共太「あっ分美お姉さん!ちょうど良いところに」
有子「分美お姉さん・・・何も悪いことしてないのに私のTwitterアカウントが凍結されちゃって・・・」
分美「あら大変!でも仕方ないわよねぇTwitterシステムの上では巻き込まれ凍結はどうしても防げないわ」
共太・有子「えっそうなの!?」
分美「Twitterは問題のありそうなアカウントを独自のアルゴリズムで自動で凍結しちゃうのよ。コンピュータプログラムで判定しているからどうしとても間違えてしまうことがあるわ」
有子「プログラムが相手じゃ間違えてますよってお話することも難しいよね」
共太「Twitterが勝手に始めたことを押し付けてくるなんてヒドイじゃないか!」
有子「私の友達だって悪いことしてないのに何度も凍結されちゃって悲しい思いをしてたんだよ!」
有子「前に少しだけ話題になった気がするけど私よく知らない」
分美「分散SNSはねTwitterやFacebookみたいなSNSが動くサーバシステムを個人個人が自由に設置して、設置されたみんなのサーバ同士が繋がり合ってコミュニティネットワークを作ろうって試みなの」
分美「分散SNSを構成するサーバは個人の持ち物だから、持ち主の個人が独自にルールを定めることができるのよ」
分美「TwitterやFacebookのサービスを利用しているとTwitterやFacebookが定めたルールに利用しているユーザは従わなきゃならないけど、分散SNSはサーバ毎にルールを定められるので凍結される可能性を低くできるわ」
有子「あれ?じゃあもしかして私が分散SNSのサーバを設置したら・・・」
分美「良い点に気が付いたわね!そう、有子ちゃんが分散SNSサーバを設置したら有子ちゃんがルールよ!」
共太「すっげぇ!じゃあボクの分散SNSサーバを利用したかったら100円な!」
分美「ふふふ、共太クンの分散SNSサーバだからそのルールはもちろん定めて良いわ・・・でも分散SNSを利用するユーザにはルールを選ぶ権利があるのよ?」
有子「なるほどね!もし私の分散SNSサーバの利用が無料だったら共太クンの分散SNSサーバを使おうって思うユーザなんか居なくなるじゃない!」
分美「そうねユーザが困っちゃうようなルールを定めればユーザは利用しないだろうし、更に法律に違反するルールを定めて実行しちゃうとお巡りさんに捕まってしまうリスクも当然あるのよ」
共太「自由にルールを決められても好き勝手にしちゃ駄目なんだ・・・」
共太「でもさぁ思ったんだけど新しいSNSってユーザ数が少ないよな」
有子「SNSってやっぱりいっぱいユーザが居たほうが楽しいしね」
分美「実はね、分散SNSっていわゆる『過疎』になる可能性が非常に低いのよ。設置したら既に誰かが居るわ」
共太「えっ!?SNSを設置して直ぐは誰も居ないに決まってるじゃないか!」
有子「そうよね?居たとしてもSNSを設置した管理人さんだけでしょ?」
分美「それが分散SNSのメリットの1つなのよ。分散SNSは点在する分散SNSサーバ同士が相互接続することで成り立っているの」
分美「だから例えば分散SNSサーバαが既に設置されている状況であれば、分散SNSサーバβが新たに設置されたとき、分散SNSサーバβから既に存在する分散SNSサーバαを利用するユーザが見えてコミュニケーションが取れるのよ」
有子「えぇ!?それってすごいことじゃない!!」
共太「自分の分散SNSサーバを利用してくれるユーザを積極的に探さなくても良いわけか」
分美「わざと他のユーザを集めないで管理人がたった1人だけで利用している『お一人様』と呼ばれている分散SNSサーバだってあるわよ。他にも家族だけとか学校の友達だけの分散SNSサーバがあったり、お絵かき趣味の人のためや音楽趣味の人のための分散SNSサーバもあるわね」
有子「なるほど学校のお友達なら見知った仲だし凍結なんてほとんどありえないもんね!」
共太「通ってるスポーツクラブで分散SNSサーバ設置したら面白そうだなぁ!」
分美「独自のルールを定められるってことは利用するユーザを好きに選ぶこともできるってわけ!そしてなおかつさっきも言ったとおり他の分散SNSサーバのユーザともコミュニケーションが取れるから便利」
分美「そんな便利な分散SNSコミュニティネットワークを形成しているのが『ActivityPubプロトコル』よ!」
分美「早い話が分散SNS同士の会話がちゃんとできるようにする方式規格のことなんだけど、実際に重要なのは利用する分散SNSサーバがActivityPubプロトコルに対応しているかどうかってこと」
分美「実は分散SNSってActivityPubプロトコルが登場する以前にも様々なプロトコルが考案運用されてきたの」
分美「例を挙げればOStatusプロトコル、DFRNプロトコル、Diasporaプロトコル、Zotプロトコルあたりが有名ね」
分美「でも問題はプロトコルが違えば相互にコミュニケーションが取れないことなの」
有子「あれ?分散SNSサーバは他の分散SNSサーバと相互にコミュニケーションが取れるんじゃなかったっけ?」
分美「そう、それを実現したのがインターネットで使われる技術の標準仕様を定める団体である『W3C』が制定したActivityPubプロトコルってわけ!」
共太「そうかActivityPubプロトコル以前は分散SNSでも相互接続できない分散SNSがあったんだな」
分美「W3Cが標準仕様であるActivityPubプロトコルを定めてくれたお陰で、分散SNSのほとんどは積極的にActivityPubプロトコルを採用するようになり、ほとんどの分散SNSサーバとほとんどの分散SNSサーバの相互接続コミュニケーションが完成したわ」
共太「へぇ!ActivityPubプロトコルって凄いんだなぁ」
分美「うん!じゃあ先ず最初に語らなきゃいけないのは『GNU Social』ね!Twitterに触発されたマイクロブログ系SNSよ」
分美「GNU Socialは分散SNS最初期に登場した分散SNSで2007年まで遡るわ」
分美「12年前はidenti.caっていう名前だったの。GNU Socialという名前に落ち着いたのは2013年よ」
共太「それでも6年も前か。その時から分散SNSを考えていたなんて凄いなぁ」
分美「分散SNSのヒントになっているのは2002年に登場したP2Pファイル交換システムの『Winny』なのよ日本製ね」
分美「WinnyのあとにBitTorrentが登場したり色々日本でも問題になり善悪の評価が定まらないけれど革新的なシステムだったのは確かで、それが現代で分散SNSという実装に応用されているわ」
分美「GNU Socialの特徴はなんと言ってもその安定性の高さね。最初期に登場したこともあり機能性に乏しさは感じるしアップデートは驚くほど少ないわ。でも後に登場した分散SNSへ強い影響を与えたの」
共太「アップデートが少なくて済むほど安定してるってことか?」
分美「それもあるし、GNU Socialはプラグインによる機能追加に対応しているのよ。新機能が欲しいなら自分で作れという文化なのGNU Socialは」
分美「次に紹介するのは日本で最も人気のある分散SNS『Mastodon』ね」
分美「Twitterアカウントの凍結騒ぎで一時期Twitterでも話題にのぼったわね。MastodonはGNU Socialに触発されたマイクロブログ系SNSよ」
分美「GNU Socialを参考としたためGNU Socialと互換性がありつつも、よりもモダンな外観や機能を備え、コミュニティが活発でアップデートも非常に多いのが特徴だわ」
共太「それだけ聞くとMastodonの方が良いように感じるなぁ」
分美「日本国内にMastodonサーバは膨大に存在するし分散SNS選びに迷ったらMastodonって考えるのも悪くはないわ。情報も非常に多いしね」
分美「ただMastodonの欠点としてはGNU Socialに比べるとより高性能なサーバマシンが必要になることね。とある有名なC++プログラマが『富豪的プログラミングだ』と揶揄したのはMastodonコミュニティでは有名な話よ」
有子「自分でMastodonサーバを設置するときにサーバマシンの用意に困るわけね」
分美「まぁとは言っても今の普及価格帯ノートパソコンくらいで十分に動くわ。利用状況によるけどサーバをレンタルするとしても月額2,000円以下かしら」
分美「そんな重いMastodonに触発され動作が軽いことを念頭に置かれ開発されたマイクロブログ系分散SNS『Pleroma』も検討に値するわね。Mastodonと一部機能に互換性を持っているの。Mastodon用クライアントアプリが使えたりするのよ」
有子「GNU Socialを参考にしたMastodon、Mastodonを参考にしたPleromaか面白いなぁ」
共太「お姉さん!なんかもっとこうドーンッとスゴイやつってないの?」
分美「あるわよ?例えば『Hubzilla』なんかは高機能すぎるくらい高機能よ。SNS機能に加えて、ユーザ単位の公開範囲の限定、チャット、アドレス帳、カレンダー、オンラインストレージ、簡易Webページ作成、RSSフィードリーダー、Facebook連携、Twitter連携、ActivityPub連携etc...」
共太「スゲェ!なんでもアリかHubzilla!」
分美「もともと『ハブ』になることがコンセプトらしいわね。でも今挙げた機能はHubzillaの最大の特徴じゃないの」
有子「えっこの時点で高機能なのに?」
分美「HubzillaはZotプロトコルによるGridネットワークを特徴としていて、これはサーバ認証とユーザ認証が別個に管理されているのよ」
分美「端的に言うとHubzillaサーバαとHubzillaサーバβで1つのユーザアカウントを運用できるのよ。例えば普段使ってるHubzillaサーバαが何らかの障害でダウンしても、ユーザアカウントそのままでHubzillaサーバβで利用できちゃうのよ。普通はサーバが変わるとユーザアカウントも変えなくちゃいけないわよね。Hubzillaはユーザアカウントを維持できるの」
共太「えっHubzilla凄すぎない?」
有子「まさに分散SNSだね。サーバ1つ無くなっても他のサーバが使えちゃう」
分美「非常に先進的な試みをHubzillaはやってるんたけど、その豊富すぎる機能や細かな設定項目、更には複雑な外観で素人お断り感がスゴイのよ・・・」
分美「あるわよ?」
共太「ちょっと思ったけど何でもあるんだねw」
分美「筆者の増田もこのエントリ書くため改めて調べてみて驚いてるらしいわ。それでもっと気楽な高機能な分散SNSには『Misskey』があるわ。なんと国産よ」
分美「投稿テキストへ太字などが設定できたり、昨今のチャットサービスなどで定番化しつつあるいいね!に変わる様々な反応を送れるリアクション機能、ユーザを指定して会話できるグループトーク、様々な情報を表示するウィジェット、更にはリバーシゲームが楽しめたりするわ。他にも機能いっぱい」
有子「エンターテイメントって感じ!結構好きかも!Hubzillaは敷居が高すぎる・・・」
共太「エンターテイメントと言えばマイクロブログ系SNS以外には分散SNSってないの?」
分美「あるわよ。Hubzillaを見たときSNS部分はFacebookっぽいなと感じたと思うのだけれど、よりFacebookっぽい分散SNSに『Friendica』があるわ」
分美「FriendicaはFacebookクローンと言って良いほどFacebookと機能が酷似していて分散SNSでFacebookの機能を求めているのであれば一番手っ取り早いかもね」
共太「あるとは思ってたけどやっぱりFacebookっぽい分散SNSもあるのか」
有子「えっじゃあもしかしてInstagramっぽいのも・・・」
分美「あるわよwInstagramっぽい分散SNSは『PixelFed』ね。Instagramと同様に投稿する写真へエフェクトフィルタがかけられるわ」
有子「あるんだw」
分美「あるわよwYoutubeっぽい分散SNSは『PeerTube』というの。PeerTubeの凄さはActivityPubプロトコルへの対応だけじゃなく動画配信自体も分散機能を持つこと」
共太「あるんだw」
https://peertube.fr/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3」
分美「この動画は実際にPeerTubeへ投稿されている動画なのだけれど、複数人が同時に視聴するとPeerTubeはYoutubeにない動画配信挙動をするの」
分美「それは視聴者αに続いて視聴者βが動画の視聴を始めると、視聴者βへはPeerTubeサーバから動画配信されるだけでなく視聴者αからも動画配信されるのよ。これはWebTorrentという技術を使って実現しているわ」
分美「理論上の話になるけれど、1GBの動画をYoutubeが2人へ配信した場合は当然ながらYoutubeサーバは合計2GB配信することになるけれど、PeerTubeサーバの場合は合計1.5GBで済んでしまうのよ。残り0.5GBは他の視聴者からまかなう」
有子「これは本当に凄いじゃない!お姉さん当然100人が同時視聴するとPeerTubeサーバの送信量はYoutubeサーバに比べてもっと下がるんでしょ!?」
分美「もちろん理論値だし様々な状況によってPeerTubeサーバの送信量は変わるけど間違いなくYoutubeサーバが100人へ配信するよりは送信量がかなり少なくなるわ」
分美「ちなみに引用しているPeerTubeサーバはわざとフランスのPeerTubeサーバを選んでいるわ。私1人だと何度も動画が途中で止まったけれど増田に貼った時点でどうなるか楽しみね」
共太「PeerTubeスゲェな!もっと知られていても良さそうなのに」
分美「個人の動画配信って自宅サーバでやらない限りはレンタルサーバとかだとかなりお金掛かるのよ。PeerTubeだと送信料が抑えられると言っても積み重なるとかなりの額になるしね」
分美「そして例えばJ:COMとか一部のインターネットプロバイダはWebTorrentなどのP2P通信に規制をかけているところもあるわ。そのようなプロバイダを契約しているとPeerTubeの旨味は活かせないわね」
有子「PeerTubeもActivityPubプロトコルでリプライしたりできるんてしょ?」
分美「できるわ」
https://peertube.cpy.re/videos/watch/da2b08d4-a242-4170-b32a-4ec8cbdca701
分美「この動画はPeerTubeとMastodonのやりとりのデモ動画よ。Mastodon上でPeerTube動画を視聴してリプライしてるわね。そのリプライはPeerTubeへ反映されているの」
有子「すごい!まったく違うWebサービスなのにやりとり出来ちゃってる!」
共太「さっきのPixelFedもやりとりできるんだろ?いいね!とか。これがActivityPubプロトコル・・・!!」
分美「ActivityPubプロトコルは今後ともどんどん様々なWebサービスに広がっていくわ。現在開発中だけれど電子掲示板Redditに触発されActivityPubプロトコルを組み込んだ電子掲示板『Prismo』は良い例ね。Prismoが正式に稼働するとMastodonから電子掲示板の雑談へ参加できるようになるわ」
分美「そして別にActivityPubプロトコルへ対応するため新しくWebサービスを始める必要もないのよ。例えば過去に日本国内で栄華を極めたmixiあたりがActivityPubプロトコルをサポートしたら一気にmixiから観測できるアクティブユーザが数十万人増えるわ。起死回生の一手として検討に値するわね。はてなハイクもそうよ」
分美「ユーザが居ないこと、ユーザを集めることが問題になるのならば常にアクティブユーザが居ることへ期待できるActivityPubプロトコルを採用するのはアリなのよ。 Permalink | 記事への反応(3) | 20:57
後なんかweb系の企業がgolang採用多いので、ある程度詳しくなっておけば就職困らなそうという予防線。
今のところが成功しなかったらeurekaとかmercariとか雇ってくれませんか!
どっちもユーザーです!(ペアーズでは3名ぐらい逢った、メルカリではバイクとMacbook Air売ったなー。)
ポケモンGoとかやんねーし、地味に自分がよく使っているアプリやサービスから成功パターンを得るのがいいのかなぁ
なんか、人との接点がうまくできているCtoCサービスがうまくいっているような感じが(CtoCなんだから当たり前か、何いってんだ)
人とコンバージョンしたいです。