notebook

都内でWEB系エンジニアやってます。

Ruby

ChatGPTのFunction Callingを使ってブログ記事のスコアリングをしてみた

N番煎じも良いところではあるものの、やってみたので記事として残しておく 掲題のとおりChatGPTのFunctionCallingを使って今まで書いたブログ記事のスコアリング(と分類)をしてみた ドキュメント GPT - OpenAI API platform.openai.com 記事の難易度決定や…

GitHub Actionsのruby/setup-rubyで.ruby-versionのバージョンを指定する

下記の記事を読んで GitHub Actions の setup-go や setup-node で指定されるバージョンを go.mod や .node-version から取ってくる - stefafafan の fa は3つです blog.stenyan.jp これは便利だ!と手元のsetup-xxxを上記記事での指定方法にしようとしたらRu…

GitHub Actionsで使用するRubyやNodeのバージョンをRenovateで更新可能にする

GitHub Actionsのruby/setup-rubyやactions/setup-nodeなどで使う言語のバージョン指定をRenovateで随時更新できるようにする 自分はRuby, Nodeを使うことが多いので掲題の2つしか試していないが他の言語の~~envでもRenovateが対応していれば流用可能 node-v…

aws-sdkのErrors::MalformedXML対応例

Rubyのaws-sdk-s3を使っていてマルチパートアップロードをしようと試していたら 完了(Complete)リクエストで次のようなエラーに遭遇したのでメモを残しておく Aws::S3::Errors::MalformedXML: The XML you provided was not well-formed or did not validate…

GCPのSecret Managerを使ってみる

この記事はGoogle Cloud Platform Advent Calendar 20203日目の記事です AWSだとParameterStoreなどがあるがGCPだとなんなんだろうということで調べて使ってみた Secret Manager 外部サービスのAPIキーやパスワードなどの秘匿情報を含むデータをGCP上で管理…

iPhoneヘルスケアの歩数データをPixelaに入れ込む

最近身の周りの数値を取って可視化する活動をコツコツ進めている 今回はiPhoneのヘルスケア(歩数)データをPixelaに投げて可視化する 前日分に関してはiPhoneのショートカットで毎朝前日分のデータを投げるようにしているが過去分のデータもせっかくなら見…

S3のPresigned URLで直接アップロードするときのAccessDenied対応

S3へフロントからPresigned URLを使って直接アップロードする記事は色々出ているので参考にすればサクッとできるかなと思っていたが権限周りでつまずいた 今回はその備忘録 想定ケース Presigned URLをRubyのサーバ側で生成 フロント側でPresigned URLの発行…

SimpleCov+RSpecをRails以外のプロジェクトで動かす

SimpleCov+RSpecをRails以外のプロジェクトで動かす 概要 Rails以外のプロジェクトでSimpleCovを使ってカバレッジを出力するメモ SimpleCovをRailsプロジェクトに入れてカバレッジ把握みたいなことはやっていたので同じ流れで簡単にできるというイメージでや…

はてなブログ、フォトライフのAPIを使って投稿を自動化する

ふと思い立ってめちゃくちゃ今更だけど当ブログ(はてなブログ)への記事投稿に関わる作業を自動化した 自分は現在MkDocsではてなブログに書く記事、下書き、ただのメモ書きとすべて保存してプライベートリポジトリに持っています(後で見返す時用にいつもMk…

Rails5+複合主キー+FactoryBotでテストデータを作成する

Rails5+複合主キーでやっていくにはcomposite_primarykeyが必要ですが テストコードを書く際にハマったのでその時のメモを残しておきます FactoryBotでテストデータを作成する際の話です composite_prrimarykeyを使ってreportsテーブルを複合主キーで扱うこ…

GitLab CIに入門する

GitLabCIでRspec,Coverage,Rubycriticを実行して結果を表示するところまで

Capistrano3+Angularのデプロイコマンドがいつまで経っても終わらない時の対処法

Rails5 + Angular6で開発していてwebpackerを使わずにCapistranoを使ってAngularのビルドコマンドを直に実行していました .....が、待てどくらせどAngularのビルドが終わらない! 大体10分くらい待たされているよう これではデプロイどころではないので調べ…

rubocopのABCについて

仕事でrubocopを入れている サクサク描いてるとABCに引っかかることが多い(現状の閾値はデフォルトの15) さっと調べてみたところそれぞれ a(assignment): 代入の回数 b(blanch): メソッド呼び出しの回数 c(condition): 分岐の回数 で下記の計算で算出してい…

Rails5で複合主キーを扱いたい

Rails5でmigrate時に複合主キーを定義できるようになっていたのでこりゃいいや!とおもって開発してたらupdateできない問題が起きました migrateスクリプトは以下抜粋 create_table :summaries, primary_key: ['id', 'date'] do |t| t.bigint :id, null: fal…

job形式のファイルダウンロードをスクレイピングでやってみる

この記事はクローラー/Webスクレイピング Advent Calendar 2017 - Qiitaの25日目の記事です。 qiita.com 最近仕事でもスクレイピングをすることが多くなってきました 今回はCSVダウンロードをフロント側でポーリングしてるページにスクレイピングでダウンロ…

centos7 + headless chromeでスクレイピング

chromeをスクレイピングで使う必要があったので開発環境から作ってみたときのメモ 特にメモすら必要ないかもしれないくらい環境整ってるなと感じました google chrome install yum install https://dl.google.com/linux/direct/google-chrome-stable_current…

railsアプリのログ(複数行)を整理する

なんでもかんでもRailsのLoggerに投げているといろんなログが一つのファイルにまとまってしまって調査、分析が時間がかかったりストレスになっていたので内容によって出力するファイルを分類するようにした時のメモ 集約したログをいったんファイルに保存し…

middlemanを使ってみる

middleman 静的サイトジェネレータといわれているものの中の一つです 日本語の公式があるのもありがたいですね 今回はダーツの自宅練習用のスコア管理のページをmiddlemanで作ってみます 下記ダッシュボードテンプレートを使って見た目にあまり時間とらない…