姫路IT系勉強会 2023.04

最近のニュース

自己紹介

  • 変ジニアの集まりです!(キモい)

お題

ここの下にお題(相談したいこと、発表したいことなどなんでも)お書きください。
※ 記載するお題は参加者一人につき1つだけ記載するようにお願いします。
### <ネタ>+(名前)の形式でお題を記載してください。

お題をここに書く(名前を書く)

(概要や背景などをここに書く)

Rails使っているアプリケーションのローカルビルドを試している話 (ながせ(sanak))

  • RedmineのUIがイケてないという良くある話

    ですよねー この増田は有能。

    VPSや自宅サーバーにインストールしたいSaaS代替Webアプリ38選

    • テーマでなんとかするのでは?
    • Redmine以外の他のアプリはどうなんだろう?
  • その他、以下のサイトなども参考に
  • GitLab
    • 依存ライブラリが多いが、GitLab社の開発者の8割以上だったかが使っているmacOS環境でDockerが遅いらしく、GDK(GitLab Development Kit)というビルドシステムが使われている
    • セットアップスクリプトの中でいろいろダウンロードしたりするらしい
    • これまで使っていたrbenv+nvm環境を、asdfに切り替え、起動までは確認
    • GitLabやGitHubのユーザーの活動を可視化する例の草をはやす機能がRedmineにも欲しい!
      • GitLabからRedmineに移植したい。
  • Mastodon
  • OpenProject
    • Redmineから(おそらくかなり初期に)フォークしたもの
    • https://github.com/opf/openproject
    • フロントエンドは、Angular.js
      • Railsだとフロントエンドとバックエンドが密結合になりがちらしい。
  • Redmineが古臭いのはいいとしてなぜ更新しないのだろうか?
    • オリジナルの作者はとくにRedmineから収入があるわけではない
    • Redmineをサポートしている会社もあるけれどもUIの更新は進んでいない
    • ユーザーは重視されていないような…
      • すでに使っているユーザーが変化を望んでいない場合がある
    • コミュニティの中の問題
      • メンテナンスの人の問題かなぁ。
      • RedmineはSubversionでソースコードを管理しているらしい
        • Subversionの管理については、記録を残してGitの移行は大変なので、そのままになっているのかもしれない
      • 近代化は進んでいない
      • コミュニティに提案して改善していくしかないが大変
    • このままだとRedmineを使わずに、別のものを選ぶことになる。
      • フォークしよ!
    • 標準テーマが十分よければ、独自テーマはいらないのかな。
    • コア開発者が最近の開発についていけてない可能性もある。
    • Ruby開発者はなにもかもをRubyに寄せようとしているような雰囲気
    • こういうのの導入には、時間のある若者が大鉈をふるうなど必要なんだけど、現在の開発者に求めるのは酷かなぁ
      • 新しいメンバーがはいってくるかどうかは運でしかない。
      • ドキュメントが整備されていないので、厳しい
        • OSSコミュニティでよくある問題
        • いつか決断するしかない、タイミングによってはプロジェクトがゆるやかな死を迎える
          • 機能追加などをとめてドキュメントを整備する
          • 画面などのインターフェースを改善する
          • バージョン管理をsubversion→gitへ移行する
            • 移行が厳しい人はgit-svnでも使えば?
      • 本家のコミュニティに日本コミュニティから提案があってもいい
    • RubyのRailsコミュニティは健全だと思う
      • Rails界隈はコメントがないことが多いので辛い
        • JavaScriptなどにアノテーションがかかれれいない
        • 最近はコメントがかかれない、傾向にあるのでは?
        • コメント書かないよね
        • コメントを後から書き足せばいいんじゃないのかな。
  • OSSは自由がある
    • wateさんの個人の感想
    • よいOSSはドキュメントも整備されている:debianなど
  • 余談: Rails関係で恐ろしい話。GitHubは毎週RailsとRubyをアップデートしてる!😱

nim言語がおもしろそうなのでチャレンジすることにした(fu7mu4)

  • nim言語は過疎っているらしいのでやってみることにした。
  • nimはコンパイル型言語
    • c/JavaScriptに変換できるらしい
    • 内部でc->バイナリにしているらしい
  • 私がんばりますね!
  • 他の人も決意表明すればいいですよ

serverlessframework TypeScript lambda(kotoku)

子供向けノートパソコンってどんなのがありますか?(kotoku)

WindowsRPAツールのリサーチ(ヒカル)

  • 背景:エンタープライズ系Windowsデスクトップアプリの設定数が多いため、設定を自動化したい。(100項目以上の設定を手作業したら数時間かかり吐きそうになりました)
  • ツール候補:PyAutoGuiAppiumPower Automate Desktop
  • Ansibleでできないか?
    • Windows標準じゃなく、ベンダーが作成したものであるので、対応していない。
  • ベンダー作成したアプリなどであるため、保守契約・サポートなどはない
  • Power Automate Desktopは?
    • Microsoftのアカウントなどが必要
    • Power Automate Desktopだったら、とりあえず数年後も使えるんじゃないか。
  • PowerShellGUIのキーボードが押せるので、それでしている人も多いみたい
    • LinuxでもPowerShell動くし
  • SCCM(System Center Configuration Manager)で構成管理どうでしょ
  • Sysprepなんかも?
  • 設定後にWindows自体をバックアップしたら?
  • 失敗談:AnsibleでWindowsをPyAutoGUIできなかった - 川獺の外部記憶
  • インストール、設定前と設定後でレジストリや設定ファイルの差分をとるというのも。
    • 最近は%AppData%にファイルで保存されたり別の場所にあったりするので探すのは大変。
  • 緊急・急ぎなら手動でがんばるというのもありえる
  • Windowsの自動化はあまりやられていない
    • 仮想マシンで検証などができるようになったので多少楽にはなった。
    • ソフトウェアによってはグローバルにインストールできないことがある。
  • 親切なベンダーだと、インストーラー.exe /?とかでたまーーーにコンフィグとか教えてくれてたりする
  • wingetは楽
    • アプリのインストーラー、パッケージマネージャー
    • wingetは標準ではいっている。
    • Debian/Ubuntuでいうapt
    • wingetはアンインストールもサポートされた
    • ただ1回のwingetでインストールできるのは、1アプリケーションのみ
      • apt install xxx yyy zzzみたいに一気にインストールしたい!!
      • winget exportで一覧をjsonに書き出してimportで一括インストールできるけど、MS Storeのものは対応していない!
        • なので、バッチのループでインストールも必要…

いまさらviteおいしいです(かねだ)

  • Laravel10で使ってます
  • viteでプロジェクト内のファイルを変更・保存すると、トランスパイル→リロードを自動でやってくれて楽
  • Livewireとかいう、なんか気持ち悪い機能と相性がいいらしい
  • PHPのクラスファイルを編集しても変更に追従してくれる。
  • JavaScriptのWebpackのようなもの?
    • Webpackはアプリが大きくなるとどんどん遅くなる
    • viteはこの問題を解決したもの
  • ということはocamlのビルドシステムのomakeみたいなものですね。わかりました。
  • viteの経緯
    • https://browsersync.io/ に設定が加わったのがwebpack
    • viteはwebpackの後継
    • Viteっておいしいの? というのは過去に本Discordでチャンネルがあった。
    • Laravel 9からviteが組込まれた。
      • Larabelは新しいものをいれるスタイル
        • Fedora ?
        • 追従するのしんどいという声もある
  • Laravel
    • Laravelは後ろでごにょごにょしてくれるので、そのあたりを理解していないとうまく使えない。
    • 新しいものを使いたいならいいかもしれない。
      • Laravelが導入したことをキャッチアップするとPHPの最新状況が把握できるかもしれない。
    • Laravelを把握している人がいた方がいい。
    • 逆に CakePHPは余計なことをしないが、古くさいという印象がある。
    • Laravelはサポート期間が短かい気がする。3年
      • 仕事でつかうにはサポート期間が短いかもしれない。
      • CentOSは10年とかありましたね
      • 自動車業界だと車は10年以上サポートしないといけないので大変
        • 最近はOTA(OverTheAir)といって更新を無線で配信できるようになったから…
  • 若手は、新しいものをやりたいといっていいと思うが、そのときのデメリットは、説明してあげないといけないのかな。

期限切れのルート証明書で発生した障害(はたの)

  • あるSaaSでクライアントのログ監視をしていたらある日、ログが送れなくなった。
  • 間でHAPROXYが動いていた。こいつからのログ送信が止っていた
  • SaaS側のサーバー証明書更新に伴い、クライアント側のルート証明書でサーバー証明書の検証が出来なくなったことが原因でした。
  • そもそもクライアント側のルート証明書の期限は2011年で切れていたのでなぜ今まで通信出来ていたのか謎。
  • jc-tool

Whisper試してみました(もりや)

  • OpenAI API経由でWhisper試しています。
    • Whisperよりも、音の制御が面倒
    • 渡すデータをmp3、分割にffmpegのwasm版が便利
    • ローカルでTiny版動かすより、API叩いたほうが早い
    • 誤字脱字は、ChatGPT側に「文字起こしをした文章である」という説明込みで修正をさせると綺麗にまとまります。
    • 録音時間ではなく、ファイルサイズ25M上限の記載がありますが
      • nodejs環境では生成可能なArrayBufferの関係で5分を超えるデータの場合そもそも処理できない場合があります
  • 文字起こし後の内容をChatGPT側でイジると使い勝手が広がります
    • 会話を止めるか、続けるかのパラメーターで起こした内容に対する質問に繋げる
    • 生成させる内容を複数出して、誤字脱字修正のパターンを見る
  • 音声コマンドを実現させるのは問題が
  • クルマのカーナビの音声認識につかえないかな。
  • オンラインに繋いで良いなら、Amazon Transcribe(音声をテキストに自動的に変換する)、JSONに整形してくれます。
  • 音声の文字おこしを議事録に利用できないか。
    • Yamahaのは音声を流した場合、誰がはなしているかがわかる。Whisperは誰が話しているかがわからない。
    • 話の内容がとぶのでそのままはできない。人が手をいれる必要がある。
  • Adobeのpremiere とDocker Desktopとの相性問題
    • Docker Desktopの起動中にAdobeのPremiereでリソースが読めない
    • フォーラムで報告があがっていたが解決されていない
      • WindowsならEvent Logを記録してログを報告しないといけない….
      • バグ報告にも技術がいる
        • Redmineでもバグ報告のときにはテンプレートを用意して、全部埋めないと受理しないようにしないといけない
    • 来月AdobeのPremiereで文字起こしがくるらしい。

大学でプログラム未経験者向けプログラミング授業を始めました (のがじゅん)

  • いろんな事情でプログラミングの授業を引き継ぐことになりました
    • 前任の方の授業は、こんな感じ
      • 自分は好きだけど文系学生には、やはりとっつきが悪かった
    • なんでGoogle ColabゼロからのPython入門講座をベースに授業をすることに
      • PythonじゃなくてLispにしたら覚える構文が少なくていいんじゃないの?
        • ブラウザでは動かないでしょ?
        • ひまわり言語はどうか?
        • 動的型付けで、エラーもある程度だしてくれる言語だからPython
          • Common Lisp…は変数に型がないから
          • ネストで構文が表現できるのが初心者には説明しやすい。
        • わかっている人とわかっていない人では見えるものが違う。
      • 1回目はコードをひとつも入力させなかった。
      • かなり手前から教える必要があった。
  • 今の学生は覚えることが多すぎでは?
    • はじめての人にはつらい状況
  • WEBプログラミングの授業の前に受ける、プログラミングの授業
    • 私が大学の頃はできなければ、合格できなかった。
      • 今とは時代が違うようです
        • できない人は落としてもいいんですよ。ただ、世代が変わって前提が少し変わっているから時代に合わせて変える必要があるなと感じました(の)
    • 意欲があるかどうかも違う。
      • 文系の学生は意欲があるけれど方法もわからなかったりした。
      • 勉強会にくる人は特別な人で情報収集できるから違う
  • 初心者のセキュリティガン無視されるのは怖い
  • フロントエンド開発のためのセキュリティ入門(YouTube)

ChatGPTの使い所がやっと見えてきました(ワテ)

  • OpenAI API を用いた文書校正(誤字脱字検出)
    • 公開ドキュメントの校正に使うとかなり良さそう
    • わかりやすいドキュメントを書くのにいつも苦労してるから、ChatGPTを日本語のLinter代わりにするといい感じになりそう
  • コード書くのにAIの補助がほしいならChatGPTじゃなく、GitHub Copilotでいいやんって感じがしてる
    • ただ、まだGitHub Copilotは使ったことない
      • 最近はAnsible周りか、RedmineをゴニョゴニョやってるかどっちかなのでAIの出番がない
  • ChatGPTのAPI無料枠は期間限定でしたーー
  • Garbage In, Garbage Out
    • ゴミをいれるとゴミしかでない
      • チケット駆動開発のチケット整理などを行えさせればいいかもしれな
    • ChatGPTに「不足していることがあれば、それを報告してください」と加えると、幸せになれる?

告知

イベント名(開催日時)

(イベントの概要をここに書く)