takeda_san’s blog

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

2019-01-01から1年間の記事一覧

2019年を振り返って

毎年振り返りを書いて、数年後にまとめて読んだら楽しいかなと。 無事にこのタグ二つ目の記事が書けて感無量です。 2018年の振り返りはこちら。 takeda-san.hatenablog.com ブログ 2017年2月に始めたブログも、もうすぐ3年である。 何かネタがあるとブログに…

業務フローの無駄をなくして効率化してる場合じゃない

お悩みを文書としてストックしておくことで懇親会での話のきっかけに使えそうという動機で書いてます。 お悩み 最近、業務を抽象化して共通化して、ムダをなくしていくというアプローチは間違いではないかと思っています。 業務効率化の成功例としてよく語ら…

Firebaseで業務アプリケーションを構築しよう 4:GitHub Actionsでデプロイフローの構築

シリーズ Firebaseで業務アプリケーションを構築しよう 1:Nuxt.jsのセットアップ - takeda_san’s blog Firebaseで業務アプリケーションを構築しよう 2:Firebase Functions&Hostingにデプロイと動作確認 - takeda_san’s blog Firebaseで業務アプリケーション…

Firebaseで業務アプリケーションを構築しよう 3:一覧画面と編集画面の追加、CloudStoreにデータの保存

シリーズ Firebaseで業務アプリケーションを構築しよう 1:Nuxt.jsのセットアップ - takeda_san’s blog Firebaseで業務アプリケーションを構築しよう 2:Firebase Functions&Hostingにデプロイと動作確認 - takeda_san’s blog Firebaseで業務アプリケーション…

バックオフィス担当の専任開発者は本当に必要なのか

お悩みを文書としてストックしておくことで懇親会での話のきっかけに使えそうという動機で書いてます お悩み 今、主な仕事がバックオフィスのシステム担当なのだけれども、なんだか専任社員を雇ってまでやることではないのではという流れが来そう… 不穏な空…

Firebaseで業務アプリケーションを構築しよう 2:Firebase Functions&Hostingにデプロイと動作確認

シリーズ Firebaseで業務アプリケーションを構築しよう 1:Nuxt.jsのセットアップ - takeda_san’s blog Firebaseで業務アプリケーションを構築しよう 2:Firebase Functions&Hostingにデプロイと動作確認 - takeda_san’s blog Firebaseで業務アプリケーション…

Firebaseで業務アプリケーションを構築しよう 1:Nuxt.jsのセットアップ

目的 Firebaseを使って業務アプリケーションを作りたい。 背景 普段はAWSのECSでフロント/バックエンドのサーバを立てて業務アプリケーションを稼働させています。 ですが、利用者も限られてるしフロントエンドサーバに至ってはコンテンツの配信を一日に数回…

HTMLをprettierでフォーマットかけると変なところで改行がはいる件

きっかけ Vue.jsのファイルでHTML書いてprettierでフォーマットかけるとたまーに、横に長い行が変な位置で改行せよとエラーが出る。 たとえばこんなコード。 <template> <a href="/hoge.html">super long long long long long long long long long long</a> </template> 出力 2:23 error Replace `>super·lo…

【3Dプリント】VRChat用の自作モデルをDMM.makeで3Dプリントしてみました #VRChat

きっかけ 相変わらずかわいいなぁ…自分。 これ、フィギュアにして無限に眺めたいなぁ… 3Dプリンターサービス - DMM.make 3Dプリント というわけで、dmm.makeの3Dプリントで出力することにしました。 ※2019/8/21時点での情報です。作る素材、大きさによって値…

VPC内のリソースにアクセスするときのLambda関数の権限まわり

AWS

きっかけ VPC上のRDSにアクセスするLambda関数を作るときに通常と違う権限設定が必要です。 ちょっとハマったのでメモ。 基本編 ほぼこのドキュメント読めばおしまいです。 Amazon VPC 内のリソースにアクセスできるように Lambda 関数を構成する - AWS Lamb…

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を利用して子のデータを作るみたいなことが簡単にできる。 なん…