yattakoto

1日コード書いて、日報書こうと思ったのにやったことを全然覚えていない。
よくある話。

そんなときことバージョン管理のログが役に立つ。

僕はSubversion使ってるので、「今日Subversionで自分がコミットしたログを表示する」ということをやるわけです。
※コミットメッセージをしっかり書いてあることを前提にしてますヨ。

僕はaliasで「yattakoto」コマンドとして使ってます。

おわり。

Pocket

Posted in Subversion.

Grailsでmemcachedを使う

Java用のmemcachedクライアントである「spymemcached」を使います。
Grailsのversionは2.1.2です。

1. spymemcachedのインストール&コンパイル設定

grails-app/conf/BuildConfig.groovy

[groovy]
repositories {

grailsPlugins()
grailsHome()
grailsCentral()

// 下記を追加
mavenRepo ‘http://files.couchbase.com/maven2/’
}

dependencies {

// 下記を追加
compile ‘spy:spymemcached:2.8.9′
}
[/groovy]

2. MemcachedServiceの作成

grails-app/services/MemcachedService.groovy

[groovy]
import net.spy.memcached.AddrUtil
import net.spy.memcached.MemcachedClient
import org.springframework.beans.factory.InitializingBean

class MemcachedService implements InitializingBean {

static final Object NULL = “NULL”
def MemcachedClient memcachedClient

def void afterPropertiesSet() {
memcachedClient = new MemcachedClient(AddrUtil.getAddresses(“localhost:11211″))
}

def get(String key) {
return memcachedClient.get(key)
}

def set(String key, Object value) {
memcachedClient.set(key, 600, value)
}

def delete(String key) {
memcachedClient.delete(key)
}

def clear() {
memcachedClient.flush()
}

def update(key, function) {
def value = function()
if (value == null) value = NULL
set(key, value)
return value
}

def get(key, function) {
def value = get(key)
if (value == null) {
value = update(key, function)
}
return (value == NULL) ? null : value;
}
}
[/groovy]

3. MemcachedServiceの利用

[groovy]
class TopController {

def memcachedService

def index() {

def memcachedKey = ‘top’

def data = memcachedService.get(memcachedKey)

if (data) {
}
else {

data = NULL

// dataをとる処理

memcachedService.set(memcachedKey, data)

}

[
data: data
]

}
}
[/groovy]

4. ファイルのコンパイルと実行

この手順はほとんど下記にのってます。
http://www.ibm.com/developerworks/jp/java/library/j-memcached2.html

「memcached クライアントを Grails アプリケーションに追加する際に最初に行わなければならない作業は、該当する jar ファイルをダウンロードして、そのファイルを contactmanager/lib ディレクトリーにコピーすることです。このサンプル・アプリケーションには memcached の Java クライアントである Spymemcached を使用しているので、この JAR をダウンロードしてください。」

僕はなぜかこの部分がうまくいかず、libにいれても上手くいきませんでした。
※import net.spy.memcached.AddrUtilがNot foundだとエラーでてコンパイルできない症状。

ということで、Stack Overflowで教えてもらいました。
http://stackoverflow.com/questions/14049614/how-to-use-memcached-in-grails

で、Grailsのテストアプリに組み込んだら成功したのでこれでいけるみたいです。

↓テストアプリ
http://service.tnnsst35.me/weddingram/

ブラウザを開くたびにInstagram APIをたたいて写真をとってくる処理をする部分に使って、キャッシュデータがあればAPIをたたかずにキャッシュを表示するという使い方です。

おわり。

Pocket

Posted in Grails.

Sublime Text2を使ってみる

プログラムを書くときのエディタはずっとvimを使ってきたけど、ファイラーに頼らないと辛くなったので評判の良いSublime Textを使ってみようかと思う。
環境はWindows7です。
※vimのファイラー用プラグインは試したけどイマイチなじめませんでした。

1. 公式サイトからダウンロード

僕はSublime Text2をダウンロードしました。versionは2.0.1.です。
http://www.sublimetext.com/2

2. メニューの日本語化

Sublime Text2は日本語版はなくて全て英語です。
メニューの一部を日本語化できるファイルが個人で公開されているので、これを使って少し使いやすくできる。
http://blog.huwy.org/article/292827228.html

メニューバーとコンテキストメニュー用の設定ファイルをDLして、
C:\Users\(ユーザ名)\AppData\Roaming\Sublime Text 2\Packages\Default\ に置く。

3. 日本語のインライン入力対応

Windows版だけの問題だけらしいんだけど、日本語のインライン入力ができない。
@chikatoikeさんが、この症状を直すパッケージを公開しているので入れる。

https://github.com/chikatoike/IMESupport

git cloneするなり、zipで落として解凍するなりして、
C:\Users\(ユーザ名)\AppData\Roaming\Sublime Text 2\Packages\ に置く。

4. パッケージ管理用のパッケージを導入

パッケージを簡単に探せるようになるらしいパッケージ。

以下のサイトにアクセスして、importコマンドをコピペする。
http://wbond.net/sublime_packages/package_control/installation

importコマンド

Sublime TextでCtrl + @を押すとコンソールが開くので、コピペしたコマンドを張り付けて実行する。
「Please restart Sublime Text to finish installation」って表示されるので再起動。

Ctrl + Shift + pを押して、installと入力するとPackage Control: Install Packageが絞りこみできればOK。

5. 好きなパッケージ入れる

あとは自分の使いやすいようにパッケージを入れるらしい。
とりあえず入れたものは以下。

・Theme – Phoenix
- テーマ。Sodaとかいうのもよく使われてるらしい。

・Phix
- カラースキーム。あんま良いのなくて妥協案。

・SublimeLinter
- リアルタイムなLint。でもなんか動かない・・・

・SublimeCodeIntel
- 補完の自動表示。

・SVN (Sublime SVN)
- Subversionクライント。

・SublimeBlockCursor
- vimコマンドモード時にカーソルをブロック型に変更。

・VintageEx
- :を押すとvimっぽく画面下部にコマンド入力欄を表示。

まだまだ便利なのありそうなので都度入れていく。

6. 個人設定

個人的は趣味で言うと、タブはスペース2か4、フォントは「Migu 1M」を愛用している。
こういった個人的な設定を追加する。

メニューバー
Preferences -> [基本設定 - ユーザ]

上記でPreferences.sublime-settingsを開き設定を追加する。
僕のPreferences.sublime-settingsは以下。
※ちなみに設定がJSON形式で書きます。

おわり。

参考
http://dev.classmethod.jp/tool/html-corder-sublime-text-2-customize/
http://qiita.com/items/82a462eaff1a7592bab0
http://blue-ham-cake1024.hatenablog.com/entry/2012/09/07/Sublime_Text_2_%E3%81%AEDefault%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%9C%BA%E3%82%81%E3%82%8B

Pocket

Posted in Sublime Text.