姫路IT勉強会 2019.09
姫路IT勉強会 2019.09
- 開催日 2019/09/21
- 司会:
- 参加者数:参加者: 9名 / 学生: 0名
- HackMD: https://hackmd.io/W5j5YiDQTsOpjZVb9LV3eQ
- connpass: https://histudy.connpass.com/event/146731
- ハッシュタグ:#histudy
自己紹介
- 飛び入り+会場の人を合わせると9人です。
英語でコミットメッセージを書く勉強はどうしたらよいか?
英語で書く必要はあるのか?
- ある
- 海外拠点がある(将来的にはそちらと…)
- レビューツールを使ってるため、マージログなど後から非日本語圏の人も読む可能性
- コミットテンプレートを活用してはどうか
- SUBJECT だけをテンプレートを埋めておく
まずは英文に慣れて
日本人の英語アレルギーはハンパないな
- なぜか完璧を要求する/される状況(強迫観念)
- 英語を学ぶよりもプログラマ向けに定形処理の形にする方が良いのでは
- 英語ちゃんと勉強しろ!といいたいが、果てしない議論になってしまう
というか、そもそもコミットがおかしくないか(アトミックコミット)
- Subjectが一行で収まる粒度でコミットすべき
- バグフィックスと機能追加のコミットは同時にはしない
IPv6プラスの回線からSSHはできるがSCPができない…?
- IPv4 over IPv6 の環境
- SSH 接続はできる。
- SCP を debian(buster)から行うとできない
- scpの-6 または -4 オプションで IPv6, IPv4を強制指定できる。
- git clone (ssh)もできない
- VSCode のsshfs 拡張からはできる
- 動いている部分から原因を切り詰めていくしかないかも。
- パケットロスが発生している?
- 通信はできているので、発生してないと思われる
- エラーログはしっかり抑えましょう(どこで詰まってるかわからんどす)
- ホワイトボードに図を書いて確認しました。
- ローカル(Debian, Win10)、AWS(Amazon Linux)、githubの相互通信がおかしい…?
- 設定変えつつ問題の切り分けとか
Android Studioでアプリを書いてます
デモしようかと思ったらノートパソコンではエミュレータが動きませんでした
Win10 19.03でWindows Hyperviserががバグっててx86エミュレータが動かない
- Ryzenは修正パッチあてろ!という情報がありました
- https://developercommunity.visualstudio.com/content/problem/528337/whpx-problem-android-emulator.html
MicroSoft製エミュレータもあった、使ってはない。
AndroidエミュレータとVirturlBoxでWindowsの仮想化設定がコンフリクトする模様
- WSL2が動作していると、VirualBox動かないです(仮想環境が衝突する…)
- Hyper-V上で動いているのです
- のでWSL1もまだ残ってるのです(遅いけど)
- Xenみたいな仕掛け
そもそもWindows使うのが間違いです
- さりとてDebianへの全面移行はキツイっす
- AdobeCCが動かない
- 一応Macでなんとか
- でもMac版のOfficeは互換性いまいち(その他も大同小異)
- だからExcel方眼紙使うなって言ってるの
- 最近はGoogleSpreadSheet多いよね
- さりとてDebianへの全面移行はキツイっす
こんなアプリ作ってみました
入眠時刻・起床時刻・薬を飲んだ時間を記録するアプリです
Toggl というタイムトラッキングサービスに対応するといい
- 各種サービスのAPI叩く構想だけは色々あります
記録するのが面倒で使わなくなる問題がある
Androidなので開発中のをChrome Castで映そうかと思ったけどダメでした
DBはRealmでローカルに保存してます
- SQLite3が定番だが
- プリペアSQL書くのが面倒なので、ORMでオブジェクト操作で済むのを選んだ
- https://realm.io/docs/java/latest#working-with-realmobjects
- デフォルトコンストラクターでカラムを作る仕組み
- Kotlinなのに
column1: string? = null
でカラム作るのはどうなんだろう?- KotlinはNull Safeな言語なのに
- Kotlin -> Java -> Realmで呼び出して
- この先、Kotlin -> Realmのインタフェースが改善されたら書きやすくなるかも
- SQLite3が定番だが
こんなのをバックエンドにするといいかもしれない
- https://rethinkdb.com/
- デフォルトでRest APIがあります
バックエンドを楽にしておきましょう
- FireBaseとかにしといて、RestAPIで操作
- Android OSにRestAPI叩くOS APIがあるので楽そう
- FireBaseとかにしといて、RestAPIで操作
設計が大事です
- DB設計で、テーブル構成やカラム構成に悩んでます
- 普段触ってるWordPressだとDB設計とかないので
- そのデータは集計する?しない?
- 集計のしやすさもDB設計で決まる
- そもそもDBで保存する必要ある?
- WEBアプリのだとファイル追記でも十分な場合あるよね
- 先にER図を作りましょう
- ER図は一応ある -> もってきたらレビューできるよ
- 画面遷移とかも悩む
- 使い勝手はどうだろう?
- コードはリーダビリティを最大化しましょう
- アプリを一つ作るとなると、考える範囲が広いです
- DB設計で、テーブル構成やカラム構成に悩んでます
プロトタイプと収益化
- 単体で動作するアプリは無償、多機能版は有償にする予定
- FireBaseのお代がかかるぐらいユーザーが増えたら、儲かってるはず
- プロトタイプは10月初めにリリース予定です
- リリースしたら姫路IT系勉強会でレビューしましょう
- 単体で動作するアプリは無償、多機能版は有償にする予定
HP Stream のノートでUbuntu
- メモリは2GBで Windowsでサポート対象外になった
- Ubuntuではデバイス周りに問題がでている。
- 復帰など
- Ubuntuではデバイス周りに問題がでている。
- Atom系はKernelを5.2に上げればたぶん解決
- Kernel newbie のリリースノート
- Intel Baytrail & Cherrytrail Systems Can Now Correctly Hibernate Again Under Linux - Phoronix: https://www.phoronix.com/scan.php?page=news_item&px=Baytrail-Cherrytrail-Hibernate
Jetsonの処理速度が遅いんですが
- NVIDIAのJetsonで画像認識処理をする
- 車載向けRasPi互換ボード。ヒートシンクが付属
- 人間の顔、動物の姿などを認識するアプリ
- GPU使用していても1fps、まれに2fpsしか出ません(スペックを考えれば善戦してます)
- ちなみにCore i7 + 16GBのノートで10ftsくらい
- 動画をやめて写真をベースに処理させるようにしてみる
楽しい夏休みでした
- LibreOfficeの本を書いておりました
- Twitterを停止しました。
- 自宅サーバをあれこれメンテナンス
- Vagrant + VirtualBox遅いっす
- vagrant-libvert ?
- vagrant-lxcは、もうLXC終わってるしー
- vagrant-lxd を試してみると快適だった
- インストールが簡単 (Debian/Ubuntu)
- vagrant-lxdを試したらかなり良かったのでメモ - Days of Speed(2019-09-19): http://www.nofuture.tv/diary/20190919.html#p02
- vagrantでlxdのboxをつかっている人がいない(そもそもBox少ない)
- ノウハウが溜っていない?
- lxdのboxが無くてもvagrant-lxcのbox自動変換してくれる
- LXD単体もおすすめです。ノウハウはまだ書きかけですが・・・ LXC/LXDの使い方
- インストールが簡単 (Debian/Ubuntu)
- Vagrant + VirtualBox遅いっす
- もらったBayTrailタブレットをHackしてました
- Debian BusterとAndroid x86を突っ込むとか
- Debian MultiArchイメージを使うと32ビットUEFI+64ビットOSでもサクッとインストールできる
- 旅行にPCは持っていけないのでタブレットとしても使えるPCとして持っていきました
- Android x86 Oleoが好調でした
- でも、スリープさせると死んでしまう。なんで死んでしまうん?
- Debian BusterとAndroid x86を突っ込むとか
雑談いろいろ
ソースコードに継ぎ足し継ぎ足しが多いのは何故?
- 1万行のPHPクラス
- 循環的複雑度が1000を超えるソースコード
- 5万行のCSS
- 時間がないので、ひとまず継ぎ足しで作ってしまうのが繰り返される
- 削除する決断をあまりしたがらない
- 手動テストでもいいから、テスト通して問題なかったら消したら?
- Gitでバージョン管理したら、巻き戻せるから継ぎ足し問題は昔ほど酷くない
- 5万行のCSSはSassでリファクタされたそうです
- それやったひとはリファクタリングした直後に去りました
設計の能力、概念化、抽象化の能力はエンジニア・プログラマーに必須
- これは教育と訓練
- データを表に落としこむぐらいのことでも差がある
定期的にシステム、環境はスクラッチで作り直すべき
- システムというのは汚れていくもの
- 2年サイクルぐらいで抜本的に見直しをすべき
WordPressなどを仕事で使ってる人、プラグインなどの問題に気づいてもissueかかない
- 放っといても直らないけどいいの?
OSS精神を学ぶ機会ってなんだろう?
- https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9
- 案外でもなくOSSの考え方に触れる機会は少ないのでは
企業など、使うだけ使って儲けてるのに、それを良くすることは何もやってないとこがあったり(特にクラウド系)
さくらインターネットはサーバホスティングなど色々援助してくれています
- アピールしてるかといえばしていないかも
- エンジニア受けは良いからそれでもいいかも