2015年8月30日

検索を声でやってみた

無線のヘッドセットを買ったのでGoogle Chromeに話しかけて検索してみましたがとても便利。
複雑ではない検索だったらサクッっと検索してくれます。
普通は、検索窓にキーワードを入力しますが、マイクのアイコンをクリックして話すだけなのでキーボードを叩かなくてよいので楽です。

文書を書くのも声でやりたいのですが誰か実現してませんか?

【備忘録】好きなバージョンのRubyインストール

最近のオープンソースの管理ツールとかがRubyで動くものが多くなってきているので任意のバージョンのRubyのインストールをするほうほうをスッキリまとめて見ました。
いろんなツールは自動的にインストールをしてくれますが自分でもできるようになりたいという欲求から調べてみました。
Ruby on Railsのこともは後で書くことにします。


【やりたいこと】

  • バージョンの切り替えを自由にしたい
  • 共通の場所にインストールしたい
    /usr/localにインストールする
【参考にしたサイト】


【準備】
  • OSは、Amazon Linuxを使いました
  • gitのインストール
    >sudo yum install -y git
  • 開発コンパイルツールのインストール
    Cコンパイラ等をまとめてインストールしてくれます
    >suodo yum groupinstall "Development Tools"
【rbenv関連のインストール】

rbenvのインストール
/usr/localにrbenvをインストールします。
>sudo -s

>cd /usr/local
>git clone git://github.com/sstephenson/rbenv.git rbenv

ruby-buildのインストール(プラグイン)
Rubyの異なるバージョンをコンパイルしてインストールするrbenvのプラグイン


/usr/local/rbenv/plugins/ruby-buildへインストールします
>git clone https://github.com/sstephenson/ruby-build.git rbenv/plugins/ruby-build

パスを通す準備
/etc/profile.d/にスクリプトファイルを置いておくとログイン時に自動に読み込んで実行してくれるものです。
>vim /etc/profile.d/rbenv.sh
 このファイルは無いので新規で作成します
  ファイルの内容は以下のとおりです。
  export RBENV_ROOT="/usr/local/rbenv"
  export PATH="/usr/local/rbenv/bin:$PATH"
  eval "$(rbenv init -)"

 ※このファイルを作成しておくだけだと、Permissionエラーが発生します。
 一旦rootになって、上記コマンドを入力して実行してください。そうすれば次回からエラーがでなくなります。
 この辺りはlinuxの理解が不十分なのでちょっと深掘りして理解しいないと…。


これで準備は終わりです。


【Rubyのインストール】

rbenvの確認してみる
Usageが表示されればパスもとおている
>rbenv
  rbenv 0.4.0-153-g3b6faa8
  Usage: rbenv <command> [<args>]
  :

インストール可能なRubyの一覧を表示してみる
>rbenv install -l
  Available versions:
  1.8.6-p383
  1.8.6-p420
  :
  2.2.3
  :

rubyをインストールしてみる
今時点の最新バージョンの2.2.3をインストールする
>rbenv install -v 2.2.3
  Rubyのソースがダウンロードされコンパイルとインストールがされます。
  マシンスペックにもよりますが結構時間がかかります。

rbenvに反映?
もはや、今のruby-buildのバージョンでは不要らしい
>rbenv rehash

rubyのバージョンの切り替え
>rbenv global 2.2.3
 OS内で認識するrubyのバージョンを2.2.3に切り替えます

>rbenv local 2.2.3
  ログインしているユーザの環境かでバージョンを2.2.3に切り替えます。
  ホームディレクトリで実行します(.ruby-versionというファイルが作成される)

rbenvでインストールされたRubyの一覧を表示してみる
>rbenv versions
  system
  2.2.2
  * 2.2.3 (set by /usr/local/rbenv/version)

  *が付いているのがカレントバージョン
  systemというのは、おそらくrbenv外でインストールされたバージョンだと思います。


以上で終わり。


更にメモ
bundlerのインストール
>gem install bundler


2015年8月24日

Windows10とACCESS2010でちょっと

 仕事でAccess2010でのシステム開発をしているのですが、ちょとぉ、ちょっと、ちょっとというのに気づきました。

 まぁ、今のところ致命的な実害があったわけではないのですが、ちょっと気になる点の指摘を。

 テーブルのデザインの時のフィールドのプロパティや、フォームデザインのプロパティシートの書き換えが遅いのです。
 Windows7(Windows8系を真面目に使ってなかったので)では、何も気になりませんでしたが(というか、人が気になるほどの遅さでなかったって言うこと)、Windows10では、カーテンが閉まるようにスーっとゆっくりと白くなって、パッっと表示されるのが目に見てわかるようになりました。
 フォームのプロパティシートの場合、プロパティの一つ一つでフォーカス移動するだけで、書き換えているのがわかります(ちらつく)。

 今のところアプリケーションの実行で問題が起きているわけではないのでちょっと我慢できますが、アプリケーションの動きで問題が出始めたら、Windows7に戻ります。実際は、Access2010の開発の時だけですけどね。
 
 別のPCにインストールしたWindows7かVHDブートできるよにしたWindows7のどちらかですけどね。
 やっぱり開発者は、VHDブートできるWindowsを環境毎に持っているといいかもしれませんね。

2015年8月22日

VHDで運用していたWindows10をSSDへ移行する

 仕事上いろいろな環境で作業をする必要があるので最近はWindows事態をVHDにインストールしています。
 Windows10がリリースされてすぐにインストールして仕事の環境をWindows10に移行(新しくアプリケーションのインストールとか)してテストをしていたのですがほとんど問題がなくなったのでVHDでなく実パーティションに移すことにしました。
 今回は初のSSDを採用ですっ!

通常であれば、SSDにWindows10をインストール後、必要なアプリケーションのインストールと設定をするのですが、VHDで構築したWindows10をそのまま移行する方法を検討しました。

SSDは、予めPCに接続しておきます。

1.VHDにインストールしたWindowsをSDDへ丸ごとコピーする

 「EaseUS Todo Backup」などパーティションを丸ごとコピーするツールを使用します。

2.ブートメニューに追加する
実はここにちょっと時間がかかりました。きっと「bcdedit」コマンドでできるはずだと思ってグーグル先生に聞いたり試行錯誤しました。

1.適当なOSを起動します。(WindowsのインストールDVDでもよいです)
 Windowsのコマンドが入力できれば良いです。

2.diskpartコマンドを起動し、list volumeコマンドを実行します。
 そのPC内のVolume(パーティション)の一覧が表示されます。

 以下のコマンドを実行します。
DISKPART>list volume
Volume ###  Ltr Label        Fs    Type        Size     Status     Info
----------  --- -----------  ----  ----------  -------  ---------  --------
Volume 0     Q                       DVD-ROM         0 B  メディアなし
Volume 1     R                       DVD-ROM         0 B  メディアなし
Volume 2         システムで予約済み    NTFS   Partition    350 MB  正常         システム
Volume 3     C                NTFS   Partition     79 GB  正常         ブート
Volume 4     D                NTFS   Partition    149 GB  正常
Volume 5     E   Windows10    NTFS   Partition    238 GB  正常         

 上記では、Windows10をコピーしたボリュームは、Volume 5というのがわかりました。
(環境によって違うので注意が必要)

3.bcdeditでブートメニューを追加します

2.で調べたVolumeのドライブレターが必要になります。
bcdeditは管理者コマンドで実行します。
以下のようにエントリを作成してどこから起動するかを指定します
注意として最後の「/addlast」は忘れないようにしてください。忘れると今回登録したブートメニューしか残りません。
C:\> bcdedit /create /d “Windows 10” /application OSLOADER

エントリ {0f1a3ed0-4881-11e5-a550-c3b8c8143ee9} は正常に作成されました。

C:\>bcdedit /set {0f1a3ed0-4881-11e5-a550-c3b8c8143ee9} device partition=F:
C:\>bcdedit /set {0f1a3ed0-4881-11e5-a550-c3b8c8143ee9} osdevice partition=F:
C:\>bcdedit /set {0f1a3ed0-4881-11e5-a550-c3b8c8143ee9} path  \Windows\system32\winload.exe
C:\>bcdedit /set {0f1a3ed0-4881-11e5-a550-c3b8c8143ee9} systemroot \Windows
C:\>bcdedit /set {0f1a3ed0-4881-11e5-a550-c3b8c8143ee9} locale ja-JP
C:\>bcdedit /displayorder {0f1a3ed0-4881-11e5-a550-c3b8c8143ee9} /addlast

4.ブートメニューの確認
Windows ブート ローダーの最後に今回追加したものがあれば完成です。
C:\>bcdedit

Windows ブート マネージャー
 :
 :

Windows ブート ローダー
--------------------------------
identifier              {0f1a3ed0-4881-11e5-a550-c3b8c8143ee9}
device                  partition=F:
path                    \Windows\system32\winload.exe
description             Windows 10
locale                  ja-JP
osdevice                partition=F:
systemroot              \Windows
resumeobject            {940bff88-4888-11e5-825d-806e6f6e6963}

5.Windowsを再起動して追加したブートメニューを起動します。

 起動すればOKですが、自分の場合、Google Chromeがログインが切断されていたようでした。
他にもライセンスの再認証や再ログインなどをする必要があるかもしれません。
 多分Windows10もプロダクトキーを入力しないとダメかもですね(確認する前に入力したのでどうかわかりませんが)


参考にしたサイト
第11回 Windows7のVHDブートを試す
http://www.atmarkit.co.jp/ait/articles/1004/22/news101.html



2015年8月4日

Windows10とVirtualBox5.0とVagrant稼働マシンが起動しない場合がある

 自分だけの現象化もしれませんが、一応メモとして記録。

 Windows10にマイクロソフトアカウントでログイン中に「vagrant up」をすると仮想マシンの起動に失敗するようです。
 一旦、「vagrant halt」で仮想マシンを電源オフにし、再度「vagrant up」をしても起動に失敗します。


で、ローカルアカウントでログインした場合、一発目の起動では、失敗しますが、仮想マシンを一度電源オフにしてから、起動すると正常起動するようです。


仕事はマイクロソフトアカウントではなく、ローカルアカウントですることに決めました。

でも、Windows10ストアのアプリって、マイクロソフトアカウントでないとダメなんだっけ?

2015年8月2日

Windows10とVirtualBox5.0とVagrantではまったの巻

 今まで、Windows7+VirtualBox5.0+Vagrantで問題なく仮想環境を作ってアプリケーション開発をしてきたのですが、せっかくWindows10が発売されたのでWindows10で開発環境をつくろうと思い、やってみたのですがハマりました。
 一応解決はしたのですが、これが正解とは思えないのでちょっと心配です。

うまくいかなかった流れ
  1. Windows10のインストール
  2. VirtualBox5.0のインストール
  3. Vagrantのインストール
  4. Windows7時代に使用していたVagrantのBOXを追加
  5. Vagrantファイルの作成と内容の編集
    メモリサイズだったり、共有フォルダの名前だったり。
  6. 仮想マシンの起動(vagrant up)する
    ここで問題が発生しました。
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set network interfaces...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["hostonlyif", "create"]

Stderr: 0%...
Progress state: E_FAIL
VBoxManage.exe: error: Failed to create the host-only adapter
VBoxManage.exe: error: Code E_FAIL (0x80004005) - Unspecified error (extended info not available)
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleCreate(struct HandlerArg *)" at line 70 of file VBoxManageHostonly.cpp

こんなエラーが発生してしまいました。
(vagrant upコマンドを実行すると毎回、毎回、「Host-Only Ethernet Adapterを作りますか?」的な確認がされて、はいにするとたくさんできてしまいます…。)
「ホストオンリーアダプターの作成に失敗しました」的なエラーのようです。
Vagrantでは、ネットワークアダプターを2つ(natとhostonly)使うようで1つ目はできてるのですが2つ目がなんかうまくいかないらしいのです。

 グーグル先生に聞いても明確な答えにたどり着けず(検索キーワードが適切で無いのでしょう)。
で、ネットワークに関連しそうなとこを手当たりしだい見てみようということで。

VirtualBox マネージャーの[ファイル(F)]-[環境設定(P)]のネットワークのホストオンリーネットワーク(H)を確認です。

  1. ここには、VirtualBox Host-Only Ethernet Adapterの設定がありまして、ドライバーのアイコンをクリックする
  2. アダプターのIPアドレスの設定欄があるのでIPアドレスとネットマスクを今起動しようとした仮想マシンと同じ値を入れます(違っても良いのかも。もしかするとネットマスク255.255.0.0だったのがダメだっただけかも)。
    例えば、IPアドレス=>192.168.33.10 ネットマスク=>255.255.255.0
  3. 再度、vagrant upコマンドで仮想マシンを起動します。

これでちゃんと今まで通りに仮想マシンが起動するようになります。
同時に別の仮想マシン(当然IPアドレスは別のもの)を起動してもちゃんと起動します。