After RubyKaigi 2024の登壇資料です。 https://findy.connpass.com/event/315981/ RubyKaigi 2024 のruby.wasm関連セッションの紹介と、 発表内容を活かして作ってみたMockServerの解説をしています。 Demoはこちら: https://ruby-wasm-oas-mock.lnilab.net/boot.html #rubykaigi #kaigieffect 参考資料:
Leaner 開発チームの黒曜(@kokuyouwind)です。 先日の RubyKaigi 2024で Let's use LLMs from Ruby 〜 Refine RBS types using LLM 〜 というタイトルで登壇させていただきました! 参加しての感想は別記事にするので、この記事では発表の概要や裏話などをまとめます。 動画アーカイブ 記事執筆時点では公開されてないので、公開されたら更新します。(去年はフルセッションの録画がアップロードされてるので、今年もそのうち出るはずです) 発表スライド 自分の発表資料は slides.com というサービスでスライドを作っています。 埋め込み表示ができませんが、上記リンクから開くと発表時のスライドがそのまま見られます。 一応 Speaker Deck にもアップロードしていますが、 PDF 出力時にフォントが化けてしまっているた
ウォンテッドリーでエンジニアをしている @gedorinku です。5/15から5/17に沖縄で開催された RubyKaigi 2024 に参加して登壇してきました。 Porting mruby/c for the SNES (Super Famicom) RubyKaigi 2024, #rubykaigi https://rubykaigi.org/2024/presentations/gedorinku.html#day3 当日の発表スライドは以下で公開しています。 内容は、mruby/c という組み込み向けの Ruby ランタイムをスーパーファミコンに移植して動かしたというものでした。不安定な C コンパイラのデバッグやカセット内の特殊チップ(SA-1)を使った mruby/c VM の高速化といった mruby/c をスーファミで動作させるために必要なハックについて話しました。発
初めてのRubyKaigi参加レポート(お気持ち編) 私は高専本科5年を卒業し、制御情報と論理記号学を専門としています。卒業後は様々な経験を積みながら業務委託や正社員をしていましたがその期間は入退院を繰り返しました。そして半年前、私はエンジニアとして現在の会社に入社しました。そんな私にとって、RubyKaigiへの参加は大きな意味を持つものになりました。 カンファレンス前日、私の心はドキドキとワクワクで満たされていました。どんなエンジニアに出会えるのか、どんなスキルや知識に触れられるのか。期待に胸を躍らせながら、私は会場へと足を運びました。 しかし、RubyKaigiでの経験は私に衝撃を与えました。それは「自分の愚かさを知り、絶望の喜びを知った」瞬間でした。 高専時代、私は「誰かが作ったものを使わせてもらう」ことに慣れていました。それ自体は間違いではありません。技術の進歩は、先人の発明を応
はじめに Hnswlibは、C++で書かれたHierarchical Navigable Small World graphsによる近似最近傍探索ライブラリである。近似最近棒探索のベンチマークでも上位に登場する。Ruby bindingがなかったので作成した。 hnswlib | RubyGems.org | your community gem host 使い方 インストールは、普通にgemコマンドでインストールできる。外部ライブラリもPythonも必要ない。 $ gem install hnswlib APIは単順にバインドしたものと、それらをラップしたAnnoyライクなHnswIndexを用意した。 検索インデックスの作成は、以下のようになる。データを追加すれば、それでグラフ構造が内部で作られるので、build_indexみたいなメソッドはない。 データベクトルはRuby Array
お正月って、あらゆる気力を奪われる時期なわけですよ 長期休みって意味では夏休みも変わらないはずなのに、 世間の空気感も含めて、全力で怠惰になるというか、 ゲームをやる気力すら削がれるというかc(・ω・`c )っ そのうち布団から出るのすら面倒になり、 布団の中で積んでいた漫画を崩した結果、読むものがなくなり、 ついに積んでいた技術書を崩し始める・・・そんな時期なのでございます ・・・というのがどこまで本当かはともかくとして、 お正月にだらだらと読んでいた本がこちらに(´・ω・)っ Rubyのしくみ -Ruby Under a Microscope- 作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る Rubyist Magazine - 書籍紹介『Ru
こんにちは、hachi8833です。RubyKaigi 2023@松本に行ってまいりました。 イベント感想などは他の皆さまが続々ネット上のブログにアップしているのでそちらにおまかせするとして、今回のRubyKaigiのDay1で発表されていたlramaが気になったので手短にメモします(個人的にPEGパーサージェネレータに関心があるので)。 Lramaでリャマと読みます。LALR parser generatorのYaccやBisonの流れをくむものとして、リャマという名前にしました。LR parser generatorなのでLlama (LL)ではなくLrama (LR)と綴ります。 Ruby Parser開発日誌 (5) - Lrama LALR (1) parser generatorを実装した - かねこにっきより lramaパーサーがmasterにマージされた 発表: The f
はじめに: レイルズ王国と異端審問 Hanami について Hanami は Rails じゃない Hanami の設計思想 Hanami の各層について Router Router の高度な使い方 Controller Validation View Helper, Form Model Entity Repository SQL クエリの発行 Interactor Hanami::Interactor Hanami::Validations Test Factory Hanami の不十分な点 その他の Hanami のプロジェクト Hanami::Cli Hanami::Events Hanami 2.0 まとめ 著者について はじめに: レイルズ王国と異端審問 20XX年、僕は Ruby on Rails の規約に違反したコードを書いたことでレイルズ王国の異端審問にかけられていた。
はじめに yui-knk/lr-parser-101 というRaccを使って電卓を実装しつつ、パーサージェネレーターを利用したパーサーの作り方を学ぶチュートリアルを完走した時の覚書です。 僕個人のパーサー周りの経験としては 拡張BNF記法がちょっと読み書きできる 元々parse.yに興味があり、たまにリファクタリングのパッチを投げている Rubyソースコード完全解説 や Rubyのしくみ などを読んでRubyのパーサー周りのある程度の知識はある という感じです。 なので、どちらかというと全くの初心者という感じでもないところからの覚書になります。 LR parser 101とは? Bison Killerこと yui-knk さんが書かれた電卓を実装するチュートリアルです。 github.com Raccというパーサージェネレーターを使いつつ、パーサーの作り方を学ぶファーストステップとして非
最近はずっと ruby.wasm で遊んでます。 2023/5/19 に ruby.wasm 2.0 が出ました。 ruby.wasm 1.0 では await がうまく動かないことがあったけど、2.0 でちゃんと動くようになったんで、記念に前の記事以降にやったこと等をまとめてみた。 await ruby.wasm で await を使うには2つ問題がある。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある。 スタックサイズが小さくてすぐに SystemStackError エラーが出てしまう。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある HTML 内で <script type="text/ruby"> で気軽に Ruby スクリプトを書いたときに await を使うとエラーになってしまう。(ruby.wasm
まぁ正しく例外を使いましょうという話ですね。当たり前でしょと思う人は読まなくて良いです!! 前口上 例外に限らず、自分がプログラミングをするにあたって心掛けていることの一つに、誠実なプログラミングというのがある。最近、思いついたので勝手に名前をつけてみたんだけど。 何かっつーと、何が起こっているか、であるとか、これから使うデータはこれです、と言ったものをきちんと伝える・伝わるようにしておく、という心構えです*1。 その中でもとにかく例外はきちんと扱って欲しい事の一つなので、ちょっと自分はこーしているというのを世に残しておくのも良いかなぁと思った次第です。 例外はたくさんの重要なデータを持っている 概ねここらへんの情報は例外機構を持ってる言語なら提供してくれると思います。 例外クラス*2 例外発生時のメッセージ スタックトレース(またはバックトレース) Ruby だったら class Exc
開発スピードが遅いのか、作っているものの筋が悪いのか 前口上: rails statsで企業価値は測れるか? rails stats はRailsリポジトリの統計情報が取れる便利コマンドです。LaravelでもLaravel Statsを使って php artisan stats で同様のことができます。 結構リポジトリの内情を丸裸にするコマンドで、モデルやコントローラーのサイズからアプリの規模感が掴めますし、コードとテストの割合からしっかりテストが書かれているかがわかります。 Webサービスの事業価値は大きく見れば売上や成長率、より細かく見ると業態やtoBかtoCか、どこの産業向けか、アクティブユーザー数などで決まります。一方でIPO以降の売上成長率は従業員数に比例しているという話もあり、ビジネススキームが決まってしまえば後は頭数に比例するとも言えそうです。 Four Keysなどの開発
こんにちは、hsbt です。前回のエントリで触れたウィッチャー3は一段落しましたが、気の迷いから原神を初めてしまい無限に時間が溶けています。RubyKaigi 2023 が近づいて来ているのにこれはまずい。 今日は前回の Ruby フルタイムコミッタになってからやったこと、の定期報告シリーズとして、2023年のQ1にフルタイムコミッタとして行った仕事の一部をご紹介します。 Ruby のリリースについてのご紹介 まず、今回の仕事内容に入る前に2023年2月18日に開催された福岡Rubyist会議03で発表した、Ruby のリリースにまつわる課題をまとめたスライドをご紹介します。 上記スライドでは、毎年、または不定期に行っている安定バージョンのリリース時に発生していた、発生している課題について原因と対策、対策の結果生まれた新たな課題のループについて解説をしています。今回は発表では深くは触れなか
本記事は、ラムダノートで発売している『RubyでつくるRuby』を買っていただいた方に「読んで」とお願いするための「私家版、読み方のおすすめ」です。また、この本は当社の本のなかでも過小評価されているところがあると思うので、「気になるけど買ってない」という方に興味を持ってもらうことも目的としています。 本書『RubyでつくるRuby』を買った人にも、まだ買っていない人にも、とにかくまず意識してほしいのですが、この本はRubyの解説書ではありません。 じゃあなんの本かっていうと、これは「そもそもプログラミング言語でプログラムを書くって、なに?」という根本的な問いへの取り組み方を教えてくれる本です。 もう一度言いますが、この本はRubyの解説書ではありません。なので、「Rubyを使うつもりはなくて、PythonとかJavaScriptが好き」っていう人や、「それらのプログラミング言語をいままさに
なんか金縛りにあって眠れなくなったのでTwitter見てたら面白いやりとりをみかけた。すげー大雑把に要約すると、こんな感じ。 Railsの勉強をしてる人が「なんでHello worldしたいだけなのにDB必要なの!?DB使うにしたってMySQLなんか今必要じゃないしチュートリアルではSQLiteとかにしといてくれたっていいのに!プリプリ!」みたいな呟きをする 「いやRails使うんなら普通DB要るでしょ。なんでそこに文句言ってるの。」とツッコミが入る 「とりあえずチュートリアルは一番簡単なやり方書いといてくれた方が親切じゃないですか。」と反論 「いやだから、Railsを使うのに一番当たり前の構成を作るのにはどうしたらいいかがチュートリアルでしょ。それが必要ないんなら別なの、例えばSinatraとか使えばいいじゃん。フレームワークの特性も分からずに使っておいてチュートリアルがおかしいとか筋違
プライベートでは基本的に誰の役にも立たないプログラムを作ってるんだけど、たまにうっかり MySQL Parameters みたいな役に立つものを作ってしまう。 MySQL Parameters は5年くらい前に Vue.js の勉強のために作ってみたんだけど、結局そのまま Vue.js は触らず放置状態だった。MySQL の新しいバージョンが出るたびにデータは更新してたけど。 ruby.wasm で Ruby が WebAssembly 上で動くようになり、ブラウザ上で JavaScript の代わりに使えるようになったんで、MySQL Parameters を Ruby で作り直してみた。 ruby.wasm ruby.wasm のページに載ってるけど、これだけでブラウザ上で Ruby が動く。簡単。 <html> <script src="https://cdn.jsdelivr.ne
シンガポールで行われるRubyのカンファレンス RedDotRubyConf 2014 に出したプロポーザルが通ったので、Fluentdについて紹介してきた。旅費は勤務先のLINE株式会社に出してもらいました。 RedDotRubyConf 2014 RedDotRubyConf のオーガナイザーは配慮がすごくて、accept後の旅行の手配やら向こうでの行動やら、いろいろ気にかけてもらった。カンファレンス前夜のスピーカーディナーとかあるのも個人的にはすばらしいと思う。あれで色々な人としゃべれて、イベントへの入りみたいな気分がかなりできて落ち着けた。 Fluentdは日本国内ではもうだいぶ認知されて使われているようだけど、海外だとアメリカで少し紹介されたくらいで、ユーザも少しずつ増えてはいるけどまだまだ、という状況だと思う。なので敢えて基礎から紹介する、という意味はあるだろうと思う。 実は自
最近、機能の設計をレビューしたり話し合ったりするときに、うん・・・?ってなることがあって、でも駄目な理由をうまく説明できなかったのでちゃんと言語化してみる。ちなみにRailsの話です。 DBには事実だけを記録するようにする 色々開発してきて思ったのは、テーブルに状態を持たせるようにするとあっという間に複雑度が増してしまうということ。 status カラムや hoge_flag みたいなカラムを持つこと自体は全然否定しないけど、本当にそれが最適なのかは慎重に考えた方がよいと思う。 これは例ですけど、会員申し込み => 何か審査 => 会員登録完了 みたいなフローのアプリケーションを作る時に、会員情報のテーブルを1つだけ作りstatus 、approved_at みたいなカラムを突っ込んで、申し込み状態と申込み完了状態を アプリ側で頑張って判定しようとしている例はまれによくある。 こうすると何
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く