えにしテックさん15周年記念イベントでのトーク資料です。
こんにちは、PSIRTのWaTTsonです。 昨年の夏頃に、「Dependabot alertをSlackに通知して、トリアージ運用に役立てる仕組みを作ってみた」という記事を投稿しました: developers.freee.co.jp ここでは、新しく報告されたDependabot alertをSlackに通知し、Jiraチケットを作成してPSIRTメンバーをアサインし、トリアージを行って各開発チームのチャンネルにメッセージを送信する、という仕組みについて説明しました。 今回は、この中でPSIRTメンバーがトリアージをする時にどういう風なことをしているのかを書いてみたいと思います。 過去に私自身にアサインされた事例の中から1つ、具体例を挙げて見てみましょう。執筆に時間をかけてしまったせいでちょっと古い例ですが、2024年3月頃アラートが上がったにRDoc RCE vulnerability
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Kamal: hot deployment tool to watch—or a total game changer?—Martian Chronicles, Evil Martians’ team blog 原文初版公開日: 2023/04/25 原文更新日: 2024/04/02 原著者: Kirill Kuznetsov(SRE筆頭)、Travis Turner(技術編集者) サイト: Evil Martians -- ニューヨークやロシアを中心に拠点を構えるRuby on Rails開発会社です。良質のブログ記事を多数公開し、多くのgemのスポンサーでもあります。 日本語ブログ: 合同会社イービルマーシャンズ - Qiita 日本語タイトルは内容に即したものにしました。 なお、KamalはRails 8からデフォルトの
2024年5月15日から17日まで、沖縄県那覇市の那覇文化芸術劇場なはーとでRubyKaigi 2024が開催されました。3日目の基調講演はRubyの作者である、まつもとゆきひろさんが登壇し、「Better Ruby」というタイトルで講演を行いました。 まつもとさんは、Rubyの良さ、Rubyをより良くするための4つの側面、Rubyの未来像について話しました。 まつもとさんによるキーノート Rubyの良さ 「Rubyは本当に素晴らしい言語で、これを日本語で自画自賛と言います」とまつもとさんは話し始め、Rubyの良さについて順に紹介しました。 楽しい まず最初にRubyの良いところとして、コードを書いていて楽しいという点を取り上げました。Rubyの公式サイトにある「A PROGRAMMER'S BEST FRIEND」というスローガンは、「プログラマーがコードを書くときにRubyが友であ
RubyKaigi 2024 キーノートレポート tomoya ishidaさん「Writing Weird Code」 ~RubyKaigi 2024 1日目キーノート 2024年5月15日から3日間、沖縄県那覇市の那覇文化芸術劇場なはーとにてRubyKaigi 2024が開催されました。 その一日目はtompngさん、あるいはペンさんことtomoya ishidaさんによる「Writing Weird Code」と題されたキーノートからスタートしました(発表スライド)。 tomoya ishida(tompng)さん TRICKと奇妙なコード IRBやRelineのメンテナとして活躍されているtompngさんは、TRICK 2022 Gold Medalistという肩書も持っています。 TRICK(Transcendental Ruby Imbroglio Contest for
サーバ側だけでフォーム画面をインタラクティブに! 〜Hotwire を活用した「Ghost Formパターン」〜 こんにちは、@nay3 です。 私はここ数年、仕事とプライベートの両方で Rails と Hotwire を使ってアプリケーション開発をしていますが、その中で、繰り返し使っているパターンがあります。 そのパターンは、とても便利なのですが、数ヶ月も間が空くと忘れてしまい、つい旧態依然としたコードから出発してまた同じところにたどり着く、ということを繰り返してしまいます。 実は、最近もまた繰り返してしまいました。 そこで、今後はすぐに思い出して再利用できるように、このパターンに「Ghost Form パターン」(※)という名前をつけて、記事化してしまうことにしました! ※Ghost Form という名前については、レビュー協力をいただいた @tanaka51 さんの案を採用させていた
RubyでSlackのボットを書くには、slack-ruby-client gemやruboty gemなどを使うのが一般的だと思います。 しかし個人的には、Slackボット程度でgemを使うのは好みでないので、なるべく素のRubyだけで書くようにしています。 その方法をまとめておきます。 Slack appを登録する まず、https://api.slack.com/appsで"Create New App"して、適当に設定をします。 次のYAMLを"App Manifest"に貼ってSave Changesすると一気に設定できます。 display_information: name: Sample Slack App features: bot_user: display_name: Sample Slack App always_online: true oauth_config:
※本記事は筆者RyotaKが英語で執筆した記事を、弊社セキュリティエンジニアkoyuriが日本語に翻訳したものになります。 はじめに こんにちは、Flatt SecurityでセキュリティエンジニアをしているRyotaK( @ryotkak )です。 先日、特定の条件を満たした場合に攻撃者がWindows上でコマンドインジェクションを実行できる、いくつかのプログラミング言語に対する複数の脆弱性を報告しました。 本日(2024/04/09(訳者注: これは英語版記事の公開日です))、影響を受けるベンダーがこれらの脆弱性に関するアドバイザリーを公表しました。 その影響は限定的なもののCVSSスコアは非常に高く、混乱が予想されるため、脆弱性に関する詳細を本記事にまとめます。 はじめに TL;DR CVSSスコア 技術詳解 根本原因 CreateProcessのラッパー cmd.exeのパース規則
Intro Ruby is so associated with its most famous framework, Rails, that many people forget how amazing this language is. I mean, I know a lot of people who says “I don’t like Ruby” and when I ask why, they say something about Rails. Personally, I consider Ruby one of my favorite programming languages, and the last time I touched any Rails code was 7 years ago… So, if I don’t use Rails anymore, wha
I previously wrote a quick intro to the endless method in Ruby and now I will try to use it to name transaction blocks in Rails. This is a technique Kasper Timm Hansen shared in a reply to my previous post. I will try to refactor some examples from two open-source Rails repositories just to explore how the code looks. This open-ended exercise is a playground for experimenting with the code shape a
INSTANTROOM株式会社(本社:東京都渋谷区、代表取締役:曽根弘介)が運営する、フリーランスエンジニア・ITフリーランスの案件検索サイト「フリーランスボード(https://freelance-board.com)」は2024年6月のフリーランス案件の単価における市場動向の調査結果を発表いたします。 ◆数字で見る「フリーランス市場動向」 フリーランスボードでは2024年6月6日時点の141,500件の掲載案件を対象に開発言語・フレームワーク・職種別の月額平均単価を調査いたしました。 ■フリーランス案件の月額平均単価 2024年6月のフリーランス案件の月額平均単価は71.5万円、最高単価は320万円です。 ▼掲載中のフリーランス案件はコチラから https://freelance-board.com/jobs ■開発言語別の月額平均単価 開発言語別の月額平均単価は上表の結果となりました
#TechFeed ニッチを恐れず、マニアックを愛す。テクノロジーの最前線をエキスパートとともにお届けする、ハイレベルエンジニア向け技術メディア「TechFeed Advance」( https://techfeed.io/advance )。 同メディアの中で連載中の、YouTube連動インタビュー企画「Ask the Expert」の新着動画です。 今回は、Rubyのエキスパートうなすけさんに、Rubyの最新動向について詳しく伺ってきました。 【各種リンク】 ▶テックフィード白石: テック系YouTuber / MC / TechFeed CEO ・Xアカウント: https://x.com/Shumpei ・TechFeedアカウント: https://techfeed.io/people/@shumpei_shiraishi ▶TechFeed: ITエンジニア向け技術情
週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やX.comでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Rails: 先週の改修(Rails公式ニュースより) 公式更新情報: Ruby on Rails — Better error message, opt-i
この記事は何? 新しく地域Ruby勉強会として Kashiwa.rb (柏.rb)の立ち上げに関わりました(現在進行なので「関わっています」)。 この記事執筆時点ではまだ初回ミートアップ以前ですが、自分と似たように「○○界隈でRuby技術者たちが気軽に集まれるコミュニティがあったらいいな!」と考えている人がこの記事を見て行動を起こすキッカケにでもなればいいなと思ったので、初回ミートアップに行き着くまでの記録をまとめてみます。 留意点 Kashiwa.rb の運営に携わってくださる方が自分を含めて 7名も集まりました。めっちゃ心強い! この記事にまとめる記録はあくまで私 @kozy4324 が見て触れた記憶・経験のみが書かれます。あくまで1運営メンバーの1視点ということで読んでもらえると幸いです。 2024年5月 Shinjuku.rbに参加、勉強会参加意欲が再燃期 少し昔話から。 自分の所
Rubyをはじめとする「動的型付け」のプログラミング言語は、ソースコード中に型に関する記述が陽に出てこないことが特徴で、プログラムの実行前に(静的に)型検査をすることはありません。しかし、このようなプログラミング言語においても、大規模な開発における品質の向上や開発体験の改善、実行の高速化のために、静的な解析を活用しようという試みは多くなされてきました。この記事では、動的型付けの言語のための型検査の歴史を簡単に振り返って、現在私が開発しているRuby向けの型検査器Steepとその基盤となっている型記述言語RBSについて説明し、今後の展望を議論します。 著者:松本宗太郎さん(@soutaro) Rubyコミッター。大学院でRubyプログラムの型検査の研究に取り組み、修了後はスタートアップでWebアプリケーションの開発に従事。2017年から型検査ツールSteepの開発を始め、2019年からはRu
2024.06.17 Ruby 3.3.3にアップグレードするとbundle installでnet-popがインストールできない Ruby 3.3.3がリリースされました Ruby 3.3.3がリリースされたので、自分のRailsアプリのRubyを3.3.3にアップグレードしようとしたところ、ローカルのDockerコンテナではRailsアプリを正常に実行できたにもかかわらず、Herokuにデプロイするとbundle installの部分で以下が発生してデプロイできませんでした。 ... Downloading net-pop-0.1.2 revealed dependencies not in the API or the lockfile (net-protocol (>= 0)). Running `bundle update net-pop` should fix the prob
丁度1ヶ月前の5月15日、RubyKaigi 2024 初日のキーノートでしゃべってきました。 タイトルは「Writing Weird Code 奇妙なコードを書くということ」 RubyKaigi, me and weird code 発表スライドはこちら drive.google.com RubyKaigiは僕にとってすごく特別なカンファレンスだし、それが地元沖縄で開催されるということで、絶対何か喋りたいと思って真面目な内容のCFPを出していたんですが、 気づいたら真面目じゃない内容のキーノートをしていました。RubyKaigi本当に楽しかったし。すごかった。 RubyKaigiが終わってしばらくは「RubyKaigi本当にすごいイベントだった」という言葉が頭の中をループしていて、その時にこのブログを書いていれば、文章の半分くらいが「やばい」で埋め尽くされていたんじゃないかなぁ。 本当に
# アーカイブ化 # Lamdbanにファイルを取り込む場合、ZIPファイルで取り込む必要がある為、このリソースでZIPファイルを作成する data "archive_file" "db_failover" { # zipで固定 type = "zip" # 下記に指定したディレクトリ内のファイルは全てアーカイブ(zip化)される # source_dir = "${path.module}/任意のディレクトリー名" source_dir = "${path.module}/lambda_function" # アーカイブしたファイル(zipファイル)がこのパスに出力される # output_path = "${path.module}/任意のディレクトリー名/任意の名前が付与されたzipファイル" output_path = "${path.module}/archive/db_fail
Ruby 3.3.3 has been released. This release includes: RubyGems 3.5.11 Bundler 2.5.11 REXML 3.2.8 strscan 3.0.9 --dump=prism_parsetree is replaced by --parser=prism --dump=parsetree Invalid encoding symbols raise SyntaxError instead of EncodingError Memory leak fix in Ripper parsing Bugfixes for YJIT, **{}, Ripper.tokenize, RubyVM::InstructionSequence#to_binary, --with-gmp, and some build environmen
Async programming can make your apps faster. I’ll share how you can use async in Ruby on Rails to speed up your app. While there are examples in Ruby, the principles apply to any language. I’ll group the examples into two basic principles. Here’s the first one: Don’t do now what you can do later Delay doing stuff as much as possible. Being lazy is not necessarily a bad thing. In practice, that mea
はじめに ruby.wasmバイナリに3rd party製のgem組み込んだ際のトラブルシュートのログを書き残しておきます。 2024年6月現在のHACKです。今後の開発が進めば不要になると想定しています。 こちらのスライドの補足記事です。 speakerdeck.com 前提 下記PRにより、Bundlerと ruby_wasm gemを利用して独自のruby.wasmバイナリが作成できるようになっています。 github.com $ bundle init Writing new Gemfile to /tmp/tmp.ZeVCP05HyB/Gemfile $ bundle add ruby_wasm $ bundle add rainbow $ bundle exec rbwasm build -o ruby.wasm (snip) INFO: Packaging gem: rain
やりたいことRuby の環境を作らずに基本的なスクリプトを動作させたい 非エンジニアの環境で 1 ファイルでコマンドを動作させたいというほどの環境の縛りはない簡単に Docker 環境で基本的なコードが動けばよい、程度今回できたことWasm 版 Ruby を Wasm Runtime 上で動かす基本的な Ruby コードと Wasm 版 Ruby を一つの Wasm module にパッケージし、それを Wasm Runtime 上で動かす さらに Wasm module を compile しておいて起動を速くする(Rubyについてはまだまだ課題は多いが)Wasm を使うことで直接実行バイナリを生成できない言語でも JVM + .war 程度の使い勝手である程度のことができることが分かった実験に使ったのは macOS 13.6.7 ( arm64 darwin 22 )Ruby 3.2.
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Gemfile of dreams: the libraries we use to build Rails apps—Martian Chronicles, Evil Martians’ team blog 原文更新日: 2024/05/28 原著者: Vladimir Dementyev(首席バックエンドエンジニア)、Travis Turner(技術記事編集者) サイト: Evil Martians -- ニューヨークやロシアを中心に拠点を構えるRuby on Rails開発会社です。良質のブログ記事を多数公開し、多くのgemのスポンサーでもあります。 日本語ブログ: 合同会社イービルマーシャンズ - Qiita 日本語タイトルは内容に即したものにしました。また、gemごとにGitHubリポジトリへのリンクカードも追加してあ
Ruby on Rails 7.2 Beta 1では、Ruby 3.1以降のCRubyで使えるRubyのJITコンパイラであり、Railsアプリケーションのパフォーマンスを大幅に向上させ、レイテンシを15〜25%改善するYJITがデフォルトで有効化されている。 あわせて、Pumaにおけるデフォルトのスレッド数を5から3に変更し、スレッド数が多すぎる場合にRubyがグローバルVMロック(GVL)が解放されるまでの待ち時間を削減することで、レイテンシ(リクエスト応答時間)を改善した。 また、Ruby on Railsによって生成されるデフォルトのDockerfileには、メモリ割り当てを最適化するためのjemallocが含まれるようになっている。 さらに、アプリケーションの開発コンテナ構成を生成する機能が追加された。同構成では、.devcontainerフォルダ内に、Dockerfile、do
rubocopをRBSファイルにも効かせたい - スペクトラム で作ってたものが大体できてきて、rbs v3.5もリリースされたので公開できるようになりました。 これでRuboCopをRBSファイルにも使用できるようになりました。 github.com 例えば class Foo def foo: () -> void end というRBSをレビューする時「インデント入れてね」と指摘したくなりますよね。Rubyファイルならrubocopでできるのに、RBSファイルではrubocopで指摘できないという問題がありました。あるんです。きっと。というわけで、できるようにしました。 とりあえず初期バージョンでは20以上のルールを用意しています。 autocorrect(自動修正)にも対応しているので、いつものようにrubocop -aしてあげれば class Foo def foo: () ->
めんそ〜れ!「B/43(ビーヨンサン)」を提供するスマートバンクでコミュニケーションデザイナーをしているゆっきー(@yuki930)です✋ 2024年5月に沖縄で開催されたRubyの国際カンファレンス「RubyKaigi 2024」で、同僚のmmitoさんと共にRubyKaigi 2024カンファレンス全体のデザインを担当させていただきました。 沖縄らしさを表現した今回のビジュアルの制作過程については、せひmmitoさんの記事をご覧ください! RubyKaigiでは、毎年デザイナーが入れ替わる方式が採用されており、RubyKaigi 2024ではmmitoさんと私の2名体制でデザインを担当しました。 歴史のあるカンファレンスなので、歴代デザイナーのみなさんのさまざまな試行錯誤がチームに経験として積み重ねられています。 私の記事では、カンファレンスの体験のデザインにフォーカスをあて、今年の制
rubykaigi.org ざっくり感想 沖縄まで行ったのに会期3日中2.3日くらい体調崩してしまいました。しかし参加できた0.7日分くらいだけでも充実していてやはりRubyKaigiは最高だなーと思いました。 トークの感想 Writing Weird Code オープニングキーノート。Quine作品の数々、意味がわからなかったけどテンション爆上がりしました。 しかもペンさんはストーリーテリングのスキルまで異様に高くて、テンションが上がっただけでなく、RubyとRubyコミュニティーって素晴らしいな最高だなということを再認識したのと、この日に至るまでとこれからの様々な人の様々な日々に想いを馳せる時間になりました。めちゃくちゃ感動的でした。 ペンさんって何者なんだろう。 The grand strategy of Ruby Parser 去年のRubyKaigiは自分の不手際でkanekoさ
STORESでフルタイムRubyコミッタをやっている遠藤(@mametter)です。 最近Rubyインタプリタのとある問題の修正に成功した(と思う)ので紹介します。といっても格好良い話ではなく、とても泥臭い話です。 問題 RubyのCIで不定期に次のようなエラーが発生していました。いわゆるflaky test。 1) Failure: TestSymbol#test_inspect_under_gc_compact_stress [.../ruby/test/ruby/test_symbol.rb:126]: ":testing" expected but was ":\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"". 発生確率が絶妙で、しばしば起きるのですが、デバッグのために狙って再現しようとしても起きないという代物でした。 問題の分析 エラーが起きていた
この記事では、Ruby の非同期処理ライブラリである Sidekiq を使って定期実行処理を行う Sidekiq-Cron の監視方法について、チームでの方式検討の様子を交えながらご紹介します。 目次 目次 はじめに Sidekiq-Cron について Sidekiq-Cron の cron job の status の監視 既存の status 監視の問題点 既存の監視の仕組みの問題点 負荷が低い監視の仕組みの検討 案1:全 cron job の status を定期的にダンプし、ダンプ結果を読み取って監視する 案2:Redis を直接参照して cron job の status を読み取る 案3:Sidekiq の GUI の html ページの内容をパースして status を取得 [採用] 案4:Sidekiq の GUI に新しいエンドポイントを実装して、そのエンドポイントから
TL;DR 楽しかった! 本編 おはようございます。手札事故(twitter:@hand_accident)と申します。 Ruby知識ゼロから初参加したRubyKaigi 2024レポート、略してルゼロ*1という感じでやっていきたいと思います。 < Day 0 自己紹介でもしとくか。生まれ育った愛媛県松山市*2に帰って非IT企業でパソコン係をやっている過程で、すべてが個人開発の労働環境で趣味全ブッパ技術選定をした結果HaskellとNimを書くようになりました。すこしSvelteもします。 Rubyは名前を聞いたことがあるしちょっとニッチなPythonライブラリ探そうとしたら時々検索にgemが引っかかってそちらにはあるのねえという感想を抱くなどしていましたが何の因果か触ってみるには至らず、沖縄に来て初めてコードを見たまであります。 愛媛県松山市で趣味の音楽ゲーム(DDR)に高じていたところ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く