サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2025年ランキング
r7kamura.com
この文章は音声入力だけで書いてみている。 Aqua Voiceっていう音声入力のソフトウェアを使ってみたんだけど結構良くて驚いた。音声認識の精度が高いっていうのは当たり前なんだけど、IMEの変換の精度がとにかく良くて、変換ミスがほとんどない。あと、使う前は「あのー」とか「えーっと」とか「うーん」みたいなフィラーをどう処理するんだろうって思ってて、そういうのがノイズになるんじゃないかなって思ってたんだけど、意外とそういうのを消してくれて、しかもあえて使った部分に関してはこの文のようにちゃんと残しておいてくれる。これは使ってみると意外と便利な機能だと思った。 実際に10分くらい使ってみると分かるんだけど、キーボードで入力するよりも明らかに入力速度が速くて、それがめちゃくちゃ気持ちいい。キーボードで入力したときの文章の精度が100点だとした場合、95点ぐらいの文章が出力されるから、実際にはその5
生活で一番重宝している道具は、ジップロックコンテナかもしれない。 プロテイン・ミックスナッツ・調味料 この1100mLのものを20個ぐらい買って10年ほど使っている。 ジップロックコンテナ 1100mL×10個入 - Amazon 食料品以外にも、固形洗剤や使い捨てのネットの収納などちょっとした消耗品の収納先として、かなり広い用途に渡って活躍している。おかげで一度に使い切れない消耗品を購入するのが苦にならなくなり、生活が至極快適。ジップ付きの袋で販売されているものでも、出し入れや管理のしやすさを考慮して大抵初回開封時にコンテナに詰め込んでいることが多い。 冷凍のネギ・オクラ・ブルーベリー 一人暮らしで自炊をしていると食材が余りがちという問題があるが、うちではその対策として冷凍の食材に大きく依存しており、このときもコンテナが重宝している。こういう構造が無いといちいち細かい食材の残量を気にしな
作業机や椅子やモニターなどを発注した。 2023年頃から二カ年計画で作業机一式の買い替えを検討しはじめて、まずは調査や分析のために机なしのミニマルな環境に移行。その環境で1年ほど過ごして自分に必要な要件を整理し終えたので、今回ようやく発注にまで至った。発注したものや選択にあたって考えたことなんかをそのうち忘れてしまいそうなので、ひとまずここに記載しておく。 天板 PREDUCTS GLOVE 180x75 + PC MOUNT 脚 FLEXISPOT E8 椅子 LibreNovo Omni モニター AOC U27G4XM/11 x2 アーム ERGOTRON LX x2 + ロングポール 天板と脚 当初はかなでもの or PREDUCTSで考えていて、最終的にPREDUCTSのものに決定。 https://kanademono.design/ https://preducts.jp/
使わなくなったGoogle Home Miniを友達からもらったので、寝室に設置することに。 Google Home Miniというのはその昔Googleが無料で配ったり数千円で売ったりしていた所謂スマートスピーカーで、マイクとスピーカーとWiFi接続機能が付いていて、音声で「OK, Google. ...」と指示することで色々操作できるやつ。はるか昔にGoogle Nest Miniというよく似た後継機が出ている。 ここ数年はスマホを寝室に持ち込まなくなり、この影響もあって夜に明るい画面を見ることもなく毎日よく眠れているのだけど、以下のような不便さが残っていた。 寝室でアラームを設定したい 寝室で現在時刻を確認したい スマートスピーカーは眩しい電子機器を寝室に持ち込むことなしにこの辺の問題を解決できる上、その辺の目覚まし時計より優位性もある。例えば「7時間半後に起こして」のように相対時間
2025年の筋トレを振り返る。 今年は以下のような調子で筋トレをやっていた。 2025年01月: なし 2025年02月: なし 2025年03月: 毎日5分 2025年04月: 毎日5分 2025年05月: 毎日5分 2025年06月: 毎日5分 2025年07月: 毎日5分 2025年08月: 毎日5分 2025年09月: 毎日5分 2025年10月: 毎日5分 2025年11月: 隔日20分 2025年12月: 隔日20分 毎日5分時代は自重で腕立て or 腹筋 or 背筋をローテーションしていて、これは少し汗が出る程度で強度は低め。隔日20分時代は同じく自重で腕腹背脚など全身一通りやるメニューをやっており、これは息が上がって汗が流れる程度で強度はやや高め。なお記載外で毎日数分程度のストレッチもやっていた。 「自分はどんなモチベーションでそれをやるのか」という自己認識を持つこととその
複数のGemfileを並行運用する際に便利な情報を幾つか挙げておく。 更新漏れの検知 複数のGemfileを並行運用していると「Gemfile.lockを変更したがもう1つのlockファイルの更新を忘れてしまった」という事態が起き得る。これを避けるために、差分検知を行うworkflowを設けておくと有用である。 以下はr7kamura/gemfile-diffというactionで実現する例: name: gemfile-diff on: pull_request: paths: - Gemfile.lock - Gemfile_rails_8_0.rb.lock jobs: run: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: r7kamura/gemfile-diff@v0 with: gemfile
長年の運用で「Gemfileはこう運用すると上手くいった」という知見が蓄積されてきたので、ここに書き出してみておく。 Bundler/OrderedGemsを有効化する RuboCopの Bundler/OrderedGems Copを有効化する。 悪い例: gem 'puma' gem 'jbuilder' 良い例: gem 'jbuilder' gem 'puma' セクションを分けない 基本的に、独自の判断で空行を入れてセクションを分けたりしない。 ここで言うセクションとは「空行で区切られた1つのまとまり」のことである。Bundler/OrderedGems は、このまとまりの中で辞書順であることを要求する。 悪い例: gem 'aws-sdk-rails' gem 'aws-sdk-s3' gem 'graphql' gem 'graphql-batch' 良い例: gem 'aw
よく考えたら作業机いらなくね?と思い、手放すことにした。「机捨てた」と言うと相手の思考が止まりがちなので、普段は「テレビでパソコンしてる」って説明してる。これが一番伝わりやすい。 現在の作業場 立ち座りしやすく、疲れづらいのがいいところ。あと掃除がしやすい。 トラックボール付きのキーボードが椅子についてて、動画編集やプログラミングなど、意外とこれで十分作業できている。ゲームパッド非対応のPCゲーム等でどうしてもマウスが必要なときは、椅子の隣に袖机的な何かをもってきている。上の写真ではソファの一部を場当たり的にもってきていますね。 この環境で重宝しているものとして、DJI Mic 2がある。これは無線のピンマイクで、Discordや会議なんかで通話するときにワイヤレスイヤホンと併せて使っている。元々カメラの撮影用機材として入手したものだけど、通話用マイクとしても意外と使い勝手が良かった。家の
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パッ
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時まで毎日作業配信をやってみました。
良かったものを年末にまとめる回、2023年版。 上の方が生活用品系で、下の方がPC周辺機器などのガジェット系。 ラブリコと扇風機 脱衣所に大きな扇風機を設置できたおかげで、年中入浴後に快適に過ごせて、お風呂に入るのも楽しかった。入浴は健康に生活を送る上で重要な習慣だと感じているので、今年はそこの快適度を上げる努力をできたのが良かった。ラブリコは、賃貸物件でも問題無く設置できるし、最終的な処分も難しくはないし、自分で自分の環境を良くする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コアに変更した。コア数を2倍にした代わりにマシン数も半分に減らしたので、結果的に費用は変わっていない。 また同時に、8プロセスで並列実行するためにparallel_testsを導入した。このプロジェクトで
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
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
次のページ
このページを最初にブックマークしてみませんか?
『r7kamura.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く