Skip to content

Instantly share code, notes, and snippets.

@mitio
mitio / ebpf-and-linux-observability.md
Created Jul 21, 2021
eBPF and Linux observability
View ebpf-and-linux-observability.md

eBPF (or, simply BPF)

Why these tools? Why eBPF?

Linux tracing overview

linux tracing systems

But first, perf

@mitio
mitio / README.md
Last active Nov 14, 2019
A rudimentary example of a distributed in-memory key-value store (with lots of bugs)
View README.md

A distributed in-memory key-value store

A rudimentary example of a distributed in-memory key-value store (with lots of bugs)

Usage

In one terminal:

ruby server.rb 4001
@mitio
mitio / graph-obd-data.rb
Created Jul 13, 2019
Graphs OBD data exported from Auto Doctor and generates HTML. Depends on https://metricsgraphicsjs.org/ and D3.js. Usage: `ruby graph-obd-data *.csv`
View graph-obd-data.rb
#!/usr/bin/env ruby
require 'csv'
require 'time'
require 'cgi'
require 'erb'
require 'json'
template =
<<~HTML
@mitio
mitio / example-computer-science-basics-curriculum.md
Created May 30, 2019
Примерен учебен план за програмиране
View example-computer-science-basics-curriculum.md

Примерен учебен план за програмиране

Темите, маркирани тук, са неща, за които е добре да имате някаква идея, ако искате да се развивате в посока програмиране. Темите са ориентировъчни и списъкът е далеч от изчерпателен, но все пак, дава начало и посока.

Има различни специализации на програмиране – web разработка (front end, back end), мобилни приложения (iOS, Android, ...), machine learning, QA инженери, пишещи автоматизирани тестове и други. Web разработката е много перспективна и универсално приложима. Специализацията може да дойде впоследствие. За почти всички тях, частично познаване на тези теми ще е полезно.

@mitio
mitio / aws-auth.sh
Last active Oct 22, 2019
Easily authenticate against AWS for CLI or API access when MFA is activated and forced
View aws-auth.sh
aws-auth() {
aws_profile="$1"
if [ -z "$aws_profile" ]; then
echo "Usage: $0 <aws-profile>" >&2
return 1
fi
echo "Obtaining MFA ARN for profile '$aws_profile'..."
if ! response=`aws --profile "$aws_profile" iam list-mfa-devices` || \
@mitio
mitio / ._readme.md
Last active Dec 19, 2018
An overview of the tooling I use
View ._readme.md

Tooling

Basic setup, macOS tips & misc

  • Homebrew for installing packages & brew cask for precompiled binaries.
  • brew services list for managing daemons.
  • Booting Rack apps with puma-dev via HTTPS – I've added its unique CA to my system's trusted certs (see how here).
  • Dash for offline docs. It's running constantly and a global hotkey (Cmd + Shift + Space) shows its window. It's also integrated with my editor.
View ruby-catching-timeout-errors.md

Ensure will always catch Timeout::Error but nested rescue clauses will not, unless a custom exception class is used as per the docs:

The exception thrown to terminate the given block cannot be rescued inside the block unless klass is given explicitly.

No rescue:

irb(main):001:0> Timeout.timeout 1 do
irb(main):002:1*   puts 'sleeping'
irb(main):003:1>   sleep 2
View kubernetes-networking-workshop.md

Kubernetes Networking Workshop

Goal

ns (10.192.10.200/24) -- veth pair -- cni0 bridge (10.192.10.1/24) -- flannel.1 vxlan (10.192.10.0/32) -- ec2 -- ec2 -- flannel.1 vxlan (10.192.11.0/32) -- cni0 bridge (10.192.11.1/24) -- veth pair -- ns (10.192.11.200/24)

Step 1: VXLAN

@mitio
mitio / README.md
Last active Sep 5, 2018
Ruby basics workshop #1
View README.md

Ruby workshop agenda

  1. Data types
  2. Basic syntax
  3. Objects, data types/structures (basic)
  4. Ecosystem – gems, docs; C extensions
  5. Blocks & loops

Advanced:

@mitio
mitio / learning-ruby.md
Last active Sep 14, 2018
Материали за Ruby & Rails
View learning-ruby.md

Материали за Ruby & Rails

Основи на Ruby

  • fmi.ruby.bg/lectures – това са лекции от курс във ФМИ, в чието водене съм участвал. В сбит вид дават доста добър общ преглед над езика, като на места се влиза в доста и ценни детайли. Има разни административни слайдове, които са за пропускане, но отвъд това, са сбити и полезни лекции. Направени са да са съпроводени от лекционни обяснения, така че ако нещо не е ясно от слайдовете, трябва да се търси/пита допълнително. Повечето неща би трябвало да са достатъчно ясни, в зависимост от това колко опит има човек с програмиране и скриптови езици.
  • Има и няколко примерни задачи тук: http://fmi.ruby.bg/tasks – понеже са минали тези задачи, има и решения. Добре е да се пробват паралелно с четенето на слайдовете. Някои от решенията имат бонус точки и може да се ползват като пример как е добре и типично да се пише Ruby.
  • Без писане на код не става. Полезно е да се прекарва горе-долу поравно време както в четене на неща, така и в пробването