とりあえず
95/1000が残ってたけど作れた。既存のダイアリーからの移行とかどうなるのかなー。
phantomjs
今更ながらに軽く触ってみた。
インストールはhomebrewで。
$ brew install phantomjs
Javascriptのコマンドライン実行環境らしい。APIとしては、他のWebkitブラウザと同じJavascript APIに加え、主に以下の2つのが追加されている。
- phantom: 実行環境へアクセスするためのオブジェクト。args, scriptName, exitなどを持つ。
- WebPage: webページをカプセル化したオブジェクト。URL経由でHTMLページを読み込んだり、外部のjsをincludeしたり、イベントを発行したりできる。
ちょっとしたツール作ったりとか、ユニットテストとかに便利そうな感じ。
Androidで画面が出ている時だけ音を鳴らす
ActivityのonResume()とonPause()で制御すれば良いと考えられる。
が、ロックスクリーンが表示されてても音がなってしまって困る。
そんな時はonWindowFocusChanged()を使いましょう。
サンプルではonResume()だけを置き換えているけれど、条件によってはこのメソッドだけでハンドルできないかしら。
サンプルコード
とまあ
だいぶ昔のメモが下書きに眠ってたので公開してみました。懐かしいなあ。
Function::arguments
argumentsは引数リストだと思っていたら、実はオブジェクトらしい。
arrayにそのまま渡したい時に困るのだが、変換できる。
Array.prototype.slice.call(arguments)
https://developer.mozilla.org/en/JavaScript/Reference/functions_and_function_scope/arguments
Function::apply and call
JSのapplyってずっとよくわかってなかったので調べてみた。
schemeの(apply )と同じようなもんと考えて納得。
あるオブジェクトの関数を別のオブジェクトに適用する。
"hoge".slice() //=> "hoge" [].slice.apply("hoge") // => ["h", "o", "g", "e"]
似たメソッドでcallがあるが、引数の取り方が異なる。
Array.prototype.slice.apply("hoge", [3,4]) Array.prototype.slice.call("hoge", 3, 4)
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/apply
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call
JDEEを使ってみる
Android書くときに、Eclipseもいいんだけど、やっぱり手馴れたエディタを使いたいよねってことでJDEEを試してみる。
というわけで、自分用コマンドリファレンス。
インストール
http://jdee.sourceforge.net/
JDEEとelibをダウンロードしてmake install
設定
Android SDK にもパスを通しておく
JDKのバージョンとか場所は適宜。書いてあるのはUbuntu環境でのもの。
;; jdee (add-to-load-path "elib") (add-to-load-path "jdee/lisp") (autoload 'jde-mode "jde" "Java Development Environment for Emacs" t) (setq auto-mode-alist (cons '("\.java$" . jde-mode) auto-mode-alist)) ;; cedet (add-to-load-path "cedet/cogre") (add-to-load-path "cedet/common") (add-to-load-path "cedet/contrib") (add-to-load-path "cedet/ede") (add-to-load-path "cedet/eieio") (add-to-load-path "cedet/semantic") (add-to-load-path "cedet/speedbar") (add-to-load-path "cedet/srecode") (setq semantic-load-turn-useful-things-on t) (load "cedet") ;;(semantic-load-enable-code-helpers) ;; jde-mode-config (custom-set-variables '(jde-jdk-registry (quote (("1.6.0.24" . "/usr/lib/jvm/java-6-sun/")))) '(jde-global-classpath (quote ( "~/lib/android-sdk/platforms/android-4/android.jar" "~/lib/android-sdk/platforms/android-7/android.jar" "~/lib/android-sdk/platforms/android-8/android.jar" "~/lib/android-sdk/platforms/android-10/android.jar" "~/lib/android-sdk/platforms/android-11/android.jar" )))) (add-hook 'jde-mode-hook '(lambda () (c-set-offset 'arglist-intro '+) (c-set-offset 'arglist-close 0) (c-set-offset 'topmost-intro-cont 0) ;; new line on annotation (c-set-offset 'func-decl-cont 0) (setq indent-tabs-mode nil) (setq c-basic-offset 4) (setq c-set-style "java") )) ;; custom variables (setq compilation-window-height 8) (setq bsh-vm-args '("-Duser.language=en")) (setq jde-import-auto-sort t) ;;; ant on jdee (setq jde-build-function '(jde-ant-build)) (setq jde-ant-enabled-find t) (setq jde-ant-program "/usr/bin/ant") (setq jde-ant-read-target t) ;;; check style on jdee (setq jde-checkstyle-option-rcurly (list "alone")) (let ((elem (assq 'encoded-kbd-mode minor-mode-alist))) (when elem (setcar (cdr elem) "")))
コマンドリファレンス
- テンプレート生成
Key | Event |
---|---|
M-x jde-gen-class | クラスのテンプレート生成 |
M-x jde-gen-xxx | テンプレート自動生成 |
M-x jde-gen-get-set or M-x jde-wiz-gen-get-set-method | Getter/Setter 生成 |
M-x jde-wiz-implement-interface | インターフェースの実装ひな形生成 |
C-c C-v C-o | オーバーライドメソッドのひな形生成 (jde-wiz-override-method) |
- コンパイル/デバッグ/ビルド
Key | Event |
---|---|
C-c C-v C-c | コンパイル |
C-c C-v C-r | 実行 |
C-c C-v C-b | antビルド |
C-x ' or M-g n | 次のエラー箇所へジャンプ |
M-g p or M-g M-p | 前のエラーへジャンプ |
C-c C-v C-d | デバッガ起動 |
M-x jde-bug-set-breakpoint | カーソル位置にブレークポイントを設定 |
M-x jde-bug-clear-breakpoint | カーソル位置のブレークポイント解除 |
M-x compile => ant -emacs | build.xmlに従ってビルド |
M-x compile => ant -emacs junit | junitの実行 |
コンパイルエラー表示行でC-m | エラー行へジャンプ |
- Import
Key | Event |
---|---|
C-c C-v z | 必要なimportをすべて追加する (jde-import-all) |
C-c C-v C-z | import文単体の挿入 |
M-x jde-import-kill-extra-imports | 不要なimport文を削除 |
- Edit
Key | Event |
---|---|
C-c C-v C-. | コード補完 (jde-complete) |
C-c C-v C-l | println |
C-c C-v C-y | カーソル位置のクラスのソースを表示 |
C-c C-v C-w | カーソル位置のクラス名のマニュアルを表示 |
C-c C-v j | Javadocコメント生成 |
C-c C-v C-s | Speedbar起動 |
C-c C-v C-n | JDKのドキュメントを表示 |
C-c C-v C-w | クラスのJDKドキュメントを表示 |
C-c . | 編集スタイルの切り替え |
- Othres
Key | Event |
---|---|
M-x jde-chckstyle | checkstyle |
C-c C-v C-f | プロジェクト内のgrep検索 (jde-find) |
M-x jde-find-dig | 実行時に設定可能なgrep検索 |
M-x jde-bsh-exit | BeanShellの終了 |