ブックマーク / r7kamura.com (30)

  • RailsアプリのCI高速化

    参加しているプロジェクトで、RailsアプリのCIの高速化を行った。 まだ進行中の部分も幾つかあるが、結果から言うと、元々8分前後だったテストが3分半程度に短縮された。行った作業を幾つかの観点に分け、どのように高速化を行ったか、どの程度高速化されたか等を記述する。 プロセス数とマシン性能の調整 元々は2コア1プロセス4マシンで8分程度掛かっていたが、8コア8プロセス1マシンに変更することで5分程度に短縮された。 このプロジェクトではCIにGitHub Actionsを利用している。GitHub Actionsではデフォルトで2コアのマシンが利用されるが、Large runnerを利用して8コアに変更した。費用は変わらない。 また同時に、8プロセスで並列実行するためにparallel_testsを導入した。このプロジェクトではMySQLとElasticsearchを利用しており、またファイル

    l08084
    l08084 2023/11/01
  • 良かったもの2022

    良かったものを年末にまとめる回、2022年版。 ストレスレストーキョー PC作業用のデスクチェアとして使い始めたら大成功。元々はリビング用だった。 前に書いた記事: ストレスレストーキョーで作業 前に書いた記事: ストレスレストーキョーのリクライニングチェア Amazon|EKORNES [正規品]ストレスレス®トーキョー スター ブラック/マットブラック チェアのみ mサイズ|リクライニングチェア オンライン通販 エルゴトロンLX デュアル 長身ポール ディスプレイを支える技術。横長ディスプレイ上下2枚×リクライニングチェアの組み合わせが絶妙に噛み合っている。たまに縦長の絵を大きく表示したいときがあり、上側のディスプレイを引っ張って回すだけですぐ縦長にできるのも便利。 前に書いた記事: エルゴトロン LX デュアル Amazon.co.jp: エルゴトロン LX デスク デュアル モニタ

  • リリースノート管理術

    みなさま、OSSの変更履歴、要するにCHANGELOGやリリースノートはどのように管理しておられるでしょうか。自分はというと、抱えるリポジトリも数百個に増えてきて、まあ要するに細かく管理するのがだるく、最近は変更履歴の管理方法も変わってきました。 CHANGELOGからGitHub Releasesへ 昔は、おおよそKeep a changelogの方式に準拠したCHANGELOG.mdを書いていました。semantic versioningでバージョン管理をしながら、個々のバージョンごとに次のセクションを設けて変更内容を説明するような感じです。 Added Changed Deprecated Fixed Removed Security 今は、新規につくるリポジトリではCHANGELOG.mdは用意せず、GitHub ReleasesにKeep a changelogに似た形式で変更内

    l08084
    l08084 2022/07/18
  • 『Sustainable Web Development with Ruby on Rails』を読んだ

    David Bryant Copelandさんが書いた、Railsについてのこだわりの詰まった。 takahasimさんも『Sustainable Web Development with Ruby on Rails』はRails使ってるなら絶対面白いと思うと言っていたように、面白い。これまでRailsを使ってきた中で、楽しいこともつらいことも沢山あったんだろう。そういうことが感じ取れるような話が展開されている。 幾つかの気になった話題を拾い上げて、自分の感想を述べていきたい。気になる話題は100個ぐらいあるが、がんばって10個ぐらいに留めたい。 Don’t Create Custom Actions, Create More Resources Railsが提供する7種類のアクション名以外使うな、必要なら新しくリソースをつくれ、という主張。つまりDHHはどのようにRailsのコントロー

    l08084
    l08084 2022/05/24
  • Chrome拡張 つくりかた 令和最新版

    数年ぶりにChrome拡張のつくりかたを調べた。 当に何も分からなかったので、Twitterで「2022年にChrome拡張つくりたかったら何見て学べばいい?」とつぶやいてみたところ、何人かの人が教えてくれた。教えてもらった中から幾つかのリンク先を紹介するような形で記述していく。 Create a Vite-React Chrome Extension in 90 seconds - DEV Community 2022年時点だと比較的新しめのフロントエンド向けツールであるviteと、viteのChrome拡張向けプラグインである@crxjs/vite-pluginを使ってChrome拡張をつくってみよう、という記事。今回自分は主にこれを参考にしながら開発を進めた。Reactと言っているが、自分のChrome拡張ではUIは存在しなかったので、Reactに関する部分は読み飛ばして、vite

    l08084
    l08084 2022/05/07
  • 海辺のエンジニア

    その時代だからこそ現実的に学べる技術、というものがあると思っている。 例えば自分はRuby on Railsという技術についてここ10年でそこそこ学べた。しかしこれは、それを学び始めたばかりの人でも大きく役に立てる仕事がたくさん存在していた時代に、たまたまそれに興味をもっている者がそこに居合わせたから学べたのであって、いま例えば2022年にRailsを学ぼうとしても、同じように順当にはいかないと思う。 もう少し掘り下げて言うと、機運の訪れていないとき、言い換えると社会的需要のないときにそれを学ぼうとしても誰かに貢献しづらく、経済的に成り立ちにくいし、モチベーション的にも成り立ちにくい。ただ純粋に何かを学ぼうとしても現実的にはなかなか成功させづらくて、「何か貢献できるものをつくりながら学べるき環境がそこにあるか」ということまで考えないといけない難しさがある。 何かこういう、いつでも漕ぎ出せる

    海辺のエンジニア
  • Bring Up My Post

    ソフトウェア開発などでバージョンを上げるときによく "bump version" のように "bump" という語彙が使われるんだけど、これって "Bring Up My Post" の頭字語だったんだ。 つまり、みんなコミットメッセージで「バージョンage」とか言っていたのか。急に在りし日のインターネットに引き戻された感覚だ。 ちなみに、このように完成形の語ありきでつくられた逆頭字語をバクロニム (backronym; bacronym) というらしい。再帰的な頭字語である GNU (GNU's Not Unix) や PHP (PHP: Hypertext Preprocessor) もバクロニムの範疇に入るみたいだ。 『バクロニム - Wikipedia

    Bring Up My Post
    l08084
    l08084 2022/01/17
  • 2021年の振り返り

    2021年の記事を読み返し、気になった話題に言及する記事。 住居 2021年の抱負「引越し」を2021年9月に達成した。 今年の他のビッグニュースは、大型テレビとリクライニングチェアを買ったこと。よく引越すので家具を買うのが苦手だったが、長く住みたい物件を見つけられたおかげで大型家具を導入でき、生活スタイルが幾らか変わった。 自炊 2021年も1年中自炊していた。 キッチンが使いやすい物件を選んで引越したので、自炊が更に捗るようになった。基に立ち返り、初歩的な料理の練習に努めている。食洗機があるおかげで調理器具を気兼ねなく使えるようになり、調理が楽しくなった。また調理器具や保存容器、器類にこだわる気持ちが以前より少し増し、数年ぶりにそれらを買い足したりした。 米 2021年は個包装のコシヒカリを1年中べていた。 2020年に抱負「炊飯器を新調する」を達成しておいたおかげで、2021年

    2021年の振り返り
    l08084
    l08084 2021/12/25
  • Rustでサイトを再実装

    このサイト r7kamura.com の実装言語をRubyからRustに変えてみた。 アプリケーションの概観 このサイトには、大別すると次の6種類のルーティングパターンがある。 GET / トップページ GET /articles/:article_id 記事ページ GET /feed.xml RSSフィード GET /links リンク集 GET /sitemap.txt サイトマップ (Google Search Console等が利用する) GET /* その他の静的ファイル (CSSや画像など) Rubyの実装では、適当なRackアプリケーション + rack-captureという構成で、Webアプリケーションとして実装しつつGitHub Pagesのために静的ファイルも吐き出せるという仕組みになっていた。 Rustの実装もほぼ同じで、適当なHTTPサーバー + 適当なHTTPクラ

    Rustでサイトを再実装
    l08084
    l08084 2021/11/08
  • 『Zero To Production In Rust』を読んでいる

    初学者用のRustの教材として、RustでWebアプリケーションのサーバーサイド側をつくる一連のチュートリアル記事、『Zero To Production In Rust』を読んでみている。 https://www.lpalmieri.com/posts/2020-05-24-zero-to-production-0-foreword/ 一気に読んでいるかのような雰囲気でさらりと書いているが、仕事と遊びの合間に少しずつ、数日に1章程度の速度でゆっくり読み進めている。 問題駆動型の学習方法が嬉しい 知らない知識を複数同時に与えると学習効率が悪くなりがちなので、ある程度基礎部分を学んだら、少し難易度の高い領域であっても、自分の馴染みのある分野でどう使うかという話を例に学んでいく方が良いと考えている。今回の自分のケースの場合、Webアプリケーション開発という題目がそれにあたる。分からないところが

    『Zero To Production In Rust』を読んでいる
  • docker composeのserviceをグループ化

    docker composeではserviceごとにprofilesという属性を指定できて、起動時にこれを指定することで関連する一連のserviceだけを起動させられる。 どういうシーンで使えるのか。例えばとあるRailsアプリでは、一部の開発者はMySQLやRedisなどのデータストアだけdocker composeで起動して開発し、他の開発者は加えてRubydocker composeで起動して開発している。osxfsが遅すぎて、ファイルへの読み書きが頻発する処理がmacOSDockerでは使い物にならないからだが、この話は今回どうでもいい。さてこのとき、データストア用のserviceに適当な名前のprofileを割り当てておくことで、個々のserviceの名前を逐一指定しなくても起動でき、将来の変更にも強くなって嬉しい。 # profile導入前 docker compose u

    docker composeのserviceをグループ化
    l08084
    l08084 2021/10/12
  • ART WORK STUDIOの天井照明

    ART WORK STUDIOというブランドの、Glowという天井照明を取り付けた。 先月新居に引越してきて以来、これまで天井照明が付いておらず、旧居から持ってきたスポットライトとフロアランプ、それから入居時にお気持ちで付けられていた裸電球で生活していた。開口部は大きめなので、晴れの日は明るく、日が暮れたら暗くなるというのが晴耕雨読な感じでこれも悪くなかったのだけど、流石に厳しくなってきたので適当な天井照明を見繕うことに。 https://www.amazon.co.jp/dp/B085XYN9P8 今回選んだ天井照明は、上部と下部を別々に照らせるという点が面白い。間接的に天井を照らすことで、空間がより広く見える効果がある。天井照明は正直取り付けてみるまで上手く合うかわからない部分が多いため、色温度や照度、上下の照らし方をそれぞれ切り替えられる機能が好印象だった。 上下共に明るくすると部屋

    ART WORK STUDIOの天井照明
    l08084
    l08084 2021/10/10
  • ベランダにウッドパネル

    ベランダをより活用すべく、ウッドパネルを敷いてみることにした。 手入れの手間を抑えるために天然木ではなく人工木で、かつそれなりに丁寧につくられていそうなウッドパネルを探した結果、『タンスのゲン』という会社が販売している製品の、クロスタイプのナチュラルブラウン色のものを選ぶことに。 https://www.tansu-gen.jp/collections/w-panel/products/42300000 思っていたより製品の出来や梱包が良く、タンスのゲンの製品には非常に満足。しかしベランダの大きさを測った上で注文したにも関わらず、27枚単位で売っているのになぜか36枚余ってしまった…。品薄気味なのか発注から到着まで3週間ほど掛かるということもあって、気持ち多めに計算したのが仇となったかもしれない。処分にも困るので、もし欲しい知り合いが居たら譲りたい。 敷く前 設置はすごく簡単で、1枚ずつペ

    ベランダにウッドパネル
    l08084
    l08084 2021/09/30
  • LGの65型有機ELテレビ

    l08084
    l08084 2021/09/26
  • 『SEKIRO』をやった

    この1週間で『SEKIRO: SHADOWS DIE TWICE』をやった。 ゲーム冒頭の一幕 フロム・ソフトウェアとアクティビジョンとの共同開発でつくられた和風アクションアドベンチャーゲームで、DARK SOULSやBloodborneの開発スタッフも関わっている。 この年末年始でフロム・ソフトウェアのゲームと改めて向き合おうと思い、次のゲームを一通りやったが、SEKIROは体験の設計という意味できわめて高品質な作品だと感じた。 DARK SOULS 1 DARK SOULS 2 DARK SOULS 3 Bloodborne SEKIRO 序盤で苦戦したボス: まぼろしお蝶 でかい蛇から隠れて逃げ回る日々 ボス第一形態を初撃破して記念撮影 (このあと背後から殴られて死ぬ) マスターソードを抜いたシーン 物語の終わり 適度な説明がなされ、やり甲斐があり、上手くやる余地があり、自分のプレイ

    『SEKIRO』をやった
    l08084
    l08084 2021/01/17
  • Windows開発環境構築メモ

    開発環境構築用のメモを自分用に書き残しておく。 GUIアプリケーション この辺りを入れる。 Google Chrome Google日本語入力 1Password 4 Dropbox Docker Desktop for Windows 未だに購読版に移行せず買い切り版の1Password 4を利用している。 Windows + Vを利用するとクリップボード履歴を有効化できるので、済ませておく。 Google日本語入力の設定 HENKANキーでIMEを有効化 MUHENKANキーでIMEを無効化 というキー設定を普段利用しているのでそのように設定する。 直接入力 入力文字なし 変換前入力中 変換中 以上の4つのモードについて、それぞれキー設定のエントリを追加する。 Windowsライセンス認証 Windows 10 Pro 64bit辺りをライセンスキー無しでインストールしていると思うので

    Windows開発環境構築メモ
  • 自作PC2021

    年始に部品を見繕ってPCを組んだ。 机に仮設置した様子 2020年に開発環境をMacBook ProからWindowsデスクトップPCに移行したので、開発に使うならもう少し投資することにしようということで、新しいPCを組むことにした。主にプログラミング、ゲーム、動画編集に使うことになる。 利用した各部品について、取り付け順に紹介しておく。 組み立て前 ケース ケースはNZXTのH510 Eliteにした。 Amazon.co.jp - NZXT H510 Elite 大きさはATX規格のマザーボードと320mmのGPUが入る程度。正面と側面が強化ガラスで出来ている。マザーボード背面やケース底面部分に配線スペースが設けられているため、初心者でも比較的綺麗に配線できる。 このあたりが標準で搭載されている。 LEDとファンを制御するコントローラー LEDストリップライト LED付き前面ケースフ

    自作PC2021
    l08084
    l08084 2021/01/09
  • iPadを脱衣所に置く

    iPadを脱衣所に置くことにした。 洗濯機の上のスペース 2020年の自分のiPadの使い方を振り返ってみると、ほぼ入浴中にしか使っていない。であれば使う場所に置くのが良いと考え、脱衣所に置いて充電するように運用方法を変えた。 充電にはiPad Pro (2018) 対応のマグネット式USBアダプタの記事でも言及したアダプタを利用していて、これも便利だ。こういった細かい改善が日々の暮らしやすさに効いてくる、気がしている。

    iPadを脱衣所に置く
    l08084
    l08084 2021/01/09
  • 『DARK SOULS III』をやった

    l08084
    l08084 2020/12/27
  • AirPodsをWindowsで使う

    AirPodsをWindowsで使うときの設定のアレコレについて。前にAirPods Proという記事でも触れたように、少し前からWindowsAirPods Proを利用している。そこで幾つかはまりがちな点があったので、誰かのためにまとめておく。 ペアリング AirPodsの充電を済ませた状態で、AirPodsをペアリング可能な状態にし、Windows側で次のような手順を踏んでAirPodsを探す。 Bluetooth とその他のデバイス Bluetooth またはその他のデバイスを追加する デバイスを追加する Bluetooth ここで来であればAirPodsが検出されて、ペアリングできる。 ペアリング成功例 但し、たまにペアリングしようとして検出できない状態に陥る場合があった。 AirPodsの充電を待つ AirPodsをリセットする という手順でそのときは問題を解決できた。 サ

    AirPodsをWindowsで使う
    l08084
    l08084 2020/12/25