Ubuntu に Edge を CLI でインストールする方法

結論

1. Edge の Insider ダウンロードページに行く

www.microsoftedgeinsider.com

gyazo.com

2. Linux (Debian / Ubuntu) のダウンロードリンクをクリックする

gyazo.com

3. 遷移先のページで「手順を取得する」をクリックする

「手順を取得する」を押し、ライセンスに同意します。

gyazo.com

4. コマンドが現れるので順次入力する

ライセンスに同意するとコマンドが現れますので、順次入力していきます。

gyazo.com

5. インストールが完了する

インストール完了後に以下のコマンドを実行してバージョンが確認できれば OK です。

$ microsoft-edge --version
Microsoft Edge 94.0.992.23 beta

注意点

以下のパッケージソースの記述からも分かりますが、amd64 以外のアーキテクチャではまだ利用できないようです。

deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main

Ruby で URL から正規表現で各種文字列(ファイル名など)を抽出する

結論

RFC3986 に従います(後述)。

たとえば対象とする URL が https://pbs.twimg.com/media/FAlJ_JsUUAAgOSq?format=jpg&name=orig であったとします。そのとき、以下のように抽出できます。

url = 'https://pbs.twimg.com/media/FAlJ_JsUUAAgOSq?format=jpg&name=orig'

/\A(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?\Z/.match(url)

実行結果

実行結果は以下のようになります。

pry(main)> /\A(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?\Z/.match(url)
=> #<MatchData
 "https://pbs.twimg.com/media/FAlJ_JsUUAAgOSq?format=jpg&name=orig"
 1:"https:"
 2:"https"
 3:"//pbs.twimg.com"
 4:"pbs.twimg.com"
 5:"/media/FAlJ_JsUUAAgOSq"
 6:"?format=jpg&name=orig"
 7:"format=jpg&name=orig"
 8:nil
 9:nil>

今回 nil となっている 89 の値には「フラグメント(ハッシュ)」が入ります。https://example.com/foobar#hoge#hoge に当たる部分です。

この例の場合には 8 には #hoge が、9 には hoge が入ります。

背景

RFC3986 に書かれている正規表現をそのまま Ruby で書きました。 datatracker.ietf.org

(補足)ファイル名を取得する場合

ファイル名を取得するには 5 の値を File.basename メソッドに渡します。

url = 'https://pbs.twimg.com/media/FAlJ_JsUUAAgOSq.jpg'
url_path = /\A(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?\Z/.match(url)[5]

File.basename(url_path) #=> "FAlJ_JsUUAAgOSq.jpg"

lsd コマンド (LSDeluxe) のインストール時には master ブランチからインストールしないと theme ファイルが効かない

lsd (LSDeluxe) とは

Rust 製の Alt ls です。「すごい ls」です。

github.com

原則として master ブランチからインストールする

cargo でインストールする際に $ cargo install lsd とすると最新のバージョンが入りません。その結果 theme ファイルが適用されません*1

インストールする際には直接 master ブランチ経由で入れましょう。

$ cargo install --git https://github.com/Peltoche/lsd.git --branch master

補足

設定ファイルの置き場所

設定ファイルは ~/.config/lsd/config.yaml に書きます。拡張子は .yaml ではなく .yaml です

テーマファイルの置き場所

テーマファイルは ~/.config/lsd/themes 配下に置きます。拡張子は .yaml ではなく .yaml です

「拡張子を除いたファイル名」を「設定ファイル」内に記述することでそのテーマが適用されます。

*1:これで小一時間ハマった

Rails のコードの中で突然現れる reset_password_email というメソッドはどこで定義されているのか

結論

Sorcery が定義しています*1

Sorcery とは

公式ドキュメント

*1:Sorcery を使っている場合。使っていない場合にこのメソッド名を使うと将来的に衝突する可能性はあります

Storybook で webpack の output を設定してしまうと正しく表示されない

理由

Storybook の表示に用いられる iframe.html などが output のディレクトリに作られてしまうから*1

具体例

.storybook/main.js に以下のように書くと output のディレクトリが設定されてしまいます。

module.exports = {
  (省略)
  webpackFinal: async(config, {configType}) => {
    config.output = {
      path: `${__dirname}/tekitou`,
    },
  (省略)

*1:設定で変えられるとは思います

Powered by はてなブログ