Skip to content

Instantly share code, notes, and snippets.

View udzura's full-sized avatar

Kondo Uchio udzura

View GitHub Profile

@udzura のやってきたこと

興味関心分野

リアクティブなWebホスティングシステムに向いたコンテナランタイムの開発

<script async class="speakerdeck-embed" data-id="a52bd0069cd447a78681bc951d76aca6" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
@udzura
udzura / env.bash
Last active January 28, 2021 07:08
## CONTAINER RUNTIME MEETUP #3 working environment
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.10
Release: 20.10
Codename: groovy
$ uname -a
Linux ubuntu-groovy 5.8.0-38-generic #43-Ubuntu SMP Tue Jan 12 12:42:13 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ runc -v
bpf(BPF_MAP_CREATE, {map_type=BPF_MAP_TYPE_ARRAY, key_size=4, value_size=32, max_entries=1, map_flags=0, inner_map_fd=0, map_name="", map_ifindex=0, btf_fd=0, btf_key_type_id=0, btf_value_type_id=0}, 120) = 4
bpf(BPF_PROG_LOAD, {prog_type=BPF_PROG_TYPE_SOCKET_FILTER, insn_cnt=5, insns=0x7ffffd20c790, license="GPL", log_level=0, log_size=0, log_buf=NULL, kern_version=KERNEL_VERSION(0, 0, 0), prog_flags=0, prog_name="", prog_ifindex=0, expected_attach_type=BPF_CGROUP_INET_INGRESS, prog_btf_fd=0, func_info_rec_size=0, func_info=NULL, func_info_cnt=0, line_info_rec_size=0, line_info=NULL, line_info_cnt=0, attach_btf_id=0, attach_prog_fd=0}, 120) = -1 EPERM (Operation not permitted)
@udzura
udzura / Gemfile
Last active October 22, 2020 09:18
source "https://rubygems.org"
gem "rack"
gem "sinatra"
# gem "pry"
##
# This file is owned by Uchio KONDO
# esc
unbind-key C-b
set-option -g prefix C-]
bind-key C-] send-prefix
# Act like Vim
set-window-option -g mode-keys vi
from bcc import BPF
code = """
#include <linux/elf.h>
struct data_t {
unsigned char magic[EI_NIDENT];
u64 type;
u64 offset;
u64 addr;
@udzura
udzura / mruby3.md
Last active September 4, 2020 10:13
$ ./chkheap
PID=7319
Run bpftrace background and hit return:
55a46e740000-55a46e741000 r-xp 00000000 08:01 22338 /home/vagrant/chkheap
55a46e940000-55a46e941000 r--p 00000000 08:01 22338 /home/vagrant/chkheap
55a46e941000-55a46e942000 rw-p 00001000 08:01 22338 /home/vagrant/chkheap
55a4705d0000-55a4705f1000 rw-p 00000000 00:00 0 [heap]
7f341d659000-7f341d840000 r-xp 00000000 08:01 21679 /lib/x86_64-linux-gnu/libc-2.27.so
7f341d840000-7f341da40000 ---p 001e7000 08:01 21679 /lib/x86_64-linux-gnu/libc-2.27.so

21世紀のC言語勉強会 行動規範


アンチハラスメントポリシー

21世紀のC言語勉強会 は私たちが主催するミートアップなどのためのアンチハラスメントポリシーを策定しました。ポリシーの内容は常識を逸脱しておらず、さほど困難な内容をお願いしているわけではないと考えています。ご理解とご協力を賜りますようにお願いします。

以下、「私たち」とは21世紀のC言語勉強会の主催者、「コミュニティ」とはC言語やシステムに興味があり、21世紀のC言語勉強会に参加する皆さんのことを指します。

自分がどういうことを考えてクラス設計しているかを整理してみました。同じようなことを大名エンジニアカレッジでも話したのですが、今回はフィヨルドの課題で考えてみました。

レイヤ分けする

たとえば ls コマンドの場合はこういうレイヤがあるんじゃないかなあと考えられます。

  • インプットする方法... OSの機能を使ってあるディレクトリのファイルを集めないといけない。その操作をする人が必要そう
  • 集まったデータ... ファイルが集まってくる。ファイルには、普通のファイル、ディレクトリの二種類はありそう。
  • アウトプット... 表示のフォーマットがいくつかある。一列のやつと、サイズなどを詳細に出すやつ。
  • それらをつなぐ... ここに書いていないあふれた仕事をとりあえず押し付ける人がいると便利かな...