タグ

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

  • GitHub Codespaces 雑感

    GitHub Codespacesをちょっと試した。 初期導入時にハマりどころも多いけど、真面目に設定しておけば、普通にCodespacesの環境だけで開発することは十分できそうだなと感じた。リポジトリ単位で環境を用意するのが基で、多くのリポジトリに対して毎日のようにレビューをしたりPull Requestを出したり、みたいな開発フローには綺麗にはまらないと思うけど、普通に仕事で単一のリポジトリに対してだけ作業する用途であれば上手くはまると思う。Zoomで会議しながら重い処理を実行していても影響が無いのは良かった。Zoomで会議しながら重い処理を回すべきではないという意見もある。 Codespacesの利用の流れ Codepsacesを利用するときの流れについて。まず、予め .devcontainer/devcontainer.json を配置したリポジトリを用意しておく。Codespa

    Sixeight
    Sixeight 2023/05/10
    “使っているエディタがVSCodeじゃないけどCodespacesを使いたい人は、諦めてVSCodeに移行する。”
  • 良かったもの2022

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

    Sixeight
    Sixeight 2022/12/27
  • 良かったゲーム2022

    2022年にやって良かったゲームを振り返る。 一番良かった作品 ELDEN RING 期待の大作として登場し、その期待を更に超える出来だった。戦技の大幅強化とオープンワールド化により、難解なストーリーやボス戦を辿らずともただ世界を探索しているだけで楽しめるようになり、初心者への裾野も広がった。しかしロールプレイや縛りプレイでの難易度の高さはしっかりと保証され、根幹となるストーリーも考察しがいのある良い内容だった。文句無しの2022年優勝作品。 自分の遊び方はというと、1周目はしっかりと全探索し、2周目は2時間ほどでサクッと終わらせ、3周目はLv1で苦労しながらやりきった。1周目の感想は『ELDEN RING』、Lv1での感想は『ELDEN RING Lv1の旅を振り返る』という記事に書いている。 良かった作品達 他に2022年にやった中で良かった作品達を挙げておく。作品名の表記はSteam

    Sixeight
    Sixeight 2022/12/25
  • 1Password 8 for Windowsでワンタイムパスワードをコピーするショートカットキーが動かない件

    Sixeight
    Sixeight 2022/07/29
  • リリースノート管理術

    みなさま、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に似た形式で変更内

    Sixeight
    Sixeight 2022/07/18
  • SolargraphをDocker環境でこっそり使う

    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 も同じパスに設定しておく

    Sixeight
    Sixeight 2022/06/11
  • スマホのウェブカメラ化

    いま使っているiPhoneをウェブカメラとして使うべく、EpocCamとiVCamの無料版と有料版をそれぞれ試した。 用途は作業配信とビデオ会議。逆光や暗所に弱いところに不満を感じていた。 EpocCam CORSAIR社傘下のElgatoがつくっているアプリ。 無料版で、ロゴ (透かし) も入らず、FullHDで配信できる。2022年時点では明るさの調整ができなかったが、2023年時点では出来るようになっていた。個人的には最もおすすめ。普段はロジクールのC980GRというウェブカメラを使っていたが、このアプリのおかげでiPhoneで置き換えられるようになった。 iVCam 無料版は広告が入り、色々と体験が悪い。有料版は買い切りではなく年単位での課金。2022年時点では明るさが調整できる貴重なアプリだった。2023年時点ではEpocCamの方が色々と上回っているので、個人的にはおすすめしな

    Sixeight
    Sixeight 2022/06/06
    スマホすごい
  • 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

    Sixeight
    Sixeight 2022/05/08
  • RubyのDockerイメージでよく使う環境変数

    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

    RubyのDockerイメージでよく使う環境変数
    Sixeight
    Sixeight 2022/04/03
  • GitHub Actionsで変更ファイルに応じた処理

    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で変更ファイルに応じた処理
    Sixeight
    Sixeight 2022/03/31
  • Slimcop

    SlimテンプレートにRuboCopを適用するツール、Slimcopをつくった。 https://github.com/r7kamura/slimcop 使い方 基的には、RuboCopと同じような機能をSlimテンプレート向けに提供するツールとなっている。SlimcopはGemとしてインストールでき、CLI向けに slimcop というコマンドを提供する。実行すると、Slimテンプレート中に埋め込まれたRubyのコードを検出し、それらに対してRuboCopで検査を実行する。また特徴的な機能として、auto-correctにも対応している。 $ slimcop --help Usage: slimcop [options] [file1, file2, ...] -a, --auto-correct Auto-correct offenses. -c, --config= Specify

    Slimcop
    Sixeight
    Sixeight 2021/12/29
  • 2021年の振り返り

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

    2021年の振り返り
    Sixeight
    Sixeight 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でサイトを再実装
    Sixeight
    Sixeight 2021/11/08
  • 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をグループ化
    Sixeight
    Sixeight 2021/10/11
  • 作業机の配線整理

    作業机の配線を整理した。 前の物件から引き継いだレースカーテンの尺が足りていない 机までの配線 以下のような必要なケーブルを、ラグの下を経由して机の足元まで配線している。厚めのラグを作業机の下に敷いておくとこういう配線が楽になる。 電源タップ用の電源ケーブル 無線LANルーター用のLANケーブル プロジェクター用のHDMIケーブル 電源タップ ケーブルトレーに入れるより設置する方が色々取り回しやすい マグネットシートを使って電源タップを机に取り付ける。 自分の作業机は脚が金属製なのでそこに取り付けたが、机の天板にマグネットシートを貼ってそこに取り付けても良いと思う。ACアダプタを沢山付けても動かない程度には強力にくっついてくれる。エレコムのこの電源タップはACアダプタを付けやすく、シンプルで使いやすい。 Amazon.co.jp - エレコム 電源タップ 6個口 2m Amazon.co.

    作業机の配線整理
    Sixeight
    Sixeight 2021/01/28
  • Amazon URL Shortener

    Amazon URL ShortenerというChrome拡張をつくった。 これを入れると、Amazonの商品ページにアクセスしたときに、ロケーションバーに表示されるURLを自動的に短いものに書き換えてくれる。商品のURLを共有するときに、長ったらしいURLにならずに済んで嬉しい。 開発の背景 実はAmazon URL Modifierという前身となるChrome拡張を2013年頃からつくっていた。 Amazon URL Modifier Amazon URL ModifierのHTTPS対応 今回ひさしぶりに見直して、不要な機能を取り除いて名前を変えたり、日以外の18地域用のAmazonのサイトにも対応したり、申請用の画像やテキストの管理体制を整えたりして、最終的にChromeウェブストアに公開するに至った。 いろいろなAmazon 対応も簡単そうだったので、今回を機にamazon.c

    Amazon URL Shortener
    Sixeight
    Sixeight 2020/11/22
  • GistでGemを公開

    Gistにファイルを置くだけで、Gemとして公開できる。 最小構成だと、gemspecとソースコードをGistに配置すれば良い。 Gem::Specification.new do |spec| spec.name = 'my_gem' spec.version = '0.0.1' spec.authors = ['Your Name'] spec.email = ['[email protected]'] spec.summary = 'Summary of this gem' spec.files = ['my_gem.rb'] spec.require_path = '.' end # ここに好きなコードを書く 使う側では、gitプロトコルでGistのGitリポジトリとしてのURLを指定すれば良い。 gem 'my_gem', git: 'https://gist.github.co

    GistでGemを公開
  • かなでものの机

    20年ぶりに机を新調した。 かなでものの、幅180cm・奥行80cmのラバーウッドの天板と、X型の脚を組み合わせた。脚の形状が可愛いのが気に入っている。杉無垢材かラバーウッドかで迷ったが、落ち着いた見た目と硬い表面の使い勝手を優先し、ラバーウッドの天板を選択した。 天板の加工が優れていて、思っていたより表面や角のさわり心地が良い。購入前は少し大きすぎるかもしれないと思っていたが、使ってみるとそういうこともなかった。机が大きいと満足感がある。 これまで使っていた机 これまではGarageのFantoniという机を2枚繋げて使っていた。20年使ったが、丁寧に使えばもう20年ぐらいは使えたと思う。引っ越しが多く、分解・組み立て作業や頻繁な移動を繰り返したこともあり、流石に脚の接合部のガタつき方が怪しくなってきていた。 今回新しい机を一緒に組み立てるぞという名目でひさしぶりに友達を召喚できたので、

    かなでものの机
    Sixeight
    Sixeight 2020/10/09
    私も愛用しています
  • Windowsへの回帰

    開発環境をMacからWindowsに切り替えたことについて、実際どうですかと聞かれることが何度かあったので、そのときも話した現在の所感みたいなものを書き残しておく。 結論すると、移行後の環境をかなり気に入っている。 1996年のカリフォルニア州 2~3日は主にメタキー周りのキーバインドや見てくれの違いに戸惑い、幾らか離脱症状が出たものの、1週間もすれば流石に慣れてきて、最終的に、個人の用途ではMacを全く触らなくなった。開発環境がMacを前提としている仕事先があったり、貸与されたPCで作業する仕事先があったりするので、完全に触っていない訳ではない。 よくよく比較してみると、あると嬉しい便利機能がOSから提供されていることが多くて、これは意外なところだった。例えば、クリップボードの履歴を残しておいて呼び出せるようにする (Windows + Vキー) とか、ぶっ壊れたときに少し前の状態に戻す

    Windowsへの回帰
  • Rails 設計 最強

    自分が目指したいRailsアプリの形とは何か、ということについて考えていた。 常日頃から考えていたRailsアプリでの不満をこの議論に合流させた結果、「Rubyを書くときに当たり前にやるようなことを、Railsアプリを書くときでも当たり前のようにやる」というところが肝で、自分が目指したいRailsアプリの形はその先にあるのではないか、と一旦結論付けてみることにした。 「普通にRubyでコードを書くときはやらないけど、Railsだったらこう書く」という何かが存在していることが、さまざまな失敗の原因をつくっていると思う。 RubyRailsが地続きに繋がっていないというか、どこかで断絶があり、そこから筋の悪い設計が生まれている ―あるいは持ち込めるはずの良い設計を持ち込めていない― のではないか、という話。 実際にはどの辺りが気になっているのか?という例を挙げると、氷山の一角を指摘するだけな

    Rails 設計 最強