このメモは、私(@ymmt2005)が長年にわたってソフトウェアプロダクト開発に関わってきて 2022年現在こうしたほうが良いと考えているベストプラクティスです。
科学的な分析等に基づくわけではない経験則であるため、今後も随時見直すことがありますし、 ここに書いてあることが常に正しいわけでもあらゆるソフトウェア開発に適するわけでもありません。
しかしながら、実務経験が豊富で、モダンな技術スタックに明るいエンジニアの経験則は一定の 役に立つのではないかと考えて記します。
| package main | |
| import ( | |
| "os" | |
| networkingv1beta1 "k8s.io/api/networking/v1beta1" | |
| "k8s.io/apimachinery/pkg/runtime/serializer/json" | |
| "k8s.io/client-go/kubernetes/scheme" | |
| ) |
| #!/bin/sh -e | |
| NS=testns | |
| BR1=testbr1 | |
| VETH1=testveth1 | |
| BR2=testbr2 | |
| VETH2=testveth2 | |
| LINKS="$VETH1 $VETH2 $BR1 $BR2" |
| Ubuntu VM ディスクイメージを gzip, Zstd, Brotli で圧縮 | |
| $ time lzop -d < vm-generic.lzo | gzip > vm-generic.gz | |
| real 0m44.422s | |
| user 0m46.736s | |
| sys 0m1.312s | |
| $ time lzop -d < vm-generic.lzo | zstd > vm-generic.zstd | |
| real 0m9.863s | |
| user 0m10.336s |
| #!/usr/bin/python3 | |
| from argparse import ArgumentParser | |
| import os | |
| from os.path import dirname, realpath | |
| from tempfile import NamedTemporaryFile | |
| def syncdir(d: str): | |
| fd = os.open(d, os.O_RDONLY|os.O_DIRECTORY) | |
| os.fsync(fd) |
BitTorrentの仕組みを読むのが早い。
完全な P2P というわけではなく、コンテンツとピアの情報を管理するトラッカーというサーバーがいる。トラッカー不在でも動作するDHTモードという仕組みもある。
| #!/usr/bin/env python | |
| from __future__ import print_function | |
| from argparse import ArgumentParser, RawDescriptionHelpFormatter | |
| import re | |
| import sys | |
| # Constants | |
| HELP_DESCRIPTION = '''\ | |
| Annotate id-ns output for humans. |
| diff -ruN debian-installer-20101020ubuntu318.15.orig/build/boot/x86/syslinux.cfg debian-installer-20101020ubuntu318.15/build/boot/x86/syslinux.cfg | |
| --- debian-installer-20101020ubuntu318.15.orig/build/boot/x86/syslinux.cfg 2014-06-03 23:02:21.000000000 +0000 | |
| +++ debian-installer-20101020ubuntu318.15/build/boot/x86/syslinux.cfg 2015-04-06 02:21:48.031746385 +0000 | |
| @@ -1,5 +1,10 @@ | |
| # D-I config version 2.0 | |
| include ${SYSDIR}menu.cfg | |
| -default ${SYSDIR}vesamenu.c32 | |
| +#default ${SYSDIR}vesamenu.c32 | |
| +# Cybozu: auto start PXE | |
| +default auto |
| // g++ -std=gnu++11 hoge.cpp -lpthread | |
| #include <cerrno> | |
| #include <chrono> | |
| #include <cstring> | |
| #include <iostream> | |
| #include <netdb.h> | |
| #include <sys/socket.h> | |
| #include <sys/types.h> | |
| #include <system_error> |