サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
www.clear-code.com
RubyとApache Arrowの開発に参加している須藤です。RubyのMemoryViewの使い方がわからないという話を聞いてsumをするサンプルを作ったので紹介します。 MemoryView RubyのMemoryViewは、ざっくり言うと、同じ型の値が連続して並んでいるデータをゼロコピーで交換するための仕組みです。まじめな説明はMemoryView: Ruby 3.0 から導入される数値配列のライブラリ間共有のための仕組みなどを参照してください。 MemoryViewを使うと、異なるライブラリー間で効率よくデータを交換したり、データを高速に処理したりできます。今回はデータを高速に処理する方の使い方を紹介します。 Rubyはすべてがオブジェクトなので1もオブジェクトです。CRubyは1はCの1としては表現していません。そのため、1 + 2は「Rubyの1をCの1に変換したもの」と「R
Rubyが好きなのにRubyよりCやC++を書いている時間の方が長い須藤です。Cで書かれたプログラムのデバッグに便利なaddr2lineをデバッグ情報が分離されたファイルに対して使う方法を説明します。 addr2line まず、前提知識としてaddr2lineについて説明します。あれ?説明するか、と思ってみたもののあんまり詳しく知らない気がするな。。。まぁ、私が知っている範囲で説明します。 addr2lineはGNU Binutilsに含まれているプログラムの1つで、アドレスを元に、それに対応するソースコードの位置を特定する便利プログラムです。といっても、これでピンとくる人はいないでしょう。どの「アドレス」を元にするの?というところがピンとこないと思います。 多くの場合、addr2lineに与えるアドレスはglibcのバックトレース用関数で出力したバックトレース内に含まれています。というか
Rubyの開発に参加している須藤です。そろそろRuby 3.4.0がリリースされるので私がメンテナンスしているdefault gem/bundled gemの変更点を簡単に紹介します。 対象gem 紹介するgemは次の通りです。default gemがRubyに組み込まれているgemで、bundled gemがRubyをインストールするときに普通のgemとしてついでにインストールされるgemです。どちらも新しいバージョンを普通のgemとしてインストールすることで、Ruby本体のバージョンを上げなくても新しいバージョンのgemを使えるようになります。 csv: bundled gem fiddle: default gem rexml: bundled gem stringio: default gem strscan: default gem test-unit: bundled gem
test-unitをメンテナンスしている須藤です。最近@tikkssとtest-unitを改良しているので紹介します。テストを並列実行できるように改良しています。 きっかけ @tikkssはRed Data Toolsに参加しているのですが、red-datasetsのテストが遅いのをどうにかするということに取り組んでいました。いくつかのケースはテスト内容を減らすことで高速化しましたが、その方法で高速化できるものは一通り対応しつくしました。これ以上の高速化はtest-unitでテストを並列実行できるようにするしかないのでは!?という気持ちになったので@tikkssと一緒に取り組み始めました。 週に1回、お昼の30分で一緒に取り組んでいます。最近は毎週水曜日の12:15-12:45に取り組んでいます。私は東京に住んでいて@tikkssは島根に住んでいるので、Jitsi Meetを使ってオンライ
Rubyの開発に参加している須藤です。Apache Arrowの開発中に、他のシステムでは受け付ける浮動小数点数の文字列表現をRubyでは受け付けないことを知ったので、Rubyでも受け付けるようにする?という話をしたら受け付けるようになりました。ということで、2024年12月にリリース予定のRuby 3.4.0からString#to_f/Kernel.#Floatの挙動が少し変わります。Ruby 3.4.0 preview2にも入っているので、これで試して問題がある場合は https://bugs.ruby-lang.org/ に報告してください。今ならまだこの挙動を元に戻せるかもしれません。 きっかけ Apache Arrowにはdecimalという精度を維持したまま小数を表現できる型があります。これ自体は一般的な型で、各種データベースでもサポートされていますし、RubyにはBigDec
こんにちは。7月にクリアコードに入社した藤田です。 クリアコードでは「フリーソフトウェアで稼ぐ」という理念をもとに、さまざまな活動がオープンになっており、 OSS開発もその一環です。 私が所属するチームは、Fluentdという拡張性の高いOSSのログ収集ソフトウェアを扱っています。 クリアコードに入社するとともに、新たなOSSに挑戦しております。 そこで、この記事では私なりのOSSに参加する方法についてご紹介したいと思います。 この内容に沿って作業されると、すぐにPull Requestを作成することができるかと思います。 それを足がかりにより大きな課題へ挑戦してみてください。 クリアコードでOSS開発 私が所属しているFluentdチームは、Fluentdの導入支援や運営サポートなどの エンタープライズサポートをベースに、Fluentdをオープンに開発しています。 我々の活動は http
本業の傍ら、「クリアコードをいい感じにする人」として働いているたなべです。「クリアコードをいい感じにする人」とは何かについては過去に『「クリアコードをいい感じにする人」の採用を開始』という記事や採用情報の『「クリアコードをいい感じにする人」』にて解説されています。 今回はその活動の中で最近取り組んでいる「共有するほど皆が得するモデルをつくりたい」という取り組みを説明します。興味を持ってくれる人・助けてくれる人と話すきっかけになることも期待しているので、記事を読んで話を聞いてみたい・してみたいと思った方は sunao.tanabe@gmail.com 宛に連絡をください。 「共有するほど皆が得するモデル」とはなにか 「共有するほど皆が得するモデル」とは、ソフトウェアに関わる人が増えれば増えるほど、そのソフトウェアに関わる人が得をするという、関わる人の増加と得られる恩恵に正の相関がある状態のこ
株式会社クリアコード > ククログ > RubyKaigi 2024でコード懇親会を開催したよ! #rubykaigi #codeparty RubyKaigi 2024の2日目の夜に開催されたコード懇親会のお手伝いをした須藤です。 コード懇親会がどういうものかなどはコード懇親会の告知でまとめたので、ここでは今回の運営がどうだったかとかやってみてどうだったかをまとめます。 開催準備 アンドパッドの広瀬さんと一緒に準備を進めていました。イベントページを作ったりリポジトリーを作ったりいろいろ調整したりとか。広瀬さんとはOSS Gateを立ち上げてからは一緒になにかやる機会がなかったのですが、久しぶりに一緒にやれてよかったです。広瀬さんとやるのはすごく楽ですね! さくらインターネットさんが共催して会場を提供してくれたので、すぐに会場が決まりました。これは非常に助かったことです。RubyKaigi
結城です。 近年、「オープンソースからの離脱」の事例が度々観測されています。 記憶に残る大きなニュースでは、2018年から2019年にかけてのRedis、MongoDBなどのプロジェクトの相次ぐライセンス変更がありました。 最近も、HashiCorp社がTerraformを非オープンソースライセンスに変更したことが話題となりました。 オープンソースからの離脱というわけではありませんが、RedHat社がRedHat Enterprise Linux(RHEL)のソースコードリポジトリの一般公開を取りやめて、ソースへのアクセスを自社のサポートサービス契約者のみに限定した事も、この流れと無関係ではないでしょう1。 このような状況を見ていて、「オープンソースって、もうアカンの? これからはSource Available?」「業務でオープンソース開発プロジェクトにコミットメントしても大丈夫なの?
2023年入社組の屋代です。テストとドキュメントのエンハンスメントを中心に担当しています。 ドキュメント上の更新日付を相談したら「肉の日リリースの29日で」と即答された 社内チャットに「ラピッドリリースサイクル」の話題が出た際、「肉の日リリースのパクリ」と発言があった ことが相次いで関心がにわかに高まり、創業メンバーの1人である足永さんに話を聞く機会を作ってもらいました。 名付けて「肉の日サロン」です。 肉の日サロン:「肉の日リリース」の誕生 (ヤシロ)――さっそくですが、こちらが肉の日リリースの始まりと聞きました 2003年 1月 29日 (水) 21:26:07 JST バージョン0.0.2をリリースします。 まだかなり不完全ですが、肉の日という理由だけでリリースです。 https://web.archive.org/web/20231124045220/https://ja.osdn
株式会社クリアコード > ククログ > RubyKaigi 2023 - Ruby + ADBC - A single API between Ruby and DBs #rubykaigi 関連リンク: 動画(YouTube) スライド(Rabbit Slide Show) リポジトリー 内容 話した内容は前述のスライドと事前情報記事を参考にしてください。しばらくしたら話したときの動画が公開されると思うので公開されたらリンクを追加しておきます。 よかった話 今年は咳さんの話がよかったです。特に「Concurrency is everywhere」と「Sequential execution is a special case」がよかったです。咳さんは多くの人が「ふつう」だと思っていそうなことに「それは違うんじゃない?」という話をすることが多々あって(多々あるように私には見えていて)、今年
RubyKaigi 2023でRuby + ADBC - A single API between Ruby and DBsというADBCの話をする須藤です。RubyKaigi 2023での私の話をより理解できるようになるために簡単に内容を紹介します。2023-04-27に開催されたSMSさん主催のRubyKaigi 2023 予習イベント ~推しトーク紹介~でもちょっと紹介しました。 なお、クリアコードはシルバースポンサーとしてRubyKaigi 2023を応援しています。 関連リンク: スライド(Rabbit Slide Show) リポジトリー 背景 私はRubyが好きなのでデータ処理をするときもできるだけRubyを使いたいです。そのためにはRuby用のデータ処理ツールが必要です。ということで、Ruby用のデータ処理ツールを整備するプロジェクトRed Data Toolsを始めました
Rubyコミッターの須藤です。 2023年4月に「すでにRubyをよく知っている」人向けの書籍研鑽Rubyプログラミングが出版されました。私はRubyをよく知っているので読む資格があるはず! 内容 Jeremy Evansさんはもりもりコードを書いているRubyコミッターです。そんな人が書いた内容なので、上級者なら知っていそうだけど中級者は知らないかも?というレベルの情報がバンバン出てきます。初心者はついていけないでしょう。あるいは書いている内容を鵜呑みにしてしまうかもしれません。 しかし、ここに書いている内容を鵜呑みにしてはいけません。サブタイトルが「実践的なコードのための原則とトレードオフ」とある通り、一部は「原則」としてベースの考えとしてもいいものですが、そうでないものは「トレードオフ」として考えなければいけません。「トレードオフ」ということはあちらを優先するとこちらがおろそかになる
2023年1月に入社した屋代(ヤシロ)です。初の記事となります。 入社するまでと入社してからの「ビフォーアフター」を紹介します。 結果から述べますと、新しい職場を探し始めた時に希望していたことのほぼすべてが実現しました。 互いの需要と供給がマッチした幸運にも恵まれ、気持ちよく、快適に仕事をしています。 キャリアの概略 新卒で入社したSIerを退職した後、10年以上業界を離れていました。 首都圏からも離れ、兵庫県内にある実家近くに転居したのも同時期です。 その後いろいろあって、地元のハローワークで再びソフトウェア開発の求人に応募し、有期雇用契約でWebシステムのテスト、ドキュメントやリリース資材の作成と送付等の業務に就いたのが5年前のことです。 業務内容や環境面で不満はなく、四半期ごとに契約の更新も続き、小額ながら時給もたびたび上がっていったのですが、それでも地方でのレートは厳しく、生活的に
はじめに つい先日、GitHubのRSA SSHホスト鍵が突如差し替えられるという一件がありました。 We updated our RSA SSH host key 詳細に関しては識者による解説に委ねますが、ちょうどタイムリーな話題だったので、SSHをより安全に利用するという観点でおすすめ設定についていくつか紹介します。 なお、クリアコードではSSH以外にもおすすめzsh設定やおすすめEmacs設定という記事も公開しているので参考にしてみてください。 2023年5月11日更新:StrictHostKeyCheckingをyesにする場合の安全なknown_hostsの更新方法について追記しました。 おすすめ設定について クリアコードでは、.ssh/configのおすすめ設定を https://gitlab.com/clear-code/ssh.d にて公開しています。 これは、社内で.ss
PGroongaのサポートサービスを担当している堀本です。 PGroongaはPostgreSQLで高速に全文検索するための拡張ですが、 Amazon RDS や Azure Database for PostgreSQL などのマネージドなPostgreSQLでは使えませんでしたが 2022-12-16 からSupabase がPGroongaをサポートしました。 これによって、マネージドなPGroongaを使うことができます! Supabaseとは Supabaseは、Firebaseに代わるオープンソースのサービスです。PostgreSQLデータベース、認証システム、API機能、エッジファンクション、リアルタイムサブスクリプションやストレージなど、開発者がプロダクトを作るのに必要なバックエンドの全ての機能を提供します。PosgresSQLはSupabaseの中核をなしており、PGro
2020年に発表され、2021年のGoogle Chrome 88以降のバージョンで既に利用可能となっている、Chrome用拡張機能の仕様の大規模アップデートである「Manifest V3」では、それまであったwebRequestと呼ばれるAPIが廃止されています。 ですが、いつまで可能かという期間は明記されていないものの、主に法人運用向けとして、特定の条件を満たすことでこのAPIの利用を継続できるようになっています。 この記事では、webRequestによるブロッキングをManifest V3でも行う具体的な方法について解説します。 背景 webRequstは、ブラウザー上で発生したHTTP(HTTPS)の全リクエストを、あらかじめ登録しておいたリスナーで監視し、読み込みの中止・別のURLへのリダイレクト・まったく別のコンテンツの返却といった任意の操作をスクリプタブルに行える、非常に強力
株式会社クリアコード > ククログ > RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow #rubykaigi 関連リンク: スライド(Rabbit Slide Show) スライド(SlideShare) リポジトリー 内容 RubyKaigi Takeout 2021のRed ArrowのトークではRed Arrowを中心にできることをたくさん紹介しました。その発展形として今年は実際に使えそうな感じになっていることを紹介したかったので、高速データ処理機能にフォーカスすることにしました。が、採択されて資料を作り始めてみると「実際に使えそう」というには各機能の実装にもう少しブラッシュアップが必要なことがわかりました。なんと。。。 ということで、Apache Arrowを使って高速にデータ処理できる各種方法につい
9月の8, 9, 10日に三重で開催されたRubyKaigi 2022に現地参加してきた福田です。 今回初めて現地参加をして、Rubyってカッコ良い!面白そう!と感銘を受けました。 本記事では、RubyKaigiに参加して感じたことを紹介します。 私とRuby 去年クリアコードに転職してきた私ですが、クリアコードの採用プロセス時に初めてRubyを触り出しました (クリアコードはRubyを得意としています1)。 なので、Rubyを触り出して1年くらいになります。 この1年は、主にFluentdのサポート2を通してRubyを触ってきました。 前職で主にC#やPythonやTypeScriptを扱っていた自分にとって、一番大変だったのは型を管理しない点でした。 Pythonでは型アノテーションを積極的に使っていましたし、他の言語でも型を宣言してコードを管理することが当たり前の世界でした。 なので
2022年6月29日にFluentdの最新版となるv1.15.0をリリースしました。 クリアコードはFluentdの開発に参加し、リリースを含めたメンテナンス作業を行っています。 今回はv1.15.0で追加された新機能を中心に紹介します。 CHANGELOG リリースアナウンス Fluentd v1.15.0の新機能 YAML形式の設定をサポート Fluentdの設定ファイルは、Apacheのhttpd.confの形式を模して、ディレクティブから成る形式を用いていました。 従来のFluentdの設定ファイルについて Apache HTTP サーバの設定ファイルについて 一方で以前から、YAMLやJSONなどのより一般的な形式を使いたいという声も挙がっていました。 Issue#554 本バージョンから、Kubernetesとの親和性を考慮して、YAML形式の設定ファイルも使用できるようになり
クリアコードに入社して半年強ほど経過した福田です。 今回は、入社した経緯や、クリアコードで働いてみて思ったことをご紹介します。 いろいろお話ししたいことはありますが、やはり何と申しましてもクリアコードといえば「フリーソフトウェアで稼ぐ」という理念です。 この理念自体、斬新さ、面白さ、やりがい、等々多くのことを味わえるものですが、 「エンジニアとしてオープンな開発をできる」ということも非常に魅力的です。 現在一緒に働く人を募集しているので、少しでもクリアコードの仕事に興味のある方はぜひご覧ください! 入社のきっかけ プログラミングは高校生の頃から好きでした。当時ちょうど話題だったHSP言語1でゲーム作りにハマったり、 Minecraft2にコンピュータやロボットを導入するmod3を入れて、木こりや畑作業などを自動化するプログラムを書いて楽しんだりしていました。 大学を卒業すると、ソフトウェア
最近、フリーソフトウェア(オープンソースソフトウェア)をいざ公開しようと思った時に、ライセンスの扱いに困った福田です。 ライセンスには様々な種類があり、シンプルなライセンスもあれば制限の強そうなライセンスもありますよね。私は最初、自分で選ぶならシンプルで制限が少ないライセンスの方が良いかな、と深く考えずに思ってしまいました。しかし、制限が強いということは、それだけ強い保護が受けられる、ということでもあると知り、世界がひっくり返ったような衝撃を受けました。 ライセンスには様々な種類があり、そこには様々な考え方がありますが、今回はフリーソフトウェアを大事にしたい場合のお勧めのライセンスの選び方や、使い方を紹介します。 フリーソフトウェアとは フリーソフトウェア1とは、ユーザーが自由に使えるソフトウェアのことで、自由(な)ソフトウェア、などとも呼ばれます2。オープンソースソフトウェア(OSS)と
xrdpはWindowsのリモートデスクトップ接続を使ってLinuxに接続できるようにするソフトウェアです。 今回は、サイバートラスト株式会社様からの発注を受けて開発した、クリップボードの挙動をより細かく制御する機能を紹介します。 xrdpでは、クリップボードを経由してテキスト・画像・ファイルのコピーを双方向で行えます。 しかし、企業で利用する場合には、容易にデータを持ち出せてしまうので、この機能が問題となることがあります。 そこで、要件に応じてより細かくクリップボードの挙動を制御できるようにする必要がありました。 これまでのxrdpでできていたこと 従来のxrdp (0.9.18まで)でも、クリップボードの機能を制限する仕組みはありました。 それが、/etc/xrdp/sesman.iniのRestrictOutboundClipboardという設定です。 [Security]セクション
結城です。 2022年2月25日に開催されたREDMINE JAPAN vol.2において、「Redmineを使った技術サポートサービスの運用効率改善事例」と題した発表を行いました。 当日の発表内容を改めてご紹介します。 スライド(Rabbit Slide Show) リポジトリー 背景 当社では「自由と稼ぐの両立」を理念として掲げています。 ここでの「自由」は「自由なソフトウェア」のことで、ビジネス的に分かりやすく言えば「OSSビジネス」ということになります。 OSSでのお金の稼ぎ方には色々ありますが、当社では以下の2つが中心となっています。 受託開発:ご依頼に基づいて何らかのソフトウェアを開発し、事前の相談あるいは事後のご了承に基づいて、その成果をGPLなどのライセンスで公開する。 技術サポート:「公式には法人向けの有償サポートを提供していないOSS開発プロジェクト」と「運用上のトラブ
Apache Arrowの開発に参加している代表取締役の須藤です。 2016年からかれこれ6年くらい開発に参加しているApache Arrowプロジェクトなんですが、このたび私がPMC chairになりました!すごくない? アナウンスメール:[ANNOUNCE] New Arrow PMC chair: Kouhei Sutou PMC chair Apache Software Foundation傘下のプロジェクトのことを知らない人からすれば「PMC chairってなに?」だと思うので、まずそのへんを説明します。 Apache Software Foundation傘下の各プロジェクトはそれぞれProject Management Committee(プロジェクト管理委員会)が管理することになっています。PMCがすることはコードを書くこと、ではありません!健全なコミュニティーを維持する
要約:OSS開発プロジェクト運営者の側でとれる対策はいくつかあるよ。issueは基準を設けてどんどん閉じてしまおう。GitHubならActionsで自動化も簡単だよ。自動テストを整備するように、必要なコストだと思って割り切るといいよ。 結城です。 GitHub Actionsに関することならなんでもありらしいアドベントカレンダーとのことでしたので、ほんのちょっとかすっているだけではありますが、4日目にエントリーさせて頂きます。 「軽率に寄せられる報告や要望がOSS開発者を疲弊させる」という問題について語るOSS開発者は少なくないです。私の観測範囲内では最近も、イシュートラッカーにissueを立てようとすること自体に待ったをかける記事1や、「要望には初手で『なぜ自分で実装しない?』と訊ね、次に『継続的にメンテナンスしてくれるの?』と訊ねるドライな対応がおすすめ」という趣旨に受け取れる発言など
クリアコードでコードを書く以外の仕事をしている吉本です。 米国に留学していたので、英語の読み・書き・話す・聞くについては、差し支えなくできることが、セールスポイントです。 さて、クリアコードでは、いろいろなソフトウェアの開発やコミュニティサポートを行っています。 技術の世界に足を踏み入れたばかりだと、日本語でも、英語でも知らない単語や、知っていると思っていたのとは違う意味の単語に日々であっています。 そういった、知っているようで知らない単語や英単語などを集めて、用語集をつくりはじめました。 はじめに クリアコードの情報公開ポリシーは「デフォルトで公開」です。公開してはいけない情報以外は公開ということです。このブログも同様に技術情報などを中心に発信をしています。 技術の世界とあまり縁のなかった私は、業務に携わる中で、理解ができなかった単語について、質問したり、検索したりして調べています。私は
結城です。 2021年9月13日から14日にかけて、東京都立大学の大学院生向け特別講義として「リーダブルコード演習」を実施しました。 演習の内容は、当社でこれまでにも行ってきているリーダブルコードワークショップを、プログラミング経験が比較的浅い・プログラミングの量がまだそれほど多くない方向けに調整した内容としました。 この記事では、実施した演習の概要と、今回意識した点を紹介します。 本文が長いため、目次を用意してみました。 発端 演習の構成 座学パート リーダブルなコードを書く意義について リーダブルコードを実践するためにまず取り組むべきこと 実際の現場での「コードがリーダブルでなくなってしまった」「リーダブルになるよう改めた」実践例 最初の実装 リーダブルでなくなった実装 リーダブルさを取り戻すための改修 コードがリーダブルでなくなっていってしまう要因 壊すのが怖くて、見て見ぬフリ 恐怖
RubyKaigi Takeout 2021でRed Arrow - Ruby and Apache ArrowというApache ArrowのオフィシャルRubyライブラリーの話をする須藤です。RubyKaigi Takeout 2021での私の話をより理解できるようになるために内容を紹介します。 なお、クリアコードはゴールドスポンサーとしてRubyKaigi Takeout 2021を応援しています。ゴールドスポンサーになるとチケットをもらえるのですが社内では使い切れないので欲しい人にあげます。2名分あります。応募方法はこの記事の最後を参照してください。 関連リンク: 動画(YouTube) スライド(Rabbit Slide Show) スライド(SlideShare) リポジトリー 背景 私はRubyが好きなのでデータ処理をするときもできるだけRubyを使いたいです。が!残念ながら
次のページ
このページを最初にブックマークしてみませんか?
『クリアコード - ソフトウェアの開発・技術支援(Groonga/Fluentd/Apache Arrow)』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く