らんばとはんONLINE(アルファ版)リリース。

"らんばとはんONLINE"とは

Windowsローカルアプリケーションだった旧「らんばとはん」の後継サービスです。

"らんばとはん"とは

カラオケDAMの採点ゲーム「ランキングバトル」の成績の推移を視覚化(テキスト→HTML)するツールです。

How to use?

ckoshien.github.io

類似サービスとの相違点

類似サービスに「ランバト集計」があります。
競合する意志はなく、方向性の違いで棲み分けるつもりです。
方向性の違いとしては、
ランバト集計:自動・現在以降
らんばとはんONLINE:手動・過去
f:id:ckoshien:20180221103345j:plain

Line Messaging APIとGASでLineBot

ふと思い立ってLine Botを作ることにしました。
割と特殊な環境のためSSL証明書をサーバにインストールするのに四苦八苦する羽目に。
Line Messaging APIのWebhookではSSL通信が必須とされているので、
何とかしてHTTPSサーバを調達しないといけなかったのですが、
ググってるとやりたいことをやってる先人達が…。
routecompass.net
inside.pixiv.net
qiita.com
qiita.com
Google Apps Scriptという便利なサーバーサイドスクリプトがありました。
一時期騒がれた時期もあったなーぐらいの認識だったのですが、意外な救世主に。
テストも外部からAPIを叩く必要があったのですが、
外部とのトンネルを一時的に作ってくれる「ngrok」でテストサーバを疎通させました。
gihyo.jp

OpenCV&Pythonでボールトラッキング→失敗

Python3.5とOpenCV3でオブジェクトトラッキングを試してみた。
参考:
qiita.com
qiita.com
結論から言うと、物体のトラッキングはできるものの、
野球のボールは移動量が人間よりも多い(アルゴリズム的に正反対)のと
小さくて特徴点が検出できなかったので無理ですかね。
映像ソースにもよるとは思います。
gist.github.com
qiita.com
範囲の絞りこみ(画像切り出し)、エッジ検出は試したものの検出率は上がらず。
こういうときのディープラーニングかな。

railsをwindows上に環境構築するとき嵌った話。

railsの勉強しようと思い立って環境構築で色々コケた話を。
このあたりを参考にしつつインストールしていきます。
RubyInstaller2でWindows環境にRuby 2.4 + Rails 5.0.2をインストールする

commonmarkerがインストールに失敗する

gemfileがあるディレクトリにcdしてからbundleコマンドを実行すると

An error occurred while installing commonmarker (0.17.6), and Bundler cannot continue.
Make sure that `gem install commonmarker -v '0.17.6'` succeeds before bundling.

ググるとIssueに上がってますね。
Cannot bundle commonmarker due to cmake
これもgemfileでバージョンを指定します。

gem "commonmarker", "0.17.7.1"

再度bundleコマンドを実行。

fast_stackのビルドが通らない

Faststack on windows 7

sorry, not designed to work in windows

gemfileからコメントアウトしてみよう。。。

rmagickのインストールに失敗する

ImageMagickの最新版とRMagickをWindowsにインストールする
これはドツボに嵌りましたが、結論としては
エラーログを読め!何という正論。
windowsならmkmf.logを探せばよいでしょう。
コマンドプロンプト以上に詳細なエラーログが出ています。

stackprofのビルドに失敗する

issueに上がったまま修正できていないようです。
https://github.com/tmm1/stackprof/issues/45 :titile=Doesn't compile on Windows

sys-proctableがインストールされない問題

gemfileから記述漏れしていました。

結論

結局のところ、まだrails環境をwindows上に構築するのは結構ハードルが高いようです。
この機会にvagrantに挑戦してみようかと思います。

AngularJS初心者がハマりがちなこと

ng-repeatで回数を指定する

listSize=$scope.items.listSize;
$rootScope.range = function(listSize) {
    var arr = [];
    for (var i=0; i<listSize; ++i) arr.push(i);
    return arr;
};

listSizeに回数を指定します。

参考リンク:AngularJS tips - ng-repeat で配列ではなく数値で for ループする方法

ng-repeatの罠

ng-repeatを使う場合、ループ内ではinで指定した変数しか参照できません。

<tr ng-repeat="i in range(items.listSize-1)">
  <td>{{i+1}}</td>
  <td ng-if="$parent.items.obpTop10[i].rank == 1" bgcolor="#FC9898">{{$parent.items.obpTop10[i].name}}/{{$parent.items.obpTop10[i].obp | number:4}}</td>
  <td ng-if="$parent.items.obpTop10[i].rank != 1">{{$parent.items.obpTop10[i].name}}/{{$parent.items.obpTop10[i].obp | number:4}}</td>
  <td ng-if="$parent.items.twobaseTop10[i].rank == 1" bgcolor="#FC9898">{{$parent.items.twobaseTop10[i].name}}/{{$parent.items.twobaseTop10[i].twobase}}本</td>
  <td ng-if="$parent.items.twobaseTop10[i].rank != 1">{{$parent.items.twobaseTop10[i].name}}/{{$parent.items.twobaseTop10[i].twobase}}本</td>
  <td ng-if="$parent.items.slgTop10[i].rank == 1" bgcolor="#FC9898">{{$parent.items.slgTop10[i].name}}/{{$parent.items.slgTop10[i].slg | number:4}}</td>
  <td ng-if="$parent.items.slgTop10[i].rank != 1">{{$parent.items.slgTop10[i].name}}/{{$parent.items.slgTop10[i].slg | number:4}}</td>
  <td ng-if="$parent.items.fourBallTop10[i].rank == 1" bgcolor="#FC9898">{{$parent.items.fourBallTop10[i].name}}/{{$parent.items.fourBallTop10[i].fourBall}}個</td>            

$scopeなどの中身を参照する場合は$parentで親のスコープを参照する必要があります。 AngularJS でループ外のスコープにアクセスする ”AngularJS ループ外”→"ng-repeat スコープ"などでググってたどり着きました。

iはインデックス(添え字)です。

前述した回数指定を行ってループさせながらインデックスで配列にアクセスする方法です。

AnnictAccess安定稼働開始。

アニメ視聴管理サービスannict
annict.com
が公式に提供しているAPIを使って自分のアニメ消化がどれだけ遅れているか
可視化できるWEBアプリを作りました。
AnnictAccessgithub.com

イヤホン修理。

いつもはソフトウェアエンジニア(プログラマ)として働いたり、
趣味でコーディングしたりしていますが、
今回は断線してしまったイヤホンのプラグ交換。
ネットにいくつか交換方法が載ってたので、結構参考になりました。

段ボールに刺して固定するのはナイスアイディアだと思いました。
d.hatena.ne.jp

ページング多すぎてうざかったですけど一番わかりやすかった。
monostudio.jp


f:id:ckoshien:20170202155110j:plain
上から
・半田付け後にボンドで固めたところ
・根本を熱収縮チューブで固定
・付属のカバーをつける
・完成
半田ごてを使うのは中学の技術の授業と
折れた傘の骨を無謀にも半田で接着しようとしたころですかね。
もう15年ぐらい半田ごて触ってなかったです。

広告を非表示にする