背景 pythonには標準モジュールの中にunittestが含まれるのですが、使い方がすぐに分からなかったため、他のプロジェクトでもコピペできるようにテンプレートを備忘録として残しておきます。 *注意事項 python2.7以上からunittestではsetUpClass, tearDownClassというテストクラスの初期化時に実行されるメソッドを用いることができるようになりました。 python2.6以下の場合は、unittest2というモジュールをインポートすることでこれらのメソッドを使うことができます。 コードのテンプレート ポイント * unittest.main()では、setUpClass → (setUp → tearDown) *ループ → tearDownClass が実行されます。 * test用のメソッドは名前の先頭を test から始めなければなりません。e.g.
はじめに Dockerイメージを作成しAmazon ECRにプッシュするまでの方法を確認してみました。 Amazon ECR(Amazon Elastic Container Registry、以後 ECR)にはDocker HubのようにDockerイメージを保存できます。 保存したイメージはAmazon Elastic Container Service (Amazon ECS) やAmazon Elastic Kubernetes Service (Amazon EKS) などのコンテナ関連のサービスで利用できます。 私自身、DockerやAWSのコンテナサービスを最近使い始めたもので、もし内容に齟齬など有りましたらお気軽にご指摘いただければ思います。 今回の前提 今回の確認を実行するに当たっては、以下のソフトウェアが導入済みであることが前提となります。 Dockerをインストールし
材料 大根の葉 1束 ツナ缶 1缶 ☆しょうゆ 大さじ2 ☆酒 大さじ2 ☆みりん 大さじ2 ごま油 大さじ1 いりごま 適量 大根葉がたくさん出る季節、ツナ缶と炒めてふりかけに(*´꒳`*)ご飯が進みますよ〜! 作り方 [1] ツナ缶を油ごとフライパンに入れ、ごま油を足し炒めます [2] 細かく切った大根葉を加えさらに炒めます [3] ☆の調味料を入れ、煮汁が少なくなるまで炒めて最後にいりごまを入れたら出来上がり♡ [4] ツナ缶をちりめんじゃこに変えたバージョン。ごま油を大さじ2にします^^ [5] 子供たちの好きな大根葉チャーハン❤ご飯と一緒に炒めるだけで~す♪ [6] ご飯と混ぜておにぎりにしても(〃ω〃) [8] 大根葉、間引き菜お安くて助かりますよね~♬これで98円 ■コツ・ポイント 大根葉は炒めるとあっという間に量が減るので、ツナ缶が少ないかな?と思っても、ちょうど良くなると
TLDR; this is the last edition of The Morning Paper for now. Plus: one strand of research you won’t want to miss! I was listening to a BBC Radio 4 podcast recently (More or Less: Behind the Stats - Ants and Algorithms) in which the host Tim Harford is interviewing David Sumpter about his recent ... Continue Reading An overview of end-to-end entity resolution for big data, Christophides et al., ACM
Kotlin 1.3 が2018年10月30日に正式版として公開されました。 それに伴い、コルーチンが stable へと昇格しました! 非同期処理を楽に書けるコルーチンですが、コルーチンの書き方はわかったものの、実際何がどう動いて何と何がどう関係しているのかといったメンタルモデルが構築されるまでよくわからないまま使ってました。 自分の理解の整理も兼ねて、自分の中のメンタルモデルを図と文で書き出してみました。 間違っているところなどございましたら、コメントなどでご指摘いただけますと幸いです。 Kotlin のコルーチンについて、多少どういったものであるかを知っている人向けになっていますので、そもそもコルーチンって何?って方はまずはこちらの記事をご覧ください。 また、本記事では CoroutineContext のことを単に コンテキスト、 CoroutineScope のことを スコープ
はじめに 皆さん coroutines は使っていますでしょうか? coroutines を使っていると SupervisorJob を使うことってありますよね?そのときとりあえず SupervisorJob を付けてしまったという経験はないでしょうか、私は言われるがままに付けてしまったことがあります。SupervisorJob をなんとなく使い続けるのはやばいと思ってきたので、今回は SupervisorJob について調べてどんな役割があるのかまとめたいと思います。 SupervisorJob とは SupervisorJob - kotlinx-coroutines-core を確認したところ SupervisorJob には以下の役割があるそうです。 - SupervisorJob の子 Job は独立して失敗するようになる。 - つまり子 Job でエラーが発生してた場合に親 J
本記事はQiitaの「データに関する記事を書こう!」イベント用の記事となります。 最近聞くことが多くなってきたJinjaの書き方について整理&まとめてみました。 Jinjaって何?(どんなところで使われているのか) Djangoとかを普段使っている方はお馴染みの{% for i in range(10) %}とか{{ any_variable }}みたいな書き方を任意のテキストファイルに対して反映できるテンプレートエンジンのライブラリです。初版リリースはこの記事を執筆している時点で3年弱くらい前なので比較的新しいライブラリになります。 以下に書かれているようにDjangoのテンプレートの機能がベースとなっており、Djangoに慣れている方であればほぼ学習コスト0で書けるような書き方になっています。 Djangoのテンプレートエンジンにインスパイアされているので、パッと見はDjangoのデフ
この投稿は、Kubernetes(以下 k8s)のジョブについて、理解を深めるために、https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ を読み解いたもので、個人的な補足や、検証を含むものです。 k8sのジョブとは ジョブは1つまたは複数のポッドを作成し、指定された数のポッドが正常に終了することを保証します。 ポッドが正常に完了すると、ジョブは成功完了を管理します。 指定された数の正常な完了に達すると、ジョブ自体は完了です。 ジョブを削除すると、作成したポッドがクリーンアップされます。 簡単なケースでは、確実に1つのポッドを完了して実行するために、1つのジョブ・オブジェクトを作成します。 ジョブ・オブジェクトは、最初のポッドに障害が発生した場合やノードのハードウェア障害やノードの
曖昧に理解してるかもと思い、自分の振り返りのために書いてます。 先日書いた記事で作ったデータで説明します。 MySQLのロック 通常、DML実行時に取得されるロックは排他ロックと共有ロックで構成されます。 最初にトランザクションでロックをかけたほうが排他ロック、 ロックがかかったデータを参照だけするためにかけたほうが共有ロックと呼ばれます。 共有ロックがかかった状態では他のトランザクションでも共有ロックはかかり(データの読み取りができ)ますが、データの書き込みはできません。 一方、他のトランザクションが同じ行をロックするのを回避するタイプのロックを排他ロックといいます。 トランザクション分離レベルに応じて、 他のトランザクションが同じ行に書き込むのをブロックできる 他のトランザクションが同じ行を読み取るのをブロックできる となります。 MySQLで書き込み中データ読み取れると思ったでしょ?
この記事は個人ブログと同じ内容です zenn.dev はじめに 業務でデッドロックが発生し、原因がわからずに時間を費やしてしまいました。そこで、今回はその原因と解決方法について調査した結果を備忘録としてまとめたいと思います。 状況 実際のテーブルやアプリケーションコードを直接お見せするわけにはいかないので、簡易テーブルを用意して、SQLにて当時の状況を再現してみたいと思います。 テーブル内容 CREATE TABLE users ( id INTEGER PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) ); CREATE TABLE rooms ( id INTEGER PRIMARY KEY AUTO_INCREMENT ); CREATE TABLE entries ( id INTEGER PRIMARY KEY AUTO_INCREMEN
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く