What is it, naokirin?

ポータブルなCI/CD Daggerを試してみる

基本的に継続的な開発を行っていく上で、CI/CDは避けて通れなくなっています。CI/CDといえば、これまでも様々なツールやサービスがありました。 クラウドの発展やインフラ環境の変化などもあり、個々の特性を生かした機能やサポートなどを持つツールやサービ…

Amazon SQSと互換性のあるElasticMQでローカルで完結できるようにする

AWSでアプリケーションを開発していると、複数システム間を疎結合にする目的でAmazon SQSを利用することがあります。 一方でこうしたSaaS系に分類されるサービスは、ローカルの開発環境で動作を完結できず、ローカルでの開発中も、開発用に個別にAWSのサービ…

Vue.js + TypeScriptのプロジェクトで循環参照などの問題のあるファイルを検知する

最近、個人開発ではVue.js + TypeScriptをちまちまと書いています。 フロントエンドをがっつり書いていると、開発によってファイル数が増えていくとともに、依存関係や宙ぶらりんなモジュールができたりと言ったことが起きてしまう場合があります。 そこで、…

Vue.jsのストアライブラリ Piniaを使ってみる

Piniaとは Vue.jsを使う場合に、特にSPAの開発をしていると、クライアント側でグローバルな状態を共有したいことが多々あります。 これまではVue.jsでこのような手段として、ストアライブラリのVuexが使われることが多かったかと思います。 一方でVuexは、v4…

簡単なAnsibleのモジュールを作成する手順

Ansibleでは数多くのモジュールが提供されており、大抵はモジュールの簡単な組み合わせで解決することが多いかと思います。また特定の設定をまとめていく場合、まずはロールを利用すると思います。 一方で、既存のモジュールの単純な組み合わせでは対処しに…

JestでMock、Spyを使ってみる

Jestは、JavaScriptのテスティングフレームワークです。 一般的にテスティングフレームワークは、モック機能は別ライブラリとなっていることが多いのですが、Jestには組み込みのモックライブラリが存在しています。もちろん他のモックライブラリを利用するこ…

TypeScriptで関数の戻り値の型を利用する

久々に小ネタ的な備忘。 タイトルの答えは以下です。 const func = () => { ... }; type FuncReturnType = ReturnType<typeof func>; ただし、 ReturnType が使えるのは TypeScript 2.8からです。 以下は雑記です。 ライブラリのFactory関数の戻り値に型をつけたい 最近、</typeof>…

経営理論まとめ(組織の経済学)

何冊か経営学の書籍を読んだのでまとめていく。 経営理論のまとめ記事一覧 主に世界標準の経営理論を元にする。 世界標準の経営理論作者:入山 章栄ダイヤモンド社Amazon 企業・組織の経済学 企業・組織における経済学として、主に3つの理論が存在する。 情報…

経営理論まとめ(ゲーム理論)

何冊か経営学の書籍を読んだのでまとめていく。 経営理論のまとめ記事一覧 主に世界標準の経営理論を元にする。 世界標準の経営理論作者:入山 章栄ダイヤモンド社Amazon ゲーム理論とは 相手の行動を合理的に予測しながら、互いの意思決定・行動の相互依存関…

経営理論まとめ

何冊か経営学の書籍を読んだのでまとめていく。 主に世界標準の経営理論を元にする。 世界標準の経営理論作者:入山 章栄ダイヤモンド社Amazon それぞれ個別の記事にしていく予定なので、各内容はリンク先に記載する。 経営理論まとめ(市場競争の型と競争戦…

経営理論まとめ(市場競争の型と競争戦略)

何冊か経営学の書籍を読んだのでまとめていく。 経営理論のまとめ記事一覧 主に世界標準の経営理論を元にする。 世界標準の経営理論作者:入山 章栄ダイヤモンド社Amazon 市場競争の型 競争の型 競争の型 IO型 チェンバレン型 シュンペーター型 前提のモデル …

PyO3でRustからPythonを呼び出してみる

Rustに限らず、静的型付き言語で実行時にスクリプトを読み込んで機能拡張できるようにしたいことがたまにあります。 今回はPyO3を利用して、RustでPythonを呼び出してみます。 なお、PyO3はPythonからRustを呼び出すこともできますが、今回はRustからPython…

2021年の振り返り

ついに2021年も終わりになりますね。 忘れないうちに、今年を振り返っていきたいと思います。 ブログ 1月〜6月: 6本 7月〜10月: 0本 11月〜12月: 13本 ブログですが、2020年はほとんど書けていない中、2021年前半〜中盤もあまり書けないままでした。 今年11…

Rustでvalidationを実行する

Webアプリケーションサーバのフレームワークなどでは、受け付けたリクエストのデータが適切かをチェックするためのバリデーション機能があります。 Rustでは汎用的なバリデーションのクレートとして validator が存在しており、こちらを使う機会があったので…

Amazon Honeycodeに入門してみた

お正月休み2日目。早速予定時刻を大幅にすぎて起床したので、慌ててゴミ出しをしました。。。 それはさておき、前々から気になっていた、Amazon Honeycodeに少し入門してみました。 Amazon Honeycodeとは Amazon Honeycodeはいわゆるノーコードツールで、Exc…

AWS CDK で Fargate を建てるまで

正月休みということで、時間を使ってやるようなものを消化していこうと思っています。 今回は AWS CDK(Cloud Development Kit) で Fargate で nginx を建ててみます。 以下で行ったことは、Githubに上げてあります。 github.com バージョン $ aws --versio…

Webサイトの入力をtextlintでチェックして、正しい日本語の記述を補助する

普通に日本語チェックするのめんどいよねーという話が定期的に上がるけれど、有料のサービス組み込むほどじゃない、ということで、textlintで気軽にできないかなと思い立ったのでやってみました。 なんとなくRailsにActiveAdmin突っ込んで、管理画面のフォー…

依存関係のライセンスと脆弱性を検出するために、License FinderとTrivyを試してみる

サーバーを実行していたりすると使っているフレームワークやライブラリの依存関係を含めて「ライセンスは大丈夫なのか?」「脆弱性はないのか?」ということがあります。この「依存関係を含めて」というのが自前で検証するのが難しい要因ですが、現在はパッ…

RustのWebフレームワーク warp を使ってみる

ポケモンを衝動買いしたものの、全然やる暇がないですね。。。 時間は作るものらしいので、ポケモンやる時間作ります(現在進行系でブログ記事に時間を使ってますが)。 今日は、ちまちま作っているOSSの fakey-cognito で使っている RustのWebフレームワー…

Rustの宣言的マクロを書いてみる

Rustには、宣言的マクロ(Declarative macro)と手続き的マクロ(Procedural macro)があるのですが、今回は比較的書く機会の多い宣言的マクロについて記載します。 宣言的マクロとはなにか? Rustでは、メタプログラミングの機能としてマクロが存在していま…

バッチ実行をcronから移行する 〜Dockerコンテナにdigdagを添えて〜

最近の悩みは、ブラックフライデーに乗せられてまた本を買ってしまったので、積み本消化と仕事の両立です。。。 今回は、正直サーバーレスではなくちょっと古い感じの手法ですが、クラウドサービスの制限によらずに使えるのと、比較的簡単に移行できるという…

読書記録:AWSコンテナ設計・構築[本格]入門

すでに普通にAWSでコンテナ運用を行っていますが、しっかりと再度知識をインプットし直す意味も込めて、「AWSコンテナ設計・構築[本格]入門」を読んでみました。 AWSコンテナ設計・構築[本格]入門作者:新井 雅也,馬勝 淳史SBクリエイティブAmazon 一通り…

Spring Data JPA (+ Kotlin)でレコードに作成日時、更新日時を設定できるようにする

本日は11月23日、新嘗祭の日ということで、ありがたくご飯を食べながら記事を書いていこうと思います。 (キンロウカンシャのひ?キンロウってなんですかね…? ) 今日は、Ruby on Railsでは当たり前のようにDBに生やす、 created_at と updated_at をSprin…

Vue Router で遷移前、遷移後に処理を行う

最近はもっぱら電子書籍を買うことが多くなりましたが、物理スペースを気にせず一気に買えるので、積み本が増えてしまっている今日このごろです。 今日は、Vue.js の Vue Routerを使う際に、「遷移時に毎回処理をしたい」といったことがあったので、その際に…

kotest(旧KotlinTest)でSpring Securityのテストをする

最近はちまちまとKotlinとSpringBootのアプリケーションを勉強しています。 SpringBootの場合、Kotlinでも、JUnitを使うほうが何かとサポートが手厚く、Web上のドキュメントも豊富ですが、今回は勉強ということでkotest(旧KotlinTest)を利用してみました。…

Ansibleに入門するための演習ができるリポジトリを作成してみた

お久しぶりです。 最近は緊急事態宣言が終わってからの通勤という名の苦行に疲れ、休みは気分転換にカメラ片手に歩き回ってばかりいる今日この頃です。 前回記事を書いてからかなり間が空いてしまいましたが、その間にやったことのひとつを紹介したいと思い…

無料のデータ分析サービス Mi-Analyzer のサーバー構成を解説します!

Mi-Analyzerを4月23日にリリースしました! --- 2021/11/7 追記 --- すみませんが、Mi-Analyzerのサービス提供は終了しました。 多少お時間をいただく可能性が高いですが、今後、OSSとして一部公開を目指しています。 --- 追記終わり --- Mi-Analyzerはスプ…

Kotlinの初期化について今さらまとめておく

前回は、コルーチンについてをまとめました。 naokirin.hatenablog.com 今回は初期化についてをまとめておきます。 初期化の順序 突然ですが、まずは各初期化処理がどの順序で呼ばれるのかを把握しておきます。 class User(val name: String, val age: Int) …

Kotlinのコルーチンについて今さらまとめておく

前回の記事で、コレクション関数をまとめました。 naokirin.hatenablog.com 今回はコルーチンについてまとめておきます。 コルーチンとは コルーチンはある処理を中断・再開できるインスタンスを指します。 スレッドもこのような動作を行うことができますが…

Kotlinのコレクション関数について今さらまとめておく

前回の記事で、スコープ関数をまとめました。 naokirin.hatenablog.com 今回はコレクションを操作する関数をまとめておきます。 今回紹介する関数はすべて、もとのオブジェクトを変更せずに、操作後の結果を別のオブジェクトとして返却するようになっていま…