今度はiOSで散布図アニメーションを試してみた

セルフインスパイアな記事。先日Pythonによる散布図アニメーションを取り上げました。 pythonで散布図アニメーションを試してみた - 株式会社CFlatの明後日スタイルのブログ これと同じようなことをiPhoneでやってみました。 事前準備 アニメーションに使う…

boost::multi_arrayのランダムアクセスに注意

※下記の内容はVisual Studio2010でコンパイルしました。gcc 4.8.2でコンパイルすると結果が異なります。詳しくはコメント欄をご確認下さい。 便利なboost::multi_array 多次元配列を実装するときに便利なboost::multi_arrayですが、ランダムアクセスが遅いの…

一挙紹介!動画アプリで使ったCocoaPods

もはやiOS開発に欠かせない存在になったCocoaPods。先日弊社からリリースしたアプリでも、複雑なUIやありがちな機能を簡単に実装するものから実装を少しラクにするようなものまで、いろいろなものを使っています。 スポーツ動画アプリ全10種類 | 株式会社CFl…

複数種類のiPhoneアプリを同時開発するときのTips

先日弊社からiPhoneアプリをリリースしました。 スポーツ動画アプリ全10種類 | 株式会社CFlat iPhoneで気軽にスポーツ動画を楽しめるアプリケーションをリリースしました。AppStoreにて配信中です。 このアプリではスポーツのハイライトや試合結果、最新ニュ…

CUDAでプログラミングする前にやっておきたいこと

こちらの記事もご確認下さい。 CUDA6.0用にCPUとGPUの速度比較コードを修正 - 株式会社CFlatの明後日スタイルのブログ GPUとCPUの速度比較をしたい 以前CUDAでのプログラミングが完成した際に、CPUとの速度比較を行いたいという当たり前の要望が上がりました…

PHPで返す304 Not Modified(2)

PHP

前回は、Last-ModifiedとIf-Modified-Sinceを用いてファイル更新の有無を確認しましたが、同じURLが状態に応じて別のファイルを表示する事がある場合には、上手くゆかない場合があります。例えば、ユーザーログイン時には指定した画像、そうでなければ別の画…

PHPで返す304 Not Modified(1)

PHP

普段なら、Apacheがファイル更新日を確認して適切にクライアントに返してくれるはずの304 Not Modified。これを「PHPを介してファイル内容を表示しよう」と思った瞬間*1、単純に実装するとリクエストの度にファイルコンテンツを全て送る事になって、特に画像…

MBaaSのParseでiOSにPush通知を送るチュートリアル

弊社の神経衰弱アプリシリーズではPush通知にMBaaSで有名なParseを使っています。Parseを使うと超簡単にモバイルアプリの通知を発行することができます。 神経衰弱アプリ三部作 | 株式会社CFlat まだ使ったことはありませんが、モバイルアプリやWebアプリの…

pythonで散布図アニメーションを試してみた

最近pythonを触り始めたのですが、散布図をアニメーションさせる方法が分からなかったので調べてみました。 散布図はmatplotlib.plt.scatter(x,y)で作成する事が出来ます。 また、アニメーションをさせる方法は二通りのやり方があるようです。 animation.Art…

数値計算ライブラリLAPACKはiOS標準で使えた

数値計算用ライブラリで有名なLAPACKですが、iOSではSDKのフレームワークをリンクするだけで使えるようになります。個人的には数値計算はまったくのノーマークだったので驚きました。 準備 プロジェクトにAccelerate.frameworkを追加。 で、インポート。 #im…

これでほぼ完璧! C++シングルトン基底クラスの決定版!

C++

シングルトンパターンは、デザインパターンがさっぱりわからないプログラマーでも聞いた事があるかもしれないくらい有名であるにもかかわらず、真面目に実装しようと思うと様々な問題が発生してしまいます。 具体的には、 static変数の初期化順序が未定義で…

iPhoneで音声解析!FFTで周波数特性を得る方法

iOSで音声を録音するのはもちろんできますが、FFTのライブラリも標準で組み込まれていて手軽に使えます。今日は録音した音声ファイルを解析して周波数特性(パワースペクトル)を得るところまでを紹介します。意外とそのものずばりの方法はなかなか見つから…

要らなくなったら勝手に消えるDictionary

C#

Dictionary で外付けプロパティを ある程度C#を使っていれば必ず使うことになる、System.Collections.Generic.Dictionary 。C++で言うところの std::map コンテナに対応するコレクションです。 キーと値の対応付けが簡単に作れるので、既存のオブジェクトへ…

Basecamp社(旧37signals)が推奨するリモートワークでのセキュリティ対策

2014年2月5日に37signalsがBasecampに社名変更しました。そのBasecamp社が37signals時代に出した本の中で一番新しい「強いチームはオフィスを捨てる: 37シグナルズが考える」を読み終えました。私達CFlatではリモートワークをしてもいいことになっているので…

Cocos2d-xの輪郭線とか影回りを実用的に魔改造してみた

つまり、CCLabelTTF::enableStroke やら CCLabelTTF::enableShadow のこと。Android ではどうだか確認していませんが、少なくとも iOS ではこんな感じの問題が起こりました:(1) iOS 7 で非推奨になった機能を使っているので、iOS 7 では輪郭線色が正しく出…

これだけ読めば全部がわかるC++のoperator new/deleteオーバーロードの注意点

……とか言いながら、全然「だけ」に留まらない分量になってるのは仕様(C++の)。 なお本記事は、operator new/deleteの概念はある程度理解し、その気になればメモリリークしない程度のoperator new/deleteを実装できるC++erに向けて書かれたものです。operat…

C++プログラマーよ!std::make_sharedを安易に使うべからず!

C++

boost::shared_ptrやstd::shared_ptrの便利さは、boostやC++11に慣れた方であれば当然ご存知かと思います(もちろん、循環参照の危険性や、それを回避するためのweak_ptrの使い方まで含めて)。 しかし世の中というものはさらに便利にできていて、この便利な…

iPhoneでお手軽画像変形

概要 斜めの方向から撮影してしまったけど、後から正面から撮った画像が欲しくなった事はありませんか? 例えば、以下の写真ような場合です。 実はこれを正面から撮ったように画像を変形する事が出来ます。 そう。ホモグラフィならね。こんな感じに出来ます…

60分で始めるiOSアプリのUI自動テスト

iOSのアプリケーションではモデル周りのテストと同じぐらいUI周りのテストが重要な気がするのですが、画面のテストってちょっと面倒ですよね。その上Xcode標準のテストフレームワークでは画面遷移などのテストができません。そこで、統合テスト用のテストフ…

jQuery.ajax() のリクエストパラメータを、指定した文字コードで渡す

jQuery.ajax() のレスポンスを指定した文字コードで取得する系の話はその辺にごろごろ転がっていますが、逆にリクエストを指定した文字コードで行う系の話がほとんど見つからなかったので、ライブラリを作成しました。 考え方としては、通常は UTF-8 で行わ…

テレビで放送も!iPhoneアプリ格安プロモーション4選

先日、弊社アプリ『音感検定 - 音の神経衰弱 -』がテレビ東京番組『オードリーの神アプリ』で紹介されました。 放送内容はこちらから見ていただけます。今回は、CFlatがアプリをリリースする際に行ったプロモーションに関して、記事にしたいと思います。 大…

フリーViewerで可視化するためのボリュームデータ出力方法!

今回は高機能フリーViewerであるParaViewを使ってボリュームデータを可視化する方法をご紹介します。 ParaViewをインストール まずはここからParaViewをインストールして下さい。 ParaViewの基本的な使い方はチュートリアルで学べます。ここに日本語のチュー…

Pivotal TrackerクローンのFulcrumは使えるのか

アジャイルなプロジェクト管理ツールの定番はPivotal Trackerと言っていいでしょう。Pivotal Trackerではユーザーストーリー(フィーチャ)やベロシティといったアジャイル開発の概念をそのままの形で表してくれるのですんなり入り易いです。なお、Pivotal T…

C++テクニック!可変長引数テンプレートの値をインデックスで取得

c++

早速ですが問題です。次のような場合、一体どうすればよいでしょうか? template <class T...> class Hoge { private : // TODO: T...のうち、N番目の引数の型を取得したい! } ; 何のためにそんなのが欲しくなるのかはいまいち謎ですが、まあ、やるとしたらこんな感じに</class>…

全宇宙の素粒子の数を超えて…C++で巨大数に挑戦!(おまけ)

c++

こんにちは、株式会社CFlatです。 前回『巨大数の計算』では、次のように書きました。 本当は不要な部分は元の値を参照した方が(特にBigIntを使う場合に)都合がよいのでしょうが、今回は割愛します。 が、折角ですのでもうちょっと頑張ってみます。人類の…

全宇宙の素粒子の数を超えて…C++で巨大数に挑戦!

c++

こんにちは、株式会社CFlatです。 早速ですが、C++で、巨大数の計算を行なってみたいと思います。 といっても今回は、多倍長整数、いわゆるBigIntとかそういう話ではなく、巨大数を表現するための表記……具体的には「コーンウェイのチェーン表記」の話です。 …

GPUの中を覗く!Visual StudioでCUDAをデバッグ

こんにちは、株式会社CFlatです。CUDAを利用したGPU側の処理をデバッグしようと思ったのですが、古い環境での記事しか見つからなかったのでメモしておきます。 と言っても私の環境も最新ではなく、window7, Visual Stdio 2010, CUDA Toolkit v5.0, Nsight Vi…

カオス的挙動をBlenderのpythonスクリプトで作成

Blenderシリーズ第3段はカオス的挙動に挑戦してみました。 カオス的挙動 Blenderでは簡単に力場を設定できるので、もしかしたら簡単にカオス的挙動が作れるのではと思い実際にやってみました。 結果は最後に動画を載せておきますが、それっぽい動きをしてく…

画像から3次元形状を復元!OpenMVGでSfMを試してみた

こんにちは、株式会社CFlatです。今回は2次元の形状からカメラ位置や3次元形状を特定する手法である、SfM(Structure from Motion)を試してみます。SfMを手軽に実行出来るツールとして、 Bundler VisualSFM 等があります。Bundlerはオープンソースですがソー…

Redmine裏技!複雑なチケット管理をカスタムクエリで超簡単に

こんにちは、株式会社CFlatです。Redmineといえばプロジェクト管理ツールの定番といっていい強力なツールですよね。弊社でもプロジェクトによってはタスク管理に使用しています。Redmineでは機能やタスクはチケットとして登録されていきますので、プロジェク…