バージョン管理された人

subversionで管理されてます

【NTT Communications Advent Calendar 2023】Nix と home-manager で dotfiles を管理する話

この記事は、 NTT Communications Advent Calendar 2023 9日目の記事です。 みなさんは dotfiles をどのように管理されているでしょうか? Bash や Zsh といったスクリプトによってインストールを管理したり、 git でホームディレクトリを管理する、 Chef や …

golang で書かれた Lambda Docker を ARM で動かす CDK

AWS Lambda も ARM で動かす方が若干料金が安くなる。 また、 AWS Lambda はミリ秒課金になってから料金を安くするために実行速度の早い言語である golang 書きたくなるだろう。 今回はこの golang アプリを動かす Docker を ARM な AWS Lambda で動かすイン…

CDK カスタムリソースで tagging

AWS のリソースではタグをつけられる。 CloudFormation はそれにならってタグをつける仕組みが存在し、 CDK もそれにならう形でタグをつけられるようになっている。 タグをつけることで作成者等の情報をリソースに入れ込むことができ、誰がどのような目的で…

GitHub Actions の Self hosted runner で --ephemeral オプションでの罠

GitHub Actions の Self hosted runner で設定するときに、 config.sh に --ephemeral オプションを指定することで、 Self hosted runner を短命にできる。 短命である とは1つのジョブを走らせたあとに self hosted runner が終了することをいう。 --epheme…

GitHub Actions の self hosted runner を短命にできるようになった

v2.282.0 で --ephemeral というオプションがサポートされた。 これは1つのジョブを回したら self hosted runner を終了させるというように動作を変更するためのフラグで、今までは起動したらしっぱなしだった self hosted runner を短命な動作に変更させる…

CDK による API Gateway と SNS の連携

API Gateway から SNS への連携は Lambda + SQS を利用しなくても直接 API Gateway から SNS へリクエストを流せる。 まずは、 API Gateway と通知先 SNS topic を用意する: import * as sns from "@aws-cdk/aws-sns"; import * as core from "@aws-cdk/core…

Github Actions の self hosted runner を Github Apps + AWS で動かす

Github Actions の self hosted runner の登録は Github API を叩くことで行うことができるので、これを利用して AWS 上に、 Github の Organization 単位な self hoster runner の実行環境を用意して、 runner を登録して走らせる、ということを行う。 なお…

JSONのwalk

JSONファイルがいくつかあって、それらはスキーマは違っても取得したいキー名は固定であるなんてことがあるかもしれない。 そのときにJSONファイルのスキーマの違いを無視して特定キー名のプロパティを取得するようなことをしたいときに次のようなコード(Pyt…

nodenvをgit cloneしただけだとinstallサブコマンドが現れない

この手のツールにありがち。 gitからクローンしたものだけだとinstallサブコマンドが現れない。 $ nodenv install nodenv: no such command 'install' $ node help Usage: nodenv <command> [<args>] Some useful nodenv commands are: commands List all available nodenv </args></command>…

C++とOpenSSLライブラリを利用してデータの暗号化・復号化をAES-CBCで行う

C++でまともに暗号化・復号化するサンプルをやっている例を見ないので書く。 実際にはsaltがどうだとかパディングがどうだとかストレッチングがどうだとか暗号化する前にデータを圧縮する話だとかは出さない。 運用上は重要だけど、そういうのは後付けできる…

GoコードをバイナリにしてYoctoに入れる(ARM)

GoはARMバイナリを直接吐ける。 なので、Goのコンパイラをバイナリで引っ張ってビルド時に走らせればARMバイナリを簡単にビルドしてYoctoへ組み込める。 やるにはレシピに次ようなパッケージを追加して LICENSE = "CLOSED" SRC_URI_append = " \ https://dl.…

I2C Toolsの簡単な使い方について

I2C

I2C Toolsには i2cget i2cset i2cdetect i2ctransfer i2cdump というコマンドが同梱されているが、この内 i2cget i2cset i2cdetect についてコマンドの簡単な使い方を記しておく。 i2cdetect i2cdetectの文法は次の通り: i2cdetect -V i2cdetect -l i2cdetec…

i3で通知を出す

dunstという通知を行うためのアプリケーションがあるので、それを利用する。 Arch Linuxなら公式リポジトリから提供されているので、pacmanで入る $ sudo pacman -S dunst 設定はArch Linuxならば/usr/share/dunst/dunstrcにあるので、これを$XDG_CONFIG_HOM…

meta-qtにおけるQtWebEngineで音を出す方法

概要 ALSAが既にレイヤーに追加されていても、 QtWebEngine側にWebRTCの設定を入れる必要があるため、そのままgetUserMediaなどでメディアを取得することはできない。 ここでは、その追加手順について説明する。 手順 まず、レシピファイルを追加する(ここで…

関数の初等な連続性の距離空間への一般化

距離空間 距離空間とは、次の公理を満たす距離関数(distance function) を持つ集合 のことをいう。 つまり、 2点 間の距離は 以上 2点 間の距離が であることは、 と は同じ点 距離関数の引数を入れ替えても、2点間の距離は変わらない を経由すると、2点 を…

wpa_cliに渡せるアクションスクリプト

C

wpa_cliはwpa_supplicantからのイベントを待ち受けて実行されるアクションスクリプトというものを設定できる。 このアクションスクリプトは第二引数にwpa_supplicantからのイベントが渡される。 イベント 意味 CONNECTED APへの接続時に発行される DISCONNEC…

bashスクリプトの位置を取得する

bashスクリプトをプロジェクトルートを起点として走らせたいことがある。 そこで、bashスクリプトが格納されている絶対パスをとりたくなるが、これは次のようすると取れる。 SCRIPT_PATH="$( cd "$( dirname "$( readlink -f "$BASH_SOURCE" )" )" >/dev/nul…

JREのスリム化

Dockerなどで、Javaの実行環境を小さくしたいというのはある。 そいうときに使えるのがjlinkとjdeps (リンク先はJava 10のもの)。 精確にはjdepsはライブラリの依存関係を調べるためのツールで、jlinkは実行環境を作るためのツール。 これらは$JAVA_HOME/bin…

CrystalのIndexableの実装

本家のAPIドキュメントに Indexable(T) の詳しい実装方法がなくて苦戦した。 crystal-lang.org 最初は #unsafe_fetch だけを実装すればよいのかと思ったが、どうも、#unsafe_fetch を実装しただけだとスタックオーバーフローを起こしてプログラムが死ぬ。 不…

集合の濃度について

2つの有限集合とが同じ数の元を持つとは、に含まれる元の個数とに含まれる元の個数を数えればわかる。 また、有限集合が有限集合以上の元を持つことは、集合の元の個数をと表すことでと表すことができるし、は有限集合が有限集合よりも元を多くもっていると…

関数の閉包の凸包と凸包の閉包は等しいか

関数の閉包の凸包と凸包の閉包は等しいとは限らない. その例を記す. 準備 話を始める前にいくつか定義しておく.まず, 次のような非負実数だけを集めた集合を定義しておく.次に, 関数のエピグラフをと定義する. これは点における関数値よりも上にある値とを組…

相対的内部と内部のイメージ

相対的内部は初回だとどんな集合なのかイメージしにくいと思う. なので, どんな集合をイメージしているのかを簡単に記しておく. アフィン包 相対的内部ではその定義にアフィン包を利用する. 最初の頃, これが自分にはどんな集合かがイメージしにくかった.定…

Pythonのclassの構文について

タイトルのまんま. Pythonのclass構文はJavaなどのように特殊な構文解析を実装しているわけではないらしい. python-history-jp.blogspot.com 単純にclass:の後ろに書いてある文を無名関数に入れて, クラス辞書というクラスの情報を管理するための辞書に, ク…

ルベーグ外測度のイメージ

外測度, 特にルベーグ外測度についてのイメージを記しておく. 準備 ルベーグ外測度自体の定義の述べる前にいくつか準備をしておく.まず, 区間 とは次元ユークリッド空間の部分集合のことをいう. ただし, を指す. これはどういうことかというと, のとき, 閉区…

Preview.appの履歴の削除方法

Mac

次のコマンドを実行して再起動。 $ rm ~/Library/Preferences/com.apple.Preview.LSSharedFileList.plist

psqlのバージョン違いによる挙動

psqlコマンドはメジャーバージョンが違うとパスワードに認証などを通さなくなるみたい。 例えば、PostgreSQL 9.6な環境にPostgreSQL 10.5のpsqlを利用しようとしても弾かれる。 事前に入るPostgreSQLのバージョンはちゃんとチェックしておこう。

Firestoreをウェブアプリで使う

まだドキュメント化されていないっぽいところもあったので、メモしておく。 まず、Cloud Firestoreのルールを次のように変更しておく。 service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if r…

firebaseでのwarning

TypeScriptで import firebase from 'firebase'; とかしたらwarning吐かれた。 warning内容 今時は import firebase from 'firebase/app'; してから個別に必要なパッケージを入れろとのことらしい。 // 個別に必要なものをインポート import 'firebase/auth'…

opamとfish

環境 opamのバージョン: 1.2.2 OS: macOS High Sierra 問題 opamが掃き出す素の状態の~/.opam/opam-init/init.fishをfishでsourceすると、死ぬ。 詳細を書くと、 ~/.opam/opam-init/init.fishの中で~/.opam/opam-init/variable.fishをsourceしてるんだけど、…

Gurobi+C++

やりたいこと 最適化問題 をGurobiに解かせる。 ホスト言語はC++14。 なお、ここでは であることに注意。 やり方 まずはgurobi_c++.hと、(例のために)vector、randomをインクルード。 #include <gurobi_c++.h> #include <vector> #include <random> // インタンスを乱数で用意するため そし</random></vector></gurobi_c++.h>…