2017年1月31日火曜日

Angular Full-Stack Generator 挫折

The Angular Full-Stack Generator に挑戦しましたが、挫折しました。

そもそもの経緯。

元々、最初の頃のWebサービスでは、サーバー側に、Javaサーブレット。クライアント側に、Javaアプレットというシステムを作っていたことがあります。
両者間では、当時、xmlはあっても、JSONがなかったこともあり、独自の通信規格を作って繋いでいました。

それから、今も主流の、PHP+JavaScriptに移りました。

最近では、サーバー側もJavaScriptで作るのが流行のようです。

そこで、遅まきながら、挑戦しようと思いました。

データベースに、MongoDB。
サーバーに、Node.js。
クライアント側には、何かフレームワーク。

この構成で、簡単に作ることができないかと調べたところ、Angular Full-Stack Generatorが良いらしいと知り、試してみました。

思えば、元々、Javaで行っていたことを、JavaScriptで行うような構成です。
なんとかなるさと思ったのですが。

まず、Node.jsの勉強。npmでの管理方法。
他に、MongoDB、Express、Angular(Augular2)を、一通り、調べた後、Angular Full-Stack Generatorを試してみました。

確かに、簡単に、かっこいいサービスのひな形は動きました。
しかし、構築中に、エラーが発生しているのが気になりました。

どうすれば、このエラーを回避できるの?
機能を修正、拡張するには、どう手を加えれば良いの?
デバッグは、どうするの?

Node.jsからの一連のプログラムは使ったことがない初心者には無理でした。
開発元のHPを見ても、動かすところまでの情報しか分かりません。

結局、こうしたパッケージは、個別のプログラムやツールを分かっている人が、楽に開発するための物だと理解しました。
初心者は、個別に理解して、積み上げていく方が早そうです。

急がば回れ


次は、Node.jsについて書く予定。

Ubuntu 16.04に、OKIのプリンタを利用する

Ubuntu 16.04に、OKIのプリンタC310dnを繋ぎました。

設定から、プリンタを選び、ダイアログを表示しました。
<追加>をクリック。
ネットワークプリンタを選択し、C310dnを選び、次に進みました。
ここで、OKIから、C310dnを選択して、設定を終えました。

簡単ですね。

ただし、デフォルトでは、モノクロ印刷になるらしく、カラーの設定に変更しました。
また、テストプリントでは、左側が切れているように見えましたが、テスト印刷の見本を知らないため、そうしたデザインなのか、ずれているのか分かりません。

トナーの残量なども分かるようで、linuxでのプリンタの利用も簡単になったものだと感慨深いです。

2017年1月22日日曜日

ESET Internet Security を導入

これまで、ESET Internet Security を、VMware内の仮想マシンにインストールしていましたが、ホストマシンにも導入しました

PC Watchや日経トレンディを見ているときに、詐欺サイトに飛ばされそうになったからです。
幸いFirefoxが事前に警告を出して、詐欺サイトは表示されませんでしたが、信用できそうなサイトを見ていながら、詐欺サイトに飛ばされるのは不安でした。

ホストマシンは、Windows10であり、デフォルトでウィルス対策ソフトは入っていますが、念のため、こちらを導入しました。

なぜか、インストール時のダウンロードに失敗したのが、余計に不安をかき立てました。
インストール後、最新のバージョンではなく、ひとつ前のバージョン(9)がインストールされました。
ますます、不安になりました。
とりあえず、ホームページから、最新のソフトをダウンロードし、バージョン9をアンインストールしてから、最新のバージョン10をインストールしました。
これで、無事に、インストールは完了しました。

設定では、仮想マシンのイメージのあるフォルダを、監視対象から除外しました。
他にも、設定が必要かもしれませんが、気づいたときに、設定していくつもりです。

最初に、このツールの売りでもある、ルーターの検査(ホームネットワーク保護)を行ってみました。
脆弱性が見つかりましたが、どんな脆弱性なのか、どう対応したら良いのか分からず、困惑しているところです。

とりあえず、ルーターのファームウェアを最新に更新して、再度、チェックしてみましたが、変わりありませんでした。
ルーターは、NECのAterm WG1200HPを使っていますが、チェックを行うと、その後、ルーターの管理ができなくなりました。
「電源を入れ直してください」と、表示されたため、指示に従い、ルーターを再起動しました。
何度か、行ってみて、気づきましたが、再起動しなくても、しばらく待つと、管理画面に入ることができるようです。

ルーター側で、このソフトのチェックは悪質なアクセスと判断し、一時的に、制限を掛けているのかもしれません。

セキュリティと利便性は、相反するため、しばらくは、ESETと格闘することになりそうです。

2017年1月16日月曜日

Ubuntu 16.04 ソフトウェアの更新で壊れる

前回の続き

Ubuntu 16.04 ソフトウェアの更新で壊れる

VMware上に、Ubuntu 16.04を構築しています。

ソフトウェアの更新を実行すると、確認に失敗し、ファイルシステムが、読み込みモードになるトラブルが発生しました。
再起動すると、BusyBox画面が表示され、fsckを実行するように勧められました。
しかし、fsckを実行しても、その後、ソフトウェアの更新は、正常に動かず、途中で停止しました。ファイルシステムは、読み込みモードになりました。

スナップショットを取っていたので、元に戻し、
sudo apt update
sudo apt upgrade
で、更新を行うと正常に終了しました。
しかし、何もせず、しばらくすると、ファイルシステムが、読み込みモードになりました。

ファイルシステムに深刻な問題が発生していると考え、シングルユーザーモードで、fsckを実行しましたが、改善しませんでした。

リカバリーモードで、fsckを実行することで、解決したようにみえます。
まず、shiftを押しながら起動して、ブートメニューから、リカバリーモード(recovery mode)を起動しました。
fsckを選び、処理が止まったら、Enterで、メニューに復帰しました。
次に、rootを選択して、OSを起動し、シャットダウンしました。
再起動すると、fsckが実行されたようです。
その後は、今のところ、正常に動いているようにみえます。

参考までに、
sudo touch /forcefsck
コマンドで、再起動時に、fsckが実行されるようですが、これでは改善しませんでした。

Ubuntu 16.04 ソフトウェアの更新で壊れる

VMware上に、Ubuntu 16.04を構築しています。

ソフトウェアの更新を実行すると、インストールのグラフ表示がされず、終了します。
仕方なく、放置すると、次の起動時に、BusyBox画面が表示され、正常に起動しません。

幸い、11日に、仮想マシン(Ubuntu)をバックアップしていたため、元に戻して解決しました。

再び、ソフトウェアの更新を実行すると、同じ状態になりました。
今度は、スナップショットを取っていたため、元の状態に戻しました。

BusyBox画面で、
fsck /dev/sda1
を実行すると、OSは起動します。
しかし、ソフトウェアの更新を実行すると、phpのインストール中に固まります。

再び、スナップショットで元に戻しました。
今度は、
$sudo touch /forcefsck
再起動の後、ファイルシステムがチェックされたはずです。
シャットダウンし、スナップショットを作成。

ソフトウェアの更新を実行すると、また、同じ状態になりました。

スナップショットで元に戻しました。
sudo apt update
sudo apt upgrade
で、更新を行いました。

この状態のスナップショットを作成。

再び、ソフトウェアの更新を行うと、また、同じ状態になりました。
スナップショットで復帰。

ソフトウェアの更新では、確認できないというメッセージが表示されます。
この状態になると、ファイルシステムが、読み込みモードになり、書き込みできなくなります。

しばらくは、こまめにスナップショットを取り、「ソフトウェアの更新」は起動しないようにしようと思います。
起動するだけで、ファイルシステムが破壊されますから。
また、「ソフトウェアの更新」だけでなく、システムの確認も行わないようにしないと、同じトラブルが発生します。

<追加>
結局、ソフトウェアの更新に関係なく、ファイルシステムが読み込みモードになるトラブルのようです。
原因は調査中。

2017年1月15日日曜日

Macbook air 2013 落ちる

最近、Macbook air 2013が落ちます。
バッテリー残量が、30%くらいになると、使っている間に切れます。
バッテリーが減っているのが原因のようです。

しかし、正常なら、30%も残っているなら問題なく動くはずなのですが。
macの情報を見ましたが、バッテリーの情報は、正常とありました。

この症状、先月、バッテリーを交換した、iPhone6sと同じです。

さて、バッテリの寿命なのが、製品の欠陥なのか、どうなのでしょうか。

2017年1月13日金曜日

ESET セキュリティ thunderbirdが速くなった


ESET ファミリー セキュリティ 3年間更新費 / 販売元:キヤノンITソリューションズ株式会社


メールソフトは、Thunderbirdを使っています。
ESET ファミリーセキュリティをインストールしてから、メールの受信が速くなりました。

導入前は、迷惑メールが30通もあると、受信完了までに、1分近く待たされる感じでしたが、導入後は、すぐに受信が完了します。

ESETのマルウェア、ウィルス対策の隔離が、どのようになっているのか分かりませんが、今のところ、快適です。

2017年1月11日水曜日

ESET セキュリティ メール受信の問題


【更新版】ESET ファミリー セキュリティ 3年更新版【5台用:ダウンロード版】(セキュリティソフト)

メールソフトは、Thunderbirdを使っています。
ESET ファミリーセキュリティをインストールしてから、メールチェックの際に、証明書の確認ダイアログが表示されるようになりました。
毎回、ダイアログに応えるのは面倒なため、ダイアログを表示しないように設定しました。

根本的な原因は、メールサーバーの証明書が、メールのドメイン名と一致していないことです。レンタルサーバーを利用している関係で、ここは、対策のとりようがありません。
セキュリティソフトの設定を変更することにしました。

下記の情報を参考に
http://eset-support.canon-its.jp/faq/show/4584

「設定」「Webとメール」を開き、「SSL/TLS」の項目を展開しました。
「SSL/TLSプロトコルフィルタリングモード」を、対話モードに変更しました。

この後、Thunderbirdを起動すると、ESETの「暗号化ネットワークトラフィック」のダイアログが表示されました。
ここで、「この証明書のアクションを記憶する」を選び、「無視」をクリックしました。
設定しても、一度は、Thunderbirdのダイアログが表示されるようです。

再起動後、無事に、Thunderbirdのダイアログが表示されないことを確認したら、「SSL/TLSプロトコルフィルタリングモード」を、「ルール付き自動モード」に戻しました。

セキュリティを強化すると、手間が増えるのは仕方のないことです。

2017年1月10日火曜日

ESET ファミリー セキュリティ

ESET ファミリー セキュリティ を購入しました。
購入したのは、3年更新版です。


キヤノン ESET ファミリー セキュリティ 3年版 2785V39901 1本 【送料無料】

知人から、「ファミリー版なら、パソコン、アンドロイド、合わせて、5台まで、3年間利用できて、お得だよ」と言われ購入しました。 現在、価格や、パッケージのラインナップが変わり、昨年末のお買い得感はなくなっているようですが、今後は、在庫が減り、さらに、値上がりが予想されるため、今のうちにと購入しました。

 以前、ESETを使っていましたが、マイクロソフトのセキュリティソフトが無料だったため、更新せずにいた経緯があります。 使っていたときの印象では、ウィルス対策により、パソコンの動作が遅く感じることもなく、快適だった記憶があります。

今回、購入したのは、今年になり、迷惑メールが急増していることに、不安を感じたからです。 Microsoft Security Essentialsでも問題はないと思いますが、仕事に使っているものに関しては、より安心を求めて、セキュリティソフトの導入を決意しました。

インストールに際しては、Microsoft Security Essentialsのアンインストールが求められました。
インストール後の印象は、パソコンの動作が遅く感じることもなく、何事もないように感じます。
アンチウィルスソフトのお世話にならないことが、一番ですが、万が一の場合には、期待しています。

2017年1月2日月曜日

JavaScriptを勉強中

正月休みを利用して、JavaScriptを勉強中です。
読んでいるのは、「JavaScript本格入門改訂新版」です。


JavaScript本格入門改訂新版 [ 山田祥寛 ]

JavaScriptの記述方法は進化しています。
以前、当たり前に使っていたテクニックが不要になっていたり、非推奨になっていたりして、勉強し続ける大切さを実感しています。

例えば、現在、プログラムの実行は、下記のようなコードを使っています。

(function(){
  function init(){
 //ここに記述
    window.alert("ab");
  }

    window.addEventListener("load", init, false);
})();

今後は、下記のコードに変更しようと思います。
名前空間に関しての対応は、ライブラリ内で解決するつもりです。

document.addEventListener('DOMContentLoaded', function() {
  本体の実行
}, false);

2つの大きな違いは、イベントの発生のタイミングで、DOMContentLoadedは、画像以外のコンテンツのロードが終わった時点で、発火されます。
loadより、早い段階で実行されるため良さそうです。
逆に、画像に対して、何かを行う場合は気をつけなければなりません。

JavaScriptの新しい仕様に関しては、classが便利そうです。
C++から、オブジェクト指向を学んだ身としては、classの仕様は、なじみやすいです。
早く、古いブラウザがなくなってくれないかと思います(笑)