OpenID Connect のメモ

Amazon Cognito の署名検証のコードを書きました。 OpenID Connect (OIDC) では公開鍵方式に RSA を使用する署名検証アルゴリズムの RSA-SHA256 (RS256) がよく使用されています。 公開鍵は、JSON Web Key (JWK) 仕様にあるように JSON で公開鍵の情報が IdP…

古くなったMacBook ProからバッテリーとHDDを取り出した

気づくと、バッテリーがパンパンに膨らんでいて、とりあえず、バッテリーとHDDを取り出そうと MacBook Pro の分解をはじめました 以前、バッテリーをはずすYドライバーは購入していたのですが、バッテリーの膨らみにより簡単には外せませんでした。もっと早…

HeadlessなDebianをmacOSのVirtualBox上に構築したメモ

Debianからインストールイメージをダウンロード debian-9.9.0-amd64-netinst.iso インストールイメージを使って、仮想マシンを構築(sshを有効にしておきます) ホストオンリーアダプターを追加 /etc/network/interfaces にホストオンリーアダプターを追記 all…

FireタブレットにMacからUSBでファイル転送

Google で配布されているAndroid File Transferで転送できる。 Fire用のVLC for Fire、Chromecastで再生できる。

Ubuntu 18.04 に pyenv と Python 3.7.2 をインストールしたメモ

$ sudo apt-get install git $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv export PYENV_ROOT=$HOME/.pyenv export PATH=${PYENV_ROOT}/bin:$PATH eval "$(pyenv init -)" $ sudo apt-get install gcc make $ sudo apt-get install libssl-dev …

VirtualBox に Ubuntu 18.04 と Docker をインストールしたメモ

VirtualBox Ubuntu 18.04 VirtualBox 上の Ubuntu に ssh でログインするために、openssh-server をインストール $ sudo apt-get install openssh-server Docker CE をインストール Get Docker CE for Ubuntu $ sudo apt-get install \ apt-transport-https …

MacBook に pyenv をインストールしたときのメモ

macOS Mojave 10.14.4 Homebrew $ brew install pyenv .bash_profileの編集 $HOME/.bash_profile export PYENV_ROOT=$HOME/.pyenv export PATH=$(pyenv root)/shims:$PATH Pythonのインストール $ sudo installer \ -pkg /Library/Developer/CommandLineTool…

Fire 7 に Firefox をインストールする手順

設定 > セキュリティとプライバシー の 詳細設定 にある 不明ソースからのアプリ をオンにする Download Firefox for Android in your language で、ARM デバイスの apk をダウンロード apk を開いてインストールする 設定 > セキュリティとプライバシー の …

Route 53 と カスタムドメインを使った Gmail の設定

今使っている DNS サービスより、AWS Route 53 の方が何かと扱いやすい気がしてきたので引越しをすることにしました。 その手順のメモです。 手順 AWS Route 53 コンソールを開きます [Create Hosted Zone] を選択します [Create Hosted Zone]ペインでドメイ…

Rasbian の IPv6 を off にする

IPv6 が on になっていると、ssh での接続がうまくいかないことが多かったので、off にしました。 /etc/sysctl.conf の末行に次の行を追記して再起動します。 net.ipv6.conf.all.disable_ipv6 = 1

Raspberry Pi 3 をアクセスポイントにする

公式のサイトのACCESS-POINTの "Using the Raspberry Pi as an access point to share an internet connection (bridge)" を参考に Raspberry Pi 3 をアクセスポイントにしました。 $ sudo -s # apt-get update # apt-get upgrade # apt-get install hostapd…

Microservices と DDD

本記事はドメイン駆動設計 Advent Calendar 2018 - Qiitaの4日目の記事です。 3日目は、bigwheelさんの「集約の境界と整合性の維持の仕方に悩んで2ヶ月ぐらい結論を出せていない話」でした。 5日目は、yoskhdiaさんの「エンティティの同一性を表現するために…

他アカウントの CodeCommit を使用した CodePipeline

開発アカウントに CodeCommit を使用して、プロダクションアカウントでビルドやデプロイを行うためのメモ。 1. プロダクションアカウント 1-1. CodePipeline のサービスロールのためのポリシーを作成する { "Version": "2012-10-17", "Statement": [ { "Acti…

ECR のイメージを別のアカウントの ECR に転送する

準備 $ pip install boto3 $ pip install docker ECR から pull import boto3 import base64 import docker account_id = '123456789012' region = 'ap-northeast-1' name = '%s.dkr.ecr.%s.amazonaws.com/%s' % (account_id, region, 'example') session = …

Excel 2016 for Mac でシート名のタブが表示されなくなったとき

ある日の夕方、わたしはパニックになっていた。 通常なら、エクセルの画面の下にはシート名がこんな感じで表示されていて、目的のシートを編集するだけだと思っていたからだ。 ところが、実際に操作をしようとすると、なんとシート名が表示されていない。目…

Serverless Framework で Pseudo Parameters を使う

Serverless Framework で AWS の Pseudo Parameters を使うのに少し悩んだのでメモとして残します。 うまくいったパターン 2通りの方法で定義しています(var1 と var2)。 service: hello provider: name: aws runtime: nodejs8.10 custom: accountId: Ref: …

さんちか

神戸三宮の地下街に入るとかならず耳にするあの曲ってなんだろうとしらべてみた ばんばひろふみさんの「風に乗って」だとわかった CDはすでに廃盤 なんとか曲を手に入れられないかいろいろ調べたら mora.jp で販売されていた 音楽ダウンロード・音楽配信サイ…

sbt

AttributeKey キー 型 説明 projectCommand sbt.internal.util.AttributeKey[scala.Boolean] sessionSettings sbt.internal.util.AttributeKey[sbt.internal.SessionSettings] stateBuildStructure sbt.internal.util.AttributeKey[sbt.internal.BuildStruct…

Raspbian に Java 9 をインストール

Raspbian の Oracle Java 8 のバージョンを確認してみます。 $ sudo -s # apt update # apt search oracle-java8-jdk oracle-java8-jdk/stable 8u65 armhf Java™ Platform, Standard Edition 8 Development Kit 合わせて、OpenJDK の方も確認してみます。 # …

Java 8 と Java 10 での MixerInfo の並び順の違い

macOSでJDKのインストールにsdkmanを使っての話ですが、Java 8では声を出してくれていたコードが、Java 10で実行すると喋らないなと悩んでいたのですが、 単純にAudioSystem.getMixerInfo()が返す順序が変わっていただけということだった。 確認するためのコ…

ECS タスクを Fargate でスケジュール起動

Fargate で ECS タスクを起動するためには、launchType で "FARGATE"、ネットワーク設定で awsvpc として、サブネット、セキュリティグループ等を設定する必要があります。 これらのことが、CloudWatch Event の Rule でまだ設定することができないようです…

Fargate がついに東京に

Service 首を長くして待ってましたが、ついに Fargate が東京にやってきました。 ということで、以前米国東部 (バージニア北部) に作っていたものを、 東京(ap-northeast-1)に変えて実行してみました。 GitHub - PigumerGroup/aws-ecs-fargate Task polly で…

スレッド数を CloudWatch のカスタムメトリクスとして Publish する

micrometer を使ってスレッド数を CloudWatch のカスタムメトリクスとして Publish してみました GitHub - takesection/micrometer-cloudwatch-example // https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-cloudwatch libraryDepende…

スレッド数を CloudWatch のカスタムメトリクスとして Publish する

Amazon CloudWatch の概念 - Amazon CloudWatch package jp.pigumer.monitor; import com.amazonaws.services.cloudwatch.AmazonCloudWatchAsync; import com.amazonaws.services.cloudwatch.AmazonCloudWatchAsyncClientBuilder; import com.amazonaws.serv…

TOTP - Time-Based One-Time Password

TOTP について調べるため、AWS の MFA で使うことのできる 仮想 MFA アプリケーションと同様の機能を持つアプリケーションを作成してみました。 GitHub - takesection-sandbox/onetimepassword TOTP の仕様 RFC 4226: HOTP: An HMAC-Based One-Time Password…

DynamoDB - query

クエリの操作 - Amazon DynamoDB には、 "A single Query will only return a result set that fits within the 1 MB size limit." 「1 つの Query は、1 MB のサイズ制限の範囲内の結果セットだけを返します。」と書かれています。 query を実行したとき返…

Akka Streams - Broadcast と Thread

Broadcast 下のような Broadcast を使ったコードを記述します package jp.pigumer.akka import akka.actor.ActorSystem import akka.event.Logging import akka.stream.scaladsl.{Broadcast, Flow, GraphDSL, Sink, Source, ZipWith} import akka.stream.{Ac…

Akka Streams - javax.sound を使って mp3 を再生する

javax.sound を使って、mp3 を再生する package jp.pigumer.cast import java.io.{ByteArrayInputStream, ByteArrayOutputStream, OutputStream} import akka.stream.scaladsl.Flow import akka.util.ByteString import javax.sound.sampled.AudioFormat.Enc…

Akka Streams - Source

Source(1 to 10) のように Source と宣言されているものはもちろん Source ですが、 Source ではじまっていて、Sink で終わっていない場合は、Source として扱うことができます。 val source: Source[String, NotUsed] = Source(1 to 10) .via(Flow[Int].fol…

Future のテスト

Future は、処理がブロックされず、いずれ答えを返してくれる便利なものですが、 テストコードのように結果を検証したい場合は処理の完了を待つ必要があります。 下のサンプルコードでは、Future を Await.ready を使って、実行が完了するのを待ちます。 Awa…