スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランスエンジニアとしての実体験から、フリーランスエンジニアに関するノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

技術関連

新着順 人気順

BraveでTwitch広告が復活したときの対処法。カスタムフィルターで再ブロックする手順【2026年】

Braveブラウザの「Twitch Adblock Rules」が見つからない場合の対処法を解説。開発者モードでカスタムフィルターを追加すれば、Twitchの広告を再びブロックできます。設定手順をスクリーンショット付きで紹介。

Stripeの領収書・請求書の発行方法。ダッシュボード操作からAPI取得まで解説

Stripeの領収書・請求書の発行方法を徹底解説。ダッシュボードからの手動発行、自動メール設定、インボイス制度対応の登録番号記載方法、Rails APIでの取得コードまで網羅。領収書が届かない場合のトラブルシューティングも。

1PasswordからBitwardenへ乗り換えた実体験。1pux形式での移行手順・無料プランの実力・iPhone Brave連携の注意点

1PasswordからBitwardenへの移行手順を実体験をもとに解説。エクスポート→インポートは10分で完了。無料プランの実力、初期設定、iPhone・PCブラウザ別の注意点まで、移行前に知りたいことをまとめました。

Booking.comのクチコミの苦情を数えて宿を比較できるChrome拡張を作った

Booking.comの宿選びで「クチコミを低い順に全部読む」作業を自動化するChrome拡張caveatを自作しました。クチコミ本文を評価の低い順に50件前後読み、騒音・請求トラブル・老朽化などの苦情をカテゴリ別に件数と原文の抜粋つきで表示。検索結果の宿をまとめ…

【Vue.js】 現在のパス(URL)を取得する 【Vue-Router】

現在のパスは、 this.$route.path で取得出来る。 リファレンス https://router.vuejs.org/ja/api/#router-onerror 例、現在のパスによってリダイレクト先を変える関数 # js:some_component.vue redirectToRoot: function() { // 現在のパスを取得 console.l…

Chrome Web Storeの拡張機能の上限で満枠に。非公開化で枠を空けた

2026年8月20日の制度変更で、Chrome Web Storeにパブリッシャーごとの拡張機能の公開数上限ができました。デフォルトは2枠、既存アカウントは公開中の数がそのまま上限になります。14本公開で満枠だった僕が、上限引き上げリクエストの却下を経て、ユーザー…

ソースネクスト版1Passwordを買って後悔した話。サポート4日放置で凍結、複数ユーザーも被害報告【2026年】

ソースネクスト版1Passwordを購入したら4日間サポート放置でアカウント凍結。複数ユーザーが同様の被害を報告。手動処理の仕組みとリスク、返金方法、公式直接契約との比較を実体験をもとに解説します。

【active_admin】json型columnのinputエリアの、初期value表示でハマる

最初に結論 json型なので、 参照時のキーは「文字列キー」にする必要がある。 シンボルじゃダメ。 それだけのことでした。 起こったこと 下記のようなjson型カラムの中にあるデータを、 active_adminのフォームの初期値として表示させたい。 t.json "options…

【git revert】マージ済みのコミットを取り消ししたい

手順 1、 git logなどで、取り消ししたいコミットNoを特定する。 2、 revert実行。 $ git revert 対象のコミットNo 以下のエラーが返って来たら、 error: commit 16f46cdcdcf2c16136eb501d7d757f28eaeba60f is a merge but no -m option was given. fatal: r…

【cloud9】AWS cloud9でダークテーマにする方法

手順 1. cloud9を開きます。 2. 右上の歯車マークをクリックします。 3. 開いたメニューの下から2番目の、THEMES をクリックします。 4. その中の、 Flat Theme Classic Theme Syntax Theme をそれぞれ設定します。 自分は、 Classic Theme => 黒 Syntax…

【Rails】joinしたテーブルに対し、where句で特定の日付前後(以前以降)で絞り込みしたい

where句でテーブル名とカラム名両方を指定し、 文字列で条件指定すれば出来ました。 Model.joins(:join対象のテーブル名).where("join対象のテーブル名.join対象のテーブルにあるカラム名 >= ?", 日付) 例: ordersテーブルのorder_dateが、2020/01/20以降のU…

【図解】AWS S3で定期的にオブジェクトを削除する手順

定期削除には ライフサイクル という仕組みを使います。

【Rails】aタグからhref属性の値を正規表現で抽出する方法

href\s=\s"([^"]*)" という正規表現を使うことで実現可能です。 このstack over flowの回答がドンピシャでした。 > You should be able to use a regular expression like this: > href\s*=\s*"([^"]*)" See this Rubular example of that expression. > The…

RSpecで、Base64エンコードされた画像ファイルをテストする

こんにちは、mah(@RailsRubyMah6h)です。 今回は、 RSpecでBase64エンコードされた画像ファイルをテストする です。 1、 テストに使う画像ファイルを、Base64でエンコードしたバイナリ文字列に変換する (下記のようなサイトを使うとラクです) https://lab.sy…

【ActiveAdmin】formのcheck_boxで、dialogやalertの代わりに注釈(hint)をつける

ActiveAdminで管理画面を作っていて、 「非エンジニアのサポートチームの人が使うから、チェックボックスにはダイアログかアラート出したいな...」 と思い、 「chack_boxをON、OFFしたらdialogかalertを出すオプション」 的なものを探していたのですが、 che…

【ActiveAdmin】ヘッダー下のデフォルト作成ボタンを非表示にする

config.clear_action_items! の1行を追加すればOKです。 ActiveAdmin.register Item do # これを追加 config.clear_action_items! end これで、 ヘッダータイトルの作成ボタンが非表示になりました。 f:id:mah666hhh:20201107092354p:plain clear_action_ite…

【awesome_print is not working】(pry) output error: #<NoMethodError: undefined method `marshal_dump' for #<ActiveModel::Errors:xxx>

エラー文「(pry) output error: #」でググるとIssueがヒット。 どうやらRailsから「marshal_dumpメソッド」が削除され、 その影響でawesome_printからも関係するコードが削除された模様。 Update CHANGELOG Remove usage of marshal_dump since this was rem…

【Rails Ruby】メソッドで特定のgemがインストール済かチェックする

ターミナルで $ gem list xxx のようにするのではなく、 メソッドで特定のgemがインストール済かチェックしたい。 ターミナルと同様にgemコマンドを使えばOKです。 gem '指定のgem名' で調べられます。 戻り値は、 引数のgemがインストール済ならtrueを返す …

【2026年】Twitchで広告で動画が止まる問題を自動復旧 + 動画を古い順・視聴数順に並べ替えてランダム再生もできるChrome拡張を作った

Twitchで広告ブロック使用時に動画が止まる問題を自動復旧 + Twitch標準では選べない「古い順」「視聴数の少ない順」「動画の長さ順」 でチャンネル動画一覧を6モードで並べ替え + ランダム再生できるChrome拡張を自作。チャット欄・左サイドバーの非表示、…

【2026年】Wizfanの動画を続きから再生・配信停止から自動復帰できるChrome拡張

格闘ゲームの配信プラットフォームWizfan(wizfan.io)の視聴を快適にする非公式Chrome拡張を自作。リロードで頭出しに戻る・配信がたまに止まる・倍速がない、という不便をまとめて解消します。続きから自動再生・配信停止からの自動復帰・倍速再生・ワンク…

【2026年】YouTubeライブチャットで見たくないコメントを消すChrome拡張

YouTubeのライブチャットで、見たくない単語や特定の投稿者のコメントを自動で非表示にするChrome拡張を自作。流れの速いチャットから苦手なものだけサッと消せます。絵文字スタンプ対応の語句ミュート・投稿者ミュート・チャット行ホバーで出るワンクリック…

M1 Max故障からM5 Air 15インチへ。フリーランスエンジニアの2台体制構築と売却査定8万円の実体験

M1 Max MacBook Proが再起動不能に → M5 Air 15インチ(32GB/1TB)を購入 開発用M3 Proは継続 → Air + Proの2台体制が正解だった ラクウル売却は査定8万円。ステッカー跡・キーボードテカリで半額に減額された 4年半使ったM1 Max MacBook Proが2026年2月に突…

【Heroku無料廃止】Railway.appでWheneverを使わずHeroku Schedulerのように定期処理を実行する

Wheneverのcron設定ファイルやRailway側の実行コマンドを変えて検証していましたが、 なかなか終わらないので発想を変えます。 rakeタスクを実行するエンドポイントを作り、 そこにNew Relicから一定時間毎にpingを送るようにすることで、 実質Herokuスケジ…

【2023年1月最新】Places APIを使わずaタグへのURL指定でGoogleMapのお店を星(評価)で絞り込む

ベースとなるURLは下記の通り。 https://www.google.com/maps/search/{キーワード}/data={評価} {キーワード} の所に「レストラン」「居酒屋」などお店の情報を入れ、 {評価} のところに星(評価)を表すパラメータを入れると星(評価)で絞り込みができます…

【Ruby】"\xE6" from ASCII-8BIT to UTF-8 in /usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode

発生した環境は下記。 macOS Big Sur 11.3.1 ruby 2.6.3 rails 5.2.3 突然 "\xE6" from ASCII-8BIT to UTF-8 というエラーが発生しました。 /usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode'\n/usr/local/bundle/gems/json-2.2.0/lib/…

【2023年1月最新】Herokuから代替のRailway.appへRailsアプリ移行時に出たエラー【無料廃止】

Railwayデプロイ時に発生。 #18 1.183 [1/5] Validating package.json... #18 1.188 error technews@0.1.0: The engine "node" is incompatible with this module. Expected version "v14.0.0". Got "16.17.0" #18 1.201 info Visit https://yarnpkg.com/e…

【Rails】bundle install --jobs(-j)に指定するジョブ数を動的に設定するため、最大値について調べた

最大値が 4 だからなのかと思いましたが、 --jobs で指定できるジョブ数の最大値についての記述はドキュメント上にありませんでした。 これなら動的にジョブ数を変えられるのでは? と思い調べていると、 「指定可能なジョブ数はCPU のコア数と使用可能なメ…

【sitemap_generator】Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone> not working【Ruby gem】

Ping failed for Bing: # で調べているとIssueやPRが出ていました。 2021年の12月にBingのping送信が廃止された?というような情報もありました。 これは現在のBingのping送信先URLを確認した方が早そうなので、 Bingウェブマスターツールを見にいきました。…

新着日時順でGoogle検索とGoogleニュース検索できるサイト「シンプル新着順検索」を作りました

新着日時順でGoogle検索とGoogleニュース検索できるサイト「シンプル新着順検索」を作りました。 TwitterでもGoogle検索が新着順じゃないことに不満がある人もいたので、 ちょうどよかったです。 (昔はサッと新着順にできたみたいですが) まあ多分Google C…

はてなブログatomAPIの記事投稿でカスタムURLを利用する方法

entryタグのxmlns:opt属性に "http://www.hatena.ne.jp/info/xmlns#hatenablogを指定し、 opt:custom-urlタグに希望のURLを入れればOKです。 opt:custom-urlタグに指定したURLは、 entry/ の下に設定されます。 (上記の例だと本記事のURL entry/how-to-set-…