ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

GM◯ iClusta and Jenkinsという最悪のコンビネーションで自動デプロイのやり方メモ

カオスだったお(^ω^

でもそんなに難しいことじゃないので、一応読めばできると思う。だけど逃げ出したくなるめんどくささ。

普通のエンジニアにはAWSをポチってJenkinsにリモートでシェルを叩いてもらいましょう。それでもこのカオスな環境を作りたい人はメモを読んでね。

やりたいこと

GM◯ iClustaのサーバにJenkinsを使ってCakePHPを自動デプロイしたい

f:id:aipacommander:20151208204621p:plain

続きを読む

PHPUnitでSeleniumを使ったテストしているんだけど、flashMessageなんかの要素が存在しない場合はどうすればいいの?ってメモ

JavaにはfindElementってのがあるらしいけど、PHPではそれらしいやつが見つからない。

PHPUnit_Extensions_Selenium2TestCaseってクラスを継承しているんだけど、こいつのドキュメント読みづらくていまいちわからない。じっと見ているけどやっぱりわからない。結局まだ良くわかっていない。

しょうがないのでtry ~ catchで妥協しました。

<?php
...
  try {
    $bool = $this->byId('flashMessage')->displayed(); // こいつがとれなければ
    $this->assertTrue($bool);
  } catch (Exception $e) {
    $this->assertTrue(true); // ここに飛ぶ
  }

こんな感じですね。

記念すべきPHPの100回目と今年300記事目がこの内容とは(°ω°

どーでもいいけどさ

iPhoneで「ホーム画面にブックマークを追加」って機能でアイコンを任意の画像にしたいときのメモ

やったこと、ハマったことまとめ

やったこと

画像を作った

ほんとは機種毎にサイズをかえないといけないっぽいですが、めんどくさかったので、114x114にしました。あとpng推奨です。

DocumentRoot直下に「apple-touch-icon.png」って画像を置いた

先ほど作成した画像を「apple-touch-icon.png」って名前に変更して、DocumentRootに配置。

linkタグを追加

書くのめんどくさいので参考URL

ozpa-h4.com

なんかしらないけど、ここまでやったらAndroidも適応されました。よくわからん?

はまったこと

Basic認証の環境では出てこない

同じく、書くのめんどくさいので参考URL。これはめちゃめちゃハマった。ありがたやー。

d.hatena.ne.jp

gulpでディレクトリ構造を保持したままscssをコンパイル

scssとsassの違いがまだわかりません。

gulpを最近使い始めてきました。

で困ったことがあって。

一緒のコードをまとめてガッチャンコしたcssを全体に適応するようにロードしてあげればいいと思いますが、今回導入したのはすでに稼働しているサービスで、cssの設計なんもされてなくてそんなことができないプロジェクトだったのね。

なので、それぞれのページでcssを別けて読み込ませたいなと思っていたんですが、scssをコンパイルしたときってそのディレクトリ構造を保持してくれんの?って思ったわけですよ。

~/scss/test/test.scss => コンパイル => ~/css/test/test.css

ってな感じで。

結論してはできたのでそれのメモ

var gulp         = require('gulp');
var sass         = require('gulp-sass');
var minifyCss    = require('gulp-minify-css');
var watch        = require('gulp-watch');
var react        = require('gulp-react');
var flow         = require('gulp-flowtype');
var documentRoot = './';

gulp.task('sass', function() {
  gulp.src(documentRoot + 'scss/**/*.scss') // ここの指定がポイントです
    .pipe(sass())
    .pipe(minifyCss())
    .pipe(gulp.dest(documentRoot + 'css'));
});

// watch
gulp.task('watch', function() {
  watch(documentRoot + 'scss/**/*.scss', function() {
    gulp.start('sass');
  });
});

コメントの通り、ここを**にするとscssの保存されたディレクトリ階層を保持したままcssのディレクトリにコンパイルしてくれました。いやー便利便利。

しかし、scssで構文エラーが見つかるとwatchが落ちちゃったり、scssのチェックがscssファイルのどれかが更新しないとコンパイル実行してくれなかったりとちょっとめんどい部分がみえてきたのでそれはどっかで修正しようと思う。

また運動開始したのでメモ。エンジニアのダイエット日記25

前回の記事からはや・・・何ヶ月?

aipacommander.hatenablog.jp

えと。。。おう。もう4ヶ月か早いな。

変化としてカロリー管理を始めました。

カロリー管理(痩せるアプリ)

カロリー管理(痩せるアプリ)

  • Soohyun Park
  • ヘルスケア/フィットネス
  • ¥480

これ使っています。今年の9月ぐらいからかな。

んで、いまこんな感じ。

f:id:aipacommander:20151208213705p:plain

うーむ。痩せてはきているっぽい。

しかし平均の体重が64kgなので、残り7kgと結構長旅ですね。

とりあえず最近また運動始めたのでメモしていく。

2015/12/5の実施内容

実施項目 内容
腹筋ローラー 5×2セット
ジョギング 3km
腕立て 10x2セット
スクワット 10x2セット

体重

70.2kg

写真

今回はありません。

雑な感想

ぼちぼちがんばていくお(^ω^

次もがんばる

ぼちぼちがんばるお。エンジニアのダイエット日記26

寒くなってきたねー(°ω°

2015/12/6の実施内容

実施項目 内容
腹筋ローラー 5×2セット
ジョギング 3km
腕立て 10x2セット
スクワット 10x2セット

前と同じセット

体重

測るの忘れてた・・・

写真

今回はありません。

雑な感想

前回紹介したアプリのせいでドラゴンボールスカウターみたいに食べ物カロリーが浮いて見える。

ラーメンは700kcal以上。すき家の牛丼は800kcal以上。

で、ここ1ヶ月。食べにいくことを舌は食べたい!と思っても、頭が拒んでいるw

でもま、悪いことじゃないと思うので引き続き痩せるためにがんばるお

次もがんばる

WordPressでGoogleAnalyticsが集計されないときに苦しめられたコード

何故かWordPressに埋め込んだGoogleAnalyticsが集計されないんだYO!

そしたらこいつがHtmlコードの上部に存在していたんだYO!

<script type="text/javascript">
window["_gaUserPrefs"] = {
    ioo: function() {
        return true;
    }
}
</script>

こいつがあるとGAのタグを飛ばしてくれないんだとか。検証のページとかに設置するといいYO! だけど本番には書いちゃダメだYO!

検証でWordPressレイアウトをコピーしてそのまま別のシステムに貼り付けたからこうなったんだYO!

Macにanacondaをインストール

機械学習を勉強し始めたので、便利と噂のanacondaをインストールしました。

$ pyenv install anaconda-2.1.0

# 環境をanacondaへ切り替え
$ pyenv global anaconda-2.1.0

んで、このサイトさんを参考にしました。

omoshetech.com

ついでOpenCVも入れようかなと思いました。が。

$ conda install -c https://conda.binstar.org/menpo opencv
-bash: conda: command not found

おろ?

どうやらパスがダメっぽい。フルパスで実行

$ ~/.pyenv/versions/anaconda-2.1.0/bin/conda install -c https://conda.binstar.org/menpo opencv

Fetching packages ...
conda-3.18.4-p 100% |##################################################################################################################################| Time: 0:00:00 195.84 kB/s
conda-env-2.4. 100% |##################################################################################################################################| Time: 0:00:00 120.79 kB/s
numpy-1.10.1-p 100% |##################################################################################################################################| Time: 0:00:03 907.05 kB/s
opencv-2.4.11- 100% |##################################################################################################################################| Time: 0:00:04   2.05 MB/s
openssl-1.0.2d 100% |##################################################################################################################################| Time: 0:00:02   1.18 MB/s
python-2.7.10- 100% |##################################################################################################################################| Time: 0:00:04   2.30 MB/s
pyyaml-3.11-py 100% |##################################################################################################################################| Time: 0:00:00 169.71 kB/s
requests-2.8.1 100% |##################################################################################################################################| Time: 0:00:01 433.23 kB/s
sqlite-3.8.4.1 100% |##################################################################################################################################| Time: 0:00:01 527.60 kB/s
tbb-4.3_201410 100% |##################################################################################################################################| Time: 0:00:03 530.94 kB/s
tk-8.5.18-0.ta 100% |##################################################################################################################################| Time: 0:00:02 932.02 kB/s
yaml-0.1.6-0.t 100% |##################################################################################################################################| Time: 0:00:00 133.04 kB/s
zlib-1.2.8-0.t 100% |##################################################################################################################################| Time: 0:00:00 130.22 kB/s
Extracting packages ...
[      COMPLETE      ] |####################################################################################################################################################| 100%
Unlinking packages ...
[      COMPLETE      ] |####################################################################################################################################################| 100%
Linking packages ...
[      COMPLETE      ] |####################################################################################################################################################| 100%

おっ。めっちゃインストールされた!

サイトにならい、インストールされているか確認する。

$ python
Python 2.7.10 (default, Jul 14 2015, 19:46:27) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>>  import cv2
  File "<stdin>", line 1
    import cv2
    ^

あり?

パスかな?

色々探っていると、やっぱりパスを追加しました。

$ export PATH="$HOME/.pyenv/shims:$PATH"

$ python
Python 2.7.10 |Anaconda 2.1.0 (x86_64)| (default, Oct 19 2015, 18:31:17) 
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import cv2
>>> cv2.__version__
'2.4.11'

うむ!

ちなみに、パスを追加する一行は~/.bash_profileにも追加しておきました。これでおk.