サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
r7kamura.com
r7kamura/bump-requestを改善して、ボタンをポチポチやるだけでパッケージの新しいバージョンをリリースできるようにした。 https://github.com/r7kamura/bump-request r7kamura/bump-requestは、新しいバージョンのリリースを自動化するためのGitHub Action。何個もパッケージをメンテナンスしていると、流石にこういうものがないと生きづらくなっていく。詳しくは以前の記事でも触れている。 リリースの自動化 これを使う際、以前までは新しいバージョンを都度手入力する必要があったが、今回これを major, minor, patch の選択肢を元に自動計算してくれるようにできた。semantic versioningのバージョン形式に則っているだろうということを前提として、最新のリリースのバージョンを元に次のバージョンを計算
現在自分が利用しているキーマップについて。 基本情報 Keyball39 ローマ字入力 日本語キーボード Windows プログラミング、動画編集等で利用 レイヤー0 二段書かれているキーは、短押しで上段、長押しで下段のキーになる 全体構想として、モディファイアキー・レイヤーキー・クリックキーを左右両方に配置することで、取れる選択肢を増やしつつ負担を減らすことを目指している。このために、特徴的な設計としてホームポジションにモディファイアを配置している。この方式は、英語圏ではよくHome Row Modsと呼ばれている。 この方式の利点は、小指を使わなくて済んだり、親指のキーを他の用途に明け渡せたり、複数モディファイアを組み合わせやすかったりする点。例えば、プログラミングをしているとエディタでCtrl+ShiftやAlt+Shiftを活用できる場面が多く、この方式だとそれが扱いやすい。 この
左右分割型のキーボードを椅子に固定してみた。 今回使ったキーボードは、Keyball39。左右に分かれているタイプで、左右合わせて合計39個のキーが搭載されており、右手側にトラックボールが付いているキーボード。 このキーボードの底面に鉄板を貼り、椅子から生やしたアームに磁気式の雲台で固定し、磁気式のUSBケーブルで配線してみよう、というのが今回の試みです。なお、以前には別のアプローチとして、机に固定する方法を紹介しました。 分割キーボードを机に固定 Corne V4 Chocolateのときはケース内底面に鉄板を貼りましたが、今回は底面のアクリル板に直接鉄板を貼ってみることに。剥がしやすくするために、マスキングテープの上から貼り付けました。 Amazon | [エムティ]スチールプレート (マグネット吸着用) シルバー 正方形 ■ 24x24mm / 裏面超強力1mm厚シール付 10枚入(
左右分割型のキーボードを机に固定してみた。 今回使ったキーボードは、Corne V4 Chocolate。左右に分かれているタイプで、左右合わせて合計46個の背の低いキーが搭載されており、はんだ付け不要な簡単組み立てキットが販売されている、初心者にもおすすめのキーボード。 このキーボードのケース内底面に鉄板を貼り、机から生やしたアームに磁石型マウントで固定しよう、というのが今回の試みです。 このキーボードのケース内底面には格子状にでっぱりが付いているので、大きな鉄板一枚を貼るのは難しい。そこで、小さな鉄板を複数枚貼り合わせていく。世の中には両面テープ付きの小さな鉄板がまとめて売られているので、それを使います。今回はこの正方形のやつと円形のやつをそれぞれ10枚ずつ貼ってみたところ、十分な磁力を得られました。 Amazon | [エムティ]スチールプレート (マグネット吸着用) シルバー 小
新しいPCを組んだ。 自作PCを組むのはこれで二台目。一台目については以下の記事で紹介している。 自作PC2021 前回の組み立て時に基本的な部分を学べたので、今回は一度やってみたかった本格水冷に挑戦してみることにした。 組み立て後 組み立て前 この記事では、利用した各部品を紹介していく。前半では水冷にあまり関係無い部分、後半では水冷に関係する部分に触れる。自作PC2027を書くことになる頃合いで読み返したい。 ケース Lian LiのO11 EVO RGBを利用した。 Amazon | LIANLI E-ATX対応ミドルタワーPCケース O11D EVO RGB Black リバーシブルデザイン E-ATX(幅280mm以下) / ATX/Micro ATX/Mini-ITX規格対応 RGBストリップ標準搭載 420mmラジエーター搭載可能 日本正規代理店品 | リアンリー(Li LIA
台所の排水溝のゴミ受け (目皿) を銅製のものに交換してみたところ、全然ヌメヌメしなくなった。 買ったのはこれ。もっと早く交換しておけば良かった。 Amazon|Talea Ø14.3cm,H:4.2CM,バスケット,キッチン はいすいこう ゴミ受け,ステンレス 排水口 ゴミ��け,QS588C004|排水口水切りカゴ オンライン通販 この使い捨ての網を被せて使っている。 Amazon.co.jp: キチントさん ダストマン○(マル) 浅型 (50枚入り) : ドラッグストア
コードレスドライヤーはいいぞ。 ドライヤー本体の様子 自分が使っているのは、Zuviという会社の製品。 Zuvi Halo 光ヘアケアコードレスドライヤー Zuviは香港のスタートアップ企業で、製品開発は深センで行っているとのこと。日本法人はZuvi Japan株式会社。 充電時間は30分ぐらいで、最大風量でも約15分は使える。風量は前まで使ってたDysonのドライヤーより強いぐらいなので、かなり強力。温度はぬるめ。高温多湿な脱衣所で乾かすより、リビングで落ち着いて乾かす方が好きなので、最近は専らリビングに持ち込んで使っている。自分以外 (特に小さい子とか) を乾かすのにも便利かも。テレビでも見てもらっておけばいいし。 充電スタンドに置いた様子 重量は630g。例えば最近のPanasonicの良いやつ EH-NA0J-W だと本体重量が550g、Dysonの良いやつ Supersonic
vscode-ruby-lightの開発中に考えたことを書いていきます。今回は、内部で利用しているRuby用パーサーのtree-sitter-rubyからPrismへの移行について書きます。 @ruby/prismパッケージの概観 Prismは、JavaScriptからもその実装を利用できるよう、@ruby/prismという名前でnpmパッケージを公開しています。 何が含まれているパッケージなのかというと、まずWASMバイナリという形でコンパイルされたPrismの実装と、それを便利に使うためのJavaScriptの実装、それからTypeScript向けの型定義ファイルが含まれています。これらはESModuleという形式に従ってモジュール化されています。またruby/prismのリポジトリ内に、JavaScript向けの簡単なドキュメントも含まれています。 もちろん、本拡張でもこのnpmパッ
r7kamura.comドメインをAmazon Route53からCloudflareに移管したので、手順等を書き残しておきます。 Cloudflareのアカウント作成 自分の場合、2016年にアカウントを作成していたので、このアカウントを利用しました。無い場合はここで作成することになります。 https://www.cloudflare.com/ja-jp/ ドメインの移管や維持にはお金が掛かります。ドメイン移管時に支払い情報の登録が必要になるので、ここで予めクレジットカードの情報等を設定しておくと事が円滑に進みます。 Cloudflareにドメイン名を登録 Cloudflareにログインし、管理画面右上の "Add a site" から、ドメイン名を登録してサイト情報を用意します。 ドメイン名を入力すると、このサイトに対して利用する料金プランを選択することになります。自分の場合、今回は
結論から言うと、node_modulesをキャッシュしてnpm ciの実行を省略するのが、多くの場合には有効そうです。 はじめに CIで npm ci を使うとき、実行時間短縮のためにキャッシュの利用を検討することになると思います。このとき、どのようにキャッシュするのが良いのでしょうか? よく知られているキャッシュ方式として、以下の二通りの方式があります。 ~/.npmをキャッシュする方式 node_modulesをキャッシュする方式 それぞれの違いについて、詳しく見てみましょう。 ~/.npmをキャッシュする方式 npm ci を実行すると、POSIX系のOSではデフォルトで ~/.npm にキャッシュデータが書き込まれます。package-lock.json をキーにこのディレクトリをキャッシュしておくことで、次回以降の npm ci 実行時にこのキャッシュデータを利用しよう、というの
作業机の配線の記録をまとめておきます。 現在の様子 2020 2020年は牧歌的な時代で、子供の頃から使っていた机の上に、必要な機器を乱雑に並べていました。当時はゲームの録画や配信をはじめた頃だったので、それ以前と比べると、キャプチャーボードやオーディオインターフェースが増えていっていました。 乱雑に積まれた機器達 2021 2021年には作業机を買い替えたり、はじめて自作PCを組んだりしました。この辺りでようやく、配線に真面目に向き合い始めました。この年には、天板下にクランプで取り付けられる、サンワサプライのケーブルトレーを導入しました。 電源ケーブルはカーペット下を通している あらゆる機器が詰め込まれたケーブルトレー 電源タップはマグネットシートで設置 PC裏にはゲーム機 2022 引越しを済ませ、生活が落ち着いてきた頃合いで、半年間、朝6時から12時まで毎日作業配信をやってみました。
良かったものを年末にまとめる回、2023年版。 ラブリコと扇風機 脱衣所に大きな扇風機を設置できたおかげで、年中入浴後に快適に過ごせて、お風呂に入るのも楽しかった。入浴は健康に生活を送る上で重要な習慣だと感じているので、今年はそこの快適度を上げる努力をできたのが良かった。ラブリコは、賃貸物件でも問題無く設置できるし、最終的な処分も難しくはないし、自分で自分の環境を良くするDIYの楽しみがあるので、良いものだと思う。羽が大きい扇風機はいいぞ。 『脱衣所に壁掛け扇風機』という記事でも触れた。 Amazon.co.jp: 平安伸銅工業 LABRICO DIY収納パーツ 2×4アジャスター強力タイプ オフホワイト 最大使用荷重40kg EXO-1: ホーム&キッチン あっちこっちふきん 12年ほど食器用に使っているふきん。めちゃくちゃ吸水力があるので、食器を拭くのに最高。高いだけの価値がある。欠点
Elgatoの『HD60 X』というキャプチャーボードが優秀って話。 Nintendo Switchと接続しているHD60 Xの様子 要点 HD60 Xの良い点は以下の通り。 設定の手間が少ない 遅延が非常に少ない Elgatoが信用できる 設定の手間が少ない 例えば以前まで使っていたAVerMediaの『AVT-C878 PLUS』だと、音声をまともに扱うには公式サイトのダウンロードページからユーティリティーツールをインストールし、そのツールを利用してドライバーをインストールする必要があり、更に映像入力と音声入力が別のデバイスとして認識されるため、そのための追加設定を行う必要があった。 一方でHD60 Xは、特にドライバーをインストールする必要もなく、接続するだけで利用可能。環境によってはデバイスのファームウェアアップデートが必要になる場合もあるが、自分の環境ではその必要もなかったため、
最近記事を書いていなかったので、取り留めのない近況について。 仕事 相変わらず業務委託で様々なRailsアプリの開発現場に携わっている。 仕事内容は主に「全般的にこのRailsアプリいい感じにしてください」という話を受けて、以下のような仕事を進めることが多い。 RubyやRailsのバージョン変更 それ伴う様々な変更の調査と実装 その後の継続的なバージョン変更 自分が居なくなった後に手順をなぞれるように情報を整理 CIの改善 高速化、安定化 Flakyなテストとの戦い テストコードの根本的な改善 静的解析ツールの整理 開発者の教育 開発環境の改善 開発環境構築手順の整理 その組織向けのRailsやRSpecに関するガイドラインの策定 Docker環境との棲み分け方の整理等 その他ドキュメンテーション その他改善できそうなところの調査と実装 普段からたまにrubocopやrubocop-ra
参加しているプロジェクトで、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を利用しており、またファイル
ラブリコと2x4材を使って、脱衣所に壁掛け扇風機を設置した。 扇風機はTEKNOSのKI-W488Rという製品。羽が40cmあり比較的大きい。羽は大きい方が同じ電力で風量が大きくなると聞いたので、羽が大きめで比較的安い物を選ぼうということでこの製品にした。 扇風機設置後の様子 2x4材の方は、適切な長さに切られた2x4材の両端に部品をはめて、壁にはめ込み、上側のネジを手で回すことで設置できた。ここでの適切な長さとは「設置場所の最大長 - 120mm」である。 ラブリコの公式サイトから辿れるオンラインショップでは、「柱セット」という形で、2x4材のカットや染色までやってくれるサービスがある。自分で2x4材を用意する場合と比べて価格は高くなるが、楽ではあるので、これを利用するのも良いと思う。 ラブリコで2x4材を設置した様子 扇風機に壁掛け金具とネジが付属しており、ドライバーで金属のネジをぐり
やっておくと安心。 手順 まず利用しているライブラリのソースコードを、適当な場所にコピー。 cp -r vendor/bundle/gems tmp/gems 各ライブラリに .rubocop.yml が含まれているとその設定が利用されてしまうので、削除する。前述のコピーはこのために必要。 rm tmp/gems/**/.rubocop.yml 適当なオプションを付け、Rubyのバージョン変更に関係がありそうなCopを指定しながら、RuboCopで静的解析する。 bundle exec rubocop \ --ignore-disable-comments \ --ignore-parent-exclusion \ --ignore-unrecognized-cops \ --only Lint/DeprecatedClassMethods,Lint/DeprecatedConstants
GitHub Actionsでテストファイルを複数ノードに適切に分割するためのカスタムアクション、r7kamura/split-tests-by-timingsを作った。 CircleCIに同様の仕組みがあり、今回はこれのGitHub Actions版が欲しかった。 既存ツールとして、Go製のleonid-shevtsov/split_testsというCLIツールがあり、これを利用するchaosaffe/split-testsというカスタムアクションがある。 このカスタムアクションでも不足は無かったが、幾つかの理由で今回自作するに至った。 しばらく使いそうなので、保守性を上げるためにも、不要な機能を取り除いて必要最低限の機能にしたかった GitHub Actionsは仕様変更が多いため、自分で保守できるようにしたかった 今回、内部実装としてRust製のmtsmfm/split-testとい
GitHub Codespacesをちょっと試した。 初期導入時にハマりどころも多いけど、真面目に設定しておけば、普通にCodespacesの環境だけで開発することは十分できそうだなと感じた。リポジトリ単位で環境を用意するのが基本で、多くのリポジトリに対して毎日のようにレビューをしたりPull Requestを出したり、みたいな開発フローには綺麗にはまらないと思うけど、普通に仕事で単一のリポジトリに対してだけ作業する用途であれば上手くはまると思う。Zoomで会議しながら重い処理を実行していても影響が無いのは良かった。Zoomで会議しながら重い処理を回すべきではないという意見もある。 Codespacesの利用の流れ Codepsacesを利用するときの流れについて。まず、予め .devcontainer/devcontainer.json を配置したリポジトリを用意しておく。Codespa
年始にシレン5 Plusを原始99Fクリアまで遊んだ。 不思議のダンジョン経歴 不思議のダンジョン系は、以下の作品を昔遊んで以来。 風来のシレン1 風来のシレン2 風来のシレン外伝 アスカ見参 チョコボの不思議なダンジョン1 チョコボの不思議なダンジョン2 不思議の幻想郷 ストーリーダンジョンの感想 他作品と比べてストーリーダンジョンの単純な難易度はそこそこ高め���好印象。ポイントカードシステムによって、実質的に毎度死んでもアイテム持ってやり直せるので、これありきだと初心者にはかなり丁度いい設計になっていると感じた。ストーリーも台詞回しはあっさりした演出ながらもしっかりと物語が構成されていて良かった。 個人的には、やはりもっと不思議なダンジョン系の雰囲気が好きということもあり、昼夜システムはあまり肌に合わなかった。夜ありダンジョンは、夜待ち、引き寄せ混乱で一掃、階段探知で即降りという行動がテ
良かったものを年末にまとめる回、2022年版。 ストレスレストーキョー PC作業用のデスクチェアとして使い始めたら大成功。元々はリビング用だった。 前に書いた記事: ストレスレストーキョーで作業 前に書いた記事: ストレスレストーキョーのリクライニングチェア Amazon|EKORNES [正規品]ストレスレス®トーキョー スター ブラック/マットブラック チェアのみ mサイズ|リクライニングチェア オンライン通販 エルゴトロンLX デュアル 長身ポール ディスプレイを支える技術。横長ディスプレイ上下2枚×リクライニングチェアの組み合わせが絶妙に噛み合っている。たまに縦長の絵を大きく表示したいときがあり、上側のディスプレイを引っ張って回すだけですぐ縦長にできるのも便利。 前に書いた記事: エルゴトロン LX デュアル Amazon.co.jp: エルゴトロン LX デスク デュアル モニタ
2022年にやって良かったゲームを振り返る。 一番良かった作品 ELDEN RING 期待の大作として登場し、その期待を更に超える出来だった。戦技の大幅強化とオープンワールド化により、難解なストーリーやボス戦を辿らずともただ世界を探索しているだけで楽しめるようになり、初心者への裾野も広がった。しかしロールプレイや縛りプレイでの難易度の高さはしっかりと保証され、根幹となるストーリーも考察しがいのある良い内容だった。文句無しの2022年優勝作品。 自分の遊び方はというと、1周目はしっかりと全探索し、2周目は2時間ほどでサクッと終わらせ、3周目はLv1で苦労しながらやりきった。1周目の感想は『ELDEN RING』、Lv1での感想は『ELDEN RING Lv1の旅を振り返る』という記事に書いている。 良かった作品達 他に2022年にやった中で良かった作品達を挙げておく。作品名の表記はSteam
最近は下記のようにライブラリ等のリリースを自動化している。 バージョンを入力するとPull Requestを生成 Mergeするとリリース ラベルの管理 前回のリリース以降にMergeされたPull Requestからリリースノートが自動生成されてほしい。このとき、Keep a Changelogの形式を参考に、変更点が以下の7種類に分類されてほしい。 add change deprecate fix remove security other そこで、Pull Requestに予めラベルを付けておくことで、どの節に分類するかを決定させる。またこのようなラベリングの習慣を設けることで、各Pull Requestの粒度の是正もねらう。ラベルを利用したリリースノート自動生成機能自体はGitHubが備えているので、.github/release.ymlでそのラベルを使う旨を指定すれば良い。 この
開発機をMacからWindowsに移行して2年ほど経った時点での振り返り。 年表 2009年07月 MacBook Pro 1を購入、プログラミング開始 2014年07月 MacBook Pro 2を購入 2016年12月 Windows機1を入手、PCゲーム開始 2017年07月 MacBook Pro 3を購入 2018年06月 Windows機2を購入 2020年09月 MacからWindowsへ開発機を移行 2021年01月 Windows機3を購入 2022年10月 現在 過去記事 開発機を移行してすぐの頃の感想は、次の記事に書いた。 Windowsで開発 Windowsへの回帰 自作PC2021 デスクトップPCを譲渡 Macからの移行という観点だと、次の記事も幾らか関連があるかもしれない。 AirPodsをWindowsで使う Windows10でMagic Trackpad
rubocop-migrationというGemをつくった。 ActiveRecordのmigrationでハマりがちな罠を回避したり、記法に一貫性を持たせるための、RuboCop向けのCopをまとめたライブラリである。例えば、テーブルへの読み書きをブロックしてしまうようなMigrationの書き方を検知し、それがもし別の方法で回避可能なものであれば違反とする、といったCopが含まれている。 背景としては、先週にstrong_migrationsの話を見かけ、RuboCopから使える形で提供されていると便利そうだと思い用意した。実際、ほとんどのCopはこのライブラリの内容を参考に実装している。 異なる点として、strong_migrationsだと検知させるためにアプリケーションのコードに変更が必要で、またデータベースへの接続も要求される。一方で、rubocop-migrationはこの辺を
RuboCopのカスタムCopを書いてリファクタリングを行う話として、丁度良い事例があったので紹介します。 改善したいコード 仕事先のRailsアプリを眺めてみると、昔から慣習的に次のようなコードが書かれていることが分かりました。 module A extend ::ActiveSupport::Concern included do def foo end def bar end end end 本来は、特別な理由が無い限り次のように書かれるべきコードです。 module A def foo end def bar end end これは後から分かったことですが、このようなコードはファイル数で言うと数百件、メソッド定義数で言うと千件弱あるようでした。 用意したカスタムCop そこで、RuboCopのカスタムCopを書いて、このコードを自動修正することにしました。詳しい書き方についてはここ
毎日狂ったようにメモを書いている人が、メモについて語ってくれる本。人生訓や自己啓発的な語り口の内容が意外と多かった。 この辺の考え方は拾い上げておきたいと感じた。 情報の記録それ自体は機械にとって変わられるべき仕事だと考えるが、これとは別の観点として、メモを取れる程度に高い集中力で情報の入力に臨むことは有益だ 構造的にメモを取るように意識することで、情報を構造的に捉える必要性が発生するので、結果的に自身をそのような試みに導き、構造化能力や言語化能力を鍛えられる 自己分析ができている者は重宝されやすい。メモを取ることで自己分析を大いに進められ、自身の価値を高められると共に、自己実現にも繋がりやすい 強い願いを持つ者ほど大きな事を成しやすいが、人は生きていく中で願いを忘れてしまうので、書き留めておくことでそれを防ぎ、また何度も見返すことでそれを強められる 協力者が多いほど事を成しやすい。言語化
毎朝6時間勉強し、その様子を配信している。 https://www.youtube.com/c/r7kamura 勉強に寄与したと感じる習慣を挙げる。 午前中に行う ポモドーロ法に従う 外音を遮断する 通知を切る 環境を整える 水を飲む 計画的に休憩する 運動する 考えを書いてまとめる 成果を共有する 誰かと一緒にやる 仕組み化する 良くなかったのでやめた習慣を挙げる。 毎日9時間勉強する 長時間運動する 何度も運動する 休憩時間にマイクで話す 無音で勉強する 学んだすべてを書き留める メモ書きを共有する 睡眠の習慣については『早起き2022』という記事でも触れた。
Ruby向けに、vscode-ruby-lightというVSCode拡張をつくっています。この拡張は、利用者に特にRubyのインストール要求することなく、シンタックスハイライトやカーソル操作など、VSCode標準の機能よりちょっと良い編集体験を提供しようという目的の拡張です。 最初は「メソッドやブロックをもう少し上手く選択できるようにしたい」というモチベーションで調べ始めたのですが、気付けば色々な機能を持つVSCode拡張が出来上がっていました。この記事では、幾つかの機能を紹介しながら、関連する話を書いていこうと思います。 Selection Range VSCodeにはExpand Selectionというコマンドがあり、選択範囲を拡大したり狭くしたりできます。このコマンドには、例えばWindowsであればデフォルトでShift + Alt + →にショートカットキーが割り当てられていま
次のページ
このページを最初にブックマークしてみませんか?
『r7kamura.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く