takeda_san’s blog

KotlinとVRを頑張っていく方向。

SpringをKotlinで書くとバリデーションつらい

きっかけ ズバリこの話なんだけれども。 【Kotlin】KotlinでJava EEのBean Validationを使うときの注意点 - B-Teck! こんな感じのControllerとRequest用のエンティティがあって コントローラー @RestController @RequestMapping("address") class AddressCon…

Google Apps ScriptをTypeScriptで書こう

きっかけ 便利ですよね。Google Apps Script。 OfficeのマクロみたいにGoogleの関連サービスの操作を自動化できる。 自分用ツールだったり、ちょっとした業務の自動化だったらすぐ出来てお手軽なのでよく使います。 ですが、これJavaScriptベースなので型が…

Kotlinで多次元配列ってどう書くんですか?

きっかけ 配列、つかってますか? こと業務システムにおいては使う機会ってめったにないですよね。 ふと思ったわけですKotlinで配列ってどう書くんだっけ… Kotlinで配列 まず心のふるさとJavaだとこう。 なんとなくint型の箱(ものを投げないでください)が3つ…

JJUG CCC 2019 Springにいってきました #jjug_ccc

午後から参加しました。 時間の余裕あるやろと思って、ゆっくり諸々の家事をしていたら意外にセッション開始ギリギリでした。 http://www.java-users.jp/ccc2019spring/#/ 懇親会付きで申し込みしたのですが、決済が今回から交通系ICカードになって気軽にな…

SpringでAthenaを使おう!

きっかけ Athena便利ですよね。 S3にCSV形式とかのファイルを置いて、Glue crawler実行するだけで集計できるようになっちゃうんですよ。 ディレクトリを日付ごとに分けることで、パーティションも自由自在! こんなに簡単にログ集計できていいんですかね。 …

build.gradleでCannot resoleve symbol 'KotlinCompile'と出るので

事象 ちょっと検証したいことがあって、Spring InitializrでKotlin&Gradleのプロジェクトを作って Intellij IDEAいつものようにインポートしたんだけど、なぜかビルドできない… なんでや! https://start.spring.io/ 5/18追記 今日またプロジェクト作ってみ…

レガシーをぶっつぶせ。現場でDDD!に行ってきました #genbadeDDD

きっかけ レガシーをぶっつぶせ。現場でDDD!に行ってきました。 genbade-ddd.connpass.com 正直、タイトル一本釣りな感じです。 こんな過激で魅力的なタイトルあります? 実際に現場でDDDに取り組んで、失敗とか反省とかあると思うんですよね。 それを共有…

システム開発と3Dモデルのモデリングは実は似ていた?

はじめに Oculus Quest版のVRChatで使う用のローポリモデルを作りました。 その自慢記事です。 ここにBlenderファイルを置いてます。 github.com 前回のモデル作成はここ。 作り方はこの記事と変わらないです。 takeda-san.hatenablog.com 3Dモデルにも要件…

Vue Routerのナビゲーションガード(beforeEach)が2回発火している気がする

現象 入力フォームの画面で、編集途中で画面遷移するときに保存しますか?みたいなダイアログ出しますよね。 Vue RouterだとナビゲーションガードのbeforeEachを使うと、お手軽に実装出来て楽ですね。 ナビゲーションガード | Vue Router こんなの。 beforeR…

SpringでGETのAPI作ったときに結果なしをどうやって返そうか考える

きっかけ それは、Springの諸々をKotlin書いていたときの出来事です。 id指定で1件レコードを返すAPIを愚直に書いていたのですが… (関数名の適当さは目をつぶってほしい) Controller @GetMapping("{id}") fun getAddress(@PathVariable("id") id: Int): Find…

JSUG勉強会 2019その2に行ってきました #jsug

きっかけ JSUGの勉強会に行ってまいりました。 Spring BootベースのDDDサンプル徹底解説! jsug.doorkeeper.jp 題材は、このリポジトリの解説とJIGというツールの紹介でした。 GitHub - system-sekkei/isolating-the-domain: architecture sample using : Sp…

Vue.js+TypeScriptで管理画面をつくる第一歩

きっかけ Vue.js(+vue-router、vuex)をTypescriptで書いたら、すごく良かったので最初の一歩をメモとして残す。 作成するサンプルはギョームツールとしてよくある、一覧画面を作る。 publicで使いやすそうな気がするので、利用するデータをもらってくるサー…

Typescriptの算出プロパティってこんな書き方もできるんですね

今日なんとなく、こんなん書けたら素敵だなと思ってやったらコンパイル通って驚いたので。 普通のInterfaceの使い方。 便利。感動。 interface NameInterface { firstName: string; secondName: string; fullName: string; }; class Name implements NameInt…

Java11+mysql-connector-java8.0.14で切断時にjavax.net.ssl.SSLException: closing inbound before receiving peer's close_notifyって出る

きっかけ ECS上で起動しているSpring BootからAWSのAurora(MySQL)を参照しているのですが、JDKを8から11に上げてから、なにやら断続的に例外が出るようになった。 javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify どうや…

名前付きのPointcutって論理演算子で組み合わせができるって本当ですか?

きっかけ SpringでAOPのAdvice対象を指定するPointcut式があるでないですか。 こんなの。 @Before("execution(* jp.takeda.aoplogs..*.*(..))") fun before(joinPoint: JoinPoint) { println("beforeだよー") } "execution(* jp.takeda.aoplogs.*.*(..))" こ…

Doma2のinsertで採番されたIDを戻り値で取得したい

きっかけ Doma2だとinsertの戻り値でシーケンス採番後のエンティティが取得できる。 これがあると何がうれしいかというと、親子関係のエンティティで親のデータを挿入した際のDBで採番されたIDを利用して子のデータを作るみたいなことが簡単にできる。 なん…

2018年を振り返って

毎年振り返りを書いて、数年後にまとめて読んだら楽しいかなと。 ブログ ブログを始めたのが2017年2月だからもうすぐ二年やってることになる。 なんだかんだで習慣になってて続いているので良いことです。 アクセス数が増えていた 月5000ぐらい…? 役に立っ…

JJUG CCC 2018 Fallにいってきましました #jjug_ccc

はじめに JJUG CCC、3回目の参加でございます。 takeda-san.hatenablog.com takeda-san.hatenablog.com 前日から部屋割りのスプレッドシートをみながら朝から最後まで見たいのばっかりだなぁとワクワクしていたのですが、 朝方までスマブラをしていて11時頃…

Doma2+SpringBoot+Gradle+Kotlinをやっていくときのアレコレ

似たようなタイトルの記事がありますが、お察しの通り続きです。 takeda-san.hatenablog.com きっかけ Doma2をKotlinで使うときにベストプラクティスとしては、エンティティをData Classで書くのが良いらしい。 Kotlin サポート — Doma 2.0 ドキュメント と…

Doma2+SpringBoot+GradleをIntelliJ IDEAでやっていくときのアレコレ

きっかけ 幾度となく新規プロジェクトを作るときに、同じエラーを出して、同じ調べごとをしているのでいい加減メモっとこう。 環境 Windows10 IntelliJ IDEA Community 2018.03 今回のソースはここ。 github.com プロジェクトのテンプレ作成編 いつものSprin…

Vue.js+TypeScriptでもscopedなcssを書きたい

きっかけ TypeScriptを勉強し始めたので、どうせなら今書いているVue.jsのアプリで使いたい。 時代はTypeScriptだ。イェッヘッヘ と思って、やりだしたのですがコンポーネントのstyleをscopedな感じで書きたいときに大変困った。 素のVue.jsというか.vueファ…

Flywayを最初からやってみる

きっかけ この素晴らしき記事を写経していた時である。 (ほんとに素晴らしいのでみんなも写経しような) SpringBoot+Vue.js+ElementUI+Firebaseでマスタ管理アプリ入門 Flyway…すでにあるファイルをコピペでバージョン増やしてるだけで自分でイチからやったこ…

Serverlessconf Tokyo 2018にいってきた

Serverlessconf Tokyo 2018に行ってきました。 感想メモ。 基調講演 ビジネスロジックに集中したいからServerless 数人チームでシステムを開発運用をやっているとインフラ側に気を割きたくないという気持ちがある。 私はスケーラビリティというよりは、サー…

Blenderでクロマキー合成したい

やりたいこと マッチムーブという映像合成の方法で動画を作りたい。 実写の動画のカメラの動きと3Dモデルとか2Dの画像を同期して動かす、テレビとか映画とかでよく見るアレです。 Blenderで簡単にできるらしいのでやってみたのがこれ。 マッチムーブおじさん…

Serverless Java Containerをやっていく

きっかけ AWS Lambdaちからが欲しい…!というわけでAlexaスキルをちょいちょいやっていたけど、これではギョーミングLambdaちからが育たない…というわけで Serverless Java ContainerでギョーミングLambdaをやっていこう。 Serverless Java Containerって? …

VR飲み会を(ひとりで)練習する

VR

きっかけ 飲み会、好きです。 ビールはおいしいし、酩酊してよくわからない話をするのも好きです。 でも… お店に入るまでがつらい 地図を見ながら繁華街をうろうろするのがつらい →人ごみが苦手なのでつらい 予約しないと大抵は入れなくてつらい →お酒をのみ…

Vaadin Flow+Kotlin+Gradleで開発をしたい

きっかけ ふつう何かVaadin Flowで作るときは公式のテンプレみたいなのをダウンロードして作り始めると思うのですよね。 この辺のやつ。 Starter Packs | Vaadin でも、解凍して出てくるのはJava+MavenなのでKotlin+Gradleでやりたいときには使えない。 頑張…

LambdaをKotlinのjarで動かそうとしたらNoClassDefFoundErrorが出たので

起きたこと いっちょ、KotlinのサンプルプログラムをLambdaで動かしたるかいーッとGradleでJarを作って、いつものServerlessFrameworkでデプロイ。 その後、AWSのコンソールからLambdaのテストを実行。 あれ、失敗。 Error loading class com.serverless.Han…

KotlinでビルドしようとするとArrayIndexOutOfBoundsExceptionになる

起きたこと KotlinでLambdaやったるかいーッとビルドしたところArrayIndexOutOfBoundsExceptionになる。 ハローワールド並みに単純なコードなのにおかしいなぁ… 環境 IntelliJ IDEA 2018.1.6 (Community Edition) OpenJDK 10.0.2 Gradle 4.3 Kotlin Plugin 1…

Intellij IDEA+Gradleでインポート時にCould not determine Java version using executableって出る

起きたこと Serverless FrameworkでいっちょLambdaキメたるかいーッ!と颯爽とJDKを入れまして、IntelliJ IDEAでインポートしようとしたら何か落ちるんですよね。 Could not determine Java version using executable C:\Program Files\Java\jdk-10.0.2\bin\…