今週のざっくばらん
消費者庁からのヒアリング
先週、「消費者保護という観点からのWeb3」というテーマで、消費者庁の方からヒアリングを受けました。せっかくの機会なので、普段から考えていたことを言わせていただきました。
簡単に要点を箇条書きにすると、一年ほど、エンジニアとしてweb3の世界にどっぷりと浸かってみたけど、思いつくビジネスモデルは、全て消費者の「楽してお金を儲けたい」という欲望を利用した搾取ビジネスばかりだった。歌手のガクトがファンに「絶対に儲かる」と宣伝して売りまくって大損をさせたスピンドルの事例は、是非とも反省材料として勉強して欲しい。あんな事件の再発を防止するのが行政の仕事。Play2Earnのような、消費者の「楽をしてお金を儲けたい」という欲望を活用したビジネスが、既存の法律に照らし合わせて違法性があるかどうかなどと悠長なことを言っていては、消費者は守れない。実際に、先に始めたインフルエンサーと運営側だけが儲かり、後から入った一般消費者が搾取されている状況を見れば、法律を改正して規制するのが行政の役割。消費者を守るための方法として「消費者のリテラシーを高める」という考えは、行政としての責任放棄であり、決してしてはいけない。無知な消費者を守るのが行政の役割。ICO/IEOの類には、株式公開と同等の情報開示を義務付けるべきだし、運営側には、公開株の経営陣と同等の責任を負わせるべき。私のようなエンジニアにとっては、表向きは年利20%の利息が付くが、実は通貨発行により希薄化させているだけなDeFi商品(複数の通貨を組み合わせることにより、消費者にはその「希薄化」の部分を見えにくくしたもの)を作るのは簡単。消費者と運営側の間には、とんでもなく大きな情報格差がある。ブロックチェーン・ゲーム業界を健全にしたいのであれば、「遊んで儲かる」部分を100%排除すべき。その排除無くして、消費者の搾取は無くせない。
InstaGraph
先週も書いた、InstaGraphですが、開発は順調に進んでいます。
当初、アルファ版のリリースに向けて、以下の機能を実装する予定で始めました。ユーザー認証:oauthLLMと対話しながらknowledge graphが作れる。失敗することも多いので、質問を変えながら何度も試みることを促す仕組みになっている。作ったグラフは、すべてデータベースに auto-save される(prompt、ユーザーIDと一緒に)。デフォルトは private。ユーザーが作ったグラフのリストがhistoryとして表示される(新しいものが一番上)。作ったグラフを json としてクリップボードにコピー、もしくは、ダウンロードすることが出来る。気に入ったものが出来たら、publish & share 出来る。save したものは自動的に public domain になり、消したり、変更したり、privateに戻すことはできない。publishされたグラフにはユニークなURLを持つ個別ページが与えられ、誰でもアクセスでき、そこでグラフとインタラクトしたり、それを作ったプロンプトを読むことが出来る。JSON形式のグラフにもアクセスできる。個別ページをSNSにシェアすると、グラフの画像が表示される(Twitter card, Open Graph)。個別ページには、Waitlistページへのリンクがあり、参加を促す。Waitlistページでは、単にメアドを登録させる。
これらは、ほぼ2週間で完成し、さらに、アルファ版の次のベータ版に向けて実装しようと考えていた。Modify: 既存のグラフ(誰のものでも良い)にノードやエッジを追加する機能(LLMに既存のグラフを与えた上で、LLMに指示を与えて追加してもらう)。その場合、新しいグラフが作られる(既存のグラフの変更は出来ない)。
という機能も、ほぼ動くようになりました。LLMにグラフを作ってもらうのは便利で良いのですが、必ずしも期待通りのものが出来ないことがあるので、それを編集する機能が必須だと感じたので、前倒しで実装したのです。
言葉だけだと、イメージが湧かないでしょうから、ブラウザー上で動いているInstaGraphの画面写真を貼り付けています。これは、「太陽系の太陽と惑星」という指示で作らせたグラフに、「地球の月」を追加しているところです。
ChatGPTによるコードレビュー
私がコードを書くときに、ChatGPTやBardを利用していることは、すでにこのメルマガでも何度か触れたと思いますが、最近になって試しているのがコードレビューです。
ちなみに、コードレビューとは、自分が書いたコードを、一緒に働く仲間に見てもらうことにより、バグを未然に発見したり、メンテナンスしやすいコードを書くことを促すことです。「コードの読みやすさ」はとても重要なことは分かっていますが、自分で書いたコードを客観的な目で見ることは難しいので、コードレビューがとても役に立つのです。
試しに、いくつか開発中のプログラムを ChatGPTに読み込ませたところ、いくつか良い指摘をしてくれました。
特に良いと思ったのは、以下の部分です。
InstaGraphプロジェクトの中で、ユーザーがノードのラベルや色を変更する際に、既存のデータ(ノードの配列)を変更せずに、変更点だけ反映した新たなデータを作る必要があるため、当初は、以下のコードを書きました。const new_nodes = nodes.map((node) => {
if (node.data.id === nodeOrEdge.data.id) {
const clone = Object.assign({}, node);
clone.data = Object.assign({}, node.data);
clone.data[key] = target.value;
return clone;
}
return node;
});
一応、動いてはいますが、私自身も、読みにくいコードだとは感じていました。
コードレビューをさせると、ChatGPTは、Object.assign({}, node)より```{ ...node }``の方がコードが読みやすくなることを指摘した上で、以下のような形に書き直すことを提案してくれたのです。const new_nodes = nodes.map((node) => {
if (node.data.id === nodeIn.data.id) {
return { ...node, data: { ...node.data, [key]: target.value } };
この記事は約
NaN 分で読めます(
NaN 文字 / 画像
NaN
枚)