サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
タスク管理術
blog.agile.esm.co.jp
こんパイラ〜(挨拶)、電子の海に漂うはかなき泡沫(うたかた)、はたけやまです。 みなさん、書籍「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種類あって、弊社社員が丹念に選びました。基本的なメソッドからマニアックなメソッドまで取り揃えています! 読み札(左)と取り札(右)。読み札はるりまデザインを採用。 一部ではありますが、
こんにちは!ふーが です。 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
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ビット)や浮動小数点数サポートの有無など、いくつ
@koic です。 運用上の作業を開発者が行うというのは、昨今の DevOps ではよく見る光景だと思います。そして、運用手順の実施などにおいてダブルチェックというものを聞いたことあるでしょう。いや、むしろプロジェクトのルールで必要とされ、聞いたことがあるというレベルではないケースもあると思います。 そんなダブルチェック文化について、個人的には「ダブルチェックと聞いたらまず必要性を疑って判断する」という立ち位置で、本稿はそういった音楽性の人が書いた記事となります。 なお、一口に「ダブルチェック」といっても定義は広いため、「リアルタイムでの2人以上の指差し確認」を本稿でのダブルチェックの定義として位置付けます。 そもそも人間は間違えうるもの 本番環境へのショートサーキット 👿 Ops でも Dev のレビューフローにする 👼 形骸化したただの着席プロセスになっていないか疑う そもそも人間
こんにちは、kasumi8pon です。 先日、仕事で調査をしているときに将来エラーが起こりそうなバグを見つけました。それに対して「今は対応しない」という選択をした話をします。 将来起こりそうなエラー 将来エラーが起こりそうなことがわかったのは、全文検索エンジンを利用している箇所でした。ある ID の集合を指定しその ID のデータを結果から除く処理をしていましたが、その除外対象の ID はサービスの成長と共に増えていくことが見込まれています。 いくつかの全文検索エンジンではクエリに含められる句の最大数を設定することができますが、除外対象の ID の数がその設定の値を超えたときにエラーが生じて検索ができなくなります。 対象のデータは今後も増えていくことが予想されますが現在は上限値より遥かに小さく、データの増加ペースから見積ると、少なくともこの先数ヶ月ではエラーは発生しそうにありませんでした
@koic です。 GitHub などでイシュー管理しているプロジェクトは多いと思います。プロジェクトで開いているイシューの数はいくつありますか? 私はいくつかのプロジェクトで 100 以上のイシューが開いているのを確認しています。Rust では 8,000 以上のイシューが開いているので全然大したことないかもしれませんが、いつまでも放置していても見通しが悪いままなので整理するのは悪くないアクションです。 これは人それぞれの好みもありますが、オープンソースのような自由時間で行っている活動で、地球の裏側から開かれた (良かれとオープンされた) イシューをクローズするのは精神力を使うので、Stale bot のようなものでクローズするのは「問題 vs 私たち」の構図にするひとつの選択です。一方で業務の方ではもう少しきめ細かくクローズできると良さそうという考えを持っていて、本稿ではそんなお仕事で
エンジニアリングマネージャーの @koic です。富山Ruby会議01の主催者でもあった @mugi_uno さんがまとめられたリモートワークスタイルチェックを行ってみました。 ここ最近やった何件かのカジュアル面談を通して、"リモートワーク" のスタイルの認識に企業・個人によって大きく差がある印象を受けたので、ミスマッチを防ぐためにチェックリスト的なものを作ってみました(こういう観点もあるよ〜とかあれば知りたい)https://t.co/1faTEwNzKB— mugi (@mugi_uno) 2022年3月22日 受託開発企業である弊社アジャイル事業部でのリモートワークのチェックリストとなります。サービス企業でない受託開発企業の、ひとつのリモートワーク度合いとしてご参考ください。それでは見ていきましょう。 リモートワーク比重度 リモートワークの導入期間 どの程度リモートワークを導入してい
はじめに こんにちは、エンジニアの 9sako6 です。 昨年の夏に社内で Patterns of Enterprise Application Architecture(以下、PofEAA と呼ぶ)を読む読書会が発足し、かれこれ半年以上継続しています。 本記事では、PofEAA 読書会の沿革や、主催としての学びをつづります。 動機 私はおそらく PofEAA という本を Martin Fowler's Bliki (ja) で知りました。PofEAA の著者 Martin Fowler 氏のブログを日本語化したサイトです。 "Patterns of Enterprise Application Architecture" というタイトルにある、"Enterprise" や "Architecture" という単語に惹かれました。 当時、エンタープライズアプリケーション特有の問題や解決策に
こんにちは。ima1zumi です。 私の開発している Rails アプリでは、Excel で読み込めるように 文字コードを Windows-31J に変換して CSV を出力する機能があります。 先日、CSV 出力にて Unicode の波ダッシュ 〜 を Windows-31J に変換しようとして Encoding::UndefinedConversionError が発生して CSV 出力に失敗したことがありました。なぜエラーになるのか、どうやって対応するのかをまとめました。 まとめ encode メソッドの fallback オプションを使って未定義文字の変換先を定義することで変換できます。 str = "\u{2014 301C 2016 2212 00A2 00A3 00AC}" undefined_signs = { "\u2014" => "\x81\x5C".force_
こんにちは。wat-aro です。 Docker 環境で開発する際に VSCode の Remote Container はとても便利ですね。 でも今まで Emacs で開発してきた人は VSCode ではなく Emacs を使いたいはずです。 ここでは僕が Emacs + Docker 環境でどのように開発しているかを紹介します。 docker コマンド まずは docker コマンドを使えなくてはなりません。 Emacs 使いのみなさんはターミナルでなく Emacs から docker コマンドを叩きたいですよね。 そんなときは docker.el です。 https://github.com/Silex/docker.el docker image コマンドや docker compose コマンドが Emacs から実行できます。 docker compose up で立ち上げたコ
メリークリスマス! yucao24hours です。 こちらがおそらく 2021 年最後のアジャイル開発ブログとなります(予定)。今年も一年、私たちのブログに目を通していただきありがとうございました。 さて、今回は自分が関わっている数プロジェクトで発生した、突然の CI のふるまいの変化とその原因について調べた結果を書いてみます。 ことの発端 去る 12 月 8 日の夕方のことです。 GitHub にてとある Pull Request をマージしたところ、main ブランチにて CI が fail したことに気づきました。 CircleCI を使っているプロジェクトでしたので CircleCI の実行画面を見に行ったところ、以下のようなエラーが出ていました。 /bin/bash: line 5: docker-compose: command not found Exited with c
次のページ
このページを最初にブックマークしてみませんか?
『ESM アジャイル事業部 開発者ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く