はてなキーワード: ルーティングとは
取り上げた技術は、本格的な開発でも役に立つもので、最も学習コストが低いものを選んだ。
重要度が低いものは載せていない。たとえばHTMLとCSSなんてググりながら書けば全く問題ない。Bootstrapなどのフレームワークも全くやる必要はなく、仮に就職先で使っていたら覚えればいい。
逆に言えば以下に挙げる技術は、そもそも概念自体がプログラミングにとって普遍的なものであり、(基礎的な部分を)調べながら使うようではエンジニア失格ということ。
基本的に現在では、バックエンド・フロントエンド・運用保守全てができないエンジニアに価値は無い。
以下に挙げた技術(①⑤⑥は他の言語やフレームワークで代替可能)が身に付いていなければまともな企業に就職することは難しい(もちろん、下らない業務システムを下請けで作ってる底辺企業には入れるだろうが)。
経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。
特定の言語やフレームワークの書き方を知っていること自体に意味は無い。
重要なのは、他の言語やフレームワークにも共通する基礎を理解すること・保守性やセキュリティなどの品質を高める使い方ができること。
この2つは習得が容易だし、今覚えておけば向こう10年腐ることはないだろう。
基本的な構文や、よく使う標準ライブラリは勿論、高階関数・クラス・非同期処理等の発展的な機能も知り尽くしていなければならない。
言語のみではなく、パッケージ管理、単体テスト、タスクランナー等の周辺ツールの使い方も熟知している必要がある。
また、「リーダブルコード」や「コードコンプリート」に書いてあるような良い作法も身に付ける必要がある。
Gitを使えないのはプログラマーとして論外。細かい機能は調べればよいが、
多くの場合、本番環境やテスト環境はLinuxサーバーであるから、以下のような基本的な概念と使い方を知っておく必要がある。
環境構築、CI、デプロイなどは、現在コンテナを使って行うことが当たり前になっている。
これも細かいことをすべて覚える必要はないが、Dockerfileの書き方や、docker-composeの使い方などは知っておかなければいけない。
Flaskは、数あるWebフレームワークの中で最も簡単。本当に呆れるほど簡単で、Pythonさえ書ければすぐにアプリを作れる。
フレームワークを覚えること自体が重要なのではなく、Web開発の基本を習得することが重要。HTTP、ルーティング、データベース、SQL、認証、セッション管理などは当然すべて覚える。
データベースは、就職したらMySQLやPostgreSQLなどを使うことが多いかも知れないが、今はPythonの標準ライブラリにあるSQLite3を使えば十分。
作ったアプリを公開したければ、「Heroku」などにデプロイするのが良いだろう。
ブコメで指摘をいただきました。HerokuではSQLite3は使用できないようです。公式のドキュメントに従ってPostgreSQLを使用して下さい。
SQLite3はファイルにデータを持てる簡易DBなんだけど、Herokuにデプロイしてもストレージ的な使い方はできないから、結局PostgreSQLを使う必要あるから注意してね。(DAOを丸ごと書き換える羽目になる)
参考: https://devcenter.heroku.com/ja/articles/sqlite3
今の時代、フロントエンドをフレームワークなしで作るのはただのバカ。
2021年現在、実用的なフロントエンドのフレームワークはReactとVueしかない。Vueの方が少し簡単なのでこちらを選んだが、JavaScriptをしっかり理解しているなら大差は無い。
フロントエンドには膨大なパッケージ群があって全部覚えるのは大変だが、とりあえずまずはVueを完璧に使えればいい。Webpackの設定などは既存のものを流用すればいい。
アルゴリズムは全てのコンピュータ技術の基礎であり、絶対に知っていなければならない。
高速フーリエ変換のような高度な数学は必要ないが、クイックソートや木構造のような基本的なアルゴリズムは当然、その性質を知っていなければならない。
それらは言語の組み込み関数や標準ライブラリでも使われており、理解していなければ、それらの機能を正しく使うことができない。
また、プログラムを読み書きする際には、そのコードの計算量を見積もれなければならない。
セキュリティは言うまでもなく学ばなければならない。
有名な脆弱性や攻撃手法(XSS・SQLインジェクション・CSRFなど)が何だか理解していて、その対策を実装できなければならない。
各種暗号化技術や署名などについても、実装の詳細は知らなくていいが、共通鍵暗号や公開鍵暗号などの特性は理解する必要がある。
一度にたくさん調べても混乱するかなと思ったからまずはルーティングについて調べてみようと思って……
すまない、まじで素人なんだ
外部と隔絶されたプライベートIP内ならPC同士通信できるはず?となんとなく思っているので、インターネットのインフラの根幹ってルーティングなのかなと予想していたのでずばりなものがあってまずはそれについて調べたい
例えばどこかの施設に隕石が落ちたことで全世界でインターネットが使えなくなるなんてことはありえるのだろうか
グローバルIPを管理していて通信の交通整理をしている仕組みみたいなものがあってそこが無くなれば通信先がわからなくなるとか……?
でもそんなものがあったとして全世界で通信のたびにそこにお伺いてたにいくってのは考えにくいな
それぞれの通信の中継地点が旗振りしてるのだろう
だとすればどのIPがどこのサーバに通信渡せばいいか中継地点はすべて把握しているってこと……?どうやって常に最新化しているんだろう……
もちろん冗長化されているだろうからどこかの施設がひとつダメになることで全世界でインターネットが使えなくなるなんて、そんなことはありえないだろうけど
通話はキャリアの中の閉域IP網だから帯域ケチるためにネット接続は落とすみたいな実装は可能かもしれん 通話だけできる電波ってのはauの規格っぽい挙動の気もする
端末からSIP-VoIPで発信→端末とキャリアの管理サーバとの間で認証→音声データは基地局からキャリア内のイントラネットで交換→外部に出る場合はゲートウェイでアナログに変換みたいな流れ
ネットは別のゲートウェイなので宛先がネット用ゲートウェイの場合は落とすという実装も可能だし、逆に認証とか通話のルーティング情報だけIPでやり取りして通話データは基地局の近くで終端してアナログ電話網で流すようなことも可能だと思う
ほぼ同じ方法で未就職、未経験、高卒フリーター30代から数年で正社員年収4桁になった。
ただしプログラミングではなく、最初はネットワークインフラ屋。今はちょっと違う
自分のバイト経験から、プログラミングを集中して取り組むよりも、インフラ屋として、多くの社内部署や顧客の間に入り、
話を親身に聞きながら、インフラを整備する方が性に合ってると思ったから。その流れだとしてもこの内容でOK。
→完全に同意。スクールだの長期間の自己学習などいらない。正直PC持ってないのに入社するやつもいる。
→ITパスポートはマジで簡単だが、元日記の通り未経験者は勉強しないと合格できないので勉強して合格する。
基本とか応用とかは別にいらない。受験時期が固定されているのでモチベ的にも難しいがあればもちろん良い。できれば入社してから受けれると楽。
他にはLinux系、ネットワークのCisco CCNA、IT管理のITILなどは初心者向け。
→ITパスポートは覚悟を決めて、1-2か月もあれば、たとえIT未経験でも、仕事の合間の数時間の勉強で受かるはず。
4択の神が降りず、ITパスポートが受からないのであれば、自頭や向き不向きというよりも、IT業界のエンジニア、つまり、
”専門技術を持つ職人”を、未経験から目指す自分、という心構えの仕方に問題があるのかも。
大工でも刀匠でもいいので、未経験から職人になる自分をイメージして鍛錬する。
⇨年齢によっては、CCNAやLinux関連が無いとNGと言われるかもしれないので、複数の面接先で年齢と資格の少なさを指摘され続けたらやりはじめるで良い。
サーバ系資格であればクラウドでもサーバがあれば触りながら勉強できるのでなんとでもなるが、
CCNAは企業向けルーターやスイッチ、ルーティングなどの知識習得が必要で、未経験者の個人プレイ自己学習は結構ハード。
レベルとしては超初心者向けだが、工夫して手に入れないと触ることもできないし、スタートアップだけきつい。
費用も必要知識の範囲も跳ね上がる上、普段の日常生活でかかわらない。できれば入社してからが良い。
だが、なんとなーくで若者に目指されやすいWeb系、プログラマー系よりライバルが少なめで、需要は同じレベルで仕事が見つかりやすい=職人に進化しやすいのがポイント。
相手もわかっているので、CCNAや他の資格は入社してから早めに合格してください、研修します、時間あります、の会社が多い。
研修が無くても、突っ込まれた派遣先で教えてくれる、またはその時間をくれる企業も多い。が、実際にはわからないので派遣元で研修有の方が良い。
という事で最初はITパスポートで問題ないと思う。必要なのはITに未経験で入るための努力を事前に一人でできる奴なのかが伝われば良いのかと。
ただし年齢、時世次第な面もあるし、ハードルの高い会社に応募するなら基本情報やもっと専門的な資格が必要になると思う。
例えるなら、料理人に未経験から目指すために、簡単な調理方法を自宅で勉強してレストランのバイトから転職前提で始めるのか、
学校や教室で時間とお金をかけてじっくり覚え、本格料理屋の板前見習いからやるのかに近いのかも。未経験者の妙齢であれば前者を勧める。
今の状況をIT業界で変えてみたいなら、最初は欲張らずにとっとと転職してしまおう。また転職するので。
→特に未経験者の周回遅れは超本気を出さないと厳しい。資格、実務、コミュニケーション、転職を想定した立ち回り、
ビジネススキルなど、正直気が休まる時は最初の1年はないと覚悟してもいい。
でも、結果として高卒フリーター30台の周回遅れを一年で挽回できたと考えるとかなりお得だった。
→オススメ。だが、派遣元、派遣先、先輩後輩、仕事付き合いなどでそのような機会があるケースもあるので、
無理には時間を割かなくても良いのかも。たまに行く程度で構わないかもと個人的に思う。だが参加した結果誰とも会話しなくても、
良い発見やお土産、数年後にお客さんとその話で盛り上がったりと、有益なケースがほんと多い。
→どんなに慣れて居心地良くて未練があろうとも、少し給料が上がっても、最初の未経験募集中の会社に居すぎないことが大事だと思う。
自身の努力ペース、経験ペースによっては1年ちょっとで転職しても全然構わない時代。転職しないと給料や待遇はそうそう上がらない。
転職活動を少しするだけで、自身の客観的な評価も気付けたりする。
→資格については、インフラの場合、いろんなメーカーの資格が有る。大抵が短めの有効期限付きで、面接官が知らない資格も膨大にある。
だからといってミーハーに国家資格の高難易度だけ取っても面接でアピールできない事が多い。みんな持ってるし。オンリーワンが狙いにくい。
このメーカー資格って何?知らんけどすごいの?って聞かれた時に、実務経験を加えたエピソードを語れるようになると良い。それは別に自分が全部やった事でなくても構わない。
実案件がベターだが、研修で社内で誰よりも一生懸命勉強し、社内でこのメーカー製品は俺に聞け!クラスになった。とかでも努力と知識のアピールになる。
あと、面接官はメーカー資格の有効期限なんてそうそう見ない。マジで聞かれたら数日でさくっと取り直せばよろしい。
その頃には一度取ったメーカー資格の多くは無勉強や短時間で取り直せる実力がついてる。
→最初のうちは全く勉強せずにGoogle翻訳やアプリなどを駆使。最初からそこにリソースを割くぐらいなら、エンジニアの勉強に使う事に完全に同意。
→が、大手企業の中途採用のリーダーやマネージャーなどの幹部候補や、外資系の多くが、ある程度の英語力や、英語の抵抗の少なさが必須になる。
数年後にキャリアアップや収入アップを狙うなら、余裕が出てきたら合間に少しずつ勉強した方が潰しが効く。
50代になってもプログラミングやエンジニアリングを極めていくつもりならいらない。でもなんかそういう人は10代からのめり込んでる気がするし、
若い頃から特化してた人との周回遅れが取り戻しにくかったりするので、ふらふらしてた自分の幅広い経験や柔軟性を活かそうとする人が多い気がする。なんとなく。
海外出張/研修や外国人との打ち合わせがある仕事なら、いずれ少しでも積極的に参加した方が良い。
ペラペラである必要はない。英語で話したりメールしたりしてくる期間限定イベントが開始された時に、最低限意思疎通できればいい。
→英語のソースややり取りに抵抗を減らしていく。むしろ英語のソースから調べる癖を徐々につける。Google翻訳前提でも構わない。
日常生活でも、欲しい商品が海外ブランドや日本未発売なら、輸入品を楽天やメルカリで必死で探さずに、まずはブランドサイトや
海外のショッピングサイトなんかを眺める。日本発送OKなら英語で頼み、来たメールを読み、
気になる事があれば英語(by Google翻訳)で間違いだらけのメールを送りあうぐらいになっておけば、
仕事で突然メールやら挨拶やら電話やらを求められても抵抗が少ない。
まともな会社であれば、いきなり英語の大勝負は求められないので。
大の英語嫌いの人だと、いきなり英会話教室、アプリ、動画で勉強とかもハードルが高いので、
このぐらいの低レベルの英語のやり取りからだと楽な気がする。あとは英語圏の海外旅行。そんなお金があればですが。
こういう必要性が求められる系だと、割とできちゃったりするかなと。最初のITパスポートの時のようにね。余裕が出てきたらし始めるといいかも。
英語よりも日本語での意思疎通やコミュニケーションを少しでもあげた方が良い。
おしゃべり力雑談力も大事だけど、苦手なら社会人コミュ力をあげておく。
困った時にいろんなアドバイスをしてくれる、自分の専門外だった時にも知っている人を紹介してくれる、昔の話や顔と名前をよく覚えている、なども社会人コミュ力。
テクノロジーわかってる論者の中にはIPがただの宛先で通信の中身じゃないと薄々思いつつもイデオロギーのために通信の秘密の侵害を盾にしてる人もいるってこと?
正直自分の視点からはIPルーティングにおける機械的ブロッキングの反対根拠が通信の秘密侵害っていうのは弱すぎると思う。
あと「抜け穴があるからブロッキングは意味ない。だからやるべきではない。」も違うと思う。元にも書いたけど違法なことするならせめてそれを自覚してバレないように行うべきであって、つまり「抜け穴」を使うくらいはすべき。現状は抜け穴も何も、Googleに名前打ち込めばバカでも著作権侵害できる状況で、その状況を肯定する根拠が無い。これはグレーな意見だけど、むしろバカをスケープゴートにして抜け穴あるブロッキングで手を打ったほうがバカ以外には良くない?
Google は、すべてのユーザーによりよいサービスを提供するために情報を収集しています。よりよいサービスの提供のために行うことには、お客様の使用言語などの基本的な事項を理解することや、お客様にとって最も役に立つ広告はどの広告か、オンラインで大切な人々は誰か、おすすめの YouTube 動画はどれか、などの複雑な事項を推定することが含まれます。
お客様からご提供いただく情報 たとえば、多くの Google サービスでは、Google アカウントのご登録が必要です。ご登録に際して、アカウント情報として保存する個人情報(例えば、氏名、メールアドレス、電話番号、クレジット カードなど)の提供をお願いしています。Google が提供する共有機能をすべてご活用いただく場合は、公開される Google プロフィールを作成していただくようお願いすることもあります。これには、名前や写真などを掲載することができます。
サービスのご利用時に Google が収集する情報 Google は、ご利用のサービスやそのご利用方法に関する情報を収集します。たとえば、YouTube で動画を再生された場合や、Google の広告サービスを使用しているウェブサイトにアクセスされた場合、Google の広告やコンテンツを表示または操作された場合などです。これには以下の情報が含まれます。
端末情報
Google は、端末固有の情報(たとえば、ハードウェア モデル、オペレーティング システムのバージョン、端末固有の ID、電話番号などのモバイル ネットワーク情報)を収集します。Google では、お客様の端末の ID や電話番号をお客様の Google アカウントと関連付けることがあります。
お客様が Google サービスをご利用になる際または Google が提供するコンテンツを表示される際に、サーバー ログ内の特定の情報が自動的に収集および保存されます。これには以下の情報が含まれます。
お客様による Google サービスの使用状況の詳細(検索キーワードなど)
電話のログ情報(お客様の電話番号、通話の相手方の電話番号、転送先の電話番号、通話の日時、通話時間、SMS ルーティング情報、通話の種類など)
端末のイベント情報(クラッシュ、システム アクティビティ、ハードウェアの設定、ブラウザの種類、ブラウザの言語、お客様によるリクエストの日時、参照 URL など)
お客様のブラウザまたはお客様の Google アカウントを特定できる Cookie
Google サービスをお客様がご利用になる場合、Google は、お客様の現在地に関する情報を収集して処理することがあります。Google は、IP アドレスや GPS の他、各種センサーから Google に提供される近くの端末や Wi-Fi アクセス ポイント、基地局に関する情報など、さまざまな技術を使用して現在地を判定します。
固有のアプリケーション番号
サービスによっては、固有のアプリケーション番号が割り当てられています。この番号とお客様のインストール情報(オペレーティング システムの種類、アプリケーションのバージョン番号など)は、お客様が当該サービスをインストールまたはアンインストールする際に Google に送信されることがあります。また、当該サービスが Google のサーバーに定期的にアクセスする際(自動更新の際など)にも送信されることがあります。
Google は、ブラウザ ウェブ ストレージ(HTML 5 など)やアプリケーション データのキャッシュのようなメカニズムを使用して、収集した情報(個人情報を含む)をお客様の端末にローカルに保存することがあります。
お客様が Google サービスにアクセスされると、Google およびパートナーはさまざまな技術を使用して、情報を収集して保存します。その際、Cookie や同様の技術を使用してお客様のブラウザや端末を特定することもあります。広告サービスや他のサイトに表示される Google 機能のように、Google がパートナーに提供しているサービスの利用の際に、Google が Cookie や同様の技術を使用して情報を収集して保存することもあります。Google アナリティクスでは、企業やサイト所有者がウェブサイトやアプリへのトラフィックを分析することができます。DoubleClick の Cookie を使用するサービスなど、Google の広告サービスと連動して使用する場合、Google アナリティクス情報は Google アナリティクス ユーザーや Google により、Google の技術を使用して複数のサイトへの訪問数に関する情報とリンクされます。
Google がパートナーから取得したお客様に関する情報に加え、お客様が Google にログインしているときに Google が収集した情報は、お客様の Google アカウントに関連付けられることがあります。Google アカウントに関連付けられた情報は個人情報として扱われます。ご自分の Google アカウントに関連付けられた情報へのアクセス、管理、削除の方法について詳しくは、本ポリシーの透明性と選択肢の項目をご覧ください。
Google は、どの Google サービスから収集した情報も、そのサービスの提供、維持、保護および改善、新しいサービスの開発ならびに、Google とユーザーの保護のために利用します。Google は、お客様に合わせてカスタマイズしたコンテンツを提供するため(関連性がより高い検索結果や広告を提供するなど)にも当該情報を利用します。
お客様が Google プロフィールで指定された名前を、Google アカウントを必要とする Google のすべてのサービスで利用することがあります。さらに、Google は、以前にお客様の Google アカウントに関連付けられた名前を置き換えて、すべての Google サービスでお客様を一貫して識別できるようにすることがあります。他のユーザーがお客様からのメールやお客様を識別するその他の情報を既に取得している場合、Google は、当該他のユーザーに対し、お客様が公開している Google プロフィール情報(お客様の名前や写真など)を表示することもあります。
お客様が Google アカウントをご利用の場合、お客様のプロフィール名、プロフィール写真、Google または Google アカウントに関連付けられた第三者のアプリケーションでの行動(お客様の +1 や、お客様が記述したレビューおよび投稿したコメントなど)が Google サービスに表示される場合があります(広告やその他の商用関連の表示も含まれます)。Google は、Google アカウントでお客様が行う共有または公開範囲の設定に関する選択を尊重します。
お客様が Google にお問い合わせをされると、Google では、お客様がかかえているであろう問題の解決などに役立てるため、お客様との通信の記録を保管します。お客様のメールアドレスを使用して、Google サービスに関する情報(予定している変更や改善のお知らせなど)を通知することがあります。
Google は、Cookie の他にも、ピクセル タグなどの技術から収集した情報を、ユーザーエクスペリエンスの改善や Google のサービス全体の品質の向上に利用します。Google ではこの目的で、Google 独自のサービスの 1 つである Google アナリティクスを使用しています。たとえば、お客様の言語設定を保存して、お客様が指定された言語で Google サービスを表示できるようにします。Google では、広告をお客様のためにカスタマイズして表示する際、Cookie や同様の技術からの識別情報を機密性の高いカテゴリ(人種、宗教、性的指向、健康など)と関連付けることはありません。
Google の自動化システムはお客様のコンテンツ(メールを含む)を分析して、関連性の高いサービス機能をお客様に個別に提供します。このような機能には、カスタマイズされた検索結果、カスタマイズされた広告、スパムとマルウェアの検出などがあります。
Google のあるサービスから取得した個人情報を、Google の他のサービスから取得した情報(個人情報など)と結び付けることにより、たとえば知人との情報の共有を容易にすることがあります。また、アカウント設定によっては、Google のサービスや Google が配信する広告を改善するために、他のサイトやアプリでのアクティビティがユーザーの個人情報に関連付けられる場合もあります。
このプライバシー ポリシーに記載した以外の用途で、情報を利用する場合は、必ずお客様の同意を求めます。
Google は世界中のさまざまな国にある Google サーバーで個人情報を処理します。お客様の居住国以外にあるサーバーでお客様の個人情報を処理する場合もあります。
そのIPアドレス宛のパケットもルーティング経路で捨てたりするのかな?
そうすると更に金盾感が増すな。
プロバイダの運用チームが先にいたちごっこに負けそうな気がする。
追記
あと、ブラックリストでDNSブロッキングするときいちいちリストの全アドレスチェックなんかせずに
そのままキャッシュサーバのNG用ゾーンにぶち込む運用になるだろうから、作業にかかわる誰かがいたずらとか
イデオロギーから適当なサイトのアドレス紛れ込ませても分からなくなるよね。
どっかの幹部が国会でヤジったみたいに責任ある立場でも後先考えずにイデオロギーで暴れる人普通にいる時代になっちゃったからね。
まず職位名だが本国と出先では同じ職位名でも実際の機能は結構違う。これは出先機関は基本的に本国の指示を実行することがまず求められるのと、大抵は営業拠点であるので売上・利益というゴールが最大の関心事になるためと思われる。
Assistant - 契約社員 / Associate - 新入りレベル / Senior - 新入りレベルではない人、または、何年かはいる人 / Lead - 現場リーダー / Manager - とりまとめ担当者、または係長〜課長 / Director - 課長〜部長 / Vice President - 部長〜本部長 / Executive Vice President - 本部長〜執行役員 / Senior Executive Vice President - 取締役(CXO) / President - 社長(CEO)
Specialist - 担当者。専門家という意味は特に含まない / Architect - 作業担当者。設計という意味は特に含まない / Engineer - 作業担当者。開発という意味は特に含まない
Sales - 営業段階で動く人 / Services - 利用段階で動く人 / Engineering - 開発段階で動く人
なので、たとえばService Architectは「サービス設計をする人」ではなく「導入支援担当者」で、Engineering Architectは「開発物の設計をするアーキテクト」となる。
面倒なのがManagerで、一般名詞として使うときは「管理者」だが、Product ManagerなどXXX Managerと使うときは管理者ではなく「XXXまわりのとりまとめ担当者」といった意味の役職になる。
これらは一例で、会社によってどういう修飾語を付けるかは結構違う。ただ言えるのは、日本の会社に比べてインフレした名前をつけるというか、実際の役務以上にカッコイイ響きにしている感がある。「Senior Architect」とか言われたらおおっと思ってしまうが、「新入りではない作業担当者」と読み替えたら普通である。
意思決定については、VP-Director-Managerのラインでは、VPが意思決定を行い、Directorは部門間調整を行いながらManagerを支援し、Managerがスタッフ管理をする形になる。日本でも同じではと思うかもしれないが、中央集権度が違う。
Managerが一番現場と上層部の意思決定の板ばさみとなっているのは洋の東西を問わないようで、しかも中央集権度が高いため中間では判断できずメールの転送リレーになってしまうこともしばしば。実務上の判断よりも、メッセージのルーティングが最大の機能になる。これを「オープンな組織とコミュニケーションスタイル」と呼ぶのか「ヒラメ族による調整」というのかは地域によって違うようだ。
このあたりは本国か出先機関かがおそらく影響しており、叩き上げが多かったりコミュニケーション密度が高くなる本国内であればManagerへも権限委譲しやすいが、人の出入りが激しい出先機関では難しいと思われる。
また、これは組織構造に加えて組織の大きさが影響していると思われるが、数値での目標管理がしっかりしている。全く異なる地域・文化の社員を管理・比較しなくてはならないので、個別状況を勘案することは基本的に無理。したがって数量換算できる指標で管理するのが原則となる。これは成果主義ではなく、数値主義と言える。例えばSalesであれば獲得顧客数・売上・利益、Serviceであれば売上稼働時間といった指標になる。
再び本国と出先機関の違いに戻ると、出先機関は基本的に在籍年数が少ない。いわゆる日本での典型的な外資系イメージがこれであろう。これは出先機関はとにかく売上・利益を本国にもたらすことが最優先なのが理由と見ている。先の数値管理に加えて現場での自由度の低さもあり、プレッシャーの大きさだけでなくストレスレベルも高い。
そしてそんな短期間で回転してゆく社員を個別の非数値的状況を勘案しつつ管理することは難しいので、数値管理がますますなされてゆくという傾向がある。ここはかつて流行った数値的経営管理の影響も大きそうである。KPIをどんどん定義して、その数値によって判断するのが論理的に正しい、という傾向がある。
一応、数値だけではまずいということで、それを補うために数値外の評価制度がある。しかしこれも360度評価が主流となり上長が指揮下のスタッフを自らの責任で評価するものではなくなっているため、全員がある意味「世間による評価」を意識する必要があり、これはこれで大変である。日本の「空気」みたいなものだが、結局管理せずに管理したいと処理を分散していくと同じ様なものになるのが面白い。
そんな状況のため出先機関では常時人が不足している。しかし育成機能はなく、本国要求は現地状況と関係なくどんどん出てくる。そうなると短期間でやめるにしても給与レベルは高いですよ、という形にして集めざるを得ない。備兵みたいなものである。しかしそうなると会社としても元は取らなくてはいけないので目標管理が更に厳しくなる。
この構造では商売が軟調になると、社員はストレスばかり大きくなるので一気に離散する。また、社員としても元々長年居られると思っていないので、軟調以前に他社のでもより強い商材が登場すればそれに乗って転職してしまう。こうして転職が激しい構造が生まれ、維持される。
企業の興亡が激しいのもこういう人的資本の急激な集散が要因になっていると思うが、こういうダイナミックな状況で法人が滅ぶのはいいとしても個人は死ぬわけにはいかないので大変である。この構造を「状況に適応し迅速に新しいバランスに至るよい仕組み」とみなすか「過敏に状況を揺らし個人や社会を不安定化させる仕組み」とみなすか、難しいところだ。「経済効率の追求が世界人類を総体ではより豊かにした」vs「経済効率の追求が個人の生活を破壊した」みたいな話。
何が言いたいわけでもないが、結局どの組織も置かれた状況に適応しているだけで、どちらがいいというものでもない。地の利と時の運に恵まれ業績のいい企業・産業・地域では余裕があるため、その余裕が反映して「理想的なワークスタイル例」としてもてはやされるが、それが自社・自分に適しているかは全然別の話になる。
そういうのはキャリアが遠隔監視なんじゃない?多分お店の人は感知してないかと思う。
いまスマホがsim認証で勝手に繋がったりするから、人が多いと接続ユーザ数上限になって繋がらなくなっちゃうんじゃないかな。
wifiって接続数100とかになると1台あたりの速度がほぼゼロ落ちするから、上限に達するとそれ以上接続できないように制御するはず。
わかんないけど、家庭用の親機は上限10~20台くらいを想定して作ってるし、公衆無線LANの基地局も大幅に高スペックというわけではないと思う。遠隔監視機能とかは入ってるかもだけど。
高スペックといっても、電波×空間のリソースは同じだから劇的には変わらない、中でルーティングするCPUの処理速度くらいしか変わらないから大きくは変わらないとおもう。
今の無線LANの規格はプライベートNW用で、パブリックで使うには向いてないし帯域も足りない。
パブリックで使うように、同じSSIDでもチャネル&周波数帯で振り分けて負荷バランスとるとかできればいいけど、たぶんそんなのはやってないと思う。
先日の大規模障害について理解の確認を兼ねて書いてみたいと思います。多分来週辺りに日経IT Proが特集してると思いますが。
インターネットは「ネットワークのネットワーク」とも言われ、要はISPが沢山繋がったイメージです。
ただISPの中もそれなりに大きなネットワークですので、ある統一したポリシに従って運用される必要があります。そのポリシが適用されるネットワーク単位がAS=autonomous system=自律システムです。なので必ずしも1ISP=1つのASであるとは限りませんし、最近はコンテンツやサービスを持つ事業者、つまりAmazonやYahoo、GoogleもまたASを運用しています。
ASは自分の情報を他のASに伝え、他のAS内に居る人がアクセスできるようにします。それが「経路情報」と呼ばれるものです。これを交換することで地球の裏側のネットワークにでも辿り着けるようにするわけです。
フラットな関係でお互いに情報交換すれば解決しそうな話ですが、現実世界と同じようにAS間には力関係、つまり上下関係が生じます。
ISPですと、下位のISPはより上位のISPから「経路情報」を購入しなければ世界へ繋がれません。その最上位に位置するのがTier1と呼ばれる事業者です。現在は約10社ほどですが、彼らが経路情報を互いに交換して作られるのがインターネット上の全ての経路情報=フルルートになります。
Tier1は米国の事業者が多いのですが、買収したことでNTT-ComやソフトバンクはTier1となっています。
いよいよ本題です。
AS間でやり取りする経路情報はざっくり言えば「10.0.0.1/24のアドレスを持つAS1に行くには、AS10とAS20とAS30を通ってきてね!」という情報です。この情報を受けたAS200は、この逆順に辿るように案内すれば10.0.0.1/24に辿れるわけです。簡単ですね。
ただし、ISPであれば複数のASと接続しているのが普通です。なので別のAS100からは「10.0.0.1/24のアドレスを持つAS1に行くには、AS150とAS100を通ってきてね!」という情報がもたらされるかも知れません。単純に考えて、AS100の経路の方が経由するASが少ないので速そうですのでこれを優先して案内するようにします。単純ですね(実際には他要素を加味して制御します)。
これら情報を受けたAS200は繋がっている他のASに対して、同様に「10.0.0.1/24のアドレスを持つAS1に行くには、AS150とAS100とAS200を通ってきてね!」と伝搬してあげたりもします(しない場合もあります)。
こんな風に経路情報を交換するプロトコルがBGPです。経路情報は定期的に交換するのではなく、変更があった際に広告(advertise)されます。
ところでASは基本的に自分の情報を出すものですが、実は誰でも他ネットワークの情報を出すことができます。つまり「自分(AS)の管理していないIPアドレス」に対しても「この順路で来てね!」という案内が出せてしまいます。認証なんて面倒なものはありません。IPアドレスが割り当てられたからといって、それがどのAS内に属しているかは実は別問題なのです。
もちろんある程度防ぐ仕組み、チェックする仕組み(経路フィルタ)は存在しますが、どのような経路情報を出すか、来た経路情報をどう料理するかは非常に難しいもので、また全てのASが同じポリシで運用する保証はありません。
Googleの管理するAS15169はNTT-Comに関する誤った経路情報を広告したとの報道があります。
詳細は不明ですが、素直に読むならNTT-Comが管理しているIPアドレスについて「ここにこんなネットワークがあるよ、ここを通ってきてね!」情報を出したと言うことでしょう。
NTT-Comに関する間違った経路情報が流れたなら迷惑するのはNTT-Comだけのはずです。
が、実際には多くのネットワークに波及しました。不思議ですね。
もしTier1が受け取った経路情報を何もフィルタすることなく下位のISPに伝搬すれば、当然下位ISPへどんどん誤った経路情報が伝わっていきます。
最上位であるTier1から到達性のない経路情報を知らされても、下位ISPはそれを信じるしかありません。
誤った経路情報で誤った経路に誘導されることを経路吸い込みといい、悪意を以て行われる場合であれば経路ハイジャックと呼ばれます。
ただし本来のNTT-Comが出している正しい経路情報が無くなったわけではないのです。
上述の通りBGPでは優先度判断の一つにASパスの長さがあります。
それまで「NTT-Com→AS1000→AS2000→AS3000→AS4000」だった経路情報が「NTT-Com→AS1111→AS2222」となったなら、後者がBGPレベルで優先されてしまう可能性はあります。
NTT-ComはTier1ですから、海底ケーブルを含む多くのバックボーンを持っています。他ネットワークへの中継点としてISPに限らず通信網として非常に重要です。
NTT-Comと全く関係のない業者のWebサイトであっても、「Webサイトが属するAS→AS3333→AS4444→NTT-ComのAS→AS5555→…」という経路情報が伝搬されている可能性があります。
通常は途中のNTT-Comを通ればはやーいとなるはずが、そのNTT-Comへ行くための経路情報が変わってしまえば大きく迂回してしまう経路になるかも知れません。
パケットには生存時間(TTL)と呼ばれるものがあり、あまりに多くのルータを経由すると(Windowsなら128)到達不能として破棄されます。
ただそもそもが誤った経路情報なので、途中のNTT-Comに辿り着いたと思ったら全く別のネットワークのためデフォルトルートに投げられてしまい、彷徨って同様に消えたのかも知れません。
10.1.0.0/24とか10.1.0.0/25の意味がわかる人向けです。
そもそもルータはより細かい(プレフィックスが長い)ネットワークへ優先してルーティングする(ロンゲストマッチ)ため、長いプレフィックスで広告してしまうことで経路吸い込みを起こせてしまえます(ロンゲストマッチはルータに於ける大原則なので最優先されます)。
この事象は割りとよくあり、2008年にパキスタンのASが国内からのYoutubeへのアクセスを規制するための偽情報を誤って外部へ広告しアクセスできなくさせる事象を起こしています。
現在のフルルートは約65万経路と言われてますが、お高いBGPルータにとってもこの経路情報の大きさは非常に大きな負荷であり課題とされてます。
経路情報はASの内部に対しても(内部ネットワーク内での経路情報として)伝搬する必要があり、どちらかといえばこの各AS内部での伝搬時にルータ負荷上昇が発生し遅延が生じたのではという説があります(この辺は自信なく怪しいです。IGP詳しい人に)。
巨大なネットワークであればあるほど内部の経路情報の収束には時間を要してしまうこと、わずか8分の間に約10万経路の追加とその取消が生じたことで完全復旧まで時間を要した可能性があります。
いかがでしたか?(キュレーションサイト風)
AS自体は条件(https://www.nic.ad.jp/ja/ip/asnumber.html)を満たせば事業者に限らず誰でもAS番号を取得し運用できますので、興味を持った人はBGPオペレータになって「指先一つでインターネットを壊せる」緊張感に酔いしれましょう(※BGPオペレータに対する個人の感想です)。
$
2046年。東京オリンピックの年に生まれた人間が三十路に差し掛かる頃。
餃子チェーン店のテーブル席で、野暮ったい女がビールを飲みながらノートパソコンに何か打ち込んでいる。ひどいクマと死んだ魚のような目はまるで亡者だ。亡者がスウェットを着て餃子をつまんでキーボードを叩いている。
老紳士が現れる。ボウシを取り、くすんだ色のトレンチコートを脱ぎ、女の対面に当然のように座る。老紳士は老いているからか、挙動がぎこちない。
「やあ、赤坂くん」
女は答えず、画面を見ながらチャーハンをゆっくり口に入れ、咀嚼する。
女、赤坂は無視し続ける。ポッケからイヤホンを取り出し、耳にはめ込む。無言の意思表示だ。老紳士はしばらく黙っておいて、それから何を思ったか、半分衝動的に赤坂のパソコンをパタンと閉じてしまう。
「おい」
乱暴に、短い抗議の意を示す赤坂。老紳士はとぼけて、それを意にも介さず用件を切り出した。
「ロシア上空に、GPS衛星と偽装されたアメリカ軍の偵察軍事衛星がある。それにちょっと侵入(はい)ってきてほしい」
手に折りたたまれたコートのポケットをさぐり、メモリードングルを取り出す老紳士。赤坂はそれをむしり取って、小さな機械に差し込み、それを有線でパソコンに繋いだ。
「あいかわらず厳重だな」
「パソコンに直接差し込むのは、信用できる機器だけにしてるんです。教授、あなたからそう習ったはずですけど」
呆れる老紳士に皮肉を返すと、赤坂はメモリードングルに入った資料を開いた。
「5ページ目にリストされているETN-G-129がそれだ。表向きは、商用オフザシェル化の一環として宇宙関連企業のパラジウム社が受託し打ち上げたBlockⅢ代替のGPS衛星だ。しかし、実態はちょいと違う」
ある資料には、膨大かつ一般人には意味不明な数列が延々列挙されていた。2桁の16進数が大量に連なっている。しかし、彼女にはこれらの意味が分かる。
「そうだ。しかも、暗号化されていたものをご丁寧に平文にして転送している。NSAも随分と腑抜けたものだよ」
注文を取りに来た店員にお冷を頼んで追い返す老紳士。彼がひどい下戸であることを赤坂は知っていた。
「まあそうだな。依頼主はアメリカ側からのアクセスを止めさせろと言っているがな、それじゃあんまりつまらんだろ」
店員が会話を中断させ、水を置いていく。老紳士は一口、いかにも老人といったしぐさで飲む。
「赤坂くんの好きにしていい。おそらくコントロール系統はNORADに接続されている。君の腕ならば、衛星を踏み台に使うのも良かろう」
「それだったら、もう少しマシな手があるし、だいたい軍やら何やらに侵入するのはあなたの持ってくる依頼のせいじゃないですか」
「はて。ワシはバス接続の危険性以外にもこう教えたはずだがな。『君たちは楽しい楽しいオモチャを手に入れたのだ』とな」
ーーーーーーーーーーーーーーーーーーー
帰る途中。コンビニに立ち寄り、ソフトクリームを食べるための座席に座り、キーボード付き携帯端末を公衆無線ネットに繋ぐ。会員登録をしろとせがむ画面を消し、スクリプトをいくつか走らせると、すぐに管理者権限が手に入る。
いくつかプログラムを自動インストールさせ、オニオンルーティングとVPNで秘密の回線を作り出す。これで発信元の特定が困難になる。
そこから接続するのはとあるアメリカ軍人の個人端末だ。以前とあるショッピングサイトから流出した情報を使って、たやすく乗っ取る。今、アメリカはだいたい朝の10時。運が良ければ、軍人は軍施設内にいるはずだ。果たして、軍人は施設内におり、乗っ取った端末から施設の無線ネットに接続出来た。
軍用のシステムはちょっと頑丈で、コンビニのサーバほど簡単に侵入らせてはくれない。辞書攻撃を仕掛けつつ、母校たる東京電波大学の誇るスーパーコンピュータを使って秘密鍵の推測を行う。
20分程度かかって、なんとか秘密鍵を割り出した。同じ公開鍵が無線ネットの接続に使いまわされていたのはラッキーだった。こうして米軍のシステムに侵入できた。
しかし、いくら同じ米軍のシステムと言えど、見たところこの施設はただの空軍基地。件のスパイ衛星のコントロールシステムはそこには無いようだ。
そんなことは赤坂も最初から分かっていた。赤坂の狙いは、空軍基地にある衛星通信用のアンテナだ。これを使い、標的の衛星の近くにいる衛星にアクセスし、乗っ取り、そこから標的の衛星にアクセスするのだ。
これをやってみると上手くいかない。アンテナから衛星が遠すぎたのだ。仕方なく他の米軍基地をまた乗っ取り、やっと標的にアクセスできた。早速データベースを覗きこむ。
中身は、ロシアと米NSAの秘密鍵などでギッシリだった。これだけ色々あれば、次また教授が何か言ってきても楽になんとかなるだろう。
『衛星はーーNORADに接続されている。ーー踏み台にするのも良かろう』
教授のほざいたことをふと思い出し、コントロールシステムへの信号に偽装フレームを紛れ込ませてみる。偽装パケットには小さなフレームが仕込んであり、相手システムが受け取ると即座に実行され、こちらに諸々の情報を返してくる。すると米空軍の心臓を掌握したも同然である。
いささか満足し、帰る準備として証拠の記録であるセキュリティログを隠滅しようとして気づいた。セキュリティログが明らかに不自然だ。誰かが一部を消したのだーー赤坂が今やろうとしているように。
「私以外に、誰かが侵入っていたんだ。しかも、私とほぼ同時に」
少し気味が悪かったが、適当に証拠を処分し、衛星は傍受したデータではなくランダムに生成したデータを送信するようにしておいて、その場は終わりにした。
ーーーーーーーーーーーーーーーーーーーーー
レジに座り、大きなあくびをした。普段、赤坂は平成商会でアルバイトをしている。平成商会は新横浜にある、電子パーツの問屋だ。マニアと業者だけがやって来て、一般人にとってはガラクタにしか見えない物を買い漁る、知る人ぞ知る店である。
声をかけられ、顔を上げた。教授だった。ふざけている。そんなもの、彼が探しているはずもない。依頼の成果物を取りに来たのだ。
「これ、衛星のコンソールへのリンクです。米軍施設にあるコントロールシステムの電源が付いている限りは、自由に例の衛星をコントロールできます」
事も無げに言い、携帯端末に二次元コードを表示して差し出す。教授はうなずき、コードを写真に撮る。
「報酬はこれだ」
教授は提げてきた紙袋から何か取り出した。大きくて古臭い、中世のコンピュータの周辺機器だ。
「ずいぶん探したんだぞ」
「そうそう。ウチの大学のスパコンあるだろ。あれが短時間何者かによって不正利用されてたらしくてな。学内大騒ぎだ」
「ワシの研究室にもちょっと来てね、誰がやったか調べてくれって言うもんだから見てみたら驚いたよ。RAMに公開鍵がたっくさん入っておったよ。あれがNORADの鍵かね」
「いや、あれはどっかの米軍基地の鍵でした。NORADの鍵は私が大事に保管してます」
「鍵は大事に保管ね。当然だ」
教授が帰った後。店主の勧めでペケ86kを店頭に展示すべくパソコンに繋いでいる時。
「あの……すみません」
どこかから女の声がするではないか。嫌だな、怖いな、と思いながら声の方向をたどると、一つの端末が音声通信をしていた。
これだからP2P通信は。無視して通信ソフトを落とす。が、何度やっても立ち上がる。
「ちょっとお尋ねしたいんですが……」
電源を落としても、もう一度つく。コンセントを引き抜くと、別な端末に移る。
「もう、やめてくださいよう。ちょっとぐらい話きいてくれたっていいじゃないですか。ひどい」
「いやいや、あなたこそ誰なんですか……?米空軍の迎撃システムに侵入したの、あなたでしょ」
「私はただのバイトだ。消えろ」
キーボードを叩き、スクリプトを走らせて回線を遮断しようとするが、文字が入力できない。
「ネット切ろうとしてますよね。それはボクが困るので、キーボードの接続を切りました。ははっ」
ここで赤坂は確信する。こいつがあの不自然なログの正体だと。赤坂と同時にNORADをクラックしたハッカーだと。
「気持ち悪い」
「心外だなあ。ボクはあなたに興味があってはるばるここまで来たんですよ。ちょっとぐらい相手してください……」
「よっと」
後ろで声がする。メイドロボだ。やつは消えなかった。それは淡い期待に終わった。やつはメイドロボを乗っ取った。
ここの店主はメイドとレトロPCが大好きだ。置いてあるロボは無駄に美形の機種を買い、無駄にフリフリでクラッシックでステレオタイプなメイド服を着せられていたのだった。
モバイルアプリのエンジニアだが、最近RailsでAPIを作っている
Rubyでハマる
Railsでハマる
ライブラリでハマる
Aptanaでハマる
AWSでハマる
DBでハマる
ActiveRecordでハマる
ルーティングでハマる
ググっても出てこない
体系だったHowToを読もうとして、その膨大さに死にたくなる
猿でもわかる入門がわからない
一個覚えて、一個忘れる
情報が古くてハマる
途中で間違いに気づいて遠回りする
一個試して詰んで、別の方法試して詰んで、また元の方法でチャレンジする
体系立ったHowToを調べるが、自分が知りたいことが何なのかわからない
ライブラリのReadMeとにらめっこする
飽きてはてブを見る
大体2年位ずっとこれをやればいつの間にか慣れてるんだよね
体系だった本から地道に始められる人はすごいと思う