non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

2016年第2四半期振り返り

おはようございます。最近、長男が気づくと、床の上で寝ています。(ベッドからの落下に備えて敷いてある、掛け布団の上です。)@kjunichiです。

良かった点

Blender+Python

そこそこ、自分がやりたいことが、BlenderPython使って記述出来るようになってきた。

Blenderでの流体や剛体のアニメーションがなんとなく作れるようになり、これをPythonスクリプトでアニメーション作成まで 自動化したい。

www.youtube.com

www.youtube.com

www.youtube.com

www.youtube.com

www.youtube.com

RustでOpenGL

gliumのチュートリアルを少しだけやった。

Bonjourがすこし分かってきた。

コマンドやAPIが少し分かった。

OSXの非公開APIC++から叩けた

screenresをnode v6対応して、その後、Retina対応を進める際に学べた。

Githubリポジトリのメンテが出来た

  • Keycast.jsの1.x系のElectronへの対応
  • mruby-webcamに追加API

反省点

  • イギリスの国民投票の際のユーロの値動きを機械学習させられなかった。
  • 縦スクロールシューティングゲーム風の背景の電車を走らせることが出来なかった。
  • dns-sdをあつかえるmrubyのmrbgemを作りそびれた。
  • Keycast.jsで今度のmacOSでSiri呼び出しのショートカットであるfn+SPCを表示したかったが、fnキーの検知ができずじまいだった。Keycodeは 決まっているようだが、これがNSEventで来ない感じ。

月別サマリ

4

  • ステガノグラフィ
  • runstantで縦スクロールシーティング風の背景のスクロールする処理の実装 
  • dns-sd

5

6

関連記事

11年前の記事

2年前の記事

2年後の記事

4年後の記事

mruby-juliaでPythonもmrubyから呼び出せるようになった

こんばんは、今日も奥さん仕事に出て、息子たちと留守番してます。長男は木曜日から喉が腫れて、熱もなんとなく高めで、汗かかないので、要注意状態。@kjunichiです。

背景

rubypythonについて、自分のツイッターのTLで盛り上がっていたので、 gistをブックマークしたところ、早速

その後、

どうしようか悩んでいたが、Edge.jsを知って、やってみることにした。

ちょっとやってみた

github.com

Pythonよりも速い、Julialangを呼び出せるようにしたので、PyCall使って、Pythonもmrubyから呼び出せるように なった。

結果

学べたこと

関連記事

12年前の記事

11年前の記事

4年前の記事

2年前の記事

Node v6系で動かないOSX向けモジュールを動かせるようにした際に見つけたrobotjs

おはようございます。本日、海外出張から奥さんが帰国するに伴い、実家から、子供達と引き上げます。心配していた便秘の次男のウンチ問題も、実家滞在中にも複数回、トイレで出せて、ホッとしています。@kjunichiです。

背景

screenresというnode.jsでディスプレイの解像度を変更するモジュールを見つけたものの、 nodeのv6ではnpm installしたらビルドエラー

nanを最新化して、ネイティブコードの該当箇所を対応して、.nodeモジュールを作れたが、 実行すると

dyld: lazy symbol binding failed: Symbol not found: _CGMainDisplayID
  Referenced from: /Users/kjw_junichi/work/nodejs/screenres/node_modules/screenres/build/Release/screenres.node
  Expected in: flat namespace

dyld: Symbol not found: _CGMainDisplayID
  Referenced from: /Users/kjw_junichi/work/nodejs/screenres/node_modules/screenres/build/Release/screenres.node
  Expected in: flat namespace

Trace/BPT trap: 5

とシンボル参照エラー

そこで、Cocoaのframeworkを使ったnpmモジュールのリンク方法を参考にすれば、 問題が解決の糸口が見つかるとの期待で、Cocoa APIをつかったnpmモジュールを探した。

robotjsというマウス操作がjsで行えるモジュールを発見

マウスを矩形波の軌跡を描くように動かす

//Move the mouse across the screen as a sine wave.
const robot = require("robotjs");

function myFunc(x,width) {
  const twoPI = Math.PI * 2.0;
  const xx = (twoPI * x) / width;
  let ans=0;
  for(let k =1; k < 16; k++) {
    ans = ans + Math.sin((2*k-1)*(2*Math.PI*xx*0.5))/(2*k-1)
  }
  return (2/Math.PI)*ans;
}

//Speed up the mouse.
robot.setMouseDelay(2);

const screenSize = robot.getScreenSize();
const height = (screenSize.height / 2) - 10;
const width = screenSize.width;

for (let x = 0; x < width; x++)
{
    y = height * myFunc(x,width) + height;
    robot.moveMouse(x, y);
}

youtu.be

元々の作業進捗

関連記事

12年前の記事

11年前の記事