買ったもの

こんにちは、しきゆらです。
今回は、Anker 737 Charge GaNPrime120Wを購入したので簡単にレビューしてみます。

最近充電ケーブルや充電器を選ぶときは、とりあえずAnker選んでおけばええやろ、の精神で買ってしまうので良く無いなぁと思いつつ、丁度ほしいものがあったので購入してしまいました。

それが、737 Charge GaNPrime120Wです。

Rust,プログラミング

こんにちは、しきゆらです。
最近またRustをちょっと勉強しているので、そのメモをちらほら放出しておこうかと思います。

読み進めているのは「手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた」になります。

PythonとRustのコードを比較しながら、Rustの文法や特色についてを解説してくれる本になっています。
いきなり細かい文法をつらつら書かれてもわからないよ!という方やひとまず手を動かしてちょっとずつ書けるようになりたいよ、という方にオススメの本です。
ちなみに、自分は前者であり後者だったので割ととっつきやすく読めています。

ということで、読みながら手を動かした記録を残していきます。
今回はHashMapについて。

なお、この本を読んでメモする記事には「手を動かして考えればよく分かる Rustの書き方」のタグをつけておきます。
私と同じようにRustの勉強を始めた方、気になる方は参考にどうぞ。

JavaScript

こんにちは、しきゆらです。
今回は、Webpackでビルドしたものが出力されるフォルダにできる不要ファイルを削除する方法を知ったのでメモしておきます。

WebpackでJSのコードをビルドしていると、結構な頻度で不要なファイルができたりします。
例えば、デバッグ用に生成したソースマップファイルがそのまま残っていたり、過去に設定を変えてあるところから出力しなくなったファイルが残っていたり等、ビルド先のdistフォルダの中はごちゃごちゃしがちです。
これを何とかしたいなぁ、と思って調べたら簡単に解決できました。

Webpackでこういうことできないかなぁと調べると大抵プラグインが出てきて追加しないといけないことが多く、今回もそのパターンでよくわからないものを追加しないといけないのかなぁ・・・と思っていたのですが、どうも標準機能として用意されているようでした。
ということで結論。

結論: outputの中にclean: trueを追加すればよい

ドキュメントを読むことは大事ですね。
しっかり記載がありました。

こちらによると、ビルドしたものを置くdistフォルダの中身をビルドのたびにきれいにしたい場合はoutput.cleanオプションを使え、とあります。
ただし、この方法が使えるのはWebpack5以降のみなので注意してください。

// webpack.config.jsの一部分
~~~~~~
output: {
   filename: "output.js",
   path: path.resolve(__dirname, "dist"),
   clean: true // この1行を追加すればよい
}

はい、たったこれだけ。
1行追加するだけで、ビルドのたびにdistフォルダの中身をきれいにしてくれるので、過去にビルドした残骸が残ることはなくなりました。

JavaScript,Ruby

こんにちは、しきゆらです。
今回は、flatMapの処理の中で不要な要素が出てきた場合にそれを排除する方法を知ったのでメモしておきます。

結論: 空配列([])を返すと削除できる

こちらのページにある通り、
処理の中で空配列([])を返すと、その要素の処理を削除することができるようです。

let array = [1,2,3,4,5,6,7,8];
array.flatMap( (item) => {
    if (item % 2 === 0) {
        return item * 2;
    } else {
        return [];
    }
})
// => [4, 8, 12, 16]

JavaScript,Linux,環境構築

こんにちは、しきゆらです。
今回は、以前紹介したasdfを使ってNode.jsをインストールし、個人的によく使っているYarnも使えるように環境を作っていきます。

なお、Node.jsのインストールはすぐ終わったのですがYarnのインストールとか諸々に至るまでに紆余曲折ありました。
まずは、インストールして環境構築までの流れをまとめます。
その後に、紆余曲折部分をメモしておきます。
必要なコマンドだけよこせ!という方は、以下の「環境構築の流れ」を参考にしてみてください。

環境構築の手順

コマンド自体の使い方等はそれぞれのツールのサイト等で確認してください。
なお、インストール先はタイトルにある通りWSL2上に動いているUbuntu20.04です。

# node用のプラグインを追加
asdf plugin add nodejs

# nodeをインストール
asdf install nodejs latest

# システム全体で使うバージョンを指定
asdf global nodejs latest

# yarnを使う準備
corepack enable

# asdfの再構築
asdf reshim nodejs

これにて、環境構築は終了です。

yarnの手順が以前とだいぶ変わりましたが、npmで個別にインストールせずにパッケージマネージャを管理する仕組みが入ったようです。
そのおかげで手順がさっぱりしました。

では、前述の通り環境構築の紆余曲折や各ドキュメントを見ながらの細かい話は以下にまとめていきます。

Ruby

こんにちは、しきゆらです。
今回は、Ruby2.7から3.1.2に更新したらいろいろ変わっていたのでメモしておきます。

変わったことに気づいたのは、タイトルにあるrubocopを回したら怒られたからでした。
ということで、怒られたrubocopの項目とRubyの更新点を今更ながら記載しておきます。

Linux,Ruby,Rust,環境構築

こんにちは、しきゆらです。
今回は、だいぶ旬に乗り遅れた感がありますが、言語等のバージョン管理をasdfに乗り換えたので導入方法や使い方をメモしておきます。

導入の経緯

導入に経緯を一応書いておくと、私はPCの組み換えやOS不調等で、結構な頻度でクリーンインストールをします。
そのたびにRubyをインストールするためにrbenvを導入し、Nodeを使うためにnを導入し、ということを毎度行っていました。
この作業をあまり意識せずにやっていたのですが、先日ふと面倒だなと思うようになりました。
というのも、それぞれ年に数回程度の頻度でしかやらないので、毎度インストールするタイミングで調べて手順をなぞる、というのが知識にもならず無駄に時間がかかるだけなのでは、という風に思ってしまいました。
この辺を解決するツールはないのか、調べてみると、今回使った「asdf」というのがあるということを知ったので触ってみた、という感じです。

JavaScript,Windows,環境構築

こんにちは、しきゆらです。
今回は、タイトルの通りWSL2からclaspを使おうとするとofflineと怒られる問題が起こったのでこれを回避する方法をメモしておきます。

気が付くとWSL2からclasp pushをしようとすると、以下のようなエラーが出てしまってプッシュできない状態になっていました。
よくわからないですが、たまにプッシュできたりするので何が悪いのかよくわかりません。
WSLをインストールしなおしたりしても解決しませんでした。
また、調べてもそれっぽい生地が出てこないので「おま環」ぽい気がしています。

さて、これではWSL内で書いたGASをプッシュできません。
これを回避する方法をメモしておきます。

回避方法は単純で、Docker上からclasp pushをするだけ。
調べてみると、結構DockerでGASを管理したい人がいるようで、情報がそこそこありました。
ということで、プロジェクト諸々をDocker上にマウントしてコマンド実行できるようにしていきます。
なお、ここではGASをTypeScriptで書いたのちWebpackでビルドしたものをclaspコマンドでプッシュする流れです。
参考: https://qiita.com/rei-ta/items/61b3fde6a069b77d335d

JavaScript

こんにちは、しきゆらです。
今回は、JS/TS環境でテストを書いて実行できる環境を作る手順をメモしておきます。

個人的に、JSの世界は定期的に天変地異が起こってこれまでデファクト的なツールが使われなくなるイメージがあり、あまり追えていないのが現状です。
そんな中、GASを書くことが増えた影響でJavaScript/TypeScriptを書くようになり、JS側の環境構築をちょこちょこやることが増えたのと、テストを書きたいと思って毎回同じことを調べている気がしたのでここに残しておこう、という魂胆です。

JavaScriptのテストフレームワーク

そもそも、JSのテストフレームワークにはどんなものがあるのか、というところからわからなかったのでちょっと調べてみました。
調べてみると、最近はJestというものが強いらしいです。

参考: https://2021.stateofjs.com/ja-JP/libraries/mobile-desktop/

なお、上記サイトではグラフィカルにJSの環境について知ることができるので、暇な時に見てみると面白いかもしれません。

Windows,フリーソフト

こんにちは、しきゆらです。
最近はコードを書く暇もなく、お仕事を進めているのでブログに書くネタがあまりなく更新できていませんでした。
働かずに生きていきたいと思う今日この頃。

さて、今回はWindows版Alfredぽいランチャー「ueli」を紹介します。
だいぶ前に、Win用軽量ランチャーとして「Keypirinha」を紹介しました。
この記事を書いたときは、ちょうどWindowsとMacを行き来するような形で使っていました。
Macでは標準的についているSpotlightや上位互換なAlfredを使い慣れると、同じようにWindowsでもキーボード操作だけでアプリ起動ができるとうれしいなぁと思いつつそれっぽいアプリを探して見つけたのが「Keypirinha」でした。
一時期はKeypirinhaを使っていましたが、インストール・初期設定が微妙に手間なのがネックでした。
そんな中、使い心地はほぼ変わらず、インストールや初期設定がとても手軽にできるランチャー「ueli」を見つけたので紹介します。