Elfariaのチラシの裏 このページをアンテナに追加 RSSフィード

2018-07-31 カラオケルームで勉強会も悪くない

[]勉強会やってきた 21:15 勉強会やってきたを含むブックマーク

今日、突発でカラオケ(Côte d'Azur)行って友人と勉強会やってきた。

内容的にはFizzBuzzをライブコーディングしてみたり、以前作ったCognitive Service Emotion/Vision APIを使ったデモ*1の解説したり、2か月前のde:codeのメモからのWrap-upを話したり。

意外とカラオケルームの勉強会も悪くない。防音だし、フリードリンクだし。全く歌わなかったけど。

とりあえず次もやってみる。今度はフリータイム使ってみるかな。

2018-05-08

[][]一部のインストーラーでFailed to expand shell folder constant "userdocs" のエラーが出る場合 00:14 一部のインストーラーでFailed to expand shell folder constant "userdocs" のエラーが出る場合を含むブックマーク

原因としては、インストーラーがレジストリ*1にあるフォルダ(今回は(マイ)ドキュメントのフォルダ)の場所を見に行った時に存在が確認できなかったことで発生していたりする。、

このエラーが出る場合、一般的なFAQサイトだと「(マイ)ドキュメントの設定を初期化するか別のユーザーを作って再度インストールを試す」*2方法が一般的だけども、「UACが有効な状態」で「(マイ)ドキュメント等の特殊なフォルダをネットワークドライブ経由でネットワーク上に作成(割り当て)している」場合もこれが発生します。(SUBSTなどで割り当ててる場合も発生するかは未確認)

これは、インストーラーを実行するとUACにより権限昇格がされますが、この権限昇格したあとはネットワークドライブが接続されてない状態になるわけで。

net use コマンドを昇格前と昇格後で比べてみるとよくわかりますが

権限昇格前は

f:id:elfaria:20180508234738p:image

に対し、

権限昇格後は

f:id:elfaria:20180508234803p:image

となり、ネットワークドライブの割り当てがされてないのがわかります。

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

あとはインストーラー側での回避方法がなにかあるのかも?

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

2018-03-09 無かったら作る

[][]フォルダ名からタイトルを検索して移動するスクリプト 23:53 フォルダ名からタイトルを検索して移動するスクリプトを含むブックマーク

録画したアニメやその他を、とあるフォルダに一律に一緒くたに保存しているので、それを整理する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 を指定しないと、ファイル名に自動的に付く[新]や[終]や[字]という単語(?)が含まれていると、([]をワイルドカード扱いしてしまうために)処理をスキップしてしまう。覚えた。

2017-05-29 Cognitive Service たーのしー!

[] Emotion APIとVision APIのサンプルを作った 22:53  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リポジトリはこちらです → no title

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

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

2016-10-29 最近Arduino触ってるけど、基本は.NETがメインの人です

[][][]ArduinoでOBDモニタみたいなのを作った話。 22:11 ArduinoでOBDモニタみたいなのを作った話。を含むブックマーク

ちらっとOBDモニタみたいなのが欲しくて、Arduinoなら作れるんじゃないかな、と思って作ってみた。.NET環境がメインでC(に近いArduino)なんて初めてですが、ポインタがない分簡単に理解できそう(罠)

使った物

IDEに関しては、 arduino.cc にあるものではなく、arduino.org にある、Version 1.7.11 のIDEでないと、MultiLCDでの文字表示が正常に出来なかったのでメモ。

OBDの通信プロトコルは複数あり(Ref: 自動車の自己診断機能 - Wikipedia)基本的には、使用するライブラリの OBD.h の108行目付近にある

init(OBD_PROTOCOLS protocol = PROTO_AUTO)

を、その手前あたりにenum で定義されている OBD_PROTOCOLS に合わせれば大丈夫そう。(ほとんどの場合は PROTO_AUTO で大丈夫らしい(自車もPROTO_AUTOでいけた))

また、取得出来るパラメータは同じく OBD.h に定義されてるけれども、車種によって取得出来ないものもあるので注意。

ちなみに自車はZC72S(K12B)(RS)ですが、今のところ

  • PID_ENGINE_REF_TORQUE
  • PID_FUEL_PRESSURE
  • PID_ENGINE_OIL_TEMP
  • PID_AMBIENT_TEMP
  • PID_FUEL_PRESSURE

は取れませんでした(OBD.hでDEFINEしてる値)

ちなみに現在こんなところまで出来てます

f:id:elfaria:20161029215515j:image:w360

OBDは常に通電しているので、エンジンカットしても値が表示されたままだし、Arduinoは基本、電源を切るというのがない(スリープモードはあるらしい)ので、現在スリープモードとかの実装の検討とか作業してます。

ここのサンプルコードを参考にして作ってます。