サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
blog.agile.esm.co.jp
こんにちは!maimuです。 私が参加しているプロジェクトでは、複数のRailsアプリケーションが稼働しています。デプロイの方法として Docker Compose で対応をしていましたが、夜間にデプロイ作業をする必要があり、毎回タイミングの調整作業が発生していたため、ゼロダウンタイムでデプロイが可能なKamalに移行することになりました。 Kamal でデプロイを実行する場合、Rails アプリケーションのデータベースに SQLite を利用していたり、その他のミドルウェアを必要としない場合は設定ファイルは初期設定を少し編集するのみで対応ができます。 しかし、実際にサービスとして利用されているアプリケーションの多くは構成がもっと複雑であり、Kamal の設定においても状況に応じて考慮すべき点が変わっていきます。 今回のデプロイ方法の移行を通じて学んだ Kamal の設定部分に焦点を当てて
こんにちは。福井で働く taiju です。 この記事は ESM Advent Calendar 2024 の 1 日目の記事です。 先日、アジャイル事業部内で「Rails 8 を語る会」というイベントを開催しました!Rails 8 の新機能や変更点について、みんなで知見を共有しながらディスカッションしたこのイベントは、学びも多く、盛り上がりました。この記事では、その内容をレポートします。 Rails 8 を語る会とは 2024 年 11 月 8 日、Rails 8 がリリースされました。今回のリリースでは、#NOBUILD、#NOPAAS という新たな標語が掲げられ、それに関連する機能が多数追加されています。 「Rails 8 を語る会」は、これらの新機能を把握し、それを実務にどう活かしていくかを考える場として開催されました。 なぜ Rails 8 を語る会をやろうと思ったのか 私は他事業
こんにちは。@junk0612 です。 今回は、RubyKaigi 2024 の参加記と、自分が初めて登壇した感想、および裏話を少しお届けしようと思います。 登壇以外の参加記 Day0 11:35 HND → 14:20 OKA の飛行機で沖縄へ移動しました。初めて空港ラウンジを利用してみたり、待機スペースで同便の Rubyist のみなさんにお会いしたりなど、RubyKaigi の機運の高まりを感じました。やや余談ですが、@kasumi8pon が土曜日から前入りしていて、場所も考えるとかなりアリな選択肢だったなあとちょっと後悔したりしました。来年はどうしよう。 今回は otoge.rb1 の会合がバスで30分かかるラウンドワンで行うしかなかったためスケジュールがタイトになってしまい、行脚はつけられたものの正直音ゲー欲は全然発散できなかったです…… 夜は弊社主催の Night Cruis
RubyKaigi 2024 の2日目に開催される Lightning Talks に弊社 S.H. が登壇します。 rubykaigi.org ここでは、登壇者の S.H. からトークの内容について軽く紹介をします。 Contributing to the Ruby Parser (S.H.) 構文解析研究部のS.H.です。『Contributing to the Ruby Parser』というタイトルでLTをします。 タイトルからわかるようにRubyのパーサーへのコントリビューションについての話です。 内容としては、私がどのようにしてparse.yへのコントリビューションをはじめたのかに始まり、parse.yからリテラルオブジェクトの生成をなくしていく対応やUniversal ParserのC APIの依存削減などを話します。 私はいかにして心配することを止め、Rubyパーサーにコント
こんにちは、永和システムマネジメントの内角低め担当、はたけやま( @htkymtks )です。 みなさん、RISC-Vをご存知ですか?RISC-VはCPUの命令セットアーキテクチャ(ISA)のひとつで、使用料のかからないオープンソースライセンスで提供されていることや、命令セットの美しさから注目を集めています。私も以前にRubyでRISC-Vシミュレータを作ったりしてました。 今回はRISC-Vを用いて、OSもライブラリも使用しないベアメタル環境で動作するプログラムを作成してみようと思います。 インストール まずはRISC-Vのクロスコンパイラとエミュレータをインストールします。クロスコンパイラのビルドには約1時間ほどかかるので、時間の余裕がある時に行ってください。 $ brew tap riscv-software-src/riscv $ brew install riscv-tools
はじめに 近ごろ IoT プログラミングしたい欲が再起動した e.mattsan です。 IoT とは言っても Raspberry Pi などではマシンパワーも小さくなく、外部にデバイスを接続する以外は PC のプログラミングとほぼ変わりありません。 今回の記事は、題名の通り、ブラウザ上に表示したボタンでブレッドボード上の LED の点灯状態を制御し、ブレッドボード上のスイッチでブラウザ上のアイコンの表示状態の変更をすることを試みます。 はじめに Elixir とウェブアプリケーションと IoT 用意するもの Nerves アプリケーションで LED を点滅させる GPIO パッケージを追加する LED を点滅させる スイッチで LED を点灯消灯する ソフトウェアインタフェースを追加する ウェブアプリケーションを作る ノードを接続する Nerves アプリケーション側のノードを設定する
こんパイラ〜(挨拶)、電子の海に漂うはかなき泡沫(うたかた)、はたけやまです。 みなさん、書籍「RubyでつくるRuby」をご存知ですか?Rubyを使ってRubyのサブセット「MinRuby」のインタプリタを作ることで言語処理系作成のエッセンスを学ぼう!という本です。 RubyでつくるRuby https://www.lambdanote.com/products/ruby-ruby 今回は、この本のMinRubyを題材に、簡易なMinRubyコンパイラをRubyで作成してみようと思います。 (この記事は ESM Advent Calendar 2023 の4日目の記事になります) Gitリポジトリ 今回作成したコンパイラのソースはこちらのgitリポジトリに置いてます。 https://github.com/thata/minrubyc-m1 言語仕様とターゲット環境 言語仕様 MinRu
はじめまして。 2023年6月に中途入社しましたS.H.と申します。 入社エントリということで、自己紹介と実際に入社してみてどうだったかを書きたいと思います。 自己紹介 S.H.というハンドルネームで活動しています。 Rubyのお膝元である島根からリモートで働いています。 またHamada.rbという地域.rbのオーガナイザーもしており、Ruby Hacking Challenge in Hamada.rbというRuby本体のコードを読んだりパッチを書いたりする会も主催しています。 hamadarb.connpass.com そういった背景からRuby本体にPRを投げていたりもしますー。 最近はMastodonやcypress-railsなどにもPRを投げたりして、活動範囲を広げていってます。 最近、PR投げたのだとこの辺とか。 github.com github.com あとはRubyの
こんにちはcolor_boxです。 この半年くらい、社内でBliki (ja) を読む勉強会をしています。 まず、Bliki (ja) とは何か? Bliki (ja) とは、マーチン・ファウラー氏の個人サイト Martin Fowler's Bliki の日本語翻訳サイトです。 bliki-ja.github.io マーチン・ファウラー氏の記事が邦訳されて公開されており、このサイトの記事を読書会で読む対象としています。 書籍を題材とした読書会と異なり、1回の中で記事を1つか2つ指定し、それをその場で読みます。読んだらその内容について集まったメンバーでディスカッションするという流れです。チームや知見の異なるメンバーが参加するとディスカッションでその人ならではの興味深い話が聞けたりします。 本記事では、このような読書会を紹介するとともに、会の中でなされた会話や参考として貼られた書籍、Webペ
私たち永和システムマネジメント (ESM, Inc.) は RubyKaigi 2023 に8つの関わりをします。 1. @ima1zumi と @koic が RubyKaigi 本編に登壇 Day 1 に @ima1zumi が『UTF-8 is coming to mruby/c』というタイトルで登壇し、Day 2 に @koic が『The Resurrection of the Fast Parallel Test Runner』というタイトルで登壇します。 blog.agile.esm.co.jp 2. 現地に8名、オンラインで7名の総勢15名が参加 @fugakkbn, @haruguchi, @ima1zumi, @junk0612, @kasumi8pon, @koic, @m_pixy, @wai-doi が現地参加します。また、7名のメンバーがオンライン参加します。
こんにちは。はるぐちです。 RubyKaigi 2023 の開催が近づいてきており、各企業からさまざまな告知があったりと、にわかに盛り上がりを見せています。弊社のCoffeehouseスポンサーとして協賛する旨を告知しましたが、それだけでは終わりません! このたび永和システムマネジメントは「Rubyメソッドかるた」を作成しました。 RubyKaigi 2023にて数量限定で無料配布します! Rubyメソッドかるたとは 遊び方は一般的なかるたと同じで、読み札の情報をもとに該当する取り札を素早く取るというものです。読み札にはメソッドの情報が、取り札にはメソッド名が書かれています。(下記参照) メソッドは全部で50種類あって、弊社社員が丹念に選びました。基本的なメソッドからマニアックなメソッドまで取り揃えています! 読み札(左)と取り札(右)。読み札はるりまデザインを採用。 一部ではありますが、
はじめに こんにちは、@wai-doi です。RubyKaigi 2023 が楽しみですね。 最近お仕事で、Ruby の Tempfile.open でテンポラリファイルを作成しているコードを読んで、理解する機会がありました。 Tempfile.open のリファレンスマニュアルを調べてみると、他にもTempfile.create でテンポラリファイルを作成できることがわかりました。 そのとき、Tempfile.open と Tempfile.create 微妙な挙動の違いに興味を持ったため、調べたことを紹介しようと思います。 テンポラリファイルを作る 4 つの方法 Ruby の tempfile ライブラリには、テンポラリファイルを作るための Tempfile クラスが含まれています。 tempfile ライブラリは組み込みライブラリではないため、require が必要です。 requi
こんにちは!ふーが です。 RubyKaigi 2023 の開催まで 1 ヶ月を切りましたね。5 月 11・12・13 日に開催される RubyKaigi 2023 に私たち永和システムマネジメントは Coffeehouse スポンサー として協賛します。Coffeehouse スポンサーをやりたい!と言ったのは私なのですが、最初にそのきっかけを紹介させてください。 きっかけ 昨年の RubyWorld Conference 2022 に参加したおり、朝食を摂ろうと喫茶店に立ち寄りました。 注文を済ませて待っていると、続々と Rubyist が来店してあっという間に店内が Rubyist だらけになる、というおもしろい経験をしました(「Rubyist はひかれ合う」と誰かが言っていた気がする)。 「自分も今このコミュニティの中にいるんだな」と感じられて、その体験がなんだか忘れられなくて、「
前回は「Elixir はビット列操作が得意」という話をした e.mattsan です。 三たび、RISC-Vシミュレータの作り方〜紅玉と錆と霊薬と〜 - ESM アジャイル事業部 開発者ブログ しかし残念ながら、誰もがいつでも Elixir を使えるとは限りません。 Elixir は使えないけれど、ビットと戯れたい。 それならば、自分が使う言語で戯れるしくみを自分で作ればいいじゃないか。 自分が得意とする言語を、自分でビット操作を得意なものにしてしまえばいい。 今回は、そんな話です。 ここではわたしが一番長く使ってきた C++ を使いますが、みなさんは、自分が得意とする言語ならどう書くか、想像しながら読んでみてください。 また、ここでのコードは C++11 までの仕様しか利用していないので、それほど難しくはないと思います。 たぶん。 なお。 本格的なライブラリを作成するのは、この記事1つで
うおおおおおおおおおおおおおおおおおおおおおおおおおお。 子育て奮闘中の @wat-aro です。 この記事は ESM Advent Calendar 2022 - Adventar 19日目の記事です。 ある日 Slack のチャンネル一覧を眺めていると #うおおおおおおおおおおおおお というチャンネルがありました。 みんなで うおおおおおおおおおおおおお しています。 うおおおおしている様子 このチャンネル見つけてから毎日 うおおおおおおおおおおおおお しているわけですが、もっと うおおおおおおおおおおおおお したいわけです。 そんなわけで うおおおおおおおおおおおおお するプログラミング言語をつくりましょう。 繰り返し同じ言葉を使えるような言語であればたくさん うおおおおおおおおおおおおお できます。 そうですね。 Brainf**k*1 ですね。 Brainf**k での Hell
ESM Advent Calendar 2022 - Adventar 8日目の記事です。 こんにちは color_box です。 Rubyのバグ報告や機能の提案などを議論するbugs.ruby-lang.orgに初めてissueを立てる機会がありました。立てたのは下記のissueなのですが、これを作成するまでにいくつか知見が得られたため、それについて書きます。 bugs.ruby-lang.org まずPathname#joinの利用時に下記のような挙動に遭遇しました。 irb(main):003:0> Pathname('/foo').join('bar', 'baz') => #<Pathname:/foo/bar/baz> irb(main):004:0> Pathname('/foo').join('bar', '/baz') => #<Pathname:/baz> irb(ma
ESM Advent Calendar 2022 - Adventar 7日目の記事です。 こんにちはcolor_boxです。 プロジェクトで、要件一覧としてRSpecのE2Eを利用した話をします。 背景としては、中間成果物としてのドキュメントをできるだけを作らないようにしているところ、予期していないタイミングで開発運用中のシステムの要件一覧が欲しいという依頼されたときどうするか? 刻一刻と変化する要件ひとつひとつについてのドキュメント化とメンテナンスはしていません。 こういったリクエストに対して、RSpecのE2Eテストで担保されている要件をひとまず出力するという手法で対応したアプローチを紹介します。 下記のような記述をspec_helperに追記して全てのE2Eテストを実行します。 config.before type: :feature do |feature| File.open(
こんにちは!ふーが です。 あっという間に 12 月ですね。12 月といえばアドベントカレンダー! ということでこの記事は ESM Advent Calendar 2022 の 6 日目の記事です! adventar.org この記事の目的 RBS が Ruby 本体にバンドルされるようになってからまもなく 2 年となります。 「型導入を試してみた」という Web 記事はいくつか見かけるのですが、実際の運用例についてはまだあまり語られていません。 私が関わるプロジェクトでは半年ほど前に型の導入を始め、運用してきました。 その導入方法や運用方針についてお伝えすることで、「そんな感じでできるんだ!」というのを感じていただいて、型を導入して運用してみよう!というプロジェクトが増えればうれしいなと思いこの記事を書きます。 なお、この記事の内容は Kaigi on Rails 2022 で私が登壇し
ESM Advent Calendar 2022 - Adventar 5日目の記事です。 こんにちは。 ima1zumi です。 アジャイル事業部で行っているエンジニアお茶会という場について紹介します。 エンジニアお茶会とは何か? エンジニアお茶会とは、技術ニュースなどのトピックを持ち寄って技術ネタで雑談する会です。 Helpfeel さんの技術ブログで "「エンジニアお茶会」という取り組みについて" という記事があり、こちらを参考にはじめました。 blog.notainc.com 当時「他のプロジェクトのメンバーとも技術的な雑談をして交流したい!」と思っていたところにこのブログを読んで、まさにこれだ!と感銘を受けたことを覚えています。2022年2月から開始して今までに10回開催しました。 会の概要 月1回1時間、オンラインで開催しています。 会場は Slack の Huddle です。
こんにちは。永和システムマネジメントの内角低め担当、はたけやまです。 今回は、11月前半の私の可処分時間の全てを注ぎ込んだパズルゲーム「Turing Complete」を紹介します。 Turing Completeとは? store.steampowered.com 宇宙人にさらわれた主人公が、宇宙人から出題されるパズルを解きながらデジタル回路を作成していく論理パズルゲームです。 Steamで早期アクセス版として配信されており、お値段は2050円。対応プラットフォームWindows、macOS、SteamOS + Linuxです。 Turing Complete は「デジタル回路設計パート」と「プログラミングパート」の二つのパートを行き来しながらゲームが進みます。 デジタル回路設計パート 〜 NANDがあればなんでもできる https://en.wikipedia.org/wiki/NAN
永和システムマネジメント東京支社オフィスは2022年10月を持って閉鎖します。 2015年5月に神田須田町に移転して以来、コワーキングスペースを設けたオフィスとして、 Asakusa.rb をはじめ多くのコミュニティに活用いただいておりましたが、リモートワークの推進もあり、この度閉鎖する運びとなりました。 今後については、固定オフィスを閉鎖した代わりに、レンタルオフィスである WeWork との契約を進めました。リモートワークに加えて WeWork を、働き方の選択肢のひとつに加えて業務を推進していきます。 WeWork の会議室を活用した対面でのコミュニティ活動についても、コロナ禍の様子を見ながら検討していきたいと考えております。引き続き多くの皆様とお会いできることを楽しみにしています。 最後に、来ていただいた多くの方々のサインを貼っておきます。皆様、ありがとうございました! 株式会社永
読書の秋ですね。書棚を見ればその人がわかるといいますが、永和システムマネジメント アジャイル事業部でも運用している書籍購入支援制度で購入されている書籍をリストアップします。 この制度自体が運用し始めて長くなってきているため、直近の一年くらいに絞った内容です。メンバーたちがどのような書籍を購入しているか、読書の秋の参考にどうぞ。 Ruby JavaScript / TypeScript Rust Web データベース クラウド ソフトウェア設計 Linux 運用 その他 最も購入されていた書籍 (ESM Bookshelf of the Year 2022) 🥇 ★は複数人が購入。★★はその中でも購入が多かったタイトルです。 Ruby @kakutani フェローが絶賛翻訳中の『研鑽Rubyプログラミング β版』がよく購入されており、特に昨年の Kaigi on Rails での @kak
こんにちは。 Ruby x Agile というグループに所属しながらRubyにまつわる記事を一つも書いていない気がするe.mattsanです。 今回もRuby以外のお話です。 RISC-Vシミュレータ作り、おさらい プログラミング言語Elixir RV32Simを実行する RV32Sim.Register 初期化 読み出し 書き込み RV32Sim.Memory 初期化 読み出し 書き込み Memory-mapped I/O RV32Sim.Instruction add beq RV32Sim.CPU RV32Sim プログラミング言語には意外な側面がある RISC-Vシミュレータ作り、おさらい 今、なにやらRISC-Vシミュレータ作りが流行っているようです。 局所的かもしれませんけれども、流行っていることにします。 Rubyでできる!RISC-Vシミュレータの作りかた 〜 From 4
ソフトウェアエンジニアの 9sako6 です。 Ruby でソフトウェアを開発する際、パフォーマンス低下を引き起こすような良くない Redis のクエリが入り込まないよう RuboCop に見張ってもらうようにした話をします。 パフォーマンス低下の実例 私が開発に参加している Web サービスでは、Redis の不適切な使い方がボトルネックとなっていくつかのページのレイテンシーが高まっていました。 主に悪さをしていたのは KEYS クエリです。 KEYS クエリの平均処理時間は約 430 ms でした。これが Web ページのレイテンシーに含まれるのはかなり痛いです。 公式ドキュメント (https://redis.io/commands/keys/ )には、はっきりと本番環境での使用に注意するよう書いてあります。 Warning: consider KEYS as a command t
はじめに こんにちは。入社して4年目になりました、wai-doi です。 お仕事でRSpecでテストを書いていて、 「引数に特定の値が渡された時だけスタブしたい」 ということがありました。そのときどのように書けばよいか分からなかったので、今回は調べたこととその方法を書きます。 実行環境 Ruby 3.1.2 RSpec 3.11.0 サンプルコード 例えば以下の Shopper#buy_fruits メソッドのテストをしたいとします。単純に配列の ['apple', 'banana', 'orange'] を返します。 class Shopper def buy_fruits(shop) basket = [] basket << shop.sell('apple') basket << shop.sell('banana') basket << shop.sell('orange') b
2022年9月8日(木) から10日(土) の3日間にわたって開催される RubyKaigi 2022 に永和システムマネジメントから @fugakkbn (Day 1) 、 @koic (Day 2) 、 @ima1zumi (Day 3) の 3人が登壇します。 rubykaigi.org ここでは、それぞれの登壇者から講演内容について軽く紹介をします。 9月8日(木) 14:10-14:45 @fugakkbn 『Types teaches success, what will we do?』 gem_rbs_collection をご存知でしょうか。 名前からも想像できるように、様々な gem の RBS(型定義)ファイルが集まっているリポジトリです。 世の中の多くのプロジェクトではまだ Ruby の型を本格的に導入している例は少ないものと思います。その理由の1つとして、gem の
こんにちは、ふーが(@fugakkbn)です。 暑さも厳しさを増して参りましたが、入社して5ヶ月弱となりました。 人にも環境にも恵まれて、毎日楽しくプラグラミングできていることに幸せを感じずにはいられない今日この頃です。 さて、この5ヶ月を振り返ってみると、とにかくプログラミングが楽しい!WEB エンジニア最高!!という気持ちが98%くらいなのですが、2%くらい「苦労したな…」と思うことがあります。 それがタイトルにもある「コードを読み解く」ことです。 何に苦労したのか プロジェクトに入った当初は本当にコードが読めないし、何をどこから読んだらいいのかもわからない状態でアタフタしていました。 モデルは300近くあるし、テストは1万ケース以上あるし…規模の大きいプロジェクトが初めてだったこともあり、断崖絶壁を見せられて「登れ」と言われているような気持ちになりました。。。 しかし数ヶ月経った今、
最近 ESM と RISC-V のロゴの配色が似ていると感じている @wat-aro です。 はたけやまさん の blog.agile.esm.co.jp はおもしろい記事でしたね。 この記事は最後こう締めくくられています。 以上、Rubyを使ったシンプルなRISC-Vシミュレータの作り方のご紹介しました。 皆さんも梅雨の時期のおうち時間にお好きなプログラム言語でCPUシミュレータ自作なんていかがですか? なのでこの記事を参考に Rust で RISC-V シミュレータを作成しました。 https://github.com/wat-aro/rv32sim.rs 処理の流れはだいたい元記事と同じですのでもっと詳しく知りたい人は元記事からどうぞ。 メモリ まずメモリの定義です。 write と read と、初期データの読み込み用の initialize メソッドを持っています。 32 bit
HELLO WORLD〜 はじめに こんにちは、永和システムマネジメントの自作CPUおじさん、はたけやまたかし( @htkymtks )です。 今回はRubyを使った小さなRISC-Vシミュレータの作り方をご紹介します(以前もシミュレータの記事を書いたのですが、シミュレータに大幅に手を入れたので、それに対応したHDリマスター版です) リポジトリ (今回ご紹介するシミュレータのリポジトリはこちら) thata / rv32sim https://github.com/thata/rv32sim RISC-Vとは RISC-VはCPUの命令セットアーキテクチャ(ISA)のひとつで、使用料のかからないオープンソースライセンスで提供されていることや、命令セットの美しさから最近注目を集めています。 仕様 RISC-Vの仕様にはワード幅(32ビット、64ビット)や浮動小数点数サポートの有無など、いくつ
次のページ
このページを最初にブックマークしてみませんか?
『ESM アジャイル事業部 開発者ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く