引っ越しました

はてなダイアリーの良さを引き継いで進化した新しいブログサービスに引っ越しました!keitanxkeitan's blog

友人の結婚式に際して Twilio を使って祝電を集めてみた

こちらのブログ で Twilio を使った素敵な取り組みをしているのに感銘を受けて、私も Twilio を使って祝電を集めてみた。https://github.com/keitanxkeitan/YAWeddingMessenger2014.5.24 追記 Ruby on Rails で実装して使いやすくしてみました。 WeddingMess…

Ruby on Rails で販売しない EC サイトを作ってみた

人に頼まれて、販売しない EC サイトを作ってみた。 初めて Ruby on Rails を使ってみたので備忘録。現在の成果物 Home, About, Contact などの静的なページ Product の一覧画面、詳細画面 管理画面(AdminUser, Product の管理) 開発の流れ開発期間は Ruby…

ngRepeat を特定のフィールドについてフィルタリングする

app.controller('Ctrl', function($scope) { $scope.widgets = [ { name: 'foo', description: 'basic model' }, { name: 'bar', description: 'upper model of foo' } ]; }); name と description を持つ Widget というモデルがあって、これを ngRepeat で…

AngularJS の Service の考え方

AngularJS の Conceptual Overview にわかりやすく書いてあった。ビューに依存しない再利用可能なビジネスロジック。コントローラにすべてのロジックを記述してアプリケーションを作ることも可能だけれど、それだとコントローラがどんどん肥大化してしまう。…

JSON と JSONP

AngularJS の勉強をしていたら $http.jsonp() が出てきて「!?」となったので JSONP について調べてみた。こちらの記事がわかりやすかった。 JSONPで悩むある程度の人々へ今まで違いを意識したことがなかったけれど、異なるドメインの JSON データを取得す…

AWS EC2 インスタンスで Sinatra

AWS

簡単なウェブアプリケーションを作りたいときに Sinatra が便利そうだったので AWS EC2 インスタンス上で動かしてみた。 公式の手順通りに進めたらハマりどころがあったので記録。Sinatra 公式の手順http://www.sinatrarb.com/intro.html にしたがったけれど…

AngularJS の binding がこうだったらいいのになという動きをしてくれた話

ngRepeat を使った以下のようなテンプレートがあるとします。 tweet の内容、Like かどうか、Like ボタンをテーブルで表示します。 <tr ng-repeat="tweet in tweets"> <td>{{tweet.content}}</td> <td>{{tweet.is_liked}}</td> <td><button ng-click="like(tweet)">Like</td> </tr> コントローラでは API を使って tweet を取得する部分と、ngClick のイベント…

audio 要素で音声再生しようとしたらエラー

<audio ng-src="{{some_object.url}}"></audio> audio 要素に ng-src ディレクティブでソース指定して、他サーバにある音声を再生しようとしたら Blocked loading resource from url not allowed by $sceDelegate policy.というエラーが発生した。ググったら AngularJS 公式がヒットした。 http://docs.an…

Step-7

マルチビューを持つアプリケーションの作り方。マルチビューとルーティングとレイアウトテンプレートこれまでは1つのビューしかなかったので全てのテンプレートを index.html に記述していた。 マルチビューにするにはまず index.html をレイアウトテンプレ…

AngularJS Tutorial をやってみた(Step-0 -> Step-2)

http://docs.angularjs.org/tutorialStep-0 <html ng-app> ngApp ディレクティブを表す。 上の例だと html 要素がアプリケーションのルート要素と見なされる。 html ページ全体をアプリケーションとすることもできるし、ページの一部をアプリケーションとすることもできる</html>…

AngularJS 入門

なんで AngularJS?http://angularjs.org/ より。 HTML は静的なドキュメントを記述するのには向いているが、動的なウェブアプリケーションを作るのには向いていない。 AngularJS はアプリケーションを作るのに必要な語彙を HTML に追加する。 →「HTML の語…

年賀状 2.0

新年あけましておめでとうございます! 近年年賀状を書くことはほとんどなかったのですが、古式ゆかしい友人が年賀状を書くと言い出したことから、数人の間で年賀状を送りあう「流れ」になったので、今年は僕も年賀状を書いてみました。年明けてから書きまし…

AWS 入門

年賀状 2.0 上の記事で Twilio を使った年賀状を作った時に、サーバとして AWS の EC2 インスタンスを使用しました。 AWS のアカウント取得からやってみたのでメモ。AWS のアカウント取得 AWS を使用するには AWS のアカウントが必要 Amazon.com のアカウン…

RELAX NG

XMLスキーマ XMLスキーマって何?Wikipediaによると XMLやSGML等で文書を作成する際、その文書構造を定義する言語を言う。ということです。Document Type Definition 略してDTD。スキーマ言語のひとつ。元々SGMLのスキーマ言語として開発され、SGMLから派生…

iPhoneデバイスの方向入力インタフェースについて考える

iPhoneデバイスにおける方向入力の歴史 App StoreからゲームをダウンロードしてiPhoneやiPod touchの上で遊べるようになってから久しいですが、その間iPhoneデバイスにおける方向入力の方法は様々なものが考案されてきました。 今日は、その歴史(と言っても…

忍法壁抜けの術

スーパーメリオ 重力操作で天井から地面に落下する時、低い位置にある1ブロック分(16x16ピクセル)の厚さのレンガやブロックをすり抜けてしまうバグを発見しました。めり込む男、メリオ。原因と解決法 まず、垂直方向にマリオを移動させるメソッドは次のよ…

Google Code Jam 2011 Qualification Round

GCJ

Qualification Round Google Code Jam 2011の予選に参加しました。 24時間かけて4つの問題に挑戦し、25点以上獲得で次のラウンドに進むことができます。各問題には単純なアルゴリズムで十分間に合うsmallと、工夫したアルゴリズムでないとTLEになってしまうl…

儚く消ゆる

プチ更新 iPhoneで2Dアクションゲームを開発中。 前回の記事では、 遊びの土台となるフィールドとキャラクターとの当たり判定を実装 キャラクターが出すビームとフィールドとの当たり判定も実装 まで完成していました。今回はプチ更新で「ビームとターゲット…

2Dアクションゲームの当たり判定と当たらない判定

iPhoneで2Dアクションゲーム CEDEC 2011にiPhoneで2Dアクションゲームを出展予定。 それの練習ということで2Dアクションゲームの当たり判定について学ぶなど。 実はまだ審査中なのでこの努力は水泡に帰すかもしれないけれど、人生に無駄なことなどないと信じ…

Google Code Jam 2011に登録完了

GCJ

Google Code Jam 2011 昨年に続いてGoogle Code Jamに参加します。昨年はQualification Roundは突破できましたが、Round 1ではSub-Round AからCまで全て参加しましたが尽く敗退し、苦い経験となっています。 昨年は競技プログラミングに出会い、PKU Online J…

iPhoneで横スクロールアクションゲームを作りたい

CEDEC 2011 友人に誘ってもらって、日本最大のコンピュータエンターテインメント開発者向けカンファレンス(公式サイトより)であるCEDECに参加してみようということになった。 ということでiPhoneで何かゲームを作りたい。。。iPhoneでのゲーム開発経験 こ…

Objective-Cスタイルガイド

論文投稿ICWE(International Conference on Web Engineering)というものに論文を投稿することになった。スマートフォンアプリを扱った研究で、となると当然Objective-Cのソースコードも掲載しなければならない。最近いくつかのiPhoneアプリを制作して、Objec…

キーボードに消えて欲しい

なぜデフォルトで支援されないのか…iPhone開発においてUITextViewやUITextFieldを使うと、デフォルトではその領域タッチでキーボードが出現します。しかし!編集が終わった後でそのキーボードを消す手段は提供されていません。iPhoneアプリケーションには多…

天気予報アプリ

livedoorの無料の天気予報API「Weather Hacks」を使った天気予報アプリを作った。 今回のトピックは データベースの利用 WebサービスAPIの利用 ユーティリティアプリっぽい「くるっ」とした動き の3本で。データベースの利用前回作成したDiarySystemと同様…

DiarySystemと落ちるアプリ

DiarySystem日記帳みたいなものを作った。今回のテーマは… 1. ナビゲーションコントローラと(UINavigationController)と タブバーコントローラ(UITabBarController)を同時に使う。 2. データベースを使う。ということで日記帳。 完成図はこんな感じ。タブバ…

ツールバーにカスタムボタンを置く - CustomButton at Toolbar -

ツールバーのボタンツールバーに置くボタンはUIBarButtonItemインスタンスである。 UIBarButtonItemは画像で初期化したり、 UIBarButtonItem *catalogButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon_book.png"] style:UIBarBu…

ピンチイン&アウトで画像の拡大縮小

セカエカメラ大学の講義でチームでiPhoneアプリを作成することになり、ドラえもんの着せ替えカメラをパk(ryにインスパイアされたセカエカメラというものを作っている。僕はGUIを担当することになり、カメラ起動中の上のレイヤーに洋服の画像をオーバーレ…

Provisioning Profiles

えくすぱいあiPhone実機上で自作アプリケーションを動作させるためのProvisioning Profileは3ヶ月で失効するので、更新しなければならない。とりあえず、iOS Dev CenterのProvisioning Portalから新しいProvisioning Profileをダウンロードしてダブルクリッ…

蒼くなった日 〜SRM 472 DIV2〜

久々のTopCoder最近疎遠になっていたTopCoder。約2ヶ月ぶり。 心機一転のため、気まぐれアカウントkxkから、いつもの keitanxkeitanに移行した。 そんな節目のTopCoder SRM 472。 レーティングは1000からスタート!ColorfulTilesEasy DIV1の簡易版。 R,G,B,…