2016年1月5日火曜日

capybaraの導入ubuntu14.04

インストールするだけなのですが、案外時間がかかったのでメモしておきます。

1、rubyのインストール
の辺りのサイトを参考にしました。(後から思い出してるだけなので違ったかも

linux系のOSでも物によって apt-get だったり yum だったり違う様なので注意。


2、capybaraのインストール
2.1、capybaraに必要なnokogiriのインストール

gem install nokogiri

ubuntu14.04の場合失敗するので、gemのインストールに必要な

sudo apt-get install build-essential patch
sudo apt-get install ruby-dev zlib1g-dev

を入れます。

を参考にしながら勧めます。基本的にはubuntuの所にあるコマンドを入力するだけでなんとかなりました。

gemのアップデート(?)もやっておくと良いかもしれません。

2.2、capybaraに必要なqtのインストール
capybaraはqtに依存しているためqtとデスクトップをまず先にインストールする。
以下のコマンドを実行すればok

sudo apt-get install libqt4-dev
sudo apt-get install xvfb
gem install capybara-webkit

上からqt、デスクトップ、capybara本体、の順に入れていきます。


3、capybaraを実行
以下の様なコードを走らせます

require 'capybara-webkit'

browser = Capybara::Webkit::Driver.new('web_capture').browser
browser.visit 'http://test.com/'
browser.render('test.png', 1280, 650)






無事、キャプチャに成功しました。左上にマウスカーソルが出てくる以外は完璧です。

2016年1月2日土曜日

lxdeのデスクトップを2つから1つにする方法

ubuntuのデスクトップとしてlxdeを導入したのは良いが、暇なときにマウスのホイールをコロコロする癖がある自分にとってはコロコロするとすぐにデスクトップが切り替わってしまって邪魔で仕方ない機能の一つだった。
これを解消するには以下の設定を直せばよい。

lxdeのデスクトップを一つにするやり方
「スタートメニュー->設定->Openbox Configuration Manager」を開く。
「デスクトップ」タブを選択し、「デスクトップの数」を2→1にしてやれば完了だ。
あとはタスクバーを占領している邪魔なデスクトップページャを右クリックから非表示にしてやれば完璧だ。

リモートデスクトップのCPU使用率が増加して100%になる現象と解決方法(ubuntu14.04、xrdp)

今回、リモートデスクトップで管理しているubuntuのCPU使用率がだんだんと上がっていき100%になっていることに気がついたため、原因と対処法をまとめる。

1、なぜCPU使用率が上がるのか?
これは経験則だが、リモート接続を放置してスクリーンセーバーが起動した後に復帰すると、妙にCPU使用率が上がっていることに気が付いた。
また、システムモニター(windowsで言うタスクマネージャー)でみるとリモートデスクトップ接続に使われるXvncがいくつも起動しているときがあることに気が付いた。
これは調子が悪い時く「problem connecting や login failed」などでリモートデスクトップが一度でつながらなかったときにタスクが終了されないまま取り残されたと考えられる。

つまり、

ログインに失敗して入り直す
   ↓
失敗した分のXvncプロセスが生き残る
   ↓
時間がたってログインに失敗した側のXvncがスクリーンセーバーを起動
   ↓
スクリーンセーバーの描画でCPU使用率が上がる。

という流れが考えられる。


2、対策方法
ここまで話せば簡単だが、

・スクリーンセーバーをオフにする
・ログインに失敗したときは余分なXvncを終了させる

この2つを行うことでCPU使用率の無駄な上昇を抑えられる。

2016年1月1日金曜日

linux環境でのc++プログラミング

この度、無事にwindowsから遠隔操作できるlinuxの開発環境を整えることが出来たので、早速開発に入って行きたいと思う。

1、linux(ubuntu14.04)にgccを入れよう
linuxにはデフォルトではcのコンパイラは入っていないので、まずはそれをインストールする。
コンソールから以下のコマンドを実行

sudo apt-get install g++

パスワードを要求されるので入力してenter
これで、liux上にコンパイラをインストール出来る。


2、ソースファイルの用意、コンパイルしよう
適当なソースファイルを用意してコンパイルしてみる。
今回は

名前:
main.cpp

内容:
 #include <stdio.h>

int main(void) {
     printf("hello world!\n");

     return(0);
}

というファイルを用意した。
余談だが、ファイルを作るには

touch main.cpp

というコマンドをで新しいファイルを作ることができる。
ファイルが作成されたかは ls コマンドで確かめられる。

ここで、

g++ -o main main.cpp

上のコマンドを実行するとコンパイルが実行される。
すると、main という名前の実行ファイルが作成される。linuxはwindowsのような.exeという拡張子は無い様だ。
-o はコンパイル後の実行ファイルの名前を指定するコマンドで指定しなかった場合は a.out という名前のファイルが生成されるのがデフォルトの設定になっている。
※コンパイル前に cd コマンドでファイルのあるディレクトリへの移動を忘れずに。


3、プログラムを実行しよう
mainという実行可能ファイルが作成されたので、コマンドラインから

./main

を入力すると、先ほどの hello world! が表示されるはずだ。


4、makefileを用意しよう
このままでも十分開発は行えるが、コンパイルのたびにコマンドを打つのは面倒なので、makefileというものを作成する。

新しいテキストファイルを用意して今回の場合は
名前:
makefile

内容:
main : main.cpp
\tg++ -o main main.cpp -O2

を入力しておく。
こうしておくことで、main.cppファイルのソースを更新した後に

make

コマンドを実行するだけでコンパイルが実行されるようになる。
make は makefile に書かれたコマンドを実行する命令なのだ。
最後に -O2 というコマンドが付いているが、これはコンパイルの速さ指定で -O3 にすると一番早いらしいが、上手くコンパイルできないことがあるというのでここでは -O2 を指定してある。



余談だが、開発用のフォルダを「ホームフォルダ」の下に作っておけば

cd ~/[開発フォルダ]

ですぐにディレクトリの移動が行えて便利だ。

ubuntu14.04とwindows7のファイルを共有する方法

ubuntu14.04での開発環境を整えるためにファイル共有は不可欠。
やってみると少しだけポイントがあったので忘れないように抑えておく。

1、ubuntu側の設定
ubuntuにはデフォルトでファイル共有を意識したツールが入っているが、14.04では途中上手く動かなかった。
まず、共有したいフォルダを作り、「右クリック->ローカルフォルダの共有」という様な項目があるのでクリック。このとき、デスクトップがlxdeだとその項目が存在しなかったため、デフォルトのデフォルト環境でログインし直した。
続いて「フォルダの共有」という設定画面が開くので「このフォルダを共有する」など、全ての項目にチェックを入れる。
「共有を作成」をクリックするとインストールしていない場合、ソフトのインストールが始める。
ただし、この時14.04だと途中でインストールが止まるバグが有るらしい。
そのため、再起動して

sudo apt-get install libpam-smbpass

を実行、最後にインストールしきれなかった項目をコンソールからインストールする。
reference:http://j-jay.biz/blog/?p=3556

2、windowsからの共有フォルダの開き方
「コンピュータ->ネットワーク」を開けば表示されると思ったのだが、自分で探しに行かないとアクセス出来ないらしい。
アドレスバーに

\\ipアドレス\フォルダ名

を入力してenter。これで共有フォルダにアクセスできるようになる。
ipアクセスはubuntuのコンソールから hostname -I を実行すれば調べられる。
reference:http://mower.hateblo.jp/entry/2015/06/03/112350

ubuntu14.04のリモートデスクトップで日本語入力を行う方法

「せっかくリモートデスクトップを出来たのに入力してみるとアルファベットしか入力されない...だと...」

という状況だったので色々と調べてみました。

1、病状の詳細
ただ単に日本語入力が出来ないのかと思っていましたが、よく状況を見てみたところ
・日本語キーボード配列になっていない
・全角文字入力が出来ない
という2つの病状が現れていることが分かりました。これを順番に解決していきます。

2、日本語キーボード配置に直す方法
Shift+3ボタンで「#」が表示されれば問題ありません。日本語配列です。このとき「@」が表示された人は英語キーボード配列になっています。
コンソールを開いて

$ sudo su -
<ユーザのパスワードを入力する>
# cd /etc/xrdp
# wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini
# mv km-e0010411.ini km-0411.ini 
# chmod 644 km-0411.ini 
# ln -s km-0411.ini km-e0010411.ini 
# ln -s km-0411.ini km-e0200411.ini 
# ln -s km-0411.ini km-e0210411.ini
# /etc/init.d/xrdp restart
# exit
$

を実行していきます。これでwebで公開されている日本語キーボード配列のデータを所定の場所へ保存することが出来ます。これによって日本語配列のキーボードに対応します。
reference:https://forums.ubuntulinux.jp/viewtopic.php?id=13399

3、日本語入力(全角文字入力)出来るようにする方法
自分はlxdeというデスクトップなのでそれに添って説明していきます。
「スタート->設定->入力メソッド」より「インプットメソッド設定」を開きます。
順に「ok」「はい」をクリック。
日本語入力に対応していると思われる「iBus」を選択、「ok」、「ok」をクリック。
iBusはデフォルトでは起動しない様ですが、これをすると起動時に立ち上がってくれるみたいです。

次に、「スタート->設定->キーボード・インプットメソッド」でIBusの設定を開きます。
「入力メソッド」タブから「アクティブな入力メソッドのカスタマイズ」にチェックを入れます。
「入力メソッドの選択」が変更出来るようになるので、「日本語->Mozc」を選択します。他の「Anthy、Japanese」でも良いかもしれませんが、やってないためそこまでは分かりません。

これらの設定が終わった後PCをシャットダウン、再起動します。


上手く行けば、以上の手順で日本語配列、日本語入力が可能になるはずです。