キノコの自省録

テクノロジーとコンテンツの融合を目指して

Expansion Filesについて(1) - obb作成編

※13/07/16に、全面的に記事を修正しました。 Google Playでは50MBを越えるAPKをアップロードできません。 ただし、APKに付随する拡張ファイル(Expansion Files)を、本体のAPKとは別の拡張ファイルを2種類各2GB=4GBまでアップロードすることができます。 どう…

iOS5のSQLiteは表の結合処理が遅い?

テーブルA, Bがあって、 select A.* from A, B where B.value=? and B.a_id= A._id; のようにBの条件を使ってAのテーブルデータを取得する、という処理をSQLiteで書いたところ、 iOS6.1では2, 3秒ほどで結果を返してきましたが、 iOS5では、30秒くらいかかり…

現在地情報が取得可能かを判断する

iOSでは、プライバシー −> 位置情報サービス のオンオフを切り替えることで、アプリに現在地情報を送らなくすることができます。 この設定では、全てのアプリで現在地情報の送信を許可/不許可にするスイッチと、 個別のアプリごとに送信を許可/不許可にする…

libsqlite3で外部キー制約をONにする

Objective-Cで使用できるsqlite3 (libsqlite3)で、外部キー制約(FOREIGN_KEY)を有効にする方法の覚書。 (sqlite3の外部キー制約は、デフォルトでは無効になっています) int ret = 0; sqlite3_db_config(handle, SQLITE_DBCONFIG_ENABLE_FKEY, 1, &ret); NS…

デッサン用ミラーカメラをリリース

デッサン用ミラーカメラ https://itunes.apple.com/jp/app/dessan-yongmirakamera/id637583972?mt=8 絵を描いていると、バランスが崩れていないかどうかを確認するために、 左右反転してチェックすることが多々あるかと思います。 デジ絵ならともかく、アナ…

Seraph Flightとデザイン比率計算機をアップデート

Seraph Flightとデザイン比率計算機をアップデートしました。 アップデートしてから2週間くらい経過しているので今更ではあるのですが。 デザイン比率計算機は、 雑なコーディングのせいで計算誤差が大きくなってしまった問題と、 2等分の追加が大きな変更…

Photoshopを初期化できません(ファイルロック)をそのまま起動させる方法

Photoshopの仮想メモリのドライブを変更したりすると、 「Photoshopを初期化できません。ファイルがロックされています。」 という感じのメッセージが出て、Photoshopが起動できなくなることがあります。 ディレクトリのパーミッション制限にひっかかったの…

音(声)の高低を検出する方法を真面目に書く

Seraph Flightで使っている音程の検出について、 基本的な解析方法しか使っていないと書いたものの、 あまりこういう分野に明るくないけどやってみたいなあ、という人がいるかも知れないので、 ちょっと真面目に説明します。Seraph Flight - 天使の歌声飛行…

iPhoneアプリの検索とか新着とかの備忘録

iOS

新着最初のアプリ(デザイン比率計算機)の時は、 アプリがニッチな分、新着にいつ登場したのかとか全く気にしなかったのですが、 今回のSeraph Flightは、ゲームなので、毎日チェックしていました。 どうやらApp Storeの新着は、大体2日に1回くらいの頻度で…

バイトオーダーを入れ替える関数

http://d.hatena.ne.jp/kinokorori/20071017/1192625754 ここで2007年という大昔にswapByteOrderなる関数をさらしましたが、 リンク切れていたので、ここに直接べた書きします。 template<typename T> static T swapByteOrder(T orig) { T temp = 0; unsigned char* p = </typename>…

声の高さで操作するiOS用ゲームをリリース

iPhoneのマイク入力を使って、声の高さでキャラクターを操作するゲームをリリースしました。 Seraph Flight - 天使の歌声飛行 高い声を出すと天使が上の方へ移動し、低い声を出すと天使は下の方へ移動します。 右から流れてくる音符をうまく回収するというだ…

新しいプログラミング言語を覚える場合、言語仕様を先に暗記した方が速い

1つもプログラミング言語を覚えていないなら実践しながら覚えるというのもアリかと思いますが、 何かしらの言語をマスターしている場合は、 使いながら覚えるより、言語仕様を丸暗記した方が上達早いんじゃないですかね、という話です。 知っている知識でな…

デザイン比率計算ツール

iPhoneアプリ作りました。 黄金比や白銀比などのデザイン比率をワンタッチで切り替えることができ、 分割した数値を再分割したり、逆に辿ったりすることもできます。 また、A4, B5やはがきといった用紙のテンプレートを備えているので、 そこからでも入力で…

セガvsレベルファイブの特許係争

なんか争っているみたいですね。 GIGAZINEを見ると、特許文献のリンクが載っていました。 【公開番号】特開2011−194269 って、これ公開特許ではないですか。 しかも2011年では確実に審査通ってません。 どうやら特願2008−275989の分割ら…

CookieのexpiresをNSDateFormatterで解析する

サーバから貰ったセッションは、 NSURLConnectionを使っていれば、基本的にCookieヘッダを勝手につけてくれるので、 細かいハンドリングをする必要はありませんが、 自動ログインを実装する場合などで、有効期限を知りたくなる時があります。 有効期限は、Se…

黒猫の単語帳2nd 2.5.0をリリースしました。

動かなくなっていた黒猫の単語帳2ndをメンテナンスしました。 こちらからどうぞ。 http://kinokorori.ninja-x.jp/software/index.html また、「もしかして→連語検索」が以前のバージョンでは動作しないことがあったりしましたが、 今回はたぶんもう少しちゃ…

黒猫の単語帳は現在動きません

いつの間にか動かなくなっていました。 データ提供元のiKnowのデータ形式が変わったためです。 近々直そうと思います。 もう少し技術的な話をすると、 データ形式がXMLからJSONに変更になりました。 そんなわけで、修正量が結構多そうです。 JSONになったと…

他言語習得者用、Objective-Cの構文とキーワード一覧

他の言語を習得している人がObjective-Cを勉強しようとすると、 独特の構文や不思議なキーワードが登場して、大抵面食らうと思います。 膨大な数のAPIに圧倒されることもあって、 何から手をつけていいのやらわからなくなるようです。 C++, Java辺りを知って…

NSAutoreleasePoolとGCD

昨日の続き。 NSAutoreleasePoolは、新しいスレッドを作成したとき、 必ずスレッドごとにNSAutoreleasePoolも一緒に作成する必要があります。 メモリ管理プログラミングガイドにも、そのように書いてあります。 C/C++,C#,Javaあたりでも、オブジェクトを生成…

autoreleaseは結構怖かった

iOSのautoreleaseって何の気なしに使っていたのですが、 これって下手するとメモリリーク状態になるんですね。 メモリ管理プログラミングガイドだけはちゃんと読んでおくべきでした。 autorelease付きのオブジェクトは、NSAutoreleasePoolという自動解放プー…

iOS5が色々酷い

iPhoneアプリを作っていた人が退職するに当たり、 なぜか全く関係ない私の下に仕事の丸投げをしてった上、 ろくに説明もしないで出てったその前任者のコードがアンチパターンの見本市だったという、 若干やるせない日々を送っているのが近況のわけですが、 …

生存報告のような

あんまり間が空きすぎると更新しづらくなるので、ちょっと生存報告。 いや、もう間が空きすぎていますが。

腐っていました

2月後半から3月上旬は、主に仕事で、 3月中旬(というか震災)からは、ご存知の通り生活が一変したため、 もうなんか色々投げやりになってました。 ようやく最近気持ちも生活も落ち着いてきましたが、 どうも地震酔いに罹ったのか、最近眩暈に悩まされるように…

黒猫の単語帳2nd ver 2.4.0リリース

黒猫の単語帳2nd ver 2.4.0をリリースしました。 smart.fmから取得するデータ形式が変更になったことを受けての修正版です。 なお、リスト作成機能は使えなくなっているようなので、 単語帳のボタンから外しました。 ダウンロードはこちらからどうぞ。 http:…

黒猫の単語帳2nd動作停止と対応差分ファイル

辞書データ提供元のデータ形式自体が変更になったため、 黒猫の単語帳2ndが再び動かなくなりました。 前回動かなくなったときと同じように、とりあえず差分ファイルを置いておきます。 差分ファイルをDLして解凍すると、base.jsというファイルが出てきますの…

Smart.fmサービス停止とマッシュアップアプリの問題

つい2週間ほど前に、 「Smart.fm無料だよ、単語覚えるのに最適だよ」 と紹介したばかりなのに、 3月31日でSmart.fm終了→iKnow(有料)に以降 とのこと……。 なんともタイミングの悪いことで。 それよりも問題なのが、Smart.fmの停止によって、 Smart.fm APIがど…

極力お金をかけずにTOEIC600取る方法

なんとなく英語のお話です。 転職や昇進の条件に、TOEICの○点以上という記述をよく眼にします。 特に技術職の場合、TOEIC600というのがひとつの目安のようです。 得点取るためだけに英語勉強するなんてナンセンスだ、 と仰る人もいますが、条件なので諦めま…

あけましておめでとうございます

あけましておめでとうございます。 いろいろ更新したい気もあるのですが、 モチベがいまいちあがらないのです。 といっても全く何もしていないわけでもなく、 アウトプットまでに至っていないといったところです。 進捗はかなり芳しくないですが。

絵を描く

最近ゲームが作りたいなあ、 などと漠然と考えているのですが、 ゲームは、音楽と絵がほとんどの場合不可欠なわけで。 音楽はフリー提供のものを利用すればいいかもしれませんが、 絵はどうしてもそうはいかないので、 こりゃ少し絵を練習しようかなあと思い…

備忘録 - Android PlatformをCentOSでビルド

Ubuntuの場合は公式サポートしているおかげで、 http://source.android.com/source/download.html ↑に書かれているパッケージをapt-get installすればいいので楽なのですが、 自宅のLinuxがCentOSのため、yumでのパッケージ名がわからずに無駄な苦労をしまし…

Windows7でhttpd.confの設定に嵌る

家庭内LANでSubversionリポジトリをhttp共有しようと思い、 Apache2.2とSubversion1.6をWindows7にインストールしました。 後はhttpd.confやShared LibraryをSubversionのReadme通りに設定するだけで、 ひとまずsvnの公開はできるわけですが、 何度書き換え…

新作ドロップ

現在MA6用にアプリケーション(というより作品に近い)を作っていたのですが、 なんだかあまりパッとしたものにならずにドロップ。 作りかけを放棄するのはあまり好きではないのですが、 今会社の仕事に脳みそのリソースを取られているために、 あまり集中で…

FirefoxとAjax

jQueryでAjaxを利用しているとき、困った問題に遭遇しました。 リクエストA……サーバが死んでいるため戻ってこないリクエスト リクエストB……正常に戻ってくるリクエスト の2つがあったとすると、 Aがタイムアウトされるまで、Bの結果が戻ってきても、 コール…

黒猫の単語帳2nd ver2.3.0公開

黒猫の単語帳2nd ver2.3.0を公開しました。 これで動くと思います。 なお、発音の再生ファイルの提供がなくなってしまったため、 詳細ページに飛ぶように変更しました。 また、単語より連語が優先的に検索結果として返ってくる問題に対処もしてあります。

黒猫の単語帳2ndについて

黒猫の単語帳2ndが動かなくなってしまいました。 原因は、smart.fmが音声ファイルの場所を返さなくなったためで、 タグのチェック漏れです。 私のミスです。 ということでして、発音が聴けなくなってしまいました。 発音を聴けなくなっただけではなく、 ↓こ…

Google Reader APIが6月から変更になった件

ふわふわタイムス1.2.0を、Vectorさんに紹介していただきました。 素敵なレビューありがとうございます。 http://www.vector.co.jp/magazine/softnews/100715/n1007151.html ところで、ふわふわタイムスはGoogle Reader API(実は非公式)を利用しているので…

ふわふわタイムス1.2.0公開

ふわふわタイムス1.2.0を公開しました。 Google Reader apiの仕様変更対応と、 twitter認証方式の変更がメインです。 旧バージョンは、来月から、twitterに投稿できなくなります。 バージョンアップとはあんまり関係のない話ですが、 ふわふわタイムスは、英…

TwitterにOAuthで認証してつぶやくAS3コード

自分の探し方が悪いのか、 TwitterにOAuth認証してつぶやくAIR/Flex/ActionScript3のサンプルが見つからず、四苦八苦しました。 なんだかtwitterでAS3が適当な扱いを受けているような印象が……。 ということで、twitterに投稿するサンプルコードをメモ書き。 …

AIR/ActionScript3でTwitterのOAuthをするための必要最低限

OAuth面倒くさいので、AIR/AS3で最低限認証通るようになるまでのメモ。 準備Twitterにアプリケーション登録。 https://twitter.com/appsOAuthライブラリ。iotashan氏作のものを利用。 http://code.google.com/p/oauth-as3/ ライブラリを使わず、OAuthを1か…

FE結果

今日は基本情報処理技術者試験の合格発表ですが、ちゃんと合格していました。 成績は午前と午後が全く同じスコアだったことに驚き。 さて、FEを受けてみた感想ですが、 勉強含め、無駄ではなかったかな、というところです。 特に午前ですね。 午前の問題は、…

Android JNIで見掛けたインスタンス管理テクニック

Shared Libraryを作成するとき、 インスタンスの管理はなかなか悩ましい問題ですが、 Androidのmediaパッケージで、 JNIを利用したちょっと変わったインスタンス管理をやっていたので紹介&覚書。 /* envはJNIEnv*, thizはjobjectで、JNI呼び出しクラスのイ…

基本情報技術者試験を受けてみました

技術系じゃない後輩にITパスポートを受けさせるために、 じゃあ俺も基本情報技術者(FE)を受けるよ、ってことで、 FEを受けてきました。 先程自己採点したところ、 午前70/80, 午後36/42でした。 合格ボーダーが6割なので、マークミスや記入漏れがなければ合…

ソフト屋はハードウェアがわからない

タイトルのとおり、 「ソフト屋はハードウェアがわからない」 と馬鹿にされることが多いようです。 実際、私もハードウェアがさっぱりわかりませんでした。 でも、馬鹿にされるのはちょっと悔しいので、 年末から1月末までの1ヵ月間、ハードの勉強をしていま…

たべ☆すたが消えました

たべ☆すたが消えてしまいました。 お借りしていたレンタルサーバは、 3ヵ月に1回更新しないと消されてしまうのですが、 まあ、うっかり更新を忘れていたわけです。 あんまりアクセスもなく、 技術的にも若干古くなった (Silverlightオーバーレイを使わなく…

窓の杜でふわふわタイムスを紹介して頂きました

ふわふわタイムスがなかなか人目に触れず、ヤキモキしていたのですが、 昨日、窓の杜で紹介していただきました。 ありがとうございます。 おかげさまで、心安らかに けいおん!2期を待つことができそうです。 http://www.forest.impress.co.jp/docs/review/…

2009年読んだ本(小説限定)

小説限定で去年読んだ本。 技術本は除外。 ・坊ちゃん ・我輩は猫である ・三四郎 ・草枕 ・こころ ・キャッチャーインザライ ・グレートギャツビー ・マイロストシティ ・フィッツジェラルド短編集 ・赤毛のアン ・雪国 ・海の都の物語全6巻 ・ローマ人の…

今年の抱負

あけましておめでとうございます。今年の抱負は、Beyond the softwareです。 英語が合っているかどうかはわかりませんが、 ソフトウェアの向こう側に行きたいという気持ちです。 今年の抱負、というより、 これからの目標、かもしれません。

トロピコ

最近の政治の状況を見て、なんとなくトロピコを思い出しました。 トロピコというのは、カリブの島の大統領(プレシデンテ)として統治する、 箱庭SLGです。 めちゃくちゃ面白いですよ。 個人的に箱庭SLGでNo1のゲームです。 http://game.watch.impress.co.jp…

ふわふわタイムス リリース

完全プッシュ型ニュースリーダーをリリースしました。 デスクトップのどこかに、ニュースの付箋がふわふわと出てきます。 それをクリックするとニュースが読めます。 各種ニュース+折込チラシと、GoogleReaderからRSSを取得できます。 読んだニュースをTwit…

ボツにした2日後から

新しいネタでアプリを作り始めました。 作り始めて今10日目くらいですね。 間に合うかどうか微妙なラインです。 平日も休日もパチパチとキーボード叩いています。 遊びに行かないのでお金が浮くという副作用が!