yu nkt’s blog

nkty blog

I'm an enterprise software and system architecture. This site dedicates sharing knowledge and know-how about system architecture with me and readers.

エッジコンピューティングの形態

こちらに移動しました。 今後は、Zennで記載していこうかと思います。 zenn.dev

Link preview生成

このブログも結構放置気味でしたが、先日久々に投稿したら、はてなブログのサイトマップがGoogleに読み取られず、インデックスに登録されない自体が発生してました。 様々な試行錯誤はしたものの、原因が分からず、GoogleのBloggerやWordpressに移行しようか…

ブラウザでPythonを実行できるPyScript

PyCon US 2022が、4月27日~5月3日に開催されていますが、そのキーノートで、PyScriptというプロジェクトが、AnacondaのCEO、Peter Wang氏から発表され、私のTwitter界隈では大きく注目されています。 今回は、Pythonの旬の話題として、PyScriptを取り上げよ…

O'Reilly Online Learningにあるe-bookのページ数カウント

O'Reilly Online Learning オライリーの本が、サブスクで読み放題のサイトです。 www.oreilly.com ほとんどは英語版ですが、一部、和訳されたものも読めます。 オライリー本だけでなく、マニング本など、他の出版社のものまで読めます。 ACMの会員だと、特典…

ドメインの全貌の理解を助けるBDDのススメ

チームにジョインしたエンジニアに立ちはだかる壁 チームにエンジニアがジョインした時、しっかり伝えるべきなのにうまく伝えにくいものの一つは、開発中のシステムの複雑なドメイン知識ではないでしょうか。 ドメイン知識は、システムがクリーンアーキテク…

「アフターデジタル オフラインのない時代に生き残る」感想

2年前の本ですが、お世話になっている方より紹介があり、読んでみました。 www.nikkeibp.co.jp 本の要点は、「オフライン→オンライン」へのシフトという議論はもう古く、今はオンラインにオフラインを内包し、デジタルによる継続的な顧客接点で、バリュージ…

アプリアーキテクチャにおけるLazy loading

背景 昨年、Google Chromeを始め、Lazy loading(レイジーローディング)と呼ばれる機能がブラウザ標準として実装され、フロントエンドでは少し話題になったようです。 このLazy loading、実はアプリケーションアーキテクチャでも、"DDDにおける大きな集約の…

アクターモデルとアプリケーションアーキテクチャの関係

背景 マイクロサービスアーキテクチャが浸透し、それに伴いDDDを導入する企業も増えている気がします。 それと同時に、アクターモデルの話題も最近以前より聞くようになった気がします。 ただ、以下のような疑問を持つ人は多くいるのではないでしょうか? ア…

プロキシ環境下でのkind (kubernetes in docker)

背景 お手軽kubernetesの最近の流行りは、kind (kubernetes in docker)だそうです。 kind.sigs.k8s.io ただし、かなり厳しいプロキシ環境で実行していたら、少しハマりました。 私の会社だけの状況かもしれないので、ニーズないかもしれませんが、今回は、そ…

SlackのSlash commandとAWSで作る猫監視アプリ

背景 AWS API Gateway, AWS SQS, Slack (file.uploadとスラッシュコマンド)で、自宅の猫を遠隔から監視するアプリを作りました。 AWSもSlack Appもほぼ初心者の自分が、数週間、隙間時間で調べながら作ってみました。 一度作れば簡単なのですが、初めてだと…

Raspberry Pi 4にRaspbian Lite (CUI)をインストール・設定

これからRaspberry Pi 4を触る方の参考までに、つい最近買ったときの購入と設定の流れを残します。 購入 まず、Raspberry Pi4は、3までと、異なる部分が多くあるので、購入段階で注意が必要です。 Raspberry Pi 3までよりも、はるかに発熱するのでファンが必…

DHARMA: マイクロサービスアーキテクチャのSecurity by Design

背景 マイクロサービスアーキテクチャは、独立して稼動する各マイクロサービス間で、APIコールやメッセージングなどの通信が発生します。 開発していると、それらのI/Fを整えることだけに気がいきがちですが、通信が発生するということは、セキュリティリス…

古いRaspberry Pi 2 (wheezy)のOSをアップグレードする

会社でアンオフィシャルな開発合宿を企画し、今度の週末、箱根に行ってきます。 合宿で、ずいぶん昔に買ったRaspberry Pi 2を使ってみようと思い、久々に引っ張り出してみました。 そして、起動して、ひとまずパッケージアップデート。 sudo apt-get update …

プロキシ環境でVS Code Remote Development

Visual Studio Codeの新機能で、コンテナ内や、WSL、SSHでリモートアクセスした環境で、開発する事が出来るRemote Development機能が拡張機能として入れられるようになりました。 marketplace.visualstudio.com こんな人にオススメです。 開発環境はWindows…

vimでyamlのオートインデントを設定

Kubernetesのyamlなど、最近はVimでyaml (yml)ファイルを記述する機会が増えました。 ただ、Vimのデフォルトのオートインデントだと、yamlファイルはかなり扱いにくいと思います。 今回は、Vimで快適にyamlファイルを編集するための設定を書きます。 最終形…

Makefile内のechoコマンドで$ (ダラー)をそのまま出力させる

Makefile内のechoコマンドで$ (ダラー)をそのまま出力させる方法です。 全く情報を見つける事が出来ませんでしたが、試行錯誤してたら出来ました。 環境:bash (バージョン:4.2.46(2)-release (x86_64-redhat-linux-gnu)) Makefileにこのように書きます。 b…

プロキシ環境下の自前GitLabにアクセスする方法

背景 Gitに関して、何度もプロキシ関連でハマってきて、何度も同じようなことをググってきたので、自分で整理します。 環境 Linux (自分はCentOS 7を使っていますが、Ubuntuやその他ディストリビューションでも同じだと思います) アカウントのプロキシ設定 …

AWS EC2上にkubesprayでk8s環境を構築

背景 kubernetesの構築から運用まで、少しずつ勉強しようと思い、EC2に環境構築を試してみたのですが、かなりハマったので、その共有をします。 今時、自らEC2に環境構築する人は少ないかもしれませんが、練習ということで。 環境 k8sを構築する環境 AWS EC2…

EC2インスタンスへansibleで疎通確認

目的 EC2にあるインスタンスの構成管理をしようと思いますが、その前に、そのインスタンスへの疎通確認をしてみました。 今までansibleをローカルの環境構築にしか使ってなかったとは言え、まさかここで詰まることがあるとは…。 環境 構成管理対象のリモート…

SafetyとLiveness

はじめに 今回は、昨年のACM PODC (Principle of Distributed Computing)でDijkstra賞を受賞した、以下の発表について解説します。 B. Alpern, F. B.Schneider, "Defining liveness," in proceedings of published in Information Processing Letters, vol. …

Squash commit

Git

背景 APIの仕様をRAMLで記述する際に、api-designerを使っていますが、そのContribution guideに以下のような記述がありました。 Before submitting a pull request, you need to execute squash commits. Submit the pull request afterwards to have them …

WSLでWindowsなのにLinux環境を整える

背景 Windows10から、Windows Subsystem for Linux(WSL)によって、CygwinなどのツールやVMを導入せずに、Linuxコマンドを利用出来るようになりました。 私は今までGit BashでLinuxコマンドを打っていましたが、イマイチコマンドが揃っておらず、不満ながら…

イベントドリブンなマイクロサービスアーキテクチャ

背景 会社で、Kafkaを組み込んだシステムをSpringで開発中です。 また、自宅でも、マルチ言語のプログラムを開発中で(JavaとPython)、これら二つとも、Spring Cloud Streamが利用出来るのではないか、ということに気づき、調べて使ってみました。 そこで、…

S2PL、SS2PL、C2PL

背景 先日、CSR (Conflict Serializability)について説明しました。 今回は、CSRを満たすスケジューリングを動的に生成する方法について、整理してみます。 なお、ここで書くその方法とは、2PL (Two Phase Lock)なのですが、一応念のため書いておくと、2PC (…

CSR (Conflict Serializability)

背景 最近は、長期休暇を頂き、鬼怒川温泉に行っておりました。 旅館に来ると、学生の頃に旅館で合宿(仲良し研究室同士の研究会)がよくあったせいか、研究とか開発がしたくなります。 さて、前の記事でトランザクション理論を学習中と書きましたが、今回は…

NP完全問題の困難さ

背景 トランザクション理論の学習をしていて、「あるトランザクションスケジューリングが与えられた時に、それがView Serializableを満たすかを否かを明らかにするのは、NP完全問題」という一文が出てきて、そもそもNP完全問題って何だっけ?どれほど難しい…

jibでDockerfileを作らずにコンテナをビルドする

背景 Dockerのようなコンテナは、"プロセスの仮想化"であって、VMの代わりではありません。インフラの管理や、リソースの管理という次元の話ではないのです。 "常駐プロセス"を仮想的に動かすもの、という制限すらありません。 だからこそ、コンテナは、DevO…

Node-RED v0.19のPersistable contextを使ってみた

イントロ 先日、Node-REDの新バージョンv0.19がリリースされたので、新機能を使ってみました。 今回試してみたのは、Persistable contextです。 Persistable contextとは、これまではメモリのみで管理されてきたglobalコンテキストやflowコンテキストと言っ…

Richardson Maturity Model

イントロ RESTful API設計開発の指針として、Richardson Maturity Model (以降ではRichardson成熟モデルと呼ぶ)という素晴らしいものがあります。 海外の情報リソースでは、頻繁に見かけるものの、意外と日本では見かけないので、少しメモしておきます。 Ric…

Swaggerを試し、自動生成されたコードを見てみる

イントロ 会社でSwaggerがブームっぽくなっているので、使ってみました。 気になっていた機能は、codeGenです。 これのおかげで、どれほどAPIサーバーの開発が楽になるのかを体感してみたいと思います。 なお、この記事では自分がしたことの履歴のみを記載し…