ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

mruby-metaprog がvanilla mrubyから切り出された話

タイトルの通りですが、そのようになるそうです。 あー、先日下呂温泉で開催されたSWESTにて、Matzさんを交えて徹夜(!)でmrubyについて協議した結果です。思ったほどRAMが大きいマイコンばかりでは無く小さい物もふつーにあるので、mruby本体もちいさくあ…

CRIU で Mount namespace を再現する

人としてやっていると、いろいろなことがあります。今日はタイトルのことをまとめます。 コンテナとMount namespace LinuxのNamespace機能を用いて、コンテナの中で独立してマウントポイントの情報を持たせることができます。 具体的な例として、以下のよう…

社内勉強会でpecoの紹介をした

シェル大活用講座が開かれたのでハングアウトでお話をした。 pecoがやっていること自体は、 @hsbt さんが紹介したfishなどを使うと別のプラグインで、よりシェルに統合された形でファジー検索を利用できたりもするのですが。 www.hsbt.org peco 自体はUNIX的…

エンジニアフレンドリーシティ宣言に寄せて

私が住んでいる市の自治体がこのような取り組み - エンジニアフレンドリーシティ宣言(efc)をしています。 efc.isit.or.jp その取り組みのキックオフイベントに行ってまいりました。普段お世話になっている id:edvakf さん、 id:matsumoto-r さんを始めとし…

cloneのCLONE_PARENTフラグの挙動を観察する

fork(2) したら子プロセスができる、皆さんもそう思っていると思います。fork(2)でプロセスを作って親でwait(2)などをして面倒を見る、というのがUNIXのプロセスの作り方の基本です。 例えばparentというプログラムをforkし、child 1からさらにchild2をfork…

ざっくりした活動記録 - 2018年7月、8月半ば

下半期は1ヶ月ごとに雑でもちゃんと振り返るというのをやっていきたい といったはずが盆も過ぎてしまった。今までの分でも書いておこうと思う。次は9月頭だが、振り返る期間が短い...。

CRIU on Haconiwa 現状確認

こんばんは、皆さんはチェックポイントアンドリストアでしょうか。そのようにやっていきましょう。今日はCRIUの話をします。 CRIU について プロセスのチェックポイントイメージを取り、そのイメージからプロセスを再生する技術です。LinuxではだいたいCRIU…

Fukuoka.rb #100 を開催した #fukuokarb

2014年からベストエフォートでやっているFukuoka.rb、この度100回目ということで少しだけ拡大版でお送りした。 fukuokarb.connpass.com 発表資料などは上のイベントページに纏まっている。

memory cgroupのevent_controlについて

前提 v1のドキュメントを眺めて全貌を把握しようとしています v1のドキュメント自体はoutdatedとされています v2の場合については今後検証予定ですが、大きく変わらないかと思うので参考になると思います 用語などまだ曖昧な理解なので、優しく突っ込んでい…

2018年上半期(ちょっと7月含む)を振り返る

社で提出した振り返り資料をベースにパブリックでも書いとこうかと思う。

suEXEC セキュリティモデルをベースにしたコンテナ起動時のバリデーションの提案

本稿は、第2回WSA研究会で発表した内容の予稿である。末尾に当日の質疑応答を追記している。 websystemarchitecture.hatenablog.jp 発表スライド speakerdeck.com

serverengine を使い、Rubyでもサーバーを書こう

Rubyを書いていると、サーバを書きたくなることがあります。皆さんもそうだと思います。 ということで今日はRubyでスッとサーバを書くためのgem、serverengineの簡単な使い方メモ。 github.com Rubyでサーバを書きたくなった時 そもそも的に、Rubyでただサー…

initのお仕事〜tiniのコードを読んでみた

急にinitが何をしているのか、何をすべきなのかが気になったので調べてみた。一緒に600行強のinit実装であるtiniのソースコードをざっくり読んだ。この場を借りてメモしていく。 the PID 1 problem RubyコミュニティなどではPassengerで有名なPhusion社のブ…

Ruby25周年記念イベントでお話ししました #ruby25th

登壇者枠です。 Infrastructure as Code/mrubyなどによるConfiguration as Codeの話をしました。 speakerdeck.com もともとこの倍の分量のスライドが発生して笹田さんにご心配をかけてしまいましたが、なんとか時間通り? 話せました...。 当スライドで後半…

Ubuntu 18.04 LTS (Bionic Beaver)でビルドするHaconiwa

思うところがありHaconiwaの開発を再開し、一緒に大きめの変更を入れていこうかなという気持ちになった。 とりあえず、ずっとXenialを使っていたのだけど、Ubuntu 18.04 LTS (Bionic Beaver) を先んじて使って開発するようにした。もう直ぐ alpha 2 とのこと…

2017年(の福岡飯)を振り返る

本振り返りの続きの記事です。 udzura.lolipop.io

福岡Ruby会議02を開催していた #fukuokark02

regional.rubykaigi.org そう、実は開催していたのです!! 開催後約一ヶ月経っているが、実行委員長として何か書いてみます。 とりあえずいい写真です。 (Photo by id:asonas) 経緯など

今年参加したアドベントカレンダーまとめ

Qiita上のアドベントカレンダーは、Qiitaで書いたほうがリンクされたり連携がいいのでそっちで書いていましたが、本ブログだけを購読されている人のためにこの記事でまとめておきます。 mruby qiita.com OSS紹介 qiita.com Linux qiita.com ngx_mruby qiita.…

PrometheusのExporter周りをまとめる

Mackerelの3周年(おめでとうございます!)、OSSではPrometheusの隆盛もあり、監視やモニタリング周りが話題になっているのを観測している。皆さんは、監視されていますか? 個人的にも最近はロリポップ!マネージドクラウド周りの開発などでPrometheusを触…

Developers Summit 2017 KyushuでFukuoka.rbの話をした

event.shoeisha.jp ということでデブサミデビューさせていただきました。 FGNなどのつながりでご縁のあったオルターブース小島さんにご紹介いただきました。福岡大名最高!ありがとうございました。 資料です。

コンテナと人間の一ヶ月

ブログ、一ヶ月ぶりのようです。 @udzura です。ところでみなさんはコンテナですよね? そういう感じです。 ここ最近のアウトプットをまとめたりしておきます。先に行っておきますがどれもLinuxコンテナの話です。

福岡Ruby会議02 - もう一度、Rubyと出会う

regional.rubykaigi.org よろしくお願い致します。 以下は、動き始めるにあたってesaに書いた情緒的な文章です。 福岡、飯塚テックだったり僕たちのFukuoka.rbだったり比較的小さなコミュニティは続いているけれど、九州Ruby会議01ごろの盛り上がりは(想像…

cgroup経由でシステムの利用状況を知る - CPU編

システム全体の負荷を計測する方法は、ロードアベレージ、topなどprocpsスイート、sysstat系のツールなど色々あるが、特定のコンテナ単位での負荷状況を知りたい。 コンテナ単位というのはつまり、cgroupの仕組みを用いて、一つのコンテナに所属しているプロ…

社内向けホスTechMTG #3 で「自分のための問題解決」と題してしゃべった

久しぶりのローファイ日記です。 ペパボは幾つか事業部があって、事業部に所属するエンジニア〜たちで社内向けに発表会をしています。詳細は以下のようにテックブログでレポートしていたりします。 tech.pepabo.com 読んで分かるようにめちゃくちゃ楽しそう…

mrubyとseccompとptraceでシステムコールをとにかく追いかける

世の中にはseccompというものがあり、知られています。皆さんはBPFですか。人は、、、 seccompについては以前書きました。Linuxのシステムコール呼び出しをフィルタリングして許可したり禁止したりするものです。 udzura.hatenablog.jp さて今回、拙作 mruby…

straceがどうやってシステムコールの情報を取得しているか

興味があって調べていたら、少しだけ分かったのでまとめておきます。当然間違った箇所もある、あと考慮が漏れている箇所もあるかと思いますのでツッコミをお願いします…

Cレベルのライブラリコールを“Hijack”してみる その2 - libmruby.aを組み込む

少し間が空いたんですが udzura.hatenablog.jp こちらの続きです。 今回は LD_PRELOAD するshared objectにlibmruby.aを組み込み、mrubyで置き換え対象の処理を記述できるようにする。 組み込み用の libmruby.a を作成する

第9回フクオカRuby大賞を受賞しました

www.digitalfukuoka.jp 去年より開発している、mrubyでコントロールできるLinuxコンテナランタイム Haconiwa で、第9回フクオカRuby大賞・県知事賞をいただきました。 写真は受賞決定直後の様子です。 今日の福岡Ruby大賞で @udzura さんが大賞で100万円とっ…

Linuxプログラミングインターフェースを読んだ(一周目)

読みきった。一周目の所感を書く。 Linuxプログラミングインタフェース作者: Michael Kerrisk,千住治郎出版社/メーカー: オライリージャパン発売日: 2012/12/01メディア: 大型本 クリック: 14回この商品を含むブログ (7件) を見る

Cレベルのライブラリコールを“Hijack”してみる その1。

Rubyの、 Time.now は最終的には clock_gettime(3) を呼び出しているそうな。 masterの当該箇所 Time.now は Time.new を無引数で呼び出しているに過ぎない ここで、 Time#initialize の実態は time_init time_init は引数がない場合 time_init_0 を呼ぶ tim…