タグ

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

  • GitHub Codespaces 雑感

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

    mizdra
    mizdra 2023/05/11
    "そもそも環境構築手順が綺麗に整理されていないと、Codespacesにも対応しづらいので、その辺が荒れてると相応に苦労すると思う" / わかる。features は本当にプロジェクト固有のものに絞ると良いなるほど。
  • MacからWindowsへの開発機移行から2年

    開発機を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

  • カスタムCopでリファクタリング

    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を書いて、このコードを自動修正することにしました。詳しい書き方についてはここ

    mizdra
    mizdra 2022/10/12
    実行時の情報をコメントに埋め込んでおいて、それを Cop から参照しにいくの面白い
  • Ruby用VSCode拡張: vscode-ruby-light

    Ruby向けに、vscode-ruby-lightというVSCode拡張をつくっています。この拡張は、利用者に特にRubyのインストール要求することなく、シンタックスハイライトやカーソル操作など、VSCode標準の機能よりちょっと良い編集体験を提供しようという目的の拡張です。 最初は「メソッドやブロックをもう少し上手く選択できるようにしたい」というモチベーションで調べ始めたのですが、気付けば色々な機能を持つVSCode拡張が出来上がっていました。この記事では、幾つかの機能を紹介しながら、関連する話を書いていこうと思います。 Selection Range VSCodeにはExpand Selectionというコマンドがあり、選択範囲を拡大したり狭くしたりできます。このコマンドには、例えばWindowsであればデフォルトでShift + Alt + →にショートカットキーが割り当てられていま

  • リリースノート管理術

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

    mizdra
    mizdra 2022/07/18
    良い。リリースノート自動生成用の GitHub API 便利そう。
  • エディタブ郎

    新規タブをテキストエディタにするChrome拡張、エディタブ郎のご紹介。 拡張をインストールすると、新規タブがテキストエディタへと切り替わります。 機能は次の通り。 テキストをブラウザ内に自動記憶 ダークモード対応 (OSの設定と同期) Markdownを書いたときに色付け Visual Studio Codeで出来ること色々 Slackやメールの下書きとして使うのも良し、やることリストとして使うのもよし。自分も色々な用途で使っています。作業中に思い付いたことをメモしておくとか、買い物リストを書いておくとか、英語でメッセージを書くときに一時的にここに書いて推敲するとか。 新規タブを開いた様子 エディ太郎というMac向けのアプリがあり、エディタブ郎という名前はこれをリスペクトして付けています。Windowsでも使いたいという気持ちと、使うアプリをあまり増やしたくないという気持ちがあり、ブラウ

  • 最近開いたVSCodeのワークスペースを検索して開く

    最近開いたVSCodeのワークスペースを、ランチャーからインクリメンタル検索して開くと便利だという話。 WindowsならPowerToys Runで、MacならAlfred拡張機能で実現できる。例えば "rails" と入力すると、最近利用したVSCodeのワークスペースの中で "rails" を含むものを候補として出してくれる。WSLやSSHで接続するワークスペースもしっかり含めてくれる。 自分はこれまでVSCodeでワークスペースを開くために、まずWindows Terminalを開いてプロジェクトのディレクトリまで (pecoとかghqとかで) 移動して、そこから code . でVSCodeを起動して‥ということを手癖でやっていて、しかも作業中はVSCodeのターミナルを使ったりWindows Terminalを使ったりと、かなり曖昧な状態だった。PowerToys Runから

    最近開いたVSCodeのワークスペースを検索して開く
  • Bring Up My Post

    ソフトウェア開発などでバージョンを上げるときによく "bump version" のように "bump" という語彙が使われるんだけど、これって "Bring Up My Post" の頭字語だったんだ。 つまり、みんなコミットメッセージで「バージョンage」とか言っていたのか。急に在りし日のインターネットに引き戻された感覚だ。 ちなみに、このように完成形の語ありきでつくられた逆頭字語をバクロニム (backronym; bacronym) というらしい。再帰的な頭字語である GNU (GNU's Not Unix) や PHP (PHP: Hypertext Preprocessor) もバクロニムの範疇に入るみたいだ。 『バクロニム - Wikipedia

    Bring Up My Post
  • action_extractor gem

    action_extractorという、Railsでアクションへの入力値を表明するためのGemをつくって試してみている。 https://github.com/r7kamura/action_extractor 使い方 例えば、IDを元にリレーショナルデータベースから記事を1件取得して、その文とタイトルを更新する、というアクションがあるとする。 def update article = Article.find(params[:id]) arttcle.update!(body: params[:body], title: params[:title]) redirect_to article end 今回つくったGemを導入すると、これが次のように書き換えられる。 extract( article_id: { from: :path, schema: { type: 'integer'

    action_extractor gem
  • Weneedfeedの運用小話

    Weneedfeedを運用している中で得られた情報を書き留めておく。 主にGitHub Actionsや、RSSフィードに関する話が多く含まれる。Weneedfeedというのはウェブページからフィードを生成するツールで、これについては過去にも記事に書いた。 GitHub Actions 「GitHubのリポジトリにYAMLファイルを置くだけでフィード群が用意される」という状態を実現するために、GitHub Actionsを使っている。具体的には、次の処理を定期的に実行している。 YAMLに記載された情報を元にフィード群を生成する gh-pagesブランチにpushする この内、1の処理をやるためにweneedfeed-actionを用意している。2の処理はactions-gh-pagesでやっている。GitHub Actionsにcrontab形式でスケジュールを指定する仕組みがあるので、

    Weneedfeedの運用小話
  • Weneedfeed

    ウェブページからフィードを生成するweneedfeedというツールをつくった。 使い方 このツールはRubygemとして実装されているので、Rubyがインストールされている環境が必要になる。ツール自体はgem installでインストールできる。 gem install weneedfeed 利用者には、URLとCSSセレクタをweneedfeed.ymlというYAML形式のファイルに書いてもらうことになる。例えばこのウェブサイト、r7kamura.comの新着記事のためのRSSフィードを生成しようとすると、こんな内容になる。 pages: id: r7kamuracom title: r7kamura.com url: https://r7kamura.com/ item_selector: li item_description_selector: p:nth-child(3) ite

    Weneedfeed
  • シャンプーとかを壁に吊る

    浴室の掃除を楽にするために、シャンプーとかを壁に吊ることにした。 試行錯誤して吊っている様子 この辺のものを使うことにした。 山崎実業のマグネット式のタオルハンガー トスレのボトルハンギングフック 無印良品のPET詰替ボトル 無印良品の化粧水 最近の浴室は、壁面に磁石を付けられるようになっていることが意外と多い。トスレのフックは、セリアに行ける人であればそこで買うほうが安く手に入れられるかも。無印良品は、最近になってAmazonでの販売もはじまったけど、まだまだレパートリーが少なかったり、値段設定が高かったりしてなかなか難しい。 泡タイプの洗顔料だけボトルの口径が異なるので、あまり上手くいっていない。何か良い案があれば教えてほしい。スプレータイプの化粧水は、こういうところに雑に引っ掛けられるので便利。化粧水がなぜ洗面台ではなく風呂場にあるのかという謎は残るが、現状そういう運用になってしまっ

    シャンプーとかを壁に吊る
    mizdra
    mizdra 2020/10/13
  • 個人サイトについて

    なぜ個人でウェブサイトを運用しているのかについて、整理しておきたい。 要約すると、以下の理由でやっている。 ウェブの技術を学べて費用対効果が高いから 表示されるコンテンツを制御したいから フィードバックの場と適切な距離を置きたいから かっこいいから コスパが高い 個人でウェブサイトを持って運用していくことは、学習意欲の高い多くの人にとって費用対効果の高い活動だと思う。 ほとんどの技術が無料で利用できる時代になってきているので、ここで言う費用というのは時間や労力のことで、効果というのは得られる知識のこと。その仕組みを用意するにあたって、ウェブサイトというものがどういう仕組みで動くかということが、一通り理解できる。この辺の分野を職とするような人であれば、こういうことは最低限理解しておいてほしいし、何なら採用面接でもこういったことを質問する・される機会がある。 学習コストについて述べたけれど、

    個人サイトについて
  • 1