ローファイ日記

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

福岡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…

名古屋Ruby会議03で登壇した #nagoyark03

先日の 名古屋Ruby会議03 、「未来のサーバ基盤へのHaconiwa/mrubyの関わり」ということで、Haconiwaについて、開発の近況、そして FastContainer構想 などについて話しました。 Rubyistの皆さんの前で(日本語で)トークするのは多分これが初回ということで…

mruby-uvで普通のfile descriptorが読み出し可能になるまで待つ

libuv経由で(uv_fs_open などで)作ったファイルへの参照(uv_fs_t)は基本的に非同期IOになるので、libuvのイベントループで取り扱うのに向いている。参照。 そうでないような同期的なIOのfile descriptor(fd)、たとえば普通にパイプで作ったやつや、 even…

2016年をまとめる

前回の記事で2015年までの振り返りを振り返るなどしたので、いよいよ今年を振り返ろうと思う。割とお仕事寄りで振り返る。 udzura.hatenablog.jp

2016年を振り返る、前に振り返りを振り返る

ここ3年ぐらい、ブログで一年を振り返っていないことに気づいてしまった... むしろここ3年ぐらいは、なんだかとっても情緒的なアドベントカレンダーのエントリを書いて満足している様子がうかがえる。情緒的なのはいいんだけど、燃え尽きておる... 2012年の…

私のロールモデル: エンジニア立ち居振舞い番外編

お題「エンジニア立ち居振舞い」 pepabo Advent Calendar 2016 24日目の記事です。 割と飲みの席とか、某ポエムサービスでは語ってはいるんですが、そういえばブログで書いたことがないような気がしたので父の話をします。 実は今年の福岡での新卒研修で同じ…

GMOペパボ ホスティング技術カンファレンスでツアーをしてきた #pbtech

pepabo.connpass.com pepabo.connpass.com おかげさまで盛況のうちに終わりました。資料の方も、僕は二部構成になっていますので、まとめてどうぞ。 speakerdeck.com speakerdeck.com その他、 人々の資料はこちら です。

AppArmorとDockerとその他コンテナ的プロセスについて調べた

ここ数日のAppArmorに関する調査をまとめておく。アドベントカレンダーの季節だけど、特に該当しそうなカレンダーがなかったのでただの記事を書きます... 突っ込みどころはあると思うので、修正指摘等お気軽に。 AppArmor とは AppArmorはMAC(Mandatory Acce…

mruby-passwd のサンプルからわかるmgem(あと、C言語)を書くときの罠

mruby advent calendar 8日目 としてやっていかせていただきます。7日目はけいぞうくんのすごい記事でした。 keizobookman.hatenablog.com さて先日、mrubyのgemをコーディングするスクリーンキャストを撮り、実際にコードを残しました。 udzura.hatenablog.…

mruby gemを作るスクリーンキャストです

mruby advent calendar 2016 5日目の記事なのですが、公開が遅れ失礼します。 前日の様子です。 qiita.com 先日の Fukuoka.rb で、mrbgemをライブコーディングで作る、という一芸をやったのですが、とはいえ特に映像などを記録するでもなくという感じでした。…

fusuma/mruby-fuseでFUSEを簡単に試す

mruby Advent Calendar 2016 の 2日目の記事です。 昨日は おごもりさんのRuby Miniature Book の記事でした。 今日は、最近こそこそ作っているfusumaとmruby-fuseが、なんとなく面白いおもちゃにはなってきたので、せっかくということで紹介したいと思いま…

seccompをmrubyで試す

seccomp とは、Linuxでプロセスのシステムコールの発行を制限する機能のこと。今回試すものはseccomp mode 2と呼ばれる、Linux3.5から搭載されたもので、システムコール単位での制限、特定の条件を満たす引数のみの許可/制限を実現できる。 バックエンドでは…

StackStormを動かしてみる

DevOpsリハビリ中の @udzura です。皆さんは、アジャイルとデブオプスを実現していますか? 今日は、「IFTTT for Ops」を標榜するイベントドリブンでルールベースな自動化ツール、StackStormをいじってみたので手順を残しておく。 stackstorm.com

Haconiwa 近況(released 0.3.0)

Haconiwaの近況報告です。みなさんは、庭ですか? まず、haconiwa-0.3.0 今すぐダウンロードは以下です: udzura/haconiwa - Packages - packagecloud.io | packagecloud 次に何があったかを話します。

OCI Runtime Specification を読む

某Docker CTOの記事を見てから、ちゃんと見とかないとねという気持ちになり、まずはざっくり読んだ。 なにせ不勉強は承知、メモ程度ということで間違い等のご指摘をお待ちしています。 github.com ソースは2016/08/02 14:30 時点のHEAD(95a6ecffd04732bdf7db…

Haconiwa のrpm/debパッケージを配布開始しました

packagecloud を使っております。 udzura/haconiwa - Packages - packagecloud.io | packagecloud 便利です。一応 CentOS >= 7 / Ubuntu Trusty / Ubuntu Xenial / Debian jessie で利用できると思います。 パッケージをインストールすると3つのバイナリが入…

読んだ - 21st Century C, 2nd Edition

shop.oreilly.comC言語初心者なので読んだんだけど、良かったとも言えるし、大変辛かったとも言える...

Emacsでmrubyをそこそこ快適に書く

こんにちは、これはEmacs記事です。みなさんはEmacs記事...ではないですよね...。 Haconiwaのおかげですっかりmruby人間になって久しい id:udzura です。 https://t.co/1iLQyn2rV0 バージョン 0.2 系を出しました。rlimit系のリソース制限と、コンテナ内PID=…

HaconiwaでDockerのsshdコンテナを利用してみる

こんにちは。これは技術記事です。みなさんは、技術記事ですか? まず、 Haconiwa の近況報告なんですが、この度 mruby で書き直し、ひとまず MRI 版と同じ程度の機能までは実装できました。 github.com これに伴い、Linux用のバイナリを配布する形にインス…

mruby便利tips: 利用しているmgemのリビジョンを知りたい

mgemは、 mgem: 指定にしても github: 指定にしても基本的にgitリポジトリをチェックアウトして持ってくるようになっている。なので、チェックアウトした段階でのリビジョンが知りたいことがある。 build_config.rb に以下のようなモンキーパッチを書いてお…

mruby-argtable というものを書いた

github.com 宜しくお願いします。こんな感じです。 t = Argtable.new t.literal("v", "verbose", "You are verbose") t.integer("c", "count", "<c>", "My count") t.double("s", "seconds", "<t>", "My seconds") t.string("n", "name", "<n>", "My name") t.parse([</n></t></c>…

IPC Namespaceをまたいだプロセス間で、pipeでやりとりする。mrubyで。

Introduction to Linux namespaces - Part 2: IPC | Yet another enthusiast blog! こういうブログ記事があって、元記事はC言語なんだけど、これと同じことをmrubyでもやってみたサンプル。なお元記事は clone(2) だけど今回はforkしてから unshare(2) して…

Linux Capability - ケーパビリティについての整理

Man page of CAPABILITIES を読んで自分なりに整理する。メモ気分で書いているので言葉足らず/用語が曖昧 のところがあればご指摘ください。

haconiwaの室内楽 - Re: 自作Linuxコンテナの時代

haconiwa という、いわゆるLinuxコンテナに関する様々な技術を組み合わせて、自分のためのコンテナを作ることができるRuby製のツールと、そのDSLを作った。ひとまずこれぐらいはやりたいということができていそうなので、バージョン 0.2.0 としてリリースし…

WEB+DB PRESS vol.92 に書きました

よろしくお願いします。 gihyo.jp なん年ぶりの記事かな〜と思って調べると、2014年の79号以来なので2年ちょっとぶりですね。 思えば、最初に #wdpress に書いたのも、実は新人応援号の記事だったりしたのでした。 ぼくは、冒頭の総括的な内容を書かせていた…

第9回 コンテナ型仮想化の情報交換会@福岡 やっていきました

ct-study.connpass.com お疲れ様でした。同僚のものも含め、素晴らしい発表ばかりだった中、個人的には、tahira氏の発表が、いろいろな意味でよかったなあと思って感動していました。ホスティングカジュアルにも期待しています。あと、 id:y_uuki さんの存在…

読んだ: “Quick Desktop Application Development Using Electron”

leanpub.com Electronの概念と、基本的な機能を一通りさらってみるという感じ。 触ったのは、コンテクストメニュー、トレイ、ダイアログ、通知、電源、クリップボードなど Angular.jsにも少し触っていて、Loki.jsと連携した簡単な例があった Gulpとかそうい…

miamを使ってIAMの権限をいい感じに絞って適用する

IAMというのは例のAWSのアレ。ユーザのアカウントと権限を管理するやつ。 このサービス、機能が多くてややこしいところがあり、具体的には以下のポリシーで運用するときにそのものズバリの情報がすぐに見つからなかったので、この場でまとめとこうかなって思…

2015年にリリースしたやつらの紹介

octochan github.com curlで叩くとGitHubのIssueにコメントするやつ。Ikachan for GitHub。 Sinatraベースで、以下のように config.ru を書くと動く。アクセス制限とかは別のRack Middlewareでやってください。 require 'octochan' module PB class GitHub <…

RailsGirls Fukuoka の準備を支えた技術

このエントリは、 pepaboアドベントカレンダー の10日目の記事です。1日遅れすみません! 前回は... gyugyuさん... RailsGirls Fukuoka やりました。 さっそく本題ですが、今年7月に @murasakipinko さんと shiho さん、 vareal の寺本さん を オーガナイザ…

雑にTOTPを試してみる

2要素認証でおなじみのTOTP。Railsなどでどう使えばいいか。雑に試す。 RFC 6238 - TOTP: Time-Based One-Time Password Algorithm Gemfile 今回はrotpというgemと、二次元バーコード(QRコード、というと商標なのでポリコレな表記をしていr)の表示のため…

Nishitetsu.rb をやります。という話

以前より id:nagachika さんとやろうと言っていたミートアップ、今年ついにやります。fukuokarb.doorkeeper.jpジョイナス! で、Nishitetsu.rbっちなん? という方も多いと思うのでバックグラウンドを説明すると、 Tokyu.rb | Doorkeeper というコミュニティ…

RubyWorldConference 2015 でOpenStack Ruby Wrapperの話などをした

RubyWorld Conference 2015 話しました。 Ruby way-openstack.keynote from Uchio Kondo www.slideshare.net111枚、なんとか収まりましたと言いつつ後半は早口...書いてある通り、OpenStack Ruby Wrapper "YAO" と、その周りのツールたちとで、まずはペパボ…

fluent-plugin-json_expanderというものを作ったんだ

github.com やりたいこと データとして流れてくるJSONの中身を見て、動的にアウトプットを編集したい。 こういうことができます こういう設定を書いておく。 <match access.summary> type json_expander subtype growthforecast <template> gfapi_url http://127.0.0.1:5125/api/ graph_path </template></match>…

ソフトウェアをリプレースする前に考える三つのこと

個人的には三つの基準があるという話。 そのソフトウェアが十分に古く、十分長い間保守されていないか そのソフトウェアを触れる人間が組織内に少なく、増やす手だても困難であるか そのソフトウェアで実現できることが、他の新しいソフトウェアでより容易に…

最近書いたやつ @2015-10

monkfish github.com OpenStack環境で、テナントに所属しているインスタンスのネットワーク情報を参照して /etc/hosts を自動更新するやつ。内部DNSが使えないような構成の場合に便利かもしれない。 もともと、 id:lamanotrama さんのPerlのスクリプトでAWS…

「やわらかConsul」というワークショップをした

社で、徐々にConsulへの依存度が上がってきたので、Consulパーソンをより増やすべくワークショップを開催した。gistを公開します。 やわらか Consul · GitHub サンプルプロジェクトは以下。Vagrantのプロビジョナでポンポンとステップを進められます。github…

OpenStack 上にある MySQL のデータを、ファイルベースでサーバAからサーバBに復旧する手順

ある日、 OpenStack にあるサーバAが起動しなくなった :sob: OpenStack なのでディスクイメージは見ることができる という状態。起動しないので mysqldump のようなコマンドは使えないが、以下のように復旧した。 同じアーキ、同じOSでサーバを作り直す Pupp…

Hacker TackleでHashicorpツールについて話した

hackertackle.github.io 話しました インフラ自動化とHashicorp tools from Uchio Kondo www.slideshare.net 最近とにかくPackerとConsulを触っていたのでそのお話をし、その後、なぜ僕がこのようにYak刈りに突っ込んでいくかのお話をしました、が、当日は50…

packer-provisioner-serverspec というPackerプラグインを書いた

以前、Qiitaでこういう記事を書いたんですが: qiita.com これと同じコンセプトで、最低限の設定で作成後のイメージにServerspecを走らせるためのプラグインを書きました。 github.com インストールは、今のところ自分でビルドする必要があります(もうちょ…

Faradayの話 - OpenStack クライアント開発日記 (3)

今日はFaradayの話をする。 lostisland/faradaygithub.com yao の開発の基本方針は、「必要のない依存をしない」だけれど、Faradayは数少ない依存gemに含まれている。 udzura/yaogithub.com 理由は、 Faraday自体の依存gemが少ない 利用することでの、コード…

OpenStack クライアント開発日記 (2)

重要なお知らせ プロジェクトの名前が yao になった。 udzura/yaogithub.com 背景として、OpenStackのPythonのライブラリにすでに Oslo なるものが存在した。 Oslo - OpenStack さすがにOpenStackというドメインでかぶってるのはかなり渋いので変更した。(o…