Locustでシャーディング的なことをしたい

Locustは大変お手軽に負荷試験のスクリプトを作れる、かつ、テストスクリプトの柔軟性があってよい。 今回は以下のような要件があった。 複数のWorkerで処理をスケールアウトさせたい あるIDは、同じWorkerで処理をさせたい(同じIDを別のWorkerで処理させた…

IntelliJ IDEA x WSL2がクソ重い件

困ったこと WSL2上のMavenプロジェクトをWindows側で開いた "Scanning files to index...." でほぼハングする 原因 Windows Defenderが悪さしていたっぽい。以下のJetBrainsのForumも結構荒れていた模様。 https://youtrack.jetbrains.com/issue/IDEA-286059…

MySQL + JDBC Timezoneまとめ

choge.hatenadiary.com 前回からの続き。JDBCでのデータ書き込み、読み出しの際のタイムゾーン周りを確認する。ややこしくて頭が爆発しそう。 前提条件 MySQL 5.7 docker-composeでMySQLインスタンスをローカルで立ち上げる MySQLのSystem time zoneはUTC+07…

MySQL Timezoneまとめ

やりたいこと MySQLでのタイムゾーンの扱いをざっくり理解する 複数タイムゾーンを扱う際の方法を何となく身につける JDBC接続の際の挙動の前提知識を得る 前提知識 MySQLサーバ側のタイムゾーンの概念 System time zone: サーバ起動時に指定するタイムゾー…

Admin権限なしでRustをWindowsにインストール / Installing Rust on Windows without Admin

Why Rust製の諸々のツールを使いたい 通常、RustをWindowsにインストールするときは管理者権限必要 doc.rust-lang.org 会社用のPCとかだと、諸々あってAdmin権限がない How scoop をインストール scoop install msys2 でMSYS2をインストール。これでMinGW64…

ES6の書式でJestでテストする (Bebelなしで)

やりたいこと Jest を使ったテストを導入したい ただ、 require じゃなくて import とかのES6の構文を使いたい Babelの設定とかで消耗したくない 注意事項 JestのES Modulesサポートはまだ実験段階で、サポートされてない機能が結構あるらしい。 github.com …

Vivaldi: YouTube MusicをWeb Panelに追加する

事象 Web PanelにYouTube Musicを追加する。再生した後にWeb Panelを閉じると、再生が止まってしまう。 原因 デフォルトでモバイル版のサイトがWeb Panelに登録される モバイル版は、フォーカスを失うと再生が止まる仕様っぽい 対処 パネルのアイコンを右ク…

Lightsail: CLIENT_UNAUTHORIZED [769]

事象 Lightsailコンソールからのログインでエラー。DistroはUbuntu 18.04LTSを20.04LTSにアップグレードしたもの。 CLIENT_UNAUTHORIZED [769] 原因 新しいバージョンのSSH (8.2) から、SHA-1ハッシュのサポートが標準ではサポートされなくなっているため。 …

Docker + WSL2

Docker + WSL2での開発ってできるの?という疑問を調べてみたメモ。 Dockerのコンテナを動かす部分と、イメージを格納する部分は、WSL2を使うようにできる。WSL2がある状態でDockerをインストールすると、勝手にそれを使うように設定してくれる。 インストー…

MacでAWSのCodeCommitをcloneできない

事象 git cloneすると、以下のエラーメッセージ。実際には当該レポジトリは存在している。 fatal: repository 'https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/sample/' not found 環境 OS: macOS High Sierra (10.13.3) git: OS Xに付いて…

Spring + Vue.jsでページングする

Spring Dataを使うと、Pagingをいい感じにやってくれる。こいつとVue.jsを使って、いい感じにページングをしてみる。 API SpringのRestControllerとPageableが全てよしなに取り計らってくれる。 @RequestMapping("/api") @RestController public class APICo…

MongoDBで集計した上にガッチャンコするやつ

やりたいこと MongoDBにざっくり以下のようなデータがある。 { groupId: "aaa", lang: "en", data: "hoge" }, { groupId: "aaa", lang: "ja", data: "ほげほげ" }, { groupId: "bbb", lang: "en", data: "fuga" }, { groupId: "bbb", lang: "fr", data: "tit…

DynamoDBでQuery

一つのパーティションの中に26万件データが入っている状態でQueryをいっぱい試してみたけど、1回4KBくらいの読み込みだと、0.01秒くらい。 大したことないな。 >>> sparse.item_count 263132 >>> times = [] >>> for i in range(100): ... before = time.tim…

AWS ことはじめ その5 (DynamoDB - Part3)

前回に続いて、今度はデータの読み出し。 choge.hatenadiary.com やっぱりIDとタイムスタンプ以外でも読み出したいとか、貯めておくのは一旦1ヶ月でいいとか、色々要望がぶれ始めているのでDynamoDBを本当に使うのか雲行きが怪しくなってきている。IDとタイ…

AWS ことはじめ その4 (DynamoDB - Part2)

前回につづいて、DynamoDB。 choge.hatenadiary.com 今回は、①Python(boto3)でのテーブル作成、②Pythonで大量にデータをぶち込む、の2点。 boto3でのテーブル作成 boto3には、低レイヤーを担当するClient、テーブルの操作を行う(?)Service Resourceなんかが…

AWS ことはじめ その3 (DynamoDB Part 1)

なんでDynamoDBを使いたいのか IoTっぽい時系列データを蓄積したい的な話。データの件数が数億~数百億のオーダーになる可能性があり、どれくらい現実的なのかを調べたいため。無料枠でできる範囲で試してみる。 いい感じに検証できる環境があればいいんだけ…

aws ことはじめ その2 (IAM - アカウント別名)

IAMでロールを作ったはいいけど、アカウントIDを覚えられなくてログインできなかったので、アカウント別名を作る。 aws> iam create-account-alias --account-alias ***masked*** aws> iam list-account-aliases { "AccountAliases": [ "***masked***" ] } …

aws ことはじめ その1

ようやくがっつりAWSをいじることになりそうなので、無料利用枠で使い始めてみる。 やるならCLIっすよ、と後輩に言われたのでCLIオンリーでやってみる。 まずは普通にインスタンスを立ててみる VPCを作成 aws> ec2 create-vpc --cidr-block 192.168.0.0/16 {…

When a character's codepoint is beyond U+10000, I should use 32-bit literal. >>> '\u1f4a9' 'Ὂ9' >>> '\U0001f4a9' '' If I try to input '' directly in Jupyter console on Windows cmd, it aborts with the error: Traceback (most recent call last…

test

とりあえずテストですん #!/usr/bin/env perl use v5.16; use warnings; use Getopt::Long; my $some_option; GetOptions( "some-option|s=s" => \$some_option, ); say "Hello, world."; my %hash; my @array; for my $i (0 .. 9) { say "$i ^ 2 = ", $i **…