There’s No Such Thing as Clean CodeのHacker Newsコメント経由でコードやシステム設計・最適化についての良いコメントを見つけた。どうやらHacker Newsで何度も引用されているらしいが日本語で言及された記事が見つからなかったので取り上げてみる。 コメ…
掲題の通り、SmartBank, Inc に入社しました。 From: Quipper, Inc. To: SmartBank, Inc. smartbank.co.jp 2021 in review - valid,invalidに書いたとおり転職は2020年の出来事で、入社日は 2020-08-01。2021 の間違いではなく 2020 である。入社してから半…
GitHub公式CLIのghを使って複数のpull requestsをまとめてapproveする。 まれに使うのでメモ。 前提 gh install済み、かつcurrent directoryが対象のrepositoryであること コマンド例 Approve all pull requests in the repositrory $ for pr in $(gh pr lis…
2021年はこんな風に生活していましたというログと、2021年に買ったものなどの近況報告です。
存在は知っていたが取り組んだことなかったのでやってみたシリーズ*1の1つ、Advent of Code 2021に取り組んだ。 adventofcode.com Advent of Code とは Advent Calendar にちなんで毎日2問ずつクイズが出題され、25日まで解かせるというイベントである。2016…
個人的な観測範囲にある Node.js / React 関連のプロジェクトなどについて 2021 年 12 月時点の情報メモ。 ここ 2 年ぐらいコンシューマー向けの SPA や Node.js アプリケーションを書いておらず、react-admin で作った管理画面*1を書いているぐらいなのだが…
2021-10-22 (土), 23 (日)に行われるKaigi on Railsに登壇します。 2日目の23日 13:50~14:20 の30分枠で "Safe Retry with Idempotency-Key Header" という題にて発表します。あと3週間ですね。 イベント参加はこちらから↓ kaigionrails.doorkeeper.jp 私の…
Idempotency-Key Header に関する調査と実装を半年ぐらい前に行ったので、そのとき参考にしたリソースと 2021 年 9 月時点で得られる最新情報をメモしておく。 前提: Idempotency-Key Header とは HTTP リクエストのうち冪等ではないとされるリクエスト*1を…
今年の6月頃にDEV Airdropという「全世界のOSS開発者に総額2億3000万円を配布」するキャンペーンに応募していた*1。 OSS contributionの多寡によって対象となるかどうかやトークンの配布量 (≒金額) が決まる仕組みのため、まったく受け取れない可能性あるか…
Dev Airdrop for GitHub によって配布されるDEV tokenの受け取り方をまとめる。 なお、本記事は暗号通貨の購入・送金、取引所の口座開設等に関する記述を含むものの、暗号通貨のあらゆる取引において生じた不都合・不利益について筆者は一切の責任を追いませ…
ISUCON11にソロチームBPM200で参加して予選敗退しました。 結果 最終スコア: 13458 最高スコア: 14484 使用言語: Ruby 去年↓よりは1人でも戦えた気がしたものの順位上の結果としては大差なく終わってしまい残念。 ohbarye.hatenablog.jp 使用したツール Vim …
"腰を破壊する自宅デスク環境"を改善して健康被害から卒業した - valid,invalid に書いた通り、先日中古でオカムラのコーラルチェアを購入した。 椅子自体の性能は初日からめちゃくちゃ気に入ったのだが、中古ということもあり 座面がお世辞にもキレイとは言…
SQLでパーセンタイル値を求めたいことがあり、Calculate Percentile Value using MySQL - Stack Overflowを参考に実現できた。 実例 口座 (accounts) テーブルで残高 (balance) column の95パーセンタイル値を求める。 SELECT balance FROM (SELECT @row_num…
zshの起動が遅かったのでzprofでプロファイリングしながら起動速度を3倍速くした - valid,invalid からしばらく経ち、久々にzshの起動時間を計測してみた。 前回 起動1秒でたまにイラッとする程度。 ❯ for i in $(seq 1 10); do time zsh -i -c exit; done z…
JavaScriptでDOMを監視して何かしらのコールバックを実行する際にMutationObserverが使える。 仮想DOM全盛時代でなくとも、jQueryでもvanilla JSでもイベントハンドラを自由に設定できるようなWebフロントエンドの世界で使い道あるか?と思っていたが、利用…
ActiveStorageで画像アップロードを行ったあとに非同期に実行される画像の解析処理で NameError ActiveStorage::AnalyzeJob uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick エラーが出た。 処理を行っているのはActiveStorage:…
この数ヶ月で自宅のデスク環境を大きくアップデートしたので記録に残しておきます。 当記事がリモートワークないし家で作業する機会が多い人の参考になれば幸いです*1。 変更前後のようす Before 作業環境にこだわらずガジェットにも興味が薄い人間だったの…
ローペースですがリモートでバンド活動をやっておりまして、昨年に引き続いてセカンドシングルを各種配信サービス上でリリースしました。 release本日、新曲『赤』と『渡月橋』の2曲をリリースしました。下記URLより、お使いのサブスクリプションへ飛ぶこと…
ActiveRecordでgroupクエリの結果の件数をスマートに取得したいだけ。 SELECT COUNT(*) FROM ( SELECT "users"."id" FROM "users" INNER JOIN "posts" ON "posts"."user_id" = "users"."id" GROUP BY "users"."id" HAVING (count(1) > 5) ) 前提: count vs s…
CI完了したら通知するやつ、macOSだと `gh run watch && osascript -e 'display notification "run is done!" with title "Terminal"'` みたいなのでデスクトップ通知出せて便利そう / “Work with GitHub Actions in your terminal with GitHub CLI - The Gi…
git commit コマンドでメッセージを入力する際、デフォルトでは # から始まる行は commit message から取り除かれる。この挙動を変更し、commit message にハッシュ # から始まるメッセージを残す方法について。 結論 git config で設定可能な以下のいずれか…
6年近く前の話だが「Quipperに入社して業務をこなすにはどの程度の英語力が必要か?」という問に対し、こんな回答を貰ったのを覚えている。 技術的な課題を解くためにググってStackOverflowが出てきたときになんとか読める程度の英語力、ないしは読もうとす…
Rack Middleware で以下のようなイディオムを見かけることがあるが何のためにdupしているかを理解していなかったので調べてみた。 class MyMiddleware def call(env) dup._call(env) end def _call(env) # do whatever end end 結論 Rack middleware の inst…
marmelab.com A frontend Framework for building data-driven applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Material Design. Previously named admin-on-rest. Open sourced and maintained by marmelab. Reac…
プレゼンテーションレイヤ、いわゆるフロントエンドがクライアントサイドで実装・実行されるアーキテクチャ (注 1) において、管理画面/管理機能をあとから追加する際にどのような実装パターンがあるのかを整理してみます。 注 1: Presentation Domain Separ…
壊れたルーティングの検出、routing specを自動化するroute_mechanic gem を作って公開しました。この gem の紹介と内部実装の話を書きます。 rubygems.org 背景 Rails 開発者のうちの N% は、Rails application のルーティングを検証するために以下のような…
React AdminにはExporterという機能がある。 Exporter feature https://marmelab.com/react-admin/doc/3.10/List.html#exporter にならってjsonexportのようなライブラリと組み合わせれば数行〜数十行のコードでリストをCSV等で出力できる。 // in PostList.…
「名前をよく聞くが実態がよくわかっていないものリスト」にいたPrismaだが、official tutorialが5分で終わるというのでやってみた。 www.prisma.io "5分"!? と思ったがPrisma SchemaとPrisma Clientの説明が中心で、ORMの書き味を見てみる程度の内容なので…
emoji から codepoints に変換 "".unpack("U*") => [128077] "".codepoints => [128077] # Convert to hexadecimal "".each_codepoint.map {|n| n.to_s(16) } => ["1f44d"] codepoints から emoji に変換 [128077].pack("U*") => "" 0x1f44d.chr('UTF-8') =>…
ActiveRecord Association Extensionとwith_optionsを併用するとrubocop-railsのRails/HasManyOrHasOneDependent警告が出るので修正してみた - valid,invalid でrubocopの中身に少し興味を持ったのでシュッと倒せそうなissueがないかを拙作の goofi で検索し…