タグ

ブックマーク / sue445.hatenablog.com (73)

  • feed_squeezerを作った - くりにっき

    これなに? モチベーション 2024/06/21 19:59 追記 使った技術 工夫ポイント 配布形式をどうするか GoGoogleライクな検索クエリで文字列マッチするような関数を作った 取得したフィードを一瞬だけキャッシュする バイナリにviewを同梱する 最近のエコシステムに乗っかる 2024/06/14 13:28 追記:ブコメレス これなに? RSSフィードを任意のキーワードで絞り込んだ結果をさらに別のフィードとして返すためのproxy的なウェブアプリです。 github.com モチベーション 僕はSlackで色々なRSSフィードを購読しています。 YouTubeのチャンネルにもRSSフィードが存在しているのでSlackで購読しています。 例えば 東映アニメーション公式YouTubeチャンネル - YouTube にはプリキュアをはじめとして様々な動画が公開されています。その中

    feed_squeezerを作った - くりにっき
    igrep
    igrep 2024/06/14
    絞るのに特化したYahoo! Pipesみたいな
  • 地域.rbカレンダーでconnpass APIの個人利用申請をした - くりにっき

    tl;dr; 時系列 詳しいログ 具体的にやったこと Before After Terraform ハマったポイント:Terraformでapplyする時だけなぜかエラーになる 最後に tl;dr; connpass APIの仕様変更で 地域.rbカレンダー を閉じるつもりでしたが、個人利用申請を行ったので2024年5月23日(木)以降もカレンダーが更新されます 時系列 今年の2月にconnpass APIの無償提供終了が発表 connpassではさらなる価値のあるデータを提供するため、2024年5月23日(木)を以ちまして「イベントサーチAPI」の無料での提供の廃止を決定いたしました。 料金・プラン等につきましては後日改めてご案内いたします。詳しくは以下のお知らせをご覧ください。https://t.co/0IZTzJDOwG— connpass (@connpass_jp) 2024年2

    地域.rbカレンダーでconnpass APIの個人利用申請をした - くりにっき
    igrep
    igrep 2024/05/23
    素晴らしい
  • ruby-wasm-vdomで雑なオレオレツールを作った - くりにっき

    作ったもの モチベーション 使った技術 感想 作ったもの https://sue445.github.io/annict-vod-search/ github.com モチベーション 最近縁があって Annict の編集者*1 になって、気がついた時に各アニメの配信サイトの情報を登録しています。 その時にいちいち複数の配信サイトでアニメのタイトルを検索するのが大変なので一箇所で検索できるようにしたくて作りました。(製作時間は2〜3時間) 使った技術 いつもだとこの手の雑なページはVue.jsを使うことが多いのですが、今回は面白全部 *2でruby.wasmを使ってみました。 ruby.wasmで仮想DOMを扱うためにruby-wasm-vdomを利用しています。 ruby-wasm-vdomについては下記を参照。 github.com qiita.com 感想 使い慣れたRubyで書けるの

    ruby-wasm-vdomで雑なオレオレツールを作った - くりにっき
  • mainブランチよりも古いブランチでCIを実行できなくしたい - くりにっき

    たまにやりたくなるやつメモ モチベーション 実際のスクリプト おまけ:実際にGitLab CIで動かしてるやつ モチベーション CIでTerraformを動かしていると mainブランチを自動apply PRとかでマージ前に挙動を確認したい場合はPRに出ているブランチを手動apply というワークフローを作ることがよくあるんですが、最新のmainブランチよりも古いブランチをapplyした時にapply済の構成が巻き戻って事故になるため、そうならないように防止したかったというやつです。 実際のスクリプト どのCIで動かすかによって多少は変わってくると思うけどだいたいこれで動くと思います。 default_branch=`git remote show origin | grep 'HEAD branch:' | cut -d : -f 2 | tr -d '[[:space:]]'` com

    mainブランチよりも古いブランチでCIを実行できなくしたい - くりにっき
    igrep
    igrep 2023/07/05
  • 複数のアプリのバージョンを一箇所で集中管理してCIから一括バージョンアップできるようにした - くりにっき

    モチベーション リポジトリ 動いてる風景 対応形式 仕組み 各リポジトリに適用してるItamaeのレシピファイル こだわりポイント CI用にGitHub Appを作った モチベーション dependabotだとライブラリの自動バージョンアップはできるのだが、RubyGoなどのランタイムのバージョンまでは対応してないので一箇所で管理できるようにしたかった 実は一箇所で管理すること自体は既に https://github.com/sue445/ci-config-itamae でやってたのだが、手元に動かす方式だと忘れるのでCIで動かすようにしたかった CI化は割とすぐに終わったのだが、パブリックリポジトリの設定とプライベートリポジトリの設定が混在してたのでこのリポジトリもプライベートリポジトリでずっと運用していた。しかしリポジトリの数が多すぎて*1 ActionsのQuotaを使い切りそう

    複数のアプリのバージョンを一箇所で集中管理してCIから一括バージョンアップできるようにした - くりにっき
    igrep
    igrep 2022/08/06
  • Ruby 3.1.2 with YJIT vs Ruby 3.2.0-dev with YJIT - くりにっき

    tl;dr; モチベーション Ruby 3.2.0-devの何がすごいか Ruby 3.2.0-devでRust版のYJITを使う方法 計測対象のアプリケーション 使ったバージョン 比較 CPU ホスト全体 Ruby 3.1.2 + YJIT Ruby 3.2.0-dev + YJIT pumaのmasterプロセスとworkerプロセスをピックアップ Ruby 3.1.2 + YJIT Ruby 3.2.0-dev + YJIT Memory ホスト全体 Ruby 3.1.2 + YJIT Ruby 3.2.0-dev + YJIT pumaのmasterプロセスとworkerプロセスをピックアップ Ruby 3.1.2 + YJIT Ruby 3.2.0-dev + YJIT Ruby 3.2.0-devをデプロイした瞬間のグラフ スコア Ruby 3.1.2 + YJIT Ruby

    Ruby 3.1.2 with YJIT vs Ruby 3.2.0-dev with YJIT - くりにっき
  • シレン5の原始に続く穴を99F踏破した - くりにっき

    うおおおおお!!!!!!原始99F踏破!!!金喰い装備で途中ギタン尽きたり何回か大部屋モンハウ遭遇して死期をさとったけどクリアできてよかった #不思議のダンジョン #風来のシレン #NintendoSwitch pic.twitter.com/GaVzISDBCB— sue445 (@sue445) 2022年4月26日 原始に続く穴って? 立ち回り 序盤 中盤 終盤 原始に続く穴って? 持ち込み不可、落ちてるアイテムは軒並み未識別のオーソドックスな不思議のダンジョン 初代トルネコだともっと不思議、初代シレンだとフェイの最終問題に相当 以下「原始」と呼称 立ち回り 詳しい数字は覚えてないけど原始だけで1年前後、100回以上は余裕でプレイしてると思う。(シレン5全体だとプレイ回数950回、プレイ時間700時間くらい) ちなみにシレン5だと救助システムがあって倒れても他のプレイヤーに助けてもら

    シレン5の原始に続く穴を99F踏破した - くりにっき
    igrep
    igrep 2022/04/27
    シレン5は全然やってないけど最果てへの道も月影村出口も全然ダメだった自分としてはめっちゃすごいと思う。おめでとうございます!
  • PlantUMLで描いた図をGitHubのリポジトリでいい感じに管理したい - くりにっき

    tl;dr; モチベーション 実際の例 pumlファイルを作成 pumlファイルからsvgファイルを作成 リポジトリにはsvgファイルを埋め込む メリット 余談 2022/04/13追記 tl;dr; pumlファイル*1を作成 pumlファイルからsvgファイルを作成 リポジトリにはsvgファイルを埋め込む モチベーション GitHubMermaidがサポートされましたが *2、Mermaidで描けないタイプの図があってたまにPlantUMLを使いたくなるので備忘。 ちなみにGitLabやesaやQiita辺りはPlantUMLをサポートしてるのでこの手のハックはしなくていいです。 実際の例 実際の例を見てもらった方がいいと思うので自分のリポジトリを見せます。 他にもうまいやり方は色々やり方はありそうだけど思いついてないです。 pumlファイルを作成 https://github.co

    PlantUMLで描いた図をGitHubのリポジトリでいい感じに管理したい - くりにっき
  • ISUCON11に1人チームで参加するためにやったこと #isucon - くりにっき

    最初に モチベーション ISUCON歴 事前準備 準備期間 やったこと 事前に用意したもの&やったこと Sentryのbillingを有効化した SentryのSpike Protectionを無効化した デプロイスクリプト デプロイスクリプト解説 スニペット enable_monitoring.rb nr_mysql2_client.rb redis_methods.rb , memcached_methods.rb nginx.conf チェックリスト サーバ構築用のItamae 過去問素振り用のTerraform 【おまけ】stackprof-webnavをRuby 3.0対応した 当日やったこと 1人チームで参加した感想 1人チームのメリット 1人チームのデメリット おまけ:素振りで使ったAWSの費用 最初に 予選落ちなので勝者エントリを読みたい人はここで回れ右を推奨。 使用言語:

    ISUCON11に1人チームで参加するためにやったこと #isucon - くりにっき
    igrep
    igrep 2021/08/23
  • ISUCONの素振りでisucon11-priorをやった - くりにっき

    先週末にisucon11-prior(事前講習のハンズオン課題)をやったのでメモ github.com isucon.net 結果 最終的なサーバ構成 コンテキスト 事前にやったこと:AMI作成 作成手順 AMIから起動したEC2インスタンスへisuconユーザでログインする方法 8時間の素振りでやったこと一覧 AMI起動してベンチ即実行 NewRelicやSentryを仕込む APとDBとbenchを分離 pumaの設定調整 NewRelicの設定がうまく反映されていなかったので修正 get_reservationsのN+1を修正 POST /api/reservationsのループを修正 POST /api/reservationsでINSERT後にSELECTしてるのが無駄だったのでINSERT時にcreated_atを入れるようにした current_userのメモ化 GET /a

    ISUCONの素振りでisucon11-priorをやった - くりにっき
    igrep
    igrep 2021/08/12
  • 至極の難問YAMLクイズ - くりにっき

    前置き 練習問題 問題1 問題2 問題3 問題4 参考文献 おまけ:LT直後のみんなの反応 前置き 社内勉強会のLTで発表したら好評だったので投下 自称YAMLエンジニアのsue445が今まで踏んだ罠をクイズにしました Ruby 3.0.0の Psych で動作確認していますが他言語での挙動は調べていません Psychがlibyamlベースなので他の言語のパーサでもだいたい同じ挙動をすると思うけど 練習問題 Q: 出力されるものは? yaml = <<YAML a: 1 YAML YAML.load(yaml) #=> ? {"a"=>"1"} {"a"=>1} シンタックスエラー その他 回答 2 YAMLの数字っぽい文字列はその言語の数字の型(Rubyだと Integer )として解釈されます。 文字列として解釈させたい場合は "1" (ダブルクオーテーション)や '1' (シングルク

    至極の難問YAMLクイズ - くりにっき
    igrep
    igrep 2021/01/16
    (修正済み)問題4の各YAMLが両方aになっちゃってますよ! / Dhallの保守的で冗長な構文が嫌になってくるけど、こういうの見るとやっぱ悪くないな、と感じられてくるね...
  • GitHub Actionsのpushイベントとpull_requestイベントではGITHUB_SHAが異なる - くりにっき

    tl;dr; 検証内容 サンプルコード masterブランチに普通にpushした時 PullRequestに対してpushした場合 pushイベントの結果 pull_requestイベントの結果 解説 2021/01/08 追記 GITHUB_SHAが異なることで何が困るか 余談:tfnotifyでpull_requestイベントの時にもPullRequestにコメントをつけたい FAQ Q. だったらpull_requestは不要では? 今の心境 tl;dr; タイトルが全て 検証内容 サンプルコード GitHub Actionsで使える(事前定義済みの)環境変数 *1を列挙するだけのシンプルなワークフローです on: - push - pull_request jobs: show_env: runs-on: ubuntu-latest steps: - run: env | grep

    GitHub Actionsのpushイベントとpull_requestイベントではGITHUB_SHAが異なる - くりにっき
    igrep
    igrep 2021/01/07
    “しかしpushイベントだとforkされたリポジトリからPullRequestがきた時にイベントが発火しなくてCIのジョブが実行されないのでOSSのリポジトリで困ります”
  • 今更だけどアイカツ!16話のチケット5万枚を2秒で売り切るシステムについて本気で考察してみた - くりにっき

    発端 お前誰よ? 前置き 構成 webサーバ データベース 決済システム 負荷試験 当日の監視 まとめ 余談 発端 この後20時からBNP公式YouTubeチャンネルで「アイカツ!」「アイカツフレンズ!」第16話を配信されるよ☆プレミア公開後はアーカイブされるのでそちらもチェックしてね♪ アイカツ!20:00〜https://t.co/6KcqOCSeR4 アイカツフレンズ!20:30〜https://t.co/rezQITX0eM#aikatsu #aikatsufriends— アイカツプラネット!&アイカツオンパレード!アニメ公式 (@aikatsu_anime) 2020年12月1日 アイカツ16話見てるんだけど「チケット5万枚が2秒で完売」ってそれを売り切るシステムも相当やばいな・・・・(ISUCONより難易度高そう)— sue445 (@sue445) 2020年12月1日 普

    今更だけどアイカツ!16話のチケット5万枚を2秒で売り切るシステムについて本気で考察してみた - くりにっき
    igrep
    igrep 2020/12/02
    アイドルの人気も裏方の苦労があってこそなんやねぇ
  • GitHub Actions上でPRを作る時はsecrets.GITHUB_TOKENは使わない方がよさそう - くりにっき

    事象 GitHub Actions上で使える secrets.GITHUB_TOKEN だと別のジョブを起動できないというのが一番の理由。 https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token 具体的にどういうケースで困るのかというと、GitHub Actions上でPRを作った場合にそのPRに対するビルドが行われません。 普通だったらコミットIDの左側に✔が出るはずなんだけど出ない図 pushやPRなどのビルドをGitHub Actions以外(例:CircleCIなど)で行っている場合には問題ないです。 解決策 いくつか案はあるのですが現状だと GitHub App Token を使

    GitHub Actions上でPRを作る時はsecrets.GITHUB_TOKENは使わない方がよさそう - くりにっき
  • #ginzarails にRuby on CIで発表した - くりにっき

    RubyKaigi2020 用に準備してた資料の供養として発表させていただきました。 僕が知ってるCIの知見や2020年時点でのCIのトレンドはだいたい詰め込めたと思っています。 connpass ginza-rails.connpass.com スライド

    #ginzarails にRuby on CIで発表した - くりにっき
    igrep
    igrep 2020/08/29
    GitHub Actions, API用のトークンを利用できるのかぁ。憎い囲い込みだねぇ。でも確かに(仕事じゃないけど)personal access token使ってるやつあるんで切り替えた方がいいかもなぁ
  • 質問をする技術 - くりにっき

    以前社内に書いたポエムなんだけど年に1回くらい引用したくなるので公開した tl;dr; 質問をする時はゴールを提示する【MUST】 理由1 理由2 コンテキストを詳しく共有する【SHOULD】 期待してた結果(expect)と実際の結果(actual)を書く【IMO】 2020/7/22 12:30追記 2020/7/22 19:00追記 tl;dr; テンプレ 【質問内容】 【やりたいこと or 今困ってること or 質問の意図】 質問をする時はゴールを提示する【MUST】 なにかやりたい けど実現できない、うまくいかない それで質問する って感じに、質問をする動機としてまず やりたいことありき のはずなので、それを提示すべきです 理由1 質問される側(以下回答者)は質問内容がふわっとしていると色々なケースを想定して回答を組み立てます *1 例「Aの場合は~だけど、Bの場合は~」 こうい

    質問をする技術 - くりにっき
    igrep
    igrep 2020/07/22
    "初心者によくありがちなのですが、やりたいことに対して質問内容が的外れということが往々にしてあります" それは経験したことなかったなぁ。大変やね...
  • あつ森でDQ3のアリアハン大陸を作った - くりにっき

    島の全体図 Before After 内部の解説 アリアハンの城下町 岬の洞窟、ナジミの塔 レーベの村 いざないの洞窟 余談 島の全体図 Before 島改装前のスクショがこれしか残ってなかった。改装直前は建物の他に橋や坂も結構設置してました After 頑張って作った割には似てないorz 下のスクショはswitch版のDQ3のものです 動かせる建物は全部動かしたので2~3週間くらいかかってます 内部の解説 アリアハンの城下町 街の南西に自宅 北西にルイーダの酒場(博物館) 酒場なので仲間が待機してます ちょい東に道具屋(タヌキ商店) 写真の左下が宿屋で右下が武具屋(仕立て屋) 橋を渡って池の中にあるのがお城(案内所) どうでもいいですが島の名前がキュアスカーレッ島なので キュアスカーレット の旗です。 城下町の南西に井戸 城下町の北東に教会 教会なので賛美歌が流れてます 岬の洞窟、ナジミ

    あつ森でDQ3のアリアハン大陸を作った - くりにっき
  • CircleCIでマトリックスビルドがサポートされたのでさっそく使ってみた - くりにっき

    CircleCIがMatrixジョブのサポートを開始しました。Matrixジョブを使用することで、複雑な組み合わせが必要なジョブをシンプルに記述することができます。詳しくはこちらのブログ記事(英語)から:https://t.co/MZV1zLCdOj— CircleCI Japan (@CircleCIJapan) April 21, 2020 公式ドキュメント https://circleci.com/blog/circleci-matrix-jobs/ https://circleci.com/docs/2.0/configuration-reference/#matrix-requires-version-21 実際に使ったPR github.com github.com これはビルドマトリクスの軸が1つだけなので大したリファクタリングになってないですが、軸が2つ以上になった時にかな

    CircleCIでマトリックスビルドがサポートされたのでさっそく使ってみた - くりにっき
    igrep
    igrep 2020/04/22
    惰性でCircleCI使ってるプロジェクトがちょいちょいあるのでこれは使えそう。素晴らしい。
  • 地域.rbカレンダーのバックエンドをリプレイスした - くりにっき

    見た目は変わらないですがバックエンドを変えてます sue445.github.io 今までの運用 カレンダーに追加したいconnpassやDoorkeeperのグループを condo3 でics取得 自分のGoogleカレンダーにインポート https://calendar.google.com/calendar/embedhelper?gsessionid=OK&hl=ja で埋め込み用のスニペットを生成して貼り付け 今までの運用の問題点 自分のGoogleカレンダーにインポートする関係上グループ追加時のみ自分がSPOFになってました。ただし、一度やってしまえばあとは全自動で最新のイベント情報が表示され続けるので問題ではなかったです。 しかしある時いつものように新しい地域.rbのグループを追加した辺りでカレンダーに表示されなくなりました。 公式情報がないので憶測なのですが、上記埋め込みツ

    地域.rbカレンダーのバックエンドをリプレイスした - くりにっき
    igrep
    igrep 2020/02/13
    カレンダーの存在すら知らなかった。すごい。ありがたや。ちゃんとYokohama.rbも載ってる
  • plant_erd v0.2.0をリリースした - くりにっき

    sue445.hatenablog.com github.com リリースノート 苦労点 クロスコンパイルができない 初めてのWindows上でのCI 途中で実行ファイルを分けた ライセンスをどうするか リリースノート https://github.com/sue445/plant_erd/blob/master/CHANGELOG.md#v020 v0.2.0のトピックスはOracle対応です。ブコメとかでちょいちょいOracle対応してほしいっていうのは観測してたんですが、なんやかんやで作り切るのに1ヶ月くらいかかってました ただし実行に Oracle Instant Client のsoファイルやDLLファイルが必要になる関係で、Oracle専用の実行ファイル( plant_erd-oracle)を用意しています 苦労点 https://github.com/sue445/plant

    plant_erd v0.2.0をリリースした - くりにっき
    igrep
    igrep 2020/01/23
    おお、自分が使うわけでもないにお疲れ様です