よく打つunixコマンド
参考:http://rider.withgod.jp/blog/2010/04/06_165925/
5548 git
4731 ls
3181 sudo
2444 cd
1204 ssh
1203 ruby
952 aptituden
920 cat
804 less
724 man
676 vi
602 mplayer
567 gem
559 rm
424 find
417 emacs
391 xmms2
370 ps
369 rsync
356 irb
macなのにaptitudeが上位にいるのは過去の遺産を引き継いでいるから。
僕はgit statusをlsのようにうってしまうので、この結果には納得かな。
lvよりlessをつかってしまうのは癖みたいなものです。
emacsはMacでもLinuxでもキーに割り当ててるのでviより少ないのだと思います。
auto-complete.elを使ってphpキーワードと関数を補完
auto-compele v1.2より辞書ファイルを作成することで補完候補を追加できるようなっています。
phpのコードを書く機会があり、php-modeを補完が遅くて使い物にならなかったので、キーワードのリストを用意して使っていました。
今回、せっかくなので辞書ファイルにおとしてみたので gist においています。phpを普段つかわないので、もっとよいものがあるかもしれません。(よいのがあれば教えてください。)
dictの設定をしていれば、php-modeのファイルを書き換えるだけで特に何もしなくても使えると思います。
参考というかこれをみてついでに公開しておこうと思いました。
auto-complete.elを使ってCocoaキーワードを補完する - Watsonのメモ
バージョン違いのRubyをインストールする方法について整理してみる
現状のRubyは1.9系と1.8系をいれておかないといけないような気がするけどどのように管理するのがよいのだろうか。
僕が知る限りの方法では以下のとおりでしょうか。
- パッケージマネージャに任せる
- rvmを使う
- Zentestのmultirubyを使う。
- サフィックスをつける
- インストールする場所を変える
パッケージマネージャにまかせる。
aptやらyumやらmac portsやらはrubyパッケージとは別にruby1.9とかruby19などのパッケージが用意されているのでこれを使う方法。楽なのだけれどもバージョンが少し古かったりする。
Ubuntuだと以下のような感じでインストールします。
$ sudo apt-get install ruby1.9.1
rvmをつかう
今一番モダンな方法なのでしょうか?
http://rvm.beginrescueend.com/
jrubyなんかも使えて良い感じ。。僕が使ってみた限りではなんだか起動が遅くなってしまった(irbとrspecを使用していると結構気になる)。OSX付属のrubyが遅いのが原因のような気がしていますが詳しくは調べていません。
$ rvm use 1.9.1
とするだけで切り替えられるのは良い感じです。
ZenTestのmultirubyを使う。
ZenTestについてくるmultirubyを使います。テスト目的なら有用な選択肢で、一つのコマンドでインストール済みのすべてのruby実行してくれます。
サフィックスをつける
パッケージ管理でやっている手法を自分でやる感じです。Rubyを自分でコンパイルすることになります。configure をするときに --program-suffix=1.9.1 のようにします。
個人的にはgemでインストールされる実行スクリプトが上書きされてしまうのが気になりますが、些末な問題かもしれません。(rspecをインストールしたときに作成されるspecとか)
XcodeでGit
このページの情報は古いです。
最新はこちらに。
.gitignore on Xcode4 - そんなこと覚えてるわけがない。
以下から拝借した。
Xcodeのテンプレートにしてもいいけど、どうせコマンド操作するのでシェルスクリプトで生成することにした。
#!/bin/sh cat <<EOF > .gitignore # xcode noise build/* *.pbxuser *.mode1v3 # old skool .svn # osx noise .DS_Store profile EOF cat <<EOF > .gitattributes *.pbxproj -crlf -diff -merge EOF
~/binあたりにおいてPATHを設定して実行権限を付加した。
Android試してみた。
前からAndroidやるやる!っていってたのに放置してたのでいいかげんはじめることにしました。とりあえず、eclipseを使わずにがんばっていきたいと思います。
特に本などで勉強してるわけではないので間違ったことを書いているかもしれませんのでご了承ください。
前準備
antを使用するのでインストールしておきましょう。
今回の内容
AndroidSDKのインストール
http://developer.android.com/intl/ja/sdk/index.html
あたりからダウンロードする。
適当なところに展開して環境変数PATHを設定します。僕は~/local/におきました。
環境変数PATHを設定します。
僕の例では ~/local/android-sdk-mac/tools を追加しました。
ここは環境依存なので省略します。
SDK Platform Android2.0のインストール
よくわからないけど2.0を選びました。全部いれちゃってもいいのかもしれません。
環境変数PATHの設定がうまくいっていれば以下のコマンドでAVD Managerが起動できます。
$ android
Available Packagesから選択するのですが、httpsでは上手く通信できなかったので、Settingsで Force https://...sour (中略) にチェックをいれました。
すでにみえなくなってますが、SDK Platform Androi 2.0 API 5, revision 1にチェックをいれてinstallします。
サンプルプロジェクトの作成とビルド
以下のコマンドで雛形を作ることができます。
android create project \
--target 1 \
--path ./myProject \
--activity MyActivity \
--package com.example.myproject
--targetに指定する値は ID で以下の方法で確認できます。
$ android list targets
Available Android targets:
id: 1 or "android-5"
Name: Android 2.0
Type: Platform
API level: 5
Revision: 1
Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
あとは作成したディレクトリに移動して、ビルドします。
$ cd myProject
$ ant debug
リリースビルド配布する場合は署名の鍵づくりとか必要な気がしますがよくしらべていません。ビルドに成功すると bin ディレクトリに MyActivity-debug.apk というファイルが作成されます。
AVD(Android Vitual Device)の作成
エミュレートとする仮想デバイス(表現がまちがてるかも)を作成します。--targetの指定はプロジェクト作成時と同じです。nameは適当にsimpleにしてみました。
android create avd --name simple --target 1
PHP on GAEを試してみた。
Google App EngineでPHPを動かす。
いろいろ調べて時間はかかったけど最終的にはすごくシンプルになった。
quercus自体がGAEに対応するために修正が入ったんだと思います。
作業内容
appengine-java-SDKをインストール
以下を参照
http://code.google.com/intl/ja/appengine/downloads.html
環境変数 PATH を設定してあるとします。
プロジェクトの作成
プロジェクト用のディレクトリを作ります。
helloにしておきます。
$ mkdir -p hello/WEB-INF/lib
- quercusとjettyを配置
以下のサイトからダウンロードしてきます。
http://quercus.caucho.com/
http://dist.codehaus.org/jetty/jetty-6.1.17/
libにはいってる.jarファイルをhello/WEB-INF/libに配置します。
mkdirしたディレクトリにダウンロードしているとすると、
$ unzip jetty*.zip
$ unzip quercus-*.war -d querocus
$ cp jetty-*/lib/*.jar hello/WEB-INF/lib/
$ cp querocus/lib/*.jar hello/WEB-INF/lib/
と、いった感じになります。
web.xmlとかappengineとかを作ります。
- hello/WEB-INF/web.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <description>...</description> <servlet> <servlet-name>Quercus Servlet</servlet-name> <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class> <init-param> <param-name>script-encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ini-file</param-name> <param-value>WEB-INF/php.ini</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Quercus Servlet</servlet-name> <url-pattern>*.php</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/index.php</welcome-file> </welcome-file-list> </web-app>
- hello/WEB-INF/appengine-web.xml
<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>...</application> <version>1</version> <static-files> <exclude path="/**.php" /> </static-files> <resource-files> <include path="/**.php" /> </resource-files> </appengine-web-app>
- hello/WEB-INF/index.php
<?php echo("hello, world"); ?>
web.xmlやappengine詳細はこのあたりに。
http://code.google.com/intl/ja/appengine/docs/java/config/webxml.html
http://code.google.com/intl/ja/appengine/docs/java/config/appconfig.html
ディレクトリ構成は以下のようになっているはずです。
$ find hello
hello
hello/index.php
hello/WEB-INF
hello/WEB-INF/appengine-web.xml
hello/WEB-INF/index.php
hello/WEB-INF/lib
hello/WEB-INF/lib/inject-16.jar
hello/WEB-INF/lib/javamail-141.jar
hello/WEB-INF/lib/jetty-6.1.17.jar
hello/WEB-INF/lib/jetty-util-6.1.17.jar
hello/WEB-INF/lib/resin.jar
hello/WEB-INF/lib/servlet-api-2.5-20081211.jar
hello/WEB-INF/web.xml
テストサーバの起動
$ dev_appserver.sh hello
あとはブラウザで
http://localhost:8080/index.php
にアクセス
サーバ起動字に文字化けするなら
export _JAVA_OPTIONS=-Duser.language=en
あたりを実行しておきましょう。
サーバーは再起動せずにindex.phpを編集しても、編集内容が反映されるようです。
デプロイはappenigen-web.xmlに取得したID書いて、
$ appcfg.sh update hello
とするだけです。(メアドとパスワードを要求されます。)
PHPはほとんどわからないので、これ以上深入りしませんが、
データベースまわりなどは一筋縄ではいかないかもしれません。
quercusのサイト内を検索すれば少しですが情報があるようです。
Macをgitの共有リポジトリにする。
bash: command not found: git-upload-pack fatal: The remote end hung up unexpectedly
のように失敗した。
Mac を git の共有レポジトリにする -- BONNOH FRACTION 14
command not found: git-upload-pack - ひこにっき - tenmonグループ
と、同じ現象みたい。
環境変数PATHの設定がうまくできてないだけみたいなので、
ln -s ~/.profile ~/.bashrc
と、してやったら動くようになった。