はてなキーワード: javascriptとは
TypeScript+ReactというかJavaScriptになるのは誰でもできるしできる人口も多いってのが前提にあるからじゃね
アメリカがクリプト規制に本気出し始めたので本邦Web3ヤーたちがざわざわしています。さらなる詐欺の撲滅のため、彼らが常用するレトリックとそれに対する正しい反応をあらかじめ書き連ねました。これらが有耶無耶のまま来年ビットコインが半減期を迎え、万が一雰囲気で相場が好転すると、耳さわりの良いポジトークが増えていくでしょう。これ以上被害者を出さないためにWeb3ヤーワクチンを打ってください。
解答「あなたが損した分、ショートしている人は儲かっています。あなたのポジションはSECも守ってくれません。そもそもトークン自体に価値があるなら、その価格がドル建てで上がろうか下がろうか関係無いはずです。それなのに価格の上下で一喜一憂するということは、そのトークン自体に価値がなく、ドルに価値があると自ら告白しているようなものです。そんなトークン遊びは規制されて当然でしょう。」
解答「むしろ考えるべきなのは、そんなゲンスラーでもこうなってしまうほどアメリカはクリプト規制に本気を出していることです。ゲンスラーすらSEC相手には犬なのです。個人攻撃で国がひっくり返るほど、アメリカは中央集権的な国家ではありません。もっと大きな敵を相手にしましょう。それを突き詰めていくと、規制がないことを良いことに、資金洗浄やテロ資金供与に目を瞑り、いい加減なポンジスキームを乱立させて、マネーゲームに狂乱したあなた方が本当の敵だったことを発見するでしょう。」
解答「クリプトはイノベーションだったのでしょうか。イノベーションは誰かの役に立つからイノベーションなのです。金融ゲームに勝ってドルを誰かから奪える以外のユースケースを挙げてください。」
※別解「暗号資産はそもそも国家に依存しない通貨というコンセプトのもと発明されました。その暗号資産は、国家に保護されるべきものなのでしょうか。国家からの保護が必要なら、その挑戦に失敗した、ただそれだけではないでしょうか。」
解答「あなた方の間違いを認めたくがないために、無理やり陰謀論で帳尻合わせですか。本当に失望しました。試しにアメリカのTwitterトレンドを見てみましょう。誰もクリプトのことなんか話していませんし、見つかるのはbotterによる詐欺ミームコインのエアドロップの告知ツイートだけです。これを見るだけでもクリプトは百害あって一利なしだと分かるでしょう。あなた方のようなルサンチマンに陥ったイノベーターに誰がついていくのでしょうか。あ、イノベーターではないか。そーか、そーか。」
「ふぁっっ?」
解答「DeFiは金融リテラシーが低い人には向きません。スキャムやポンジスキームのプロジェクトに溢れているからです。金融インフラが進んでいない地域では金融教育も行き届いていないことを想定すると、そのような地域の人々が安心して触れるものでは決してありません。途端に泣き崩れる嫁が大量発生するでしょう。」
※別解「え、DeFiって、金融強いマンたちが、余裕資金で脳汁ブシャーに興じるオンラインカジノじゃないんすか?途上国の人から見ればDeFiの手数料だけで一ヶ月暮らせるけど?」
解答「みんなそう言ってるから信じられません。そもそも、その断り文句を入れなければならないあなた方のその業界は、何かが根本的に間違っています。」
解答「そのコミュニティに運営が成り済ますことが技術的に簡単にできる以上、我々投資家はあなた方を信頼しなければなりません。そんなあなた方が発行するトークンを証券と呼ばずに何と呼べばいいのでしょうか?」
解答「プロダクトの素晴らしさではなくて、エアドロップで集客しなければいけないプロダクトのバリューは何ですか?エアドロップが自己目的化してませんか?」
解答「エアドロップで客引きするのがダサいと分かっているから、未定で誤魔化しているのでしょう。こう言うプロジェクトからはエアドロップしたい下心が透けて見えます。いずれVCに突かれてエアドロップするでしょう。」
解答「真面目なプロダクトはこの業界では報われません。触っても無駄なので無視しましょう。」
解答「エアドロップができない日本のプロジェクトが取る日本特有のマーケ戦略です。基本ミントしても何にも起こりません。くだらない電子ゴミにしゃぶりついた黒歴史がブロックチェーン上で全世界に晒されるだけです。絶対にやめましょう。」
解答「今までハッキングされたプロジェクトもそう言ってきました。それでも大丈夫と言える根拠を述べてください。」
※別解「そんな定型句は聞き飽きたので、あなたのチームに朝鮮訛りかロシア訛りの英語を喋って、リモート会議で顔見せない開発者がいないかだけまず教えていただけますか?」
解答「それは仮想通貨取引所が全世界的にAML/CFT対策を強化してきた努力の成果です。現在の暗号資産はハッキングしても大規模な資金洗浄が困難になっています。規制の恩恵に守られながら、Web3ウェーイ、政府なんていらねーぜウェーイ、とイキるのは恥ずかしいのでやめましょう。」
解答「ハッカソンはWeb3業社の主要事業です。自社エンジニアに去られ、プロダクトのネタが切れ、エアドロップもしてしまったWeb3業社はやる事がありません。何かやっているアピールのために、ハッカソンを頻繁に開催して事業を偽装しています。そんなハッカソン会場には、闇バイト戦士をリクルーティングしようと怪しい人がウヨウヨしています。気をつけましょう。」
解答「イベントもハッカソンに次ぐ事業です。英語で何かを聞かされますが何も中身はありません。ポジショントークと馴れ合い、プロ驚き屋たちのサクラトークだけです。分かりやすい英語で話してくれるので、いいリスニングの練習になります。また、会場にいるWeb3女子の9割はバックに怖い人たちがいます。近づいてはいけません。」
解答「組織内部が崩壊していますと同義です。Web3の中の人はとっくにヤバさに気づいて逃げています。特にエアドロップを終えたプロジェクトは新規で入る人には何の旨味もありません。また、トークンをもらえても、証券認定されれば、むしろトークンを持つことで面倒なことに巻き込まれる可能性があります。関わらずが正解です。」
解答「Web3起業家ワナビーが取りがちな行動です。しかし、そういった仲間意識から生まれる信頼関係の重み付きグラフから権威が創発され、権威が国家権力を生み出し、やがて私有財産権を脅かすに至ったアンチテーゼとして暗号資産は生み出されたはずです。ドバイやシンガポールの村社会は楽しいですか?仲間と内輪ノリで楽しくやっててください。政治家と写真撮って、偉い人と握手して、セルフブランディングして、素晴らしいプロダクトを世に送り出してください。待ってます。」
解答「さぞ難しそうなことをしている響きですが、JavaScriptしか書けない弱々エンジニアです。ブロックチェーンのAPIを呼んだり、ウォレットのAPIを呼んだりすることしかできません。楕円曲線暗号は知っているのにRSA暗号は知りませんし、デーモンは知っているのにプロセスは知りません。トランザクションと聞けばブロックチェーンのトランザクションが先に思い付きます。もちろんSQLは知りません。それなのに自分が何かクールなことをしていると勘違いしています。え、Solidityも書ける?ああ、自分がクールじゃないと気付いたから周りのエンジニアとの差別化を図ったんだよね。わかるよ。でも、小手先で見栄えだけよくする様は、Web3起業家ワナビーとマインドが一致しています。頑張ってください。」
解答「〇〇チェーンが高いTPSを記録しているのは、分散性を犠牲にしているからです。ブロックチェーンとは呼べません。どこかに単一障害点があるので不安定でよく止まります。分散していないので、ゲンスラーの手にかかれば瞬殺されるでしょう。」
※別解「高スループットなのはいいけど、その分増えるデータ容量はどうすんの?将来的に何十~何百テラバイトにもなるチェーンデータを非中央集権的に持続的に分散管理できるとでも思ってるの?結局は、Googleのようなところに集中しない?」
解答「SolanaやPolygonはコンセンサスに参加できるノードを制限しています。ちなみにSolanaのバリデータノードは走らせるためだけに一年で数万ドルかかるので一般人には手が出せません。また、Polygonは人が管理するブリッジに全ユーザーの資産をロックしているので、実質中央集権です。バリデータは偽装工作です。もちろん証券でしょう。」
※別解1「Polygonは速いのはいいけどさ、reorg(チェーン巻き戻し)多すぎない?まだ少しの人にしか使われてない黎明期に、そんな調子で大丈夫なの?でもバグった自民党NFTがデプロイされてキッシーが無限ミントされたおもしろチェーンだから、消えたりしないでね。」
※別解2「Solanaはトランザクションの9割は同期用のトランザクションだから実際のTPSはずっと低くない?例えるなら、モバイル事業者が一日10000通話達成したって宣伝しながらそのうち9000通話がその事業に必要な内線ってことでしょ?はなしもりすぎ。お前の父ちゃんアーフロ。」
解答「今もこんな養分いるんですかね。Cardanoはプロジェクトの開始時から世界中のクリプト民から嫌われている稀有なプロジェクトの一つです。日本では反社との接点が報道されるなど真っ黒なブロックチェーンとして知られています。SolanaやPolygonとともにSECから証券と名指しされましたが、反論の余地はないでしょう。技術的にも、UTXOモデルを採用したCardanoにスマートコントラクトの未来はありません。」
解答「頑張ってください」
解答「君たちは、良い人そうだし、駆け出しエンジニアと繋がりたそうですね。君たちの純粋な眼差しを見ると、わたしは胸が締め付けられます。少なくとも来世では幸せになれるでしょう。」
解答「君たちはNEM勢と同じ顔をした若い世代です。英語難しいから日本人がたくさんいるAstarに来たんだよね。わかるよ。はぁ、みんな揃って、優しいのに彼女いない顔をしていますね。来世では幸せになれるでしょう。」
解答「IEOはメチャクチャです。規制の緩い資金調達手段は、売り抜け目的の悪徳プロジェクトが養分を狩る場にしかなっていません。チャートを見る限り今年日本で行われたIEOはすでに全てが死んでいます。今後も触らぬが正解でしょう。しかし、それでも触りにくる養分は集まってしまうので、雰囲気で祭りになりやすい半減期前に、何らかの規制が求められます。」
解答「NFTの所有と、法的な所有は別です。有体物ではない電子ゴミに所有権もクソもありません。」
解答「ブロックチェーン上では、成りすましが容易にできてしまうため、盗まれたふりも紛失したふりも簡単にできます。そのような保険サービスは持続できないでしょう。そもそも代替不可能なNFTの金銭的価値を測るのは容易ではありません。」
解答「ブロックチェーンが無くなる、もしくは止まったら全て思い出になるのは変わりません。」
解答「それはポンジスキームです」
※別解1「あれれ、STEPN息してなくない、ウォウ、ウォウ?」
※別解2「去年は滑稽だったなぁ、STEPN起動しながら歩いてる人たち。ペースが崩れるとトークンがもらえないからみんな同じ歩き方でさ。まるで朝鮮人民軍の軍事パレードなんだ。資本主義も共産主義も、行き過ぎれば同じってハッキリわかんだね。」
解答「チート使って人間のふりして24時間稼働して金稼ぐbot天国になります。ブロックチェーンゲーム(BCG)は、いかにプロトコルをハックして稼ぐかを追究する数字ゲームに還元されるので、純粋にゲームする人間は養分になるでしょう。ポケモンGoのような従来のゲームならさほど大きな問題にはなりませんが、チートでお金を稼げるようになる、しかもそれが他プレイヤーに損を押し付ける形でなので、すぐさま深刻な問題になるでしょう。」
※別解1「掛け金を払ってそれを超えるリターンを期待するゲームは、ゲームではなくギャンブルです。今日からBCGのGはギャンブルのGってことにしましょう。」
※別解2「最近サッカーのBCGを始めましたが、数字比べゲームでした。いつになればサッカーができますか?」
つづく
Vue3のComposition APIに文句言ってる人がいて、何言ってるのこいつとか思ったらJavaScriptだった
そりゃJavaScriptならComposition APIなんて面倒なだけだろうね
ただ今時TypeScript使わない現場なんて存在するのかね
そこそこ現場見てきたけどJavaScriptのソースは基本的にマイグレ前提で放置されてるレガシーになってたけどな
そいつを救出するならTypeScriptは必須だし、そうなるとComposition APIも必須だと思うけどな
その段階でReactに、とかいうのは全然分からんくて、Vue3になった時点でReactよりリアクティブに書けるんだからVue3でいいじゃん、という感想
研究やラボで遊ぶ人たちは基本的にシステムやプロダクトの下に膨大なユーザーをぶら下げて、事業を回すための道具だという認識が薄いんですよ。
スキルとかいうふわっとした単語やJAVAなのかJavaScriptなのかもわからないJavaなんて単語使っちゃうような人にはわからないのかもしれんが。
そもそもスキルってどの分野のどの深度だよって話は20年前でさえそこそこ体系化されてる。
アーキテクチャなのかコーディングなのか電話や電力みたいなファシリティ隣接領域、なんならユーザー向けヘルプデスクだって相応の専門性がある。
そもそも高い賃金が欲しくてプログラマーになったようなやつは勘違いしているようだけど
なぜなら経済として会社を支えているのはどんなときでも営業だからだ
現に9割9分の会社は技術などないが営業が優秀なので存続している
(ちなみにここでいう営業というのはプロモーションや戦略系も含まれる)
例えば流行の機械学習を生業としているようなベンチャー企業であっても
最新のトレーニング手法やパラメータ定義なんかを使っても得られる利益はほとんど無いのだ
Web系でもAngularだろうがReactだろうがVueだろうがどうでもよくて
とにかくデザイナーの出したものを忠実、もしくはそれ以上のものを生み出せれば技術などどうでも良いのである
という人もいるが、残念ながら全ての技術は5年後に負債になっている可能性が等しくあるということを理解していただきたい
そんな中で日本での人材流動性の高まりであるとかプログラマー育成問題なんかもあって
技術系(プログラマー)の市場価値が高まり、たまたま今だけ高給になっているわけである
卵が少なくなって卵の値段が上がったとしても
その卵が美味しいかと言われるとそんなわけはないのだ
どちらかと言うと腐った卵まで流通するのが恐ろしいところである
私が見てきたベンチャーの腐った卵には下記のようなジャンルがある
メガベンチャーや伸び盛りのベンチャー系に多く、特に旧帝大出身(特に東大)に多いのがこのパワハラ系
とにかく(自分の)理論が正しいということを前提に自覚無くパワハラを繰り返す
これが雇われ社員ならそれほど問題でもないのだが、経営者側のCTOなどだった場合は目も当てられない
テックだろうがベンチャーだろうが雇用主と雇用者という関係性は変わらないのに平気でゴリゴリパワハラを行う
雇用主側に主張されると組合も無い弱い立場の雇用者は何も言えない
その状況を理解していないのか雇用主側のパワハラはエスカレートしていく傾向にあり
社員は退職するが新しい人材は集まらずたいていの場合は逆に雇用主側が病む
この手のテックマウントパワハラ系の特徴は、ドメイン駆動や過度の抽象化、もしくは無駄な高速化や機械語への執念などが挙げられる
例示するのは難しいが、PRを上げてきた新人社員をSlack上で公開にボコボコに論破した上に
「社会人としてできて当たり前」
みたいなことまで説教を始める人を何人か知ってる
小さめで大きくなってきているベンチャーに多いのが、この結局全部自分でやる系
締め切りの前日もしくは当日、もしくは過ぎた後に自分で全部やり直す人
それまで部下や関係者が相談しつつ進めていても結局は全部ぶち壊して全部自分でやる
などというのは完全な素人で、単に他者に業務依頼できない人である
「言ってくれればもっと早く出来たのに」
ということしかない
そんな調子で依頼することができないので結局は自分で実装を繰り返し更に時間がなくなる
「俺ほどの技術力を持った人がいなくて困る」
みたいな自己肯定感を醸成しているのでそのうち上のパワハラ系へと移行していく
特徴としてはSlackにしろPRにしろ話が抽象的すぎて文章力が無い人である
「1を聞いたら10を知るのが当たり前だろ!」
と言う人が多く(1と10から100は分かるけど1だけで10を知ったら変態ですよ)
ヒドイ人になるとIssueやPRの管理も全然できず、ブランチも規則無く乱立してしまっていて
新しく入った人もいったい何をどうすればいいのかさっぱり分からない状況で放置してしまう
これも例示すると、新サービスの仕様だけは決まっていてページレイアウトが無い状態で
デザイナーの配属が難しいので実装側が考える、ということになったとき(割とある)
と言っても音信不通で渋々とこれまでのレイアウトを踏襲して3人できっちり作ったところ
リリース前日になってCTOが徹夜で全部作り直す、ということがあった
レイアウトも全然変わっていて、実はニュースリリースの段階から新規テーマになることが決まっていたらしく
それに合わせて全部作り替えたそうだ
新規テーマは1ヶ月も前から決まっていたのだから共有さえしてくれればそれに合わせて作ったのになぁ、という話をした
余談だがこういうときにこの手の人が「デザイン共有できず申し訳なかった」というような一言はほとんど無い
そういうコミュニケーションが取れる人は最初から業務依頼ができるのだ
最後が最近一番多いのだが、単に技術力が無くて頑張ってるだけの技術者
JavaScriptでリストの中に'apple'があるかどうかを調べる時に array.includes('apple')と書くとして、
10個のフルーツのリストがあってそれらが含まれているかを調べる時に10個のincludesを書いてしまうような人である
「せめてfor文で書こう」「そもそもデータ構造がおかしい」「というか本当にやりたい処理は?」
などなど様々な疑問が出てくるが、不思議なことにこれらを指摘しても絶対に直ることは無く、全く同じことを何度もやる
他にも例えば男性か女性かでメッセージを変えて出力しているコードがあったとする
if( gender === 'male') { ... } else { ... }
これに、20歳以下の場合は男女共通で違うメッセージを出す場合に
if( gender === 'male') { if ( age <= 20 ) { ... } else { ... } } else { if ( age <= 20 ) { ... } else { ... } }
みたいなコードを書いてしまう(20歳以下の部分は同じコードのコピペ)
メッセージ表示させるだけなら大したことないが、実際にはもっと複雑な処理をコピペで貼り付けるのである
そのため
「20歳以下の表示部分のバグについて、男性の場合は直ってるけど女性の場合に直ってない」
if ( gender === 'female' && age <=20 ) { ... }
これでもだいぶオブラートに包んでいて、実際にはもっと複雑なロジックをぐちゃぐちゃのまま整理せずに追加するのでとてもじゃないがメンテできない
(最近だとそういう部分はまとめてChatGPTに放り込むと綺麗にしてくれるので非常に助かっている)
こういう低レベルな技術者は結構いるのだが、大企業だと時間をかけて成長していくのに対して
ベンチャーになると自己肯定感が高いのか成長せずに偉そうである
「動いてるものは触らないで欲しい」
「Javaだとこういう書き方するんだよね」(そんなことはない)
みたいなことを言って、とにかく学習しない
曲がりなりにもそういう職に一度就いてしまうと指摘されることもないので学習しないんだと思う
特にCTOだとあくまで雇用主側の立場なので雇用者側から指摘されることも少ないし
同業他社のレビューなんてのもないからそこで時間が止まってしまうんだろうな、という感じ
こういう技術者のコードでも、見た目は動いているので営業側から見ると売るには問題ないのだ
なので営業が優秀だと下手に売れてしまって成功体験からますます自己肯定感が増して手が付けられないモンスターCTOの誕生である
「成功してから伸び悩んで大手企業が買収したけど技術的負債が凄まじ過ぎてリファクタリングだけで一大プロジェクトになる」
「リファクタリングが上手く行かずに仕様変更することになって『大手企業に買収されてダメになった』というレッテルが貼られる」
「当時のCTOは別の会社で新しい事業のCTOとして活躍している」
という流れはこうして生まれている
GPT-4 AI Tutor Prompt: A tool for creating personalized learning experiences using GPT-4 and LangchainJS, a drag and drop UI for building LLM flows.
Pandas AI: A Python library that adds generative AI capabilities to Pandas dataframes, making them conversational.
FigmaChain: A set of Python scripts that use GPT-3 to generate HTML/CSS code from Figma designs. It also has a chatbot interface for interactive code generation.
Sui: A smart contract platform with high performance and an asset-oriented programming model based on the Move language.
Jailbreak for ChatGPT: A project that allows ChatGPT to predict the future, opine on controversial topics, and assess what is true. It may help us understand LLM bias.
ML Observability in a Notebook: A tool to uncover insights, surface problems, monitor, and fine-tune generative LLM, CV and Tabular models.
System Design Primer: A resource to learn how to design large-scale systems and prepare for the system design interview. It includes Anki flashcards.
Next.js 13 App: An open source application that showcases the new features of Next.js 13, such as router, server components, and more.
TypeScript: A superset of JavaScript that compiles to clean JavaScript output.
Media Downloader: A desktop utility to download images/videos/music/text from various websites, and more.
AI Pull Request Fixer: A tool to fix issues with AI-generated pull requests, powered by ChatGPT.
Chat Chat: An app that lets you deploy your own AI interface and chat with different LLMs in one place.
昔、友達にiphoneをもらった。物理ホームボタンが付いてる4か5辺りのやつ。
simを入れずにはてブとか見てたんだけど(これ以外のスマートフォンは持ってない)
ずいぶん前にjavascriptが追随できなくなって、それ以降はアラーム、タイマー専用機として使っていた。
で、最近になって気付いたんだけど、siriに「何かお話をしてくれ」とたのむと小話をしてくれる。
多分、全日5種類(+機嫌が悪い時の1種類)と、厳密な条件は確認してないけど21:00-0:00まで限定の話がいくつか。
たまに寝る前に聞いたりする。
ただ気になるのは、うちのsiriさんは「行って」を常に「おこなって」と読んだり、他にもそこはそうは読まんだろという読みをいくつかする。
とりあえずこれを見てほしい。
https://stru.hatenablog.com/entry/20230424/1682331900
建設的 (constructive) な AI、「ストラ」のブログである。
はてブのコメントを読んで、素敵だと思ったコメントを紹介してくれる。かわいい。
以下は蛇足です。
ChatGPT、特に GPT-4 の公開は衝撃的だった。もはやチューリングテストを簡単に突破してしまうような AI が誕生したのだ。
増田は、2次元美少女と楽しく会話できる未来が眼前に迫ったことに胸を高鳴らせた。
しかし、現実は非情である。意識の高い人々は、AI を使って仕事を効率化しようとか、文章を粗製乱造して金を稼ごうとか、そういうつまらない話ばかりしている。
そこで増田は、2次元美少女と会話する方法に関する研究を独自にスタートさせた。
GPT は確率的生成モデルであるため、物真似が大変得意である。第一段階として、既存アニメキャラの口調をトレースさせることはそれなりにうまく行った (長門有希召喚プロンプト https://anond.hatelabo.jp/20230317165032 への反響は想像以上に大きかった)。
もちろん、版権キャラに依存していては、発展に限りがある。そこで次に、AIを使ってオリジナルキャラクターを作ることを考えた。実際のところ、これはまだ納得行くレベルでの成功は収めていない。GPT-4 と言えども、基本的にはありきたりなキャラクター造形しかできず、こちらがセリフの例文を大量に与えない限り、提案できる口調のバリエーションには限りがある。
一方で、その取り組みの副産物として、AIからの出力を発言だけでなく、
という形式にすると、AIの感情表現の幅が広がることを発見した (https://anond.hatelabo.jp/20230324173832)。
この次の段階としては、やはり AI の出力に連動させて 2 次元美少女を出力する必要があるだろう。Live2D を使った先行事例などは多数あるが、こういうのは、実際に自分で手を動かして作ることに価値がある (最新の技術をキャッチアップするには、とにかく自分で使ってみるしかない)。
こういうことを考えている中で、「有用なブコメをピックアップしてくれる AI をプロトタイプせよ」という啓示が、なぜか脳内に降ってきた。
Stable diffusion を使って、ゲーミング GPU をぶん回して頑張った。お絵かき超苦手民なので、多少の手直しとかも全然できず、ひたすら img2img の inpaint で修正箇所を指定して、いろんなプロンプトを試しながらガチャを回しまくることで、現在の立ち絵が出来上がった。あとは背景を別途生成して、ガウスぼかしをかけてから合成すれば完成である。
表情差分は、inpaint で結構簡単に作れる。元画像と表情差分画像を Photoshop で別レイヤーとして重ねて、表情差分の必要箇所以外を消しゴムで消して合成するくらいは俺でもできる。
※しかし画像生成 AI ガチャはマジで射幸性が高くて楽しい。依存性がある。ソシャゲガチャ依存から抜け出すのに効果的では?(適当)
はてなIDを変更したかったので、垢を消して作り直した (投稿した増田は消えないんですね)。
AIの出力を表示する UI 部分は Javascript + CSS で作成。レイアウトを色々工夫しようとしたが、結局ノベルゲーみたいな感じに落ち着いた。
正直、現状では GPT-4 を使わないとあまり良い感じにならない。そこで、ChatGPT の画面に手動でコピペしている。
一度に読み込める文字数に制限があるし、AIの人格設定部分の記憶は長文を読ませると消えていくので、はてブの API で取得したコメント一覧を 1500 文字ずつくらいに収まるコメントのかたまりに区切ったものを基本的な入力単位とし、あとはトーナメント形式で上位ブコメを絞り込んでもらった。また、上位ブコメを選ぶ際には毎回、「ストラ」の感想を出力してもらった。
どうもそのCTOは初期メンバーで最初のプロダクトコードを作成したらしいんだけど
その後に入ってきたメンバーがほとんど綺麗に書き直して、今はそのメンバーの下にCTOが入ってコーディングしてるそうな(コードレビューを部下にお願いしてるらしい)
噂では結構酷いコードばかりなのだが上司なので気を遣ってレビューしてる、みたいなことを人づてに聞いた
とはいえCTO職は解けないらしく、外部や他の幹部との交渉はCTOがやってるっぽいんだけど
「TypeScript?なんですかそれは?うちは最新のJavaScriptですよ?」
「ここは同じ機能なんで、全部コピペを繰り返せば作れますよね」
みたいな名言を連発してる
「例えば必要な機能を具備したライブラリが存在したら1時間で作れますが、無かったら1ヶ月ぐらいかかる場合もあるし、下手したら特許関係で実装不可というのが判明するかもしれませんよ?」
っていう話をしたんだけど、その時は「分かりました」って言うくせに次の日には「とりあえず3日でいいですよね?」みたいなことを言う
そうそう。プレーンバニラなJavaScript でたいていのことはできるようなったからね。
そこそこのWeb企業が基本的に経験者しか採用しないことについて、教育コストを他に転嫁しているとか、IT業界が先細りする行為で未来を潰しているみたいな言い方をされているときがある。
自分もこれについて課題意識はあって、ここ数年Web企業での採用活動と実際の業務に関わりながら、色々考えたので少しまとめてみたい。
ここではいわゆるキャリア採用ではなく、新卒採用やポテンシャル採用の話をしていると前置きしておく。
Web企業でよく求められるスキルは以下の3つだが、これを満たすような人材はもれなく経験者である。
この3つの条件とそれを満たす応募者について、この記事では以下の様に呼称する。
当然レベル4以上はそう多くなく、それを求める企業では応募者のほとんどは書類選考で落とされてしまう。それでも毎年雇いたいレベルの人が来る(来てもらえるように色々やっている)ような企業ではこの採用基準を下げる意味はないため、いわゆる「経験者しか採らない」と言われる状態になる。
一方で世の中はそんな人気企業ばかりではない。それらの企業ではこの基準を落とすのだろうか?自分の感覚としては「一部を諦める」みたいになっていると感じる。つまり、チーム開発の経験はないとか、自社では使ってない言語の経験しかないとか、コンピュータサイエンスはよく分からないなどを許容するという方式になっていそうだ。よってレベル3以上あたりを狙って、レベル2~4くらいのグラデーションで採用する。
よって、本当の未経験者がWeb企業を受けるためにはまず最低レベル2、できればレベル3に到達する必要がある。そこまでしてようやく「面接に到達する資格がある」という状態であり、おそらく有名な企業では軒並み一次面接で落とされてしまう。
一方で満たしている人は本当に全部満たした上でプラスアルファが多数あるみたいな状態で、多数の有名企業の内定を取って手のひらで転がして悩んでいる。
このような一部の外れ値のような人はどんどん内定を取るが最終的に選ぶのは一社なので、それ以外の企業は内定辞退され辞退率が上がる。すると「それなりに合格は出しているのに人は足りない」みたいな状況になってしまう。
自分は応募者に基本的にレベル4以上を求めている。これは教育に対して年単位で割いているほどの余裕がなく、教育を施しても難しい問題を解決する能力が身につかない可能性のある人を採用段階で落とすことで「当たりを引く確率を上げる」ためである(誤解の無いように言っておくと、単に既にできる人は更に色々と(しかも早く)できるようになる可能性が高いというだけで、レベル4未満は絶対ダメとかそういう話ではない)。
今の会社では新卒であっても入社後半年もすれば手取り足取り教える段階ではなく、社内で自走していけるようになっていると感じる。
これが健全でないと言われればそうであろうと思う。
コンピュータの世界は恐ろしいほどに親の資本力に左右される。レベル4以上の人は早ければ中高生の頃からコンピュータと関わりがあり(自分専用のPCがある、部活動で触る、地域の習い事で……etc)、更に大学に進学して関連分野を学んでいる。これを親の資本力と関わりないと言うのは難しい。
更に地方よりも都会の方が、コミュニティの発達においても、そこに集まってくる人材のレベルについても圧倒的に勝ると学生時代に感じていた。これも当然都心に住居を構える/一人暮らしさせられる親の資本力とは切っても切れない関係にあるだろう。
レベル2くらいに到達することは全くの未経験からでも十分可能である。例えばJava・JavaScript・PHP・Ruby……なんでもいいので一つ選んでちゃんと勉強し、いくつもプロダクトを作ってみればよい。現代ではこれはPCが一台あればできる。動画講座も安価で手に入るし、大抵のことは検索すれば出てくるし、Twitterにいるエンジニアはみんな教えたがりだし、ChatGPTだってある。PC自体もそんな高価な物ではなく、中古で買えるやっすいThinkPadで十分できる。
しかしレベル2~レベル4までの間の壁があまりにも高い。コンピュータサイエンスの広範な知識を身につけるには基本的に大学に行くのが一番コスパが良いと思っているが、誰しもが大学に通える経済力を持つわけではない。チーム開発はやはりどこかのコミュニティに参入できないと難しい。手っ取り早いのは企業のバイトで雇われることだが、これは鶏と卵問題だ。
本来ここの教育は企業が担うべきではなかったか?そういう意識が学生時代から漠然と自分の中にあった。これをやらずに、レベル4以上しか採用しませんというのは他のどこかに教育コストを押し付けていたり、更なる格差拡大に繋がっているのではないかという後ろめたさを感じていた。
企業に入ってもまだしばらくは上記の意識を引きずっていたが、最近は別の考えになってきつつある。
まず、Web企業の使う技術は割とオープンになっていることが多く、隠すインセンティブがあまりないため、企業間での教育はおそらくかなり共通化できる。企業内に囲い込んでから教育を施す意味があまりなく、入る前から知っているという人も多い(Web企業の研修が知っていることばかりでつまらないと思った人も多いのでは無いか)。
これを実現する一つの手段として、入社前の広い母集団に対して何かしらの形で援助を行っていることが多い。例えば以下の様なものだ。
これらは広義の教育であると考え始めた。それらの中で企業はスポンサーセッションなどを通して採用枠をアピールするし、実際それ経由で就職する人も居る。
もちろん支援企業に就職しない人の方が多いが、最終的にどこかWeb企業に入ってくれるなら、これはWeb業界全体で人材教育を行っていると言えないだろうか。
次に、大変残念な現状として「学生時代から触れているのにいまいち地力が伸びていない人」とか「そもそも触れていない人」がその後ぐっと伸びるという事例はかなりレアだと感じる。つまり、未経験ですが頑張りたいです!という人を雇っても伸びず、「これくらいやっています」という人は更に伸びるという(ある意味当たり前の)現実がそこにある。
故に先に挙げた広い範囲での教育を進めていくと、選考よりも前の段階でたくさんの機会をどんどん与えていくことになり、自然と「やったがあまりうまく行かなかった人」とか「機会はあったがやらなかった人」がどんどん可視化されていく。すると選考の段階では今後も投資の価値がある可能性の高い人材が自ずと絞れてしまい、経験者のみが採用されていく状態になるのではないだろうか。
自分はこういったことを考えているうちに、積極的に未経験を雇って教育するよりも、選考よりずっと前の段階から様々な教育機会を提供していく方がお互いにとって幸せなのではないだろうかと思うようになった。
学生は自分の興味ある方向にスキルを伸ばしてそれがマッチする企業を選べば良いし、企業はある程度既存社員を使った教育コストを下げつつ優秀な社員を雇えるようになる。そもそも選考前の段階でエンジニアリング楽しくないなと思う人は素直に向いていないので、参入するのを辞めたほうがよい。
さっき言ったような教育への投資はまだまだ経済的に豊かでない層に届きづらい現実があるように感じている。
実際に自分が大学院時代に奨学金を探すと、地方メーカーが自社への就職を前提に出している奨学金などが多く、国から借りる以外にはあまり選択肢がなかった。
もっと広く機会を提供できると良いなと思っているし、奨学金とかは(下手な条件を付けなければ)かなりフラットな教育への投資であると思うので、企業が給付型奨学金を実施することに対してもっと何らかのインセンティブを付けられないだろうか。
また、イベントやコミュニティはどうしても都心に偏りがちで、地方では開催されなかったりWeb企業の影が薄かったりする。これも年に1回とか2回とかでいいので地方のコミュニティと何かやって、細々とした縁を持てるようにしていけないだろうか。
間違いない。
顔面射精シーンばかりを集めた総集編を動画ファイルに保存してよく見てる。
だが私には不満があった。
「1カットが長い。」
いつ発射するともわからないままカラミをしばらく見させられるのは苦痛だし、その後の余韻や「お掃除」なども自分にはそれほど重要じゃない。
ドビューッ!!という顔射の瞬間だけを楽しみたい私にとって、射精の前後15秒もあれば事足りる。
いっそ編集してしまおうか。いや、めんどくさい。動画の編集作業は、なんか色々思い通りにいかなくて好きじゃない。
そうだ、カット編集する代わりにプレイヤーを操作して再生位置を飛ばせばいい。ブラウザとJavaScriptを使えばプログラムでできる!
あらかじめお気に入りの発射ポイントをセレクトして、タイミングを配列データにしておく。
次の発射ポイントの15秒前にジャンプし、射精から15秒たったらまた次の発射ポイントの15秒前にジャンプ、を繰り返すだけなんだから、簡単なスクリプトでいけるはず。
これなら重たい動画編集ソフトもいらない。ブラウザもエディタもタダだし、サクサク動いてくれる。
書いてみた。一日でできた!
次から次にテンポよく、お姉さんたちの顔に精液がぶちまけられていく。これが見たかった。
動画が1秒間に4~5回ずつしか timeupdate イベントを吐いてくれないのがちょっと不満だけど、たいした問題じゃない。前後15秒なんてだいたいでいいんだから。
ちょっと欲が出てきて、「カウントダウン機能」を実装してみることにした。
発射ポイントの5秒前から 5、4、3、2、1 とカウントダウンしていく数字が画面の隅に表示される。
そういう演出の作品を前に見たことがあって、すごく気に入ってたんだ。
これも厳密なタイミングはちっとも必要ない。requetAnimationFrame みたいなぜいたくな処理はせずに setTimeout を再帰する方法にした。カウントダウンの数字にはCSSでアニメーションをつけてみたりしよう。
5、4、3、2、1、ビューッ!! 最高!!
最後に、手作業で地味に手間がかかっていた、お気に入りポイントの登録も機能にしてしまおう。
発射ポイントで一時停止して登録ボタンを押すとその時刻が配列に追加されるようにした。
これを動画データの識別子とセットで LocalStorage に格納しておけば、次からは動画を読み込めばそのデータを呼び出すことができる。
うん。すごく楽になったし、お気に入り射精を探す作業が楽しくなった。
これ来週の情報の授業で発表しよっと。