今日の雑記はgraphql-activerecord

github.com

このgem使ってるんだけど、

RuntimeError (Could not locate GraphQL type for model Character)

“GraphQL::Models::CharacterTypeはなしんこなしなしだぞ”

って言われる。

graphql-activerecord/activerecord.rb at master · goco-inc/graphql-activerecord · GitHub

ここらへん。

Modelに対応するTypeをTypes::CharacterTypeみたいに定義しちゃってるせい。

# config/initializers/graphql.rb
GraphQL::Models.model_to_graphql_type = -> (model_class) { "Types::#{model_class.name}Type".safe_constantize }

で動いた。

Bash on Ubuntu on Windowsからexeファイルをコマンドとして叩いていくために

anoninoni.hateblo.jp

こっちの記事でdocker.exeをdockerコマンドとして使えるようにしました。 ただコマンドごとに.bashrcに記述していくのも面倒なので、指定ディレクトリ内のwindowsバイナリをまとめて処理するようにしようと思います。

/mnt/c/Users/anoChick/.winbin

ここに*.exeファイルを入れていきます。 ディレクトリをどこに配置するかは自由なのですが、 /usr/local/winbinとかだとWindows側が読めないです。

export PATH=$PATH:/mnt/c/Users/anoChick/.winbin

WIN_BIN_DIR='/mnt/c/Users/anoChick/.winbin'
cd $WIN_BIN_DIR
for file in `ls *.exe`
do
  alias ${file%.*}=$file
done
cd

あとはsource .bashrcするなりターミナルを再起動するなりすれば動くと思います。

Windows Subsystem for LinuxからDocker for Windowsを使う

Docker for WindowsWindowsなので当然Windows Subsystem for Linuxからは実行できない。f:id:anoChick:20170422054043p:plain

と、おもいきやWindows 10 Creators UpdateからLinux側からでもWindowsバイナリ(exeファイル)が実行できるようになった。 なのでPATHさえ通してしまえば良さそう。

export PATH=$PATH:/mnt/c/Program Files/Docker/Docker/resources/bin

ただこれだけだと実行するのにdocker.exeと記述しないといけないので、エイリアスを張る。

alias docker='docker.exe'

これでOK!

exeファイルとして扱われるのでsystem32にもパス通しちゃって良さそう。

WindowsでKitematicを起動するとクラッシュするようになってたんだけど治った。

最近Windowsで開発環境が整ったワイワイしてたんですが、 なんでか突然Kitematicを起動するとOSごとクラッシュ(ブルースクリーン)するようになってしまった。

クラッシュする直前にVirtualBoxを呼び出そうそしている形跡はあったのだけれど、 そもそもWin10のDocker for WindowsでDockerを動かしているのでVirtualBox使わなくね? と思い、issueを漁ったらあった。

github.com

Windowsコンテナを扱うモード(VirtualBox利用)に切り替えた後戻らなくなるバグのようで、 localStorageを書き換えたら無事治った。 f:id:anoChick:20170420205522p:plain

コンソールを開くメニューがWindows版Kitematicには存在しないのだけれど、 幸い私はショートカットを知っていたので開いた。良かった。

WindowsでWeb開発環境を整える雑記

基本的にはWindows Subsystem for Linux乗る

先日のWindows 10 Creators Updateでかなり使えるレベルになったらしいです。 https://blogs.msdn.microsoft.com/commandline/2017/04/11/windows-10-creators-update-whats-new-in-bashwsl-windows-console/

私が常用しているreact-boilerplateもネットワークインタフェース系がサポートされておらず動きませんでした。 https://github.com/Microsoft/BashOnWindows/issues/468

f:id:anoChick:20170416204908p:plain

これが、Creators Updateを適応したら動作するようになりました。嬉しい。

Bash on Ubuntu on Windows

Bash on Ubuntu on Windowsに関しても、 日本語がずれたり切れたりしていて使い物にならなかったんですが、今回のアップデートできれいに表示されるように修正されました。 f:id:anoChick:20170416204821p:plain

ちなみに、修正される前は http://cmder.net/ Cmderをつかったり(tmuxがマウス操作に反応しない)

f:id:anoChick:20170416204846p:plain

それを回避するために Bash on Ubuntu on Windows の最高の端末環境を教えてやるからちょっと来い。 ↑みたいな感じで Cygwin+minttyからBoWを繋いで動かす。みたいなことをしてつかわれていたそうです。

Docker for WIndows

Hyper-vを使うことでWindows上でLinuxコンテナを動かす感じです。 Web開発をする上ではそれで十分だとは思いますが、最近はWindowsコンテナも使えるようになったらしいです。 WindowsのDocker(コンテナ)対応、正しく理解できていますか?

Windowsを積極的に使っていく気持ち

最近Windowsがめちゃめちゃ良くなってきているのを感じます。 せっかく高性能なWindows機を購入したので積極的に使っていきます。

VR演奏環境作った。

ゲーミングPCを買いました。 家にちょうどOculus Rift DK2があったのでVR開発をはじめてみました。

できたもの

MIDIキーボードの入力が仮想空間内のキーボードにいって音を鳴らすやつ。

MIDIキーボードはmicroKEY airを使いました。

f:id:anoChick:20170326231753p:plain

Unityで作りました。

使ったもの

モデル

MIDI Keyboards Pack

3D Living Room

スクリプト

GitHub - keijiro/MidiJack: MIDI input plugin for Unity

MIDI入力を受け取るスクリプト

f:id:anoChick:20170326232629p:plain

こんな感じ。良い。

感想

吐きそう

昨日今日とHMDで遊んでたので酔いがひどい。 あとDK2は解像度が低いので楽譜読めないです。

今回はあるものを使ったのでほとんどコードは書いていない。 UnityはいろいろなAssetがあるのでいいね。

今後やりたいこと

せっかくの仮想環境なのでもっと立体音響とかやりたい。 部屋の大きさをかえるとリバーブのパラメータが変わるとか、 サンプリングしたり、トラックをシュッと作ったり、 VRのDAWみたいなことしたい。

Unityでスマホのカメラを使う

僕の同僚かつフレンズのid:hiragramがなんかよくわからないカメラアプリを作ってて凄い。

hiragram.hatenablog.jp

僕もそういうのやりたいけどiOS開発やったこと無い。

Unityなら出来る。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraController : MonoBehaviour  {
    public WebCamTexture webCameraTexture = null;
    public GameObject plane;

    // Use this for initialization
    void Start ()
    {
        webCameraTexture = new WebCamTexture ();
        plane.GetComponent<Renderer>().material.mainTexture = webCameraTexture;
        webCameraTexture.Play ();
    }

    // Update is called once per frame
    void Update ()
    {

    }
}

f:id:anoChick:20170323002050p:plain

うつった。 テクスチャに投影してるだけなので↓のようにも出来る。

だからなんだって感じではあるけど、 なんかいろいろできそう。