常駐しない、攻撃的な不正ソフト検出・駆除には、ノートン パワーイレイサー が使えます。インストール不要、誤検出上等で、不正っぽいエントリをスキャンします。手持ちのウイルス対策をかいくぐられたときには、これが使えます。

パワーイレーサーのオフライン版とも言えるのが、ノートン ブータブルリカバリツール です。USBなどでブートして使います。Windowsが起動しないレベルの障害でも、復旧を試みるみたいです。使ったことがないので効果の程はわかりません。


最近、何かとご用命下さっている会社さん、最初の設計はしっかりしたものなのですが、それから十数年、時代に合わせたメンテナンスがあまりされていない様で、ネットワークにも明らかなボトルネックがあり、とてももったいない状況なんです。
ご理解もあり、ご決断の早いお客様なので、個別の問題に対しては万全の解決策を提案させて頂き、素早い対応ができております。これは任される側としてはとてもありがたいお客様です。良いシステムができあがるのは気持ちが良いですし、トラブルが起きない事へのコストを理解頂けるのは嬉しいです。「1時間で終わったのにこんなに取るのか?」と言われたら、毎日8時間壊れるように作るしかないですからね…(冗談です!)

欲を言えばもっと改善したいところはあるのですが、弊社の規模では、そのメンテナンスの全てを引き受けるのは難しいですし、多くは、設計さえしてしまえばお客様の既存のIT部署で対応可能だと思われます。
いっそのこと、1ヶ月に1回ずつ、各支社を回って現場の状況や不満を聴き、本社でそのまとめと解決案を提案させて頂くような、コンサルタント契約をして頂けないかなあ、と思ったりしていますが、今お困りでないなら、コンサル料をかけて、無駄なアップグレードをするメリットもないか…。NASへのアクセス速度とか、それほどコストかけずに1桁改善できるんですけどね。ネットワーク設定も、個別に設定するより、DHCPサーバを任せて頂ければ…みたいな所がありますし。

とはいうものの、弊社ではこなせる数が限られております。特に故障対応についてはとてもお困りでしょうから、そちらを優先させて頂いておりますと、他のご依頼が遅延することもあります。なにぶん零細企業ですので、大目に見ていただければ幸いです。


安価なNICモジュール、蟹さんで有名な Realtek RTL8111/6186 ですが、open ではないので別配布になっている realtek ルーツのドライバで、昔とは打って変わって結構安定しています。(Intel NIC 程ではありませんが)

elrepo の kmod-r8168 がメンテナンスもされていてお薦めです。EL5,6 のモジュールも別ディレクトリにあります。

ここで使われているのが、kmod という仕組みで、モジュールに、モジュールがコンパイルされたときのカーネルAPI(kABI)の情報が入っています。新しいカーネルをインストールすると、API互換性チェックが行われ、モジュールが(表面上は)使えるとわかると、 /lib/modules/(新カーネル)/weak-updates/ にシンボリックリンクが作られ、depmod すれば、モジュールがそのまま使い回せます。
(APIに手が加わると、API情報が合わなくなるので、kmod-xxxx の src.rpm から再構築が必要です。)

この仕組みを MODVERSIONS と言うのですが、4.4.9 まで、elrepo の kernel-ml には入っていませんでした。これを有効にしてコンパイルしてみたのですが、さすがメインラインですね。APIの細かな変更が頻繁に入るので、安定版の RHELカーネルや kernel-lt のように、何度も使い回すことはできませんでした。だから disable されてたんですかね。

そんな方には dkms で、起動時に毎回カーネルモジュールを build する方法がお薦めです。

ところで、この kmod-r8168 は、多く使われる Realtek RTL8111/8168 シリーズ用ドライバモジュールとして、なぜか姉妹機種の r8169 がロードされてしまう問題への解決なのです。r8169 は r8168 と基本部分の設計が同じなので、見かけ上動いてしまうのですが、DMAやオフロードなどの細かい違いの部分が問題になったときにエラー対処が異なっているので、一度問題が発生すると途端に動かなくなるんです。ちょっとの差なら、組込ドライバが r8168 もきちんとハンドルしてくれれば良いのですが…。

r8168 を入れても、jumbo frame がうまく動かないという話をよく見かけます。もともと RTL の DMA転送やオフロード周りは怪しいので、jumbo frame はお薦めできません(効果も限定的ですし)が、型番によって、チップが対応している最大サイズが異なります。ドライバ側ではこれを超える値も設定手来てしまう(?)ので、ご注意下さい。型番は、lspci, dmidecode, dmesg といったコマンドではわからないので、メーカの Specification を読んでください。

Jumbo Frame 最大サイズ
RTL8168B/8111B – 4kB
RTL8168C/8111C – 6kB
RTL8168CP/8111CP – 6kB
RTL8168D/8111D – 9kB
RTL8168DP/8111DP – 9kB
RTL8168E/8111E – 9kB
RTL8168EP/8111EP – 9kB
RTL8168E-VL/8111E-VL – 9kB
RTL8168F/8111F – 9kB
RTL8168G/8111G – 9kB
RTL8168H/8111H – 9kB

9kB が一般的な 9000バイトなのか、9kiB(9126バイト)なのかイマイチ不明です。ソースコードをぱっと見た限りは、9kB(9216バイト)で定義されているように見えますが、ドライババッファサイズとハードウエアの実装が一致するとは限りません。また、これが MTU として、ヘッダの40を引いた値を設定しないといけないのかもしれません。安定しない人は試してみて下さい。上限9216バイトなら、ヘッダを含めない値だとしても、MTU 9000 で安定して欲しいところですが。。。

Jumbo Frame 安定しないけど jumbo frame したい人のMTUサイズ
RTL8168B/8111B – 3960
RTL8168C/8111C – 5960
RTL8168D/8111D以降 – 8960


ニュース(2016)

  •  3/26  2016年シーズンの計算を始めました。
  •  5/  6  ソフトバンク、CS進出確実。残り114試合を52勝ぐらいで。
  •  6/  3  ソフトバンク、優勝確実。残り91試合を47勝ぐらいで。
  •  6/18  ロッテ、CS進出確実。残り79試合を29勝ぐらいで。
  •  6/24  広島、CS進出確実。残り71試合を29勝ぐらいで。
  •  6/28  日本ハム、CS進出確実。残り71試合を27勝ぐらいで。
  •  7/10  広島、優勝確実。残り58試合を24勝ぐらいで。
  •  7/30  ロッテ、3位確実。
  •  8/  4  巨人、CS進出確実。残り46試合を17勝ぐらいで。
  •  8/18  ソフトバンク、優勝確実取消。春の快進撃はたまたまでした。激しくデジャヴ。
  •  8/24  巨人、2位確実。
  •  8/30  広島、CS進出確定!
  •  9/  7  オリックス、6位確実。
  •  9/  9  日本ハム、CS進出確定!
  •  9/  9  ソフトバンク、CS進出確定!
  •  9/10  広島、セ・リーグ優勝確定!! おめでとうございます!
  •  9/13  DeNA、CS進出確実。残り10試合を4勝6敗ぐらいで。
  •  9/15  DeNA、3位確実。
  •  9/19  巨人、CS進出確定!
  •  9/19  DeNA、CS進出確定!
  •  9/24  ロッテ、3位確定 & CS進出確定!
  •  9/24  中日、6位確実。
  •  9/25  中日、6位確定。
  •  9/26  日本ハム、優勝確実。残り3試合を1勝2敗ぐらいで。
  •  9/26  ソフトバンク、2位確実。
  •  9/27  西武、4位確実。
  •  9/27  楽天、5位確実。
  •  9/28  日本ハム、パ・リーグ優勝確定!! おめでとうございます!
  •  9/28  ソフトバンク、2位確定。
  •  9/29  オリックス、6位確定。
  • 10/ 1  阪神、4位確定。
  • 10/ 1  ヤクルト、5位確定。
  • 10/ 4  西武、4位確定。
  • 10/ 4  楽天、5位確定。
  • レギュラーシーズンの全日程が終了しました。

技術評論社さんより、書籍「改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで」を頂きましたので、ここでレビューを書きます。

知ってるようで知らない JavaScript こと ECMAScript。AngularJS などがでてきてから、もうブラウザのおもちゃではなくなっていましたが、それでも本格的な開発には、TypeScript などの、もう少し厳密な上位言語を使うことが多かったと思います。しかし、それも今年でおしまいになりそうです。この本で紹介されている、ECMAScript2015(JavaScript6)が規格として定まり、既に最新のブラウザの多くが対応しているからです。

この本では、ECMAScript2015 で新たに加わった部分を強調しつつも、互換性を持ってすぐ使えるサンプルコードで紹介されています。おそらく、全てのブラウザが完全対応した暁には、このあたりも完全に最新の ECMAScript2015 で書き直された再改訂版が出版されるかも知れません。

「本格入門」と、本格的なのか入門なのか、どっち!? と思ってしまいますが、JavaScript を、HTML の飾りではなく、アプリケーション言語として使う場合の入門、という位置づけだと思います。

例えば、「http:」を「https:」に置換したいとき、

function replaceURLsecure ( str ) {
  str.replace(/http:/,'https:');
  return str;
}

なんて野暮ったい関数を作ったりしていませんか?

JavaScript では String もオブジェクトなので、String クラスを拡張して、

String.replaceURLsecure = function() {
this.replace(/http:/,’https:’);
}

と書いてやるのが、JavaScript的なオブジェクト指向なんだと思います。

もし、この関数を広く使いたいなら、String.prototype に加えてやりましょう。

この本は、各所の説明がかなり低級な所まで掘り下げて説明されています。特に、JavaScript は、C言語や C++ の出来る人にとっては、JavaScript は、わかった気にさせておいて、実はもう一段罠がある言語とも言えると思います。C言語を理解している人にとっては、この本の掘り下げた説明は、スムーズに頭に入ってくると思います。そして、この Number オブジェクトこそ、JavaScript は全てがオブジェクトなんだという基本構造への入口だと思います。

この本では、JavaScript できちんとクラスを書く、きちんとオブジェクト指向のプログラムが書けるように、「本格入門」の名に恥じない基本がしっかり書かれています。プログラミング入門ではないので、何か言語を知っている人、特に、C++ や Java のクラスを知っている人向けに書かれているように思えました。JavaScript も Java のように書けたら、と思っている人には、この本で、JavaScript でもちゃんと書けますよ! と言えると思います。オブジェクト指向の実装は C++ のクラスの概念とは大きく違いますが、その違いをうまく説明してくれています。オライリーの分厚い本(サイ本)にももちろん同じ事がきちんと書いてありますが、私にはこちらの説明が非常にわかりやすかったです。この本を読んだ上で、オライリーの本を脇に置いて、AngularJS などに挑戦していけば、最短距離で本格的な JavaScript 開発が始められそうです。

ECMAScript2015 は最新の言語ですが、それでも JavaScript そのものは古い言語なので、色んな互換性を引きずっています。過去、様々なブラウザが群雄割拠していたときの名残か、同じような事を複数の書き方で表現でき、その振る舞いが僅かに異なるケースが結構あります。この本の中では、こうした書き方のバリエーションと、その際についても逐次書かれていたり、今ではお薦めできない書き方も教えてくれるので、JavaScript をきちんと書きたい人、いや、きちんと書いて欲しい人(私だ!)に読ませるべき一冊だと思います。特に、C言語はポインタのポインタまで扱えるのに、JavaScript も長大な main 関数でしか書けない人は、この本を読めば、今日からクラスライブラリを書けるようになるはず。

この本の中でメインに使われているブラウザは、新しめの Chrome(バージョン51以降)で、読んでいるうちに開発者ツールの使い方も自然に分かる様になります。コードエディタも Visual Studio Code を用いるなど、これを機に最新の開発環境を整えたい方にもお薦めの内容になっています。最新のテスト環境やドキュメント文法など、大規模なチーム開発や github での共同開発では避けて通れないモダンな開発スタイルも紹介されているので、vi で html ファイルに <script> を直書きして、若いエンジニアから顰蹙を買っている方(私だ!)には本当にお薦めです。

初_改訂新版JavaScript本格入門_オビ
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで


3タテされることなく優勝したカープを祝して、3つ同時に壊れなければデータが失われないストレージ、トリプルミラーリングRAID1 か RAID6 ストレージサーバの構築を1名(社)様に限り半額で行います。(機材費用を除く) RAID6 は 7ストレージまで、6ストレージRAID10(2冗長×2)も承ります。

例えば 10TB×7台のRAID6の場合、10TB×(7-2) = 50TB ストレージを手元に置けます。社内のほとんどのデータを保存でき、さすがにクラウドでは速度的にしんどいサイズだと思います。市販品ならどうにもんらない本体の故障時にも、HDDさえ無事ならば新しい筐体でデータを再構築できます。

9月15日までにご相談下さい!


久々のLINEスタンプの話題です。

夏休みの自由研究としてLINEスタンプを一からデザインしたオリジナルキャラスタンプ「ねこぱんず」がリリースされました。
https://store.line.me/stickershop/product/1315812/ja
弊社もすこしだけアドバイスさせて頂きましたが、他にもかわいいキャラ原案があるのに、このキャラを選んだのは、イマドキの女子小学生の感性でしょうか!?

弊社の商品ではありませんが、もしお使い頂いて気に入ったスタンプなどのご感想があれば、弊社(info@eikai.co.jp)宛にお送り下さい。当人にお伝えします。励みになると思います。これは基本セットで、バリエーションを増やしていくかもしれません!

さすがにリリースは保護者の協力が必要ですが、小学生でもこんなのが作れちゃう時代なんですね。次世代のクリエイターを応援したいです!


このごろ、夜間にフレッツの混み具合がひどくなっています。大容量転送をしなければ支障が出るレベルではありませんが、遅延もひどく、ntp の delay が通常の20ms弱から60ms超へとひどく遅延しています。

夜間になるとひどく遅延が大きくなり、時刻合わせに影響が出る。

夜間になるとひどく遅延が大きくなり、時刻合わせにミリ秒レベルの影響が出る。

このグラフは時刻合わせ(ntp)のモニターなのですが、時刻サーバまでの通信時間(緑)が毎晩大きくなり、時間のジッタ(不確定さ)(橙)も15~20msまで悪化しています。こんなに時刻が揺らいでしまっては、この時間帯は時刻サーバを無視したほうがマシです。

そこで、ネットワーク経由以外の時刻合わせを使う事にしました。GPS信号を受信し、シリアルポートのキャリア検出か、パラレルポートのACKに標準時パルスを入力してやれば、ネットワークの混雑でも悪化しない、正確な stratum 0 の ntpd サーバを作る事ができます。

と言うわけで工作。

GPSモジュールをUSBとパラレルポートに接続する回路の製作

GPSモジュールをUSBとパラレルポートに接続する回路の製作

黒いボックスがオールインワンのGPSモジュールです。こいつに電源を繋いで、データ入出力をUSBでサーバに取りこみます。ユニバーサル基板は高校生の時のストックを切って使いました。

GPS の制御・受信情報は、シリアル-USB 変換をして USB ポートから /dev/ttyUSB0 (Windows だと COM3)として入力します。同時に、USBから 5V-DC の電源をとります。電源電圧が、USBは5V、GPSモジュールは3.3Vと異なるので、レギュレータで変圧します。消費電力が小さいのでヒートシンクはいらないでしょう。定石通り、手持ちのキャパシタ(電解+セラミック)を適当にいれます。

パラレルポートへのパルス信号は、アメリカ標準時(GPSなので日本標準時ではないが時差さえ考慮すれば同じ。でも、何かちょっと悔しい)を正確に入れるため、もっと強い割込のかかる別系統で入れなければなりません。今回はボード上のパラレルポートの ACK# ピンを使いました(IRQ4)。このケーブルは脱着式にしたかったので、ノイズに強く高周波を通す Ethernet cat.5e ケーブルを転用。PoE の関係で、これ結構何でも通しちゃう優れもので最近のお気に入りです。

パルス出力は 2.8V と中途半端ですが、パラレルポートの TTL には High に判別されるのでTTL変換は使いません。タイミングが命なのにバッファを入れたくないかなと(でももっとタイミングがシビアなメモリはバッファが入ってますね)。LED直挿しなのはお許しを。

これが正確に1秒を刻みます。パラレルポートの ACK# はカーネルに強い割込をかけられるので、このパルスのタイミングを高精度(およそ数十ナノ秒)に取りこむことができます。USBでは無理な、レガシーデバイスが活躍する場面です。

あとは、この回路での遅延などを計測・調整すれば、最上位 stratum 0 の ntpd サーバのできあがりです。

この標準時を使い始めたあと、先ほどのネットワーク経由の時刻合わせを見てみると…

夜間に遅延がひどいntpd

遅延(緑)が大きくなるときは、上りより下りの遅延の方が悪化がひどく、ジッタ(橙)だけでなくオフセット(青)も大きく(10~20ミリ秒)ずれていることがわかりました。これはかなりひどいですね。簡易な GPS-NTPD でも、stratum 0 で 100ns、ネット越しの stratum 1 で、10ms の精度が安定して確保できます。

サーバに手を入れたくない場合は、Raspberry Pi を使って、単独 ntpd サーバを作る事もできます。拠点間で時刻を正確に合わせたい場合や、マイナンバー関連で局所ネットワークがインターネットから切り離しているパソコンの時刻合わせなどに使えると思います。時刻の合わない端末がある方はご相談下さい。


話題のポケモンGOをやっていました。ポケモンは流行っていたときには研究の方が面白くて全くやっていなかったのですが、結構なダイエットになるとのことで、それを信じて始めてみました。
オフィシャルの遊び方を参考にしました。

もちろん、ピカチュー ピカチュウ(ご指摘ありがとうございます)のことは知りませんでした。

 

初期設定を終わらせると、マップが表示されました。チュートリアルによると、こんな感じでポケストップなどのモニュメントが画面に出てくるみたいですね。マップにはポケストップなどが表示される

 

 

なるほど、なるほど。

さて、うちの近所はどうかな…?

なにもない

 

なんにもねぇ。

 

ぐるっと1時間ほど歩いてみたけど、見事に何も無い。

それでも、公道であれば野良ポケモンは出てくるみたいなので、それで我慢しましょう。

ただ、モンスターを捕まえるボールなどもポケストップで補給するらしいのですが、存在が確認できた最寄りのポケストップが8km先でした。うん、ダイエットにはなるかな。

 

それで、公道の野良ポケモンを狩ってました。

 

アプリを開きながら仕事してたら、部屋の Wi-Fi 環境下で道路にポケモンが出現!

スマホを持って家を出て、公道まで歩いて行くと、Wi-Fi が届かなくなって 4G 回線に切り替わりました。
ここでロードがおこると…ポケモン、居なくなります…orz

 

そこで、AP を家のギリギリにおいて、Wi-Fi のままギリギリプレイできるようにすると、モンスターゲット!! やっと1匹捕まえたー!!

…と、このタイミングで 4G に切り替わってしまいました。

そしたら…

動かないボール

 

しーん。

この画面でフリーズして、3時間待っても動きませんでした。(このスクリーンショットは部屋に戻った後なのでWiFiに繋がってます)

アプリを強制終了して、ゲットしたポケモンもなくなりました。キャッチアンドリリース!

 

そんな中、マップの中に、葉っぱが舞っている所を見つけました。

木の葉が舞ってます

これも何かありそうですね。裏山のほうなので行ってみましたが。。。

この先ですね…

木の葉が舞うところ

この10mぐらい先です。確かに木の葉が舞ってそうですが、軽装できてしまったのでちょっと無理です。

 

ポケモンボールの補充も気軽にはできないので失敗は許されません。旧日本軍だと思えばなんてことはありません。いつかこの茂みの向こうのインパールまで行って見せましょう。

どうも孵化器に卵をセットしたら、歩くダイエットになるみたいなのですが、その卵もポケストップで入手しないといけないそうで…

田舎に厳しいポケモンレポートでした。

ま、これ常に起動してたらバッテリー持たないので、どのみち続けるのは難しいンですけどね。きっとこのゲームは酸っぱいに違いない。皆さん楽しそうで良いですね。しくしく。

 

ー 追記 ー

ご存じの方も多いと思いますが、ポケストップは、Ingress というゲームのポータル(の一部)が使われています。富士山やヤクーツクにもポータルはあります。今、ポケストップがない人は、Ingress ブームの時に、ポータル申請をしていなかったツケが回ってきているのでした。(2016年7月現在、ポータル申請は休止されています)

もっとも、私も近所の神社を申請したのですが、ポータルにはなりませんでした。当時はそれほど Ingress をやってなかったので深追いはしなかったのですが、今となって残念です。


2016年7月24日(日)の午前に、中国電力のインフラ更新のため、弊社地域が停電となります。
予定ではバックアップ電源(バッテリ+自家発電機)にてサービスが止まることはありませんが、想定外の時にはご迷惑をおかけすることがあるかも知れませんので、予めお知らせいたします。
余談ですが、弊社太陽光発電所ともその時間切り離されますので、非常用電源を太陽光発電で賄うことができません。残念!