読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

東京メトロオープンデータ (10) 応募完了

何とか形にはなったが... APIを使い続けるためにはコンテスト応募が必須なため、私にしてはかなり急ぎでアプリを作った。まだ直したいところはあるがもう期限ぎりぎりなのでこれであきらめることにした。 ソースコード sfpgmr/metrop sfpgmr/metrop · GitHub…

Bootstrap 3.2のresponsive embedは何気に便利である。

Bootstrapのresponsive embedは何気に便利である。Youtubeの動画を貼りつけるとモバイル画面だとうまく縮小してくれないが、それをうまい具合に縮小してくれるのが、responsive embed機能である。この機能を使用するには、 Youtubeの動画<iframe>を <div>で囲む <div</iframe>…

はてなブログのカスタマイズ - 月別アーカイブをBootstrap Navbar に加える

今日は引き続き、はてなブログのサイドバーモジュールをBootstrap Navbarに変換するコードを書いていた。 成果は以下の通り。実際の実行例はこのブログの上部にあるメニューがそうである。 はてなブログのカスタマイズスクリプト 基本的にはサイドバーモジュ…

はてなブログのカスタマイズ - Bootstrap Navbarの設置

今日はサイドバーのモジュールをBootstrapのNavbarに変換するコードを書いていた。NavbarはJSに依存しているのでCSSのカスタマイズだけでは対応できないので、フッター下にサイドバーメニューを変換し、Navbarを表示するコードを書いている。 Navbarの実装に…

Bootstrapによるはてなブログのカスタマイズ - なんとなく方向は固まったかな。

カスタマイズしたものに変更 昨日カスタマイズしたものを実際に反映した。今見えている「見てくれ」がそうである。 LESSファイルはここにある。ソースコード自体は「boilerplate」をベースにしている。 実際行った手順は下記の通りである。 Hatena-Blog-Them…

LESS - extendの書き方と@import (reference)

ブログテーマをBootstrapベースでカスタマイズしている。 今日はLESSの知識を深めるためにLanguage Features | Less.jsを読んでいたのだけれども、extendの書き方や@importも機能が拡張されていることを知った。日本語のLESSの情報はこの辺りアップデートさ…

LESS - &:extend()と引数なしMixinの違い

LESSでクラス定義を&:extend()と引数なしMixinした場合の結果がどう違うのかテストしてみた。どちらも事前定義したクラス定義を適用するものである。 .btn-test { text-align:center; border:1px solid gray; color:black; &:hover { background-color:red; …

はてなブログをBootstrapベースでカスタマイズする

今日はBootstrapをおさらいしながら、「boilerplate」テーマのカスタマイズを行っていた。 どのようにカスタマイズするのかをもう少し具体的に言うと boilerplate.lessの@import部分をすべてリマークする。 代わりにbootstrap.lessを@importする。 boilerpla…

boostrapのカスタマイズページでのカスタマイズ結果を再び読み込ませる

Bootstrapがバージョンアップした。 さっそくバージョンアップしたいと思ったがカスタマイズページでCSSをいじっている。しかしどこを修正したか忘れてしまった。手元にはカスタマイズ時の.zipファイルがあるのみだ。困った。。 ググッたところ、zipファイル…

ポケミク・シーケンサーを作る(11)

ワールドカップが始まったせいでさらにプログラミングに割く時間が無くなっているが、まあぼちぼちとやっている。今日はコンテキストメニューを作った。Bootstrapのdropdown-menuとあとはjQueryとの組合わせで比較的簡単に作ることができた。ピアノロール上…

ポケミク・シーケンサーを作る(8) 縦ピアノロールエディタの実装

じわじわ機能を実装中 縦ピアノロールエディタをじわじわ実装中である。今のところマウスでのノート挿入・移動が可能である。Undo/Redoもできる。挿入したノートを再生ボタンで鳴るようにした。というかこれはBugで鳴らなかっただけなのだが。 縦ピアノロー…

Box2D + WinRTでゲームを作る (20) – タイマー遷移コードの改良

タイマー遷移コードの改良 ゲームオーバー表示を数秒表示してメニューに戻るコードは作成できたけれども、表示をキャンセルしてすぐメニューに戻るようにし、このタイマー遷移コード自体を使いまわしできるようにしてみた。 template <typename EventClass,int Resolution> task<void> create_timer_tas</void></typename>…

Box2D + WinRTでゲームを作る (18) – Boost.MSMで実装を進める

実装を進めている お粗末だが今のところできている状態遷移コードをArgoUMLというツールで書いてみた。ここんところ仕事もばたばたしているし、コンフェデ杯もあったのでプログラムに割く時間はあまりなかった。 まあこんなところだ。ゲームの状態遷移はもう…

Box2D + WinRTでゲームを作る (17) – Boost.MSMで実装を進める

Boost.MSMでゲームの大まかな遷移をぼちぼち実装している。なかなか面白い。 何が面白いのか語れるほど習熟しているわけではないので、どう言えば的確なのかもわからないで書くのだけれど、まあMSMに状態遷移の分岐処理を任すことができるので、その状態でイ…

Box2D + WinRTでゲームを作る (16) –bleis 削除ゲーム

Boost.MSMを使って今試行錯誤しながらコード書いている。書いている途中でゲームのMSMによる実装例を発見。 Boost. 勉強会 #5 に参加してきた。 このコードは非常に読みやすくかつすっきりした感じである。参考にさせていただこう。

Box2D + WinRTでゲームを作る (15) – 状態管理をBoost.MSMで実装する

今週は水曜日あたりまでBoost.MSM関係のドキュメントをチェックして、木曜日からおそるおそるコードを書き始めた。チェックしたドキュメントは下記。MSMで実装しようとするとほぼ必ず読み返している。 Boost.MSMのドキュメント Boost.statechart / Boost.msm…

Box2D + WinRTでゲームを作る (14) – 状態管理をBoost.MSMで作る

下のソースコードはXAML DirectX 3D shooting game sampleのApp.xaml.cppのUpdateメソッドを引用したものである。このコードはゲーム状態管理の実装でもある。 //-------------------------------------------------------------------------------------- v…

Box2D + WinRTでゲームを作る (12) – システム構成を考える

ちょこちょことUIのコードをいじっているが、まだしっくりとは来ていない。どうも全体像がつかめないし、何がどう機能しているのかもよくわからない。キーボード入力ってどういう風に書けばいいの?というレベルである。Win32 APIだとウィンドウメッセージを…

Boost.Lockfree - ringbufferがなくなっていた

Boost.Lockfreeが1.53.0から入ったのだけれど、ringbufferがなくなっていた。いやなくなっているのではなくて「spsc_queue」に名前が変わり、インターフェースがSTLコンテナ風に変わったのだ。enqueueがpushに、dequeueがpopなど。でもSTLのqueueとかとは実…

STED2の改造 - C++の文字列処理

STED2のソースコードを読んでいると、最初のmain関数のところなどはもうファイル読み込み、ファイル名の操作で相当なコード量となっている。これをライブラリに任せれば相当すっきりし、コードの見通しもよくなる気がする。なのでコードを読みながら改造する…

Boost.Coroutine でフィボナッチ - C++でゲームプログラミング

Boost.Coroutine でフィボナッチ - C++でゲームプログラミング. このサンプルは簡単で明快だ。 なるほど、引数がファンクタでyieldキーワードなんですな。そのファンクタに引数を与えて呼び出すと、コルーチンの戻り値になるということがよくわかる。 Boost.…

Boost.Lockfree ロックフリーキュー - Faith and Brave - C++で遊ぼう

Boost.Lockfree ロックフリーキュー - Faith and Brave - C++で遊ぼう. Lockfreeの触り。私もLockfreeを使ってエレガントなマルチコア対応のプログラムを書きたいものだ。 でもマルチスレッドやマルチコアのプログラミングって難しいんだよね。排他制御やら…

コルーチンって好きだなぁ

Boost 1.53.0を今ビルドしようとしている。atomicやlockfreeも楽しみだが、Coroutineに一番惹かれるな。 コルーチン(co-routine)とはプログラミングの構造の一種。サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはい…

Boost - Version 1.53.0

Version 1.53.0. とうとうAtomicとLockfreeがリリースされた。 Coroutineもライブラリ入りしたのか。面白そうですな。Boost.Contextベースなんですな。

フリーストアを使わない可変長配列 - Faith and Brave - C++で遊ぼう

フリーストアを使わない可変長配列 - Faith and Brave - C++で遊ぼう. 面白い考え方だ。実行時のフリーストア確保のオーバーヘッドを除去しようという試み。必要容量が事前に把握できるコンテナなんかに使えるんじゃないだろうか。

Media Foundationの再生サンプルの状態管理をMSMで行う

今どうなっているかというと、コンパイルが通り実行できるようになった。状態管理はMSMで行って遷移と同時にクラス外にイベントを飛ばすのはBoost.Signalで行う。 まだ状態テーブル定義は完全ではない。コードを見ていただくとわかると思うが、実装中に状態…

Boost.MSM(8) – syntax errorでまだまだはまり中は解決。

コンパイル時にsyntax errorが出る問題は解決した。 大量のエラーでげっそりしていたのだけれど、丹念にエラーを追っかけていくことにして、まずはエラーコードから見ていくことにした。 H:\libs\boost\include\boost-1_52\boost/utility/value_init.hpp(107…

Boost.MSM(7) – syntax errorでまだまだはまり中。

エラーの原因は皆目見当がつかない。サンプルとの違いは実装クラスの継承がmsm::frontだけでなく、Media Foundationからのイベントを受けるインターフェースも継承しているところぐらいだ。こんなところで躓いているとまた勢いが萎えてしまうので早いとこ解…

Boost.MSM(6) – syntax errorではまり中。

Boost.MSMを使って状態管理をするクラスを作りコンパイルしてみたところ、下記エラーが出現。syntax errorなんていうのはあまり見ないエラーだ。BASICなら「Syntax Error in 10」とかよくあったが。 1>H:\libs\boost\include\boost-1_52\boost/utility/value…

Boost.MSM(5) - イベントクラスの定義

Boost.MSMにおけるイベントの定義。状態マシンのprocess_event()の引数に渡すことにより、状態マシンの状態?により遷移が起こる。イベントもやっぱり型で持つのである。 namespace ev { struct Init {}; // 初期化イベント struct OpenURL // ファイルを開…

Boost.MSM(4) - Orthogonal regions

Basic front-end - 1.52.0. Boost.MSMの実行中にエラーが発生するとどういう挙動をするかなーとか、エラー処理を考えるといっぱい状態を作らないといけないなーとか考えていた。 この項目にヒントが書いてあった。 あとは非同期処理の場合どうするかなー。

Boost.MSM(3) - 状態クラスの実装

Media Foundation SampleにあるCPlayerクラスをMSMで書き換えてみることにする。 まずは状態クラスの定義をしてみる。CPlayerクラスには状態管理のためのenum定義がある。これをそのまま状態クラス定義に置き換えればよいだけだ。 namespace sf { namespace …

Boost.MSM(2) - 状態マシンの実装方法

Boost.MSMを使用した実装方法はだいたい下記のとおりである。 状態マシンクラスを定義する。状態マシンクラスはmsm::front::state_machine_defを継承する。 状態クラスを定義する。状態クラスはmsm::front::state<>を継承する。 イベントクラスを定義する。 …

Boost 1.53.0 リリースノート - boostjp

Boost 1.53.0 リリースノート - boostjp. おー。ようやく正式にLockFreeがライブラリに含まれたか。

Boost.MSM (1)

Boost.MSMというのはそもそも何なのかと言うと、UMLのステートチャートをC++言語で書けるようにするためのライブラリである。いや、ステートチャート図をコードに落としやすくするライブラリというべきなのかもしれない。 私はUML自体あんまりよくわからない…

Meta State Machine (MSM) - 1.52.0

Meta State Machine (MSM) - 1.52.0. また Boost MSMを勉強しはじめた。すっかり忘れてしまっているなー。 Media Foundation SampleのPlayerクラスのコードを眺めてみていると目につくのが状態変数まわりのコードでこれをMSMに置き換えるとすっきりしないか…

Boost 1.51がいつのまにやらリリースされていた。

使いたいが、1.50の時はVS2012だとビルドエラーが発生していたんだよね。今回はどうか。リリースノートを見てもサポートしていなさそうだが。

Boost 1.50.0 リリースノート - boostjp

Boost 1.50.0 リリースノート - boostjp. お、リリースされたのか。

Boost.MSMによる状態遷移の実装

そこそこいけそう Boost.MSMによる状態遷移の実装だがそこそこいける感じがしてきた。メニュー画面→ゲーム画面→メニュー画面という画面遷移を実装してみたがいまのところきちんと動いている。 ゲーム開始ボタンを押すと、ゲーム画面に遷移する。Backボタンを…

XAMLによるUIの実装を続ける

Boost.MSMで状態管理ができるようになったので、XAMLによるUIの実装を続けることにする。

Boost.MSM - とりあえず動いた

とりあえず動かすことができるようになった。 ソースコード 最初に遷移テーブルを書いておけば、状態管理に関するコードをほとんど書かなくて済むのは便利だ。状態に応じた処理もオブジェクト指向的にできるしね。

ぼちぼちBoost.MSMで実装している

ぼちぼちBoost.MSMで実装している。結構面白くなってきた。

Boost.MSM - なんとなく方向性が見えてきた

昨日今日と思案してなんとなく方向性が見えてきた。ので実装を進めることにした。 突き詰めるとフレームごとのアクションをどうMSMの実装と絡めるかという問題なのだ。ようするに問題認識自体もやっとしていたわけだ。 フレームごとのアクションは、状態マシ…

eUML (experimental) - Boost 1.50.0 beta1

eUML (experimental) - Boost 1.50.0 beta1. Boost.MSMの中でもひときわ妖しい雰囲気を漂わせているのがこのeUMLというやつだ。そう思っているのは私だけかもしれないが。遷移テーブルの書き方がUMLの「それ」になっているという代物だ。これを実現するため…

Boost.MSM ...

Boost.MSMを使ってゲームシーンを簡潔に実装できないかなとか考えているんだけど、なんかまだもやーっとした理解で、なかなか実装に結びつかないんだよね。PCを前に思案ばかりしている。 状態遷移のコードと、いままで作ったコードをどう組み合わせれば効率…

Boost.MSMによる状態管理の実装

Boost.MSMを使って状態遷移コードを簡単に実装できないかなということで試してみている。 実際のアプリケーションに組み込むと、なかなかサンプルコードどおりのように簡単にはいかない。なぜならサンプルコードというのは説明をわかりやすくすることを最優…

Boost.Msm guide - Redboltz

Boost.Msm guide - Redboltz. 今日はこればっかり読んでいた。すごくわかりやすかった。Sub Machine stateとかDeferred eventsとかよくわかった。MSMの前にUMLのステートチャートをきちんと理解しないといけないのかもしれないけれど。まあ趣味なんでそこま…

Boost.MSM - スケルトンコードを書いてみた

乏しい知識でスケルトンコードを書いてみた。まだ未完成だけれど。とりあえずこんな感じでいいのかな。要するにイベントや状態を型で表現するのだね。遷移テーブルは20個がデフォルト(mpl::vectorのデフォルト)らしい。遷移はまだ全然足りないので拡張し…

Boost.MSMを使ってみる

そろそろ状態管理が必要になってきたので、Boost.MSMを使用してみようと思う。すっかり内容は忘れてしまっているので、思い出すところからだが。

出た!STAの例外

wasapi管理クラスをテストしたら出た!STAに関する例外! スレッドモデルのルールに抵触しそうなことはまだしてないんだけどね。。というかまだルールもわかっていないので抵触しているのかさえもわからない状態。スレッドモデルのところはきっちり押さえと…