2014年8月26日火曜日

現在使用のシェル確認と設定ファイルについて

現在使用されているシェルが知りたい
echo $SHELL

Linuxでユーザ環境設定ファイル(bashの場合)

HoundCIホスティングでエラー

README通りに
./bin/setup
を実行して色々引っかかりながら進めてきたけど、
下記エラーを克服できずにはまってます。。。

remoteってどこなんでしょう?

2014年8月24日日曜日

An error occurred while installing pg (0.17.0), and Bundler cannot continue.

HOUND CIを入れる過程で発生。

brew install postgresql
上記を実行することで解決。

An error occurred while installing capybara-webkit (1.1.1), and Bundler cannot continue.

HOUND CIを入れる過程で発生。


libqtwebkit-devライブラリを追加することで解決するようだ。
→参考

macの場合は下記で行う
brew update
brew install qt

rvmでのRubyバージョンアップデート方法

RVMでRubyのバージョンアップ

rvmのアップデート
rvm get stable

Rubyの新しいバージョンをインストール
rvm install 2.1.2

rvm use 2.1.2
rvm use 2.1.2 --default

モダンなインフラ環境で使用する用語整理

インフラ周りのツールの意味がよくわからなくなったので整理。
  • Chef
    サーバ構築作業の自動化ツール。
    レシピは構築方法と言うより、サーバのあるべき状態を記述したもの。
    Chefはレシピの記されたとおりにサーバの状態を収束させることを行う。
    処理内容はRuby構文を使用可能。
    似たツールとしてPuppetやCFEngineがある。
    シェルよりも簡単に記述できる。
  • Vagrant
    サーバ仮想化ソフトウェア(VirtualBoxなど)への操作をコマンドで行えるようにし、仮想サーバの作成、立ち上げ、破棄を可能にするRuby製ソフト。
  • Docker
    アプリ開発者もインフラ管理者も知っておきたいDockerの基礎知識

    コンテナ管理ソフト。
    コンテナ型であるためクラウド上での制約を受けにくく、OSブートが必要ないため高速で動作する。
    ハイパーバイザ型…ハイパーバイザの上に仮想マシンを載せ、仮想マシン上にOSやミドルウェア、アプリケーションが載っている。
    コンテナ型…コンテナとはWebサーバなどのアプリケーション実行環境を管理する仕組み。OSの上にコンテナ管理ソフトが載り、コンテナ上にミドルウェアやアプリケーションが載る。
  • フロントエンド
    ユーザーに対して最も全面にある仕組みや環境のこと。
    UIと同じ意味で扱われることが多い。
    データ入出力や処理はバックエンドと呼ばれる。
  • トポロジー
    形態。位相幾何学。

2014年8月10日日曜日

DevLOVE現場甲子園に向けて2014途中経過メモ

CI  会社のプロジェクトに適用中であるが、未完成である。  完成させることができれば自分で始めたCI環境構築実績として残る。  Windowsの場合は以外にバッチが難しいけど、少し慣れてきた。  既存プロジェクトの変更を行うのはやっぱり難しい。みんな結構簡単そうにやってない? Ruby  Railsの仕組みに関して理解した。  Railsに関してコマンドの種類はある程度把握して、  何かするときにどこを調べればよいかわかるようになった。  Ruby on Rail Tutorialを5回ほど写経したのが良かった。 勉強会  社内の方と知り合いになることが出来た。  初めて懇親会に参加も出来た。  課内での発表を行った。  AdventCalendarをやろう。 TDD  Railsでのテストを少し行えるようになった。 OSS  Jenkinsのバグと思われる部分を治そうとしたが、  バグではなかった。  しかしソースを追うことが出来た。 Git  基本的な開発に使う分には問題がない。  過去ブランチの変更方法とコミットの検索を行えるようにする。 結論 前回から自分が成長した点  去年のDevLOVE甲子園では、現場を変えた発表が多かったしそういったものを進んで聞きに行った。  自分はなにをした?CI、バージョン管理、Gitの管理者にもなれるように今あと一歩の状態。  3本柱のうち自動テストはこの後でやる。上に上げた太字が今年の後半でやること。  現場を変えていく。 今回参加の目的は?  自分がどれだけ彼らに近づけたか測る。  今回の参加でみんなは現場をどう変えたのか再度学びに行く。

2014年8月4日月曜日

2014年7月23日水曜日

よく使うショートカット

ターミナル
 タブ移動
  ⌘+⇧+[
 
Firefox
 タブ移動
  ⌘+⇧+[

eclipse
 タブ移動
  ^+PageUp

2014年7月11日金曜日

2014年5月25日日曜日

20140524_yokohama.devtestingメモ

この本で言っているユニットテストとは?
 →オブジェクト間の振る舞いを表すテスト。
 あるメソッドを呼んで、それがどういった戻り値を返すといったことをテストするのではなく、
 あるメソッドにオブジェクトを渡した時にそれが内部でどう扱われているかといったことをテストする。


 振る舞いをテストするといった時にテストコードがスパゲッティになることを防いで、
 やるテストをはっきりさせること。

 メソッド名で振る舞いを表せれば、テスト内容も振る舞いに寄って行きそうだよね。

 ユースケースシナリオ

 ユースケースシナリオとユニットテストの間でこのデータがどこのテーブルと関連づいているかは
 テストする前にはっきりさせておく必要がある。

 列車事故が悪いのは、
 ・クラスの内部構造まで把握しなければいけないこと
 ・呼び出し元が期待した結果を一発で返していないこと
 ・テストを保守するときに難しくなる

 複数の責務がある場合にはその責務は全て分割されているのであれば、
 それをまとめる行為に別の名前があるから、その名前がメソッド名になる。                                   

2014年5月6日火曜日

Ruby On Rails + MySQL

下記あたりを参考に
参考1
参考2
参考3

config/database.ymlのユーザー名やパスワードを隠ぺいする方法。
参考

Ruby on RailsからMySQL接続に発生するエラー

Ruby on RailsからMySQLに接続しようとして下記エラーが発生

MySQLをインストールしてから再度実行でうまくいきました。(参考)


libmysqlclient.18.dylibがないと言われた場合。
参考

2014年5月3日土曜日

プロファイルがHIDの時RN-42とOSX間で通信が途絶える件について

RN-42レポート

秋月で売っている安価なBluetoothモジュールについて記す。

もともとこのモジュールをなぜ手にしたかというと
HHKBを無線化したかったからである。
http://addsict.hatenablog.com/entry/2013/07/27/164647

HHKBは無線版が存在しない。
しかも最近公式から下記のような商品が出た。
http://www.pfu.fujitsu.com/direct/hhkb/detail_enebrick.html

違う…違う…
俺(ら)がほしいのはそれじゃない…。

というわけでGWだし、参考サイト見る限り2日で行けそうと思ったのでやってみたわけだ。

しかし、ここで使ってるBluetoothモジュールRN-42に問題が発生しどうも動かない。
というわけで、悪戦苦闘した結果を伝えたいと思う。

HHKBの無線化は参考サイト通りやるだけで動くようになる(RN-42は秋月の評価版を使用)
http://akizukidenshi.com/catalog/g/gK-07378/
とても素晴らしい。
ただし参考サイトで使っているモジュールはRN-42HIDというもので秋月では手に入らないものになっている。
それとArduinoからRN-42への入力は分圧しているが、
私の環境では分圧しちゃうと信号が届かないので分圧はしなかった。
データシート見る限り分圧しないとモジュールが壊れる気はする。
分圧版
http://secretbase-of-forest.blogspot.jp/2014/04/rn42bluetootharduinoandroid.html
非分圧版
http://benkyo-chu.blogspot.jp/2014/04/rn-42-bluetooth-bluetootharduinoled.html

私の環境で秋月のRN-42評価版を使用した場合に問題が起きるのは、
通信相手としてMBAを選択した場合だけであった。

Windows7とiPhone5では問題が起きず通信が途切れることはないのだが、
MBAとの通信でのみキーボードとの通信が5〜6秒ごとに途絶え、その間のタイプが無視されてしまっていた。

調べてみるとArduinoとHHKBには問題がなく、
RN-42とMBA(OSX 10.9.2)間でのやりとりに問題があるようであった。

このことはRN-42に電源供給のみで他の部品を接続していない状況で
MBAとペアリングを行い、挙動を確認することで判明した。

この組み合わせでも一定間隔でRN-42のLEDが消え、かつBluetoothの接続がMBA側で途切れていることが確認でき、通信→切断→再接続…を繰り返していた。
これはWindows7やiPhone5間ではない挙動であった。
柱上変圧器さんと同じ症状である。[RN-42-EK HID版だが]
(下記コメント欄)
https://www.youtube.com/watch?v=I2gzqrchnlQ


参考サイトの作者に問い合わせを行って見たところ、
やはりRN-42HID版を手に入れてやるのが良いとの助言。
また、OSX 10.9 Marvericksで、途切れる症状は出たことがないとのこと。
参考サイトで同じ症状が出ているもなかさん(下記コメント欄)とも連絡をとってみたところ、
http://addsict.hatenablog.com/entry/2013/08/18/170204
GalaxyNexus(Android)では症状が出ずに、
MBP(OSX)で同じ症状が出ていたとのこと。

RN-42評価版とOSXの組み合わせ(プロファイルはHID)で症状が出るみたい。
取り敢えずもうネット情報でも太刀打ち出来なくなったのでサポートに聞いてみることにする。

誰か何か知ってたら教えて。

参考までにRN-42の設定は下記である。
Mode = Pair
Profile= HID
HidFlags=200
Authen=1
PinCode=1234

2014年4月20日日曜日

JenkinsのJDK自動インストールで間違ったアカウントを設定すると以後使えなくなる件について

古いJDKをダウンロードするにはオラクルアカウントが必要になる。
Jenkinsでも例外ではなく、初期にアカウントの入力が求められる。

しかし、どうやらこのアカウント入力ははじめの一回しか行えず、
画面で後からいじることが不可能になっているみたい…。

つまり、初期入力でアカウントを間違えると、
再設定ができずに、自動インストール機能が使えなくなってしまうようだ。

初期設定後にアカウントを弄りたいときは
/descriptorByName/hudson.tools.JDKInstaller/enterCredential
へアクセスすれば良いようだ。


2014年04月21日追記
再設定はジョブの結果にリンクが貼られていた。
相変わらずログの情報見落とすな…。

P.S.
JDKに関する設定ファイルは下記に保存されている。
JENKINS_HOME/hudson.tools.JDKInstaller.xml

ファイルのアカウント部分を削除してみても設定画面に
再度アカウント入力のリンクが出現しなかった。
その為設定ファイルを削除してJenkinsを再起動することで、
アカウント情報の削除が行えた。

2014年4月19日土曜日

Gradleのビルドスクリプトにて"Could not read script"エラー

久しぶりにJenkinsのビルドジョブを実行したら下記のエラーが…。

handshake alert:  unrecognized_nameとは一体?
SSHの鍵の問題でもなく、メイン機でも同様に発生。
調べてみるとJava1.7のバグらしい。
Could not read script "URL" due to handshake alert: unrecognized_name #29

下記を参考にJAVA_HOMEを1.6に書き換えることで動くようになりました。
OSXでJavaのバージョンを切り替える

2014年04月21日追記
下記のようにgradle.propertiesでGradleの設定ファイルを作ってSNIを無効にするのが一番いいかも。


P.S.
ついでに出て間もないJava1.8で試してみたら同様のエラーが出ました…。

2014年2月23日日曜日

Jenkinsのワークスペースパスがおかしい

Jenkinsにて空のジョブを作成して実行すると下記エラーが出るんやけど... 
.@2ってなんですのん? 
 
Started by user hogehoge
Building on master in workspace .@2
java.io.IOException: Failed to mkdirs: .@2
 at hudson.FilePath.mkdirs(FilePath.java:1072)
 at hudson.model.AbstractProject.checkout(AbstractProject.java:1405)
 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:652)
 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:557)
 at hudson.model.Run.execute(Run.java:1679)
 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
 at hudson.model.ResourceController.execute(ResourceController.java:88)
 at hudson.model.Executor.run(Executor.java:230)
Finished: FAILURE
 
[Jenkinsの管理] -> [システムの設定] -> [高度な設定]
で設定できたー。
参考

2014年2月17日月曜日

5.3.2

root_pathが定義されていないとのエラー。 他のページはうまくいくんに…。 guardを再起動したら治ったっぽい?

Rubyのお勉強

Javaばっかりやってきていたので、動的言語が気になり、
Rubyになんとなく目が止まったのでRails使ってWEBサイトちょちょいと
作れるようになりたかったのでお勉強中。

「初めてのRuby」写経し終わり、「パーフェクトRuby」の4章まで進んだところで、
Rails Tutorialの日本語版が出たとのことでそっちに専念してます。

動的言語ってことでIDEの補完機能に頼ってばっかりもいられなくなったので、
タイピング能力高める+エディタの乗り換えのため、

HHKBと「実践Vim」を購入。

実践Vimには編集土台となる文章が公開されているので、
gitのリポジトリ作って編集しやすいようにしといた。

以上