Skip to content
yowasou edited this page Aug 13, 2023 · 3 revisions

Hamamatsu.rb #140

自己紹介

前回ふりかえり

今回のネタ

パターンマッチング

  • このCSVのパーサーなんかはパターンマッチ使って書ける?/...
require 'json'
JSON.parse(File.read(ARGV.shift), symbolize_names: true).each do |org|
  case org
  in { name: /協会$/ => name,
       latest: "1" => latest
     }
    puts name + "[" + latest + "]"
  else
    # do nothing
  end
end

マルチプラットフォーム(Windows、macOS、iOS、Android、複数解像度)でGUIを作るなら?

  • Flutter vs .NET Core vs Qt vs Kotlin vs Unity
  • Flutter + 2
  • React Native
  • Electron
  • Qtが存在感無いけどいろんな言語に対応してるよ
  • Webブラウザベース
  • Titanium...死んでないよ

RubyKaigi

最近のRubyでクローラー書くなら mechanize らしい?

def links(page)
    links = page.search('#tmp_contents > #tmp_event_list > li > a').map do |link|
      URI.join('https://www.city.hamamatsu.shizuoka.jp', link.attributes['href'].value)
    end

    @links.concat(links)

    next_link = page.links_with(text: '次へ')

    if next_link.length == 0
      return @links
    end

    next_page = next_link.first.click
    links(next_page)
  end

気になるニュース

LT

Github Actions を使った複数の言語バージョン・フレームワークバージョンでのテスト/Lint(@jacoyutorius)

  • https://github.com/jacoyutorius/matrix_job_sample

  • gemがバージョンアップしたりするといろいろ動かなくなる

  • 問題が小さいうちに検知したい

  • Github Actionsでテストしたい

  • matrix...2x2で4環境作成され、それぞれの環境でジョブ実行される

  • あらかじめgemfileを用意する必要がある

  • 実践投入はこれから

  • いまのところ特定のバージョンで失敗するらしい

  • GAはテンプレもいっぱいあります

  • GAは容量次第で無料

  • まずテストコード書くとこから始めないと無理

    • 神クラスはリファクタリングしていく
  • CircleCIはローカルでも流せるらしい

  • 有償範囲の話(About billing for GitHub Actions)

  • Github Actionsのベストプラクティスとかある?

    • 実運用はCircleCIでやってます
    • 分散稼働できるようにして最適化したり
    • UIの部分はテストが難しい…ので最小限にする
    • 一番下の各関数のテストを多くした方が良い。テストも書きやすい
    • 逆に言うとこのテスト書きづらいのであれば神クラスいっぱいあるということになる
    • UIもうまく作ってうまくテストすれば昔よりはできるようになった。フロント-バックエンドがはっきり分かるようになった

Renovateを使った依存パッケージアップデート(@suchi)

振り返り

次回以降のネタ

  • クローリングする

  • WebAssemblyを試す

  • 言語処理100本ノック をパターンマッチありのRubyで試す

    • 4.元素記号
    • 5.n-gram
    • 6.集合
    • 7.テンプレートによる文生成
    • 8.暗号文
    • 20.JSONデータの読み込み
    • 21.カテゴリ名を含む行を抽出
    • 22.カテゴリ名の抽出
    • 23.セクション構造
    • 24.ファイル参照の抽出
    • 25.テンプレートの抽出
    • 31.動詞
    • 32.動詞の基本形
    • 33.「AのB」
    • 34.名詞の連接
    • ぜんぜんわからん↓
      • 40.係り受け解析結果の読み込み(形態素)
      • 50.データの入手・整形
      • 51.特徴量抽出
      • 第8章: ニューラルネット
      • 第9章: RNN, CNN
      • 第10章: 機械翻訳
    • 第7章: 単語ベクトル はファイルサイズが大きすぎるので無理(圧縮7GB)

告知

KPT

KEEP

  • ひさびさに参加した ★1
  • おもいつきでLTやった ★2
  • パターンマッチ面白い ★2
  • JSONの話が、聞けた。 ★1
  • パターンマッチ動いた
  • 久しぶりにRuby書いた ★1
  • Ruby書いた(動かんかったけど ★1
  • Renovate試したい ★1
  • 他社の状況簡単にでも聴けると勉強になる ★1
  • 雑談の話題が多くてたのしい ★1
  • isgkさんAVウォッチデビューすごい ★4
  • 告知おおいのいいですね ★1

PROBLEM

  • 遅れてしまった… ★1
  • パターンマッチ復習 ★3
  • ruby忘れてる ★2

TRY

  • Ruby 3もっと触る ★1
  • Rubyに触れる!
  • 簡単なコマンドラインツールを作るとか題材にいいかも
  • Railsも、挑戦してみる。
  • 次回11/9(水) 19時-21時 ★2
  • GitHub Actionのマトリクスためす
  • Renovateためす ★1
  • SOU ★4
Clone this wiki locally