2014年1月15日水曜日

クラウドによるパスワード管理はLastpassかKeePassのどちらが最適か。

クラウドでパスワードを管理

最近ではヘビーユーザーでなくてもWindowsもMacもAndroid端末も使っているという人が多くなってきているだろう。
そういう人は管理しているパスワードをすべてのデバイスから見れるように同期したいと思うようになるはずだ。

これを実現する方法として下記の2つが有力だ。

  • Lastpassというクラウドサービスを使う
  • KeePassというパスワード管理ソフトとDropBoxなどのオンラインストレージを組み合わせて使う

LastpassとKeePass+オンラインストレージの違い

パスワードの保存場所

Lastpass

Lastpassが提供するクラウドストレージ上にパスワードが保管される

KeePass

KeePass自体はクラウドを前提としたものではなく、ただのパスワード管理ツールである。DropBoxやGoogle Driveといったクラウドストレージサービスにパスワードファイルを置くことでパスワードを一元管理できる。

価格

Lastpass: iPhone/Androidから使う場合は1$かかる
KeePass: 無料

その他

ギズモードによれば自動入力などはLastpassの方が便利のよう。
十分なセキュリティ対策はされていると思うが日本ではLastpassはそれほど知名度がないし、ストレージにDropBoxなどが使えるKeePassの方が安心感がある。

参考

ギズモードの本家サイト(英語)の記事:LastpassとKeePassの比較
2014年1月14日火曜日

VirtualBoxにWordpressを入れるとテーマインストールができない(dns解決失敗)

エラー

VirtualBox上のWordpressのテーマを検索しようとすると、エラーが発生してテーマ選択することができなかった。
curl関数の結果をechoしてみると「name lookup timed out 」というエラーメッセージを発見。DNSの解決がうまくいっていないようだった。

構成

VirtualBox 4.3.6
WordPress 3.8

VirtualBoxネットワーク構成
アダプタ1: NAT
アダプタ2:ホストオンリーアダプター

解決方法

VirtualBoxのネットワーク構成との関連で問題が起きているようだった。
/etc/resolve.conf でDNSを 8.8.8.8 (GoogleのパブリックDNS) に向けたところ正常に動作するようになった。

ホストオンリーアダプターのせいかと思ったが、NATオンリーにしても問題は解決しなかった。


2014年1月12日日曜日

ruby1.9のcgiでテキストファイルを受け取る

ruby1.9からはエンコーディングの仕様が変わっているため、適当に検索してでてきたファイルをpostで受け取る方法が動かなかった。 ファイルと内部エンコードが共にUTF-8であり、下記のようなコードで対応した。 cgi = CGI.new value = cgi.params['file'][0] v = value.read() # バイナリ(US-ASCIIのString)として読み込む txt = v.encode('utf-8', 'utf-8') # vをUTF-8として解釈し、UTF-8の文字列として返す ruby1.8だとencode()の部分が不要となる。 フォームのHTMLはruby1.8の時と変更なし。

[Mac]vagrant plugin install vagrant-berkshelfに失敗する

Mac Air/Vagrant1.3.5 の環境で vagrnt-berkshelf プラグインをインストールしようとしたところ失敗。 エラー: ld: in /opt/local/lib/libstdc++.6.dylib, file was built for unsupported file format which is not the architecture being linked (i386) for architecture i386 原因はよく分からないが Vagrantを最新版の1.4.3にしたところインストールに成功した。
2014年1月10日金曜日

Webサイト上に仮想マシンのコンソールを設置するライブラリ

runnableというスニペット共有サイトがWebサイト上に仮想マシンのコンソールを設置していてとても便利だ。

これを実現するためのコードはオープンソースで公開されているので、それを使えば比較的簡単に実現できそうである。

dockworkerというのがコンソールを実現するアプリケーションだ。CodeNow/dockworkerというリポジトリからフォークしているが、CodeNowというのはRunnableの昔の名前で、開発会社は同じのようだ。
また、Runnable.comで使っているDockerの仮想環境定義(Dockerfile)も公開されている
しかし、それぞれライセンスが設定されていないという問題もある。

この仕組を活かしたプログラミングの勉強サイトなどがあったら初心者などには特に便利ではないだろうか。
PHPの勉強をするにしても、環境作りというのはかなり手間だ。xamppなどを使えばそこそこ楽だが、それでもつまづく人はいるのだ。


2014年1月9日木曜日

Runnable.comが便利そう

先日見つけたRunnable.comというコードスニペットの共有サイトがなかなか便利そうだ。
コードスニペットのサイトは他にも色々あるが、Runnable.comは他のサイトよりずっといい。

サイト上でコードを実行できる

スニペットのページには「Run」ボタンがあり、押すとスニペットのコードを即座に実行することができる。
実行環境を用意しなくても実際の結果を直ぐに確認できるのはとても助かる。

サイト上に用意されたLinuxコンソールを使って編集・実行できる

スニペットのページにいくと、スニペットの下にLinuxコンソールが表示され、スニペットを編集したり実行することができる。
Dockerを使った仮想環境になっており、当然vimも使えるし、root権限があるのでapt-get installもできる。

試しにslコマンドをインストールして実行してみた。



対応している言語が多い

  • C++
  • Java
  • PHP
  • Node.js
  • .Net系の言語
  • javascript
  • dart
  • python
など

データベースやいくつかのフレームワークにも対応

MySQLやCakePHPなどにも対応しており、それらに依存するスニペットも実行できる。



Mac Book Air に VirtualBox で Windows8.1 をインストールした感想

VirtualBoxを使ってMac Book AirにWindows8.1(64bit)をインストールしてみた。

インストール

環境

・Mac Book Air(2011年のモデル)
・VirtualBox4.3.6
・Windows8.1(64bit)

仮想マシン

VirtualBoxの新規マシン作成時にWindows8.1をプラットフォームに選ぶと、強制でHDDは25GB以上、メモリは2GB以上にされる。Macのメモリが4GBなので半分持ってかれていしまうorz
使用CPUコアを2に引き上げて表示関連の最適化オプション付ける以外はデフォルトの状態ですんなりインストールできた。

とりあえず数時間使った感想

ユーザーインタフェース

ボロクソに叩かれている新しいユーザーインタフェースだが、僕としては悪くない。
Windows8の頃はどうだかしらないけれど。
情報を見せる場所(スタート画面)と作業場所(デスクトップ)は分かれてていい。

Chromeが動かない

インストールはできるものの起動すると画面が乱れまくって使い物にならない。
ChromeはGPUを使い倒すために色々やってるのが原因と思われる。
結局IEを使うハメになりげんなりする。

Windowsストアのアプリが微妙

「エディタ」で検索しても無料アプリではまともなものがない。diffで検索しても日本語のアプリすらでてこない。
検索結果にでてきたアプリも結局作者のウェブサイトにいかないとダウンロードできなかったりする。
他サイトの記事ではアプリも増えてきたという記述もあるが、まだゲーム探すくらいにしかWindowsストアは役に立たなそう。

遅い

VirtualBox上で動作させているせいもあるだろうがCPUを使いまくる上に、それなりにイライラできるレベルでもたつく。
Mac Book Airのファンも唸りっぱなしである。

まとめ

VirtualBoxがWindows8.1対応したとはいえ、Mac Air + VirtualBox + Windows8 な環境はかなりフラストレーションが貯まる。
どうしてもWindowsじゃないと動かないアプリがあるとかじゃない限り、おすすめできない。



PlanexのMZK-EX300D(WiFi中継器)を使ってみた感想

部屋にある複数のネットワーク危機がありまとめて無線化したかったため、約半年くらい前にMZK-EX300Dを購入して使っていたので、使用した感想をまとめてみる。

無線使用のPS3と共存が面倒

対応している無線の暗号化方式がPS3と異なることが原因で無線接続のPS3と共存するための設定に苦戦した。
PS3はAESという方式にだけ対応しており、MZK-EX300DはTKIPという方式にだけ対応している。
このため、ルーターは両方の方式に対応するために仕方なく、2GHzのバンドをAES、5GHzのバンドをTKIPで接続できるように設定しなければならなかった。
たぶん、初心者の方にはこういった設定は辛いだろう。
無線ルーターの種類によってはそもそも対応できない可能性すらある。
いまどきTKIPしか対応していないMZK-EX300Dにかなり問題があると言える。

長時間使用しているとときどき停止する

特に高負荷をかけていなくても、ときどき停止する。
すべてのランプが完全に表示されたままになり、アダプタを抜いて再起動すると直る。
徐々に頻度が上がっているように感じられ、最近は1~2日に1回くらいの割合で発生。

動作していれば快適

ルーターまではドア2枚を隔てており、直線でも7~8メートルくらいあるが、快適に通信が行える。

まとめ

動作不安定なので、他がどうであろうとおすすめできる製品ではない。
良いレビューも悪いレビューもそれなりにあるみたいで、安定度には個体差があるのかもしれない。
TKIPしか対応していないのも痛すぎる。



2014年1月8日水曜日

CSS3のrotateY/rotateXをするとマウスオーバーの判定ができなくなる問題

rotateY()した要素のマウスオーバー判定がおかしい

CSS3でY軸回転させた要素をマウスオーバー時に回転を戻すという処理を行いたかったのだが、どうもrotateY()で回転させた要素に対してマウスオーバーの判定がうまくいかない。
まったく効かないのではなく、回転によって奥側になった部分だけ判定が効かない。
また、Firefoxではこの問題が発生しない。

下記のコードで再現できる。

再現HTML
<div id="container">
    <div class="rect"></div>
</div>

再現CSS
.rect {
    display: inline-block;
    background-color: red;
    width: 200px;
    height: 200px;
    -webkit-transition: -webkit-transform 0.2s;
    -webkit-transform: perspective(300px) rotateY(30deg);
}
.rect:hover {
    -webkit-transform: perspective(300px) rotateY(0deg);
}

translateZ()とscale()で無理やり解決

どうもwebkitの動作でZ座標が0以下の要素にはマウスオーバーの判定が発生しないよう。
仕方ないのでtranslateZ()で回転しても要素のz座標がすべて0以上に収まるように要素を移動し、scale()でサイズを調整することで対応した。

修正後のCSS
.rect {
    display: inline-block;
    background-color: red;
    width: 200px;
    height: 200px;
    -webkit-transition: -webkit-transform 0.2s;
    -webkit-transform: perspective(300px) rotateY(30deg) translateZ(100px) scale(0.8);
}
.rect:hover {
    -webkit-transform: perspective(300px) rotateY(0deg) scale(0.8);
}


2014年1月4日土曜日

やっぱりJavaScriptが流行っている

JavaScriptが使いやすい言語とは思えないけれどやっぱり流行っている。

GitHubのトレンドリポジトリにおける言語別の内訳

JavaScript: 9
C/C++: 3
Objective C: 3
Ruby: 2
Lua: 1
Go: 1
(2013/1/4)

圧倒的にJavaScriptが多い。

https://github.com/trending

こんなニュースも

PayPal社がバックエンドをJavaからJavaScriptへ移行