2013-02-06
■JavaScript を Terminal で実行できるようにする。

これから頻繁に JavaScript を書くことになりそうなので、V8 JavaScript Engine をセットアップして Terminal 上でJavaScript が実行できるようにしてみた。
svn checkout http://v8.googlecode.com/svn/trunk/ v8-read-only cd v8-read-only/ make dependencies make cd out/ia32.release/ sudo install -m 755 d8 /usr/local/bin
ビルドには結構時間(30分以上頑張っていた)がかかったけれど、Terminal 上で d8 を叩くと JavaScript が実行できるようになりました。
2013-02-04
■Qiita × Github ハッカソンに行ってきた

KAuth通ったので 2月2日に Qiita 2-day Hackathon に行きます! - qiitahackathon03.peatix.com @peatixさんから
— いわまりょうさん (@happy_ryo) 2013年1月31日2月2日から3日にかけて行ってきました。
うちの会社から3名参加していて、ぼく以外の2人はチームを組んでいたのに、ぼくだけひとりぼっちでの参加でした。
2人が作っていた物のプレゼンを見ながら、「あれの iPhone クライアントをぼくに作らせてくれれば良かったのでは…」と思いながら、陰鬱とした気分で過ごしたりもしました。
テーマは 「GitHub APIを使った開発」+ プログラマの問題を解決するサービス でした。
あれ?もしかして、iPhone アプリってサービスじゃ無いからテーマと合ってなくね?という疑問は一瞬感じた物の
最近寝ても覚めても Objective-C ばかり書いてる自分が他の言語で26時間しか無いハッカソンを生き抜けるとは思えなかったので
大人しく iPhone アプリを作る事に。
Github API にはちゃんとしたドキュメントがあって、開発者のコミュニティだけあって良い感じだなーと思いながら
公式で紹介されていた cocoa 用のライブラリを試しに使って見たのですが、どうもそのライブラリはBasic認証にしか対応してないみたいで
自分のリポジトリの一覧取得すらできないという……。
認証とか面倒な部分を自分で書きたくないので、どこかに何か落ちてないか色々探して
片っ端から試して見たのですが、ちゃんと動く物には出会えず、結局自分でライブラリを書き始める始末。
今回のハッカソンは期間が二日間だったので、会場に泊まっても良かったのですが
もうそろそろ30歳だし、「お願い!ランキング」のスペシャル録画したのも見たかったし、「泣くな、はらちゃん」の録画も見たかったので
初日は退館可能時間ギリギリに会場を出て、一旦家に帰りました。
やっぱり、パートリーダーは矢東薫子だと思うんですね。 #ntv #泣くなハラちゃん
— いわまりょうさん (@happy_ryo) 2013年1月26日2日目、なんとか認証も出来るようになって、いざアプリ開発と行きたいところだったのですが
気づけばライブラリを作るのに夢中で、2日目の中盤を過ぎても
何をするのか全く決まっておらず「これはもうダメかもわからんね」という状態
「どうして自分は、スタートラインに立つのにこんなに苦労しているんだ……」
という気持ちになり、Github のライブラリは幾つかあれど、OAuth認証に対応した物が見つけられなくて
最終的に「自分で書く」という時間のロスが発生したのが問題だよなぁ……という所に辿り着きました。
幸い今回のテーマが問題の解決だったので、この問題をどうすれば解決出来たのか?と考えてみました。
1.今よりも過去に問題を解決出来るライブラリに出会えていれば良かった(使えるのが存在してるかもしれない)
2.微妙に要件を満たせないライブラリを事前に見つけてフォークしてプルリクエストしておけば良かった(OAuth対応に自分がしてしまえば良かった)
3.将来的に使いそうな要件のライブラリの動向を掴んでおけば良かった(試すまでも無くダメだとわかった)
ということで、リアルに彼女を作るためのプロダクトを作っているチームが幾つかある中
自分に必要なリポジトリに出会うためのアプリを作ってみました。
機能リスト
1.Github ログインを行いアクセストークンを取得できる
2.自身が Github 上に持っているリポジトリの言語(Objective-C等)の「新しく作られたリポジトリの一覧」を見ることができる
3.良い感じのリポジトリを見つけたら、リポジトリに対してフォーク、フォロー、スター等を実行できる
4.リポジトリの Description 等の詳細情報を見ることができる
新しく作られたリポジトリに絞ったのは、長く開発されているリポジトリは
こんなアプリを使わずとも検索すると簡単に引っかかってくるし
新しく作られたリポジトリの方が、ソースコードに介入するときの参入障壁が低い…等々。
そんなこんなで、なんとか動いてるっぽく見せられる物を作って
プレゼンのトリを勤めさせて頂きました、40組のプレゼンを聞ききった皆様の前でのプレゼンは
もう、なんとも言えない感じでした。
それでも、終わった後のビールは美味しかったし、ひとりぼっちプログラマというブランディングで色んな人と話すことが出来て
今回のハッカソンもとても楽しく終えることが出来ました。
Qiitaのハッカソンはテーマが当日発表だったり、参加者の投票で順位が決まったりと
ぼくの好きな感じの形態なので、今後も参加したいと思います。
Qiitaのアカウントはこちら:http://qiita.com/users/happy_ryo
なんとなく役に立つかもしれないこと:
認証はアプリをURLスキームで起動できるようにしてから一旦純正のSafariに飛ばし、認証後のコールバックでアプリに戻ってくるようにした。
パラメータにaccess_tokenの発行に必要なcodeがついてくるのでそれを利用してトークンを取得する。
新しいリポジトリの一覧を取得するAPIは存在しない(リポジトリ取得APIにソート機能などが無い)ので
https://github.com/languages/Objective-C/created 各言語のこのページからゴニョゴニョした。
このアプリを使ったとしても、問題が解決されるかどうかは
結局自分自身が書くか、誰かが書き切ってくれることを祈るしか無い。
2013-01-31
■ぼくの働いている会社で一緒に働いてくれるメンバーを探しています。

タイトルの通り、ぼくが働いているアライドアーキテクツ株式会社では一緒に働くメンバーを募集しています。
営業さんと、エンジニア・デザイナー・ディレクターなんかをあわせると、大体100人くらいの会社で
主な事業内容は、ソーシャルメディア上でのマーケティングを支援するMONIPLAというBtoCWebサービスの提供です。結構色んな所で使われてるっぽいです。
その他は、受託でのHP制作なんかもしてます。
(エンジニアは20人くらい居ます)
MONIPLA for Facebook : http://fbapp.monipla.jp/
MONIPLA : http://monipla.jp/
MONIPLA for Twitter : http://monipla.com/
受託HP実績 : http://www.aafactory.jp/
ということで、募集要項はこちら。
エンジニア:https://recruit.aainc.co.jp/engineer/entry/guide.html
インフラエンジニア:https://recruit.aainc.co.jp/engineer/entry/infra_engineer.html
主な開発言語はPHP・JavaScriptです。フレームワークは自社製の物を使っています。
働きやすい環境だと思います。
営業も、デザイナーも、ディレクターも、エンジニアも社内に居ます。
最近SVNからGitへの移行をしたり、勉強会開いてみたり、Backlog使って見たり色々しています。
Mac使うかWindows使うかは自分で選べます。
IntelliJとか開発で使う環境買ってもらえます。
自分の机に葉っぱを装着しても、怒られませんでした。
ということで、興味の有る方は別に面接とかじゃ無くて良いので iwama.ryo.0731あっとまーくgmail.com までご連絡ください。
Webディレクターも募集中です。
Webディレクター:http://recruit.aainc.co.jp/entry/career/director.html
2011-12-22
■[iPhone][objective-c][appCode]AppCodeを使う時知っていると幸せになれそうな事 多分その1

AppCodeを使う時に、知っていたり、設定してあると幸せになれる事を幾つかまとめました、他にも色々あると思うけど、ぼくが幸せなヤツを。
設定画面は、Macではおきまりの「cmd+,」で開く事が出来ます。
左上のテキストボックスに適当な単語を入れて検索することが出来るので活用しましょう、左側の項目が絞られるだけではなく、左側の詳細画面も検索語句に引っかかる部分だけがハイライトされて表示されるので迷いません。
行番号を表示する
基本ですね。AppCodeではデフォルトではOffになっているのでOnにしましょう。
設定画面を開いて「line number」で検索してから、Editor→Appearanceと選択すれば、ハイライトされている該当項目が見つけられると思います。
インクリメンタルサーチにショートカットを割り当てる
インクリメンタルサーチが無いと、生命の危機を感じることがありませんか?ぼくはありませんけど、Keymapから設定することが出来るので好みのキーに割り当てましょう。
Keymapの画面で、テキストボックスに「Incremental search」と入れるとフィルタリングをかけることが出来ます。
フィルタリング後
操作名をダブルクリック
キーを入力して設定する
インクリメンタルサーチ
インクリメンタルサーチはこんな感じ、普通の検索と何が違うの?と思われるかも知れませんが、任意の場所に移動した後そのまま作業できる、という点が通常の検索と異なります。
普通の検索(cmd+f)は、正規表現を使いたい時何かに便利です。
デバッガ
Xcodeのデバッガよりも見やすくて楽だと思っています。ブレイクポイントの設定に関してはXcodeとたいして変わりません。
詳しく書こうと思ったけど今回は心が折れました。今度書きます。
Live Templates
よくあるアレです。
allocって入れてTabを叩くと.[.[ alloc] init]に展開されたりします(「.」は入りません)。設定画面の同名の項目内でデフォルトで登録されている物を確認する事が出来ます。自分でテンプレートを登録することも可能です、テンプレートエディット機能は強力で、細かい設定が可能です。
Xcodeのファイルテンプレートが使える
File→Newのメニューの中にFile from Xcode Templateという項目があるのでそれを選択すると、テンプレート選択のウィンドウが開きます。
各種ショートカットキー
補完 < Ctrl+space >
言わずと知れたアレです
クイックフィックス < Alt+enter >
警告が出たところでは取りあえずこれを押す
自動生成 < cmd+N >
オーバーライド < Ctrl+O >
オーバーライドするメソッドを選択するウィンドウを開きます。開いたウィンドウ内ではインクリメンタルサーチでメソッドを検索する事が出来ます。
Implement < Ctrl+I >
プロトコルに定義されているメソッドを表示・選択するウィンドウが開きます。主な操作は、オーバーライドメソッドのウィンドウと同一です。
クラス名指定での移動 < cmd+O >
クラス名を指定して移動することが出来ます。Shiftを加えるとファイル名を指定しての移動が可能になります。
クラスのドキュメントを開く < Ctrl+J >
ドキュメントのあるクラスであれば、このショートカットでドキュメントを開くことが出来ます。
リネーム < Shift+F6 >
変数名とか変えるアレです。
メソッドのSignatureを変更する < cmd+F6 >
コメントアウト < cmd+/ >
選択されているラインをコメントアウトします。
実行 < Ctrl+R >
作成中のアプリケーションを実行します。
デバッグ < Ctrl+D >
作成中のアプリケーションをデバッグ実行します。F8でステップオーバーします。
宣言に移動 < cmd+B >
キャレットのある位置のクラスやメソッドの宣言された場所へ移動します。
バージョン管理系 < Ctrl+V >
ウィンドウ移動系 < Ctrl+←→ > or < Ctrl+Tab > or < cmd+1~7・9 >
試してみてください。
行番号指定移動 < cmd+L >
名前の通りです。
メソッド単位での移動 < Ctrl+↑↓ >
メソッド単位で移動できます。
操作名を指定して実行 < Shift+cmd+A >
やりたいことを入力すると実行できるウィンドウが開きます。ショートカットが割り振られている操作は、操作名とあわせてショートカットキーも表示されるので便利です。最悪これだけ知っていれば、何となくやりたいことを入力してみると何とかなります。
どんなIDEも、はじめは覚えることが多いですね。
時間があればAppCodeのチュートリアルとか、使い方とか書いてみたいけど、圧倒的に時間が足りない。
いや、速さが足りない。
2011-12-11
■[iPhone][objective-c][appCode]XCodeからappCodeへ乗り換える8つの理由

以前、タイトルに「(数字)の理由」とか入れるとブクマが伸びると教えられましたが嘘だと思っています、happy_ryoです。
このエントリはiOS Advent Calendar 2011の11日目です。
昨日は、@watermint さんのエントリでした。
appCodeはJetBrains社が開発した、XCodeの代替IDEです。 InterfaceBuilderに対応する機能は無いので、その部分はXCode4を利用する必要があります。(JetBrainsの製品では他にIntelliJ IDEAが有名ですね。)
それでは、末広がりという事で8つの理由、はじめます。
コード補完が強力
XCodeのコード補完を「残念だ」と思ったことはありませんか? プロパティとメソッドの順番はバラバラ…。自分が定義したプロパティ/メソッドなのか、親クラスが元々持っていた物なのか…。appCodeを使えばそんな悩みとはおさらばです。コード補完を実行すると自分の定義したプロパティ→自分の定義したメソッド→親が持つプロパティ→親が持つメソッドと表示されて、迷うことがありません。
「キャメルケース補完が使えればどれだけ生産性が上がろうだろう…。」と思ったことはありませんか?appCodeなら当然キャメルケース補完が使えます、これでメソッド名を上手く思い出せなくても大丈夫です。

[]を書かなくて良い!
XCodeでを書く時、辛くありませんか?辛いですよね。ぼくは、この仕様を考えた人に、どうしてこの仕様にしたのかを日本語で小一時間説明して欲しいです。appCodeならその辛さを味わうことはありません、コード補完を確定した時点で必要な分だけが挿入されて幸せな気分を味わうことが出来ます。
Enter
↓
インスタンス変数を簡単にプロパティに出来る
インスタンス変数を定義して、ショートカット(ALT+Enter)一つで簡単にプロパティとして定義することができます、同じ作業を繰り返すのが嫌いなぼくたちにピッタリですね。
Enter
↓
クイックフィックス機能が便利
ARCが実装されて、利用頻度は減りましたが、インスタンスを生成した時にreleaseやautoreleaseを忘れていると、エディタ上で警告してくれます。それだけに留まらず、警告の出ているライン上で特定のショートカット(ALT+Enter)or警告のマークをクリックすると、releaseかautoreleaseを選択して自動で挿入すること出来るのです。
ヘッダファイルにメソッドを定義しないまま、実装ファイル側にメソッドを書いてしまっても、メソッド名のラインに警告がでて、そこからヘッダファイルにメソッドを自動で定義したり、プライベートカテゴリに定義したりすることが出来ます。
その他にも、ARCに対応していないソースコードをARCを利用したプロジェクト上で書くと、自動でARCに対応したコードにマイグレートしてくれる等、ユーザーを強力にサポートしてくれます。

リファクタリングが鬼
「メソッドに引数を一つ足すだけなのに、どうしてこんな苦労をしなくちゃいけないんだ…」と思ったことはありませんか?appCodeならGUIで引数を追加してボタンを一つ押すだけです。(ここでは関係ないですが、JavaのIDEにはじめてリファクタリング機能を実装したのはJetBrainsでした)
Shift +F6
↓
必要項目を入力して所定のボタンを押す
↓
スペルチェック機能が強力
英単語に自信はありますか?appCodeならあなたのタイポを的確に指摘してくれます。プロジェクト中のタイポを全部検索して表示する機能も…。
ローカライズが簡単
@””で文字列が定義されている所でショートカット(ALT+Enter)を叩くと、その文字列をローカライズするかどうかを聞いてくれます。
Structureウィンドが無いなんてあり得ないよねー
個人的にXCodeを使っていて一番違和感を感じるところはココでした。メソッド名や、インスタンス変数名なんかが見られるアレです。
しつこく、ALT+Enterとか書いていますが、Eclipseで言うところの「困ったらCtrl+1押しとけ」とか「Ctrl+2」押しとけって言われるアレと似たような感じです。この8つ以外にも、デバッガがXCodeより使いやすいとか、本当はObjective-Cの話とか書いた方が良いとか、コード補完とリファクタリングとデバッガだけで十分乗り換えの理由になるとか、今更ながら思っています、ぶっちゃけこのエントリを書いて後悔しているので、この後悔を胸に来年も頑張ろうと思います。
ちなみに、appCodeでは意図的にXCodeと同じプロジェクトファイルを使っていますから、ユーザーはいつでも戻りたい時にXCodeに戻る事が出来るので、取りあえず使って見ましょう。
ダウンロードページ
ブログ
機能の簡単な一覧
明日は@TonnyXuさんです!





感謝です。