はてなキーワード: ソースコードとは
hotentryを閲覧していたところ、過去に山本一郎が書いたゲーム関連の記事を見て、私が経験した不快な出来事を思い出した。
その記事は https://web.archive.org/web/20121118031411/http://kirik.tea-nifty.com/diary/2012/11/post-722c.html
私は当時、記事に言及されているゲームを開発した会社に勤めていた。
ゲーム自体はいわゆるガワ変えであり、元のゲームのソースコードにアクセスすることができた。
記事には以下のように書かれているが
一番の問題は、ガチャで「有料ガチャを回しても出ない時間帯が設定することができ、実際にそのように設定されている」ことが明らかになってしまったことです。
これは大きな間違いであり、実際そのように見えたのはバナーの表示制御用カラムであってガチャ出現の制御フラグではない。(カラム名にgachaが含まれるなど邪推される内容ではあった)
このことは2chなどで話題になったものであるが、私はソースコードを確認し、そういった不正な設定はないことを当時確認した。
増田に入り浸ってばかりで、趣味でやってたプログラミングをもう忘れてしまった。
どうしたものか・・・・ と悩んだ末、なんか作業してここで成果の報告をすれば両方楽しめるのでは?と思いつく。
三日続けば奇跡だがとりあえずやってみよう
・・・といってもねぇ、別に作りたいものがあるわけでも、あったところで作れる技術があるわけでもなく・・・・
とりあえずLarabelでサンプルのプロジェクトを作成するか
(環境の構築は前々からやってあった。説明はクソめんどいというか、もう忘れたので省略)
composer create-project laravel/laravel example-app_20240130
自分も、全てオッケーだとは思ってなくて、学習する元データに怪しいポルノがあるのは良くないと思うし、
声優さんのコピーとか、絵師さんの絵柄狙い撃ちで学習してエロ画像作るのはだめだと思う。
ただこの世の中で完全にAIを使わないのは無理だよなあ。
プログラマーの書くコード、ものにもよると思うけどもうガンガンAIはいってるはず。
まえも、なんかソースコードを推測してくれるインテリジェンスみたいな機能入ってたけど、
今はChatGPTが強くて、じぶんも結構全部じゃないにしろ使うんだけども、だいたいのプログラマーは使うんじゃないだろうか(ジャンルによるのかもだけど)。
そもそも、元にしろ、Webで調べ物して→コードをまねするって感じだったと思うんだよなあ。
たまーにまんまのコメントとか残ってるよね。ファイル選択ダイアログとかな…。
もちろん考えてかけたらいいんだけど、どっかのブログのコードのまるまんまコピペよりはずっとずっと気にしなくてよくて楽だよ。
「もうAIの機能が入ってるのは使わない!」っていうのは、かなり無理で、極端で、まじめにやるなら、ヴィ―ガンと同じくらいの強烈な選り好みと努力が要りそう。
機械翻訳にしろ、無断学習にはよっているはずなんだよなー。創作とコードは別物で、コードはいいけど絵はNGとかそういう細かいこともありそうだけどね。
すごい強い言葉使うと、揚げ足とられてたいへんそうだから、強い言葉で「絶対使いません」って言うとあぶねぇな~と思う。
してませんね。
そんな事無いよね。Linuxサーバの保守とかでパッチノートとか読んだこと無い?
インストールし終わったらほとんどアップデートしてない凄まじい運用してるんならあれだけど
これだとどう?
比較の話ですが、nodeやらpythonやらに比べたら「実際にそのプロダクションで使っているコマンド」のアップデートの頻度はずっと小さいですよ。
今までにされた検証は遥かに多く、コマンドのソースコードは遥かに小さいので、当たり前ですが。
命に関わらないシステムを動かしてるWeb系の業界想定ならRustで書くのが非生産的なのは同意だけど、なんで危険になるのか知りたいね。
コードを読んだ人数も実際に動作検証された回数も1桁単位のその場その場で作られたコードよりも、
長年にわたってメンテナンスされ、膨大な人数の技術者に読まれ、億を優に超える回数で、特殊なケースを含めて様々なパターンで実行された小さなコードの方が信頼性が高いからですね
はてなスターランキング2023 - ゆとりずむ の記事を見ていて、毎年ふつふつと湧き上がっていた(ユーザー別スター数ランキングの)データ可視化の欲求を、少し遅れ馳せながら叶えてみました。
「平均スター数(y)」と「合計スター数(x)」と「ブックマーク数(面積)」の3つを使って散布図にしていますが、それぞれ関連する情報でもあるため、それほど「眺め甲斐」のあるものではないかもしれません。本当は、「社会派 - おもしろブコメ比率」のようなデータがあれば、もっとおもしろくなると思います。
また、あくまで元記事にある上位300ユーザーのみを切り出しているので、本来はこのグラフの左のほうにぶわーっとたくさんのブクマカがひしめいていることになります。
対数グラフになっているものの、id:IthacaChasma 氏が1人で飛び抜けているので、1000乗根まで使ってもなお、下位集団の拡散には限界がありました。重なり合って上位ブクマカの影に隠れてしまったブクマカさん、ごめんなさい。(あくまで0を原点とした大きな対数グラフの右上部分だけを切り取る形で表現したいので、他に拡散のさせ方がわかりませんでした。1000乗根を超えるあたりから、拡散度合いはほとんど変わらなくなります)
2024年末は元記事を見つけたらすぐに公開したいな…とか考えていますが、元記事の id:lacucaracha 氏を始め、どなたでも、こちらのソースコードはコピーし放題なので、取り込むなり改造するなりしていただくのも歓迎します。
湾岸ミッドナイトから人生を学べない悲惨な者たちを啓蒙してやる必要がある。
どうせ彼らも一度は湾岸ミッドナイトを読んでいるだろうけど、そこから人生について学べなかったのだろう。
そんな彼らにもう一度読めと言っても無駄だろう。
昔もそうだ。
だがここで私が昔通い詰めていた日記サイトの名前を10個上げても、そのどれもが分からないという人が大勢いるだろう。
何も変わってない。
それは裏に会社がいるとかなんかじゃない。
今だって「ずんだもんの動画」と言って頭に浮かべた動画の統計をとれば10人程度の投稿者の動画が全体の8割を占めるだろう。
だがずんだもんを使っている投稿者はその100倍も200倍もいて、その多くが誰からも「ずんだもんの動画」という言葉で真っ先に浮かばれることがないのだ。
これだって今でも変わらない。
ちゃんと新しいことをやれば注目される。
昔のネットではHPやブログを始めるだけで新しかったというだけだ。
HPを作るのにかかる労力が軽くなるに連れて、HPを作るだけじゃ注目されなくなった。
SNSを始めるのに勇気がいるうちは始めただけで注目されやすかったし、生成AIに早くに飛びついて続けている人は下手の横好きでも第一人者群に潜り込めてたりする。
レッドオーシャンになっていない領域に飛び込む勇気があれば、それだけで今だって注目される。
真っ赤になった海の上で昔と同じことを繰り返して注目されなくなったとボヤくのは、単に自分の分析力の不足に過ぎない。
warez全盛期だった頃と比べればずっとマシになっているとさえ思う。
本名で投稿してる癖に問題発言をしてリアルまで巻き込んで丸焦げになった人間。
匿名での悪ふざけから人生を壊してしまった人だって何人も居た。
老人会的には「小学校で小女子(こおなご)を焼きます」と2chに書き込んで警察を呼ばれたとい逸話なんか懐かしいのでは?
昔も今も、想像力が足りない人、リスクよりも目先の承認欲求を優先する人は炎上しているし、その過程で人を不用意に傷つけている。
リアル知人に言及して「Mさんがこんな馬鹿なことしててドン引きでしてよオホホホ」なんて全世界に知らしめようとする人間の割合に大差なんて無いと思う。
ウィルス入り広告を踏んでもアンチウイルスが反応してくれたり、そもそもポップアップはブロック出来るだけ今の方がマシだ。
悪質なブラクラ、危険なガセ情報、それらが飛び交っていながら自己責任が連呼された時代に比べれば、ネットに強い弁護士を探して訴えればいいという知見が広まった現代の方がまだ大人しいだろう。
エロ系の広告は昔から跋扈していたし、それを踏んで架空請求をされた人が大勢いてニュースで「払わないでください。カモリストに乗ります」と再三警告されていたはずだ。
ユーザーが悪質な広告になれるに連れてそれを掻い潜ろうとする新たな悪質広告は誕生しているが、そこにある民度の低さは今も昔も変わらない。
「そんな広告を平然と掲載するサイトが悪い」と人は言うが、昔のネットで悪質な広告が突然出てきた時、それが果たして全て怪しいサイトだけだったか?
まあそもそも昔のネットは怪しいサイトばかりだったと言えばそうなんだが。
昔のネットだって業者と金目当ての輩が作り出したものだっただろ。
古のインターネットを象徴する中心的スラム街たる2chだってひろゆきによって運営されていたもので、それは慈善事業なんかじゃなかったはずだ。
YahooやGoogleをハックするSEO対策はいつの時代も盛んで、ソースコードに無関係な単語を書き込んでアクセスを踏ませようとするサイトがいくつあったことか。
出版社が副業感覚で運営する情報サイトは無数に存在していたし、個人が大掛かりなサイトを運営するモチベにアフィリエイト収入の影響は決して小さくなかった。
そうじゃない単なる承認欲求や手慰みのために活動をする個人の数は現代にも大勢残っている。
何をどう比べた結果でこんな結論を出しているのか。
俺はこんなくだらん妄想にやり返すためだけにいちいち統計を出す気がないが、お前がそれでも言い返したいなら統計を出してくれと言いたくて堪らん。
インターネットは何も変わってない。
変わらずに楽しい。
変わらずにクソだ。
変わらずに金の話が飛び交っている。
変わらずに承認欲求で回っている。
そして、いつの時代も、オッサンが「最近の◯◯って分からねえんだよな」と言いたがるのも変わってない。
世は全てこともなしってことだな。
はてさて、神はどこにいましか。
いない┐ ┌───わからない
│ _..-ー''''''l'''''― ..、
./ .l, | `''-、
./ .l .| \
/ゝ、 l. | ヽ
./ .`'-、 l. | l
│ ゙''-、 .l,| l
| `'″ |
│ インターネットで見た ,!
l ./
.ヽ /
.\ /
`'-、 /
`''ー .......... -‐'″
∧..∧
(´・ω・`) おあとがよろしいようで
cく_>ycく__)
(___,,_,,___,,_) ∬
彡※※※※ミ 旦
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ ドッ!! / \ ワハハ! /
\ / \ ∞
l|||||||||||||| ∩,,∩ ∩,,∩ ∩,,∩ ミ∩ハ∩彡
(, )(,, ) ,,)( )( )
システムを内製するので、かろうじてプログラムをかじったことのある自分が抜擢。
泣きながら障害を起こしながらも、2~3年くらい安定稼働させた。
DCに設置された連携先のサーバーが片系死んでるのお客さんに黙ってて
閉域とはいえ、サポートとっくに切れてるしやべぇからこっちも直せ、と。
設計書もソースもなかったが、バイナリからソースコードが取り出すことができた。
さぁ切替だと思った矢先、事件が起こる。
同僚の嫁に、上司が手を出そうとしたのがばれ、上司が逆切れした。
上司と一緒は嫌だなぁ、と一緒に飛ぶことに。
サーバーはここにラッキングしてあるで、取り出して持っていってください。
手順はまとめたんで、この通りやってくれれば動きますよ。と上司に伝える。
異動後の部署で仕事をこなして1年経ったか、引継ぎの子から電話。
「連携先のサーバーが障害起こしてて、どこ見たらいいですか?」と。
あれ、障害起こすと省庁に呼ばれるやつじゃない?と思いつつ
サーバーのxxにログファイル出てない?と薄い記憶を頼りに自分が作ったプログラムをおもいだす。
え?フォルダ消えたの?Dドライブの直下って何ある?ン?ピンとこないフォルダ群。
悩む。突き放すこともできるが、呑みに行ったこともあるしなぁ…。いや、会社が危ない。
一旦電話を切って空を見つつ俺考えてますよアピールしていると、ふと気になることが。
さっきのフォルダ構成ってどっかーで見たよねー?引継ぎの子に電話。
サーバーラックにxxxxってテプラの張ってあるサーバー2台、ある?無いよね?
「…えー、っとあります。」
自分が作ったサーバーはあの時のまま、DCに運ばれるのを待っていた。
引継ぎの子が見ていたのは、1年前切り替えようとした古いサーバーで、延命というか放置されていた。
古いほうの復旧方法は流石に知らないので、そりゃしらんわーとお断り。
片系壊れてて1台で動いてるサーバーをエイヤで再起動するらしい。
その後連絡は無いので、復旧はしたんだろう。会社は今も存続している。
こういう仕事は割とあるんだがなかなかのヤバさだったので紹介したい
ちなみにサービスの内容は非常に良くてユーザーも万単位で付いているらしい
バックエンドはAWS EC2で動作しているがログインアカウントは共通化されていてパスワードを全員で共有している
ユーザーを追加しようとしたら「そのような勝手な行為はセキュリティ上許可されていません」とのこと
本番環境とStagingはインスタンスが分かれているが運用は同じ方法
Staging上で5人ぐらいが作業しているが、ホームの下にそれぞれのユーザーが自分の名前でディレクトリを作って作業している
バックエンド側のシステムは詳細は伏せるが、某システムで動いている
仮にNode.js系だとすると、package.jsonがあってnpm run installでインストールするのだが、普通にインストールしようとするとエラーになる
内容は依存関係で失敗しているのだが、本番も同じソースで動作している
動作させるにはnode_modulesをまるっとコピーして、とのこと
さっきの自分の名前のディレクトリ配下にコピーしてきて、適当なポート番号でサーバを立ち上げれば一応は動く
このため、新しいモジュールを入れようとすると依存関係で失敗するため、便利なモジュールがあってもインストールできないし
セキュリティアップデートも当てることはできない(現にバージョンがすごく古い)
ソースコードはGitHub管理されているがセーブポイント感覚でcommitされているのでコミットログを見ても何が起きているのかさっぱり分からない
おまけにPRも使わずにmainにマージしまくっていてわけがわからない
加えてソースコードはコメントアウトの嵐でどこに何が書いてあるのかさっぱりわからない
データベースはPostgreSQLだが山ほどテーブルがあるのに外部キー依存は入っていないしVIEWも作られていない
まぁ、他にもテーブルを見ていくとアンチパターンのオンパレードで、EAV、ジェイウォークあたりは確認できたしHTMLやSQLが格納されているテーブルも見つけた
ソース上でクエリを作ってAPIを作っているが、ザッと見ただけでもインジェクションし放題の状態になっていた
フロントエンドも詳細は伏せるが、いわゆるReact的なものを利用している
こちらは npm run installでインストールできるし npm run devでちゃんと動く
ただ前述の通りバックエンドはローカルで構築できないのでEC2を利用するしかなく、CORS対応のためのプロキシを自前で用意する必要があった
バックエンド同様にGitHub管理されているが、管理しているだけ
バックエンドは5人ぐらいが利用しているが、ソースコードを編集するのは実質1人なのでコンフリクトはほとんど起こさないらしいが
フロントエンドは5人ぐらいが編集するのでコンフリクトしまくっている
解消するときにデグレすることが日常茶飯事でその都度Hotfixしている
コードもコメントアウトだらけなのに加えて、不必要なコードが大量にあるので可読性が著しく低い
(難しい処理を読み解いて追いかけていったら最終的に使われていない、などが大量にある)
2000行ぐらいあるコードとかChatGPTに突っ込んだら20行ぐらいになる予感がある
また、DBがご覧の状態なので取得されるデータも全然抽象化できておらず、コードが膨れ上がっている
例えばProductの一覧データをサーバから取得して、ユーザーがクリックしたProductをCartに投入するのだが、投入する情報はProductではなく、CartItemにする必要があるし
OrderするときはOrderItemにしてAPIを叩く必要がある
ほとんど同じ情報なのだが微妙に変わっていたりKey名が違っていたりするのでそれぞれ変換する
他にも数え上げればキリがないが、コピペして少しだけ改変している部分などが大量にあってバグがあるのかどうかすら判別できない
DBにHTMLやSQLが入っていると言ったが、調べて見るとDBから取得したHTMLをそのまま埋め込んで表示していたりした
SQLについてはフロントエンド側でSQL生成しており、そのテキストをAPIに送り込んでサーバ側で実行して貰った上で格納とかしていたので
「ここにDROP TABLEとか書けばTABLE消えるんですか?」
と聞くと
とか言われたのでことの重大さを伝えたが、まだ対処できていないようだった
認証等はOAuth2を使っていたので大丈夫そうだったが、本当に大丈夫かどうかは自信がもてない
システム内容はゴミのような状態だがサービス的には良いので、幹部やプロダクトオーナーからは追加要望が山盛り来ている
開発チームが「稼働が足りない」という理由で断ったので「じゃぁ支援して」ということで自分のところに来たのだが
「申し訳ないが、そもそもそういうレベルに無いし、全て作り直しが必要」
と伝えてもどうやら伝わっていない様子
ちなみに元々の開発チームは過去にもこんな感じでサービス作ってたらしいが売れないので問題になってなかった様子
ぱっと見は動いているように見えるのが厄介なところ
正直逃げたいところではある
ある日、プールで水泳の練習をしていると、後ろから肩を叩かれて振り返ると、なんと幽霊の姿をしたおばあさんが立っていた。おばあさんは「私も泳ぐのが大好きだったの。一緒に泳ごうかしら?」と明るく笑った。
↑のように変なとこで途切れてるAIボット風の文章が昨日あたりから増田に連投されている。
プール</a>の踊り場に立ち、<a class="keyword" href="/keyword/%E6%B7%B1%E5%91%BC%E5%90%B8">深呼吸</a><p><a href="//www.■■■■■.com/getmedia/5b1435fc-567b-4c2f-b576-80910175dd7c/09ao4qsg"> </a><p><a href="//www.■■■■■.com/getmedia/b8bb6d71-74a3-4c01-831c-c49a75b5a10a/09wx0d69"> </a>
とにかく粗製乱造で一発当たれば儲けもんみたいな雑な作りのやつ。
ゲームに対しての愛なんて全くないし、ソフトウェアも全く好きそうじゃない連中が作ってる匂いプンプンの奴。
これもうヤクザが資金洗浄のために半分返ってくれば儲けもんみたいにやってんじゃねーかってなるようなゲームがあったわけじゃん。
んでまあ怪しい連中がウジャウジャいて法的にもアウトなこと結構やってるわけ。
ユーザーが解析してみたらどっから盗んできたんだよこのデータっていう事件が結構あってさ。
いやそもそもユーザーが解析してるのがおかしんだけど、相手が反社ならこっちも好き放題やっていいじゃんみたいなヤバイ空気だったんだよ。
特にDMMで新作出たときとかが凄くってモラルのないユーザーが開発者のモラルも終わってるんだからガンガンいくぞって初日に解析かけまくるわけ。
その中でも有名なのが「ジャブジャブ課金させたくなるような」ってアレな。
ソースコード解析したのか親フォルダ漁ったのかとにかくそういう違法アクセスすれすれのことやって悪を暴いてやったぜとキャッキャッしてるユーザーと、それにお似合いのどうしようもない開発者の世界だった。
でも今はそういうのだいぶ落ち着いたじゃん?
ガンホーとサイゲがず~~~っとトップに居座ってるうちになんか大企業としての落ち着きみたいなの身につけちゃって、そっから他の会社も追従して「ウチはデカイ所だからコンプラちゃんとしてますけど?まあゆーてバグったらメンテ班呼び出して徹夜させてるけどユーザーには関係ないよね」みたいな感じになってさ。
今でもちょこちょこ「これデータ抜かれたりしてるんじゃね?」って不安になるようなゲームがストアにあるけど、そういうのってどれも海外製で日本製はおおむね落ち着いてるというか勢いがないというか。