投稿

2015の投稿を表示しています

gnome3

我が家のUbuntuは未だ15.04。 しばらくUnityオンリーでUbuntuを使っていたが、StartメニューというかAppleメニューというか階層式メニューランチャーがないのはイマイチ使いにくい。古い人間かなー。 一時はMac OSXライクなランチャーを置いていたが、こちらは安定性が低い感覚でOS入れなおした時に再インストールしなかった。 が、久しぶりに時間ができたのでGnome3をDesktopにしてみた。 http://askubuntu.com/questions/614657/install-gnome-desktop-ubuntu-15-04 に書いてあるとおり。gnome-desktopのインストール中にDisplayManager選択画面が出るのでgdmを選ぶ。 再起動後はログイン画面がgdmに切り替わっている。ここで⚙アイコンをクリックしてデスクトップを選ぶ必要がある。gnomeを選ぶとgnome desktopになる様子。 こちらもデフォルトはWindows8的な全画面ランチャーがメインぽい。 次にGnome Shell Extensionsを入れる。以下のページが参考になる。 http://gihyo.jp/admin/serial/01/ubuntu-recipe/0254 http://holybea.com/2015/05/21/gnome-shell-extensions/ Dash to Dockを入れた。ランチャーを画面下に配置するとMac OSXライクになる。 Application Menuを入れた。画面上の左端がアプリケーションメニューになった。 IMの状態が変換モードかアルファベット入力かのインジケーターが出ない状態になっている。以下の記事を参考にする。 http://gihyo.jp/admin/serial/01/ubuntu-recipe/0395 Input Method PanelというExtensionを入れる。これで画面上のバーにアイコンが出てくる。 技評さんにはお世話になりっぱなしである。

OpenCLではまった

OpenCL勉強中。 やっとHelloWorldを改造したプログラムが動いた。 とりあえずclBuildProgramでビルドエラー(エラーコード-11)になる。なるが原因がわからない。clGetProgramBuildInfoでエラーログを取得すれば詳細がわかるはずと思って試してもエラーログが取れない。 ここで思いっきり思い違いをしていた。エラーログを取得するの意味を自分はエラーログファイルのパス名を取得できると思い込んでいた。そのためchar型の256バイトぐらいの配列を渡していた。これだとエラーになって取得できない。 いろいろググりながら試したところstackoverflowのサンプルが気になる。 http://stackoverflow.com/questions/9464190/error-code-11-what-are-all-possible-reasons-of-getting-error-cl-build-prog 真面目にサイズを取得してその分のサイズをアロケートして再度呼び出している。試しにバッファのサイズを1024にして呼び出すとエラーにならず、ログそのものが得られた。 思い込みと手抜きはイカンなー。 で、ビルドできない原因はわかった。エラーを見るとcl_ucharなんて型は知らんと言うている。いやいやホスト側のコードはこの型でビルドは通るし(CL.hに定義があるんやろうけど)。KhronosのspecificationのPDFを確認する。 https://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/scalarDataTypes.html 確かにType in OpenCL language側は単にunsigned charになっている。C言語的には正しい気もするので、ここも自分の思い込みか。 思い込みはいかん。

gdb + emacs = IDE

OpenCLをトライ中。 AMDのOpenCL SDK V3.0を使っている。Ubuntu上で試しているが、開発環境はテキストエディタとMakefileとGDB。昔はこの組み合わせなので異論はないが、素でGDBを使うのは面倒くさい。 emacsとGDBの組み合わせで簡単にできるはずとググって以下のページ。 http://d.hatena.ne.jp/higepon/20090505/p1 この通りに.emacsを直してM-x gdbすればかなり簡単にGDBを使える。とりあえずソースコードを見ながら直接ブレークポイントを張って変数の内容がオンマウスで見えてマウスだけでステップ実行できるのでIDE気分。

Lavie Windows 10

Lavie Tab W S710SにWindows 10をいれた。 Edgeはスワイプでページ戻りしないのが不満。速度はアップした。Google Octane 2.0で計測したら8077。以前のIEの倍近くなる。 画面下に常にホームボタンがあったり戻るボタンがあったり、アプリ切り替えボタンがあるのでandroidに近い使い勝手になっている。

Lavie W 710SにWindows 10

Lavie W 710Sを年末に買ったのは投稿済み。32ビット版Windows8.1が入っているがメモリは4GBという点を買っていた。そしてWindows 10のときに64ビット版を入れてやろうと思っていた。 そしてWindows 10が出た。 早速インストールを試してみたが、インストールUSBメモリが起動しない。64ビット版は起動のそぶりも見せない。32ビットと64ビットの両用だとインストーラの最初でビット選択画面になり、64ビットを指定はできるが、起動失敗画面が出てOSインストール画面に進まない。 どうも32ビット版Windowsが入っているWindowsタブレットは32ビット版のUEFIが入っている様子。そのため32ビット版Windowsしか入らない様子。 http://www.slideshare.net/shimadah/201501-uefililotokaidopub 手元に64ビット版Ubuntuの起動USBメモリもあったので試したが、やはり起動しない。 悲しいけど32ビットで我慢するか。 やっぱりThinkpad 10がよかったかなー。

Google Cloud PrintをSeleniumで自動実行

Google Cloud PrintをSeleniumで自動実行するという超レアケースを試す。 GCPはOAuth認証が必要で、スクラッチで呼び出す部分を作ろうと画策したが面倒くさくなったので以下の例に従うことにする。 https://developers.google.com/cloud-print/docs/gadget?hl=ja これをSeleniumで自動実行する。 Selenium IDEで記録したものをスクリプトに落として実行してもさっぱり動かない。 まずGCPの印刷ダイアログがiframeで表示されるため、iframe内のオブジェクト操作ができない。これはswitch_to_frameを使う。 次にOAuth認証画面がポップアップで別画面として出てくるが、この操作ができない。これはswitch_to_windowを使う。しかし_target="blank"となっているため名前が決まっていない。これは以下のページを参考に新規に作られたWindowにswitchするようにする。 http://www.qanepal.com/2015/02/selenium-target-blank-switch-to-new.html あとはこの応用でなんとか自動実行できるようになった。 慣れないと難しい。

ubuntuの環境整備

ubuntuの環境整備。以下のページは役に立つ。 http://mutous.blog120.fc2.com/blog-entry-227.html とりあえず見た目重視でMacぽくするためcairo-dockを入れる。 http://itlx.ldblog.jp/archives/52001815.html 以下のソフトを入れて従来の環境を引き継ぐ。 Google Drive griveが本命ぽいけどAPIが変わって死亡しているという書き込みもあり、google-drive-ocamlfuseを使う。 https://github.com/astrada/google-drive-ocamlfuse 同期ではなく本当にネットワークドライブとして使うことになる?家の据え置きPCなので問題ないと思う。 ~/GoogleDriveをマウントポイントとし、起動時に実行するアプリに入れて自動的にマウントするように設定する。 Dropbox UbuntuソフトウェアセンターからDropboxを検索してインストール。インストール後アカウント入力すればホームディレクトリにDropboxフォルダができあがる。 keepass パスワード管理はkeepassだったのでKeePassXをUbuntuソフトウェアセンターからインストール。 IME anthyはいまいちなのでmozcを入れる。Ubuntuソフトウェアセンターからmozc-setupを入れたがmozcの設定画面が出てきただけでibusから選べない。結局apt-get install ibus-mozcを実行し、ログアウト、ログインするとテキスト入力設定の入力ソースに出てきた。 Chrome 公式サイトからDebian/ubuntu用64ビット向けdebファイルを落とす。そのままダブルクリックするとUbuntuソフトウェアセンターが開きインストールできる。 写真管理 最初から入っているShotwellがよさ気。とりあえずNAS上のファイルをImportする。設定を変えればデジカメ写真の取り込みもWindows PhotoGallaryと同じように年-月-日のフォルダに取り込んでくれるのでOK。

Ultra fast boot

今回ASRockのFM2A88X-ITX+をマザーボードにした。UEFI BootするようにWin10とubuntuをインストールし、BIOS(UEFI)のboot設定からultra fast bootを設定した。この設定だとWindowsから再起動をかけてもgrub画面にいかずOS切り替えができない。それどころかいわゆるBIOS設定画面にも入れない。以下の記事にも説明がある。 http://www.atmarkit.co.jp/ait/articles/1303/21/news107.html ここに書いてあるようにSHIFTキーを押しながら再起動を選ぶと次回のBoot OSなどなどが選べる。これでubuntu: UEFIを選ぶとgrubが起動しubuntuが起動する。 が、ubuntuを再起動するとWindows側に戻せない。 調べたところefibootmgrコマンドで切り替えできる様子。EFIのbootの説明など以下のページが詳しい。 https://wiki.archlinuxjp.org/index.php/Unified_Extensible_Firmware_Interface efibootmgrを実行するとこんな感じ。 hoge:~$ sudo efibootmgr BootCurrent: 0001 Timeout: 1 seconds BootOrder: 0001,0000,0002 Boot0000* Windows Boot Manager Boot0001* ubuntu Boot0002* UEFI: Built-in EFI Shell これを以下のコマンドを実行してBootOrderを変更する。 hoge:~$ sudo efibootmgr -o 0000,0001,0002 これで無事にWindows側が起動した。 ただ、これを実効してからはWindows側でUbuntuを起動してもBootOrderが変わらずUbuntuを再起動すると勝手にWindowsが起動する。個人的にはこのままで問題ないのでほっておく。

A10-7850K

OpenCLを試したくてPCを新調した。悩んだ末にAMD A10-7850Kにした。 とりあえずInsider Preview版のWindows10とUbuntu15.04を入れた。 EdgeでGoogle Octane 2.0を実行するとスコアは22352。Chromeで実行しても22429。 Core2Duo 2.6GHzぐらいのMac miniだとChromeで14521。1.5倍ぐらいは速くなっているかな。 Win10のWinSATの結果は以下の通り。 CPUScore              : 7.6 D3DScore              : 9.9 DiskScore             : 8.15 GraphicsScore         : 7.1 MemoryScore           : 7.6 WinSPRLevel           : 7.1

Jenkins

SeleniumのテストをJenkinsで定期実行させる。 JenkinsにはXvfbプラグイン、GitBucketプラグインを入れる。 JenkinsはXMLのunittest結果しか受け入れないようなのでunittest-xml-reportingモジュールをpipでインストールしてテストコードを若干修正する。 https://github.com/xmlrunner/unittest-xml-reporting Selenium WebDriverを使ったpythonのテストコードはGitBucketにpushする。 Jenkinsのジョブは「フリースタイル・プロジェクトのビルド」として作成する。 GitBucketのURLはGitBucket上のプロジェクトのURL GitのレポジトリのURLはGitBucketからレポジトリURLをコピペする。 ビルド・トリガは定期実行にする。H(HASH)を使えと言われるがテストなので気にしない。 「Start Xvfb before the build, and shut it down after.」にチェックを入れて、詳細設定で名前を決めておく。「Xvfb screen」はデフォルトの1027x768x24で使う。もっと大きいほうが良い場合もあるだろう。 「ビルド」はunittestのpythonコードを指定する。workspaceにcloneして実行するようで、python テストコード.pyとしておけばちゃんと実行してくれる。 「ビルド後の処理」の「JUnitテスト結果の集計」で出力されるXMLのパスを指定する。出力されるXMLファイルはworkspace内に作られるので相対パスを指定し、ワイルドカード指定で*.xmlとして指定する。 これであとは手動でビルドを実行しログを見ながらトラブルシュートする。 プラグインとGUIのおかげで難しいことが簡単にできそうなのがJenkinsの良い所か。

Selenium

SeleniumでWebアプリの簡単な自動実行を試す。 Selenium IDEとSelenium WebDriverを本家サイトからダウンロード。書いている時点ではそれぞれのバージョンは2.9.0と2.46.0。 http://www.seleniumhq.org/download/ Selenium IDEはFirefoxのプラグインという記事を読んでいたのでFirefoxのアドオンページを探しに行ったけどそれらしいものがない。上記ページの下の方にxpiファイルがあるのでこれをダウンロードしてFirefoxにドロップすれば入る。 WebDriverはpython binding版を使う。Firefoxで動けばいいので他のブラウザ用のファイルは気にしない。 Selenium IDEは目的のサイトをGUIで操作すれば記録してくれるけど、Playbackは難しい。勝手にWaitを入れてくれないので試行錯誤する。基本はclickAndWaitとpauseで乗り切る。pauseの待ち時間パラメータは「対象」に入れるとかわからん。「値」に入れてもエラーにならず待ち時間0で進むので悩んだ。 これをpython向けにexportしたがWaitやpauseはexportされない。ググると仕様とのこと。いやいや、何のためのIDEやねん。とりあえずAndWait系はWebDriverWait(hogehoge,秒数).until(EC.element_to_be_clickable)に置き換える。単純なpauseはtime.sleep(秒数)に置き換える。 selectはselect_by_visible_textになっていたのをselect_by_valueに直す。 これでWindows PC上でpythonから自動実行できるようになった。 これを我が家のNASサーバで動かす。NASサーバ側もSelenium WebDriverを入れる必要がある。python bindingのインストール手順はpipが簡単とのことなのでNASにpython-pipを入れてseleniumを入れる。 sudo pip install -U selenium PC側にcygwin/Xを入れて、ssh -YでNAS側にログインする。NAS側にFirefoxを

Xcode4.6.3 on Yosemite

Xcode6だとOpenCL1.0用のバイナリーが出力できない?我が家のMac mini 2009 lateだと動作しない。 試しに古いXcodeを入れてみた。 http://dev.classmethod.jp/smartphone/iphone/xcode-install-version/ が、Xcode4.6.3は起動すると例外が発生して起動しない。 やっぱり新しいPCがほしいなぁ。

svn to git

GitBucketが動き出したのでリポジトリを移す。 この辺のページを参考にgit svn clone -sする。 http://qiita.com/hidekuro/items/4727715fbda8f10b6b11 GitBucketにログインして同名のプロジェクトを作る。 Initialize this repository with a READMEのチェックボックスを外してレポジトリを作るとpushするためのURLを含むコマンドが表示されるので、これをコピペして実行する。アップロードでアカウント入力が求められるのでGitBucketで作ったアカウントを入力する。 意外にあっさり移行ができた。

Gitサーバーを立てる

従来ソースコード管理はSubversionを使っていたがGitを使ってみる。最新のxcodeは標準でGitクライアントの機能があるようだし。 NASサーバはubuntu 14.04 LTSが動いている。Ubuntuのサーバーガイドのページにgitoliteが書いてあったのでこちらを試そうと考えた。 https://help.ubuntu.com/lts/serverguide/git.html が、色々ぐぐるとGitHubクローンがいくつかあるらしい、会社でもGitLabという名前を聞いたことがある。でも、今回はGitBucketを試すことにする。簡単に入れらそうなので。 とりあえずtomcat7を入れて、tomcat7-adminも入れて、GUIベースで管理を目指す。 tomcat-managerのデフォルトアカウントが無いので設定が必要。 /etc/tomcat7/tomcat-users.xml に以下の行を追加。 ダウンロードしたgitbucket.warをアップロードすると50MB制限に引っかかってエラーになる。以下のページを参考に上限値を変更する。 http://blog.giantgeek.com/?p=1000 巨大なためかデプロイに時間がかかる(数分)、起動も数分かかる。 が、起動しない。catalina.outを見ると/usr/share/tomcat7にファイルを作ろうとして失敗している様子。 org.h2.jdbc.JdbcSQLException: ファイル "/usr/share/tomcat7/.gitbucket" を作成中にエラーが発生しました Error while creating file "/usr/share/tomcat7/.gitbucket" [90062-180] /etc/passwdを見るとtomcat7ユーザーのHOMEディレクトリは確かに/usr/share/tomcat7になっており、gitbucketのリリースノートにもHOMEディレクトリにgitbucketファイルを作ると書いてある。 Windows向けのInstallationを見るとGITBUCKET_HOME環境変数に保存先を設定している記述があったの

Dockerでubuntu 12.04 LTS + apache

Dockerでももんが家計簿の続き。 ruby1.8を動かしたいのでubuntu 12.04 LTSをベースとする。apache2.2とruby1.8を入れてapacheを起動する。 がapacheを起動するところで悩む。apacheをフォアグラウンドで動かすのがセオリーのようだがぐぐるといろいろな方法が出てくる。色々試すがうまくいかない。bashを起動し、apache2ctl startすれば正常に起動するが、apche2ctl -D FORGROUNDだと以下のエラーログを履いて、CGIが動かない。  Couldn't bind unix domain socket /var/run/apache2/cgis\ ock.6 よくよく試すとapache2ctl startだと起動時に/var/run/apache2フォルダが作られているが、-D FORGROUNDだと作られていない。なのでしょうがないのでDockerfileでイメージを作るときに/var/run/apache2フォルダを作ることで回避に成功。 やっとももんが家計簿が動き出した。家計簿データは永続データなので起動時に-vパラメータを付けてホストOSのファイルをクライアントOS側にマウントすることとする。これで難なく過去データの引き継ぎもできる。作戦通り。 とりあえずDockerfileを貼っておく。 # ubuntu 12.04 + apache + ruby1.8 + momonga FROM ubuntu:12.04 RUN apt-get update && apt-get install -y apache2 ruby1.8 COPY mobo/ /var/www/ COPY htpasswd /etc/apache2/ COPY momonga /etc/apache2/sites-available/ RUN ["rm","/etc/apache2/sites-enabled/000-default"] RUN ["ln","-s","/etc/apache2/sites-available/momonga","/etc/a

Dockerインストール

ももんが家計簿からの移行が進まない。 どうせなら勉強がてらDockerを入れてここに古いRubyいれてももんが家計簿を動かすというのも面白いと思い実行に移す。 が、DockerはUbuntuの64ビット版が必要とのこと。なぜかNASサーバはUbuntu LTS 32ビット版を入れていたため、64ビット版を入れることにする。 とりあえずUSBメモリからUbuntu Desktopを起動し、gpartedでディスクをシュリンクし空き容量を作り、ここにUbuntu Server 14.04.2 LTS 64bitを入れる。 従来sambaとminidlnaを動かしていたのでこれらを入れて、設定ファイルもコピーする。 minidlnaは再スキャンをしている様子。明日Dockerをもう一度試そう。

Nexus 5 LTE不調→解決

本日急にLTE通信が不調になり、アンテナアイコンのところにビックリマークが付くようになった。ぐぐったら以下のページがヒット。 http://bbs.kakaku.com/bbs/J0000011175/SortID=18216230/ この中で触れられているように、なぜかモバイルデータがオフになっている。原因としてはただそれだけ。自分はした覚えがないのでなぜかは不明。一瞬OSバージョンを5.1にあげたのは早まったかと思ったが、とりあえず治った。

家計簿

ももんが家計簿を使っていたが、Ubuntu 14.04 LTSを入れてから? ruby 1.8が入らない? 代替ソフトを探すことにする。 とりあえずGnuCashを試すことにする。フォントが汚かったので以下の情報を元にmeiryoに変更する。 http://d.hatena.ne.jp/tsuyoshi_to/20120331/p1 でも、昔のデータをどうやってimportしよう。

ケーキ

焼きは170度で30分だとてっぺんが少しねちょつく。180度で5分追加。180度で30分にすべきだったか。