cloretsblackのテクニカルノート

言葉の意味はよくわからんがとにかくすごい自信だ

シェルの変数を分割する

このブログはテクニカルノートなので そろそろ真面目に技術的な備忘を書き溜めていこうと思います。

私はほとんどPHPシェルスクリプトの組み合わせでプロダクトを書いているので、 そのあたりのことを書きます。

(動作確認はDebian wheezyで行っています)

利用シーン

WEB画面から何かの値を入れて、その値を元にバックグラウンドでシェルを動かし、 その値を保存しておきたいとき。 値を保持する専用ファイル(test.dat)をPHPで作成し、値を書き込みます。

その値をシェルから呼び出すときには以下のようにします。

test.dat

message=test

test.sh

#!/bin/bash

source ./test.dat
echo $message

地味ですが割と頻繁に使うテクニックです。

モロボシダンとSonarman

2015年、6月末にリリースした「Sonarman」、継続的にパケットキャプチャを取るための製品なんですけども。無償のVMバージョンは弊社の運用現場でも使われてまして、色々思うところなどひとつ。

論理的なトラブルシュート

先日、尊敬する大先輩と一緒に昼食をとったのですが、
そのときウルトラセブンの話になりまして、特撮ものって尺が短いから謎解きとか結構適当ですよねという会話で盛り上がりました。例えば。。

タケナカ参謀「なんだこれは」
モロボシ ダン「未知の宇宙金属です」

 

...そうなの!?
何で断言するの?

 

別の場所で金属のかたまりを発見

モロボシ ダン「これは地球の物質ではない。叩くものを貸してください」

→叩き割る

破壊された金属内部から機械のようなものが現れる

モロボシ ダン「発信機つきの電子頭脳だ」

  

...えっ本当!?(バカボン風)
もうちょっとよく確かめたほうがいいんじゃないでしょうか? 大丈夫ですか?

 

まぁここまで極端じゃないですけど、トラブルシュートするときには設定変更をトライアンドエラーすることがあります。これは別に普通です。故障箇所を見極めるときに誰しもがやることです。

ですが、全くの当て推量で適当にやってしまうと別の問題を引き起こしたり、時間ばかり消費してしまいます。
最悪もとに戻せないなんてことも…、あるかもしれません。

モロボシ ダンのように、根拠が不明なのに怪しい物体を割ってみる、みたいなことは、時間の限られた特撮の物語上でしか許されません(笑)


指針としては、何を根拠に変更を試すのか、人に説明できるレベルまでには問題の現象と仮説を組み立てるのが理想でしょう。そんな時、直接ネットワークのIN/OUTを可視化できるパケットキャプチャが役に立つというわけです。

私の実感としては大体4割近くのネットワークトラブルが疎通の問題です。
クライアントから出力されたデータがサーバのプログラムまで到達しないというレベルです。

つまり、パケットキャプチャさえ見ることができれば4割の問題は無条件で障害箇所を切り分けできるということです。全く難しいことはありません。


パケットキャプチャを仕込むということは少なからずネットワークに変更を加えるということですので、慎重になる気持ちも大変よく分かるのですが、障害が発生したときに必ずそのキャプチャが手元にあるという状態は非常に快適です。

 

先日製品版のSonarmanには蓄積されたパケットキャプチャを解析して障害の予兆を検知する機能をリリースしました。設定漏れや、不整合などを見つける、ネットワーク監査のような目的にも使用できます。遠隔にある目の届かない場所(海外など)でネットワークの障害対応を行うのに最適な製品です。

 

develup-japan.co.jp

 

無償版のダウンロードはこちら

develup-japan.co.jp

 

 ソナーあれば憂いなし。

Sonarmanに興味がある方は、ぜひお問い合わせください!
@Clorets8lack

オリンピックにおけるIT技術者ボランティアの件について書いてみる

この話はなぜここまで炎上してしまったのか。

もともとは CEATEC JAPAN 2015で開催されたパネルディスカッションの内容が発端だ。

元記事

japan.zdnet.com


その後出たフォロー記事

japan.zdnet.com

これらの記事に出てくる一般社団法人コンピュータソフトウェア協会(CSAJ)会長の荻原氏の発言内容が物議をかもしている。

要約すると、

  1. 新しい団体を作った
  2. IT業界にはすでにたくさんの業界団体がある
  3. IT業界はひとつになって国に対して働きかけるべきだ
  4. 活動のひとつとしてIT教育の拡充がある
  5. 2020年までにセキュリティ技術者が4万人必要
  6. 国の費用でIT教育を拡充させる見返りとしてボランティアでオリンピックのサイバーディフェンスをやろう

ということのようだ。

他にもフォロー記事で発言しておりそれがまた炎上に燃料を投下するのであるが、それについては後述する。

まず、基本的な前提認識として、「使い物になるIT技術者は簡単に増やせない」という現実がある。
この話ではセキュリティ技術者の不足が取りざたされている。セキュリティ技術者は比較的育成が難しい職種で、これからセキュリティ技術を学ぼうとする人間が実践的な学習環境を用意するのが難しい。そのため、国の支援を、ということではないかと思われる。

しかし、この計画にも突っ込みどころがたくさんある。あと4年しかない状態で、使い物になる4万人の技術者育成はおそらく相当難しい。資格試験の合格を目指すのならともかく、サイバー戦争を引き合いに出して議論するほどのレベルにすることはおそらく不可能だ。スケジュール、目標ともに現実離れしていると感じる。

 

サイバー戦争がどのように行われるかということは実体験を持ち合わせているわけではないが、現実の兵器に使われているIT技術や軍事知識については井上孝司氏の連載に詳しい。

news.mynavi.jp

私の感想だが、とてもボランティアでできるようなレベルではないだろうと思う。セキュリティというものは普段の積み重ねによって整備する部分が大きい。1ヶ月間大量に人を動員したからといってどうにかなるほど生易しい業界ではないだろう。

また、ボランティア(無償)というお金の部分についても問題がある。セキュリティ担当者に十分な報酬を払わないとどうなるかを端的に示した例が先日のベネッセ事件だ。サイバー戦争、国防というキーワードに対して恩返し、ボランティアといった単語を対応させることが、まったく現実を無視しているように思われるのだ。
業界を代表して何らかの提言をしようとする氏の立場に於いて、大変残念な発言であると思う。

ボランティアに関する言及にはInterop Tokyoとの比較が登場する。
Interopはもともと技術者の自発的行動が元になり、技術者同士楽しくワイワイやっているところに、協力者が続々と出てきたことが今日の成功につながっている。他人から押し付けられたものではないし、教育機会の提供から始まっているものではない。
東京五輪に向けて、エンジニアがボランティアで参加するという取り組みについても、同様の成果を期待できるのではないだろうか。」
とする氏の認識は誤りである。

また、IT業界の労働環境についての氏の見識も耳を疑うものだ。

――ソフトウェア産業そのものが“ブラック化”しているという指摘もある。短期間とはいえ、ボランティアとして働かせることは、それを助長することにつながるのではないか。

 

そうは思わない。ブラック化といわれる背景にはいくつかの理由がある。そのひとつは、ブラック業界であるという印象を持たせる動きがあることだ。

 

――エンジニアの労働条件を高めるためには、労働組合という手法もあるのではないか。

 

エンジニアは力を持った人材のことを指す。どんな企業に行っても活躍できる技量を持っているはずだ。そうした業界で労働組合の存在はあわない。

 

一蹴である。
労働者の利益を考えているならここはもう少しきちんと説明するべきではないか。

国から金をもらいやすくするのではなく、経済活動によって自立しなければその業界に未来はない。IT業界は自ら稼ぐ手段を持っているのだから、どうすればそれをもっと発展させられるかを考える立場の人間がきちんと説明しないのはまずい。

経営者と技術者

ここまで、氏の発言について個人的な感想を書き綴ったが、
一介の技術者であり、規模は小さいが経営者でもある私には思うところがある。

  1. IT技術は、買う側がその価値を理解できないことが原因で、うまく金に換えられないことがある
  2. 現在のIT業界の多重下請け構造には、知名度や単純な価格で購入を決める買い手側の不見識、無理解にも一因がある
  3. そんな中、適切なレベルで世間の需給を満たすことは非常に難しい
  4. 現実的な解を考えたとき、少しでも現状をマシにするためには何らかのキャンペーンやイベントを張り、広報活動を通じて啓蒙、話題づくりを行う必要がある

と、氏はこんなふうに考えたのではないか。

炎上商売だと斬って捨てるのは簡単だが、私は今回の件を通じて、IT業界には技術者(労働者)と経営者の間に深い溝があるように感じた。

現実問題として技術だけでは金にはならない。多くの技術者は技術を金に換える手段を持っていないのだ。一方、IT企業の経営者は技術を金に換える仕組みを作ることが仕事だ。経営に関して考えなければならない課題は多く、単純に売り上げイコール技術の値段とはならない。そのあたりについて、経営者は技術者によく説明するべきだ。また、経営者も技術者へのリスペクトを忘れてはならないだろう。技術者と経営者はきちんと相互理解を深めるべきであるというのが私の考えだ。

説明を省略することは相手へのリスペクトを欠いた行為であり、両者の溝を深めるばかりだと思うのだ。

SDNのこれから

先日、ネットワークプログラマビリティ勉強会というところで発表をさせていただきました。そのとき、時間の都合で言えなかったことを補足しようかなと思い、久しぶりにブログ更新しますw

 

 
このスライドではあんまり触れてないんですが、まず最初のポイントはSDN(Openflow)って何でもできる技術なのに、なぜこういうソリューションにしようと思ったのか、ということです。
 

その話をする前に、参加できなかった4月度のssmjpでのスライドでグッと来たのがあったので紹介します。

このスライド(17ページ)にもあるように、結局ネットワークのOPEXって大したことないんです。ガンバレばできるのに、それをワザワザソフトウェアにする必要とかありますか、って話です。エンタープライズなんかで年に一回あるかないかの変更のためのコストを削減する意味はないです。テレビ局でのSDN導入事例はうまくニーズが合致した例ですが、かなりのレアケース。結局ソフトにするってことは動きが完全にわかってなきゃできない(やるべきでない)ので、OPEX削減のための手段としては筋悪だと思うのです。

じゃあ、SDNってどうやって使うべきなの?

参考になるのは他分野の事例です。航空機のフライバイワイヤというものをご存知でしょうか。

各種センサーの情報を元にコンピュータで航空機の翼をきめ細かく制御し、航空機の安定性を高める技術です。1秒間に数十回も翼を制御させることによって本来航空力学的に安定しない形状の航空機でも無理やり安定させて飛ばすことができます。これにより、高い運動性と飛行安定性という本来物理的に両立し得ない要素を両立させることができます。
「ソフトウェアで何かを制御する技術」とは、本来このように、人力では不可能なイノベーションを実現するためのものだと思うのです。

そのように考えた結果、10秒に1回経路を制御し、ネットワークのダウンをTCPの再送シーケンス内に収めることによって、結果的に切れないネットワークを実現することを思いつきました。この辺の使い方はアイデア勝負であり、私自身も試行錯誤中です。いくつかアイデアはあり、実際に作ってもいるのですが、まだまだ色々なことができると思っています。

この手のベストプラクティスがある程度そろって初めて、SDNは普及ステージに入っていくのかなと思います。

先は長い。。

 

サービスを外部から監視するためのTCPPINGのインストール

宛先のポートが空いているかどうかを返してくれます。

rrdtoolなどと組み合わせてサービス監視を行うときに便利です。
トラブルシュートのでも意外と重宝します。

 

Centos6.4にて。


#yum install tcptraceroute

tcppingのダウンロード

#cd /usr/bin
#wget http://www.vdberg.org/~richard/tcpping

#chmod 755 tcpping
#yum install bc


tcpping -x 1 192.168.1.50 2222
Got root?
というエラーメッセージが出るときには

tcptracerouteにセットユーザIDをつけます。

chmod u+s /usr/bin/tcptraceroute

Cactiと組み合わせると色々なサービスの稼働状況を一覧で見られるので、いい感じです。

 

【テストの裏技】集中力を持続させる脳のオーバークロック

夜遅くまで働いて、帰り道ふと気が付くと、試験まで一週間。
時間が無い、でも今からではどうしようもない。そんな絶望的状況を経験したことはありませんか。

何事も、あきらめたらそこで試合終了です。
試験本番、一時的に実力以上の力を出す裏技を編み出しましたので、是非試してみてください。

やり方

この裏技は集中力を高める成分を組み合わせて摂取することで一時的に脳の働きを高めるというものです。

具体的な方法は、試験開始15分前にカフェインと一緒にカーボショッツを飲むだけです。
以下でもう少し詳しく説明しましょう。

カーボショッツとは何か

自転車やトライアスロンなどの有酸素系競技で用いられる補給食です。主成分はマルトデキストリンというあまり耳になじみの無い物質、食感はやわらかい水あめとでも言いましょうか。味は甘ったるく、おいしくありません。一般的にエナジージェルと呼ばれたりします。

ロードレーサー(自転車)を売っているお店に大体置いてあります。一本250円くらいだと思います。ちなみにこのマルトデキストリンと言う物質は、デンプンを分解して吸収しやすくしたモノなので、体に害はありません。

 

shotz ショッツ エナジージェル (カーボショッツ) おためし6味 45g×6個

shotz ショッツ エナジージェル (カーボショッツ) おためし6味 45g×6個

 

どのような効果が得られるのか

私自身の感想ですが、集中力が持続し、ケアレスミスが減ります。応用問題などで、何かに気付くことが解法のポイントだったりするようなケースではひらめきが良くなる気がします。(もちろん知識として全く知らないことは書けません)
いつも後半にかけて集中力が途切れがちだったTOEICのヒアリングでは効果が顕著に現れました。

どういう理屈なのか

人体の中でも脳は糖を大量に消費する臓器であるという話を聞いたことがあるでしょうか。最近の研究では糖以外の物質をエネルギー源にすることも可能だという実験結果もあるようですが、脳にとって最も効率が良い燃料の一つが糖であることは間違いないと思います。
カーボショッツは脳をフル回転させるために必要な、血中のブドウ糖濃度を高いレベルで維持するのに最適なアイテムなのです。そして、カフェインは血圧を上昇させ覚醒作用があるため、頭がスッキリします。この二つの作用が合わさると驚くべき効果が現れます。

 

少し話が変わりますが、コンピュータの世界において、「オーバークロック」というテクニックが使われることがあります。これはCPUと呼ばれる演算装置を改造して高速に計算させるためのテクニックです。

このオーバークロックでは、動作を安定させるためにコア電圧を上げる、いわゆる「活入れ」と呼ばれる手法が用いられることがあります。


今回紹介する裏技はいわば脳のオーバークロックです。この方法を使用した後はかなり脳が疲れるので、体調に合わせて使うことをおススメします。

糖分とカフェインを組み合わせることによって集中力を高める方法は色々なサイトでも紹介されていますが、競技用のエナジージェルと組み合わせる方法はあまり知られていません。

他の種類の糖分ではダメなのか

チョコレートや飴などに含まれるショ糖は血糖値を持続させる用途には向いていません。吸収がよく急激に血糖値を上げるのですが、持続性が悪いのです。人体には血糖値が上がりすぎるとそれを下げようとする力が働きますので、試験中ずっと補給し続けられるのなら良いのですが、通常そうはいきません。

その点、マルトデキストリンは消化酵素の働きで徐々に分解され、消化器官内でブドウ糖を時間の経過と共にどんどん生産しますので、結果的に高い血糖値を長時間維持し続けることが出来るのです。満腹にもなりませんので、眠くなりづらい点もメリットです。
もともとはハードな有酸素系競技で血中のエネルギーが枯渇する"ハンガーノック"と呼ばれる危険な現象を予防するためのものですので、即効性とパンチ力はハンパではありません。

カーボショッツは決して味は良くありませんが何年も競技の最前線で使われ続けているだけのことはあります。同様にマルトデキストリンを含む、ウィダーインゼリー(エネルギー)などと比べても、効果は極めて優れています。

注意点

  • まずこのアイテムは飲み物がないとうまく食べられません。必ず水分と一緒に摂取しましょう。私の場合は飲み物として緑茶を、カフェイン源としてCloretsガムのシャープミント(黒い奴)1~2粒をカーボショッツと組み合わせています。カフェイン源としてガムを利用する方法は摂取する水分量を増やさずにカフェイン量を調節できるのでおススメです。
  • カフェインは利尿作用がありますので試験前には必ずトイレに行っておきましょう。
  • 緊張のピークである試験本番でいきなり使うのは無謀です。必ず事前に試しましょう。体重60kg程度の私の場合、カーボショッツ一本でTOEICの2時間キッチリ効き目が持続しました。
  • 複数回ある試験では必ず毎回補給しましょう。一日に4回試験がある高度情報処理試験で最後に飲み忘れて、非常に後悔した経験があります。

事前に試せばおそらく確実に効果は体感出来ると思います。

最後まであきらめずにチャレンジしてください!

皆様の成功をお祈りします。

 

-------------------------------------

株式会社デベルアップジャパンでは、高度情報処理 ネットワークスペシャリスト試験のためのE-ラーニングを無料で公開しています。
是非ご利用ください。

https://nw.bricks4study.com/top/index.html

DevelUpJapan | -創り出す喜びと共に- 株式会社デベルアップジャパン

ツイッターアカウントはこちら

 

【アイデア】過去の発言との矛盾を検出するサービス

ジャーナリストや政治家の過去の発言をアーカイブして、過去の発言と矛盾していないかを判定して、発言の信頼性を数値化することは出来ないだろうか。
もしくは同種の問題に関する過去の発言を容易に参照できるようにするだけでもよい。

一般的に人の意見というものは時間の経過によって変化する可能性があるが、変化の過程を可視化することで、過去の発言が浅い見識に基づいて発せられたモノかどうかを検証することは可能ではないだろうか。

例えば移民問題などに関して、政治家の過去の発言をみんなが自由に検証できるようになれば、公的な立場にある人間のものの言い方や意見表明に関する姿勢は変わってくるのではないか。

自分が過去に発言した内容を意識した上で、反対の意見を述べるならば、なぜ翻意したのかを説明する事は誠意ある対応ではないかと感じる。

このサービスが実現すれば、発信者は過去自分がどういう発言をしたかをきちんと把握しておく必要が出てくる。もしくは発言後にきちんとフォローすることが重要になるだろう。

金をもらって提灯記事を書くジャーナリストやその場しのぎの嘘を付く政治家は淘汰されやすくなる。

膨大なデータベースが必要で、このサービスを提供する事業者には相当の中立性が要求されると思うが。。