姫路IT系勉強会 2022.01

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

オンラインとオフライン

  • オフラインにオンラインでカメラ参加してると疎外感ありそう
    • カメラを増やすか?
    • カメラを無線化して、画面出力とOBSでまぜて仮想カメラでdiscord?
  • この試行錯誤じたい勉強会のネタやな

自己紹介

  • 学生さんがコロナで大変
  • 新人さん教育をしてます
    • すっごーい昔の歴史からやってます
  • 個人事業主の準備をしてます
  • 学生です。いろんな人の話を聞きたいです

お題

採用とか人材とかの話

  • 部署によって変わる
    • 技術は後からついてくる
  • 知識技術よりも、人柄が大事
    • 否定から入らない人がいい
    • 情報を受け取ったら、発信してほしい
  • 教える方からすると反応がないことが不安
    • なにかあったら、なんでも反応してあげると相手も不安が減る
  • お互いの立場や状況を少し考える事がスムーズに進むコツ
    • 尖った人の扱いを覚えることも大事
    • 初めのうちは、指示された意図を理解しようとすることが大事
    • 相手を見て、言っていい内用かワンクッション考える
    • エンジニアと非エンジニアに、同じ対応は出来ない、表現を変える工夫が必要
  • 引き受けるときの表現には問題が多い
    • 良くわかってない相手、一見さんに安易にワンオフ案件を受けると大変
    • だいたい難しいというか、かなり多めの予算提案をしたほうが良い
      • 「はい、5000万でできます」はOKと取られる
      • 「5000万でできます」でやっとOKではないと取ってもらえる
  • 依頼されるシステムの規模がデカい
    • できるだけ最大公約数的なシステムを作ってる
      • お問い合わせフォーム(バリデーションあり)からメール+redmineチケットなど
      • さくらのレンサバでも動くもの作っている
  • リテラシーの問題で、なんでもWordPressでやろうとしてしまう
    • それってスタティックサイトジェネレータでできるんでは……
    • それってペライチでできるんでは……
    • WordPressのほうがめんどくさいのでは……
      • お金かかることも理解されない
      • 知識が古く現状と一致してないことも
  • 依頼主の技術的な知識の問題
    • 覚えた技術を必要以上に全面に出してくるけど、何かはよく理解してない
    • やりたいことと、提示された技術が一致してないことが多い
    • 解決したい事を正確に掴めるかが重要になる
  • 面倒なことはやりたくない
  • 会社の情報を読める知識があると便利
    • IR情報等から、話が出来ると出来るやつって思われやすい
  • 簿記と統計どっちが必要?
    • とりあえず簿記から入って、統計も覚えていくほうが良い?

Pythonの話

  • サイトを移行する
    • xmllint, sed, awk, grepとjqでスクレイピングツール書いてた
    • 「それ、PythonのBeautiful Soupでやったらええやん」と言われたので同じものをPythonで書き直してみた
  • Thonnyというエディタがよかった
    • Thonny, Python IDE for beginners
    • オールインワン
      • ラズパイのPython用標準エディタになってる
      • Pythonとデバッガがすでに使える状態で用意されている
    • Pythonをサラッと書きたいときに使える
    • なんとなく書いて理解するのにちょうどいい
      • 特に文系の人にはよさそうだ
    • Jupyter noteは環境用意するのがめんどう
      • ローカルで構築済みのものを使えるのが良い
      • (補足:ローカルで動くJupyterLabというのもあります)
    • WindowsでPythonインストールして環境構築して……はめんどう
  • すぐに既存のツールとの違いがわかるので楽しい
    • シェルスクリプト
    • XPATHが使えないから自分で指定する必要はある
      • Web系だとXPATHよりCSSセレクタ−のほうが出番は多いけど
      • xpathはXML系のツールだからね
  • 技術的な勉強をするときに課題を設定するといい
    • 「Pythonを勉強したい!」より「スクレイピングしたい!」のほうが覚えやすい
    • Excelの処理をするとか
  • DXの「自動化」はすでにこの界隈ではやってたよね
    • DXには「デジタルで業務改善」と「デジタルで新しいビジネスを作る」がある
    • 前者の業務改善にアプローチする方法は既存のものがたくさん
  • 「シェスクリプトはやめよう的」風潮
    • なんでもPythonにやらせるのもちょっとどうよ?
    • シンプルなファイル処理系とかはシェルスクリプト
  • 課題解決に使うもの
    • そういえば社内でPerlを再勉強してる人がいる(たぶん文字列処理?)
    • ケンオールの活用とか
      • データが2行にわかれてるやつとかめんどくさい
        • 郵便番号の扱いなど
      • だいぶFizzBuzzっぽい扱いになってる
      • 勉強用リファレンスデータとしてはいいんでは
      • 成形してCSVに出力しなおすなど手法はいくらでもある
        • DBに入れてからRDBMSにSQLで成形する
      • 京都の住所はめんどくさい(兵庫県内ならなんとかなる)

地上最高速のIoT/M2M

  • F1を見ていると、Zoomが広告を出している
    • F1の車体にもAMD、AWS、DELL、Ctrix等聞いたことある企業名が
  • IT業界の進出が続いている
    • AWSを使ったリアルタイム予測が行われている
    • ARを使った、対決中の状況表示
    • ドローンを使った空撮、俯瞰映像の配信
  • F1のIT化が進んでいる
    • 車1台あたり、センサーの数が200~300
    • 毎秒110万のデータが来る、データ量は約1TB近くになる
    • 膨大なレースデータを金曜土曜で収集解析を行い日曜の本番の戦略を立てる
    • 前年のレースデータとの比較も行う
    • ピットインタイミング、交換するタイヤの種類等をデータ分析で行う
    • 車開発からレースまで、分野ごとにIT企業がスポサーでついている
  • レース自体もIOT化
    • チームが取り付けるセンサー、F1オフィシャルが取り付ける監視用センサー
    • サーキット上にも複数のセンサーが実装されている
    • タイヤ状態、アクセル・ブレーキの開放状況等を視聴者にリアルタイムに表示出来る
    • コーナリングデータの配信で、ドライバーのミス、攻め方も共有できる
  • イミテーションゲーム(映画)

システム設計はどうされてますか?

  • システム開発時にMVCをベースにLaravelが採用しているレイヤードアーキテクチャを組み込んで使用しています。
    • 参照構造が、自身より下層と同階層以外には参照が発生しない為疎結合を保ちやすい
    • 自作ライブラリ群とシステムの間にヘルパー層を挟む事で、システム側が必要な機能だけ持ったライブラリを作成
      • 他システムでライブラリの拡張の影響を受けにくい
      • ライブラリが依存しているOSSプロジェクトの変更の影響を受けにくい
      • モデル側も同じ構造を取ることで、コントローラーに返った時点で直ぐに処理継続可能な状態にできるはず…
  • Reactに同じ構成でシステムを実装すると Fluxアーキテクチャの恩恵を受ける
    • 理論上はすべての要素の独立性を高く保ち、再利用性をあげれる
  • 何故そこに至ったか!
    • 7年ほど前にパズドラのシミュレーターをjQuery + PHPで作成
    • モンスター図鑑、絞り込み、スキルマップ、進化マップ、パズルシミュレーター….etcなどを実装
    • この時Javascriptにはそもそもデータを管理する仕組みがない、複数画面を管理する仕組みがない、など多数の問題にぶち当たる
    • この知見により、覚醒める
    • パスドラシミュレータープロジェクト
      • 既に動かし方が不明。パズルエミュレーターにバグがあるので、意欲のある方のPullリク待ってます。
      • jQuery開発で出てくるであろうアンチパターンをほぼ網羅している可能性があります。
    • パスドラシミュレーター