【Chef】MacにChefをインストールしてみる
Macに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のアンインストールの方法
先日、MacでMySQLのアンインストールを行った際の備忘録。
# ローカル環境の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テンプレートとかにも使える。