姫路IT系勉強会 2021.08

  • 開催日: 2021/8/21 13:15 - 17:35
  • 司会: fu7mu4さん
  • 参加人数: 参加者: 9名(うちLisper 9名にならないかな)学生 0名
  • HackMD https://hackmd.io/lu_wRu4bQwSCr9Kd5o1ecw
  • connpass: https://connpass.com/event/221159/
  • ハッシュタグ:#histudy
  • Discord(オンラインミーティング専用)姫路IT系勉強会招待コード: https://discord.gg/rZCeScB
    • Discordは無料プランに乗れる人数(10人以内)なので使っています。
    • 有料版でも$15/月程度なら払えなくもないですね。
    • Discord以外にも色々ありますので、人数が増えたら検討しましょう。

自己紹介という名の近況報告

  • 最近困ったことの報告会状態

今月のニュースまたはネタ

ネタが思いつかない人用に今月のニュースをはじめました。

お題

サーバーのディストリービューションをDebianに統一しようか真剣に悩んでる(ワテ)

  • 前回からの続き
  • CentOSは問題があり、後継者問題が発生
    • 後継者3銃士つれてきたよ?
      • XX「えっ?CentOS後継3銃士!?」
    • Alma Linux
      • 個人向け?
    • Rocky Linux
      • 法人向け?
    • Oracle Linux
      • 有償サポート推してきそう、Oracleだから
    • どれが覇権取るかがわからんので更改見据えると怖い
    • ここまで CentOS Stream でてこないのカワイソウ
      • いや、ローリングリリースですしおすし…
    • 小規模環境ならRHELのDeveloperライセンスも一応本番OK(16ホストまでなら・・・)
  • 安定運用がしたい!です→Debianしかない!
    • Ubuntuはバージョンごとに激変が
  • Debian のリリースサイクルの問題
    • リリースについてはDebianReleasesを参照
    • Debianのリリースサイクルは約2年毎にリリース(厳密にはフリーズが2年毎なのでリリースも大体2年ごとになってる)
      • リリースされると以前の安定版はoldstableになって1年サポート
      • oldstableの後、Debian LTS(日本語Tips)で一部のパッケージが2年ぐらいサポート
        • 最終的には合計5年サポートあり
    • 2~3年 または LTS を使えば4 年とかもいけるかも。
    • 2-3年で変えるのはきつい
    • old stable を活用したい
      • 5年は保ちそう
    • 前回のリリース(Stretch)ではPHP7.0だった
      • PHPはマイナーバージョンが2-3程度からでないと使いたくない
  • Debian はドキュメントが嬉しい、アップグレードガイドも充実
    • Docker のイメージもだいたい Debian
    • Alpine Linux は GLIBC じゃないのがたまに問題になる
  • サーバー用途としてはどうか?
    • OKだと思う
    • あまりに古いのは言語があれなので
  • メンテしてるDockerイメージがStretchベース
    • Bullseyeがでると2バージョン遅れ
    • そろそろアップすべきか?
      • 2バージョン遅れはアップした方が良い
  • Ubuntu はインストーラーが新しくなってからまだ安定していない?
    • Preseedが使えない!
      • Autoinstallはあるけど

Terraformって1環境に複数のTFファイル管理ってできるっけ・・・?(ひごし)

  • 本番系環境と検証とかイベント系の暫定環境を別リポジトリで管理してみたい

    • TerrafromのWorkSpace機能でProductionとDevelop分けられないかな?
    • リポジトリ分けたときの影響が怖い
      • 検証系動かしたら本番系いきなり壊れた!とか
    • 検証系はTerrafrom管理下に置かないとか
      • Terrafromは自分が作成したリソース(tf.stateファイル)で管理したもののみ扱う
      • 人間が用意したリソースは管理されない
  • Terraform を大きく変更したあとに試すなら、Sakuraのクラウドでリージョンを変えるなどすればいけるはず。

  • Terrafromはライフサイクルの設定も気をつけないと破棄される

  • Terraform でどこまで管理させるかというのも重要

    • OS までなどもある。
    • クラウド上でサーバーを立てるまで Terraform
    • サーバーの環境は Ansible で管理などの立ち位置

RedmineのAPIがPluginに対応してない件(ワテ)

  • Pluginのデータを自動的に投入させようとすると、プログラムで強引にメソッドに手を入れたりする必要がある悲しみ

  • やってみた例wate/ansible-role-redmine

  • 結局Rubyで流し込み処理を書くのでCentOSのRubyバージョンとかで詰まったり

  • トラッカーの追加や、優先順位の文言の書き換え、チケットのテンプレートまでセットできるロールを書いてます。

    • こういう感じのRedmineが立ち上がるというサンプルをスクリーンキャスト
  • Toggl ー Chrome拡張 - Redmineプラグイン で、作業時間の記録が簡単にできる紹介

  • Toggle 2 Redmine - ToggleのデータをRedmineにImportさせるプラグイン

Rubyの多次元配列の生成ではまった話(ワテ)

  • Rubyにおける二次元配列の初期化と扱い方
    • Ruby のデータ型が、値渡しのものと参照渡しのものがあってな..
      • 一部をかえたはずが他もいっしょにかわってしまうなど
    • Redmineの承認フローをゴニョるときにハマった

Webカメラで顔認証してみた話(モリヤ)

  • ブロックチェーンのSymbolの認証の仕組みを応用して、パスワードレス認証を試作しています。
    • 老人、パソコンに明るくない自治体をターゲットに公開鍵認証をQRコードで応用できないか?をベースに試作しています。
    • QRコードを記載したカードを紛失する前提で、紛失時の2Factor認証として住所情報をハッシュ化した「復活の呪文」とTensorflowJSを使った顔認証を追加
    • 顔の検出にこちらのモデルを使用して、顔のメッシュを検出
  • 検出されたメッシュの座標から、顔の一致率を求めようとしましたが問題が色々ありました。
    • 一般的に6割一致すれば同じ顔と判断する。というのが多いようです。
    • 取得した座標情報を平均として、比較データとの標準偏差を求める方法では誤判定だらけ
    • 顔のパーツ毎の座標情報から、顔パーツ毎の標準偏差を求める方法でも誤判定だらけ
    • 顔のパーツ毎の3次元座標の距離を求め、顔パーツ毎の距離比率を求める方法だと6割は達成
    • ただこれは、OpenCVを使った顔判定と同じになるのでTensorflowJSを使う意味があるのか?と個人的に疑問があります。
  • NNの顔判別モデルを使った場合との比較
    • 顔判別機能を持つモデルが既にあるのに、あえて手動でやってみた理由です
    • モデルベースでやると、判別用の顔画像を保持する必要があり、個人情報的にアウト
    • モデルベースはTensorflowJSが処理するのでニューラルプロセッサ等積んでいる場合は非常に高速になり、速度の面では圧倒的に有利です。
    • 画像データの容量の問題もあり、大量になると管理が面倒
    • 顔パーツの距離比率データの場合、保存されるデータは現時点では個人情報に当たらない
    • 保存されるデータも30行程度の配列になるので非常に軽量
  • 平面で顔認識は厳しいのか?
    • 深度情報とれるデバイスがSamsung、HUAWEIは熱心だが…
    • 外国企業なので導入止められる場合が
    • ニューラルネットベースで2D-3D変換が増えており、取り込みたい対象の3Dの平均モデルがある状態の場合は、単体カメラのみで3D化出来そうではあります。
  • 2眼カメラが主流になるか?
    • しかしインテルも撤収傾向
    • AppleのFaceIDは赤外線カメラ式(ToF)
    • 一般的には3方式ほど
      • 2眼カメラ(ステレオカメラ)
      • 赤外線カメラ(ToF:Time of Flight)LiDARはこの方式+機械的な回転で360度カバー
      • ストラクチャードライト(プロジェクターでマス目を投影して歪みを利用)
  • 自治体向けシステムのつらみ etc.
    • 自治体職員、利用者リテラシーで、紙と画面が一致してないと使ってくれない
    • 条例によって制約条件が変わる
    • 加古川は日本全土の3DモデルプロジェクトPLATEAUで兵庫県から唯一データ化出来ています。ので頑張っている自治体もあります!
  • FIDO (認証技術) のお話など
    • マイナンバーで公開鍵を作れるので使い出あるのになあ
    • みんなが使えないと問題(100%カバーできなければ効率よくても・・・)
    • 操作、入力を極限まで減らすことができれば、理想的にはなります。
    • 条例ベースで動く関係で全ての業務がテンプレ化されているため、Redmineの雛形、操作の強制化のような仕組みを上手く組み合わせると、IT知識を求めずにシステム化出来る可能性もあります

histudyのトップページの校閲お願いします(ムネナガ)

GitHubでプルリク送れるので、GitHubでのレビューのデモでもやってみますか?
developブランチにならPR送れる状態ではある。hugo serve でローカルでサイトは見れるところまでは持ってきた。

Hugo載せ替えて、適当なテーマに載せた状態をローカルで立ち上げて見てもらった。

これで1回プルリクをだす

Aboutに書かれてるリンクで使ってないモノ、使ってないコミュニティは削除した方がいいです。

デプロイまであと何が要る?

  • HackMDの過去ログを入れる 19年~21年8月まで
    • スクレイピングしても良いし、24ヶ月分ぐらいなら手動でID取って、hackmd-cli 使う
      • hackmd-cli export lu_wRu4bQwSCr9Kd5o1ecw 2021-07.md でこのマークダウンがローカルに取れる。
  • コーディングスタイルを揃える
    • インデントがスペースとタブで混じってる
  • PullRequest出す前に生成物確認、デプロイのテストはどうするか
    • さくらのクラウドに検証用VMを立てて使ってもらう?
    • Issue立てました!Issue#8
  • 新規ログは一先ず手動で突っ込んでPR送る形で運用しましょ。
    • CircleCI の cron で21日過ぎたら自動でHackMD取得してPR送るとか構想はあります。
    • そういう自動処理系するサーバもインフラ更改で作りましょう!
      • 定期処理をするサーバがほしい件Issue#9
  • CIでのビルド処理はまだない
    • histudy/siteの.cicleci/config.ymlがnodejs用のCIサーバ設定になっている
    • hugoを使うようにベースコンテナイメージ、hugoのDL、パスの通るところに配置などを行う
    • deploy.shの生成コマンド実行をhexoからhugoに書き換える
  • 内容の生成前チェックもしたいよね!
    • Textlint入れてTypoとかてにをはの修正する感じで
      • histudy/siteのIssue立てましょう
      • 立てましたIssue#34
  • プルリク
    1. Hugo移行で 1つ
    2. Aboutなどコンテンツ修正で もう1つ
  • ついでに、イシューなど立てたり、整理したり

入ってみたらCI動いてない件(かねだ/愚痴)

「開発環境の構築」手順の中に、VS Codeを強く推奨します とあり、更に php-cs-fixer入れてコードスタイル統一するように設定してください という記述もあるのに、 composer.json にはphp-cs-fixer をインストールした気配が無い。 更にcomposer require friendsof/php-cs-fixerするとエラー 「どんどん自動テストするようにやっていってます」と言われてたのにphp artisan testで動くphpunit用の.envファイルは無い…

  • Web系プロジェクトあるある
    • npm パッケージ用の設定ファイルはあるが package.json にパッケージ書かれてないとか
    • package.json 自体ないとか
      • パッケージ情報を残す文化がないチームあるよ

唯一dusk用のブランチがあるが、dusk動かない… いや、動くんだけどテストが5個あって4個エラーって…

唐突にCI/CDのイベントのおしらせ

git grepは神(超小ネタ)(のがじゅん)

その他

  • ConnpassのHistudyのイベント数が100回になってますねー

    • マジですか!どこかでお祝いしたいけど、この状況が収まるまでムリかなぁ…
    • コロナがおさまったら、やりたい
  • 9年もつづいている?

    • 2012年1月21日の KickOff のマークダウンがのこっている…
    • DoorKeeper とその前にもイベント管理があったけど
    • 第一回は jQuery のモバイルサイト?
    • レジェンドリスト(賞金首リスト)
      • こわくないよ~ Lisp かわいいよ~ おいで
  • スタイルがかわった

    • 講師スタイルから付箋でお題収集スタイルへ
      • 講師スタイルはつらい
    • オフラインからオンラインへ
      • コロナでそうなった
      • コロナ前からオフラインとオンラインのハイブリッドを試した
        • オフラインとオンライン側それぞれで話がすすんでしまってうまくいかなかった。
        • 改良の余地あり
        • おさまってもオンラインはありなんじゃないか
        • オフ回も検討していい
      • コロナで機材が充実した。
  • 過去の話題

    • HTML5
    • 正規表現エンジンの話