Categories
├─Books Cloud services Events Standard TechTips Others
├─Software
│ ├─Mac OS Programming languages Windows Others
│ ├─Libraries
│ │ └─C C++ Java JavaScript Python Ruby Rust Others
│ └─Unix
│ └─Unix commands Others
└─Web
└─Document Service Others
Dev Container CLIは開発途中でコンテナの停止や削除は未実装
公式GitHubレポジトリを見ると、2024年12月現在、以下の機能に完了のチェックマークがまだ入っていません。
devcontainer stop- Stops containersdevcontainer down- Stops and deletes containersWindows Terminalのコマンドは「wt」
したがって、ウインドウズキーを押してから、「wt」と打って、エンターでWindows Terminalを起動可能。
その他、引数など、コマンドラインからWindows Terminalを叩く場合の詳細は以下から。
https://learn.microsoft.com/ja-jp/windows/terminal/command-line-arguments?tabs=windows
Raspberry Pi Picoシリーズの開発をVisual Studio Code拡張を使わずに行う方法
Raspberry Pi Picoシリーズの開発は、Visual Studio Code(以下、VS Code)にPico用の拡張を入れて行えますが、 VS Code以外のエディタを使いたいときなど、VS Codeに頼らない開発の仕方が公式ドキュメントで紹介されています。
VS Codeを使用しないRaspberry Pi Picoシリーズの開発の方法は、具体的には、 ラズパイの公式C/C++ SDKドキュメントページ で紹介されている「Getting started with Raspberry Pi Pico-series」という名前のPDF の「Manually Configure your Environment」の項目で紹介されています。
同様に、VS Codeを使用しないでPicoシリーズ用の新規プロジェクトを作成する方法は、同PDFの「Manually Create your own Project」の項目で紹介されています。
BlueStacks 5でアプリがシャットダウンを繰り返す問題の解決策
BlueStacks 5を立ち上げてしばらく経つと動かしていたアプリが勝手にシャットダウンする現象に遭遇し困っていた。 ネットで少し調べてみて、「Google Playストア」アプリの「ストレージを消去」したところ、この現象が起きなくなった。 ちなみに、ストアアプリやシャットダウンしていた方のアプリでキャッシュ削除をしたりもしたので、 このキャッシュ削除の方が有効打になった可能性もある。以上ご参考まで。
バージョン
BlueStacks App Player 5.21.600.1019 P64
参考
https://www.reddit.com/r/BlueStacks/comments/1h6lqje/bluestacks_app_interface_freezing_and_google/
Webページでのhreflangの設定に関するGoogleの情報
以下のようなHTML等でのhreflangの設定は、SEO (Search Engine Optimization)と関係して、検索エンジンにページの関係性を正しく認識してもらうために行う場合が大半だと思います。
そして、日本では最も最適化をしたい検索エンジンはGoogleの場合が大半だと思います。
Googleが説明するhreflangの設定の仕方
Googleが公開している以下のWebページには、Googleが期待するhreflangの設定の仕方が説明されています。
以上、Google検索結果で良い感じに表示されることを目指してhreflangの設定するのであれば、まずはこちらのWebページを参考にすると良いのではないかと思いまして、ご紹介いたしました。
既存のRailsアプリへのRuboCopの導入
Rails 7.2からRuboCopが新規アプリケーションでデフォルトで有効になりました。 このTopicでは、7.1以前で作成した既存RailsアプリにRuboCopを後から導入して、RuboCopに関して7.2の新規アプリ相当の状態にセットアップする方法をご紹介します。
RuboCop (Omakase Ruby styling for Rails) のインストール
基本的にはrubocop-rails-omakaseの公式ドキュメントのインストール手順に従います。
まず以下のように、Gemfileの
group :development, :testのところにrubocop-rails-omakaseを追加します。次に
bundle installを実行して、RuboCop等をインストールします。さらに、必須ではありませんが、
bin/rubocopでRuboCopを実行できるように、以下のコマンドを実行します。最後に
.rubocop.ymlという名前でファイルを作成し、以下の内容を記述します。以上でRuboCop (Omakase Ruby styling for Rails) のセットアップが出来ました。
ローカル環境でのbin/rubocopの実行とその結果に対する対応の進め方
以下のコマンドでbin/rubocopを実行でき、omakaseのチェックを行えます。
このチェックでの指摘事項が多かった場合、以下のオプションを付けて実行することで、 無視設定を記述した
.rubocop_todo.ymlというファイルが作成され、.rubocop.ymlにもこの無視ファイルを参照する設定が追加されますので、 とりあえず全ての指摘事項を無視するように設定が出来ます。設定が出来たら、
bin/rubocopを実行して、とりあえず指摘事項の数が0となることを確認します。1つずつ指摘事項へ対応
ここから先は、以下の手順を繰り返します。
.rubocop_todo.ymlから1項目を削除bin/rubocopを実行して指摘内容を確認して対応bin/rubocop -aもしくはbin/rubocop -Aを実行して自動修正できるものは自動修正し、その修正内容で問題ないことを確認-aは安全なもののみ、-Aは安全で無いものも含めて自動修正を行います。.rubocop.ymlにてExclude:を用いて設定# rubocop:disable等を用いて設定.rubocop.ymlにてEnabled: falseの記述を用いて規則を無効にする1項目ずつ対応を進め、
.rubocop_todo.ymlの中身が無くなったら、.rubocop_todo.ymlを削除すると共に、.rubocop.yml内で.rubocop_todo.ymlを参照している設定を削除します。ここまで終わればRuboCopの諸規則への対応は完了となります。お疲れ様でした。GitHubワークフロー(CI)でのrubocopの実行
.github/workflows/ci.ymlに相当するファイルがなければ作成します。 この.ymlファイルを編集して、以下のようにjobsの下にlintジョブを追加します。
注意点
timeout-minutes:の設定は、実行時間に対して十分余裕を持たせて下さい。ruby-version: .ruby-versionという設定は、プロジェクトルートにある.ruby-versionという名前のファイルで指定されているrubyのバージョンという意味になります。この設定について詳しくはこちらのTopicをご覧下さい。-f githubオプションは、出力フォーマットをGitHub Actionsに適したものにするオプションです。公式情報
RubyのArrayやHashのリテラルをdeep freezeするshareable_constant_valueマジックコメント
概要
Rubyでは、以下のように
shareable_constant_value: literalというマジックコメントを記入することで、 以下の例のように、定数に代入したArrayやHashのリテラルを深く(deeply)freezeすることが出来ます。少し詳しい話
shareable_constant_valueマジックコメントはRuby 3.0で導入されました。注意点
このマジックコメントのliteralモードでfreezeされるのは定数が対象であるため、 以下のように、代入先が変数である場合にはfreezeされません。
また、このマジックコメントのliteralモードを指定したファイル内では、以下のように、 「freezeされていないオブジェクト」や「freezeされていないものを含むオブジェクト」を定数に代入しようとするとエラーが発生します。
裏を返せば、以下のように、freezeすればエラーが回避できます。 また、freezeする定数とfreezeしない定数でファイルを分けるという自然なアプローチでもエラーを回避できます。
参考文献
Shinjuku.rb #96 「今までで一番学びになった瞬間」発表LT会!!
[お知らせ]こちらのまとめに追加して欲しい内容があるなど、ご要望等ございましたら、下の所からのコメントやX(旧Twitter)などでお気軽にお伝えください。
Connpass: https://shinjukurb.connpass.com/event/336025/
それぞれのLTなどについての簡単な記録です。
開始前
新宿のRAIZAP本社にて
はじめに
スポンサーLT
izawa 「What brought you to NYC?」
chaki8923「失敗とそこから学んだこと」
Koji NAKAMURA 「Kaigi on Rails 2024とGlue」
スライド
好きなエクササイズはプランク
The Tale of Plack: https://www.youtube.com/watch?v=5XvH_y2wyG0
Yuta 「駅員になって気づいたこと」
ryosk7 「5年越しにGitを理解した話」
git log --since="yesterday"-mを2つ付けて簡潔と詳細の2つメッセージを付けられる。otsuka-rizap 「私のエンジニア人生を変えた出会い」
Markdownプレビュー機能をリリースしました!
本日(2024/11/27)Markdownのプレビュー機能をリリースしました。
コメントなど、Markdownが利用できるところでは、投稿前にプレビューで確認できるようになりました。
既存のRailsアプリでのDependabotへの対応
Rails 7.2から新規アプリケーションにおいてDependabotがデフォルトで有効になりました。 具体的には、
rails newで生成される新規アプリにおいて、Dependabotの設定ファイルである.github/dependabot.ymlが生成されるようになりました。Dependabotとは
Dependabotとは、GitHubのサービスであり、リポジトリで使用しているソフトウェアを最新の状態に保つことをサポートしてくれるサービスです。 具体的なDependabotの機能としては、以下の3つがあります。
Dependabotの詳細な理解にはクイックスタート ガイドなどをご利用ください。
既存のRailsアプリでのDependabotへの対応方法
脆弱性の通知機能(Dependabot alerts)は、GitHubのWebページから設定を変更するだけで利用できます。
脆弱性に関するpull requestの自動生成機能(Dependabot security updates)も、GitHubのWebページから設定を変更するだけで利用できますが、詳細な設定が必要な場合はdependabot.ymlを通して行います。
脆弱性対応以外も含めて最新の状態にするためのpull requestを自動生成する機能(Dependabot version updates)は、dependabot.ymlを通した設定が必要です。
(参考)デフォルトのdependabot.ymlの内容
このリンク先で閲覧できる
rails newで生成される新規アプリのdependabot.ymlの設定内容は、既存アプリでも参考になるかもしれません。 このdependabot.ymlには、Rails 7.2の時点では、railsアプリで利用しているgemとGitHub Actions(GitHubのCI)で利用しているアクションを最新に保つための設定が記述されています。