読書と畑と眠りのすすめ
この散文はChatGPTと共同で書きました。
生産性はAIが持っていった。ならば残された人間の役目は明確である。
書を読め。畑を耕せ。あとは寝ろ。
十分である。
現代における最も致命的なリスクは「人間がAIと同じことをしようとすること」であり、
それを最も顕著に表したのが「副業×ChatGPTで月5万円」みたいな自己啓発の螺旋である。
目的と手段を取り違えたワークショップ。
いいから魚を釣り、書を読み、眠れ。以上。
o3はプロダクトにはオーバースペックではという話
某o3について、その使われた精度指標なども相まって「数学オリンピックが解けてどうプロダクトに役に立つのか」「AGIを作るための布石か」といったツイートを見た。
ここではそれらを否定するわけではなく、ただ一つ、しがないエンジニアが幼少期から思っていたことを書かせてもらおうと思う。
端的に言って、自分と対等な議論相手が欲しいのだ。あの値段出してもあのレベルの人間はそうそう雇えない。コスパは最高というよりぶっちぎっている。金で知性が買えるならどんなものであれすべて安い。これに尽きる。
特に自分のように「各分野で探せば上位互換はそれなりにいるけど、合体連結した人はあまり見ない (0ではない)」という人間の孤独を埋めるツールなのである。
o3を「プロダクトに使おう」と思うならおそらくだいたいのタスクにはオーバースペックになるだろう。それでもここにいる1人の孤独を癒すという、人間にも難しい仕事は彼にしかできない。
かのノイマンは言った;「これで自分の次に計算の速いやつができた」
o3が「自分の次に賢いやつ」になる未来を心から待ち望んでいる。
余談だがo1はproでもまだまだ忖度する傾向がある。OpenAIの方々にはこっちの言う事に反例を出して歯向かってくれるAGIの開発を心より期待している。
「地面師たち」で学ぶプロジェクトマネジメントとチームマネジメント: プロジェクト概要
非常に久々なのだが、10月のPM試験を控えて書きたい題材ができたので。
なお昨年のDBは落ちた。ER図を絶対書かないという意地をはったが無理だった。今回もそろそろ午前Iの免除が切れるところで、本来はSAを受けようと思っていたのだが、春しかない & 春落ちたら午前I免除も切れる、ということでリスク回避でPMを受けることにした。言うほど回避してるか?それはしらん。でもDBみたいな「(技術負債が溜まりに溜まった) データベーススペシャリスト試験」をまた受けるよりは気持ちがマシだと思った。
さて、本題。Netflixオリジナルドラマ「地面師たち」、流行ってますよね。これ、結構プロジェクトマネジメントとチームマネジメントの話題を整理しやすい気がしたんですよね。もとの土地開発のプロジェクトで整理しろ?それはそう。
実際の某事件が元ネタになっているのであまり盛大に擦る気はない。詐欺は犯罪であり、騙した人間が一番悪いということは大前提においてこの先の話を読んでほしい。また、盛大にドラマのネタバレを含む。未視聴の方は要注意である。
続きを読むクラスとインスタンスの違い (アルセウスとまわるオブジェクト指向プログラミング)
やって参りました、ポケモンと回るIT界隈。3回目の今回は「クラスとインスタンス」です。 私も完全に理解してますかと言われたらNoなので理性的なマサカリは大歓迎です。
クラスとインスタンス (オブジェクト) には様々なたとえ話があります。たい焼き器や車などです。しかしこれらにはそれぞれ問題があります; まずたい焼き器をクラスとするインスタンスであるたい焼きには「食べられる」以外のメソッドが考えにくくなります。メソッドまで含めてのクラスですから、これはすこし不十分と言わざるを得ません。次に車です。これは人によりますが、鋳型をクラスとして想像してしまい、1つの鋳型からは1つの車種しか作れないことからインスタンスとクラスの違いが不明瞭になってしまうことがあるのではないかと思っています (少なくとも私はそうでした)。
そこで私は考えました。ポケモンで説明しよう、と。
今回の案はこちらの動画と記事にインスパイアされております。
アルセウス、ポケモンを作る
ある日のこと、アルセウス社長は2022年発売のポケモンスカーレット・バイオレットの発売に向けてポケモンを新たにデザインしていました。アルセウス社長は賢いので、今までのポケモンもクラスを作ってそのインスタンスとして作成していました。次のようなクラスです。
class Pokemon: def __init__(self, pokemon_id, name, type1, type2, level, waza): self.pokemon_id = pokemon_id self.name = name self.type1 = type1 self.type2 = type2 self.level = level self.waza = waza # waza: list, len(waza) == 4 def self.act_waza1(self): # 1番目の技を繰り出す def self.generate(self): # 進化する def self.remember_waza(self): # 技を覚える
これがざっくりながら「Pokemon クラス」です。クラスは単体では実体をなしません。インスタンスとして初期化して (ポケモン界に生み出して) 初めて実体を持ちます。
例えばフシギダネを作る際には
Pochi = Pokemon(0, 'Bulbasaur', 'glass', 'poison',
5, ['たいあたり', 'なきごえ', 'つるのムチ', ''])
などとします。
しかし今回SVではテラスタイプというものが実装されるではありませんか、アルセウスは慌てて次のようにPokemon クラスを書き換えました。
class Pokemon_SV: def __init__(self, pokemon_id, name, type1, type2, tera_type, level, waza): self.pokemon_id = pokemon_id self.name = name self.type1 = type1 self.type2 = type2 self.tera_type = tera_type self.level = level self.waza = waza # waza: list, len(waza) == 4 def.self.terastal(self): # テラスタルする def self.act_waza1(self): # 1番目の技を繰り出す def self.generate(self): # 進化する def self.remember_waza(self): # 技を覚える
テラスタルに関する部分が増えていることにお気づきかと思います (ほんとは多分継承とかなんとか使ってベタ書きしないほうがいい)。SVでのポケモン (インスタンス) はすべてこの Pokemon_SV クラスを用いて作ることができます。これがクラスの利点です。
以上がざっくりながらクラスとインスタンスの違いとその利点でした。ご参考になれば幸いです。
乗っ取り等を防ぐためのセキュリティ覚書 (初級)
この記事で特定の人を責める意図は一切ございません。セキュリティにはある程度個人の自助努力も必要ですが、一番悪いのは攻撃した側です。
最近ハンドメイド界隈その他でTwitter等の乗っ取りが増えているようである。今までも偽アカウントやプレゼント企画に乗じてのDM個人情報聞き出しはあったが、今回は本来のアカウントを乗っ取られる被害が出始めているようである。自分のアカウントをそのような犯罪の温床にしないために、いくつか個人でできる対策がある。
1. パスワードは推測されづらく、できる限りランダムなものを作り、違うサイトで使い回さないようにする。可能ならば紙ベースのみで確実に保存する。ブラウザに保存しない。
言わずもがなではあるが、実際これが一番難しい。私もぶっちゃけサボってChromeに覚えさせている。が、クレカやインターネットバンキング、その他仕事で重要なアカウントだけでも徹底する価値はある。大切にしてる本のタイトルや好きな一節をローマ字書きにするのも長さを稼いで覚えやすくする点では良い方法である。ただし推測されづらくすることをお忘れなく (月が綺麗ですね、などは意味がない)。
私も実はPCのパスワードを大学の実習の一環で破られたことがある (PC自体は大学のものだがアカウントは個人で作っていた)。その頃は私もセキュリティ意識が低く、名前+誕生日程度のクッソ弱弱パスワードだったのだが、1週間の間に見事に破られていた。それ以降PCのパスワードはもちろん、大体のパスワードはランダム生成させるようにしている。
2. 2要素認証、特にログイン時自分の電話番号等に通知が来るタイプの2要素認証を設定する。
2要素認証とは、例えば普段のIDとパスワードに加えて登録電話番号に6桁くらいの番号が届き、それを入力するタイプのログイン方法である。この場合、パスワードが突破された段階で登録電話番号に試行がいくつか飛んでくるのが見える (もしくは攻撃者が諦める) ため、その場ですべてのデバイスからサインアウトしてパスワードを変更するなど、対応の時間が少し稼げる。
私もたまにPayPayカードにログインしようとする試行が飛んでくるが、そもそもPayPayカードは作っていない。謎ではある。
3. Twitterで占いなど遊ぶときは慎重に
私も正直バカスカ遊んでいる。フォロワーが遊んでるとマジでなんも考えずに遊んでいるが、これも注意が必要である。特に「Twitterの内容から解析」タイプの占いは「フォロー・フォロワーを見る」「タイムラインを見て書き込む」などの権限ががっつり与えられていることが多いため、さらなる注意が必要である。これは悪意のない場合もある (以下の説明参照) が、どうしても必要な場合を除き書き込み権限は与えないに越したことはない。
作成者が信頼できるかどうか、本当に必要な機能かなどを吟味した上で許可することが必要である。あと定期的にアプリの連携解除をすることもリスクを下げる行動である。
4. 不審な添付ファイルを開かない。「実行ファイル」というものを知っておく。Word/Excelのマクロ機能の危険性を知っておく。
LINEやDiscordなどのチャット式コミュニケーションアプリが主流となり、「メールに添付ファイルでお送りする」ことも少なくなったが、相手から送られてくるファイルやメール、URLは広い意味ですべて添付ファイルとここでは呼ぼう。添付ファイルは開いただけでアウトのもの (ウイルスを仕込むwebサーバへのURLなど) から、実行したりマクロを有効にするまで異常性を発揮しないものまで様々あるが、とにかく開かないに越したことはない。セキュリティソフトも万能ではないため、相手からはなるべく相対的に安全な方法で情報を受け取ろう (テキストメッセージや画像単体など)。
また、見てるとどうやら「zipファイルを解凍し、中にあった実行ファイル (.bat, .exeなど) を実行してしまった」という例もあるようである。まず重要なのは、オーダーメイド依頼を含む通常の業務で実行ファイルが送られてくることはまずありえないと言っていいことである。実行ファイルというのは大体アプリだと思ってもらえばいいのだが、通常のアプリケーションと違って何も表示しないまま動かすこともできる。つまり気付かれないようにウイルスなりなんなりを仕込む事ができるのである。オーダメイド依頼等にそのようなファイルが必要である可能性はほぼ0と言っていいことは関係者の皆様にはご納得いただけるだろう。
拡張子はデフォルトでは表示されないこともある。絶対に表示させよう。
さらに、実行ファイル相当で広く流通しているものとして、WordやExcelのマクロというものがある。うまく使えばもちろん便利なのだが、うまく使えばウイルスを仕込むこともできる。マクロも実行時に特に何も表示されないことが多いので恐ろしい限りである。*1マクロ付きの文章が来た場合、必要ならば相手にマクロを解除して送ってもらうよう依頼しよう。それで不審な言動をし始めたら黒である。関係を絶とう。
これ以外にもセキュリティについては様々な攻撃手法と対応策があるが、それはそれだけで国家試験が作れるくらいあるので、一気に知ろうとするのではなく、上の4つくらいを確実に行う・知ることが重要であると思われる。
最後に、国 (経済産業省) 主導のセキュリティ支援窓口であるIPAを紹介して締めようと思う。
相談窓口のほか、不幸にして被害にあった後のご報告も広く募っています。同じ攻撃手法で仲間が攻撃されるのを防ぐべく、ご一報いただけますと幸いです。*2