はてなキーワード: ソースコードとは
ほーん
狭義のUNIXとは、AT&T ベル研が開発したOSとその直系の派生システム。オリジナルのものから Sys III、SYS Vと発展し、現在はSCOがそのソースコードを握っている。
ActivityPubは非中央集権型の分散SNSのオープン標準である。Pump.ioのActivityPump プロトコルをベースに設計されている。 クライアント/サーバAPIを通してコンテンツの「作成」「更新」「削除」を行い、連携するサーバに API を通して通知およびコンテンツを届ける。
ふむふむ
マイナンバーを国際標準規格であるDecentralized IDs(DIDs)へ移行を推進し秘密鍵によって保護された新マイナンバーおよび新マイナンバーカードを発行します
ほー
HTTPS over DNSは、HTTPSプロトコルを介してリモートドメインネームシステムの解決を実行するためのプロトコルです。
これは投票できる人居ないだろうなぁ
何言ってんのかわかんねぇんだもんw
知り合いと飲んだら、過去の私と同じような状況であの日々を思い出して吐き出したくなった。
当時私が参加していたチーム・プロジェクトは美味しそうなFWを使っていた。
サーバサイドのエンジニアは片手ほどの人数で、採用時点でそのFWの経験があることを確認されていたし、別チームから転属してきたメンバーも何らかのMVCでWSGIなFW経験があり、わりとサクッと順応していた。
前職では業界未経験だったり、経歴を盛っていると思われるエンジニアもどきと仕事していたので、普通に公式ドキュメントを読み、FWのソースコードを確認することができる同僚との仕事はおもりがなくなったようで気楽だった。
3年前の夏、サーバサイドのチームに新人のN氏が加入した。新人と言っても別チームから来た年上の業界経験豊富なインフラエンジニアである。
別プロジェクトのクラウド化や縮小が当時の1年半ほど前から進んでいて、社内のインフラエンジニアはSREに名前を変えるような流れがあった。(実際にはインフラ、ミドルウェア、ネットワークに長けた彼らは相変わらずそれなりに仕事があったようだが)
その流れの中でN氏は、サーバサイドエンジニアをしてみようと決めたらしい。転向については1年前から部長に相談していたとのことだった。しかも、うちのチーム名指しで。これはちょっと嬉しかった。
さっそく、N氏には社内向けの新機能を担当してもらい、私がレビュー担当になった。
これがなんというか読むのが辛かった。確実に言えるのはチュートリアル絶対やってないということだった。
機能は満たすが、FWの書き方やお作法については部分的にググった結果がパッチワークされているような。
社内の各チームのアーキテクチャはエンジニアならだれでも知っていた、つまりN氏は知っていながら特に準備なしでやってきたわけである。
そこから始まる、レビューを通した実プロダクトを使ったチュートリアル。褒めるとこは褒めて、受け入れられないところは参考になる実装やドキュメントを提供する。
はじめからチュートリアルを一緒にこなした方が良かった。レビューで大幅に書き換えてもらうのは結構辛い。勿論プロダクトに使えるレベルのコードじゃないから仕方ないんだけど。
しかもN氏、臭いのである。脂汗を吸った服、毎日履いてくるジーパン、脱いだのが瞬時にわかるほど臭う靴。
当時は Visual Studio Live Share なんて無いし、ペアプロは5分で限界だった。
がっつり書き直しが入るようなコードの卒業には2ヶ月ほどかかった。(これは私が時間を十分にとれなかったのも悪かったし、N氏は前のチームの引継ぎ作業も並行していたので)
もう、色々思い出して悲しくなったから書いとくと
ちなみに知り合いのところは、最近の天気のせいなのか生乾き臭マックスの縁故入社の新人とのことで、当時彼にしてもらったように「ガンバ」と背中叩いておいた。
N氏は今も臭っているようだが今は別プロジェクトだ。スキルセットが増えている分、頼れるエンジニアに近づいたのかな。喉元過ぎればなんとやらで、忘れていた。
最近は私が別チームからの支援できた若手のフロントエンドエンジニアにレビューしてもらっている。
チュートリアルこなして、書籍や記事を読んで手を動かしたうえで相談をしながら実装を進めている。あんまりなものは見せられない。
マジレスすると、Pythonではソースコードの文字コードをutf-8にできるから、本当は漢字の変数名扱えるぞ。
みんなやらないだけで。
24時間365日、政治の事について専門的に勉強してる政治の大先生たちですら
それぞれ誰がどんなデータを見てから物を語ってるんだか知れないが、意見を全く違えたりするし
不見識な事をほざいて笑われたりするのに。
俺ら自身の仕事の事について専門的な勉強を欠かせず、政治の事なんかサッパリな俺らなんかに
参政権なんてあっていいの?
投票なんかしていいの?
俺この1か月、お客様(企業)が運営するECサイトのドキュメントとソースコードしか読んでないよ?
日本企業特有のクッソ複雑なビジネスルールで、客自身すらどういう要件だったのか分からなくなったやつ。
客が俺に聞いてくるんだよ「こういう設定をしたキャンペーンって、どの商品に割り当たるんですかね?」とかさ。知るかよクソが。
MastodonはAGPLで開発されており、AGPLに則れば誰しもが自由に参入し使用することができるということは前回のエントリで言及させてもらった。
つまりコレはMastodonへ接続するいわゆるクライアントアプリケーションを作成する自由も認められていることとなる。
そのMastodonクライアントアプリケーションの1つとしてiOS向けに提供されている「Mast」という実装が存在する。
Mast - App Store
MastはiOSでは比較的高品質なMastodonクライアントアプリケーションとして知られ、多くのMastodonユーザから支持されている。
App Store上では¥600で提供されている有償ソフトウェアだが、ソースコードはGPLv3ライセンスの元にGitHubで公開されているので誰しもがMastを自由に使用することができるというフリーソフトウェア運動の一環として非常に好ましい姿勢であると見られてきた。
ShihabM/Mast - GitHub
GNUを代表格に自由を重んじるフリーソフトウェア運動へ関わるFLOSSなユーザはMastには¥600を支払う価値があるとし、景気よく¥600を支払ってMastを利用した。
GitHubからソースコードをcloneし、Xcodeでプロジェクトを作成、コンパイル&ビルド、iOS端末実機で動かすなんてことは¥600支払った(女性かも知れないが)彼らのスキルからすると簡単すぎる手順であり、何なら自動化すらできるだろう。
スタバでMacbookを用いて1回ドヤリングするよりも彼らはMastの理念に感銘しMastに¥600を支払うことへ価値を見出したのだ。
そんなMastの製作者Shihab MehboobはGab問題で揺れるMastodonの創始者Eugen Rochkoの提言へ賛同しMastへ禁じ手たるアップデートをしてしまった。
Mastを購入したユーザに同意せずMastを起動するたびにMastodonサーバへ対してユーザに無断でGabをドメインブロックするシステムコールを送信するアップデートを施したのである。
つまりどういうことか?と言えばMastは¥600で購入するマルウェアと化したのだ。
百歩譲ればMastがスタンドアロンな機能としてGabとの通信が不可能になるアップデートを施すのならまだ擁護のしようはある。
しかし、今回のMastのアップデートは無断でMastodonサーバへGabをドメインブロックするシステムコールを送信してしまっているのだ。他人のサーバを無断で操作してしまっているのだ。
このMastの振る舞いは情報技術者へ問えば100人が100人とも「マルウェア的振る舞いであることは疑いようがない」と言うだろう。
しかも¥600支払っているのである。別に¥600が惜しいわけではない。フリーソフトウェア運動としてShihab Mehboobの生活の足しになればと思って多くの者は¥600を支払ったのである。
¥600支払ったユーザへ対して明確すぎるShihab Mehboobの背信行為が今回大炎上しているというわけだ。
勘違いしてならないのは、この件は別に北米の極右が集うとされるGabを擁護するためフリーソフトウェア運動を標榜する者たちが声を荒げているわけではないということだ。
GNU宣言を読めば理解できるように、フリーソフトウェア運動はコンピュータの制御権は個別のユーザへ対して帰属するべきということを一貫して主張しているだけなのである。
Gabのブロックは個別のユーザの価値観で決定されるべきであって、AGPLを冠するMastodonの創始者Eugen RochkoやGPLを冠するMastの製作者Shihab Mehboobが強制すべきではないと主張しているのだ。
Eugen RochkoやShihab Mehboobが歩もうとしているのは疑いようもなく言論統制への道であり、それはリベラリズムが憎む道でありGabが歩んでいる道でもある。
だからこそ今回のMastのアップデートは許されるべきではないとされ、Eugen RochkoやShihab Mehboobはフリーソフトウェア運動を標榜する者たちから反論が起きている。
ここ連日騒がれている7pay。
パスワードリセットリンク送付先のメールアドレスに対して設計上の問題で脆弱性が発覚して大変な事態に発展しています。
昨日の会見では社長のITリテラシ不足が露呈したり、サービス継続が表明されたりして、いわゆる「祭」の様相を呈しています。
また、会見内で「セキュリティー審査を実施した」と明言がされました。
https://www.asahi.com/articles/ASM745HHHM74ULFA01Y.html
セキュリティー審査を実施していたにも関わらず、何故今回の問題が見逃されたのか。
非常に稚拙な推測ですが個人的に考えられる可能性をまとめてみようかなと思います。
その名の通り、サービスローンチ前に実施する、脆弱性や問題がないかの審査の事・・・だと解釈しました。
一般的には脆弱性診断とかセキュリティ検査とも呼ばれています。私はこちらの呼び方の方がしっくりきます。
「実施した」とはいっても、どういった内容を実施したかはわかりません。
ただ、7payは「一般に公開する」「お金を扱うサービス」になるため、ガチガチな脆弱性診断を実施すべきでしょうし、実際に実施したのではないかと思います。
通常、脆弱性診断というと、以下のような項目があげられると思います。
抜け漏れあると思うけど、大体どこのセキュリティベンダーでも上記のような項目を診断しているんじゃないかなあと思います。
詳しくは各ベンダの診断内容のページを見てみると更に詳しく載っています。
LAC、CyberDefence、NRIセキュア、ブロードバンドセキュリティ、スプラウトなど。
ただ、今回の脆弱性診断が外部ベンダで実施されたのか、内部で実施されたのかはわかりません。
以下、推測をつらつら書いていきます。
脆弱性診断はモノによりますが、診断内容をマシマシにするとエラい額が掛かります。
Webサービス診断は見積もり方法が各社違ったり、ツールを使うか手動とするかによって金額も大きく変わってきます。
また、数量計算もベンダによってまちまちです。ページ単位であったり、画面遷移単位であったり、SPAであればAPI単位であったり、複合での計算だったりします。
お願いすれば見積もり時にステージング環境で動いているWebサービスをクロールして、各ページの評価を付けてくれるベンダもあります。
規模と見積もり内容にもよりますが、100~200万といったところでしょうか。
スマホアプリ診断は一本幾らという場合が多いような気がしますね。相場としては50万~100万程度でしょうか。
プラットフォーム診断も内容によるとは思いますが、大体100万くらいかなあと思います。
これ以外にWebSocketを使っていたり、別のサービスと連携していたりするとその辺りの通信も含まれてくるのでまた金額は上がる可能性もあります。
Webサービス200万、スマホアプリ(iOS、Android)100万*2、プラットフォーム100万とすると、500万円掛かるわけですね。
脆弱性診断をするだけでこれだけのお金が吹っ飛んでしまうわけです。
そしてこれをそのまま発注するかと言われると、多分しないでしょう。
セキュリティはお金が掛かる割にリターンが少なく、目に見える結果が必ず出てくるとも限りません。
経営層は中々首を縦には振らないでしょう。
会見でも明らかになったことですが、社長のITリテラシはあまり高そうにありません。
こうなると脆弱性診断の稟議を通すのは中々容易ではなかった可能性もありそうです。
また7月1日に間に合わせたようなところもあるっぽい(?)ので、開発側に資金を全振りしていた可能性もあり、診断に費用を掛けられなかったのかもしれません。
いずれにせよ、全く実施しないのはまずいし重要そうな部分だけピックアップして実施しましょうという話にはなるでしょう。
削れるものをあげていってみましょう。
例えば、iOS用スマホアプリは実施しなくても良いかもしれません。iOS上で動くアプリは確かサンドボックス構造になっているはずで、ローカルに何かしらのデータを持っていても外部からのアクセスは基本不可であるためです。確か。
そもそもスマホアプリ自体不要かもしれません。7payのサービスへのアクセス用インターフェイスとしてのアプリしか提供していないのであれば、取り扱うデータはほとんどないと考えられるためです。そのため、スマホアプリAndroidのみ、もしくは両方実施しなくても大きな問題は発生しないのではないかと思います。
・・・この辺り私の勘違いというか、「最優先でやるべきだろjk」といった考えがあれば指摘ください。
プラットフォームも、ベンダによりますが実施しなくとも良いとも思います。
ベンダの説明でも、主にポートスキャンをして、空いているポートに対してtelnetで色々したりするといった説明がなされたと思います。
Webサービスなら443と、空いていても80くらいしか外部には公開していないので、これは実施しないという選択をしても不思議ではないと思います。
サーバのコンフィグも、DocumentRootがおかしいとか致命的な設定ミスをしていない限りは見てもらう必要はないでしょう。
そもそも構築手順等はノウハウもあるでしょうし、わざわざ見てもらう必要性はほとんどないわけです。
ワイドショーでは「不正は海外IPからで、国外からのアクセスを許可していた」事が取り上げられていましたが、例えプラットフォーム診断をしていても、この辺りは指摘されなかった可能性があります。
実施していればもしかしたら備考レベルでの注意や、口頭で「国内のみに留めておいた方がいいかも」といったことは伝えられたかもしれませんが、「利便性」という観点から実行されることはなかったんじゃないかなと思います。
Webサービスですが、ログイン・ログアウト処理は必須でしょう。また、新規登録、情報変更、退会処理も重要です。
パスワードリセットはどうでしょうか。正直これも重要です。なので、ベンダに依頼するにあたってはここも診断対象としていたはずです。
ところで今回の件では協力会社について様々な憶測が飛んでいますが、NRI説が結構人気みたいです。
ただ、NRIにはNRIセキュアというセキュリティに特化した子会社が存在しています。
もし脆弱性診断をするとなった場合、そこを使わないという手はあまり考えられません。そもそも発注時にそれを見越して診断費も開発の見積もりに含まれているのではないかと思います。
ただし、セブン側が「脆弱性診断はこちら側で発注します」と言っていれば話は別です。
NRIセキュアは診断費用が高いらしいので、コストダウンするために別ベンダに診断部分のみ発注する可能性はあります。
別のベンダに発注したことで、抜け落ちた可能性はゼロではないかもしれません。
また、NRIセキュアが実施する場合においても、「ここは抑えておいた方が良い」という機能毎やページ毎にランク付けした資料をセブン側に提出することと思われますが、どこを実施してどこを削るかの最終的な判断はセブンに委ねられます。
考えられる事としてはパスワードリセットの処理を診断対象外としたことですが・・・そうする理由もわからないので、うーん・・・。
ただ、こうして対象を削りまくることで100万程度、もしくはそれ以下まで診断費用を抑えることができます。
使ったことはありませんが、SecurityBlanket 365というサービスは自動での定期診断が可能なようです。
ライセンスやどういった動き方をするのかはいまいちわかりませんが、ベンダに逐次依頼する脆弱性診断よりかは安く済むはずです。
ただ、自動診断となると設計上の不備やそれに伴う問題は検出できないはずです。
ツールの手が届く範囲での、XSSやPoC、ヘッダの有無など、ごく一般的な脆弱性診断になると考えられます。
でも手軽そうで安価っぽいなので、これで済ませていても不思議ではないです。
脆弱性診断ツールはOSSのものもあればベンダが販売していたり、SaaSで提供しているものもあります。
OSSならOWASP ZAPやw3afがWebサービスの診断が可能です。また、phpcs-security-auditなど、ソースコードを解析し脆弱な箇所がないかを診断するものもあります。
ちなみにWebサービスに対する診断を「DAST」、ソースコードに対する診断を「SAST」と言ったりします。
有償のものとなると、DASTは先程のSecurityBlanket、AppScan、Nessus、Vex、VAddyが挙げられると思います。
SASTになると、RIPS TECH、Contrast Securityなどでしょうか。
上記のようなツールを用いて、セブン内で脆弱性診断を実施することでセキュリティの知見を高めたり、内部で完結させるための動きを取っていたかもしれません。
こういった動きは結構色んな組織で見受けられます。外部の手を借りずに診断ができれば、関係者間の調整も楽ですし、それと比べると費用も安く済みますからね。
ただし、社内のエンジニアに任せる事になるため、片手間になってしまう可能性があります。
また、ツールの使用方法についてのノウハウは溜まるかもしれませんが、それとセキュリティの知見が溜まるかどうかは別の問題としてあると思います。
・・・とは言ってもセブンにはCSIRT部隊がちゃんとあるんですよね。
https://www.nca.gr.jp/member/7icsirt.html
『7&i CSIRT は、7&i グループの CSIRT として設置され、グループ企業に対してサービスを提供しています。』と記載があります。
また、『7&i CSIRT は、7&i HLDGS. の組織内に専任要員を以て設置され、インシデント発生時の対応だけでなく、インシデント発生の未然防止にも注力しています。
グループ企業の情報システム部門と連携し、7&i グループ内で発生するインシデントに対する未然防止のための調査・分析とリスク情報の共有、ならびにインシデント対応活動を行なっています。』
という記載もあるため、今回の7payも、7&i CSIRTが動いてセキュリティ関連のチェックをしていたのではないかと思います。「情報システム部門」とはありますが。
組織図上にはありませんが、デジタル推進戦略本部の下か、リスクマネジメント委員会、情報管理委員会のどこかに所属しているんじゃないかと思われます。
日本CSIRT協議会にも名を連ねているわけですし、CSIRTメンバーは専任要因ともありますし、セキュリティ関連の技術知識は十二分にあると思うんですよね。
なので、内部でツールを使って実施していたからといって、こんな重大な不備を見逃すというのはちょっと考え辛いなあ・・・と思います。
会見内で言われた二段階認証も検討事項に上がらなかったのかなあ・・・と。
で、これを書いている最中に気付いたのですが以下のようなリリースが出ていたんですね。
https://www.7pay.co.jp/news/news_20190705_01.pdf
これを見ると内部のCSIRTが機能していなかったか、力不足と判断されたかどちらかになるのかな・・・と。
実際はどうだかわかりませんけど・・・。
これも有り得る話かなあ・・・と。
開発やベンダやCSIRT部隊が情報共有したとしても、POが忘れていたとか、伝えたつもりが曖昧な表現で伝わっていなかったとか・・・。
ベンダが実施して指摘事項として伝えていたけど、いつの間にやら抜け落ちていてそのままサービスイン・・・というのもシナリオとしては考えられますね。
7payは社内的にも一大プロジェクトだったはずで、スケジュールも決まっている場合、余計なことを物申すと手戻りや対応に時間を取られることになります。
そういった事を許さない空気が出来上がっていると、まあ中々上には上がってきづらいです。
これも十分にありえる話ですかね。ないといいんですけど。
どうしても『審査』という言葉に引っかかっています。『検査』ならまだわかるんですが。
そこで思ったのですが、情報セキュリティ基本方針と個人情報保護方針を元にしたチェックリストのようなものがセブン内にあって、それを埋めた・・・みたいなことを「セキュリティー審査」と言っていたりするのかなと思ってしまったんですね。
でもこれはセブンペイの社長が個人情報保護管理責任者ということで、ISMSやPMS等で慣れ親しんだ単語である『審査』を使っただけかもしれません。
そもそもそれで終わらせるなんて事ないでしょう。セブン程の企業が・・・。
大穴ですね。いやこれはないと思いますよ。あったら大問題じゃないですか・・・。
というわけで、なんとなく「こうだったりして・・・」みたいな事をつらつら書いてみました。
そういえばomni7で以下のお知らせが上がっていましたね。
https://www.omni7.jp/general/static/info190705
『定期的にパスワードを変更いただきますようお願い申し上げます。』とのことです。CSIRTはもしかしたらもう機能していないのかもしれないですね。
もしくはわかりやすい対策を提示しろと言われたのかもしれません。それなら仕方ないんですけど。
以上。
一部typoとか指摘事項を修正しました(役不足→力不足 etc)。
ついでに時間経ってるけど追記します。もう誰も見ないでしょうけど。
ちゃんと読んでいただけましたか?全文通して私の主張が「監査をしっかりやれば防げた」という意味と捉えられているのでしょうか。そんなに分かりづらい文章を書いた覚えもないのですが・・・。
一番上でも記載していますが、私は今回の7payの「セキュリティ審査」は、「脆弱性や問題がないかの審査の事」、つまり「脆弱性診断」を指していると仮定して本エントリを書いています。
そういう意味で、ここで私が指している「審査」と貴方が指している「監査」は似て非なるものです。字面は少し似ていますがね。
監査は貴方の記載する通り「ある事象・対象に関し、遵守すべき法令や社内規程などの規準に照らして、業務や成果物がそれらに則っているかどうかの証拠を収集し、その証拠に基づいて、監査対象の有効性を利害関係者に合理的に保証すること」です。
貴方の言う「監査」に近いことは「セキュリティー審査自体が、情報セキュリティ基本方針と個人情報保護方針に沿った内容かどうかを確かめただけだった」の見出し部分で触れていますが、それで終わらせているわ Permalink | 記事への反応(2) | 05:48
こりゃあたちの悪い書き方を知らんからカプセル化のありがたみがわかんないんだよなきっと
環境がC#とかで、人物一人分の情報にクラスを作る気があって、Personには体重とか身長とかがあって、みたいなわりときちんとした理屈があればああそれはね、それぞれプロパティにしとけば大丈夫、なんてので大丈夫。
地獄はこうだ。
char Person[200]; /* 0から19までを名字に使います */ /* 20から38までを名前に使います */ /* 39は年号コードです 0: 明治、 */ /* 40は生年です */ /* ... */
そしてソースコードの中にいきなり現れる
Person[70] = 35;
なにやってんだこれー!わかんねえぞこれー!
こういうことがないように、カプセル化するんだ。
かつて日本はゲーム産業の中心だったのに今は戦いの舞台にすら立てていない。惨めだ。
「スーファミやプレステ全盛の頃」に無料のゲームエンジンなんて海外でも想像してなかっただろうね
1.
VeraCrypt(truecryptの後継)で、ハードディスクを暗号化します。
パスワードは、国歌の2行目や、憲法前文の3行目、特定のソースコードの100行目などの文字列を利用しましょう。
これら文字列+1234等の特定の文字とするともっと安全です。
パスワードを記憶せずに忘れて、そのパスワードの書かれている場所だけを覚えるのが一番安全な方法です。
2.
手動Mountして利用してください。
いちいち、手動でMountするのが面倒ならNASを作ってSambaから利用してください。
3.
もし、あなたが一人住まいの場合、あなたが死ねば電気料金不払いで自動的に電気が消えます。
電気が消えると、ログイン前に戻るため、パスワードがわからなければ、アンロック不可能です。
もし、家族と暮らしているか、膨大な預金残高を持っている場合は、もう少し工夫する必要があります。
それでも、cronを利用して、ちょっとしたプログラムを作ればいいだけです。
.bash_historyやlogなどの日付を見て、古すぎれば、rebootコマンドを発行するだけです。簡単ですね。
cronを利用すれば、もっと任意の短い時間でロックできるので、便利ですね。
データを削除するわけではないので、仮に間違って動作したとしても、再Mountするだけです。
VeraCryptを利用するため、現時点でいかなるバックドアも存在しないため、たとえ国家権力であったとしても、解読できないでしょう。
もし、心配ならもっとよいお好きなソフトウェアを利用してください。
基本的な考え方は同じです。
本利用規約には、Komori Rintaro(以下、「当社」といいます。)が提供するサービス「乃木坂ニュース」(以下「本サービス」といいます。)の提供条件、及び当社と本サービスの利用者との権利義務関係が定められています。本サービスの利用に際しては、本利用規約の全文をお読みいただいたうえで、本利用規約に同意していただく必要があります。
1. 本利用約(以下、「本規約」といいます。)の内容は、利用者と当社との本サービスの利用に関する契約(以下、「本サービス利用契約」といいます。)に適用されます。
2. 当社サイト上で定める利用条件(以下、「個別条件」といいます。)は、本規約の一部を構成します。
3. 利用者は、本規約の定めに従って本サービスを利用しなければなりません。
4. 当社は、当社の必要に応じて本規約を変更する場合があります。この場合、変更後の利用規約が利用者と当社の間の本サービス利用契約に適用されます。
本規約において使用する用語の意義は、次の各号の定めるとおりとします。
1. 「本サービス」:当社が運営するサービスである乃木坂ニュースをいいます。
3. 「会員」:利用者のうち、会員登録が必要なサービスを利用するための登録を完了した方をいいます。
4. 「コンテンツ」:データ、文書、ソフトウェア、画像、文字、音等その他一切の情報をいいます。
5. 「利用者情報」:氏名、メールアドレス等、会員が本サービスの会員登録に際して又は本サービスの利用に際して当社に提供するすべての情報をいいます。
第3条(本サービスの内容)
1. 本サービスは、飲食店に関する動画等の情報を投稿・閲覧することができるものです。
2. 本サービスは、日本国内に限り、利用することができます。
1. 利用者は、自らの費用と責任において、本サービスを利用するために必要な機器・ソフトウェア・通信手段等の利用環境を整備します。
2. 利用者は、本サービスにおいて、他の利用者、その他第三者が提供する情報の真実性、完全性、適法性、有用性等について、自らの責任で利用します。
3. 利用者は、自己の責任において、利用者が投稿したコンテンツの保存、管理、バックアップを行います。
当社は、本サービスに関する利用者情報を「乃木坂ニュース - プライバシーポリシー」に基づき、適切に取り扱います。
1. 利用者が本サービスにおいて投稿したコンテンツに関する著作権その他の知的財産権(以下、「知的財産権」といいます。)は、当該利用者に帰属します。
2. 利用者は、当社に対し、投稿コンテンツの投稿を行った時点で、投稿コンテンツの知的財産権が存続する限り、以下を許諾します。
(2)投稿コンテンツを国内外において複製、公衆送信、頒布、翻訳・翻案等すること
(3)第三者による投稿コンテンツの利用(複製、公衆送信、頒布、翻訳・翻案等)を許諾すること
(4)投稿コンテンツを要約・抜粋・サイズ変更・切り抜き・モザイク加工等の改変をして本サービス又は当社が許諾した第三者のサービスに利用すること
(5)本サービス又は当社が許諾した第三者のサービスに投稿コンテンツを利用する際に、利用者がハンドルネームを公表すること
3. 利用者は、本サービスにコンテンツを投稿する場合、当該コンテンツを投稿する権利を有していること及び当社又は当社が指定する第三者による当該コンテンツの一切の利用行為が第三者の知的財産権を侵害しないことを保証します。
第7条(サービス利用料金)
1. 本サービスは無料でご利用いただけますが、一部の機能は有料です。
2. 有料のサービスを利用される場合は、利用者は、当社が定める方法により、当社に対し、利用料金を支払わなければなりません。
3. 当社は、お支払いいただいた利用料金を返金しないものとします。
利用者は、以下の各号の行為、これらを助長する行為、又は各号に該当するおそれのある行為を行ってはなりません。
(3)違法行為・犯罪行為・反社会的行為を暗示・誘発・助長・推奨等する行為
(4)当社、他の利用者その他第三者の著作権、商標権等の知的財産権を侵害する行為
(5)当社、他の利用者その他第三者の財産・信用・名誉・プライバシー・肖像権その他の権利利益を侵害する行為
(6)本サービス上のコンテンツを当社に無断で転用する行為(ただし、投稿者本人は除く。)
(7)本サービス上のコンテンツを複製、公衆送信、頒布、翻訳・翻案等する行為
(14)当社、他者のサーバーに負担をかける行為、又は本サービスの運営やネットワーク・システムに支障を与える行為
(15)リバースエンジニアリング、逆アセンブル、逆コンパイル等本サービスのソースコードを解析する行為
(16)コンピュータウィルス等の有害なコンピュータプログラム等を送信又は掲載する行為
(17)その他、本サービスの目的に照らし、当社が不適切と判断する行為
2. 会員登録を希望する者は、本規約の内容に同意した上で、当社が定める方法により、会員登録の申込を行うものとします。
3. 当社は、登録の申込みを行った者が、以下の各号のいずれかの事由に該当すると判断する場合、登録及び再登録を拒否することができます。この場合、当社は、その理由について開示する義務を負いません。
(1)当社に提供した登録事項の全部又は一部につき虚偽、誤記又は記載漏れがあった場合
4. 登録希望者は、自身の情報として真実、正確かつ最新の情報を入力しなければなりません。
会員は、登録した事項に変更がある場合、遅滞なく、当社所定の方法により登録情報を追記・修正しなければなりません。
1. 会員は、自己の責任において、付与されるアカウントを管理し、第三者による不正利用を防止しなければなりません。
2. 会員は、アカウントを第三者に譲渡し、貸与し、又はその他第三者に使用させてはなりません。
3. 会員のアカウントが第三者に利用されたことによって生じた損害等については、当社はいかなる責任も負いません。
1. 当社は、会員が次の各号に該当すると判断した場合には、事前に通知することなく、会員登録を取消し、当該会員に関する一切の情報を抹消することができます。
(3)第4条2項各号(登録拒否事由)に該当することが判明した場合
(4)登録されたメールアドレス又はパスワードの不正利用があった場合
(5)会員が死亡した場合
2. 前項の場合において、会員に何らかの損害が生じたとしても、当社は一切責任を負いません。
3. 本条のいかなる規定も、当社が会員に対して行う損害賠償請求を妨げません。
第13条(退会)
1. 会員は、当社所定の方法又は条件に従い、退会し、会員登録を抹消することができます。
2. 当社は退会した会員の登録情報、コンテンツについて保管する義務を負いません。
1. 当社は、利用者が本規約に違反し、又は違反しているおそれがある場合、予告なく、当該利用者に対し、以下の措置を講ずることができます。
(2)利用者により送信されたコンテンツの削除その他の方法により、当社が違反状態を是正すること
(3)違反事実の通報及び違反者の情報を捜査機関に開示すること
2. 当社は、法令上義務付けられる場合を除き、前項の措置を講ずる義務を負うものではありません。
3. 第1項の措置により利用者に不利益・損害が発生した場合においても、当社は、その責任を負いません。
第15条(損害賠償)
1. 利用者が本規約に違反して当社に損害を与えた場合、利用者は、当社の損害を賠償します。
2. 利用者が本規約に違反して利益を得た場合、当該利益は当社の損害を構成するものとみなします。
(1)本サービスが会員の特定の目的に適合すること、期待する機能・商品的価値・正確性・有用性を有すること
(2)本サービスで公開される情報が真実性、最新性、確実性、完全性、適法性を有すること
(4)本サービスの利用が特定の業界団体に適用がある法令又は内部規則に違反しないこと
2. 当社は、本サービスの利用の停止、中断、変更等により利用者に損害が生じた場合、何らの責任を負いません。
3. 当社は、利用者が送信したコンテンツの消滅、棄損、改ざん等が生じた場合、何らの責任を負いません。
4. 当社は、第三者の知的財産権及びその他の権利の非侵害性、商品性、完全性、有用性及び特定の目的に対する適合性を含め、明示又は黙示を問わず一切保証しません。
5. 当社は、利用者と他の利用者その他の第三者との間で生じた一切の紛争その他の問題について、関与せず、何らの責任を負いません。当社が当該問題にやむを得ず対応した場合、会員は、当社に対し、当社が負担した費用(合理的な弁護士費用を含みます)その他の損害の一切を補償するものとします。
6. 当社が損害賠償責任を負う場合であっても、当社は、当該利用者の通常損害に限り、損害賠償責任を負うものとし、損害賠償額の上限は、本サービスの有料サービスの1ヵ月分の利用料金相当額とします。
1. 当社は、営業上・技術上の理由から、本サービスの全部又は一部の提供を停止・終了する必要があると判断した場合、利用者に事前に通知することなく、本サービスの全部又は一部の提供を停止することができるものとします。
2. 当社は、当社の判断で、本サービスの内容を変更する場合があります。
3. 当社は、本条に基づき当社が行った措置によって利用者に生じた損害その他の不利益について一切の責任を負いません。
1. 利用者は、本規約上の地位に基づく一切の権利義務を、当社の事前の書面による承諾なく、第三者に譲渡もしくは貸与し、又は担保に供してはならないものとします。
2. 当社は、本サービスに関する事業を事業譲渡、合併その他の事由により第三者に承継させる場合には、当該事業の承継に伴い、本規約上の地位、本規約に基づく権利、義務及び利用者の登録情報その他の情報を当該事業の承継人に譲渡することができるものとし、利用者は、かかる譲渡について本項において予め同意したものとします。
利用者は、本サービスに関連して当社が利用者に対して秘密に取り扱うことを求めて開示した非公知の情報について、当社の事前の書面による承諾がある場合を除き、秘密に取り扱うものとし、第三者に開示することはできないものとします。
1. 当社は、当社の必要に応じて本規約を変更することができます。
2. 本規約を変更する場合、当社は、利用者に対し、規約を変更する旨、変更後の規約および変更の効力発生時期を、当社のウェブサイト上の掲示、本サービス上の通知又は電子メールの送信によって公表又は通知します。変更後の規約は、公表又は通知により定められた効力発生時から適用されます。
3. 前項にかかわらず、法令上、利用者から本規約の変更に関する同意を得る必要がある場合、当社は、利用者から同意を得て、本規約を変更します。
第21条(連絡・通知)
1. 本サービスに関する問い合わせその他利用者から当社に対する連絡又は通知、及び本規約の変更に関する通知その他当社から利用者に対する連絡又は通知は、電子メールの送信又は本サービス上での通知その他当社が適当と判断する方法で行うものとします。
2. 連絡又は通知の宛先は、利用者が当社に届出た宛先とします。
3. 当社が利用者から届出を受けた宛先に連絡又は通知した場合、連絡又は通知した時までに届出事項の変更手続きがされていない限り、当該連絡又は通知は、利用者に到達したものとみなします。
第22条(分離可能性)
本規約の規定の一部が法令に基づいて無効と判断されても、本規約の残りの規定及び一部が無効又は執行不能と判断された規定の残りの部分は、継続して完全に効力を有するものとし、無効とされる部分が必要最小限となるように読み替えて解釈するものとします。
この例えって
っていうのと同じぐらいとんちんかんだよ。
プログラマが天才扱いされる時の例って、複雑怪奇な論理構造や業務を誰もがわかるぐらいシンプルにしたり、難しいバグを見つけだしたり、処理時間をウン万分の1に短縮したりする時とかなんだけど、
なんでそれができるかって言うと、
地道な勉強と業務経験による試行錯誤の積み上げの集大成が、天才プログラマ的な振る舞いとなって、ほんの一瞬だけ非プログラマの目に触れるって感じです。
で、その過程では、ブラインドタッチってあんまり関係なくて(早く打てるに越したことはないけど)、以外とソースコードのコピペとかマウスでポチポチみたいな作業が多いです。
SOHOで仕事してるが、客の殆どが管理がしやすい整ったソースコードになんか興味は無く、とりあえず動きゃいいって人が多すぎる。9割はそんなのばっか。
だから口のうまい安さを提示した駄目制作会社に騙されて、結局高い金払う人多すぎ。
「途中まで出来てるんですが・・・」なんて案件、今年だけでもう7~8件は相談受けてる。
その「途中」がまだ序盤で作り直せる範疇なら請け負うけど、大抵は相手が音信不通とかになるので仕様も何がどうなってるのか分からんものが提示される。
そんなもん作り直しさせてくれないなら断るっつうの。
あと、何を作りたいのか仕様を固めてくれ。「売り上げ伸ばしたい」は俺の仕事じゃない。プログラマは仕様に合わせて作るだけなんだから・・・
本利用規約には、Kenta Takanawa(以下、「当社」といいます。)が提供するサービス「USJ待ち時間」(以下「本サービス」といいます。)の提供条件、及び当社と本サービスの利用者との権利義務関係が定められています。本サービスの利用に際しては、本利用規約の全文をお読みいただいたうえで、本利用規約に同意していただく必要があります。
1. 本利用約(以下、「本規約」といいます。)の内容は、利用者と当社との本サービスの利用に関する契約(以下、「本サービス利用契約」といいます。)に適用されます。
2. 当社サイト上で定める利用条件(以下、「個別条件」といいます。)は、本規約の一部を構成します。
3. 利用者は、本規約の定めに従って本サービスを利用しなければなりません。
4. 当社は、当社の必要に応じて本規約を変更する場合があります。この場合、変更後の利用規約が利用者と当社の間の本サービス利用契約に適用されます。
本規約において使用する用語の意義は、次の各号の定めるとおりとします。
1. 「本サービス」:当社が運営するサービスであるIyashiをいいます。
3. 「会員」:利用者のうち、会員登録が必要なサービスを利用するための登録を完了した方をいいます。
4. 「コンテンツ」:データ、文書、ソフトウェア、画像、文字、音等その他一切の情報をいいます。
5. 「利用者情報」:氏名、メールアドレス等、会員が本サービスの会員登録に際して又は本サービスの利用に際して当社に提供するすべての情報をいいます。
第3条(本サービスの内容)
1. 本サービスは、飲食店に関する動画等の情報を投稿・閲覧することができるものです。
2. 本サービスは、日本国内に限り、利用することができます。
1. 利用者は、自らの費用と責任において、本サービスを利用するために必要な機器・ソフトウェア・通信手段等の利用環境を整備します。
2. 利用者は、本サービスにおいて、他の利用者、その他第三者が提供する情報の真実性、完全性、適法性、有用性等について、自らの責任で利用します。
3. 利用者は、自己の責任において、利用者が投稿したコンテンツの保存、管理、バックアップを行います。
当社は、本サービスに関する利用者情報を「Iyashi プライバシーポリシー 」に基づき、適切に取り扱います。
1. 利用者が本サービスにおいて投稿したコンテンツに関する著作権その他の知的財産権(以下、「知的財産権」といいます。)は、当該利用者に帰属します。
2. 利用者は、当社に対し、投稿コンテンツの投稿を行った時点で、投稿コンテンツの知的財産権が存続する限り、以下を許諾します。
(2)投稿コンテンツを国内外において複製、公衆送信、頒布、翻訳・翻案等すること
(3)第三者による投稿コンテンツの利用(複製、公衆送信、頒布、翻訳・翻案等)を許諾すること
(4)投稿コンテンツを要約・抜粋・サイズ変更・切り抜き・モザイク加工等の改変をして本サービス又は当社が許諾した第三者のサービスに利用すること
(5)本サービス又は当社が許諾した第三者のサービスに投稿コンテンツを利用する際に、利用者がハンドルネームを公表すること
3. 利用者は、本サービスにコンテンツを投稿する場合、当該コンテンツを投稿する権利を有していること及び当社又は当社が指定する第三者による当該コンテンツの一切の利用行為が第三者の知的財産権を侵害しないことを保証します。
第7条(サービス利用料金)
1. 本サービスは無料でご利用いただけますが、一部の機能は有料です。
2. 有料のサービスを利用される場合は、利用者は、当社が定める方法により、当社に対し、利用料金を支払わなければなりません。
3. 当社は、お支払いいただいた利用料金を返金しないものとします。
利用者は、以下の各号の行為、これらを助長する行為、又は各号に該当するおそれのある行為を行ってはなりません。
(3)違法行為・犯罪行為・反社会的行為を暗示・誘発・助長・推奨等する行為
(4)当社、他の利用者その他第三者の著作権、商標権等の知的財産権を侵害する行為
(5)当社、他の利用者その他第三者の財産・信用・名誉・プライバシー・肖像権その他の権利利益を侵害する行為
(6)本サービス上のコンテンツを当社に無断で転用する行為(ただし、投稿者本人は除く。)
(7)本サービス上のコンテンツを複製、公衆送信、頒布、翻訳・翻案等する行為
(14)当社、他者のサーバーに負担をかける行為、又は本サービスの運営やネットワーク・システムに支障を与える行為
(15)リバースエンジニアリング、逆アセンブル、逆コンパイル等本サービスのソースコードを解析する行為
(16)コンピュータウィルス等の有害なコンピュータプログラム等を送信又は掲載する行為
(17)その他、本サービスの目的に照らし、当社が不適切と判断する行為
2. 会員登録を希望する者は、本規約の内容に同意した上で、当社が定める方法により、会員登録の申込を行うものとします。
3. 当社は、登録の申込みを行った者が、以下の各号のいずれかの事由に該当すると判断する場合、登録及び再登録を拒否することができます。この場合、当社は、その理由について開示する義務を負いません。
(1)当社に提供した登録事項の全部又は一部につき虚偽、誤記又は記載漏れがあった場合
4. 登録希望者は、自身の情報として真実、正確かつ最新の情報を入力しなければなりません。
会員は、登録した事項に変更がある場合、遅滞なく、当社所定の方法により登録情報を追記・修正しなければなりません。
1. 会員は、自己の責任において、付与されるアカウントを管理し、第三者による不正利用を防止しなければなりません。
2. 会員は、アカウントを第三者に譲渡し、貸与し、又はその他第三者に使用させてはなりません。
3. 会員のアカウントが第三者に利用されたことによって生じた損害等については、当社はいかなる責任も負いません。
1. 当社は、会員が次の各号に該当すると判断した場合には、事前に通知することなく、会員登録を取消し、当該会員に関する一切の情報を抹消することができます。
(3)第4条2項各号(登録拒否事由)に該当することが判明した場合
(4)登録されたメールアドレス又はパスワードの不正利用があった場合
(5)会員が死亡した場合
2. 前項の場合において、会員に何らかの損害が生じたとしても、当社は一切責任を負いません。
3. 本条のいかなる規定も、当社が会員に対して行う損害賠償請求を妨げません。
第13条(退会)
1. 会員は、当社所定の方法又は条件に従い、退会し、会員登録を抹消することができます。
2. 当社は退会した会員の登録情報、コンテンツについて保管する義務を負いません。
1. 当社は、利用者が本規約に違反し、又は違反しているおそれがある場合、予告なく、当該利用者に対し、以下の措置を講ずることができます。
(2)利用者により送信されたコンテンツの削除その他の方法により、当社が違反状態を是正すること
(3)違反事実の通報及び違反者の情報を捜査機関に開示すること
2. 当社は、法令上義務付けられる場合を除き、前項の措置を講ずる義務を負うものではありません。
3. 第1項の措置により利用者に不利益・損害が発生した場合においても、当社は、その責任を負いません。
第15条(損害賠償)
1. 利用者が本規約に違反して当社に損害を与えた場合、利用者は、当社の損害を賠償します。
2. 利用者が本規約に違反して利益を得た場合、当該利益は当社の損害を構成するものとみなします。
(1)本サービスが会員の特定の目的に適合すること、期待する機能・商品的価値・正確性・有用性を有すること
(2)本サービスで公開される情報が真実性、最新性、確実性、完全性、適法性を有すること
(4)本サービスの利用が特定の業界団体に適用がある法令又は内部規則に違反しないこと
2. 当社は、本サービスの利用の停止、中断、変更等により利用者に損害が生じた場合、何らの責任を負いません。
3. 当社は、利用者が送信したコンテンツの消滅、棄損、改ざん等が生じた場合、何らの責任を負いません。
4. 当社は、第三者の知的財産権及びその他の権利の非侵害性、商品性、完全性、有用性及び特定の目的に対する適合性を含め、明示又は黙示を問わず一切保証しません。
5. 当社は、利用者と他の利用者その他の第三者との間で生じた一切の紛争その他の問題について、関与せず、何らの責任を負いません。当社が当該問題にやむを得ず対応した場合、会員は、当社に対し、当社が負担した費用(合理的な弁護士費用を含みます)その他の損害の一切を補償するものとします。
6. 当社が損害賠償責任を負う場合であっても、当社は、当該利用者の通常損害に限り、損害賠償責任を負うものとし、損害賠償額の上限は、本サービスの有料サービスの1ヵ月分の利用料金相当額とします。
1. 当社は、営業上・技術上の理由から、本サービスの全部又は一部の提供を停止・終了する必要があると判断した場合、利用者に事前に通知することなく、本サービスの全部又は一部の提供を停止することができるものとします。
2. 当社は、当社の判断で、本サービスの内容を変更する場合があります。
3. 当社は、本条に基づき当社が行った措置によって利用者に生じた損害その他の不利益について一切の責任を負いません。
1. 利用者は、本規約上の地位に基づく一切の権利義務を、当社の事前の書面による承諾なく、第三者に譲渡もしくは貸与し、又は担保に供してはならないものとします。
2. 当社は、本サービスに関する事業を事業譲渡、合併その他の事由により第三者に承継させる場合には、当該事業の承継に伴い、本規約上の地位、本規約に基づく権利、義務及び利用者の登録情報その他の情報を当該事業の承継人に譲渡することができるものとし、利用者は、かかる譲渡について本項において予め同意したものとします。
利用者は、本サービスに関連して当社が利用者に対して秘密に取り扱うことを求めて開示した非公知の情報について、当社の事前の書面による承諾がある場合を除き、秘密に取り扱うものとし、第三者に開示することはできないものとします。
1. 当社は、当社の必要に応じて本規約を変更することができます。
2. 本規約を変更する場合、当社は、利用者に対し、規約を変更する旨、変更後の規約および変更の効力発生時期を、当社のウェブサイト上の掲示、本サービス上の通知又は電子メールの送信によって公表又は通知します。変更後の規約は、公表又は通知により定められた効力発生時から適用されます。
3. 前項にかかわらず、法令上、利用者から本規約の変更に関する同意を得る必要がある場合、当社は、利用者から同意を得て、本規約を変更します。
第21条(連絡・通知)
1. 本サービスに関する問い合わせその他利用者から当社に対する連絡又は通知、及び本規約の変更に関する通知その他当社から利用者に対する連絡又は通知は、電子メールの送信又は本サービス上での通知その他当社が適当と判断する方法で行うものとします。
2. 連絡又は通知の宛先は、利用者が当社に届出た宛先とします。
3. 当社が利用者から届出を受けた宛先に連絡又は通知した場合、連絡又は通知した時までに届出事項の変更手続きがされていない限り、当該連絡又は通知は、利用者に到達したものとみなします。
第22条(分離可能性)
本規約の規定の一部が法令に基づいて無効と判断されても、本規約の残りの規定及び一部が無効又は執行不能と判断された規定の残りの部分は、継続して完全に効力を有するものとし、無効とされる部分が必要最小限となるように読み替えて解釈するものとします。
https://twitter.com/MAEZIMAS/status/1113114798672113665
一流の老害は「君たちこそが真のニュータイプだ」とか言って、若者を自分の既得権益確保のための鉄砲玉にする。
…いやマジ本当に、若い人気をつけてね。若者説教おじさんは、せいぜいまだ極限の不愉快ですむけど、若者応援おじさんに乗せられると最悪人生詰むので…
というツイートが流行っているので、私が遭遇した若者応援おじさんについて書こうと思う。
当時の私は親との折り合いがつかず、学力もそこそこあったし、勉強もしていたのにも関わらず大学に進学せずにフリーターをしていた。実家を出たかったし、大学にも進学したかったから金の工面が当面の目標だった。そんなときに出会ったのが若者応援おじさんのAさんである。Aさんはバブルの頃に就活をしていて、まだインターネットやパーソナル・コンピュータというのが流行る前から電子工作やプログラミングをやっていた人だった。実際、経歴を聞いてみると10回以上転職を繰り返しているものの、有名企業(今にして思えば、カビ臭いSIerだが)で部長をしていたことがあって、年収が1700万ぐらい稼いでいたこともある人だった。
最初に出会ったときは自分が如何にすごいかということを熱心に語っていた。80年台後半ぐらいのコンピュータ開発の大型プロジェクトに関わっていたとか、セキュリティの専門家とか、今までに触ったことのあるプログラミング言語が300個を超えるとか。でも、当時の技術的なトレンド(MongoDB、Ruby on Rails、AngularJSとか)についての知識が限りなく少なく、「フレームワークなんてその場で覚えればいい」みたいなタイプだった。中学生の頃にラジオ工作したとか、はんだごてで電子回路を設計したとか、そういう話は熱心にするのに、Bram Moolenaarの名前を知らなかったりした。要は、最近のプログラマがどういう関心やインセンティブでプログラミングやってるかを知らずに、過去の栄光を語ってるようなタイプだったと思う。
まぁ、それでも、その人のコネで中規模程度のSIerに入社して、そこそこいい感じの待遇だったように思う。当時の私の技術力は『わかりやすいJava入門』『たのしいRuby』を一通り終わらせて簡単な言語仕様を把握したぐらいでろくにコードも書いたことのないような人間だったから、定時で帰れて手取り二十万もらえるのは甘い汁を吸えたとは思うんだ。
でも入社を決めた一番の理由が、そのAさんが私の関心に理解があると思っていたからだ。というのも、当時の私は「人工知能や人工生命に興味があります。三年後に大学に入学するまでにプログラミングスキルを磨きつつ生活費と学費を稼ぎたい」ということを明言した上で、それを叶えてくれる会社を探していた。技術力はないものの、「自頭がいいから入社してからプログラミングを覚えればすぐに戦力になるよ」と複数の人間から言われていて、それぞれ就職先を紹介してもらえるような状況になっていた。今から思えば、そんなコードを書けない人間を自頭なんて胡散臭いもので褒めるような人間は信用してはいけないと思うし、口車に乗せられたと思うのだけど。そこは自分にも甘いところがあったように思う。あ、あと、補足しておくと、当時はDeep Learningなんていうのは全く人口に膾炙してなかった時期で、スチュアート・カウフマンや金子邦彦に憧れてたような、周回遅れの複雑系に魅せられた若者が私だった。
①親との折り合いが悪く、大学に進学したいが、金が足りない
②実家を出るために生活費を稼ぐ必要があったが、飲食のバイトとかではスキルが身につかない状態で、価値の高い若い時間を無駄にしてしまう
③そんなところに現れたのが過去の栄光を話す若者応援おじさんのA
④自分は殆どコードを書いたことのない業務未経験で、21世紀になっても複雑系の話に興味をそそられるような斜に構えたスノッブ
では、入社後の話をしよう。私が配属されたプロジェクトは80万行程度のJavaのコードで動いてるBtoB向けの製品を保守開発してるプロジェクトだった。やってることはGoogleやAmazonやMicrosoftみたいな大手ならやってるようなサービスの完全下位互換みたいなソフトウェアを、情弱だけど社員数は多いみたいな企業に売りつけるような仕事だ。国産とか、セキュリティとか、そういうよくわからない言葉を並べ立てて、海外のUIも洗練されていて、優秀なエンジニアが管理してるものをセキュリティ的に怪しいと不安を煽り立てて売りつけるようなやつだ。そんなクソみたいな製品でも年間5億円ぐらいの売上になるのだから、IT系って糞だなって思う。ネット上では優秀な人間ばかりがアウトプットしてるし、NDAの名の下に詐欺まがいのソフトウェア(今回の例なら無料でUIも洗練されていて、使いやすいサービス)が明るみにならないのだから、こんな国はさっさとスクラップ・アンド・ビルドすればいいのにって思うよ。IT化されてないのが時代錯誤で〜みたいな記事はネット上でもバズるけど、実際には10年前のスパゲッティコードを惰性と不安につけ込んで売りつけるようなSIerがたくさんある。そんで、そんな意味不明なソフトウェアを導入すれば、どこに何があるのか分からないUIの操作に大切な業務時間を奪われて、日本全体の生産性が落ちてしまう。ユーザーの時間と生産性を奪い、開発者にとっても技術的負債にしかならないようなソフトウェアを売りつけてる悪性腫瘍みたいなSIerはさっさと滅んでしまえばいいと思うよ。
まぁ、私が配属されたプロジェクトはそんな感じだ。まるで意義を感じないが金にはなってるプロジェクトに配属された。そのプロジェクトの根幹部分は一人のエンジニアが設計開発しており、そのエンジニアは既に退職して、どこに何が書いてあるのかわかってない人間が後任として保守を行っている。盲腸みたいに全く有難みのない機能を増やすことでより高く売りつけるようなプロジェクトだった。
そのプロジェクトの中にいる人について話そう。プロジェクトマネージャーは仕事漬けで毎月350時間ぐらい働いている60連勤とか当たり前で、常に酔っ払ったような、眠そうな目をしてる人だった。にも関わらず、同じプロジェクトの人間は仕事がなさすぎて業務時間中に関係ない談笑をしたりしていた。プログラマやテスターや文書作成をするスタッフが40人ぐらいいるところで、閑散期(機能追加のサーバーリリース前以外)は暇そうにしてる人が多かった。プロジェクトマネージャーを除いて。要は、PMは一生懸命働いているが、その一生懸命さは惰性で行われており、無能なのに業務時間が長いPMがいて、その人が全部仕事をやってしまう。他人に頼めない性格らしくて、存在意義が分からない業務を他人に頼んでは「なぜこんなこともできないんだ?」って怒鳴るのが生きがいみたいな人だった。頑張ってることがアイデンティティになってて、その頑張りに意味があるのか、必要なのかという吟味ができず、タスクを他人に振ることもできず、情報もそのPM一人だけが握っているから、周りの人も「私が仕事を請け負いましょうか」ということもできない。それで新入社員をイビるような存在意義のわからない仕事を振って、できなかったら人格否定をするような感じの。
私が受けた仕事ととしては、週に1回ベンダーのところに会議をしに行くんだけど、そのときの社内の資料を全部紙でプリントアウトして持っていくというのがあった。文書作成スタッフが製品の仕様をWordでまとめて、600ページぐらいのpdfにしたものが1500万円ぐらいで売れるらしく、その増えた言語仕様をプリントアウトしてベンダーのところまで持っていく。追加された仕様以外にも、今週やったテスト内容をExcelで纏めたものをプリントアウトしたりしていた。紙の量で言うと、一回の会議で2500枚ぐらいで、それをキャリーケースに詰めて客先であるベンダーまで持っていくらしい。聞いた話では、その2500枚の会議資料は殆ど読まれずに捨てられるのに、そのPMはベンダーにその慣習を廃止しようとは提案しない。ベンダーとの週一の会議の他にも、進捗報告を主とする社内会議があって、PM以外の人はあのプリントアウトする悪習は廃止すべきという話が上がっているのにPMが首を縦に振らないから一向に改善されない。まぁ、そのプリントアウトするのをやるのが私の仕事だったわけですよ。毎週4時間ぐらい掛けてWordやExcelの文書サイズとか調整してさ。元の文書のサイズや余白が狂ってるのに、客先に失礼だと言われて、手直しして、プリントアウされたコロコロコミック何冊分だよ? みたいな紙の束をホチキスで止めていくんだけど、ホチキスの止め方が汚いとやり直し。
じゃあ、なぜPMは頑なに意味のない業務をし続けて、それによって新入社員を使い潰そうとするのかと言えば、弊社の業績が悪くて倒産しそうだったときにそのベンダーが手を貸してくれたからそのときの恩義があるとかなんとか言っていた。だから、靴を舐めるようなことをするし、他人の生産性を奪うようなクソ製品を世の中に出して何も感じないらしい。読みもしない産業廃棄物を作り出して、それを無碍にされて喜んでいるような業務が、今の日本の何割を占めているのだろう? そのPMの口癖は「俺はプログラミングは全くわからないが、こんなプリントアウトの段取りもできないようなやつはプログラミングなんてできないと思うよ」だった。FizzBuzzどころか変数や関数すら知らないような人間にこんなことを言われるのは屈辱だったし、これが高卒未経験で就職することなのだろうと思った。
他にも、私が受け持った仕事に、製品が動くかどうかを確認するテスターという仕事があった。RSpecやSeleniumで自動化しようと言っても、そんな技術を持ってる人がいなかったから、一々自分でその製品を触って仕様通りになっているかを確認しないといけなかった。画面遷移が600ページのpdfになっているから、それを見ながら正しい画面遷移ができているかを確認する業務だったが、正直人間のやる仕事ではないと思う。画面遷移だから前のページから次のページに移行したときに前にどのページだったなんてスクショを撮ったぐらいじゃわからないのに、「このテストをExcelにした内容じゃ、本当にテストしたのかわからないだろう?」と言われた。言われたとおりにExcelファイルにスクショをひたすら貼り付けていたというのに。しかも、その他にも特定のファイルをアップロードするときにどの条件だとアップロードができないかを判別するテストをどうやって行うのか考えろというのがあった。今までにテスターをやっていた人に聞いても指針なんてないと言われ、「賢い人はそういうのを考えつくものだ。俺はパソコンに詳しくないが」とPMに言われ、嫌気が差した。
まぁ、ここまで書けば、如何にブラックと言うか、理不尽で不合理な職場かというのはわかったと思うけど、いい面もあったんだ。前にも書いたように、未経験の高卒が手取り20万貰えたのは嬉しかったし、研修のない会社だったから、最初の二ヶ月ぐらいは一人で勝手に勉強しててと言われたから、実働換算で時給3000~4000円ぐらい貰える計算だったのかな。一番瞬間時給が高かった日はメールの返答に20分ぐらい使ったときだったから、日給1万、実働換算の時給が30000円ぐらいになった。それぐらい放任されていた。
最初は社長が「君にはソースコードのUMLを書いてもらおう」とか言って、クラス図を書く練習をしていたんだけど、現場の人は「今更UMLなんて必要ない」「ソースコードを読めばわかる」と言って、全く必要とされていなかった。だから、業務とは関係ないTCP/IPやRubyやGitの勉強をしていた。家のことで勉強に対してモチベーションが落ちていた私は、金を貰えるという環境では目の前の勉強に集中できるようになって、元の勉強するための生活リズムっていうのか、そういうのを取り戻せた。それは当時の私にとっては有難かったと思う。
ここまでをまとめると
⑤無料で使えるサービスの下位互換といえるような、他人の生産性と金を無駄にするような製品を開発してるプロジェクトに配属された
⑥PMだけが忙しく働いて、周りの人の割り振りができていない。
⑧社会悪のようなソフトウェアを売りつけて金を稼いでいるプロジェクトだった。
⑨仕様書やテスト内容のプリントアウトという必要ない業務をしたり、指示内容と叱責内容が矛盾する理不尽を受けなければならなかった。
⑩しかし、勉強してるだけで月20万貰える環境は有難く、当時の私にとっては願ったり叶ったりだった。
では、次に私がその会社の入社から辞めるまでの経緯について書こう。最初のうちは、自分の勉強時間を取れていたし、振られる仕事も理不尽で意義を感じられないものであるものの、すぐに終わることが多かったから問題ないと感じた。それが徐々に仕事が増えていき、勉強時間が取れなくなっていった。
ここで若者応援おじさんAの登場である。Aさんは私と会ったときは有名企業に勤めていて、そこを辞めて私を紹介してくれた中小企業で働き始め、その数カ月後に私を紹介してくれた。元々、その会社の社長とは懇意にしていたから、一緒に働こうという話が何十年も前からあって、今回ちょうどタイミングが合ったから、その友人の会社の重役として就職したらしい。私が就職したのはその数カ月後だった。
Aさんは「何か問題があったら、部下や上司という立場を気にせずに忌憚なく言ってほしい」「俺は人を見る目はある方だ。君は一本芯の通ったところがあるから、周りに流されずに新しいことをできるだろう」「君には将来性がある」「俺は新しい会社でも権力を持ってるからへんなことを言ったり、したりしてる人がいたら遠慮なく言ってほしい」とかそういうのを入社する前に言っていて、まぁ、色々とおかしいところ、FAKE野郎みたいな発言が多かったけど、そこだけは信じてたんだよね。本当に騙すんだったら、そんなすぐに辞められるようなリスクを上げるような発言はしないだろうってさ。ちなみにFAKE野郎って感じたのは、一方的に自分の話だけをして、私が質問すると煙に巻いたり、私のことを買ってるという割には私の話をすぐに中断させて自分の話をし続けるとか。その人はFラン出身だったから、ちょっとインテリなことを言うと「君は変わってるね」って言ったり、きょとんとした顔で10秒ぐらい固まった後、すぐに自分の自慢話を再開したりと、決して自分の知らないことや分からないことを認めようとしなかった点だ。他にも、「私と働きたいと言ってくれていた会社はあったけど、そこは技術的に成長できそうだけど給料は月7万程度でバイトの身分だから、迷ってるんですよね。バイトだから自由時間は多く取れるんですけど」みたいな発言をしたら、鳩が豆鉄砲を食ったような顔をして、私が感じていた不安を取り合ってはくれなかった。Aさんは「俺は社内で影響力を持っているから、君を正社員にすることもできる」みたいな話を延々としてたのに、いざ蓋を開けてみると、「君の面接での受け答えが駄目だから、契約社員として雇用することになった」「あれから上層部に渋られてしまって、請負契約にすることになった」と話が二転三転していった。だったら、他にも選択肢があったのに、他のところに就職したのにと思ったが、自分の能力や経歴で負い目を感じていたから強く言うことはできなかった。高卒で就活するというのはそういうことだ。他にも選択肢があるのにも関わらず、どうせ労働に関する知識がないと足元を見られて、条件を徐々に下げられ、他に選択肢をなくした後で、悪い条件で働かざるを得ない状況になっていた。結局、勤務時間がタイムカードで管理されてるのにフリーランスとして請負契約を結ぶという偽装請負で契約させられ、もっと技術力を磨ける選択肢は潰されてしまっていた。
私は会社の問題点を丁寧に分析してpdfにまとめてAさんに送ったんだ。それが間違いだった。如何に会社がそのベンダーに良くしてもらったか、大変なのをわかった上で俺たちが会社を立て直してきたかということばかりを話していた。百歩譲ってそこはいいとしても、ベンダーとは関係なく職場環境を良くするための話までいい加減に聞かされてうんざりしていた。
「Aという問題があります。その背景にはBがあります。そのためにはCという解決策があります」
という話をしたときに、「Bぐらいみんな当たり前にしている。君だけ特別扱いすることはできない」みたいな返し方をされて、問題が発生してる事自体はないものとされていった。結局、職場にはびこる不合理で理不尽な業務やルールは改善することはなく、私への人格攻撃で終わってしまった。
毎日どうでもいい作業で疲れ切って勉強時間が取れなくなってしまった私は、最初に出会った頃のAさんの言葉を信じて、「私が本当にしたいことは、仕様書やテスト時のスクショをプリントアウトしたり、よくわからないテスターをやったりすることではない。このままでは、プログラマとしてのキャリアを積むための勉強時間を作ることもできないし、業務内でコードを書くこともないから業務時間を短くしてほしい」と言った。少なくとも、最初Aさんと会ったときは、「君には人工知能や Permalink | 記事への反応(1) | 23:52