文章: mala
- 2025-01-20 初稿
- 2025-01-23 いくつかの補足と自分の過去のprivateでの言及のおまけ
- 気が向いたら、追記するかもしれない
FROM ruby:3.2.2-alpine | |
# ============================================================================================================ | |
# Install system packages | |
# ============================================================================================================ | |
RUN apk add --no-cache --update \ | |
bash \ | |
build-base \ | |
curl \ | |
gcompat \ |
This challenge tests if you can locate the cause of a Rails issue in 5 iterations (script execution). Although it's a Rails issue, prior knowledge on Rails is not required.
The 5 iterations limit may feel constraining, but it is intentional. If you can't locate the cause within the limitation, that's totally fine.
After the challenge, there's a simple questionnaire. If you can answer the questions, it'll help me prepare my talk for RubyKaigi. Any feedback will be appreciated 🙏
I recommend allocating 1.5 hr for the challenge and the questions
DidYouMean::SPELL_CHECKERS.merge
deprecate warnings anymore.database.yml
with aliases and secrets.yml
with aliases.class StrippedString < ActiveModel::Type::String | |
# 左右の空白を除去した文字列クラス | |
# | |
# @param [Object] value | |
# | |
# @return [String, nil] | |
def cast(value) | |
super(value)&.strip&.presence | |
end |
# validates :column_name, boolean: true のように使う | |
class BooleanValidator < ActiveModel::EachValidator | |
def validate_each(record, attribute, value) | |
return if value.is_a?(TrueClass) || value.is_a?(FalseClass) | |
record.errors.add(attribute, :not_boolean) | |
end | |
end |
-- Build better software with more intuitive, maintainable, scalable, and high-performance Ruby code
「Rubyの磨きかた -- わかりやすくてメンテナンスしやすい、スケール可能で高性能なRubyコードでソフトウェアを上手につくろう」みたいな感じ?
https://www.packtpub.com/product/polished-ruby-programming/9781801072724
<!-- app/components/dropdown/component.html.erb --> | |
<div class="relative inline-block text-left" data-controller="dropdown--component"> | |
<div> | |
<button type="button" | |
class="inline-flex justify-center w-full rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-indigo-500" | |
data-action="click->dropdown--component#toggleMenu" | |
aria-haspopup="true" | |
aria-expanded="true"> | |
<%= @title %> | |
<!-- Heroicon name: solid/chevron-down --> |
特に何もやってあげてないのに他人(法人だけどさ)から何百万何千万のお金が何年もとめどなく注ぎ込まれてきたら、怖くないですか?
オープンソース・ソフトウェアの開発者だけで給料をもらうというのは、まさにこの現象が発生してくるわけ。それまでもこれからも、ずっとオープンソース・ソフトウェアの開発者はやってきたし、やっていくわけでしょう。そんなの会社があってもなくても、別にやることなんて変わらないじゃない。じゃあなんで、ある時から急にかなりの金額が振り込まれてきてしまうんだ?しかもあからさまに物価上昇を上回る結構なハイペースで昇給していく。やっていることは一切何も変わってないのに!
この状況に適応するまでにはいささかの時間を要しました。根が小心者なので。
Git 2.26.0以下*1には、細工したリポジトリをgit clone
したときに、
そのユーザーのCredential(たとえばGitHub.comをcloneするときに使う認証情報)を奪い取れる脆弱性があります。
📝 取得できる認証情報は credential.helper
の設定に依存する
既にPoC(検証するためのコード)もあり、結構簡単なので是非Gitを2.26.1以上にアップデートしましょう。 git submoduleを使うと見た目ではわかりにくい攻撃もできるので、「気をつける」では回避は難しいです。