Go gRPC protocol bufferでmessageのネストと配列

protocol bufferの定義でmessageのネストと配列を使う場合のメモ

message Author {
  string name = 1;
}

message Book {
  string title = 1;
  Author author = 2;
  repeated string tags = 3;
}

clientからのリクエスト時

r, err := c.PostBook(ctx, &pb.Book{
  Title: "New Title",
  Author: &pb.Author{Name: "Doyle"},
  Tags: []string{"go", "grpc"},
})

face-api.jsで顔認識

tensorflow.jsを使って顔認識がしたいと思っていたら、face-api.jsなるものを発見。簡単に使えたのでメモとデモ。

face-api.js: 0.10.0
tensorflow/tfjs-core: 0.11.9

試したのはRails上のReactだけれども、単なるnode.jsでも同じ。

続きを読む

Rails 5.2.0 + React + css

Rails 5.2.0(Rails 5.1以降)でReactを使う上でwebpackerによるcssの読み込みのメモ

参考の補足程度(config/webpack/environment.jsを触る必要なかった)

  • 作成するcssは拡張子.cssでも.scssでもよさそう(.cssでOKだった)
  • 作成する場所はapp/javascript/packsでなくてよい(app/javascript/stylesheetsに作成してOKだった)
  • 作成するcssのファイル名は.module.cssにする(参考リンク先のようにhello-react.module.sassなどとする)
  • 利用したいjsxでimportする(親子jsxどこでも気にせずimportする)
  • 呼び出すhaml, erbでstylesheet_pack_tagを記述するが、この時親jsxを指定する(stylesheet_pack_tagを記述しないと読み込まれない)

これで実際に読み込まれたhtmlソースを見るとcss-loaderを使った時のように「class=”unQ5pyAarpPHnB5enco5W“」となっており、スタイルが適用されていることも確認出来る。

Windows 10でreact-native initのエラー対処

詳しくはこちら

WIndows 10で、以下のコマンドで初期化しようとした場合に

react-native init AwesomeProject

以下のエラーになる場合がある(react-native: 0.56.0の場合)

import type {CommandT} from './commands';
^^^^^^

SyntaxError: Unexpected token import

対処としては前のバージョンを指定して初期化する。

react-native init --version="0.55.4" AwesomeProject

Visual Studio 2017 パッケージマネージャコンソールでエラー

Visual Studio 2017 でアップデート後にパッケージマネージャにてDBマイグレーションをしようとして以下のエラーが表示された。

PowerShell version 2.0 is not supported. Please upgrade PowerShell to 3.0 or greater and restart Visual Studio.

Windows 10 Pro
Visual Studio Community 2017 Version 15.7.4

対処

こららを参考に以下を編集
C:\Users\username\AppData\Local\Microsoft\VisualStudio\15.0_e37f7854\devenv.exe.config

dependentAssemblyが並んでいるところに以下を追加

<dependentAssembly>
  <assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  <publisherPolicy apply="no" />
</dependentAssembly>

これでプロジェクトを開くとエラーが表示されず、コマンドが使えるようになった。