サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
r7kamura.com
左右分割型のキーボードを机に固定してみた。 今回使ったキーボードは、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枚入り) : ドラッグストア
シャワーヘッドをReFaのFINE BUBBLE PUREに交換した。 シャワーヘッドとカートリッジとアダプタ 今回取り付けたのはこれ。 Amazon.co.jp: 【公式ストア限定】ReFa FINE BUBBLE PURE リファ ファインバブル ピュア 白 (ショッパー&カートリッジ付) : ホーム&キッチン 購入の経緯 一昨年にできた近所の銭湯によく通っているのだけど、そこの銭湯がこのシャワーヘッドを使っていて、使った瞬間「は?めっちゃいいじゃん」となったので、その場で調べてすぐ購入。こういうのって試さずに購入するのはなかなか博打に近いけど、実際試しづらい製品なので、自分で試してから購入できるのはありがたい。 4段階の強さのモードを切り替えられて、1番弱い霧状のやつは洗顔のとき用、2番目に弱いやつは常用、3番目と4番目は勢いが強いので掃除用に使ってる。そもそもの元の水圧が弱いと話が
コードレスドライヤーはいいぞ。 ドライヤー本体の様子 自分が使っているのは、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パッ
vscode-ruby-lightの開発中に考えたことを書いていきます。今回は、2022年末に初期版を開発してから1年ほど経った2023年末時点でのふりかえりを行います。 vscode-ruby-lightとは 1年ほど前に、Ruby用VSCode拡張: vscode-ruby-lightという記事を書きました。要約すると、Rubyがインストールされていなくても使える、Rubyを書くのがちょっと便利になるVSCode拡張をつくってみているという話です。具体的には、シンタックスハイライトやトークンの選択など、VSCode標準の機能よりちょっと良い編集体験を提供しようという目的の拡張です。 あまり真面目に開発している訳ではなく、VSCode拡張やLSPについての勉強も兼ね、ちょっとした趣味プロジェクトとして開発したりしなかったりしているというのが実情です。開発自体は1年ほど停滞していたのですが
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時まで毎日作業配信をやってみました。
重い腰を上げ、家のダンボールをまとめて資源回収に出した。 まとめたダンボールの一部 ダンボールをまとめるため、今回から山善のハンディラップを導入して、これが非常に便利だった。適当な単位で重ねたダンボールを正座した状態で太ももの間に挟んで立てて、ハンディラップで3周ほどぐるっと巻くと綺麗にまとまる。 Amazon|[山善] ハンディラップ セット品 幅10cm×150m巻 ストレッチ フィルム くるット セット(本体1個+交換用ラップ3個) HW-150/HWR-150|新聞・雑誌ストッカー オンライン通販 ダンボールストッカーがあると、まとめるのが更に楽になるのかもしれない。今のところうちでは、引越用に使った大きなダンボールにそれ以外のダンボールを突っ込んでストックしていくという運用でやっている。 100年ぶりに土間の床が見えた ハンディラップ使っていいのかどうかについて。元々、うちのゴミ
良かったものを年末にまとめる回、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を利用しており、またファイル
AmazonプライムセールでAirPods Proの第2世代が安くなっていたので、2台運用している内の古い方のAirPods Proを買い替えた。 Amazon.co.jp: Apple AirPods Pro(第2世代) ホワイト : 家電&カメラ 作業中、ノイズキャンセリング目的と気軽に通話に参加したい目的で常時AirPods Proを付けている。数時間で充電が切れるので、常時着用するとなると充電中にもう1台持つ必要があり、2台持つことにしている。2台持つとなるとまずまずの金額になるものの、そこは作業用の経費と割り切って使っている。 他社製品との比較 完全ワイヤレスイヤホンは選択肢が多く、用途的には別にAirPods Proでなくても良いのだけど、問題が起きたときにその製品固有の問題なのかどうかを切り分けるのが面倒。利用者が多く、最悪Appleストアに持ち込めば対応して
ラブリコと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
シンクの掃除用品を少し見直した。 キッチンマジックリン泡ジェット 毎日やる掃除用。 Amazon | キッチンマジックリン 泡ジェット キッチン掃除用洗剤 毎日の油汚れゴシゴシいらず 本体 370ml | マジックリン | キッチンクリーナー剤 その日シンクを使い終わったら、シンクに吹きかけて洗い流す。 蓄圧スプレーがたいへん便利。油には強いが水垢にはそんなに利かない印象がある。水滴を拭き取ったりするのは面倒なのでサボり、固まった水垢はたまにジフで掃除することで対策する。 ジフ たまにやる掃除用。 Amazon | クリームクレンザー ジフ 270ml | ジフ | キッチンクリーナー剤 スポンジに付けて、シンクの水垢をこすり落とし、水で洗い流す。 食器洗い用のスポンジ交換のタイミングで、古い方のスポンジを使って掃除して捨てることにしている。研磨剤は控えめにしか入っていないので、数年来のめ
このサイトのGitHub Pagesへのデプロイ方式を、GitHub Actionsを使って直接デプロイする方式に変更した。 新機能の説明 2022年7月まで、GitHub Pagesにファイルをデプロイするためには、何らかのブランチにデプロイしたいファイルを配置する必要があった。これを実現するために、よくpeaceiris/actions-gh-pagesのようなカスタムアクションが使われていた。 2022年7月から、新方式として、actions/upload-pages-artifactとactions/deploy-pagesという二つのカスタムアクションを組み合わせて、ブランチにファイルを配置することなく直接GitHub Pagesにデプロイする方式も選べるようになった。この情報は、GitHubのブログ記事でも紹介されている。2023年5月時点で、この機能はβ版という位置付けになっ
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を書いて、このコードを自動修正することにしました。詳しい書き方についてはここ
次のページ
このページを最初にブックマークしてみませんか?
『r7kamura.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く