#技術書典 8 頒布物情報

技術書典8のサイトのサークル情報ページに頒布物情報を掲載しました。
techbookfest.org

とりあえず紙と電子の両方頒布(紙版を買うと電子書籍版もついてくるようにしたい)の予定です。
初のサークル側参加で各100部しかもっていかないのでビビってます。売り切れたらDLカードにしたいと思ってますが、まだどこのプラットフォーム使うかとか決めてないです。やばい。

#技術書典 8 に参加しますよ

2020/2/29~3/1 開催の、技術書典8にサークル参加します。
2日目の参加(3/1)で、場所は「お-48」です。ブロックの端っこ近くです。
初サークル参加で超ドキドキしてますが。

2冊ほど持っていく予感。

の2冊です。

初めてなのでどのくらい持っていけばいいのかわからないんですが、とりあえず100部ずつ持ってく予定。
たぶん1冊500円くらいかなぁ。DLCカードも用意する予定です。DLCカードの仕組みどうしよう(まだ考えてない)

勉強会やってきた

今日、突発でカラオケ(Côte d'Azur)行って友人と勉強会やってきた。
内容的にはFizzBuzzをライブコーディングしてみたり、以前作ったCognitive Service Emotion/Vision APIを使ったデモ*1の解説したり、2か月前のde:codeのメモからのWrap-upを話したり。
意外とカラオケルームの勉強会も悪くない。防音だし、フリードリンクだし。全く歌わなかったけど。
とりあえず次もやってみる。今度はフリータイム使ってみるかな。

一部のインストーラーでFailed to expand shell folder constant "userdocs" のエラーが出る場合

原因としては、インストーラーがレジストリ*1にあるフォルダ(今回は(マイ)ドキュメントのフォルダ)の場所を見に行った時に存在が確認できなかったことで発生していたりする。、
このエラーが出る場合、一般的なFAQサイトだと「(マイ)ドキュメントの設定を初期化するか別のユーザーを作って再度インストールを試す」*2方法が一般的だけども、「UACが有効な状態」で「(マイ)ドキュメント等の特殊なフォルダをネットワークドライブ経由でネットワーク上に作成(割り当て)している」場合もこれが発生します。(SUBSTなどで割り当ててる場合も発生するかは未確認)
これは、インストーラーを実行するとUACにより権限昇格がされますが、この権限昇格したあとはネットワークドライブが接続されてない状態になるわけで。
net use コマンドを昇格前と昇格後で比べてみるとよくわかりますが
権限昇格前は

に対し、
権限昇格後は

となり、ネットワークドライブの割り当てがされてないのがわかります。
回避法は…知ってる限りだと、先に権限昇格したコマンドプロンプトでネットワークドライブを割り当てておいて、そのあとにインストーラーを実行する方法か、UACを一旦無効にする(お勧めしない)かなぁ。
あとはインストーラー側での回避方法がなにかあるのかも?

過去にAdobe Readerインストーラーで似たエラーが出たり、今回もPSO2をインストールしようとしてたらこのエラーに当たったので。メモです。

フォルダ名からタイトルを検索して移動するスクリプト

録画したアニメやその他を、とあるフォルダに一律に一緒くたに保存しているので、それを整理するPowerShellスクリプトを作った。

$Folders =  Get-ChildItem * | Where-Object { $_.PSIsContainer} 
foreach($dName in $Folders) 
{
    echo "Search: $dName"
    $title = $dname.Name
    $targerfiles = Get-ChildItem *.MP4 
    foreach($file in $targerfiles)
    {
        if ($file.Name -like "*$title*")
        {
           Move-Item -LiteralPath $file.name -Destination $dname.FullName -Verbose 
        }
    }
}

何をやっているかというと、フォルダ名を引っ張ってきて、そのフォルダ名が含まれるファイルをそのフォルダに移動するだけ。
たとえば、「きょうの料理」ってフォルダを作っておくと「きょうの料理」のファイルだけがそのフォルダに移動する。
パラメーターに -LiteralPath を指定しないと、ファイル名に自動的に付く[新]や[終]や[字]という単語(?)が含まれていると、([]をワイルドカード扱いしてしまうために)処理をスキップしてしまう。覚えた。

Emotion APIとVision APIのサンプルを作った

de:code 2017 のHack Days(Day3/4)でいろいろとハンズオン部屋に行って学習してて、Hololens,Machine Learning,いろいろあったけど、Day3が終わってホテルに戻ってきたところで、せっかくだし、Cognitive Serviceあたりで一本ソフトを作ってみようと画策。
Day4はひとりハッカソン状態で、サンプルアプリを作ってました。C#で。本来はVB.NETの人だけど。
カメラを使うAPIを何にするかで2時間ぐらい悩んだ。あと実装とかバグ取り2〜3時間くらいかな

で、その成果物とか何というか。ただのサンプルアプリですが、これまた初めてつかうGitHub上に、公開してみました。
みんなライセンスはMITでいいっていうからMIT Licenseにしてみた。ライセンスガイド、パパッと読んでみたけどこれでいいのかな。一応無保証ですという感じ。

サンプルだからクオリティは求めちゃいけない(逃げ)

そんなわけでGitHubリポジトリはこちらです → GitHub - telfaria/FaceAnalysisWinForm: Cognitive Service API Sample

あ、言い忘れた。Windows Form アプリです。UWPとかWPF考えてみたけど、慣れてないので画面作るだけで一日が終わってしまう恐怖があったので。あえて妥協。

Hololens開発面白かった。Unity使いこなせないと難しいのかなぁ。