エンジニアリングにはほど遠い

iPhoneアプリとかサイトとかをつくっていくブログです。

シェル上でバックグラウンドでコマンド実行

コマンドの最後に &を付ける。 今日はJenkinsでcocoapodsを使っているiOSプロジェクトのビルドを行いたかったが うまく行かなかった。 どうもpod installがうまく実行できていないみたいなのでJenkinsがrbenvを扱えていない気がする。 ちょっとタイムオーバ…

mysqlのutf8mb4でverchar(255)のカラムにindexが張れない

こちらと同様の対策を行いました。 MySQL(InnoDB) で "Index column size too large. The maximum column size is 767 bytes." いわれるときの対策 なぜinnodb_large_prefixがデフォルトではOFFでROW_FORMATはデフォルトがCOMPACTなのか。 innodb_large_pref…

iOSでJSONから画面を生成する QuickDialog

iOS

QuickDialogという便利なライブラリがあります。 cocoapod経由で利用可能。 NSDictionary *json = @{ @"grouped": @YES, @"title": @"LOGIN", @"controllerName": @"LoginViewController", @"sections": @[ @{ @"title" : @"Information:", @"elements" : @[…

Basic認証でurlにuser,passを叩き込んだらnginxでエラーが出た件

Basic認証のurl埋め込み Basic認証はurlにuserとpassを埋め込んでも通過できるという話があります。 http://(user):(pass)@host.... しかしそれだとnginxにて以下のエラーが出ました。 no user/password was provided for basic authentication urlに埋め込…

読書:ドメイン駆動設計

エンティティ 同一性をもつオブジェクトを表現する 値オブジェクト 同一性ではなく物事の特徴を表現する。"どれ"ではなく"何"であるか モジュール 単一の概念のオブジェクトをまとめる この考えで考えるとRailsでmodelディレクトリ以下にphysical logicalと…

モデルについて

モデルを3パターンに エンティティ 値オブジェクト サービス 関連 モデル同士の関連を必要に応じて制限・重要度付けする ちょっとあまり読書が進まなかったので明日はガッツリと読みたい。

エリック・エヴァンスのドメイン駆動設計

「エリック・エヴァンスのドメイン駆動設計」を読んでいる。設計の本を読んだ事無いからかもしれないけど、めちゃくちゃ面白い。 ドメインモデル まず、ドメインモデルというのが何なのかよくわからなかったが、「ユーザの活動や関心」のすべてがドメインモ…

15時間寝てた

寝ていたので技術的な話はほとんどないのですが、 7 Patterns to Refactor Fat ActiveRecord Models を見たりしてました。 これも実際のソースをいじってみないと身に付かないんでしょうね。

服を買う

1年以上ぶりに服屋(ユニクロ)に入り、服を買った。ズボンを買ったのは数年ぶり。できれば今まで着ていた服でずっと行きたかったが破損してしまったので。

忘年会

忘年会があり、やや二日酔い気味です。 アーキテクチャについて、DCIという考え方の事を初めて知った。 DCIを考える DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien システムをロール、アルゴリズム、オブジェクトという視点で考え、これらをど…

ダイアリーから移行しました

Markdownがダイアリーでは使えないという事で。 もうほとんど更新できずにいたんですが、「何か技術的に他にあんまり載ってない事があれば書こう」という事で構えてたら全然書けずにいました。 もうちょっと適当な感じで更新していこうと思います。 ちょうど…

cocos2d+Box2dで衝突判定をする

結構他でも書かれているとは思いますが、自分的にまとめました。手順 b2ContactListenerのサブクラスを作る(MyContactListenerとする) HelloWorldLayer上にてb2WorldにMyContactListenerをセットする HelloWorldLayerでb2Bodyを作る際に、対となっているPh…

Push Notificationで最初のダイアログでプッシュを「許可しない」だとデバイストークンを取りにいかない

12/5 追記: アプリ初インストール時、ダイアログ出現後「許可しない」を選んでもデバイストークンを取りにいくケースを確認しました。 なので、取りにいく事もある、という事です。すみません。 どっちにしろ、取りにいっても行かなくても大丈夫な設計にす…

-(BOOL)match: shouldReInvitePlayer: の意味が分かってきた

結論から言うとこれは、「友達招待によって成立した1対1の」マッチが切断した際に、復帰用の通知を出すか否かを設定するメソッドだと思います。なんか再接続できそうな名前のメソッドだという事でこれをいじっていたんですが、 どうやら、通常のマッチング…

LionそしてXcode4.3にしたらgitが打てなくなってた

gitが打てなくなってて凹んでたんですが、どうやらXcode4.3にしたら、gitは/Applications/Xcode.app/Contents/Developer/usr/bin/git になるらしいです。そして、Xcode上でcommand line toolとしてダウンロードできました。Xcode>Preferences>Downloads>Comp…

新作iPhoneアプリ「関ヶ原将棋Online」本日リリースしました。

去年の年末からつくっていたんですがようやく完成しました。「関ヶ原将棋Online」 自由に将棋の駒を編成して対局するという将棋です。 オンライン対戦可能で、マッチングしたときの相手のチーム編成が発表されるのですが、その時のドキドキ感がなかなかたま…

Xcode4からのResourcesの扱いの違いで少しハマった

sqliteのDBファイルをアプリのバンドル内に入れて扱おうと思ったら、うまく動かなかったんですが、どうもリソースとなるファイルの指定方法が若干Xcode3系と4系で違うみたいで、それが原因でした。Xcode3の時はsqliteファイルをつくって、Xcode上でのプロジ…

Cocos2dで、CCTransitionFadeを作ったけどそのまま使わないとバグる?

シーンの遷移でCCTransitionを使ったときに、やっぱり使うのやめようって言う事でreplaceSceneのところで使わないで、インスタンスを放置してると変な挙動になりました。NextSceneクラスのシーンに遷移したいとして、まず次のようにTransition利用で書きまし…

GameCenter対戦で、アプリのバージョンが違うプレーヤーがマッチしないようにした

GameCenterでの対戦ゲームを作ってるんですが、自分の仕様だとバージョンが違うプレーヤー間に有利不利が付いてしまう可能性があるので、同じバージョン同士の人しか当たらないようにしたいと考えました。そこで、GKMatchRequestのplayerGroupを使ってみまし…

Xcode4.3.1でPHPを書こうと思ったので、変換候補が出るようにした

iPhoneアプリでサーバーを使ったものを作ろうとしてます。そこでPHPを使うことにしたんですが、Xcodeで書ければ一番嬉しいなぁと思ってやってみました。ヘチマ_BLOG Xcode で PHP その3 : Xcode_PHP_Set 公開 こちらをまるっきり参考にさせてもらっただけな…

Leaderboardは降順だと最高値、昇順だと最低値しか保持しない

追記:値を取得した時期ごと、つまりTODAY, THIS WEEK, ALL TIMEごとに違う値を持つ事はできます。 降順だと値が大きい方がいい成績なので、今までの値よりも小さな値を送っても影響しません。つまり、ハイスコアを減らす事はできません。 最高得点10000poin…

GameCenterでマッチングが切断したのをmatch:shouldReinvitePlayer:で再接続しようとした、がダメっ・・!

GameCenterアプリを作ってるんですが、マッチングして通信対戦状態のときに切断してしまったらどうなるのかという事を考えていました。 で、切断してしまったらそのマッチングで切断した相手を戻す事ができないっぽくて、その場で別のプレーヤーを探すなり終…

GameCenterのマッチングなどのテストで実機2台無くてもテストできる!?

追記(2012/9/3):実機同士じゃないと、友達申請がうまく届かなかったり友達招待機能が動かなかったりする事が分かりました。送られた側に通知が出ません。 なので、招待時のハンドラの[GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite* accepted…

Mac用ニコ生タイムシフトダウンローダー作った

NicoTimeShift(.dmg) ソース:https://github.com/J-ogawa/NicoTimeShift注:コメントと動画は別々のファイルでダウンロードします。 注:落とした.flvは特定のプレーヤーでしか観れなかったりします(僕はRealPlayerだけでしか観れませんでした) 注:コメン…

12/2(金)0:00〜 24時間耐久プログラミング放送やります

何となくそういうノリになったので耐久プログラミング放送やります。このニコ生コミュニティでやります第4作品目のアプリ完成に向けてガッツリ作業したいと思ってます。 最近はニコ生に接続する系の事ばかりやってたんでアプリの方が進んでないんです。 し…

rtmpでニコ生タイムシフト保存の、iOSシミュレータ用のスクリプト(?)書いた

完全に自分用という事で。なんでiOS用かというと、NSRegularExpressionがiOS用でしか使えなくて、でもこれを使わないと正規表現複数マッチのやり方が面倒そうだったのでもうこれでいいや、となりました。Command Line Toolで作りたかったんですが、正規表現…

iPhoneアプリ「リアル砂時計」リリース!

「リアル砂時計」が昨日リリースされました! わたくしの第3作品目のアプリです。 Box2Dという物理エンジンを使って作りました。砂(というか玉ですが・・)がガラス容器の中に入っていて、1個ずつ落ちていくというものです。これだけのシンプルなものなん…

Macで、rtmpによってニコ生タイムシフトをflvで保存する

追記:ニコ生のシステム更新で落とせなくなるかもしれません。また、落とした動画はVLCPlayer, ひまたんぷれいやではみれず、ReaPlayerでは見れました。コーデック的なものみたいです。保存できるようになったのでそれを書いてみます。 Macportsを使ってrtmp…

はてなブログに移行します。と思ったけどしません。

エンジニアリングにはほど遠いなんかインポート機能が無いっぽくて、このはてなダイアリーをつけてから2日目くらいなんでまるごと手作業で移しました。 コメントして頂いた方のコメントは移動できないんですが、すみません。。移行後もよろしくお願いします…

Google Data APIs Objective-C Client Library をXcode4で使う為の準備をした

これから作る4作目にあたって、とりあえず"TestYoutube.xcodeproj"という名前でプロジェクト作りました。 Xcodeのバージョンは4.2です。Youtube APIを使う為にはGoogleのライブラリを使うのがいいっぽいです。 僕はObjective-Cしかほとんど見た事もないんで…

今までにつくったアプリの宣伝

3つiPhoneアプリをつくったんで、ちょっとその紹介をさせて下さい。ツイー簿 Twitterと連動して、つぶやきながら家計簿がつくれるアプリ。ファイアーブレスト 画面一杯に次々と言葉が発生して、脳に刺激をもたらしてくれるブレスト支援アプリ。リアル砂時計…

ブログ、はじめました

iPhone制作日記的な感じで初めてみようと思います。iPhoneアプリ制作を始めたのは2011年4月からで、まだまだど素人です。まったり勉強していこうと思います。大学のとき、3年生の夏まで授業に一切出てなかったんですけど、そこから「単位習得ブログ」…

ニコ生タイムシフトをMacで保存しようとして諦めた

このブログにニコ生タイムシフトのアーカイブを貼っていこうと思っているのだが、そこで苦戦した。タイムシフトを動画として保存したいのだけど、落とすソフトがMacで見当たらない。WinならkakorokuRecorderと言うソフトもあるみたいだけど。 rtmpという動画…