かわばたのAndroidブログ

Androidとかマテリアルデザインとかオープンソースとか

【Chef】MacにChefをインストールしてみる

MacにChefを入れてみたのでメモにしておく。


ChefのダウンロードページからChef Development Kitをダウンロードする

Chef Development Kit | Chef Downloads | Chef



knife-soloをインストールする

$ sudo chef gem install knife-solo


以上。

これから色々いじっていこうと思います

【Java】JVMとは…まとめ

普段何気なく、「JVMが…メモリが…」などと言っているが、その中身をぼんやりとしか理解していなかったのでこれを機にまとめておく。

JVMの中身

JVMは以下の3つの領域に分けられている。
・New領域
・Old領域
・Permanent領域

ひとつずつまとめていく。

New領域

新しいオブジェクトを格納する領域。
更に以下の3つに分類される
・Eden領域 … オブジェクトのインスタンスがはじめて格納される領域
・From領域 … Scavenge GC時の退避領域
・To領域 … Scavenge GC時の退避領域

Eden領域が一杯になるとScavenge GCが実行される。

Scavenge GC

Eden領域内の不要なオブジェクトは破棄される。
他のオブジェクトから参照されているオブジェクトはTo領域に配置される。
To領域のオブジェクトはFrom領域へ移動する。
From領域のオブジェクトはTo領域へ移動する。
From〜Toを32回移動したオブジェクトはOld領域へ移動する。

Old領域

長期間滞在するオブジェクトが配置される領域。
このOld領域が一杯になるとFull GCが起きる。

Full GC

すべての領域を対象に不要なオブジェクトを破棄する。
大規模で行われるため時間がかかる。
極力生じないことが好ましい。

Permanent領域

ロードされたclassなどが格納される領域。
なのでメモリ使用量は大体J2EEサーバーにロードされるクラスファイルの合計サイズになる。


以下のサイトを参考にさせて頂きました。
http://www.atmarkit.co.jp/ait/articles/0504/02/news005_2.html
http://d.hatena.ne.jp/ogin_s57/20120623/1340463194
http://itdoc.hitachi.co.jp/manuals/link/cosmi_v0950/03Y0440D/EY040159.HTM

【MySQL】MacでMySQLのアンインストールの方法

先日、MacMySQLのアンインストールを行った際の備忘録。

# ローカル環境のMySQL絡みのファイル
$ sudo rm -rf /usr/local/mysql
$ sudo rm -rf /usr/local/mysql-5.1.58-osx10.6-x86_64
# MacパネルなどのMySQL関連
$ sudo rm -rf /Library/StartupItems/MYSQLCOM
$ sudo rm -rf /Library/PreferencePanes/MySQL.prefPane
$ sudo rm -rf /Library/Receipts/mysql-5.1.58-osx10.6-x86_64.pkg

 
 
MySQL絡みのパッケージを探す

pkgutil --pkgs | grep -i mysql

 
すると以下のようなパッケージが出てくる。

・com.mysql.mysql
・com.mysql.mysqlstartapp
 
 
それを一つずつ消していく

$ sudo pkgutil --unlink com.mysql.mysql
$ sudo pkgutil --forget com.mysql.mysql



以下のサイトを参照
Mac(Lion)でMySQLをアンインストールする。 - Make組ブログ(移行して http://blog.hirokiky.org/ にあるよ)

【Ruby】【Sinatra】デプロイ時に'Could not find kgio-2.9.3 in any of the sources (Bundler::GemNotFound)'

デプロイした際に
’Could not find kgio-2.9.3 in any of the sources (Bundler::GemNotFound)’
というエラーが出ていた。

kgio-2.9.3がソースの中に見つからないらしい。(直訳すると)

なのでkgio-2.9.3をインストールしてあげる。

$bundle install

これで再デプロイしたら解決した。

【SSH】SSH接続をサーバーごとに管理する

SSH接続でログインする際に、以前は毎回以下の様なコマンドを叩いていた。

ssh -i ~/.ssh/id_rsa user@host



これがめんどくさくなったのでシェルを作った。

・host-login.command

#!/bin/bash
ssh -i ~/.ssh/id_rsa user@host


これで少し楽になったが、複数あるとその分シェルも増え、管理が面倒臭い。

なので~/.ssh/configを追加し、管理することにした。

・~/.ssh/configを作成

Host hoge
	HostName host
	User user
	IdentityFile ~/.ssh/id_rsa
	port 22

Host hoge2
	HostName host2
	User user2
	IdentityFile ~/.ssh/sercret-key.pem
	port 222

上記の要領でホストを追加していく。


ログインする際のコマンドは

ssh hoge

かなり楽になった。

【Android】テンプレートエンジン"Chunk”を使ってみる

Androidでテンプレートエンジンを使った例があまりなかったので、今回使ってみた。

Gradle

dependencies {
    compile 'com.x5dev:chunk-templates:2.6.+'
}

テンプレート

テンプレートはsrc>main>assets>themesのフォルダに置く必要がある。
拡張子は*.chtmlと決まっている。

>src>main>assets>themes>mail.chtml

{#templete}
Hello {$name}!
{#}

Java

AndroidTemplates templete = new AndroidTemplates(context);
Theme theme = new Theme(templete);
Chunk html = theme.makeChunk("mail#templete");
html.set("name", "Kawabata");
html.toString(); // ->Hello Kawabata!

これだけで使えるのでかなり楽。


メール用のテンプレートにしたり、ハイブリッドアプリのhtmlテンプレートとかにも使える。