サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
中東情勢
r7kamura.com
手持ちのガジェットを染めQで染めた。 今回染めたもの 染める前 今回染めたのは、AnkerのiPhone充電スタンド。 「色数を抑えろ」というのは、グラフィックデザインであってもインテリアデザインであっても、基本中の基本としてよく語られている。自分の作業机でも、使う機器を黒色に統一するよう心掛けている。例えば、黒のNintendo Switchを選ぶとか、黒のマウスパッドを選ぶといったような具合。 色数が抑えられていると落ち着く しかし、一昨年購入したAnkerの充電スタンドには白のものしか無かったので、統一感が無く目立ってしまっていた。このデバイスはアクセントカラーを入れて目立たせたいような存在ではないので、できれば周りの色と合わせて溶け込ませたい。AirPodsケースは市販のカバーが沢山存在しているので、見た目は変更可能だが、充電スタンドはどうしようもない。 充電スタンドが白くて若干目
RailsのDeprecation Warningの出力手段を好きにカスタマイズする方法について。 config.active_support.deprecation Railsはその機能について破壊的な変更を入れるとき、まず「次のマイナーバージョンでこの機能を廃止するよ」という警告を出すように計らってくれている。この警告は常に ActiveSupport::Deprecation の機能を使って出力される。 Railsアプリの設定で、次のような項目を見たことがないだろうか。 config.active_support.deprecation = :notify 例えばこの設定をした場合、Railsは起動時にこの設定値を見て、ActiveSupport::Deprecation.behavior = :notify みたいなことをしてくれる。ActiveSupport::Deprecati
筋トレを二ヶ月ほど継続できたので、初動のあれこれを書き留めておく。 普段やっていたもの 次の種目のうちから、一日二種目ぐらい選んでやっていた。 腹筋ローラー 懸垂マシン: 懸垂 懸垂マシン: レッグレイズ 動画を見ながらやる: プランク 動画を見ながらやる: 腕立て伏せ 動画を見ながらやる: スクワット 最初の二週間ぐらいは、一日一種目だけだった。最初は一種目やっただけでアホみたいに全身痛くてしばらく動けなくなったりしていた。それが適切だったと思うし、そこで無理して更にやらなくて良かったと思う。毎度やってるとそのうち「スクワット終わったのに歩けてて何かおかしいな」みたいな感覚が訪れるので、そういう段階でメニューや目標を変えていた。 同じ部位を毎日鍛えようとしても上手くいかないことが多かったので、身体の部位を上・中・下の三つに分けて、重点的に鍛える箇所を日ごとに変えながらやっていた。 上:
RuboCopをGitHub Actionsで使うならGitHubActionsFormatterが便利。 Workflow commands形式で出力してくれるので、GitHub Actionsが勝手にそれを拾ってPull Requestだと自動的に変更行に注釈を付けてくれるし、Checksの項目にもエラーと警告の一覧が出力される。 但し、この出力形式は主に機械が便利にキャプチャするためのものなので、人間がログを直接見るときには不都合なことが多い。例えばGitHub Actionsのログでは、Workflow commandsが使われたとき、色を付けたりしてくれるもののファイルパスや行番号を隠してしまう。問題のあったファイルパスを知りたいのに、これは問題だ。 rubocop –format progress –format github と複数指定し、人間用と機械用の両方を同時に出力させ
おすすめの椅子のまとめ。 私の椅子、ですわ 壱百満天原サロメさんによる疲れにくい椅子を募集するツイートに寄せられたリプライと引用を読み、紹介されていた椅子を幾つかのカテゴリに分け、言及数の多かったブランド順に整理してみました。 オフィスチェア ハーマンミラー - アーロンチェア ハーマンミラー - エンボディチェア ハーマンミラー - セイルチェア オカムラ - シルフィー オカムラ - コンテッサII オカムラ - バロン オカムラ - CG-M エルゴヒューマン - プロ エルゴヒューマン - ベーシック エルゴヒューマン - WINcase イトーキ - サリダ YL9 イトーキ - エフチェア イトーキ - カシコチェア イトーキ - アクトチェア Steelcase - ジェスチャー Steelcase - リープ コクヨ - ing コクヨ - Duora ウチダ - パルスチ
使っている寝具を振り返ってみる。 「マニフレックスの枕をお使いとのことでしたが、何というモデルですか。あとマットレスとベッドフレームも良かったら教えてください」という質問を、r7kamuraのマシュマロ宛にいただいたのがきっかけ。 枕 自分の枕遍歴は次の通り。 パイプ枕 テンピュールの枕 無印良品の何らかの枕 マニフレックスのグランデ マニフレックスのグランデは、ふかふかで使いやすい万能モデル。高反発枕界の中では比較的柔らかめで、形状が固定されていない。ふつうの枕からの乗り換え時に大きな違和感が発生しづらい。ちょっと良い枕が気になっている人におすすめ。 最初にマニフレックスの枕に興味を持ったのは、Sanographix氏のブログ記事で言及されていたのがきっかけ。その後ロフトで見る機会があり、欲しいなと思ってほしいものリストに入れていたら、京都に引っ越したときに友人から送っていただいた。それ
YARDのアノテーションを元にそこそこ便利な説明や補完機能を提供してくれるSolargraphを、Gemfileに含めずこっそり使いてえ……しかもDocker環境で……という人向けの情報。 一番の問題として、gem install solargraph でsolargraph gemを入れたい訳だけど、揮発しないように工夫が必要になる。 一般的なRuby向けのDockerfileの構成だと、bundle install で入れるGemだけをdata volumeで永続化していることが多い。よく見るパターンは、vendor/bundle または /usr/local/bundle にdata volumeをmountするようdocker-compose.ymlで設定し、加えてこのパスを BUNDLE_PATH に設定するパターン。これに加えて例えば GEM_HOME も同じパスに設定しておく
いま使っているiPhoneをウェブカメラとして使うべく、EpocCamとiVCamの無料版と有料版をそれぞれ試した。 用途は作業配信とビデオ会議。逆光や暗所に弱いところに不満を感じていた。 EpocCam CORSAIR社傘下のElgatoがつくっているアプリ。 無料版で、ロゴ (透かし) も入らず、FullHDで配信できる。2022年時点では明るさの調整ができなかったが、2023年時点では出来るようになっていた。個人的には最もおすすめ。普段はロジクールのC980GRというウェブカメラを使っていたが、このアプリのおかげでiPhoneで置き換えられるようになった。 iVCam 無料版は広告が入り、色々と体験が悪い。有料版は買い切りではなく年単位での課金。2022年時点では明るさが調整できる貴重なアプリだった。2023年時点ではEpocCamの方が色々と上回っているので、個人的にはおすすめしな
毎時00分から50分まで作業して、50分から00分まで雑談休憩する、という作業配信を始めてから31日経った。 作業時間の中では、色々つくったり、学んだり、変えたり、新しいことを始めたりした。 開発: GitHub Issuesでブログを書くやつ 開発: Googleドキュメントでブログを書くやつ 開発: RuboCopの .rubocop_todo.yml を自動で解消するやつ 開発: Gemfileの差分を検知するやつ 開発: 見てるページをリッチテキストでコピーするChrome拡張 開発: 見てるページをMarkdownでコピーするChrome拡張 開発: Twitterにショートカットキーを追加する拡張 開発: TweetDeckにショートカットキーを追加する拡張 開発: Twitterのおすすめコンテンツを非表示にする拡張 開発: AmazonのURLを自動的に正規化する拡張 開発
TweetDeck Shortcut Plusという、TweetDeckに便利なショートカットキーを追加するChrome拡張をつくった。この記事では、追加される操作や利用シーンなどを紹介する。 別のタブで開くやつ 別のタブで開く系の操作。 別のタブで投稿を開く 別のタブで投稿をバックグラウンドで開く 別のタブで投稿者を開く 別のタブで投稿者をバックグラウンドで開く 別のタブで投稿に含まれるリンクを開く 別のタブで投稿に含まれるリンクをバックグラウンドで開く 別のタブで投稿に含まれる画像や動画を開く 別のタブで投稿に含まれる画像や動画をバックグラウンドで開く 投稿中で言及されているリンクをあとで見るために別タブで開いて溜めておいたり、画像をオリジナルのサイズで見るために別タブで開いたり、動画を直接MP4ファイルとして開いたり、といった用途で便利に使える。 選択するやつ マウスでクリックするの
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のコントロー
copy-markdown-linkという素朴なChrome拡張のコミットログを追いかけて、Chrome拡張のつくりかたを学ぼう。 つくるもの 拡張のアイコンをクリックするかショートカットキーを押すと、Markdown形式でリンクをコピーする、という拡張をつくる。 node -v 念のため、Node.jsのバージョンを確認しておこう。Node.js 18.0.0を使っているが、もう少し古くても多分大丈夫。 $ node -v v18.0.0 $ npm -v 8.6.0 npm init vite@latest npm init vite@latest で雛形をつくる。 npm init vite@latest cd copy-markdown-link 雛形生成時に幾つか質問されるので、次のように入力した。React等は不要で、TypeScriptで書く。 Project name: c
.rubocop_todo.ymlを解消するPull RequestをGitHub Actionsで自動生成する (前編) 前編ではr7kamura/rubocop-challengeというCustom Actionの話をし、後編では再実装したr7kamura/rubocop-todo-correctorというCustom Actionの話をする。 ただ開発しているだけで、.rubocop_todo.ymlはそこ此処に積もる。たまに慈善活動的に解消してPull Requestを出したりもする。しかし人力でやっているとキリがない。この作業を自動化したい。こういうときに便利な、rubocop_challengerというGemがある。 便利なGemだが、設定しようとすると幾つかハマりどころがあり、導入が大変。そこで、簡単に導入できるようにr7kamura/rubocop-challengeという
数年ぶりに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
ストレスレストーキョーというリクライニングチェアを、作業用に使っている。 温泉施設や宿泊施設などによく、リクライニングチェアやマッサージチェアが置かれていると思う。これに座ると体力が回復する。使用感としては、あれに近い。 この椅子は座っているだけでHPが徐々に回復していくので、これで作業しているとほぼHPが減ることがない。例えば10秒あたり400のダメージを受ける作業をしていても、この椅子に座っていると10秒あたり600ぐらい自動回復していくので、何時間作業しても倒れることはない。 リクライニングチェアを作業に使うために、幾つか工夫している点がある。 画面の位置が適切になるように、ディスプレイアームを使って調整している。色々と試した結果、湾曲ワイドディスプレイを上下に並べる配置に落ち着いた。ディスプレイアームについては『エルゴトロン LX デュアル』 という記事にも書いている。手前方向にデ
このウェブサイトの記事もGoogleドキュメントで書けるようにした。 以前Googleドキュメントでブログを書くという記事で紹介した方法が実用段階になったので、同じ仕組みをこのウェブサイトにも導入した。実装方法は単純で、1時間ごとに https://github.com/r7kamura/google-docs-to-github を呼び出すことで、 https://github.com/r7kamura/r7kamura.com のgoogle_docsディレクトリにMarkdownファイルをPushしている。 以前記事で紹介したときから改善を加えて、画像や図表、数式などの埋め込みにも対応した。 Points scored このように、グラフも簡単に埋め込める。 画像もこの通り。Googleドキュメントでは、画像をファイルやクリップボードから持ってくることもできるし、Googleフォトと
GitHub Issuesで記事を書けるブログシステムをつくった。 https://github.com/r7kamura/gialog (ソースコード) https://r7kamura.github.io/gialog-example/ (デモサイト) 使い方 READMEの手順に従って「Use this template」から新しいリポジトリをつくると、数分後にGitHub Pagesでブログが公開される。新しくIssueをつくると、数分後にそれが記事として公開される。 見た目を変更したいときは、リポジトリのソースコードを直接編集する。このブログはNext.jsでつくられていて、ソースコードもチュートリアルに出てくるような簡単なものになっている。デフォルトだとブログタイトルが「My blog」になっているので、まずはここを変更することから始めるのが良いと思う。 なぜつくったか 簡単に
Googleドキュメントで記事を書けるブログシステムをつくった。 https://github.com/r7kamura/godolog (ソースコード) https://r7kamura.github.io/godolog-example/ (デモサイト) 使い方 次の手順で、GitHub Pagesでブログを公開できる。 GitHubでテンプレートから新しいリポジトリをつくる Google CloudでサービスアカウントとOIDCの設定をする Google Driveでフォルダをつくりサービスアカウントと共有する GitHubでOIDCの設定値をSecretsに保存する GCPの設定が難しいと思うので、gcloudコマンドを利用して全てを用意するスクリプトをGistに用意してみた。gcloudを利用できるようにして、冒頭の部分を適当な値で埋めると実行できる。Secretsに設定すべき値
その時代だからこそ現実的に学べる技術、というものがあると思っている。 例えば自分はRuby on Railsという技術についてここ10年でそこそこ学べた。しかしこれは、それを学び始めたばかりの人でも大きく役に立てる仕事がたくさん存在していた時代に、たまたまそれに興味をもっている者がそこに居合わせたから学べたのであって、いま例えば2022年にRailsを学ぼうとしても、同じように順当にはいかないと思う。 もう少し掘り下げて言うと、機運の訪れていないとき、言い換えると社会的需要のないときにそれを学ぼうとしても誰かに貢献しづらく、経済的に成り立ちにくいし、モチベーション的にも成り立ちにくい。ただ純粋に何かを学ぼうとしても現実的にはなかなか成功させづらくて、「何か貢献できるものをつくりながら学べるき環境がそこにあるか」ということまで考えないといけない難しさがある。 何かこういう、いつでも漕ぎ出せる
keep-main-version-branchというGitHub Actions Workflowを用意したので、これについて説明しておく。 GitHub Actionsを公開するときの文化として、v2やv3のように、メインバージョンの最新版にアクセスできるGitのrefを提供しておくという慣習がある。例えば、コードをcheckoutしてくるための公式GitHub Action actions/checkoutでは、uses: actions/checkout@v3 のように利用しろと説明されている。v3という名前付きのrefをつくる方法としては、v3ブランチをつくる、またはv3タグをつくる、という二種類の方法がある。 自分も次のように幾つかのGitHub Actionsを保守しているが、このメインバージョンのrefを維持する作業がリリースのたびに面倒だった。これを自動化したかったので、
今月もRailsアプリをひとつ7.0に上げようと思って作業していたところ、どうも #notice というアクションを使って実現されているエンドポイントがRails 7.0で動かないということが分かった。調べてみると、次のPull Requestでの変更が原因であることが分かった。 https://github.com/rails/rails/pull/42768 Rails 7.0未満だと #alert や #notice という名前のアクションを利用できるが、Rails 7.0に上げるとこれが動かなくなるという話。Railsのコントローラーにはflashという機能があって、flash[:alert] や flash[:notice] という風にアクセスして使えるんだけど、このalertやnoticeという語が登録制になってて、登録時についでに #alert や #notice というメソ
ゲーム『ELDEN RING』のLv1での攻略を終えたので、少し振り返ってみる。 概要 今回の旅のねらいは、次の通り。 1周目の普通の攻略で使わなかった武器を試したい ボスの動きをしっかりと研究して楽しみたい 強敵を楽に倒せる真似しやすい方法を模索したい 持たざる者としてロールプレイをしたい そこで、次のような縛りで遊んでいた。 Lv1 遺灰禁止 召喚禁止 霊薬禁止 防具禁止 大ルーン禁止 ノーダメージでボス撃破 全体を通して遊んだ時間は100時間程度。ちなみにマレニアで20時間遊んだ。 感想 1周目にも増していろんな要素を楽しめ、ねらいは大成功。最初から最後まで終始楽しい旅だった。 Lv1の可能性は想像以上に奥深かった。例えば、ステータスを伸ばすタリスマンは序盤から少し馬を走らせれば拾え、どのステータスも15程度は確保できる。今回は使わなかったが、大ルーンや霊薬、防具を使えば更に伸ばせる
Ruby向けのDockerイメージで使いがちな環境変数について整理する。 GEM_HOME RubyGemsに対して、どのディレクトリにGemをインストールするかを指定する環境変数。例えば gem install foo を実行すると、この環境変数で指定したディレクトリにfoo gemがインストールされる。 Dockerでありがちな作戦として、/gem のような適当なパスにデータボリュームをマウントしておいて、そこにGemを永続化させておくというのがある。このときGEM_HOMEを /gem に指定しておくと、gem install bundler を実行したときそこにBundlerがインストールされ、更に /gem/bin/bundle も用意される。 BUNDLE_PATH Bundlerに対して、どのディレクトリにGemをインストールするかを指定する環境変数。例えば bundle i
GitHub Actionsで、変更されたファイルに応じて処理を切り替える方法について整理する。 ここでは「Pull Requestで、Gemfile.lockや.rubocop.ymlに変更があった場合はすべてのファイルに対してRuboCopを実行し、それ以外の場合は変更のあったRubyのファイルに対してRuboCopを実行する」という例を考えてみる。 name: rubocop on: pull_request: jobs: rubocop: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - uses: ruby/setup-ruby@v1 with: bundler-cache: true - id: changed-files uses: tj-actions/[email
GitHub Actionsが不調なときにPushすると、後で回復してもワークフローが実行されなかったりする。これだと記事を投稿しても反映されなかったりして困るので、手動でも実行できるようにした。 ワークフローの定義に、workflow_dispatchイベントに対応していることを明記するだけで良い。 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 67d24e3c..e431c5c6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,6 +4,7 @@ on: push: branches: - main + workflow_dispatch: jobs:
ソフトウェア開発などでバージョンを上げるときによく "bump version" のように "bump" という語彙が使われるんだけど、これって "Bring Up My Post" の頭字語だったんだ。 つまり、みんなコミットメッセージで「バージョンage」とか言っていたのか。急に在りし日のインターネットに引き戻された感覚だ。 ちなみに、このように完成形の語ありきでつくられた逆頭字語をバクロニム (backronym; bacronym) というらしい。再帰的な頭字語である GNU (GNU's Not Unix) や PHP (PHP: Hypertext Preprocessor) もバクロニムの範疇に入るみたいだ。 『バクロニム - Wikipedia』
最近開いたVSCodeのワークスペースを、ランチャーからインクリメンタル検索して開くと便利だという話。 WindowsならPowerToys Runで、MacならAlfredの拡張機能で実現できる。例えば "rails" と入力すると、最近利用したVSCodeのワークスペースの中で "rails" を含むものを候補として出してくれる。WSLやSSHで接続するワークスペースもしっかり含めてくれる。 自分はこれまでVSCodeでワークスペースを開くために、まずWindows Terminalを開いてプロジェクトのディレクトリまで (pecoとかghqとかで) 移動して、そこから code . でVSCodeを起動して‥ということを手癖でやっていて、しかも作業中はVSCodeのターミナルを使ったりWindows Terminalを使ったりと、かなり曖昧な状態だった。PowerToys Runから
まだAppleに破壊されていなければ、次のリンクから導入できる。 https://www.icloud.com/shortcuts/b036fc2f850c4de496c65eb6eb72f90e 導入すると、SafariやChromeなどのアプリケーションでページを閲覧中に、iOSの共有ボタンから選択できるようになる。現在のSafariで言うと画面下部中央のボタン、Chromeで言うと画面上部のロケーションバー右側のボタンだ。手元ではiOS 15.1.1で動作を確認した。 同じ目的のものを過去にkkosugeさんが『iPhone でWebページのタイトルとURLを一発でコピーするショートカット』という記事で紹介していたが、意図通り動かなくなっていたので、今回新たにつくり直すことにした。ここで公開されていたものでは、URLから「名前を取得」というアクションを利用してタイトルの取得を試みてい
良かったものを年末にまとめる回、2021年版。 LGの65型有機ELテレビ https://www.amazon.co.jp/dp/B0924TFQBZ 大型テレビが生活様式を一気に塗り替えた。テレビ放送は見ていない。YouTubeやNetflix、Amazonプライムビデオを見たり、PCゲーを映してやったりしている。『LGの65型有機ELテレビ』と『LGのテレビの使い心地』という記事でも言及した。 LGのテレビはソフトウェアも出来が良い。できそうなことは大体できる。AirPlayできるし、Chromecastもでるし、PCの外部ディスプレイとして無線接続もできるし、Google Homeとの連携もできるし、無線ヘッドホンとの接続もできる。できなくて困ったことがほとんど無い。 「55型にしたが65型でも良かったかも」と言っている人をよく見ていきたので、あまり深く考えずに65型にした。これだ
次のページ
このページを最初にブックマークしてみませんか?
『r7kamura.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く