サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
円安とは
obel.hatenablog.jp
結論 ない*1。 参考 github.com 代替手段は 代替手段は上記の Issue のとおりで n を用いる。 n lsr を実行すれば最新のバージョン一覧は得られるので、npx 経由で実行すれば一発で表示させることはできる。 $ npx n lsr Listing remote... Displaying 20 matches (use --all to see all). 19.9.0 19.8.1 19.8.0 19.7.0 19.6.1 19.6.0 19.5.0 19.4.0 19.3.0 19.2.0 19.1.0 19.0.1 19.0.0 18.16.0 18.15.0 18.14.2 18.14.1 18.14.0 18.13.0 18.12.1 ただし n は Node.js のツールなので、Yarn などは表示できない。 *1:2023/04/18 現在
結論 検索ボックスの右側にある 3つ のボタンのうち、真ん中のボタンを押して有効化します。次の画像のとおりです。 gyazo.com 補足 さらに、大文字小文字も完全一致させたい場合には、一番左のボタンを押して有効化します。 備考 正規表現ではうまく一致しなかった?っぽいのですが、正規表現で検索できたとしても、こちらの方法のほうが確実でしょう。
結論 iTerm2 の以下の部分の設定を変更する。 iTerm2 => Preferences => Profiles => Terminal => Environment*1 => チェックを外す 補足 この設定をすると、iTerm2 上で日本語を入力や表示をするときに以下のように化けることがあります。 $ <00e3><0081><0082><00e3><0081><0082><00e3><0081><0082> こうなってしまっている場合は環境変数(シェルの設定ファイル)に以下の変数を追加します。 export LANG="ja_JP.UTF-8" 補足 「macOS Mojave 10.14 に上げたら」というのは原因でない可能性があります。 *1:下にスクロールしないと見えないので注意してください
原因の一つとして考えられるもの id を明示的に指定してレコードを作成した履歴がありませんか? seed のデータを投入する場合にやりがちです。 たとえば、以下のようにして user のレコードを作った場合です。 User.create( id: 100, name: 'taro', age: 24 ) なぜエラーになるのか id を明示的に指定してレコードを作った場合は、PostgreSQL の内部で自動採番が行われないので、 Active Record が自動で id を割り当てる際にバッティングするから*1。 どうすればいいか レコードの追加の際には id を明示的に指定しないようにします。もし id を明示的に指定してレコードを追加したい場合には、レコード追加後に手動で採番を調整しましょう*2。 わかりやすい記事を書いてくださっている方がいらっしゃいます。 eienshinjin.
※ 2023/06/19 現在の情報です 箇条書きで pnpm が必須 メモリ(スワップ)不足でセットアップスクリプトで落ちる*1 frontend の vite build のところで JavaScript heap out of memory で落ちる packages/frontend build$ vite build │ vite v4.3.9 building for production... │ transforming... │ <--- Last few GCs ---> │ [7199:0x734eef0] 37428 ms: Mark-sweep 468.7 (488.3) -> 464.8 (488.8) MB, 678.5 / 0.0 ms (average mu = 0.208, cur │ [7199:0x734eef0] 38127 ms: Mark-sw
fre:ac とは 公式サイト https://www.freac.org/ gyazo.com 窓の杜の記事 forest.watch.impress.co.jp 理由 Microsoft Store で提供されている メンテがされている UI がモダン モダンな環境でエンコード速度が早い 全部入りなので外部エンコーダを落とす必要がない EAC などに存在する機能は内包している
GitBucket GitBucket はご存知、takezoe さんを中心に開発されている素晴らしい GitHub クローンです。度重なるバージョンアップにより様々な機能が追加され、その利便性は計り知れません。 そんな GitBucket の機能の中に Webhook 機能があります。「Webhook って何ぞや」という話は別途調べてほしいのですが、語弊を承知で言うならば、「ユーザの行動をトリガにして特定のURLにアクセスする機能」です。 例えば、GitBucket にコミットしたことをトリガにして、Slack で発言する(Web API 経由)、などということができるわけです。 Jenkins でのビルド そこで GitBucket での Webhook を用いて Jenkins でビルドをしてみたいと思います。GitBucket や Jenkins のインストールについてはここでは詳
結論 これです。 circleci.com 使い方 Orb を指定します。バージョンは適宜書き換えてください。 orbs: browser-tools: circleci/browser-tools@1.4.0 あとは steps に所定の記載をしていけばいいです。たとえば Chrome および chromedriver をインストールしたい場合には次のように書きます。 steps: - browser-tools/install-chrome - browser-tools/install-chromedriver
前提 2023年3月17日(金)現在の話です。 API の公式ドキュメント developers.google.com 結論 どの gem を使うか? google/analytics/data/v1beta です。 API の認証はどうするか? GCP のサービスアカウントを作成し、認証用の JSON ファイルである credentials.json を準備しておいてください*1。下記のような形式のものです。 { "type": "service_account", "project_id": "foobar-project", "private_key_id": "12345abcdef", "private_key": "-----BEGIN PRIVATE KEY-----\nabcdefg=\n-----END PRIVATE KEY-----\n", "client_email
ArchiveBox とは いわゆる「魚拓」の OSS 版です。 github.com スクリーンショット 使い方 使い方は簡単です。公式で推奨されているように Docker Compose でほぼ事足りると思います*1。 設定 設定はデータボリュームのディレクトリ内の ArchiveBox.conf に書きます。WGET_USER_AGENT と TIMEOUT を適切に設定しないとダウンロードに失敗することが多かったので、そのあたりの設定をいい感じにいじります*2。 使いどころ ここからが本題です。 いわゆる「魚拓」がしたいならばそれこそ特化したウェブサービスを用いるほうが簡単です。たとえば archive.today や Raindrop などです。僕は Raindrop に課金して使用しています。 raindrop.io となると、ArchiveBox の使いどころは「手元で気軽に
結論 以下のようなバッチファイルを書いて実行します。-u オプションの引数はユーザー名です。 wsl.exe -u foobar -- sleep 60 wsl.exe -u hogehoge -- ls -la 注意点 自動化に用いた場合には対話プロンプトが混じらないように工夫しましょう。
結論 CIFS なストレージを mount する際には、「パーミッション」と「uid」と「gid」に特に注意する必要があります。たいていのトラブルの原因はこれらの値が適切に設定されていないために起きると思います*1。 具体例 CIFS を mount する際には、以下のマウントオプションを全て必須として指定するほうがいいでしょう*2。 username password file_mode dir_mode uid gid 上記のオプションを全て指定した場合のコマンド例は次のとおりです。 $ sudo mount -t cifs -o username=foobar,password=hogefuga,file_mode=0644,dir_mode=0755,uid=123,gid=456 //192.168.0.123/hogehoge /mnt/fugafuga uid と gid は
結論 #create の場合も #new 〜 #save の場合も引数に配列を取ることができる #create の場合` はまとめて*1 登録できる #new 〜 #save の場合は、#new で引数に配列を取った後に、each で回して個別に #save する 具体例 users テーブルに 2つ のレコードを保存する例を考えてみます。 #create を用いる場合 User.create( [ { name: 'taro', age: 20 }, { name: 'hanako', age: 25 } ] ) #new 〜 #save を用いる場合 users = User.new( [ { name: 'taro', age: 20 }, { name: 'hanako', age: 25 } ] ) users.each do |user| user.save end 使い分け
Rundeck とは www.rundeck.com n8n とは n8n.io 乗り換えた理由(Rundeck のつらみ) 重い メモリ 2GB の VPS で Rundeck 専用につかっても重い ジョブの一括削除すると必ずタイムアウトするか 30分 ぐらい待ってエラーとかでどうにもならなくなった 起動が遅い メモリ使用量が常時上限張り付き 乗り換えにあたって要した条件 軽いこと コードベースでジョブが扱えること IFTTT は全部ポチポチ GUI なのでジョブが増えると手に負えなくなる 柔軟性が高いこと n8n は多くの Integration に対応している n8n は多くの node*1 が予め用意されている 困ったら最後の手段として JavaScript 直書き が用意されている 乗り換えてみた Docker で使うのが結構推奨されているっぽいけど、普通に npm で入れて p
D1-Orm とは リポジトリ github.com ドキュメント docs.interactions.rest 使い方 単純に SELECT するだけのコードを書いてみます。 Wrangler や Cloudflare Workers についての説明は省略します。 1. $ wrangler init する まず $ wrangler init してサービスを作成します。 2. D1 データベースを作成する $ wrangler d1 create DATABASE_NAME などの方法でデータベースを作成します。データベースを作成するとそのデータベースの ID が発行されます。 ID を含めたデータベースの情報を wrangler.toml に以下のように追記します。 [[ d1_databases ]] binding = "DB" # i.e. available in your
git-cz (commitizen) とは github.com リポジトリ独自の設定を用いたいとき 1. changelog.config.js をリポジトリのルートに作る changelog.config.js というファイルをリポジトリのルートに作ります。 2. 例えば、絵文字を無効に設定する 例として、コミットメッセージに絵文字を入れる機能を無効にしてみます。先ほどの changelog.config.js の中身を以下のようにします。 module.exports = { "disableEmoji": true } 3. changelog.config.js を push しないようにする changelog.config.js は個人の設定ファイルだと思いますので、共有のリポジトリには push しないようにします。そのために、.gitignore あるいは .git/e
結論 Rails 5 の場合は redirect_back を使う。 答え
MinIO とは S3 互換の OSS です min.io サービスとしてインストールする Download のページには単一バイナリを落としてきてからの起動方法が書かれています。これは確かに簡単なのですが、実際にはサービスとして起動する方が便利です。 サービスとして起動する(登録する)方法は GitHub のドキュメント に書いてあります。以下、その方法です。 結論 1. MinIO を /usr/local/bin 配下にインストールする Download より、パッケージマネージャを使ってインストールすると自動的に /usr/local/bin 配下にインストールされるので、これが楽でしょう。手動でバイナリを配置してもよいです。 2. /etc/default/minio を作成する /etc/default/minio を作成します。このファイルは自動では作られないので、まっさらな
結論 1. まず SimpleCov をインストール 以下ではシェルからインストールしていますが、Gemfileに書いてbundle installでもよいです。 $ gem install simplecov 2. spec_helper.rb で simplecov を require する spec_helper.rb内にrequire 'simplecov'するように記述します。spec_helper.rbの先頭に書けばいいでしょう。 require 'simplecov' RSpec.configure do |config| (省略) end 3. spec_helper.rb に、カバレッジの測定で除外するディレクトリを書き加える spec_helper.rb内に「SimpleCov.start do 〜 end」という部分を書き加えて、その部分で SimpleCov の設定
結論 公式ドキュメントは以下。 circleci.com gyazo.com なぜこれを気にしたのか monorepo っぽい構成になっているプロダクトにおいて、静的な Webページ のテストを走らせるためにワンライナーの Webサーバ を立ち上げようとしたから。 $ php -S や $ python -m http.server が立ち上がらないのはもちろん、$ ruby -run -e httpd もダメだったので驚いた(cimg/ruby:3.* のイメージには webrick が入っていないから)。 PHP や Python を入れていると CI に時間がかかりすぎるので、素直に $ gem install webrick してから Ruby で Webサーバ を起ち上げることで解決…しなかった。 対話シェルでは問題ないが、RSpec 内でシェルコマンドを実行すると立ち上がらない
lftpコマンド rsyncが使えない場合の救済手段、lftpコマンドです。 LFTP - sophisticated file transfer program 最強の mirror コマンド lftpの素晴らしいところはmirrorコマンドというコマンドがあることです。その名のとおり、ミラーリングをしてくれるコマンドです。下記のページで的確にまとまっています。 mirror コマンドでの便利なオプション mirrorコマンドには便利なオプションがいくつかあります*1。 詳しくは以下のページに全文があります*2。 LFTP - the manual page この中で私が便利だなと思ったオプションを紹介します。 --delete (ハイフンは2つ) リモートサイトに存在しないファイルは、ローカルサイトで削除します つまり完全同期になります -R ローカルのファイルをリモートにミラーします
やり方 特に難しいところはないです。 1. Cloud Run の「サービス」メニューから「カスタム ドメインを管理」をクリックする ここです。 2. 「マッピングを追加」をクリックして情報を入力していく 注意点がいくつかあります。 2-1. マッピングに対応しているリージョンが限られている それは、マッピングに対応しているリージョンが限られていることです(2022/10/15 時点)。 マッピングを利用したい場合には、予めこれらのリージョンでサービスを作成する必要があります*1。 2-2. ドメインは「確認済み」である必要がある 所有するドメインが自らのものであるという確認を済ませておく必要があります。 上記 2点 をクリアしたならばどんどん情報を入力して、最後に「続行」を押します。 3. 確認待機状態になる 入力が終わるとマッピング一覧画面に遷移し、マッピングの確認待機状態になります。
結論 1. GUI の SSH の設定画面で ルートログイン を一時的に有効にする 2. 以下の ユーザ名 と パスワード で SSH でログインする USERNAME root*1 PASSWORD openmediavault 3. ログインできたはず あとは各自頑張って下さい。 補足 root 以外のユーザでログインするためには、そのユーザを ssh グループに所属させる必要があります。 初期の /etc/ssh/sshd_config が以下のようになっているためです。 またユーザを登録する場合は root で adduser する方が汎用的かと思います。というか、そうするべきでしょう。 なぜなら、adduser 経由だとホームディレクトリが作られますが GUI 経由だと作られないためです。それはすなわち .bashrc が作られないため、シェルの操作がまともにできないことを意味し
結論 以下のように書くと、アーティファクトのリンクをクリックした先で Computed hash does not match with url signature というエラーが出ます*1。 (省略) - name: アーティファクトの保存を行う if: failure() uses: actions/upload-artifact@v1 with: name: テストのエラー画像 path: tmp/screenshots (省略) 日本語を使わないで以下のように書くと OK です。 (省略) - name: アーティファクトの保存を行う if: failure() uses: actions/upload-artifact@v1 with: name: Error screenshots path: tmp/screenshots (省略) *1:アーティファクトの step 自体は
結論 $ sudo service mysql stop $ sudo usermod -d /var/lib/mysql mysql 警告メッセージ例 $ sudo service mysql start * Starting MySQL database server mysqld su: 警告: ディレクトリを /nonexistent に変更できません: そのようなファイルやディレクトリはありません
結論 default-mysql-server や default-mysql-client をインストールします。 $ sudo apt install default-mysql-server $ sudo apt install default-mysql-client
結論 デベロッパツールを起動した上で、Chrome のサイズを変更する。すると表示領域の右上に 1234px x 567px のような形で出てくる*1。 実演 補足 Chrome を一瞬で特定のサイズに切り替えたい場合は Window Resizer という拡張機能が便利です。 *1:常時表示されているわけではないです
Action Mailer いつものこれです。 Action Mailer を単体で使う 単なる Mail の gem を使うよりか少し楽なので、Action Mailer を単体で*1使います。いきなりコードを示すと、以下のようになります。 なお Action Mailer の gem は予めインストールしておいてください。またここでは SMTP に Gmail のものを用いることとします。 require 'action_mailer' ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { address: 'smtp.gmail.com', domain: 'gmail.com', port: 587, user_name: 'your_gmail_account_name@gm
結論 openmediavault のサーバに SSH します $ sudo sudo omv-firstaid を実行します 以下の画面で 3 Change control panel administrator password を選んで新しいパスワードを入力します 参考
次のページ
このページを最初にブックマークしてみませんか?
『obel.hatenablog.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く