2012年2月24日金曜日

Titanium StudioでAndroid/iPhoneアプリ開発環境を作る

JSで統一できるってところと、Android/iPhoneアプリを同時に作成できる?(作ったことないので)
というところにひかれて環境を作りました。
開発するマシンはMac OS X 10.7.3です。

Xcodeのインストール

  • App Storeからインストール。説明は省略します。

Android SDKのインストール

  • ここから自分の環境にあったものをダウンロード
  • android-sdk_r16-macosx.zipをダウンロードしました。
  • 解凍して自分の管理しやすい場所(私は、~/android-sdk)に置いたら、以下実行。

~/android-sdk/tools/android

  • インストールしたいパッケージにチェックをつけてインストールする


※android4.0の開発したかったのですが、4.0だけ入れてもTitanium Studioの設定で、
Android SDKディレクトリを選択しても認識してもらえませんでした。
なので、Androdi2.2(API8)もここでインストールしときます。

起動後の画面(パッケージインストール後の画面)



















Titanium Studioのインストール
  • ここから自分の環境にあったものをダウンロード
  • インストールはここを参考にしました。
  • インストール後、起動すると以下のような画面になります。






















  • 設定については、ここを参考にしました。
  • 4.0の開発したかったので、Androidのバージョンは4.0.3を選択してます。
  • 設定画面は以下のような感じです。





















プロジェクトの作成とエミュレータ起動テスト

  • プロジェクトの作成もここを参考にしました。
  • プロジェクト作成後、プロジェクト名を右クリックで「Run As」からエミュレータを選択




iPhone/Androidのエミューレータ起動後

iPhomeエミュレータ起動時の画面



Androidエミュレータ起動画面



開発等はこれから。




2012年2月14日火曜日

macのterminalでtmux使うとスクロールで戻れない

ubuntuと同じ設定をmacでも使っているのですが、
tmux使ったときにマウスでスクロールして戻ろうとすると履歴が消えている。。。
刺身さんのサイトが参考になりました。
ターミナルの問題とは思っていなかったです。


set -g terminal-overrides 'xterm*:smcup@:rmcup@'
順を追ってやっていきましたが、この設定は必須ですね。
これで元の状態に戻った。

2012年2月2日木曜日

インフラエンジニアのMacBookAir 11 その4

最低限のアプリはインストールできたので、設定周りを中心に書いていきます。

まず、やっておかないといけないのが、ターミナルのログ取得
Macのデフォルトのターミナルもそうですが、
iTerm2なんかでもログの取得がデフォルトでない。。。
まあ、Macを普通に使う人は必要ないですもんね。

以前、ubuntuでやっているときは、zshrcに
alias ssh='~/scripts/sh/ssh_wrapper.sh'
として、シェルの中で、screen使ってssh接続のみログをとってました。
こんな感じで。
screen -q -c "ssh -l user $HOST" $LOG
これをそのまま流用しようとしたのですが、OSXのscreenコマンドには"-c"オプションがないようで使えませんでした。

色々試して、ターミナルの環境設定の中の起動時にシェルを実行する部分に、
screenのコマンドを入れたスクリプトを設定して、
ターミナル起動時からの ログをすべて取ることにしました。
シェルの内容は以下の通りです。

#!/bin/sh
DATE=$(date +'%Y%m')
DATETIME=$(date +'%Y%m%d_%H%M%S')
LOG_DIR=${HOME}/.ssh_log/${DATE}
LOG_FILE=${LOG_DIR}/${DATETIME}.log 
[ ! -d ${LOG_DIR} ] && mkdir -p ${LOG_DIR}
settitle ${HOST}
script ${LOG_FILE}

スマートではないのですが、とりあえず、これでログの取得はできるので、
一旦これでスタートしようと思ってます。いい方法があれば改善していこうと思います。


次に、tmuxの設定とtmuxのコピー&ペーストについて

デフォの状態では、tmuxからpbcopyが使用できないのが問題で(たぶん)、
vimでのヤンク時や通常のコピー(command + c)時にクリップボードに入ってこない。
なので、ブラウザとかで調べ物するときとか、貼り付けることができない。
ここを参考に設定を行う。

過去にこのブログでも書いていて、
それみてやったけど、「date | pbcopy」やってもうまくいなかい。
USBのLANが認識しなかったので、あきらめて再起動した後に再度試したらうまくいった。
やりかたに問題はなかったみたい。
ターミナルを正常に終了させないといけなかったのか、そもそも再起動が必要だったのか不明。

私のtmuxの設定は以下のような感じです。

# prefix key 設定
unbind C-b
set-option -g prefix C-t
bind C-t send-prefix
 
# 256 color
set-option -g default-terminal screen-256color
 
# 日本語環境なら今のところ必須。
set-window-option -g utf8 on
 
# clipbordへのコピー&ペースト
set-option -g default-command "reattach-to-user-namespace -l zsh"
bind C-q run-shell 'reattach-to-user-namespace tmux-pbcopy'
 
# vi mode
set-window-option -g mode-keys vi
 
# ウィンドウ名が自動的に更新されないように
set-window-option -g automatic-rename off
 
# 保持するhistoryの行数
set-option -g history-limit 20000
 
# color関連
set -g status-fg white
set -g status-bg blue
set -g status-left '#[fg=white,bg=blue]#H#[fg=white]:#[fg=white][#S#[fg=white]][#[blue]'
setw -g window-status-current-fg white
setw -g window-status-current-bg blue
setw -g window-status-current-attr bold#,underscore
set -g pane-active-border-fg white
set -g pane-active-border-bg blue

今日はこのへんで。

2012年2月1日水曜日

インフラエンジニアのMacBookAir 11 その3

今日は、設定周りをちょこちょこと。

設定
・vim
 ・vimは、NeoBundleでモジュールを管理してます。
 ・NeoBundleのインストール
  ・mkdir ~/.bundle && cd ~/.bundle && git clone git://github.com/Shougo/neobundle.vim.git
 ・NeoBundleの設定。vimrcに記述します。

set nocompatible
filetype off


set rtp+=~/.bundle/neobundle.vim


if has('vim_starting')
  set runtimepath+='~/.bundle/neobundle.vim'
  call neobundle#rc(expand('~/.bundle'))
endif

 ・モジュールのインストール
  ・インストールしたいモジュール以下のような形式で.vimrcに記述します。
  ・記述して保存したら、vimを開いて「:NeoBundleInstall」を実行します。
  ・これでモジュールのインストールは終了です。各モジュールの設定は別途。
"NeoBundle
NeoBundle 'git://github.com/Shougo/clang_complete.git'
NeoBundle 'git://github.com/Shougo/echodoc.git'
NeoBundle 'git://github.com/Shougo/neocomplcache.git'
NeoBundle 'git://github.com/Shougo/neobundle.vim.git'
NeoBundle 'git://github.com/Shougo/unite.vim.git'
NeoBundle 'git://github.com/Shougo/vim-vcs.git'
NeoBundle 'git://github.com/Shougo/vimfiler.git'
NeoBundle 'git://github.com/Shougo/vimshell.git'
NeoBundle 'git://github.com/Shougo/vinarise.git'
" add
NeoBundle 'http://vimdoc-ja.googlecode.com/svn/trunk/runtime'
NeoBundle 'https://github.com/kana/vim-smartchr.git'
NeoBundle 'https://github.com/thinca/vim-quickrun.git'
NeoBundle 'Align'
NeoBundle 'git://github.com/Lokaltog/vim-powerline.git'
NeoBundle 'https://github.com/fuenor/qfixhowm.git'
NeoBundle 'git://github.com/plasticboy/vim-markdown.git'
NeoBundle 'git://github.com/kchmck/vim-coffee-script.git'
インストールアプリ
 ・skype
 ・FileZilla(FTPソフト)

開発環境
 ・pip(pythonのパッケージ管理システム)
  ・sudo easy_install pip
 ・fabric(pythonで作られたデプロイツール)
  ・pip install Fabric
  ・設定については、環境によって異なるとは思いますが、私の設定は以下の感じです。
  ・対象ホストをテキストファイルで別途管理してます。
from fabric.api import run, env, sudo
hostlist = []
for list in open('host.txt', 'r'):
   hostlist.append(list) 
env.user = "xxxxx"
env.hosts = hostlist
env.password = "xxxxxxxxx"

def hw():
    print("Hello World!")
    run('hostname') 
def change_ldap_conf(): 
    run('sed -e \'s/host  192.168.0.2/host 192.168.100.2 192.168.101.2/g\' /etc/ldap.conf')

  ・ 使い方
   ・登録している関数名の確認
  fab -l 
・実行
  fab hw

余談
・初日に書いた、MacBookAirでのコンソール接続について
 今日、DC作業で実際に試せる機会があったので、試したところ問題なく使用できました。

・接続の方法
 ・デバイスを探して、screenでコンソールに接続する。至ってシンプル
 ls -l /dev/tty.*
screen /dev/tty.usbserial-FTAJLZRV

 ・特にscreenの設定をしていなかったので、ログが切れっちゃったのが残念でした
 ・screenの設定してログ切れないようにすれば問題なく使えますね!



インフラエンジニアのMacBookAir 11 その2

昨日に引き続きです。


設定変更
・hostname
・sudo hostname tshpaper
・「システム環境設定」- 「共有」- 「コンピュータ名」を変更


インストールアプリ
・OpenVPNクライアントソフト
tunnelblick
・remote desktop
MicroSoftが出しているものを使用
・IRC Client
LimeChat for Mac


開発環境
・tmuxのインストール
brew install tmux
・tmux.confも別途記載したいと思います。

あまり進みが良くない。。。
明日も引き続き。少しでも前に進めばOKってことで。

2012年1月31日火曜日

インフラエンジニアのMacBookAir 11 その1

会社で使用しているPCをThinkPadx201からMacBookAir 11インチに変えました。
今まさに移行の真っ最中。
とはいっても仕事と並行してなので、1週間くらいはかかると思ってます。

せっかくなので、備忘録として、インストールアプリや開発環境等を
まとめていきたいと思います。

とりあえず、初日にやったことは以下のとおり

設定変更
 ・firewallを有効にする
 ・トラックパッドの設定を変更
  ・「スクロール方向:ナチュラル」のチェックを外す
 ・セキュリティ周りのソフト入れたら、「ソフトウェア・アップデート」
 ・入力変換を「Control + Space」でできるように設定を変更
  ・「キーボード」-「キーボードショートカット」-「キーボードと文字入力」-「前の入力ソースを選択」の設定を「Control + Space」に変更。ubuntuのなごりです。。。
 ・デフォルトのシェルをzshに変更
  ・別途zshの設定等は書こうと思います。

インストールアプリ
 ・セキュリティ周りのソフト(会社で規定されているもの)
 ・QuickSilver
 ・Chrome
 ・Google日本語入力(本当はATOKが良かったんだけどな。。。)
 ・シリアルコンソール用のドライバ
  ・http://www.ftdichip.com/Drivers/VCP.htm
  ・物理的なもの自体は、iBUFFALO Arvel USBシリアルケーブル 1M グラファイト カラー SRC06USB
  ・使用した感想はまた後ほど。

開発環境
 ・Xcode4インストール
 ・brewのインストール
  ・/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
 ・vim 7.3のインストール
  ・デフォのものは、python, rubyが有効になっていないので、brewからインストール
  ・brew install https://gist.github.com/raw/1027452/7e41f7c5ce2683c3a0ecd2a4ff6cedd7e99a24c5/vim.rb --enable-interp=python,ruby
  ・vimrcの設定は別途zshあたりと一緒にでも書こうと思います。


とりあえず、初日はこんなところで。

2012年1月23日月曜日

coffeescriptでexpressのsampleを書く




  • coffeescript
express = require 'express' 
app = express.createServer()


app.get '/', (req, res) -> 
    res.send 'Hello World'


app.listen 3000



  • 変換後のjs
var app, express;


express = require('express');


app = express.createServer();


app.get('/', function(req, res) { 
    return res.send('Hello World'); 
});


app.listen(3000);

  • nodeで実行
       node app.js


ブラウザでhttp://127.0.0.1:3000にアクセスすると、
「Hello World」が表示されました。

次回は、coffeescritp + expressでldapの管理ツールを作りたいと思います。

[2012-01-23 08:45]


2012年1月20日金曜日

node.jsのsampleをcoffeescriptで書いてみる




  • coffeescript
http = require 'http'
httpd = http.createServer (req, res) ->
res.writeHead 200, 'Content-Type': 'text/plain'
res.end 'Hellow World'
httpd.listen 1377, '127.0.0.1'



console.log 'Server running at http://127.0.0.1:1377/'

  • quickrunの結果

2012年1月17日火曜日

htmlをopen-browser.vimでブラウザで表示する

quickrunでhtmlの結果をブラウザで確認したいのですが、
スマートに記述できないくて困ってます。

とりあえず、以下の方法を取ってますが、
たぶん他にいい方法があるはず。


  • quickrunの設定

2012年1月13日金曜日

dnscacheの input/output errorエラー

sshのログインが遅い。。。
この問題の調査に時間がかかったので、備忘録。

状況



  • sshのログインに時間がかかる

  • sshのログインは、ldap経由で行っている

  • resolv.confの設定は、127.0.0.1で、localの53portは、dnscacheが待ち受けている

  • 同じ環境の別のサーバへのログインは早い

  • NWのレンジは同じ

coffeekupでhtmlの補完を有効にする

.kupの拡張子でquickrunでcoffeekupを使うことができたんですが、
filetypeの指定をkupにしていたので、htmlの補完ができない状態でした。
補完効いた方が便利なので、以下のように設定を変更したところうまくいきました。

neocomplcacheの動き


2012年1月11日水曜日

QFixHowmをmarkdownに対応させて、bloggerへ投稿する



TODOやメモとしてQFixHowmを使っているのですが、
blogもQFixHowmで管理して、blogger.vimでblogへ投稿しようというのが目的です。

QFixHowmのインストールと設定


  • QFixHowmのインストールについては、こちらを参考にしてください。
  • markdownに対応させる設定については、こちらを参考にしてください。

markdownで書いた内容をブラウザで確認するため、以下の設定をvimrcに設定