JJUG CCC 2021 Fallの 「15:00 ~ 15:50 Debeziumで変更データキャプチャを学ぼう」の資料です
JJUG CCC 2021 Fallの 「15:00 ~ 15:50 Debeziumで変更データキャプチャを学ぼう」の資料です
こんにちは。サービスグループの武田です。 インターネットを利用する上で必要不可欠なしくみとしてDNS(Domain Name System)があります。DNSはホスト名からIPアドレスを調べる名前解決のしくみですね。それではこのDNSというサーバは実際にどのように名前解決を行っているのでしょうか? 今回はコマンドを使って、簡単に挙動を確認してみましょう。 なおこの記事では、DNSサーバが階層構造となってドメイン管理をしていることの説明はしません。 問い合わせには2種類ある DNSサーバは実際にレコードを保持して管理する DNSコンテンツサーバ と、コンテンツは保持せず問い合わせの解決と結果をキャッシュする DNSキャッシュサーバ があります。一般的にクライアント(DNS用語では スタブリゾルバ と呼ぶ)はDNSキャッシュサーバに対して問い合わせを行います。 さてDNSキャッシュサーバはコン
そろそろKubernetes(以後k8s)触ってみないといかんな欲が高まってきました。 が、k8sを使ってなにを構築したものかと思ってたんですが、 Mastodonを使いたい案件(プライベートで)があったので、k8sを使ってMastodonを構築していこうと思います! 自分のメモ書きみたいな内容なので注意。 Kubernetesについて k8sが生まれた背景 仕組み Pod Deployment Service 実際k8sでpodを作ってみる まとめ Mastodonについて 内部構造 k8sでMastodonを構築する Mastodonの設定ファイル Mastodon作成のための手順 最後に 参考資料 Kubernetesについて まずk8sについて基礎的なところから学んでいきます。 k8sは一言でいうと「コンテナオーケストレーションツール」です。 しかしイメージしづらいので詳しく調べて
perfという大変優秀なプロファイラがあります。どう優秀かというと ・gprofと違い、-pgなど付けなくとも既存のバイナリに対して実行できます ・バイナリに対して実行できるという事はあらゆる言語の実行を観察できます sudo apt-get install linux-tools まずこれで必要なツールは入ります。 試しに何かのパフォーマンスを見てみましょう $ perf stat ruby -e'100000.times{|n|p n}' 実行にかかったCPUサイクル数、分岐の数、分岐予測ミス数、キャッシュ参照数、キャッシュミス数などがズラズラ出ます。IPCなども計算されてプログラムの性質がわかります。 これでは物足りない人は、自分の好みの通りにセッティングを変えることもできます。 $ perf list で観測可能なモノのリストが表示されるので、その中から好きなものをコンマで繋いで例
Linuxでテキストデータを扱うときに、コマンドをパイプで繋げるだけでいろいろな処理ができて面白いのですが、綺麗に整理されていない気がするのでまとめてみます。ここでは、cat, paste, join, grep, head, tail, cut, awk, sed, tr, sort, uniq, wc を取り上げます。 ファイルを縦に結合 ファイルを縦に結合します。 コマンド 説明 cat file1 file2 ... file1, file2, ... を縦に結合 cat file | ... としてファイルの中身をパイプに流すのにもよく使います。 ファイルを横に結合 ファイルを横に結合します。あまり使わない?*1 コマンド 説明 paste file1 file2 .. file1, file2, ... を横に結合 join file1 file2 file1 と file2
Update: This tutorial is now out of date. We also have a tutorial on managing Google Workspaces with Terraform that is kept up to date. Terraform is an open source tool for managing Infrastructure as Code. Earlier this year, we showcased how Terraform pushes the boundaries on the traditional definition of "infrastructure", enabling users to Manage GitHub Teams and Permissions with Terraform. This
コミットメッセージにはどのような情報を残すべきだろうか?はじめにこの記事ではGitのコミットメッセージの重要性と良いコミットメッセージの書き方を説明します。いままで良いコミットメッセージについて考えてこなかったかたも一度立ち止まって考えてみてくれると嬉しいです。 対象読者GitやGitHubを業務で使っている人「良いコミットメッセージ」をあまり意識しない人目次Gitを使ったソフトウェア開発で、なぜコミットメッセージが重要なのか?コミットメッセージの書き方の1例を紹介まとめGitを使ったソフトウェア開発で、なぜコミットメッセージが重要なのか?ソフトウェア開発において、良いコードとはどんなコードでしょうか? 私は「 他人が読みやすく、理解しやすいコード」だと考えています。ソフトウェアにバグは必ず出ます。そのバグを修正する時間を最短にできるような、読みやすい、理解しやすいコードが良いコードだと思
この記事は「エムスリー Advent Calendar 2015」の 22日目の記事です。 はじめに こんにちわ。年末ですね。年末といえば一年を振り返るいい機会ですね。意識の高い人たちが「人生を棚卸しするいい機会ダヨッ★」なんて言っていたような気もします。 過去の自分を振り替えってみると、あーネットサーフィンに無駄な時間を過ごしたなぁ。。なんて後悔の念が湧いてきます。しかし、よく考えてみると、自分がブラウザで何を閲覧していたのか、きちんと振り返ったことがありませんでした。いい機会ですので、この記事では 自分の閲覧履歴を可視化して分析する基盤 を構築してみたいと思います。 ただ、一点ネックなのは、私は chrome => メインブラウザ firefox => ある特定の用途 といったように、2つのブラウザを戦略的に使い分けております。つまり、閲覧履歴データが分散しているわけです。分散してしま
Learn Docker With My Newest Course Dive into Docker takes you from "What is Docker?" to confidently applying Docker to your own projects. It's packed with best practices and examples. Start Learning Docker → Updated on April 13th, 2018 in #docker, #ruby-on-rails Dockerize a Rails 5, Postgres, Redis, Sidekiq and Action Cable Application with Docker ComposeLearn how to install and use Docker to run
これはGIMPでスクリプトを使おう!と思ったものの久々のScheme (Script-Fu)にめげて「GIMPってPythonも普通に使えるんじゃね?」ってことで試してみたら罠もあったけどいい感じだったよって記事である。Linuxではもちろん、Windowsでもインストーラから入れればPythonが同梱されているので、気軽に使える。 もちろんGIMPを普段から使うのであれば、マクロ的に使ってもいいと思うのだけど、GIMPを使ってなくても「UIの必要な画像処理」には便利だと思う。画像の表示、範囲選択とか、そういうのが本筋じゃないプログラムにさらっと提供できる。たとえば、自前のOpenCVを使った画像処理ライブラリのフロントエンドとかね。 枝葉の処理が多いのでこのスクリプト自体は解説しないが、自分が作ろうと思って作ったもの(後述)はこちら: PythonでのGIMPのスクリプトの書き方 基本的
こんにちは。 アグリゲーション開発担当の中川です。 今回は、みんなが大好きな構成管理ツール「Git」について話したいと思います。 私は Git を使い始めてから、バグの発生数が激減しました。 Git を使ったとある手法によってレビューが充実し、バグの少ないコードを書くようになったと考えています。 では、今回はその手法について紹介したいと思います。 ※ 本稿は Git 以外の第三世代構成管理ツール(Hg、Bzr など)にも適用するかと思いますが、Git の用語とコマンドを使って紹介していくため Git の基本知識が必要となります。ご了承ください。 レビューしやすいコミット履歴と、開発の流れで自然にできるコミット履歴の乖離 以下のようなコミット履歴があるとします。 1. wip: 仕様変更○○を行い始めた 2. wip: 仕様変更○○の続き 3. wip: ちょっと設計を変更、それと過去のバグ
git revert は元に戻すコマンドの一種だと考えることもできます。ただし、通常の元に戻す操作とは異なる動作をします。プロジェクト履歴において、そのコミットがなかったことにするのではなく、そのコミットによって加えられた変更を打ち消し、その結果を含む新しいコミットを追加します。これは Git の履歴を保全するためであり、バージョン履歴の完全性の維持とコラボレーションの信頼性の確保のために重要です。 「revert (打消し)」は、プロジェクト履歴からコミットを打ち消す場合に使用します。これは、バグの追跡を行った結果あるひとつのコミットが原因であることが判明した場合などに有用なコマンドです。git revert を使用することにより、手作業で分析、修正し、その結果を新しいスナップショットとしてコミットするのではなく、それらすべてを自動的に行うことができます。 git revert コマンド
※ 本スライドの内容を解説した、電子書籍を販売中です。 <a>http://p.booklog.jp/book/86773</a> 「Git(ギット)」や「バージョン管理」という言葉は聞いたことはあっても、なんだか難しそうなイメージを持っているかも知れません。 特に、プログラマーやエンジニアのツールであって、デザイナー・マークアップエンジニア・ディレクターの方は「自分には無縁」と思っているのではないでしょうか。 しかし、Gitはプロジェクトに関わるすべての方が使えると、コミュニケーションツールとしての役割も果たし、非常にスムーズにプロジェクトを進行させることができます。 このイベントでは「ノンプログラマの方」を対象に、Gitのよく使う部分だけをピックアップしてわかりやすく紹介、今日から使えるテクニックや便利なポイントを紹介していきます。Read less
世間的に「Gitはコミットログを書き換えられてキモい」と言われ、肩身が狭いので git-rebase の説明を書いてみた。 git help から引用 まずは基本に忠実に、ヘルプを読みましょう。 git help rebase SYNOPSIS git rebase [-i | --interactive] [options] [--onto <newbase>] <upstream> [<branch>] git rebase [-i | --interactive] [options] --onto <newbase> --root [<branch>] git rebase --continue | --skip | --abort DESCRIPTION If <branch> is specified, git rebase will perform an automatic g
これは Git (や Subversion などのバージョン管理システム) にコミットする時により良いコミットメッセージを書くための提言です。この提言は特にメッセージの一行目だけを対象とします。せめて最も重要な一行目だけでも良いメッセージを書いて欲しいからです。提言をズバリ一言で表すと 一行目には要求仕様を書け です。 背景 プロジェクトによっていろいろ慣習の差はあるものの、一般的には「コミットメッセージの一行目は変更内容の要約を簡潔に書け」とされます。特に Git は、各コミットメッセージの一行目だけを取り出してそれを一覧表示するなど、一行目を特別に処理する機能が多いので、一行目にできるだけ多くの情報を凝縮させることは重要です。またメッセージを一行しか書かない不届きな慣習のプロジェクトでは、十分な情報を持たないメッセージは無用の長物と化します。 良くないコミットメッセージ しかし私は、情
ここでは,メイクファイルの基本的な書き方としてルールの説明をしましょう.ここからは,Makefileといえばmakeが参照するメイクファイルのことを指すものとします. コメントと改行 その前に少しコメントの書き方について解説しておきます.Makefileでは,#から行末までがコメントです.例えば, # # Hello Worldを出力する # all: @echo Hello World! のように使います. また,makeは基本的に行指向です.見やすくするために改行したい場合はバックスラッシュ\を使って改行を無視させることができます.例えば,マクロの定義(後述)で object_files = \ foo.o \ bar.o \ baz.o と書けば,makeは改行を無視して次のように解釈します. object_files = foo.o bar.o baz.o ここで注意することは,f
Learn Vim For the Last TimeA tutorial and primer that teaches Vim as language instead of commands The problem with learning Vim is not that it’s hard to do—it’s that you have to keep doing it. This guide will break that cycle, ensuring this is the last time you will learn it. There are dozens of Vim references online, but most of them either go ninja straight away, or start basic and don’t go much
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く