三次元日誌(hugo)

Python3のasyncioについてのメモ

python

PythonのVersion3.4から始まったasyncio周りについてのメモ。 環境は、Windows10上のpython3.6(64bit)。

threejsとwebsocketを使った開発環境

threejs websocket

threejsのソースを自前で、minimizeする環境を模索する。

threejs再始動

threejs

前のサイトはgulpを使ってtypescriptでthreejs.jsしていたのだけど、hugoで生成している今サイトでは素のjavascriptかなぁ。 es6の練習を兼ねて。

C++でMessagePack-RPCを実装する

cpp msgpack

最近のC++(-std=c++14)でMessagePack-RPCを再実装してみる。

Header-OnlyのMessagePack実装とmsgpack-rpc-asioの更新

cpp msgpack asio

車輪の再発明的だけどmessagepackのc++実装をまた作った。

Blenderで揺れ物

blender

MmdUtilityでmmdモデルをインポートして物理を取り入れるべく、Blenderの物理で揺れ物をセットアップする方法を調べている。

Geek向けアイコンフォントfont-mfizz

hugo

bootstrap入れたのでfontawesomeも取り入れてみたのだが、よりgeek向けのアイコンフォントを見つけた。

boostから独立したasio

cpp asio boost

vcpkgを眺めていたらnot boostなasioを発見した。

vc向けのメタビルドツールvcpkgを発見

buildtool cpp uwp

uwp向けのlibpngのビルドのエラーを修正する過程でvcpkgを見つけた。

vc向けのメタビルドツールの予感。

UWPでNativeDllを使う

uwp

UWPでNativeのDLLを使うとどんな感じなのか試してみた。

CMakeのCache機構のせいで挙動を勘違いした部分を書き直し。

MmdBridgeのビルドスクリプトを作った

mmdbridge python

MmdBridgeのビルド手順をまとめたpythonスクリプトを作った。

Boost.PythonのデバッグビルドがリンクするPython.dll

mmdbridge python

mmdbridgeのビルドで必要になったBoost.Python周り。

MmdBridgeをビルドしてみる

mmd python

MmdBridgeがよさげなのでビルドしてみる。

Windows上でPython3.5をビルドする

python

VisualStudio2015でPython3.5(64bit Debug)をビルドする。

pymeshio再構築計画

blender python

はじめてのBlenderアドオン開発を読んでいる。pymeshioを更新してBlenderの作法にちゃんと適合させようというわけである。

中国語単語帳

中文

中国語単語帳。 発音と意味を調べたついでにvimで入力して確認。

Holotoolkit-unityでMSBuild-15.0(VS2017)を使う

unity hololens

VS2017からレジストリの構成が変わっている。

中国語

中文 vim

昔かじった中国語を再開。

RenderingスレッドでC#関数を呼び出すと次回play時に固まる

unity

何のことか分かりにくいが以下のコードで再現できる。

public int m_count;

void OnRender(int eventID)
{
    m_count++;
}

void Update()
{
    var p = Marshal.GetFunctionPointerForDelegate(OnRender);
    GL.IssuePluginEvent(p, 0);
}

Windows Creators UPDATEが来たしWSL環境を整備

windows wsl linux

Windows SubSystem for Linux

わりとよくなっていそうな感じなので使ってみる。

Unity向けのJSON Parserを作成中

unity json

いつもJSONUtilやMiniJson+JsonNodeを使うのだけど数値周りのcastで苦しんだので自前でつくることにした。

HoloToolkitのInputManager

hololens

HololensのInputManagerの動きを読んでみた

Hugoに乗り換え

hugo

なんとなくまたサイトシステム更新。

IPythonことはじめ

ipython
「IPythonデーターサイエンスクックブック」を買ってきたのでやってみる。 洋書の原書も買ってたが家で塩漬けになっていたり・・・ インストール

UnityのSerializedObject

unity

UnityのSerializedObjectのメモ。

WebPackやってみる

web webpack
gulpだけでいっぱいいっぱいだったので敬遠していたwebpackをやってみる。 #ことはじめ http://webpack.github.io/docs/ http://webpack.github.io/docs/tutorials/getting-started/ webpackをインストールして > npm install webpack -g サ

UnityでToon

unity shader

toon

Toonシェーダーをやってみる。

UnityのShaderを書いてみる

unity shader

アルファブレンディング・シャドウキャスター・シャドウレシーバー

  • アルファブレンディング
  • シャドウキャスター
  • シャドウレシーバー

なシェーダー。

UnityのUsePassを追う

unity shader

下記のUnityの半透明シェーダーがいったいどういうメカニズムなのかを調べる。 Shaderの元ネタはこちら

Three.jsでbvh

threejs typescript bvh
/ BVH labsを参考にやってみる。 モーションは 続 BVHファイルを探してみたで紹介されていた https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture から拝借。 上記のサイトのコードをtypescrip

Three.jsでpmd読み込み

threejs typescript mmd
こちらのモデルを使わせていただいております。 threejs_pmd_loader.ts source PmdLoader.ts source 変換せずに直接Pmdを読み込むべくカスタムローダーを作ってみよう。 まず、SJIS操作が必

node.js(Windows版)を自前ビルドする

windows node.js
謎のクラッシュ(FFIでネイティブプラグインがアクセス違反で死ぬ)を追跡するため、 VCのデバッガをアタッチするべく自前ビルドする。 node-v5.3.0.tar.xz 7zip

node-ffiでstdcallが使いたい(頓挫)

windows node.js
Windows上でnode-ffiでdllから関数を呼びだしていたのだが、 dllにコールバックを登録した呼び出しを繰り返していると死ぬという

特定のHtmlElementを画面いっぱいにするToggleの実験

web jquery
“W” translate | “E” rotate | “R” scale | “+” increase size | “-” decrease size Press “Q” to toggle world/local space, keep “Ctrl” down to snap to grid close ボタンが押されたら、最前面にposition: fixedの板($modal)を表

Three.jsのトランスフォームコントロールでメッシュをマウスで移動

threejs typescript gui
"W" translate | "E" rotate | "R" scale | "+" increase size | "-" decrease size Press "Q" to toggle world/local space, keep "Ctrl" down to snap to grid source 今回は、本家サイトのサンプル http://threejs.org/examples/#misc_controls_transform をやってみよう。 まず、TransformContr

dat-guiを試してみる

threejs typescript gui
view typescript view javascript たまにthree.jsのデモと連動して使われているGUIライブラリdat-guiを試してみる。 https://code.google.com/p/dat-gui/ http://workshop.chromeexperiments.com/examples/gui/#1--Basic-Usage https://stemkoski.github.io/Three.js/#gui ライブラリを導入 > bower install dat.gui > tsd query dat-gui

FontAwesomeを取り入れる

web font
https://fortawesome.github.io/Font-Awesome/ 取り入れてみた。 cssをセットアップして アイコンを選択してコピペすると。 無駄にアイコンを配置してみよう。 fa-lg fa-2x fa-3x fa-4x fa-5x なるほど。 <i class="fa fa-wrench fa-5x"></i> iでア

Socket.IOな実験環境

web node.js express socket.io gulp
Socket.IOを実験する環境のメモ。 Expressは、serve-staticで静的なファイルのhostingが目的兼後で拡張できるよう

Treeを表示・操作する

web javascript gui
JavascriptでTreeを表示操作するライブラリを探してみる。 なんとなくサンプルが充実している jqTree にしてみた。 このサンプルに必要だったの

Node.jsのアップデート

web node.js
ちょうど組み込まれているv8エンジンのバージョンが3から4に上がる直前にインストールしていたようで、 node.jsのバージョン > node --version v0.12.7 > node -p

Three.jsのEditor

threejs gui
Three.js本家のサイトにeditor (beta)というリンクあるのだけどこれ面白いなぁ。 わりといろんなことができそうだし、いまわしの中

Three.jsのBuild

threejs gulp
骨入りモデルとかやってみようかと思ったのだけど、その前にThree.jsのソースを見やすい状態で作業したい。 結合前のThree.jsを自前ビ

Three.jsのJSONモデルフォーマット

threejs typescript
source 外部のJSONに記述されたモデルを読み込む機能がある。 External models in Three.js を見てやってみた。 OnLoad(geometry: THREE.Geometry, materials: THREE.Material[]) { // create a mesh with models geometry and material var material = new THREE.MeshPhongMaterial(materials[0]); var mesh = new THREE.Mesh( geometry, material ); mesh.rotation.y =

グリッドと軸と光源とFPS表示を入れる

threejs typescript
source シーンを強化してみる。 軸 先人が記事を残してくれていたので楽ちん。 Three.js AxisHelper //軸の長さ1000 var axis = new THREE.AxisHelper(1000); //sceneに追加 this.scene.add(axis); グリッド Three.js GridHelper //G

Three.jsにマウスによる視点操作を入れる

threejs typescript gui
source 今回は、TrackballControlsを導入します。 TrackballControlsはThree.jsのライブラリ内に含まれるのでは

TypeScriptでThree.jsことはじめ

threejs typescript

TypeScriptを学び始めた目的のひとつであるThree.jsをようやくはじめた。 「Node.jsとSocket.IOで連結してリアルタイムにシーンをアニメーションするっ」とか 遠大な構想だったのだが小さいところから始めよう。

MongoDBでCRUD

web mongodb node.js express
“シングルページWebアプリケーション”に説明されている mongodbをバックエンドに、node.js + expres

Jadeを入れてみる

web jade
練習用に入手してきた”HTML5/CSS3 モダンコーディング”を写経しながらjadeを取り入れてみる。 extendで

BrowserSyncのws設定を知らなかったせいでWebSocketのUpgradeがうまくいかなくてはまる

web websocket
前から写経しながら読んでいる 「シングルページWebアプリケーション」がようやく終盤に差し掛かってきた。 Socket.IOで接続するところがあ

gulpで静的サイト生成その2

web gulp
gulpで静的サイト生成その2 引き続き、サイト生成作業を続行中。見た目は置いておいて(bootstrap入れたけど)機能を優先して作ろう。 「

gulpで静的サイト生成

web gulp
gulpで静的サイト生成 1年ほど放置していたけれどまた戻ってきた。 html生成システムをOctpress, Tinkererと渡り歩いてきたが

cygwin上のxorg上のtermで日本語を表示する

windows cygwin x11 locale
cygwin上のxorg上のtermで日本語を表示する cygwin版のxorg上のxtermで全角文字が微妙にずれる件との戦い。 .Xreso

gvimのためにcygwinでxorg導入

windows cygwin x11
gvimのためにcygwinでxorg導入 環境をcygwinに変えたらシンボリックリンクを使えるようになった。MSYSの時より綺麗にdotf

cygwinの導入とgit最新版のビルドまで

windows cygwin git
cygwinの導入とgit最新版のビルドまで しばらくWindows上のメインのshellをmsysgitのbashにしていたのだが、 久しぶり

gypでdebugとrelease設定を分ける

buildtool python gyp cpp
gypでdebugとrelease設定を分ける gypでvc2010向けのプロジェクトが生成できたので、 実用に向けて設定のテンプレート的なもの

python製のビルドツールgypを使ってみる

buildtool gyp python cpp
python製のビルドツールgypを使ってみる gyp(Generate Your Projects) は、 pythonで記述されたプロジェクト生成ツールで設定からVC向けプロジェクトや、GC

cmakeを使ってみる(Windowsかつコマンドラインで)

buildtool cmake opencv
cmakeを使ってみる(Windowsかつコマンドラインで) ArUcoを使おうとしたら、msvcpdのvc10版を要求されてvc12でデバッ

SharpDX事始め

csharp sharpdx wpf d3d11
SharpDX事始め WPFとかDirectX11とかKinectあたりのAPIに慣れておきたいということで、 SharpDXの練習を始めた。 S

vim環境整備

windows vim
vim環境整備 Windows8でコーディングができるようにvim回りを整備する。 コマンドライン環境としてPowerShellを採用してそこか

VS2013 express editionを入れてみた

windows
VS2013 express editionを入れてみた で、DirectX9のプロジェクトをビルドしようとしてみたのだが D3DXが無くなっておる。 こいつは面倒くさいこ

Unity開始

unity

仕事の都合もあって、Unityの学習を開始。

Windows8導入

windows
Windows8導入 なんとなく去年買ってきてきてLinuxで使っていたマシンに SSDを買ってきてWindows8をインストールしてみた。 UE

pythonによるビルドスクリプトwafを使い始めた

buildtool waf python cpp
pythonによるビルドスクリプトwafを使い始めた pythonによるビルドシステムwafを使ってみた。 使ってみた感触ではvcとgcc両方で

wafでdebugとreleaseの設定を記述する(variant)

buildtool waf python cpp
wafでdebugとreleaseの設定を記述する(variant) wafでdebug版とrelease版の出力を分けるにはvariantな

右辺値の理解

cpp
右辺値の理解 そろそろ右辺値を抑えておきたい気がしたのでテストコードを書きながら実験してみた(VC2010 Express Edition)。 http://msdn.microsoft.com/ja-jp/library/vstudio/dd293665.aspx を参考に右辺値

Tinkererに引越し

web python tinkerer
Tinkererに引越し Octpressが手に負えなくなってきたので手軽に使えそうな tinkererに引越しというかシステムを変更することに

MinGW環境

windows mingw
MinGW環境 Irrlichtで開発を進めるにあたって開発環境をVC2010ExpressEditionからMinGWに乗り換えることにした

大きさ基準が必要だ

irrlicht oculus
大きさ基準が必要だ pmdの読み込み時スケーリングを実装した。 とりあえずドワーフと同じくらいの大きさになるように2.5倍という適当な数値を選択

FPSカメラにOculus回転を仕込んだ

irrlicht oculus
FPSカメラにOculus回転を仕込んだ IrrlichtのCSceneNodeAnimatorCameraFPSにOculusを合体した。 I

Oculus来たー

oculus irrlicht
Oculus来たー 6月10くらいにぽちってから2週間くらいで到着。いいタイミングに発注したらしい Oculusことはじめ oculus sdk downloadあ

IrrlichtにVRPNを合体する

oculus irrlicht vrpn
IrrlichtにVRPNを合体する 遂にOculusが発送されたらしくHongKong Postから国内に入ったらしい。今日明日には来るで。 v

IrrlichtにMsgPackRPCを仕込む

irrlicht msgpack
IrrlichtにMsgPackRPCを仕込む Oculusの通販ステータスが早くもProcessingに変わって届くのが楽しみな今日この頃。

Gstreamerを始めてみた

gstreamer

動画プログラムでもしてみようということでGstreamerをはじめた。

Oculusぽちった

oculus irrlicht
Oculusぽちった 会社で見せてもらったOculusに感銘を受けて本家サイトでぽちった。 8月発送の見通しとのことなのでそれまでに開発環境を用

おれおれmsgpack-rpc-pythonを作る

python msgpack
おれおれmsgpack-rpc-pythonを作る MsgPackRPCのpythonバインディング(クライアント側)が必要になったのでmsg

Pythonモジュールをユーザーローカルにインストールする

python
Pythonモジュールをユーザーローカルにインストールする $ python setup.py installをユーザローカルにインストールする方法 $ PYTHONPATH=$HOME/local/lib64/python3.2/site-packages python setup.py install --prefix=$HOME/local ではなく下が

GentooでBluetooth

linux gentoo bluetooth
GentooでBluetooth Gentooでbluetoothを使う。 http://wiki.gentoo.org/wiki/Bluetooth dmesg [22782.149236] Bluetooth: Core ver 2.16 [22782.149244] NET: Registered protocol family 31 [22782.149245] Bluetooth: HCI device and connection manager initialized [22782.149252] Bluetooth: HCI socket layer initialized [22782.149254] Bluetooth: L2CAP socket layer initialized [22782.149255]

Gentooでネットワークインターフェースがeth0にならない件

linux gentoo network
Gentooでネットワークインターフェースがeth0にならない件 最近インストールしたAMDのオンボードEtherと、MacBookAirのU

hwclockの設定

linux gentoo
hwclockの設定 起動時のエラーメッセージ Failed to sync clocks に対処する。 ずっと以前からいつも出ていたような気がするが気が向いたので調べる。 発生源はh

alsaとかpulseaudio設定

linux gentoo
alsaとかpulseaudio設定 gentooの音周り http://www.gentoo.org/doc/ja/alsa-guide.xml alsa # lspci | grep -i audio 00:01.1 Audio device: Advanced Micro Devices [AMD] nee ATI Trinity HDMI Audio Controller デジタル出力から鳴らす。 カーネル的には&r

xorgインストール

linux gentoo x11
xorgインストール gentooにxorgをインストールする The X Server Configuration HOWTO http://www.gentoo.org/doc/en/xorg-config.xml /etc/portage/make.conf INPUT_DEVICES="evdev" # echo "x11-base/xorg-server udev" >> /etc/portage/package.use # emerge -av xorg-server # env-update # source /etc/profile fglrx http://wiki.gentoo.org/wiki/Fglrx AMD A10 向けにfglrxドライバ #

Gentoo再構築

linux gentoo
Gentoo再構築 gentooのルートファイルシステムに10Gを割り当てていたのだがいつのまにかディスクフルになってしまった。 portage

msgpack-rpc-asioの関数登録と実行

cpp msgpack asio

msgpack-rpcのリクエストは、

[type, msgid, method, params]

という形式なのでmethod名をstd::stringとしてparamsをstd::tupleとして得られる。 これをサーバ側で如何に呼び出すかについて。

可変長テンプレート引数

cpp msgpack asio

引き続きmsgpack-rpc-asioを実装しているのだが、可変長テンプレート引数(valiadic template)を使うと関数登録のような場合にうまく書けることがわかった。

lambdaの引数の型を得たい

cpp msgpack asio

msgpack-rpcの関数登録の都合上、lambda関数から引数の型を得たい。 下記のような書き方をしたい。

template<typename R, typename A1, typename A2>
void register_func(const std::stiring &func_name
    , R(*handler)(A1, A2)) 
{
    // 関数登録 
}

int main() { 
    // errorになる 
    register_func("add", [](int a, int b)->int{ return a+b; });

    return 0;
} 

msgpack-rpcのasio版を作成中

cpp msgpack asio

連休から始めていたmsgpack-rpcのバックエンドをasioに置き換えてWindowsでも動くようにする試みがやっと目処が立った。

release

pymeshio
release githubに報告が来ていたのを修正してpymeshioを更新した。 最近更新していて思うのだがgithubとかpypiではなんとも思わない

Qt5.0.2が来ていた

qt5
Qt5.0.2が来ていた Qt5.0.2がReleaseされた。 VC版のQt5.0.1ではglewの使用に支障があったのだけど無事解決。 これで

QtでOpenGLを使う

qt4
QtでOpenGLを使う Qt5でOpenGLを使おうとしていたのだが、なんかglewを使うことができずに失敗した。 英語の情報によると5.0.

long型のサイズ

cpp
long型のサイズ x86_64ではlong型のサイズが8byteな事を知った。

Octopress整備

web ruby octopress
Octopress整備 Octopress整備。 続きを読むを入れてみた。 <!-- more --> トップがだいぶすっきりする。 カテゴリーリスト インストールしてみた

Markdown形式メモ

web ruby octopress
Markdown形式メモ Octopressの記述形式であるMarkDown。 githubのREADME.mdの書式でもあるのでちゃんとマスタ

Mir

linux
Mir Waylandなかなか来ないと思ったら、Mirなる新しいのが進行中らしい。 http://cpplover.blogspot.jp/2013/03/ubuntumirunityqtqml.html QtでかつOpenGLESというのはちょうど興味のある方向性な

Boost.GIL再学習

cpp boost
Boost.GIL再学習 Boost.GILを再学習。 {% include_code boost gil practice lang:cpp gil_practice.cpp %} 前半はオレオレImageクラスの記述で画像の読み書きにboost/gil

octopress調整中

web
octopress調整中 とりあえずタイトルとか入れてみた。 あと、syntax highlightを試してみた。 syntax highlight http://octopress.org/docs/plugins/codeblock/ python3の方が参照さ

sphinxも入れてみる

web python sphinx
sphinxも入れてみる OctopressのサブディレクトリにSphinxを入れた。 今回のディレクトリ配置 work + octopress + Rakefile + _deploy + sphinx + Makefile + source + conf.py + build

更にoctopressに引越し

web ruby octopress
更にoctopressに引越し また、引越し。 2012年11月26日にhatena diaryからtdiary on herokuに引っ越していたのだ

QTableViewとQAbstractTableModel

python pyqt4

ディレクトリ表示をする専用のウィジェットがあったような気がするが、練習のため実装。

カスタムデリゲート

python pyqt4
C++のQt4と平行してPyQt4を使い始めた。大概の用途にはこっちで十分な気がする。 pyqtのチュートリアルには、 http://zetcode.com/tutorials/pyqt4/ がいい。wxWidge

Unity WebGL Player | UnityProject Unity WebGL Player | UnityProject UnityProject « created with Unity » var Module = { TOTAL_MEMORY: 268435456, errorhandler: null, // arguments: err, url, line. This function must return 'true' if the error is handled, otherwise 'false' compatibilitycheck: null, dataUrl: "Release/WebGL.data", codeUrl: "Release/WebGL.js", memUrl: "Release/WebGL.mem", };