姫路IT系勉強会 2021.09

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

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

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

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

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

お題

AWS で screen を使ってある製品ソフトを更新したら約12時間程度かかってしまったが screen って遅くなるの? (fu7mu4)

経緯

  • AWS で動かしている業界では首位クラスの有名ソフト
    • WEB: nginx
    • DB: PostgreSQL, 180GB
    • Lang: Java?
    • お値段: OSSなら無料で使わせてくれるらしいよ?
  • 更新スクリプトを実行したら、AWSのセッションが切れる
    • もろもろの事情より20分固定
      • 19分に一回打鍵するロボットをMindstormあたりで組んではいかが
  • screen を試す
    • こんなかんじ

      screen -L -S xxxx
      update-script-interactive-mode
      
      #いくつかの英語の質問に入力していく
      
      質問タイムがおわった時点で C-a d で抜ける
      
    • screen で更新スクリプトを試すと予定時間になっても終りそうになかった

    • そのあとの予定は全部ほっておいて、土日実行させてみた

      • 約12Hくらいかかった
  • たぶん、正解はこれ
    • 更新スクリプトを非インタラクティブモード かつバックグラウンドジョブにする

質問 screen ってこんなに遅くなるもの?

  • screen は古い?
  • tmux の方がいい
    • 最近、tmuxに移行している人が多い気がする
  • systemd でなにかあったような。バックエンド処理にならなくなって、それから更新されたみたいな話
  • screen は使わない
    • QNAPに入ってたので、少し前に使いました
  • tmux emacsキーバインド!
  • screen は古すぎて情報があつまらない
  • 常に3セッションくらい欲しい、分割は便利です。
  • AWS SSM console だから?
  • 結論 screen から tmux に移行しましょう

自宅サーバーをVPSに移行してDockerに置き換えました(のがた)

  • LibreOffice のグローバルで活動しているが時間があいたので自宅サーバーを片付けようとした
  • 自宅サーバーが20年
    • VineLinux と廃物PC(AMD K6)利用ではじめました。
    • やっぱり自宅にあると便利。
    • 外に公開している分を外に出したい
      • 更新が不便なので Docker にした
  • 積年の小さいサービスがいっぱい溜まってるのでDockerが向いている
    • マイクロサービスに細かく分割するには Docker がいい
    • 「ありもの」でなんとかしたかった
  • tdiary
    • CGIから素の ruby をたたくスタイル
    • Rails や WordPress が流行る以前に割と使われてた
    • 内部はモダンに書き直されているらしい
  • Docker完全に理解した!(理解していない)
  • 最近は Dockerで公開されているツールも増えてきた印象。
    • npm パッケで --docker つけたらコンテナ立ち上がるパッケとか
    • 公式が DockerHub にイメージ用意してくれてたりする
    • 環境構築の説明がめんどうくさいので、Docker にしているのでは?
  • クリーンな環境でビルドするにはいいかもしれない
    • LibreOffice はでビルドする環境を整備するには使われている
    • 実はお仕事でもビルド環境を固定化するために、Docker イメージで開発環境を指定されることがある。
    • VyOS とかも1.2からはDockerでISOビルドになってる
  • Dockerfileはあまりよくない話
    • Dockerfileでコマンドを and でつながなきゃいけないのはいけてない
      • つなぐのめんどくさがってシェルスクリプトをcopyして・・・みたいなイメージも
      • Dockerfile がややこしくなってきたときは Docker 自体の使い方がおかしいサインという考えかた
        • 大きなサービスでドーンとした Docker はよくないことが多い
    • packer なら自動的にやってくれる
  • ログはrsyslogでDockerの外に投げればいい
  • Linux の知識がないと結局 Docker を使えない、使いこなせない。
    • Linux知識があるとコンテナ入って内部見て回るのも難しくない
      • ベースイメージはほぼLinuxなので
  • Docker は完全なカプセル化できていない。
  • alpine Linux はあまりわからないのでいや
  • debian ベースがいい

小ネタ: Minetestのマルチプレイをしたら面白かった(のがた)

  • Minetestは、Minecraftに影響を受けたボクセルゲームエンジン
    • かいせつ: Wikipedia Minetest
    • 家の中のLANでボイチャのmumbleサーバー置いて弟とマルチプレイをしたら、めっちゃ面白かったので公開サーバー作りたい
    • lua でゲームがかけるらしい
    • クソゲームがいっぱいあるのでジャンルとしては成熟しているといえる。
  • minetest が Android でも動く
  • MineClone : Minetest で動作する Minecraft のクローン
  • Verolen もおもしろい。こっちはロールプレイングゲーム
  • マルチプレイのために、サーバーを立てないといけない → Docker がいいんじゃないかな?
  • Docker などを勉強するニンジンとしていい
    • 集ってやるときにはオープンソースの方がライセンスが簡単に処理できていい。
    • 商用(Minecraft)だとアカウントをそろえる必要があるので、みんなで何かやるのはめんどくさい。
    • あとMinecraftのサーバは重いです(Javaとかいろいろ)
      • メモリとCPUがめっちゃ必要(Corei5の最上位が最低水準)
      • ゲームは約3000円、まともに動くPCは10数万(MODマシマシだとホントのゲーミングPC)

VRとかARなデバイス談義に燃えました

  • unity と blender で遊ぶと面白かった
    • Unity
    • blender
    • ピタゴラスイッチ的なものとか
      • 重力加速度デモとかが一時間程度でできた
      • コーヒーカップの3Dオブジェクト簡単に作れた
      • Connpass VR無料講習会
    • C#とかで挙動が定義できる(厳密にはUnity C#)
    • magic leap
      • 今年度中に magic leap 2 がでる?
      • 27万円
    • holo lens
      • 47万円
    • north star は magic leap を独自に開発するめに必要な情報が集っている
    • 背負う用のゲーミングPC .. ?
    • Nreallight
    • VRやARのものを使ってゲームをつくりたい
  • VR や ARをつかった体験
    • ちょっと疲れてしまう? 酔いは大丈夫?
    • 三次元的な動作を要求されるコントローラーは一般的ではない
      • みんな慣れてるのはタッチ操作
    • 慣れないと難しい?
      • 無意識に体ごと動かしてしまう
      • やはりスマホが最強のデバイスなのでは説
  • VRとかARのアプリケーションは?

Twitterから「一時的に制限されています」を喰らいました(さとう)

  • 殺されるような投稿をした覚えないです
    • AI の誤判定と思われ
  • 電話認証かければいいようですが
    • ひとつ、電話番号あまり教えたくないです。
    • ふたつ、某KOFで共通アカウントがあるのですが、こちらには電話番号ないです。
      • こちらに制限を食わされたら、解除できなくなります
      • なしでも解除できたほうがありがたいです。
    • みっつ、利用規約には「電話番号教えろ」なんて書いてないです
  • Twitterには連絡しています。
    • 電話認証しろ、と返ってきたので、「それでは困る」と再度連絡いれました。
  • ところで、なんでそんなことになるのでしょうか?
    • PCやタブレットのブラウザでしかアクセスしてません。
    • ログインしたらツイートしてすぐログアウト、という使い方です。
      • BOT判定?
    • ツイートがヤバければ警告が来る由ですが、そんなの見たことないです。
    • コマンドラインを書くのはまずいかも
      • 機械学習モデルが「攻撃」のためのコマンドだと解釈してしまっているかも
      • 10年ぐらい前、ツイートからJSのインジェクションができてしまうバグがあって騒ぎになりました
      • 「(プロセスを)殺す」とか「kill」とかも
    • コマンドラインだけでなく、コメントも書いておいたほうが
      • スパムやBotじゃなく、人間が書いてるんですよという表示
    • プライベートブラウジングは OK?
    • ログインする IP が変りすぎていると警告があるかもしれない。
      • 携帯のものなら国内で
      • ログインするとメールが飛んできますが、推定の場所は日本国内のあちこちです(大阪といわれた試しがない)
  • 別サービスにいく?
    • マストドン
      • 姫路IT勉強会のインスタンスをSakura のクラウドでつくる話もあった
    • 別アカウント
    • 固定メンツならSlackやdiscord で OK?

監視カメラを手軽に初めてみませんか(もりや)

  • 自宅に監視カメラを設置してかれこれ2年以上経過しました
  • 低コスト
    • 5万円くらいから始められます。
    • 記録しなくていいなら3000円から始められます
  • 監視カメラの管理サーバーにはShinobiを使っています。
    • カメラ映像を無変換でハードコピーしてくれるOSSなソフトが他にない。
    • 有名所のZoneMinder等はエンコードが発生する関係でサーバースペック要求が青天井になるのと、画質が落ちます。
    • このソフトだとカメラがエンコードしてるデータをディスクに書いてるだけなのでCPUとかは最低でOK
  • カメラ映像を1年保存する場合、カメラ1台あたり2TB程度必要になります。
  • お手軽に始める場合はAtom Camが価格、機能、センサーで優れています
    • ただ、バックに付いてる企業がXaomiです
    • SDカードに記録するので、HD画質なら32GBで3日間、SDなら1週間保存できます。
    • 仕様上はSD対応は32GBまでですが、実際には128GBまで使えます。
  • どのくらいの容量/お値段かはエンコードしだい
    • FullHD、H264で一日録画するとCBR(フレームレート固定)30GB、VBR(可変フレームレート)10 GB/一日くらいになります
    • カメラ自体に付いているエンコーダは大体H.264、H.265は少ない
    • 解像度が高い程高圧縮のコーデックが効果的にききます。
      • 4KならAV-1の方がいい
  • NECやパナのカメラは高い(10~20万)が、センサーは100円くらいのはず
    • Alibaba行け
    • FHDが1000円とか、4Kでも2500円とかでカメラが買える
    • 価格の差は、ロジック部分で行うノイズキャンセリングと熱対策の差が出ている大きく出ているみたいです。
  • 画像監視ソフト shinobi
    • H.264、H265でRTSPで送られてくるデータくるそのまま保存してくれる
      • トランスコードして保存するシステムが多い
      • エンコードが不要なので録画サーバーのCPU負荷が殆ど無い
      • 再エンコードされないのでカメラの映像がロスレスで保存できる
  • ただ撮るだけでなく、動体検知してほしい
    • 画像差分だけでは実用にならない
      • 蚊が飛んできただけで検知する、日暮れになっても
      • 誤検知が非常に多く、屋外の場合はイベントを日に2万件以上検知し、必要なイベントが不要なイベントに埋もれてしまう
      • 範囲の絞り込み、変化量の調整である程度緩和は出来ますが、天候、設置場所、に応じた設定画発生するのと、それでも期待する結果が出難いです。
    • 差分を検知するだけでなく、その次
      • 写ってるモノが何か判定する
        • マシンスペック要るなぁ
        • 前段階があるので処理不可は減りますが、カメラごとに判別機が必要になるので、お金が
      • 赤外カメラで温度検知しては
        • 人、動物、車、天候条件が揃えば確かに正確に検知できます。
        • ただ、天候の影響をモロに受けます。
          • 真夏には全て熱くなるので使い物にならない
          • 雨の日は逆に全て冷えるので検知範囲が狭まり誤検知になる
    • カメラに役割をもたせた運用もあり
      • 広角レンズカメラには動体検知を行わせる
      • 録画用のカメラには記録特化で映像の記録のみ行わせる
      • 役割を分けたほうが、運用コストは下がる部分もあります。
  • 監視カメラがあることを表示するだけもある程度は抑止力に
    • 動物には通用しません
    • ハクビシンとかアライグマとか出没します
    • 局所防衛ならSonicSenserでもいいのでは
      • 過去に巨大ゴキブリホイホイを作りましたが、自分が捕まって上手くいきませんでした
  • イモケンピの件は(害鳥駆除)
    • Webインターフェイス開発中です
    • 充電状況の管理、監視機能が想定より複雑になりそうで詰まってます。
  • 1000円の中国製カメラ
    • グローバルIPを入れてやると、自動で中国と通信する
    • 設定をするのに、WindowsXPが必須
    • ユーティリティが古いが、カメラのファームウェアはアップデートしているようだ
  • 警察としては
    • 録画など映像のみを証拠に犯人を特定する証拠にするのはかなり厳しい
      • 似てる他人だ。と言われた場合に映像のみだと反論できない
      • 画質、服装の一致、等があっても同じ
      • 自宅から出て、犯行をして、帰る。までが全部映ってる場合は可能性あり
    • 動画のフォーマットではなく犯人との距離と角度は重要
      • 映像を見て、人間が「この人だ」となる程度であれば、SD画質(420P)程度で大体わかります。
      • FHD、4Kの方が当然、分かりやすくなるので有利ですが、保存容量が4条倍で増えていきますので、メリットがどこまであるか。

チケットのタイトルと内容の実装例が真逆だったことに誰も気づかず作業していた(ムネナガ)

  1. サイト内の全リダイレクトを変えるチケットが起票されました。
  2. チケットの内容は下記みたいな感じ

    タイトル: index.htmlなしにリダイレクト
    概要:SEO対策でURLを統一する
    例:https://example.com/foo/bar/ -> https://example.com/foo/bar/index.html301

  3. アサインされたので例を見て「index.htmlで統一やね」と理解して作業を始める(タイトルをスルー)
  4. 進捗どうですか?とPMが聞いてきたときに初めてタイトルと例=実作業が真逆になっていたのが判明
  5. PMは逆に、タイトルを見て理解していた(例示をスルー)
  6. 確認のために、チケットは起票者に一旦差し戻しとなりました
  7. 正しくは「index.htmlはフォルダ名のパスへ301リダイレクト」でした
  • テンプレートを用意したり、ある程度は運用の工夫をしてるチケットシステム
    • でも、まず起票者がきちんと見返してるでしょうか?
  • 後工程でおかしいと気づくかどうか、スイスチーズモデルみたいなもんでスルーされるときはスルーされちゃいます
    • 人間の認知バイアスでタイトルに引っ張られたり、例に引っ張られたりします
      • PMはタイトルで理解した気になっていた
      • ムネナガは例をみて理解した気になっていた
  • 失敗事例とかありそうな気がする
    • 失敗知識データベース
    • 製造業や危険な作業がある現業とかには一意的にしか理解できないように工夫がありそう
    • 使う文言や言い回しの統一とか、注意書、指示書の書き方のノウハウ蓄積
  • 起票者のリテラシー?
    • 起票者がマーケティング担当なので、開発のチケットを書き慣れていないかも

次の話のために、プロジェクト管理のヒヤリハット的な軽い話題でした

プロジェクト体制変更に伴う引継ぎどうしてます的な話(inapyon)

  • Andridの組み込み開発ですが、長年参加してたメンバーが撤退してしまう
  • 属人化しまくってるので引継ぎできるか不安
    • そもそも後継者は「何が分からないのか分からない」になりがち
    • かなり下のレイヤ(カーネル)まで手を加えている模様
    • できる人が限られていると属人化しがち
    • 開発プロセスより意思決定プロセスに問題がある気がする
      • しかし意思決定が改善しても古いプロダクトのメンテは続く
  • ドキュメント・資料等も不足している
    • ナレッジベースの作成がいいかも
    • 正規のドキュメントだとレビューなどハードルがあがる
    • knowledgeとかどうでしょう
  • まわりはTCPしか知らない人たちに HTTPS の仕事を引き継いだ時の話
    • 属人になっていて投げ先がきえたら困ることをヒアリング
      1. 投げ先の人を特定する
      2. ドキュメント化またはその情報の正しさを確認
      3. ドキュメント化がおわったら、その人をオブザーバーにして、それで仕事がまわるか確認
    • 結局1チームでは引き継ぎができず、2チームに分割することに
  • チームに対してカオスモンキーテストを行う(荒療治)
  • 情報を一元化する場所をつくる
    • 人への問い合わせをやりにくくしておく
      • 人に直接聞くときは情報を残すという名目で情報を残す作業を課しておく
      • ナレッジベースのURLを教える場合は、情報を残す作業をしなくてよい
      • 質問に答えたあとナレッジベースに書きこむ
      • 問い合わせコスト > ナレッジベース参照コスト にしていく
    • とにかく、メモを残せ!すぐに残せ!
      • 半年前のことなんて覚えてない
    • 資料を生成するツールをつかう
      • コードやドキュメントコメントから生成するなどして負荷をかけないようにすること
        • この関数なんだろう?と思ってDocコメント見ると、周り5個ぐらい同じ内容でワラタ
      • draw.io をつかう
      • ドキュメントをわける
        • 非エンジニア向は redmine の Wikiでもあり
        • エンジニア向は リポジトリ に残す
    • 全員でやるというコンセンサスや文化形成が必要
      • 完璧はめざさない
      • 誰かが作成するはNG(結果的に誰もやらない)
  • 発生頻度×影響度で課題をトリアージしておく
  • 開発プロセスに対する図式化とかも
  • 根治には組織文化の変革が必要
    • 文化を変えるのはメチャクチャ大変
    • 少しずつでも誰かやってると、少しずつ変わる
    • ドキュメントが「あってよかった」という状態になるように

自宅VPNサーバのおすすめ(Keigo)

  • 常時起動しているraspberry pi にVPNサーバを仕込みたい
  • wireguard 使用中だが接続中に外部ネットにつながらない
  • wireguard 使っている方 or 他のおすすめ(内蔵ルータ, SoftEther, OpenVPN etc.)
  • ※ルータにOpenVPN機能がついているが、速度が出ない
  • 実家とVPNをつないでいたが、IPv6がでてきたときにIPv4がつかえなくなった。
  • フレッツの通信?
  • 日本のIPv6(フレッツ網)は独自仕様なので海外のルーターはお勧めしない
  • 以前はPPTPだったが、iPhone10以降サポートしなくなった
  • Amazon の VPN ルーターはポートが少ない印象
  • Yamaha のルーターを買う?
    • 鉄板だけど、お値段が用途に合うか…
    • コンソールだけでなく、Webブラウザでも設定できます
    • IPSecとか、公的規格にわりと沿っている印象
  • OpenWRT でルーターを変える
    • 何かあったときにコマンドで修正できる安心感
  • Raspberry pi も古いバージョンだと速度がでない
  • 余談: K-POPのファンはVPN使ってるけど、そういう人からVPN出てくるとは思わんかった
  • お金で解決する?
  • OpenWRTで作るのはどう?
  • VPNのつかいかたをもうすこし考えて定義する必要あり
    • 下手に全部の通信を一つの拠点につなぐと、処理速度がでなくなるかもしれない。
    • 図にかいて?きいてみたら

Laravelのコントローラーのテストって、Featureテストだけでいいんでしょうか?(かねだ)

  • カバレッジはとれているけど、それでいいのか?
  • 関数をひとつずつテストしていく必要があるのかどうか。
  • Laravel のテストは 3種類あって、その一つ。
    • テストにどこまで求める?
  • 一般論としてシフトレフトにしておく
  • ワンオフのプロダクトでLaravel使ったことあります
  • テスト文化がなかったところなので判断しにくい
    • テスト方針が決まってないなら、プロジェクト・チームとして決めよう
    • 考慮すべきことは…
      • テストがないことによるリスク
      • テストに割けるリソース、日程
      • テストコードを書くコスト
      • …etc.

WSL2(Hyper-V)とVirtualBox併用できてる人いますか?(かねだ)

  • VirtualBox6からいけるとか聞きましたけど…
    • ウチのWin10WSL2ではVirtualBox6.1.2xダメでした。6.1.xからできるようになったアナウンスがあって、出来てる人もいるらしいです
    • VirtualBox6.0.xでダメだったので、その後試してないです(ムネナガ)
      • ウチは仮想化ネットワークで不具合でてVirtualBoxに繋がらなかった
  • WSL1 と VirtualBox ならできていますが WSL2 は試していません(fu7mu4)

小ネタ Microsoft Azureってどうですか(inapyon)

  • 会社の研修でAzureを学べることになった、所属部署がガチガチの組み込みばかりやってますが(クラウドも機械学習もみんな分からない……)
  • どこまで?
    • インフラを置き換えるのか?
    • IISの代りとしてなら使ったひとがいた。
    • Visual Studio からアプリがデプロイできる機能があるらしい。
    • Azure の機械学習などもあり、Microsoft の提供する学習コンテンツを利用してみるといいかもしれません。
    • IaaSとしては AWS とかわらないとは聞きますが…
      • 「モダン」な機能は一通りある模様
  • microsoft じゃないとダメという人もいるらしいから。
    • 日本法人という意味では商習慣的にはMSが一番ラク?(じゃぱにーずとらでぃしょなるかんぱにー的に)
    • 他のクラウド基本的にクレジットカード前提なので・・・
  • Intune でWindowsデバイス管理(MDM)が楽なのはAzureのメリット?
    • 一応GCPでもWindows/iOS/AndroidのMDMはできる
  • クラウドの話、AWSが多い印象ある
    • GCP をつかっている人もいないことはないが
  • AWS は オープンソース界からのは評判悪い
    • OpenSearch のこと?
    • Orcle よりまし
      • Oracle はまた Java 無料でだすとかいいだすし。
  • Azure だと やっぱり Windows の連携とかじゃないか
    • アクティブディレクトリとかWindowsデバイス管理できるのが強みでは
  • DX とかいいだしても言葉の上だけ?

RAID構成Diskが壊れたけど表記容量の差異で再構築できなかった罠(sperkbird) 雑談

  • 2TB(¥20kほど)のSSDでRAID1組んでた

    • 流石にHDDのRAID1は発熱と音がつらい
  • 片方壊れたのでAmazonで代わりを手配(別メーカー)

  • 既存、代替どちらも2TBで売ってるけど、認識させたら2.0TBと1.97TBで違った(代替が1.97TB)

  • 表記2TBと実効2TB統一してくれー・・・

  • 容量小さいのでRAIDがリビルドできない!

  • RAID用Diskはメーカー、製品揃えたほうが無難

    • チップが変って実容量が変るかもしれないのに型番の変わらないようなevilなベンダは採用しちゃだめ
  • SMART 適当に返したりすることもあるので信用できない?できる?

WordPressお勧めプラグインとPHP開発環境押してください(tomtomtom)※時間あれば・・

  • 知人からHP作成依頼受けて作業着手中

  • 拡張性あって使い勝手が良いテーマ

    • https://wordpress.org/themes/
    • 公式の中から、ダウンロード数とかで選ぶ
    • 高機能テーマは、コードに手を入れるレベルのカスタマイズが必要になるとしんどい
  • 環境のバックアップ対応はどうしている?

  • 開発環境はVSCode

  • バックアップは今はこれ一択

  • ローカル実行環境

  • 有料プラグイン・テーマはサイトの運営者が買うようにして下さい。

    • 1サイト1ライセンスの有料テーマを制作会社が1ライセンスだけ買って、複数のクライアントのサイトにいれたりとか、おかしなことも多い世界です。
    • 10サイトまでOKとかの有償プラグイン、テーマも普通にあるけど
  • おかしなことをされて困ったテーマ制作者の話

告知

  • 関西オープンフォーラム 2021.11.12 & 13 20周年だそうです。
  • オンラインのカンファレンスは厳しい
    • Ubuntu は gather をつかう工夫をしていた
  • イベントのやりかたを考えなおす方法を検討した方がいい。オンラインならではの方法を検討した方がいいと思う