はてなキーワード: ブラウザーとは
当方、フリーの IT 技術者。ある Web ベースのシステムを開発しているのだが、プロジェクトのマネージャー、リーダーをはじめとするメンバーの無知と無理解のおかげで作業が進まずに困っています。
ブラウザーのキャッシュの仕組みを少しでも知っている人なら、非 IT 系の方でも読めるように書きました。ぜひ助言をお願いします。
私は発注元(A 社)に客先常駐している。私が契約しているのは A 社のグループ会社である B 社だ。
A 社内のチームメンバーは以下のとおり。
さて、今開発しているシステム(以下システム P)はもともとスタンドアローンで運用する形態だったが、最近クラウドバージョンの提供も始まり、現在はスタンドアローンバージョンとクラウドバージョンの並行開発となっている。X さん、Y さん、Z さんは主にクラウドサーバーの管理や、私や W さんが作った部分のテストを担当している。
クラウドバージョンの初めてのアップデートを控えた 6 月に問題が発覚した。コードをアップデートすると、ブラウザーのキャッシュが効いていて表示がおかしくなるというのだ。
プログラマー以外の 4 人は実は Web システムの案件は初めてで、ブラウザーのキャッシュの仕組みすら理解していない。X さんから相談を受け、「Web アプリケーションからブラウザーのキャッシュをクリアーすることはできない。代わりに、HTML から読み込まれる外部リソースの後ろに『?v=3.14』のようなダミーのクエリー文字列をつければよい。アップデートのたびに数字を変える。これは一般的に採用されている手法で、これ以外の解決策はない」ということを伝えた。具体的にコードエディター上で修正イメージを見せて、すべてに対応するのに 1 日あればできる、とも。
これで「そうですか、ではお願いします」となれば、テストを含めて 2、3 日で終わった話なのだが、ここから長い混乱が始まる。
X さんから、「変更箇所をなるべく少なくしたいので、前回リリース分と今回リリース分で変更のあったファイルのリストを出してほしい」と言われる。変更のないリソースにはクエリー文字列をつけたくないらしい。
内心呆れつつ、Git (ソースコード管理システム)でファイルの変更履歴を調べ、一覧表を提出した。X さんに「それぞれのページでソースコードを確認し、この一覧表に載っているファイルにはクエリー文字列がついていることをひとつひとつ確認するのですよね。却って手間が掛かりますよ。それよりも、すべてのファイルを対象にしたほうが作るほうもテストするほうも楽です」と伝えた。
6 月も残り 1 週間を切ったある日、Z さんから、「実際に問題になっているのはどのファイルのどの部分か、スタイルシートのどのクラス・ID 指定が効いていないのか、V さんが知りたがっている。原因解明に必要なので調べるように」と指示が出る。
私は「ブラウザーのキャッシュが効いているためで、キャッシュを消すか無効にすれば直る。今までも修正のたびにテストではキャッシュを消してもらっていたでしょう」と説明するが、調べろ調べろと繰り返すばかり。「そんなことを調べて何になるんですか。キャッシュの問題ですよ?」と言うと、Z さんは手をわなわな震わせて、「お客さまが知りたいと言っているのに、『そんなことを調べて何になるんですか』とはどういうことですか!」と声を荒らげる。しまいには「お客さまのご要望にお応えして私たちはお金をもらっている。お客さまからの依頼なら応えるのが当たり前」と言い出す。技術的に意味がないことをいくら説明するも理解されない。
非プログラマー 4 氏の知識の底上げをしないといつまで経っても平行線だと思い、Redmine (課題管理システム)にブラウザーのキャッシュの仕組みを解説する文書を投稿した。ほぼ同じものを以下に掲載する。非技術者にも分かりやすく書いたつもりだ。あまり細かいことを説明しても混乱させるだけだと思い、リクエストヘッダーの Cache-Control や Expires などは説明を省いた。
キャッシュとは
キャッシュ(cache) とは、一度読み込んだデータを内部に保存しておく機構のことです。2 回目以降の読み込み時はキャッシュを読み込むことで、処理時間の短縮を図ります。
ウェブブラウザーにおけるキャッシュは一般に、HTML ファイルおよび HTML から読み込まれる外部リソース(スタイルシートファイル、JavaScript ファイル、画像ファイルなど)に対して適用されます。
キャッシュが作られるタイミング
ブラウザーがあるファイルを読み込もうとする時、キャッシュがなければ実ファイルを読み込んだ上でそのファイルの内容をキャッシュします。
キャッシュが破棄されるタイミング
キャッシュがいつ破棄されるのかは完全にブラウザー依存です。異なるファイルのキャッシュが同じ期間だけ存在するかどうかも分かりません。
キャッシュはユーザーがブラウザーの操作で明示的に削除(クリアー)することはできますが、 サーバー側からクライアント(ブラウザー)のキャッシュをクリアーすることはできません。
ウェブアプリケーションのキャッシュ対策
ウェブアプリケーションをアップデートした際、クライアントのキャッシュを無効にするために、以下の手法がよく使われます。
< link rel="stylesheet" type="text/css" href="style.css" > < script type='text/javascript' src='script.js' >< /script > < img src="picture.jpg" alt="" width="640" height="480" >このような外部リソース読み込みについて、ファイル名の後ろにクエリー文字列を追加します。
< link rel="stylesheet" type="text/css" href="style.css?v=2.4.0" > < script type="text/javascript" src="script.js?v=2.4.0" >< /script > < img src="picture.jpg?v=2.4.0" alt="" width="640" height="480" >スクリプトでない静的ファイルにクエリー文字列を付加しても、読み込まれるファイルは同じです。つまり、
style.css
とstyle.css?v=2.4.0
は同じ style.css というファイルを指します。ブラウザーが style.css をキャッシュしている状態で、この行を読み込んだとします。
< link rel="stylesheet" type="text/css" href="style.css?v=2.4.0" >ブラウザーは「
style.css?v=2.4.0
というファイルはキャッシュにない」と判断し、style.css?v=2.4.0 というファイルを読み込みます。結果として、ディスク上の style.css が読み込まれてスタイルシートが更新されます。この HTML をまた読み込んだ時は、「
style.css?v=2.4.0
というファイルはキャッシュ済み」と判断し、ディスク上のファイルではなくキャッシュを利用します。ウェブアプリケーションをバージョン 2.5.0 にアップデートする時には、「
?v=2.4.0
」の部分を「?v=2.5.0
」に書き換えてリリースします。< link rel="stylesheet" type="text/css" href="style.css?v=2.5.0" > < script type="text/javascript" src="script.js?v=2.5.0" >< /script > < img src="picture.jpg?v=2.5.0" alt="" width="640" height="480" >同様の仕組みで、2.4.0 時代のキャッシュがあっても 2.5.0 用に書き換えられたファイルが読み込まれ、キャッシュの問題は起こりません。
この手法は、キャッシュ問題を解決する手段としては一般的に用いられているものです。俗に「キャッシュバスター (cachebuster)」とも呼ばれます。
数日経った日の午後。Y さんが A4 判数ページにもなる「調査報告書」を作成した。問題になっているスタイルシートについて前回リリース分と今回リリース予定分の差分を取り、それぞれの行について「新規」「変更」「削除」の印をつけ、「とりあえず、このクラス指定が効いていないだけなので、HTML 中にインラインスタイル(< div style="..." >)で指定すればよい」と結論づけていた。
報告書には「状況から見て、変更・削除されたスタイル指定は影響が出るらしい。新規に追加した部分については影響がないようだ」とも。私が書いた説明を読んでいないのか、理解できなかったのか。
この報告書を元に、X さんから「この行とこの行にインラインスタイルを指定してください。これで暫定対応とします」と指示が出た。
私は「この修正は何ら根本的な対策になっていないことは理解していますか。『現状で問題になっている箇所』は、この環境でたまたまそうなっているだけの話で、ほかのお客さまの環境では別の画面が崩れるかもしれないのです。それを承知の上で、これを暫定対応としてよいのですね」と X さんに確認。X さんは「はい」とだけ答えたので、黙って作業を完了した。Git のコミットメッセージに「この方法は何の効果もないこと、それでも作業をしてよいのかを X さんに確認の上、作業」と書いてコミットした。
しばらくすると X さんから「うまく表示されています。OK です」と報告があった。
夕方、私が帰ろうとすると、X さんが Y さんに「画面がおかしい」と言っている。横から覗くと、先ほど「暫定対応」とやらを入れた画面で、表示は正常だがボタンを押しても何の反応もない。私は静かに「JavaScript のキャッシュですね」。
聞けば、Y さんは「キャッシュはスタイルシートにだけ効く」と思い込んでいたらしい。やはり先の説明を読んでいないようだ。そして、Y さんの環境ではボタンは有効だったとも。
私は「Y さんの環境では(JavaScript の)古いキャッシュは効いていなかった。X さんのところではキャッシュが効いていた。これが、私が言っている『環境依存』の意味です。昼の暫定対応ではダメなんです。半月前から私が言っているように、すべての外部リソース読み込みにキャッシュバスターをつけないと解決にならないんです」と伝える。
Y さんは観念した様子で、「キャッシュバスターって、一部分にだけ適用することもできますか」と聞く。この人、理解してないなと思いつつ、「はい、できますよ」と返すと、「では、問題の発生している範囲を調査して、問題が起こっているファイルにだけキャッシュバスターを……」。やはり何も分かっていない。
私は繰り返し、ブラウザーのキャッシュは環境依存なのですべての外部リソース読み込みにキャッシュバスターを付加しないと無意味だと説明した上で、こう付け加えた。
「指示されたことだけを黙ってやっていれば、そりゃあそっちのほうがラクですよ。でも、喧嘩をしてでも、場の雰囲気を悪くしてでも自分の意見を主張するのは、技術者としてのちっぽけな良心からです。お願いですから、専門家の言うことを聞いてください。私の意見が信用ならないのでしたら、ほかの技術者に意見を聞いてください」
この数日後、本件の対応を先送りにすることが決まったと X さんから報告があった。
聞けば、リリースを急いでいるのは特定の顧客の要望によるものらしい。その顧客はスタンドアローンバージョンを利用しているので、アップデートの現地作業の際にブラウザーのキャッシュを消してくればいいとのこと。
リリースに間に合わない間に合わないとあれだけ騒いでいたのに。プロジェクト管理がまるでできていない。
そして今日の夕方、この件についてレビューを開きたいとプロジェクトマネージャーの V さんから言われる。レビューって、何をやればいいんだろう。何をすれば気が済むんだろう。Redmine に書いた説明を読んで理解してもらえれば、やるべきことはひとつしかないと分かろうものなのに。
X さんから質問を受ける。「例の件、ほかの方法はないんでしょうか。『こういう方法もあるけれど、工数が掛かるので採用しません』というのがもしあれば話が進めやすいかと」。残念ながらありません、せいぜいファイル名そのものを変更するくらいですが、本質的には同じことですし管理の手間が増大します、と伝えた。
ついでに、X さんに「あの説明を読んで、よく分からない部分があったら教えてください」と尋ねると、実は忙しくて斜め読みしかしていないと白状された。その状態で対応策を一生懸命協議していたのですな。
レビューの席でまた一悶着ありそうだ。どうやったら彼らを納得させられるのだろうか。信用できない技術者に説明してもらったって、信じないんだったら意味がないのにねえ。
僕は、毎日インターネット上の情報を閲覧する。スマホからも、パソコンからも、時にはタブレットからも。ニュースアプリを使ったり、はてなブックマークを使ったり、普通にブラウザーを使ったりなど、情報の入手の仕方は様々だ。
去年か一昨年くらいの話だが、友達がPCで困ったことがあるから助けてほしい、と言われた。実際友達の家に行って助けようとしたのだが、内容の覚え具合が曖昧だったので、友達の家のPCを使って情報を調べることにした。その時に言われたのが、
「え、(タブを)めっちゃ開きすぎやん」って。
当時は8個くらい開いていたのだと思いますが、中学生にとってはおかしいのかな。
情報収集するときは、なるべく様々な視点からの情報を得たいので、1つの話題に最低でも4個はタブを開く。そこに調べた情報の中に書かれている付帯情報も調べようとするので、さらに2個はタブを開く。そして、「あ、じゃあこれはどうだろう」と別の事柄を調べるために、またタブを開く。
ブログの記事を書くときは、情報収集を含めて10個ぐらいはタブを開くことが多い。この記事も、情報収集やこのブログのデザイン変更をしている時に、ふと思いつきで書いたものなので、執筆時にはタブは12個開いていた。
4行にまとめました
・コミュニケーションが少ない
・他にも色々ヤバイ
他のIT会社がこんな感じと違っていたら申し訳ないです。それと読みづらかったらすみません。
当方19歳。お金をもらいながらスキルの得られる「有給インターン」に申し込みました。
今から書くのはそこでの話です。
IT系のバイトは基本実務経験がないと受けられないので、僕は「未経験歓迎」というところを探していました。
大阪は都会といえど、東京の1/4程度しかIT系の求人はありません。
そこは未経験歓迎で、土日もやっているところでした。
早速応募して、いざ面接。履歴書書いているときや、会社に行くまではすごく緊張しました。
そして面接が始まったのですが、なぜここを受けたのか、やりたい業種は何か。という話になり、話の感じからもう入って何かをするテイで進んでいるのだと思いました。
ありがたいことに、トントン拍子で採用され、数日後から勤務することになりました。
(サイトで書かれていた、”研修期間あり”がここで完全無給だと知らされたのは引っかかりましたが…)
それからしばらく経ち、会社に行って挨拶をし、何かすることはないか(パソコンのパスワードすら知らない状態なので)聞きました。
挨拶への反応も、業務に関しての回答もないので戸惑いましたが、社員さんにパスを打ってもらい、ログインしました。
ここまで数分の出来事ですが、アルバイトで見てきた他の業種とは雰囲気が違うな と思いました。他の会社よりコミュニケーションが控えめな印象でした。
それから何をすれば良いのか社員さんに訪ねたのですが、それはSkypeで話すとのことでした。
本来送るべき内容のメールの送信を忘れていたのか、そこでSkypeの登録と、登録に使う会社用のメールアドレスを送っていただけました。
先程ログインしてもらったパソコンを使い、Skypeの登録をしようとしたのですが、ここでかなり記憶に残る出来事がありました。
クラックされているのか、定かじゃないのですが、少なくともライセンス認証されていなくて、あのデスクトップの背景が真っ黒のやつでした。
気になって、コントロールパネルからOSは何なのか見たのですが、Windows7のUltimateでした。
僕はPCを組んだことはありますが、OSのこだわりはないので、一番安いHOMEにしていました。会社のパソコン事情はわからないのですが、一般的なIT会社はUltimateを始め、HOME以上のエディションを使うのでしょうか?
面接の時に、「在宅でできるから、やれるなら在宅が良いよ」と言われたのを思い出しました。社員さんの理由は、「パソコンが古い」だったので、7を見たとき新しいじゃんと思いました。
僕は実際に相談して、作業の流れが把握できたほうがよいので本社で初めは仕事をしようとしたのですが……
アカウントを作成しようと思い、デスクトップにあるブラウザーを使いました。
Chromeは開発用に使われているのか、ショートカットの名前がイジられているので使いませんでした。そして、IEもアイコンからしてめっちゃ古いので、不具合を避けるためにやめました。
他にあったのが、FireFox。それを使いました。
もう使いものにならないです。動いてるアプリケーションはFireFoxぐらい。通知センターなどを見てもIMEすら切られているのか、漢字も打てない。
開いた瞬間、アジア系無修正ビデオの画面が別ウインドウで出るのは、控えめに言って泣きそうでした。
自分もこういう汚染は経験があったので、ショートカットのプロパティを開き、追加で書かれているURLなどを削除しました。開発で使っていたら申し訳ないのですが、凄い重かったのでごめんなさい。
Skypeを登録し、それでチャットを始めるのですが、IMEが効いてないのでひらがなをで検索してメモ帳を駆使して、半ば怪文書を作る形で連絡を取ることになりました。
社員さんに「個チャはやめて」と、グループの方へ回されました。
そこで挨拶をして自分の素性を話し、送られてきたDropboxのファイルを見ながら作業をしました。
というのも、会社のサイトに登録するのです。そこに登録するメアドを書いてたらニコニコ動画の広告や、DMMの広告に飛ばされることが多々あり、悲しくなりました。
自分のプロフィールを書くと本登録ができるのですが、そのときにされるとマジで死にたくなります。
そもそもメアドを送って仮登録した返信メールが、迷惑メールに送り込まれているところが面白かったです。探すのに10分かかりました。
課題をもらって、それを達成していくのですが、課題を保存するためのクラウドはどうするのだろう?というのが今でもずっと心に残っています。
配布されたメアドで登録するのは良いものの、メールボックスが開けないので認証ができません。
こんなに重いので、Dropboxのテキストを読むのですら大変で作業なんてできる状況じゃありませんでした。
次の日から在宅をしようと、配布されたメアドで自宅のパソコンでSkypeログインしようとしたのですが、エラーで入れません。
調べたら、迷惑メールの送りすぎか何かでメールアカウントが凍結されたそうです。
そのまま今に至るのですが、どうすりゃ良いんだろう。。
IT業界がこんな感じ、というなら夢半ばで他の道を探すしか無いし、働けないにしても「作りたいものがないから、プログラミングの勉強できない」という自分のために課題を出してもらった以上、それは達成してみたかったです。
最近某オンラインゲームのユーザーのセキュリティ意識がとても低い事に気がついた。
多くのユーザーがに自分を特定できてしまうような情報を簡単にTwitterや2chに載せてしまうのだ。
このままでは何かの事件に繋がってしまいかねないと思い、インターネットを利用する全ての人に向けて改めて、
何が良くて何がダメなのか、ネットストーキングの手法も含め、かいつまんで纏めてみた。
Twitterで何の気なしに日々自分の周囲で起こった事をつぶやいたり、
写真をアップロードしたりしている人は多いと思うが、自分がストーキングされているかも知れないと思っている人は少ないだろう。
これは間違いである。
ネットはほんとうに広大でほんとうに色々な人が居る。
あなたがつぶやいた特定のキーワードやちょっとした写真にフェチズムを感じる人も決して少なくないのだ。
ネットストーカーに狙われる(既に狙われている)可能性があるという事を知り普段から対策を講じるべきなのだ。
あなたがアップロードした写真はあなたを特定するときに絶大な効果を発揮する。
言っておくがストーカーはひとつの写真を数分~1時間以上かけてくまなくアラを探すものだ。
改めて言うまでも無いだろう。写真に付随する撮影日時、場所、利用したカメラの情報だ。
最近のGoogle画像検索はあなたが考えているよりも相当に賢い。
よく利用する喫茶店のサイトがヒットすれば、あなたにより近づくことができる。
ある程度の知識があれば写っている本、背景を特定することはそれほど難しいことではない。
例えばタバコが写っていたとしてエリア内のコンビニで貼りこむなんてことも可能だろう。
Twitterにアップロードした写真は:largeを末尾につけることでより高画質な写真を取得できる。
またツイートを削除してもURLを知っていれば一定期間アクセスすることが可能だ。
一度写真をアップロードしたら永久に消せないと考えて置いたほうが良い。
その他のWebサービスなどにアップロードされた写真は右クリックから保存出来ないものも多い。
そんな場合でもブラウザーの開発ツールを使えば簡単に元の高画質な画像をダウンロードできてしまう。
ツイートの中にはあなたに近づくための情報がたくさん散りばめられているので注意したい。
あなたが天気をつぶやけばそれだけで暮らしている地域がかなり絞られてくる。
実際にニコニコ生放送の放送中の雷の音、リアクションで都内への引っ越しを特定された人も居る。
写真と情報の時系列をまとめることであなたの住所はほぼ把握される。
ストーカーはあなたに関する些細なキーワードを使い数時間〜数日かけてくまなくGoogle検索結果を洗い出す。
あなたが例えTwitterの鍵アカウントを利用していたとしても
会話の相手が公開アカウントだとその流れからある程度の内容を知ることができる。
もしあなたがInstagramとTwitterで同じIDを利用しているなら今すぐそのどちらかを凍結した方が良い。
他にもあなたのIDでGoogle検索をしてどんなアカウントが出てくるか、自分でも知っておくべきである。
なぜなら感染した場合はPCに関係する全ての情報が漏れているからだ。
ウォッチ対象から次の段階に進んだという事であり、いよいよ本気で身の危険を感じる段階に入ってくる。
なおウイルス感染ルートの殆どは「あなたが外部から入手したソフトを実行した時」である。
ストーカーから見た場合、あなたに不正なソフトを実行させれば勝ちなのだ。
ウイルス感染に関して私がお勧めしたいのは、端末ごとにセキュリティレベルを設定することだ。
長らくPCを触っているとどうしても怪しいサイトやソフトを利用したいと思うことがあるだろう。
以下のような場合はその端末は汚染されていると意識するべきである。
汚染端末では下記の行為は絶対にしないというルールを設定するべきである。
あなたがどこかのサイトにアクセスした場合、その情報が数十の広告サービスに流れると言われている。
それらのサービスはあなたをほぼ完全に特定しどのようなサイトに接続したのかを全て把握しているのだ。
時間がある人は、ネット界隈で有名なコスプレイヤー、ニコ生主など、
Twitterアカウントを持っているユーザーを本気で特定する遊びをしてみると良い。
普段自分がどれだけ甘い情報を流しているのか、逆の目線から見ることが出来ると思う。
そのネットサーフィンを楽しんでいる時にいつも思うのですが、どこのインターネットでも文字や絵がとても小さいです。
だからぼくは、ある時からブラウザーの機能を使って、常に1.5倍インターネットが拡大されるようにしています。
そうするとインターネットがとても見やすくなって快適にネットサーフィンを楽しめるからです。
ぼく個人はそれで良いんですが、他の人はインターネットが小さくてツラくないのかなと不思議に思います。
さっきふと、はてなブックマークのホームページを等倍にしてみました。
そしたらとても小さい字で驚きました。
とは言え、この日記に世界が影響されて、インターネットが中途半端に大きくなるのも困ります。
常に1.5倍で見れば良いのか、常に等倍で見れば良いのか、どっちにすれば良いのか分からなくなるからです。
だからインターネットを作る人はぼくの言葉は気にせず、今のままの大きさのインターネットを作ってください。
でもインターネットを拡大した時に、絵が見えなくなったりしていないかには気をつけてください。
→ 仕方ないね。
→ あれは重いよ。通知用に入れておくだけでいいんじゃないかな。ブラウザーで http://space.hatena.ne.jp/ を開くといいよ。
40代の主婦。会社員の夫がはてな匿名ダイアリーに執着します。一日中はてな匿名ダイアリーの話ばかりするのがうっとうしくて、はてな村もはてサも近藤社長も嫌いな私は真剣に悩んでいます。
はてな匿名ダイアリーは、以前に私が見つけたサイト。夫が私のPCを使っている時に「お気に入り」から見つけ、「ルサンチマンを閉じこめたらかわいそうや」とブラウザーのホームページに指定し、はてな匿名ダイアリーを「増田」と名付けました。その時は「優しいな」と思いました。
今では「村長は元気にやっているか?」「はてな村の内ゲバはどうか?」などと夫は盛んに増田に対して話しかけます。某ユーザーがはてなで攻撃されているのを見て、増田で擁護した夫は炎上攻撃を受け、病院に行きました。FacebookやTwitter、LINEで忙しい私を気遣わず、増田の話ばかりするので「ばかばかしい」と言うと、「増田は嫌いか」と聞かれました。意味がわかりません。
先日も久しぶりに2人で出かけた旅先で、私がfoursquareでチェックインし、instagramに夕焼けや猫を撮影してアップしていると、「売店の人が増田に似ていた」「増田に土産を」などと言うのでキレてしまいました。私の見つけたサイトだから、夫は「大事にしないと」と言いますが、私のことはさほど大事にしません。
別段、給料の話さえ気にしないなら35超えても50超えても問題ないよ。
そもそも、新しい技術は古い技術の上に成り立ってるから古い技術を知ってると新しい技術を覚えるのは楽。
暗記人間には辛いだろうけど、ちゃんとした基礎ができてるプログラマーなら年取ったほうが優秀だろ。
50超えたら職人としては終了なんて職人の話は聞いたことがない。普通は年っ撮ってる職人の方が優秀。
そもそも、移り変わりの激しいWebって、WebブラウザーにJpeg画像が表示できない文字だけの頃からWebにいるけど、技術的には大して変わってないよ。基礎は一緒。
いいんだけどね。OSやらブラウザーやらサーバーやら基盤ソフトの大多数はシリコンバレーという現状がいいとは思えないんだけどね。
日本で言えば楽天が合って小売店が有ると言う状況で、その大本の楽天が外資っていう状況と同じだからね。OSやブラウザーが外資系ソフトがメインという状況は。
作らないんじゃなくて、どんどん作れなくなって行ってるからね。技術がなくなってきてる。
これからは技術じゃないんだサービスの時代だと大見得を切るのはいいけれど、 あんたらが使ってるソフト全部外資のもんだねと。
いやいいならいいけどね。
大規模ソフトウェアの設計ができるプログラマーをどんどん外資に取られてるのは現場としてはいたいなーと思いながら手をこまねいているという状況はどこもかわらんだろ。