雑多なノート

プログラミング初心者がメモとかを書きます。基礎的なこともメモとして。偏食系のアニオタ。

bazelのインストール

なんとかアプリもリリースできたので次はディープラーニングだと思ってとりあえずデモ動かしてみることにした.
まずはビルド環境の導入.

Tensorflow導入のためにビルドツールBazelのインストールを行った
最初仮想環境のUbuntuでやろうとしたらメモリ不足で固まったのでBash on Windowsで行った
基本的に公式のチュートリアル(Ubuntu)の通りにやったらできた.

まずJDKのセットアップ.

sudo apt-get install openjdk-8-jdk

最新は9らしいが8を入れないと失敗する.
またUbuntu環境でやったときは先に2のリポジトリ追加を先にやったら失敗した

次にリポジトリの追加を行う

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

そして普通にインストール

sudo apt-get update && sudo apt-get install bazel


これで成功
入れるJDKのバージョン間違えたり先にリポジトリ追加しちゃったりして無駄に苦労してしまった

「SF Keeping」をリリースしました

Androidアプリ「SF Keeping」を公開しました.

play.google.com


名前から分かる通り交通系電子マネーの履歴を読み取るアプリです.
f:id:vayacico:20170825115240p:plain
目玉機能として家計簿サービスZaimとの連携機能を持っています.
こんな感じで履歴データにジャンルやカテゴリの情報を付加してZaimへ登録することができます.
f:id:vayacico:20170825115412p:plain
決済端末のIDと紐付けることによって一度利用した店舗は次回から自動で入力されます.
f:id:vayacico:20170825115800p:plain
簡易的ですが共有機能と店舗名自動取得機能ももってます.
端末IDは一意ではないらしく同じ端末IDを持つ店舗もあるらしいですがそこまでバッティングしないかとは思います.
一応ダブった場合でも選択できるようにはしてあります.


このアプリを作った経緯としては結構個人的なことが大きく,必要に迫られて作った感がありあます.
まぁ簡単に言うとオートチャージが便利すぎて使いすぎただけなのですが.
使いすぎたと思ってクレカの履歴見てもオートチャージとしか書かれてなくて何に使ったか分からないという状況に陥ったのが主な動機です.
その都度記録しろよという話ではあるんですがそれができたら使いすぎはしないというもの.
まぁそんなわけで「Suicaから家計簿に自動記録出来たら便利じゃね?」と思って作った次第であります.
店舗IDが一意でないという罠はありましたが自分で試した範囲だと被りはなかったのでそこまで被らないのかもしれません.
基本的にコンビニと食堂でしか使わないというのもありますが.

というわけで良かったら使ってやってください.

最後に,駅コードのデータベースの利用を許可してくださったDENNO NET様にこの場で感謝させていただきます.
ありがとうございました.

Suicaの入出金判別アルゴリズム

Suicaのデータを読み取ったは良いけど組み合わせが微妙に複雑
解説サイトによっても書いてることが違っているので自分のSuica使って調べたのをまとめてみる.

  • 機器種別:0x16(改札機)
    • 利用種別:0x01(出場)
      • 入出場種別:0x04(定期出場)
      • 入出場種別:0x02(通常出場)
      • 入出場種別:0x03(定期入場)
    • 利用種別:0x14(オートチャージ)
  • 機器種別:0xC7(物販)
  • 機器種別:0xC8(自販機?)
  • 機器種別:0x05(バス)

自分の環境ではこんなもんだった
色んなところで使ってけどここから外れたものは見つからない
wikiにはもっと沢山パターンあるんだけどどんな場合に見れるんだろ

とりあえずこれを実装した結果
f:id:vayacico:20170707232421p:plain

とりあえず上手くいってる
自分のSuicaをベースにしてやったからうまくいくのは当たり前だけど

卓上カレンダーの電子化

暑さにやられて衝動的にけものフレンズの卓上カレンダーを電子化した
C#でフォームのコントールと枠消してスキャン画像貼り付けてるだけだけど
一応日付によって変わるようには作った
今は亡きガジェット的な感じで

f:id:vayacico:20170701002109p:plain


勢いで作ったけどなんか微妙…
画面サイズのせいで小っちゃいし
うーん

家には置きにくい研究室も情報系の癖にあんまり置ける雰囲気じゃないから仕方ないとはいえ他にいい方法あったよなー
貴重な金曜日の夜に俺は何してんだかねー

androidスマホからSuicaの履歴を10件以上取得する

AndroidSuicaの履歴を読んでみた.
といってもほとんどこのブログの写経だけど

www.kotemaru.org

Felicaにコマンドを送ることでブロックを読み取ることができるらしい.

www.sony.co.jp

FeliCaカード ユーザーズマニュアル 抜粋版を読んで送信コマンドについてはなんとなく理解.
物理層の説明から読んで挫折しかけたけど.
マニュアルがネイティブの日本語であるって素晴らしい.

ブログのサンプルコードだと10件までしか取得してなかったけどブロックエレメントのブロック番号を増やすことで10件より先も取得できた.

なぜか16進数で与えないとエラーになったけど.

本当はループで与えたいんだけど出来なかったのでとても頭の悪いコードになった
まぁ動けばいいか

以下が10-20件の取得するコマンドを生成する部分
参考にしたブログのコードとほとんど変えてない

ByteArrayOutputStream bout = new ByteArrayOutputStream(100);

bout.write(0);          
bout.write(0x06);        
bout.write(idm);         
bout.write(1);          
bout.write(0x0f);       
bout.write(0x09);       
bout.write(10);        

bout.write(0x80);
bout.write(0x0A);

bout.write(0x80);
bout.write(0x0B);

bout.write(0x80);
bout.write(0x0C);

bout.write(0x80);
bout.write(0x0D);

bout.write(0x80);
bout.write(0x0E);

bout.write(0x80);
bout.write(0x0F);

bout.write(0x80);
bout.write(0x10);

bout.write(0x80);
bout.write(0x11);

bout.write(0x80);
bout.write(0x12);

bout.write(0x80);
bout.write(0x13);

サービスコードとブロック数が解析されているのでそこを変えれば他の情報も取得できそう
サイバネ規格 (ICカード) ‐ 通信用語の基礎知識

Onenoteのファイルを間違えて消してしまった

Android Studioを入れたらCドライブが真っ赤になったのでファイルの整理をしてたらOnenoteのファイルを消してしまったらしい.
消したのは実体じゃなくて同期用のファイルだったらしくデータは残っていたが同期に失敗するようになった
インターネットショートカットってOnenoteで使ってたファイルだったのね
f:id:vayacico:20170629001009p:plain

1台しかパソコンないのでそこまで問題ないけどやっぱクラウドにあった方が安心というのとバツマークがついてるのは気分が悪いので復旧を行った
復旧というほど大げさでなくローカルにバックアップファイルを作ってそれを開き直して同期ってだけだけど


まずはファイルからエクスポートでノート全体をonepkgにエクスポートする.
そのあとファイルを開いて新しいノートとして作成する
このままだとローカルだけになるみたいなのでノートを右クリックして[共有]->[ノートの移動]を選択すると無事共有されるようになる(実際に共有する必要はない)

なんとなくやったけど多分これで大丈夫なはず

それにしてもファイルとして実体あるのかそこら辺は隠蔽されて完全にクラウドなのかはっきりして欲しいなー
日記的に使ってるから消えたら結構ショックだぞ

Android Studioのエディタの縦線を消す

Webアプリは満足したのでandroidアプリに再挑戦しようとしたらhello,worldのビルドに10分かかって絶望したばやです.
前にeclipseで作ってた頃はもうちょい早かった気がするんだけどな
大学入学時に買ってもらったノーパソだともう限界なのか


新しいエディタ入れたので早速背景を変更しました.

kobaken.hatenadiary.com

何も引っかかることもなく拍子抜けするほど簡単だった
まぁ皆考えることは同じか

ただ謎の白線が
f:id:vayacico:20170627213225p:plain
何に使うんだろこれ
ここより右にコード書くなってことだろうか
使わないしめぐみんが切れるのも嫌なので治した

[File]->[Editor]->[General]->[Appearance]

の[Show right margin(configured in Code Style options)]のチェックを外したら消えた

本当になんの機能なんだろう


Android studio重々しくて嫌だなー
ノーパソが灼熱になるし