姫路IT系勉強会 2023.10
- 開催日: 2023/10/21 13:15
- 司会: wateさん
- 参加人数: 参加者: ???名 (うち学生:0名)
- HackMD: https://hackmd.io/KElcVY-_QGy8YoPSFHeQqg
- connpass: https://connpass.com/event/298101
- ハッシュタグ:#histudy
- 姫路IT系勉強会 Discordへ参加する
- オンライン開催の場合はDiscordのボイスチャットを利用しています
- Discordは無料プランに乗れる人数(10人以内)なので使っています。
- 有料版でも$15/月程度なら払えなくもないですね。
- Discord以外にも色々ありますので、人数が増えたら検討しましょう。
- 姫路IT系勉強会 Slackへ参加する
- 勉強会当日以外での質疑応答やメンバー同士のコミュニケーションに利用しています
- Slackでの話の流れから、突発的に臨時イベントが企画されされるケースがあります
最近のニュース
- 姫路IT系勉強会
- macOS Sonoma がリリースされた
- OpenTofu
- GNU が 40周年! おめでとう
- WebAssembly toolchainとアレをWASMに変換するコンパイラだよ。怖くないよ
- DSでもLinux動かしたい
- Debianはいかにして現在のDebianになったのか ―古参メンテナーが語る“Debian the way it is“ | gihyo.jp
- こういう話とか面白いと思う
- Debian Voting Information https://www.debian.org/vote/index.en.html
- こういう話とか面白いと思う
- maria dbの会社があぶないらしい。
お題
ここの下にお題(相談したいこと、発表したいことなどなんでも)お書きください。
※ 記載するお題は参加者一人につき1つだけ記載するようにお願いします。
※### <ネタ>+(名前)
の形式でお題を記載してください。
お題をここに書く(名前を書く)
(概要や背景などをここに書く)
JavaScript・TypeScript の勉強 (おおおか)
- 試しに占いソフトのベースとなるGUIを作ってみようと思って、8月参加したときにお聞きした Figma やJS/TSを触ろうと思った。
- Figma → HTML/CSSでアニメーションが設定できるかなと思っていた。
- けれど、大体エクスポート機能は有料プラグインだったので、試してみるだけには重いと感じて断念。
- Figmaは設計ツールで、画面設計用。Figmaでコード生成はおすすめできない。
- Figmaはデザイナーがつかって、その情報をフロントエンドエンジニアにわたして実装してもらうような使いかた。
- Figmaは画面遷移や画面情報のコメントなどを書けるのでデザイナーには便利。
- コード生成すると、タグだらけのものになるのでオススメしない。
- Figmaで画面→AIにHTMLを生成させるみたいな話があった気がする。
- Figmaのエクスポート機能を試しているうちに、何となく以下の法則を学ぶ。
- HTML要素は全部divタグで階層構造を組み、 classだけ割り当てる。
- 最近はHTMLには情報を書かない
- CSSでclassごとに描画用の設定を割り当てて、見た目を表現する。
- tailwindを使うといいかも。今はやりのCSSのやつ。
- Tailwind CSS - Rapidly build modern websites without ever leaving your HTML.
- Tailwindは、あくまで「流行り」というだけで良い悪いは別よ
- tailwindを使うといいかも。今はやりのCSSのやつ。
- JavaScriptは、 WEB用のアニメーションの定義と不可分であるらしい。
- 初心者には、jQueryとかつかった昔の作りの方がいいかも。
- 初心者には、TypeScriptはお勧めしない。
- コーディング時には型情報で苦労し、環境構築で苦労する。
- JavaScriptで始めた方がいい
- 別方面から。RailsのDHHはTypeScriptが嫌いらしい。Remove TypeScript - laiso
- フレームワークをつかって簡単にできる程度でいいのでは。Bootstrapでもいい。
- bootstrapでパーツを使ったほうが楽
- https://getbootstrap.com/docs/5.3/examples/
- ちなみにTailwindCSSなども同じ考えよ
- https://getbootstrap.com/docs/5.3/examples/
- bootstrapでパーツを使ったほうが楽
- 最近はCSSの表現力があがってきて、簡単なアニメーションが可能になるっている。ただし最近のものなので、昔の情報ではうまくできなかった。
- HTML要素は全部divタグで階層構造を組み、 classだけ割り当てる。
- jQueryはおわこん?
- 簡単なホームページを作るだけならjQueryはよく使われている
- 複雑なプログラムはちょっとjQueryは使われない
- 別の処理をかいたところに影響がでるなど副作用が多く、複数メンバーでの開発には向かないかもしれない
- プログラムは素のJsで書いて画面はjQueryのような使いわけがいる。
- JavaScriptを導入するためにNode.jsを導入。
- アニメーションのためにanime.jsをインストール。
- 型付JavaScriptの方が楽と判断して、 TypeScriptを導入。
tsc --init
で自動でコンフィグファイルができるが、内容が複雑…。
- index.htmlからnpm installで取ってきたモジュール (anime.js) へのパスを通すために、webpack を導入。
- TypeScriptを使うには ts-loader というローダーが必要ということで、 ts-loaderもインストール。
npx webpack
でコンパイルしようとするが失敗し、 package.json経由で「mode option」なるものを設定しろと言われたので設定。npm run [dev/build]
でコンパイルを実行できるようになる。
- テスト環境用にJESTを導入してみる。
- 全体的にコンフィグファイルや関連ツールが多く、とりあえずやったら動きそうなものはいっぱいあるものの、最適な開発フローが分からない。Reactとか使った良いのかも悩み中。
- webpackでやろうとしていることは laravel-mix でほぼカバーできるはず。
- webpackは設定がカオス
- プラグインが必要になったり、自動化のためにコードが含まれていたりする
- webpack の 例
- SASSの勉強できるサイトあります?
- 初心者・初学者は覚えることが多くて大変
- 過去のPHPがとおってきた道になりつつある。
フロントエンド周りのビルドツール再考(ワテ)
いろいろとフロントエンド周りのビルド関連ツールを見てると、なんかフロントエンドエンジニアの方により過ぎてて、専門外の僕にはものすごく使いにくいんですが・・・ そう思っているところに以下のツールが出てきました。
- https://nuejs.org/
- 上記Nue.jsのWhyやBackstoryに書いてある内容が、普段思ってるモヤッ感にかなり一致してる
- なんでもかんでもJSで、ではない解決策
- ReactなどはJSに寄せすぎ。
- 開発がJSの人だけだったらいいけど、そうではないでしょ。
- 作者は Riot JS の人
- 現在は開発中らしい
- React は全部Reactの中だけにいるなら便利
- Vite はViteで大変。フロントエンドによせすぎ
- Webpackが大変
- JavaScriptはブラウザ側とNode.js側で仕組みとかパスとかが異なるので、両方をビルドするのは困難
- それmakeで
- それconfigureで
- 前のものが現役なままに新しいのがでてくる。
- そのときそのときの最新がオワコンになってくる罠
- https://github.com/antfu/ni でいいんじゃない
- ロックファイルを見て、適切なnpm/yarnなどを呼ぶもの
- 新しいことを学びたくないとか学習コストがでてくるとか。
- メイン言語シンタックスで設定書きたいから?
- ちなみに、JavaScriptのビルドは、依存ソースコードの収集、変換、最適化のステップがある。
- ビルドツールは
- Webpack, Turbopack, Viteなどがある。カオス
- 設定にロジックをいれたくないよね。
- え(Emacs-lisper)
- 気持はわからんでもないが他の人がメンテできなくなるから
- JavaScriptにはテンプレートエンジンもカオス
- 数が多い
- Pythonはjinja2に統一されつつある
- PHPのテンプレートエンジン https://twig.symfony.com/
- jsのテンプレートエンジン https://mozilla.github.io/nunjucks/
- Rubyのテンプレートエンジン https://shopify.github.io/liquid/basics/introduction/
- もう同じシンタックスでテンプレートでかけていいやん
- テンプレートエンジンはロジックいれさせないため。
- ヒントWordPress
bun 使ってる?(fu7mu4)
JavaScript/TypeScript業界がよくわからない外野の話。
bun は最速のJavaScriptのツールキットとうたっているが使っている人いますか?というかビルドツール?が乱立していてどうしているの?
Licensing ぺージを見るとJavaScript CoreがLGPL-2.0でライブラリにApache-2.0のものも使っているからライセンス違反なんじゃないかな。
- bunの言葉の話も面白い
- 英語-steamed meat bun「肉まん」– Hayabuchi Diary: https://haybuchiriver.episode.jp/%E8%8B%B1%E8%AA%9E-steamed-meat-bun%E3%80%8C%E8%82%89%E3%81%BE%E3%82%93%E3%80%8D/
ローカルのユーザー管理になに使おう?(のがた)
- かんたんにローカルPCのユーザー管理ができるものを教えてください
- 基本、LinuxマシンですがWindowsもできたら良いです
- Samba ADが使えることは確認したけどLinuxから管理できないので避けたいです
- Active DirectoryはCALがあるので使えません
きっかけ
- 大学のプログラミングの授業は、Ubuntu 22.04がインストールされたPCがあるので、それを使っています
- そのPCは、ただUbuntuがぶっこんでユーザー管理も無い状態のPC。嫌な予感しか無い状態ですが仕方ないので、それで授業してたら事故で授業が止まってしまった…
- ということでUbuntu PC環境を本格的に直す必要が出てきた
どうするか
- 1台1台管理は嫌でもしたくないので将来的にはLTSPにするけれど、後期の授業があるので後回し
- LTSPはシンクラだけどイメージを配信して起動するFOG Projectもよさそう。Windowsもできるらしい
- 1台1台管理の部分は当面Ansibleでしのぐ
- Ansible力よわよわなのでZennのAnsibleの使い方とドキュメントで入門している状態
- そうすると残るのはユーザー管理をどうするか
- 学内のActive DirectoryはCALがあるので使えない
- Samba ADで同期させる目処はつけた
- Dockerで楽しようとしたけどDockerでSamba ADが動かず、素のマシンでDebianパッケージを使ったら、あっさり使えた
- SSSD使ってLinuxからAD参加もできた
- にしてもSamba ADで検索するとCentOSでソースからビルドするヤツばっかり引っかかる
- 「なんでソースからビルドするんだ?」と思ったらrpmはSamba ADに一部対応してないらしい
- Samba Wikiにきちんと書いてあるのに孫引きクソブログには、そういうこと書かかないし、そもそもアレ
- Samba ADで同期させる目処はつけた
- その部屋のネットワークは学内とは直でつながってないし、クラスCが振ってあるので部屋だけのローカルでユーザー管理する?
- となるとLDAP使う?
- LLDAPとAutheriaがお手軽らしい
- 対応中ではあるらしいけどPAMは対応していないのでLinuxのユーザー管理には使えない
- redhatが389 Directory ServerとKerberosを悪魔合体させて作ってるActive Directory対抗のFreeIPAは、そもそもredhatべったりなのでDebian系で動かず
- ユーザー管理にはOpenLDAPか389 Directory Serverか使うしかないかなぁ…←イマココ!
- 学内のActive DirectoryはCALがあるので使えない
- 一旦この件は他に方法ないよねっていうことでクローズ
- 常識がないので、なにがこわいのかわからない。
- こわい
- 責任を誰がとるのか
- チームとして落しどころを考えることが大事
systemd一族が便利すぎる(のがた)
- 最近、Linuxの設定をしているとSystemd一族が増えて便利になってる
- ローカルDNSやmDNSでhoge.localを使う→systemd-resolved - ArchWiki
- ネットワークの設定→systemd-networkd - ArchWiki
- 時刻同期→systemd-timesyncd - ArchWiki
- この辺は使ってないけど
- gummiboat! お前はいつからsystemd一族になってんねん! → systemd-boot - ArchWiki
- コンテナは使ってないけどこういうのもある → systemd-nspawn - ArchWiki
- systemd一族に支配されてるなぁ…
- initとかlaunchdとかはもう使わないんですね…
- 今どき、設定をXMLでかくのは無理
- Canonicalが始めたのは全部消えてる。
- 今どき、設定をXMLでかくのは無理
- netplanは便利だった。設定も4行くらいだった。
- systemdは楽
ApacheのPHPモジュールが無くなってた件(かねだ)
- いつの間にかApacheでもPHP-fpm使うようになってますね
- AlmaLinux9でLAMP環境作ろうとしたらPHPモジュール無くてちょっと混乱した
- ずいぶん前からだった
- RHEL 9 の採用における考慮事項の第9章インフラストラクチャーサービス
- mod-PHPはRedhatで非推奨になりその後削除された模様AlmaLinuxも追従した?
- PHP-fpmで動作するから問題はない。
- Redhat9のリリースノートには書いていないらしい。
- RHEL8のリリースノートには、mod_PHPは非推奨と書いている
- 10.11. 動的プログラミング言語、Webサーバー、およびデータベースサーバー Red Hat Enterprise Linux 8 | Red Hat Customer Portal: https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/8.8_release_notes/deprecated-dynamic-programming-languages-web-and-database-servers
- debianにはあるらしい。
- Apacheの動作モード(MPM)が3種類あって…だけど、Redhat/CentOSのパッケージの設定がかわっていた。
- Apache使うことがなくなったなぁー
- 会社のサーバーがAmazon Linuxから移行することになった。
- Redhat系に移行→ Alma Linuxになった。
- 切り替えの時にnginxへの切り替えたかった。
- devContainerを作るときに構築が大変になるかも
- Docker-Composeにするときにめんどうかも。
- mod-PHPがない?
- パッケージ名がかわったかもしれない。
- RHEL9系だと完全に消滅してる
- rpmの検索
- Packages for Linux and Unix - pkgs.org: https://pkgs.org/
- Search the RPM repository on rpmfind.net: https://rpmfind.net/linux/rpm2html/search.php
- Virtualboxでファイル共有ディレクトリにFile IOが発生すると遅くなる。
- VirtualBox がApple SiliconのmacOSに対応していない問題
- vagrantがmacOSの Hypervisor frameworkの方をつかえば、あるいは…
- VagrantもGo言語に書きかえをしているので、その他の作業はすすまない。
小ネタ (もりや)
- 見せる準備が何もできてませんので、へぇ、といってもらう程度でお願いします。
- 文字起こし用の簡単なWebアプリを作って放置中
- 音声ファイルの自動分割、フォーマット変換、文字起こし、文書の整形、要約まで自動で行います。
- OpenAIの無料範囲で3時間程度の文字起こしまでは行けそうです。
- 問い合わせフォームをGPT使って半自動化が頓挫中
- API経由でチャットした場合に、チャットへの回答ではなく、何故か文章全体を表現するPythonコードを吐く
- API呼び出し時のオプションのチューニング関係と思われますのでちょっと放置中
- UEFN(Unreal Engin For Fortnite)でデジタルツイン挑戦中
- バグ多すぎて、思った通り動きません
- 挙動の癖とVerse言語を勉強中
- 文字起こし用の簡単なWebアプリを作って放置中
トランクベース開発? (fu7mu4)
Gitのブランチの使い方で、Gitflowなどが提案されているが、最新はトランクベース開発で、ブランチはほぼメイン1本でやるというもの。
長いフィーチャーブランチはマージが大変だからとかいろいろな理由でトランクベース開発がでてきているらしいがよくわからない。
詳しい人いたらおしえてください。
Coder Dojo 姫路をやりたい
- Coder Dojo姫路ってどうなっているのでしょうか?と参加してくれました。
- 広畑の則直で「縁側ベース」というフリースペースをオープンさせようとしているそうです。
- まちライブラリー@縁側ベース | ライブラリーに行こう! | まちライブラリー: https://machi-library.org/where/detail/9078/
- まちライブラリー縁側ベース(@library.engawabase) • Instagram写真と動画: https://www.instagram.com/library.engawabase