はてなキーワード: エンジニアリングとは
前提として、今の5ちゃんねるってグロ画像やら支離滅裂な書き込みを連投しまくるスクリプトによってガチでここ数ヶ月以上機能停止するほど荒されまくってて
んで運営が全然対策できてない状態なんだけど、エンジニアリングとかインシデント対応方針とかの観点から見てなんで運営がここまで対応できないのか教えてほしい
技術的に専ブラでもCookie使えるなら別URL挟んで簡単なCAPTCHA認証しないと書き込めなくするとか、忍法帖みたいに書き込みできるまでのインターバルを必要にするとか、VPNを弾くとか、そもそも業務妨害で警察の協力を仰ぐとか、
なんかいろいろやりようがある気がするし、なんなら諸々の対策方法は本職のユーザーから他にもいろいろ提案されてたりするんだけど
それらの技術的対策が行えない技術的な理由が何かあるんだろうか
それとも、やり方はわかってるけど例えば対応能力があるエンジニアがいないとか技術的負債が大きすぎて誰も本番環境をさわれない状態とか、そういうのがあるんだろうか?
こういうのに詳しい人見解を聞かせてくれ
セキュリティソフトウェアの研究開発、という仕事を自分の経験をもとに紹介します。主な想定読者は、情報セキュリティ関連を仕事にしたいと考えている学生や若手、特に、いわゆる「低レイヤー技術」に惹かれている人です。
低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元Linuxカーネル開発技術者の場合 - 覚書を読んで思い出したのですが、セキュリティキャンプなどで、セキュリティに興味のある学生とやり取りをしていて、ソフトウェアエンジニアリングの分野でセキュリティ関連のキャリアが議論されることが少ないと感じました。自分はセキュリティソフトウェアの研究開発に10年以上携わっていることもあり、この職業は低レイヤー技術をセキュリティに活かせる面白い選択肢だと思っているので、紹介してみることにしました。
セキュリティソフトウェアの研究開発では、アンチウイルスやEDRなど、文字通りセキュリティ機能を提供するソフトウェアを研究、開発します。
「研究、開発」と書いたように、この職業には研究と開発の両面があります。
研究は、実現可能性や価値が定かでないアイディアを調査、試験実装する、という仕事がその一部です。例えば、ファイルをディスクに書き込まないマルウェアを検知したいが、どのような技術的選択肢と課題があるかを評価する。実現可能な場合は、開発チームと協働して実装、出荷にこぎつける。あるいは、製品として実装された機能がバイパスされないか調査したり、バイパスされてしまった場合にはその原因を究明したりして、製品を改善するために開発チームと協働する、という場合もあります。
開発は、研究との対比という意味においては、できると判っているアイディアを保守性の高い状態で実現する作業だといえます。保守性の重視は研究との大きな違いで、例えば、研究では、コメントもテストものない書き殴りのコードで十分であっても、開発の工程では、5年後でも改修が必要になるため許容できなかったりします。製品という大きなコードの中での開発であるため、別のチームや利害関係者との連携も、研究の場合よりずっと重要です。例えば、リードのポジションであれば、研究工程で実現可能と分かったアイディアが、既存の機能に統合する形で実装されるべきか否かアーキテクトと議論したり、テスト計画を品質保証のチームと練ったり、プロジェクトのスケジュールを調整したりします。
研究は、既定の手法がなく、闇の中を手探りで進める面があり、最終的に製品レベルにこぎつけずに終わる場合も多いです。判りやすい成果が出ない場合があるので、好き嫌いが別れやすいです。自分は、職業としては研究3,開発7くらいのバランスが好きで、趣味では逆に研究8,開発2くらいになってます。趣味では成果が出ようが出まいが過程が楽しければ満足、という個人的な考え方がこの違いとして出ているようです。
この職業のおいて、低レイヤー技術に明るいことは、ほかの多くのエンジニアができないことができるという付加価値、だと自分は考えています。例えば、特定分野の詳細を知っていることでその分野の研究、開発が効率よくできたり、新しいアイディアが生まれたりします。具体例をいくつか挙げると、OSの仮想メモリー管理に親しみがあれば、プロセスのメモリーを走査してメモリー上のみに存在するマルウェアを検出する機能をより効果的に設計、実装できる。プロセッサーの機能の詳細を知っていれば、CETという新しいプロセッサーにしかないセキュリティ機能を、他のプロセッサー機能を使って疑似的に実現するというアイディアを思いつく。などです。脆弱性の知識や探す技術も、とても価値があります。脆弱性を知らない人と、知っている人では、どちらが脆弱性の少ない設計や実装をできるでしょう。自社の製品の脆弱性を、開発中に発見するのと、テスト・出荷後に発見、改修を加えるのではどちらのコストが少なくて済むでしょう。コンパイラーの知識は検出ロジックを書くための独自言語の開発に、エミュレーターの実装経験はマルウェア解析エンジンの開発に役立ちます。
ただ、低レイヤー技術は付加価値であることに注意してほしいです。
まず前提として、ほかの平均的なエンジニアができることに加えて低レイヤー技術があるべきです。セキュリティソフトウェア開発者の多くは、実はセキュリティや低レイヤーのエキスパートではありません。優秀な開発者であることに加えてこれらを必要条件にしてしまうと、人が雇えなくなってしまうためです。そのため、一般的なエンジニアリングの能力に加えて低レイヤー技術やセキュリティという強みがあると、大多数の開発者ができない(したがらない)ことを任せられる人、と差別化してもらえる可能性が高いです。一方、エンジニアリングに対する素養や意欲なしでは、セキュリティソフトウェアの研究開発職は難しいです。その場合、研究者のほうがあっています。(ちなみに自分は、脆弱性解析とマルウェア解析を専門とする研究職にも各2年ほど就いていました。)
ここからは一般論になりますが、OSに詳しくても、プロセッサーに詳しくても、バグハントが得意でも、それを会社が求める結果を出すために使えなくては意味がありません。会社は、あなたがやりたい仕事をくれません。会社は、会社が必要としている仕事をもってくるだけです。
ではどうやって「会社が必要とする仕事」と「あなたがやりたい仕事」の重複を最大化するか。
まずは、上司にどういう仕事をしたいかを明示的に、繰り返し話しておきます。さらに、能動的に、自分からプロジェクトのアイディアを提案して意欲を示すことも心がけます。あなたの仕事を最終的に選ぶのは上司である以上、上司からの理解は必須です。良い上司(そして良い上司であることを可能する、良い上司の上司)は、必ず、あなたの能力に対する信頼度に応じて、あなたの意向を考慮してくれます。言い換えると、まずはやりたい仕事を主張する前に、与えられた仕事をこなして信頼を得る必要があります。個人的な経験では、これは1年あれば十分で、1年たっても状況に変化がない場合、あなたの仕事ぶりが上司の信頼を得るのに不十分か、あなたがやりたい仕事をうまく伝えられていないか、上司やその上司あるいは会社に問題があるか、あるいはこれらの組み合わせの可能性が高いです。
上記がうまくいかない場合、チームや会社を変えることを検討しましょう。チーム異動はリスクの少ない選択肢です。これも、実現するか否かは、上司からの信頼の程度に大きく依存します。会社を変えるのはリスクが大きいですが、上司やその上司を変えるよりも現実的です。新しい会社でもうまくいかなかったら、また新しい会社を探せばOKです。最終的にあった会社に行きつくか、自分の能力やコミュニケーションに問題があることに気づくと思います。
最後に、「会社が必要とする仕事」と「あなたがやりたい仕事」の重複を追求しないことも視野にいれておきましょう。仕事はあくまでお金のためであって、やりたい仕事のほうが楽しいが必要要件ではない。……という視点を持っておくと、些細なミスマッチで不満をためて、そこそこ良い環境から性急に転職してしまう、という状況を防ぎやすいです。隣の芝生は青い、ということを忘れないように。
セキュリティソフトウェアの研究開発は、セキュリティに深く関わりつつ低レイヤー技術を付加価値として自分を差別化できる面白い職業です。
ところで自分は7年務めた研究開発職を退職しました。おめでとう、ありがとう。これからは、また違う低レイヤー技術+セキュリティの研究開発をしていきます。
結論から言うと「やっぱりWeb系がいい。SIerは正直ゴミ」です。
今ではそこまで「SIerも悪くないよ」とか言われますが、個人的には普通にゴミだなと思ってしまいました。
私の感じた違いは以下のあたりです。
・朝から晩まで新聞読んでたりお菓子食ってたりダベってたりして仕事しないオッサンが少なくて、快適。
・「やります〜」って言って、すぐできることなのに無駄にダラダラして仕事引き伸ばして、実際にやるまでに7時間位掛かるような人が少ない。
・社内政治のため(上司のご機嫌取りとか)の仕事をする人が少ない。
・金さえもらえればプロダクトに興味ないとか、クライアントに興味ない、いわゆる「やる気のない人」が少ない。
・Excelの誤字脱字をひたすらチェックするような虚無感の強い仕事が少ない。
・「こんな古くさい技術、他の何のプロジェクトで使うねん」っていう枯れた技術をあまり使わない。(ゼロではない)
・作業スペースが広い。オフィスがきれい。女子が多い。総務の人がかわいい。(SIerにも可愛い総務の人はいました。)
・開発用PCに色々と楽にインストールとかできる。いちいち申請とかいらない。
セキュリティも基本的には社員を信用する形にしてるので、ルールがガチガチじゃなくて快適です。
・上の話にも通じるが、勤怠のルールもゆるい事が多い。
正直多少給料が下がったとしても、人生全体の満足度が大きく違うので、Web系の方が全然良いです、というか
エンジニアリングっぽいことをして帰った夜と、誰でも出来るエクセルの編集作業をして帰った夜では全く感覚が違う。
と少なくとも私は思いました。
とにかく、働いているエンジニアの層が違う。
自己研鑽して技術を身につけようとしてる人がWeb系には多いし、
ゴルフ始めて上司や客に気に入られようとしてる人がSIerには多い。
仕事のやり方とかは、Web系の方が人に依存しすぎてて運用ぐだってたりしますし。
その点SIerは「誰でも出来るようにする」ことに力を注いでいるので
まあでも、普通にやる気がなくてサボるオッサンがチームにいないだけで快適度が違いました。
となりで永遠に天を仰いでたりお菓子食ってたり新聞読んでる人がいると、本当に「なんだコイツ?」ってなるので。
仕事しないなら帰ってくれ。
科学っていうか工学の領域だから。社会においてリアルな問題として立ち上がるときに「科学」と呼ばれるものは。
原発(事故対応)は言うまでもなく核物理学だけでなく広範な分野に跨がるエンジニアリングの複合体。
抜き身の科学の原則を振りかざすことに意味があるという機会はそうないだろう。
それなのに、この世に純粋科学とそれ以外のゴチャゴチャしたおまじないしかないかのように「本来の科学的な姿勢とは〜」とか語る奴は学者馬鹿というか端的にモグリなんだろう。ガチなサイエンティストは嫌でも娑婆世間のリアルを相手に苦労を重ねているはず。
■「工学も科学だ」んなこた誰でもわかっとるわ。書き方が不十分だったかもしらんが。
科学全体の中の、現在進行形の社会との界面にある工学のレイヤー、政治や倫理が嵌入してくるその入り組んだシーンで起きてる問題において
基層から直接、基礎科学のプロトコルの断片を掬い上げてきて水戸黄門の印籠よろしくかざすことはなにか生産的ですか、ときに原理原則に立ち返ることの必要をいうなら「やれやれ、これだから一般人は」じゃなくインターフェース部分の科学コミュニケーションを本気で頑張らないと自己満足したいだけの説教バカかと疑われますよ
■「科学は当為を〜そうなの?」科学はまあなんのためというかそれ自体のために存在するとして、工学は人を幸せにしてなんぼなんだから当然そうだと思ってるけど?
アマプラで無料の『世界を変えたテレビゲーム戦争』を観てたら、
No way. We are engineers. We don't know anything about manufacturing.
(とんでもない。僕たちはエンジニアであって、製造業のことなんて何も知らないんだから)
というセリフが出ててきた。
これは、アタリ設立前のノーラン・ブッシュネルが、『Pong』の成功を受けて仲間のエンジニアに
「(Pong を大量生産するため)製造業に乗り出そうよ」と提案したのにたいする返事なんだけど、
「頭脳労働であるエンジニアリングと、手作業としての製造業をハッキリ区別してるんだ」と思ってハッとした。
というのも、日本だとエンジニアは作業服を着て仕事してるイメージがあったから(特に60~80年代は)。
作業服は無意識レベルで「あなたは油汚れや工作機械の操作が想定される現場にいますよ」
というメッセージを伝達するから、そういう価値観・世界観なんですよね?きっと。
一方、英語のマニュファクチャーの「マニュ」は「手の」に由来するから、
雇用主の「手先」となって肉体労働をする工場労働者と(現代日本では社畜と言い換えて差し支えない)
机上で設計作業を行うエンジニアを区別したくなるのかもしれない。無意識的に…
【追記】
余談だけど、リドスコの映画『プロメテウス』『エイリアン:コヴェナント』では、
最近、pixivにアップされてる、絵師さんたちがAIに出力させた作品群で抜いてるんですよ。
AVだと局部が見えちゃってるのと、男優が映ってて没入できないので、グラビアアイドルのIVで抜く生活をずっと続けてきたんですよね。アニメとかイラストでも没入感がなくてだめ。もう10代の頃からずっと。
それでも、性癖にビシッと合う作品なんてないものだから、最大公約数的な性的興奮で対処してきたわけですよ。
それが、最近はAI技術の進歩で、ありとあらゆる性癖に向けた、レベルも解像度も高い作品が次々にアップされるようになってきたんですよね。
自分は体格のいい女性に物理的にも精神的にも見下されるのが最高に興奮する性癖なんですけど、それを満たしてくれるAVもIVもなかったんですよ。あったとしても、「う~んもう少しこういう女性だったらな…」とか「こういうシチュが欲しいんだよな…」みたいな些細な不満があって、まあそんなに理想の作品なんて無いわけで、ある程度興奮できればよしとしてきたんです。みなさんそうですよね。
ところが、AIの出力したイラストだと、性癖ドンピシャのものがゴロゴロ出てくる。しかもぱっと見リアルと見紛うような解像度とリアル度だから、もう迷うことなく絶頂を迎えることができるんです。
妥協した作品で抜いてしまうと、事後に「どうしてこんなもので興奮してしまったのか…」と自責の念が湧き上がってくるのに対して、性癖にぴたり合ったものだと、事後でも「いやこれは興奮するでしょ…」となって、全然落ち込まないから、気分が全然違うんですよね。まるで、パートナーとS○Xした後のような、心身ともに満たされる感覚。
しかも、子どもは二人までにしようと妻と話し合っていて、二人目の子どもが2月に生まれて、その子の育児真っ最中なので、言ってみたら自分の生殖機能はもうあってもなくてもみたいなものなので、「精子を無駄にしちゃった…」という背徳感にも襲われないのも大きいと思う。
ここまで来たら、後は自分がプロンプトを書けるようになれば好みのイラストを出力できるわけだから、さらにこの道を究められるかもしれない。そのためだけにPythonやプロンプトエンジニアリングを勉強してみようかとも思ってる。
プログラミングやエンジニアリングなんていう狭い話じゃなくて、
元々俺が言っているのは、働かざる者食うべからずと同レベルって話なんよ。
その枠で考えるなら、プログラミング適正があって吹き上がってるやつらって、嫁自慢するようなやつらよ。
自分は学校でコンピューターサイエンスを修めてないし、新卒で就職もしてない野良犬みたいな経歴です。しょうもないアラサーです。
Fラン大学の文系を出て、理由もなく2年ニート、その後はバイトからはじめて、小さいソフトハウスに入るもパワハラで1年くらいで退職しました。
その後は夜中にサーバーを再起動するIT土方をしていました。月の手取りは15万で何もできなかった。
その時にコロナでの案件崩壊と自宅待機が来ました。暇で仕方なかったので、流行りのクラウドの資格をいくつか取り、しょうもないSIerに転職。
毎日やることは、しょうもないエクセル方眼紙にスクショを貼り付けたり、全力でセルを結合することなどです。
他には、技術がわからないプロジェクトマネージャに、画面共有で5000文字くらいある設計書を半日かけて説明して、得られたものは句読点をずらすことだけだった時は、耳鳴りとめまいがしました。
しかしながら、自分も技術はわかる方じゃなかったので、大流行のクラウドの資格や、国家資格とかも暇つぶしで取って、ちょっとわかるようにしました。
また、知識だけじゃどうしようもないので、慣れないGitHubを使ってOSSにコントリビュートとかもしてみました。ただのGood First Issueのバグ潰しでしたが。
こういうことをしても大して給料も上がらず、会議中にAPEXの音がするプロジェクトマネージャの方が評価が高かったのは虚無でした。
彼のAPEXの音をBGMに、転職サイトへとスムーズに登録し、外資系のコンサルに転職してみました。ここはいわゆるBIG4というところです。アーキテクトをすることになりました。
初め、貸与されたPCがMacだったので、外資はいいぞと思ったのですが、MacでやることはWindowsのVDIに繋いでパワーポイントのピクセルずらし、論点のない会議ばかりでした。
当たり前のようにコードは書けず、日々Office製品をいじり、顧客の社内政治に巻き込まれながら、毎日7時から0時まで働きました。管理職はいつ寝てるのかわからない。
外資なのに社内のワークフローは日系企業並みに複雑、裁量はあるが、そもそもの仕事量が多すぎるので実際ありませんでした。無駄にLGBTや環境への配慮の研修が多かったです。
結局ここも前職のSIerの仕事を煮詰めただけで、ストレスは上がるばかりだったので、すぐにやめました。給料は爆増したが、色々と失うものがありそうでした。
ここまでで、エンジニアリングにおいて邪魔なものが顧客だということがわかったので、次はB to Cの会社の事業部のエンジニアになりました。給料は前職据え置き。
今の所たくさんコードがかけて、割と幸せです。この会社に入ってからOffice製品は一切触ってません、あれが悪いわけではないのですが、物には適切な使い方というものがある気がします。
今思うと、自分はものづくりが好きなだけで、顧客の課題解決には全く興味がなかったと思います。昔は技術的なコンサルティングや技術営業などもやりましたが、作った後は金の切れ目が縁の切れ目で、作ったものがどう動いてるかは全くわからなかった。
また、前職と違い、事業部のエンジニアは基本的に技術力がある人しかいないので、頑張ってきたつもりの自分でも毎日不足を感じています。しかもみなさん若いので尚更焦る。
ポリコレばか女に潰された
2018年、『ネイチャー ナノテクノロジー』誌は、「レナ」を使用した論文は査読しないと発表した[20]。同年、『オプティカル・エンジニアリング(英語版)』誌を発行する国際光工学会(SPIE)も、「レナ」画像の使用を控え、その使用を正当化する説得力のある科学的理由がない場合は「レナ」画像を含む新規投稿を査読しないと発表した[21]。『オプティカル・エンジニアリング』は、1991年7月号の表紙にこの画像を掲載していたため、『プレイボーイ』から著作権侵害の可能性を指摘されていた[11]。
レナ・ソーダバーグ本人は、2019年11月に北米で公開された『Losing Lena』という「レナ」画像の使用の中止を呼びかける短編ドキュメンタリー[22]の中で、「私はずっと前にモデルを引退しました。そろそろ技術からも引退したいと思います」と語っている[23]。一方で、同年1月のインタビューでは、より良い報酬を得られれば良かったと思いつつも「あの写真をとても誇りに思っている」と語っている[13]。
有望なスタートアップに入社して、事業を伸ばして、上場したい。ストックオプションを使ってお金持ちになりたい。
そんな考えはもう古い。
勢いのないスタートアップとは、資金調達のニュースが結構前に出たきりあまり露出がなく、社員数も増えていない、停滞していそうなスタートアップのことである。
私は歴10年ちょっとの中堅もとい中年エンジニアなのだが、エンジニアとしての実力は贔屓目に見ても中の下程度だ。
しかし、勢いのないスタートアップでは私のような凡庸な人間であってもとても重宝される。
勢いのないスタートアップの経営陣は能力が高くなく、すごい社員もあんまりいない。
みんなすごくないから、黙々とほどほどに仕事をしているだけで貢献を認めてもらえる。
つよつよエンジニアがすごいスピードで開発しているのを見て劣等感を感じることはないし、よくわからないエンジニアリング議論を浴びせられることもない。
勢いのないスタートアップは知名度がなく採用競争力も弱いため、エンジニアに対してとっても優しい。
万に一つも辞められたくないからか、ガラス細工のように扱ってくれる。
ツーブロックなゴリゴリ営業がとってきたよくわからない案件に巻き込まれることはないし、上の人が勝手に引いた謎スケジュールのために残業させられることもない。
勢いのないスタートアップに転職してから、自己肯定感が高くなり、体調も良くなった。
転職時に年収も100万くらいあがったし、入社してからもなぜか50万くらいあがった。
「謙遜してるだけで実はちゃんと実力があるんでしょ?」と思われてしまうかもしれないが、本当にそんなことはない。
私は今までコピペとググり力でなんか雰囲気で開発をしてきただけのエンジニアなので、本当に中の下だ。
中の下というのも言いすぎなくらいで、下の上か、下の中かもしれない。
最近少し開発スピードが早くなったと言われたが、その理由もChatGPTが登場してくれたからだ。
ChatGPTのおかげでググる時間が減り、コピペがとても捗っている。
話が横道に逸れたが、私のようななんちゃってエンジニアレベルの人間にはぜひ勢いのないスタートアップへの転職を勧めたい。
これからもずっと勢いのないままでいてください。