月別アーカイブ 1月 2018

著者:ym

SEPのアイコンに「複数の問題があります(2)」が修正された

2018年1月3日以降の Windows 更新を適用すると Symantec Endpoint Protection のトレイアイコンに「複数の問題があります(2)」と出ていた件、Microsoft から修正版が出た様です。

この問題の原因となった根本的な問題に対処するために、マイクロソフト社は問題を解決する Windows 用の更新プログラムをリリースしました。次のいずれかの更新プログラムを適用することで、問題を解決できます。

  • Windows Server 2016 – KB4057142
  • Windows Server 2012 R2 – KB4057401
  • Windows Server 2012 – KB4057402
  • Windows 10 1709 (64 ビット) – KB4073290
  • Windows 10 1709 (32 ビット) – KB4073291
  • Windows 10 1703 – KB4057144  
  • Windows 10 1607 – KB4057142
  • Windows 8.1 – KB4057401

注: この技術文書では、問題を解決する SEP 12.1 および 14.0 用の修正ビルドについて、これまで説明していました。マイクロソフトが修正プログラムをリリースしたため、シマンテックは、これらの修正ビルドを撤回しました。これらの修正ビルドを既に入手して適用されたお客様は、追加の処置を行っていただく必要はありません。シマンテックは、これらの修正ビルドを引き続きサポートします

Windows 10 64 ビット版で入れましたが、サイズは600MB程の更新。いま手元のPCで実行中です。

  • この記事いいね! (0)
takahashi 著者:takahashi

UbuntuでTensorFlowを動かしてみる

以前からディープランニング型AIを実現するためのライブラリとして、TensorFlowというものがよく使われています。
ご存知の方も多いかと思います。

自分は今まであまり触れてこなかったのですが、知人がTensorFlowを使って簡易的な画像認識アプリを構築しているのをみて、自分も触れてみようと思い立ちました。

手元に自由に触れるUbuntuサーバーがあったので、こちらにTensorFlowが動作する環境を構築してみます。

まずはpipをインストールします。

sudo apt update
sudo apt install python-pip python-dev

インストール完了したらつぎにpipでTensorFlow(CPU版)を入手、インストールします。

#CPU版TensorFlowインストール
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp27-none-linux_x86_64.whl

TensorFlowはCPU版とGPU版があり、GPU版を利用するとGPUを使って計算を行ってくれます。
ただし、GPU版はnVidia製GPUのみが対応している”CUDA”が必要になります。
GPU版を入手する場合は下記のコマンドを使用します。

#GPU版TensorFlowインストール
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.7.1-cp27-none-linux_x86_64.whl

nVidia製以外のGPUを搭載していたり、ドライバが適切に設定されていない環境でGPU版を利用すると、エラーが発生して実行できません。

python
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 23, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow import contrib
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/__init__.py", line 23, in <module>
    from tensorflow.contrib import layers
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/layers/__init__.py", line 68, in <module>
    from tensorflow.contrib.layers.python.layers import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/layers/python/layers/__init__.py", line 22, in <module>
    from tensorflow.contrib.layers.python.layers.initializers import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/layers/python/layers/initializers.py", line 24, in <module>
    from tensorflow.python.ops import random_ops
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/random_ops.py", line 23, in <module>
    from tensorflow.python.framework import ops
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 39, in <module>
    from tensorflow.python.framework import versions
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/versions.py", line 22, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: libcudart.so.7.5: cannot open shared object file: No such file or directory

インストールが完了したら、Pythonインタープリタに入ります。

python

すると、pythonの実行環境が起動し、
“>>>”
プロンプトが表示されるので、つづけて下記のように順に入力します。

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a+b)

実行結果はこんな感じです。


>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
'Hello, TensorFlow!'
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a+b)
42

ここまで動作すれば、TensorFlowは正常に動作しています。

Linux環境だと、大抵は初めからPythonが入っているので、セットアップ手順が少なくて済むのでありがたいのですが、Python自体を使用しているディストリビューションやアプリもあるようで、不用意にPythonのバージョンをアップグレードしてしまうと、OSやアプリが動作しなくなる危険もあるようです。

その場合はPyenvを利用してアプリごとにPythonのバージョンを切り替えることで対応できるようです。
pyenv + anaconda + python3 – Qiita

この辺りもまた試してみたいと思います。

参考サイト:
UbuntuにTensorFlowをインストール – Qiita
Ubuntu 16.04+CUDA 8.0+Tensorflow 環境で起きるlibcudartが見つからない問題を解決する – Qiita

  • この記事いいね! (0)
村上 著者:村上

【JavaScript】配列←→JSON文字列に変換する方法

今回はJSONの取扱いについて。
JSONから配列へ、もしくはその逆をやることがあるので、まとめてみます。

 

■ JSON → 配列

JSON文字列を配列にするときには、JSON.parse() を使います。
使用例は下記のとおりです。

var json_text = '{ "a" : 100, "b" : 200, "c" : 300 }';
var arr = JSON.parse(json_text);

 

■ 配列 → JSON

先程とは逆に、配列をJSON文字列に変換したいときは JSON.stringify() を使います。

var arr = ["a","b","c"];
var json_text = JSON.stringify(json_text);

 

パッと見ただけでは、何かが変わったようには見えないのですが、確かに配列←→JSON文字列に変換できていました。
JavaScriptでは、Ajaxの処理をするときに、渡すデータが JSON だったり、もしくは結果が JSON で返ってきたりするというシチュエーションが多いかな?
意外と使用頻度は高そうですが、特にスペルミスで、再検索したりするので、この機会に備忘録を兼ねてまとめてみました。
私は特に stringify のつづりを間違えます…。iが抜けるとか。

もしJSONを扱うときがあったら、ご活用いただければと思います。

  • この記事いいね! (0)
著者:aoki

仮想通貨は知っておいて損はないはず

世間で「CoinCheck」がNEMを流出した件でかなり話題となっている仮想通貨ですが正直ここまでの規模になってるとは思っていませんでした。
2017年8月くらいにビットコインに関する資料を作った時は1ビットコイン40万くらいだったのに今では120万円ですからね。
暴落してるとは言え私が調べた時から比べたら爆上げです。

あまり興味は無かったですがここまでの市場になってるのでは何かしら触っておかないと時代に遅れてしまう・・・という事でテレビCMもやっている bitflyer を始めました。
CoinCheckが取り組んでなかったマルチシグ(マルチシグネチャー)も2年前からやっていたそうでそこそこ信頼できるのかな?


bitflyer アプリではすぐ今の状況が確認できますね。
NEM流出の影響か全ての仮想通貨が下がってますね・・・


仮想通貨を購入するにはかなりの情報を入力する必要がありました。
今日始めたのでまだ実際は購入出来ていません。


リアルタイムで数字が変わる様子も確認できます。
あくまで勉強の為に始めたのでなくなっても大丈夫な金額で試してみようと思います。

  • この記事いいね! (1)
著者:ym

自作DC作る強者

10数年前、自宅の近所の東名高速道路沿いに ●feed 社のコンテナが設置され、数年後に撤去された。あっという間の出来事でした。なので、昔から設置も撤去も簡単に可能なDCがコンテナだと思っていました。

業者にとっては簡単なのかもしれませんが、個人で自作でDC作るとは。素晴らしい。費用はCMとかで家を580万円で売ってたりするので、そう考えるとやはりコンテナDCは高いきもするが、通常のDCと比べたらたしかに。

データセンターは利用から所有する時代へ―520万円コンテナ個人データセンター誕生秘話 – Think IT(シンクイット)
クラウド時代に箱を作るとは強者だ。

  • この記事いいね! (0)
村上 著者:村上

【JavaScript】テキストボックスに当てられたフォーカスを外す方法

今回はタイトル通り、Webサイトなどでテキストボックスに当てられたフォーカスを解除する方法です。
パソコンでは特に問題ないのですが、スマートフォン、特にAndroidでフォーカスが外れなかったために、ソフトフェアキーボードが消えず、ちょっと面倒な目にあったんですよね…。

で、肝心の方法ですが、フォーカスを外したいタイミングで下の3行を実行するだけ。

// 現在アクティブな要素を取得する
var active_element = document.activeElement;
// フォーカスを外す
if(active_element){
  active_element.blur();
}

いたってシンプル&簡単です!

 

ただ、この処理は要素からフォーカスを外すだけなので、逆に指定した要素にフォーカスを当てたい場合は下記のように記述します。

var element = document.getElementById("フォーカスを当てたい要素のID"); 
element.focus(); // カーソルを合わせる

 

ということで、要素からフォーカスを外す方法でした。
そこまで使用頻度は高くなさそうですが、覚えておけば便利かも?
もし、使う場面があれば、是非ご活用ください。

  • この記事いいね! (0)
takahashi 著者:takahashi

Windowsで手軽にマシンの死活管理をするなら”ExPing”がわかりやすい。

最近、電源が切れると困るが、外部サービスを利用するほどじゃない・インターネットに公開していない、というマシンを監視したい。というときにうってつけのツールを見つけました。

ExPingというアプリです。

対象のホストはテキストで一括指定できます。
指定したうえで実行すると、一括して各ホストにPingを送ってくれます。

もしPingに失敗した場合、または成功した場合に音を出したり、ポップアップを出したりも設定できます。

ちょっとニッチなアプリではありますが、ネットワーク管理をしている方には助けになりそうですね!

  • この記事いいね! (0)
村上 著者:村上

【CSS】floatで指定した要素の回り込みを解除する方法

要素を右側、もしくは左側に寄せるとき良く使われる「float」ですが、今回はこれの解除の方法について。
CSSを勉強したての頃は、回り込みをしたい要素の下の要素に影響して表示が崩れ、悩まされたことがありました…。
今回参考にしたサイトはこちら。

基礎39. 回り込みの解除(floatの解除)
http://web-manabu.com/html-css39/

方法だけでなく、デメリットも記載されており、とても参考になります。

 

まずは、回り込みの記述についてはこちら。

/* 左側への回り込み */
div {
    float: left;
}

この記述があると、指定された要素(今回はdiv)が左寄せになります。
なお、あとに続く要素はその反対側に回り込みます。

で、これを解除する方法は、まず単純に「clear:both」を指定する方法。

■ clear:both;

<div class="left">
    左寄せ
</div>
<div class="clear">
    左寄せ 解除
</div>

.left{
    float: left;
}
.clear{
    clear: both;
}

こんな感じで、左寄せ、もしくは右寄せした要素の後ろで指定します。
これは一番わかりやすいかな?
ただし、要素を追加する必要があるため、少し使いにくい場面がありそうです。

そのため、私が今回使ったのがこちら。

■ overflow:hidden;

子要素に float が指定してある場合、親要素にこの「overflow:hidden;」を指定する方法です。
これを指定することで、親要素が高さを持つので、回り込みを回避できるとのことですが…原理はいまいちわかっていません。
ただ、clear: both; と違って、要素を追加せずに済むため、これが一番使いやすいのではないかと思いますね。

あと、使ってみたいのがこちら。

■ clearfix(クリアフィックス)

親要素にこのclearfixを指定すると、最後に子要素をCSSで擬似的に作り出し、それにclear: both;を指定してfloatを解除しているのだとか。

<div class="parent">
    <div class="child">要素1</div>
    <div class="child">要素2</div>
    <div class="child">要素3</div>
</div>
.parent:after {
    clear:both
}
.child {
    float: left;
}

 

以上、回り込みの解除方法でした。
個人的なおすすめは overflow:hidden; ですね。

  • この記事いいね! (0)
takahashi 著者:takahashi

Windows用高性能SSHクライアント”RLogin”

サーバ管理などでリモートからSSH接続を利用している皆さん。SSHクライアントは何を使っていますか?
WindowsOSを利用されている方は分かるかと思いますが、MachintoshやLinuxではターミナル画面から手軽にSSHを利用できるものが多いのに対し、Windowsには標準ではSSHクライアントが入っておらず、そのままではWindowsOSからSSH接続することはできません。

そこで代わりに、”SSHクライアント”と呼ばれる専用のソフトが使われることが多いです。

Windowsユーザーでおそらく最も一般的に使われているターミナルは、”Tera Term“というクライアントソフトだと思います。
Tera Termはオープンソースで開発されているため無料で利用できる上、機能もわかりやすくシンプルなので、最近初めてSSHを触り始めた!という方にはおすすめです。また、標準でCygwinに接続する機能も持っています。

一方で、仕事などで複数台のサーバーを管理していたり、踏み台サーバー経由で目的のサーバーにSSH接続したい場合などは、Tera Termでは少し不便に感じる機会が出てきます。
そんな方にお勧めしたいのが”RLogin“というフリーのSSHクライアントです。


http://nanno.dip.jp より引用

RLoginは複数台のサーバーを同時に接続することを前提とした設計になっていて、TeraTerm以上に多くの機能を備えています。

個人的には、
Terminalを色付きにできたり、踏み台サーバー経由の接続も設定することができるのがとてもありがたいですね。

ちょっと高機能なクライアントが欲しいな、と感じている方はぜひ使ってみてはいかがでしょうか?

  • この記事いいね! (0)
takahashi 著者:takahashi

セットアップ中のPCが…

ブルースクリーンになってしまいました…

しばらく使っていないWindows7のPCを、社内のテストサーバーのホストマシンにするためにいろいろセットアップしていたのですが、一晩おいておいたらブルースクリーンになっていました…

エラーコードは

DRIVER_IRQL_NOT_LESS_OR_EQUAL

と出ていて、調べたところ、ドライバの不具合が原因で起こるらしいとのこと。
ただ、いろいろ確認した限りではすべて最新版になっているようで、更新できるものは殆どありませんでした。

とりあえず、しばらく様子見です…(汗

  • この記事いいね! (0)