B-Teck!

お仕事からゲームまで幅広く

【MySQL/Docker】docker-composeでMySQL5.7のイメージを作成して接続する備忘録

参考にした記事 環境 最終的なプロジェクトのディレクトリ構成例(MySQLの場合) インストール Dockerfileを作成する docker-compose.ymlを作成する my.cnf(MySQLの設定ファイル)を作成する initdb.d配下配置したスクリプトでDBの初期化を行う 初期化処理でテ…

【本/DDD】 わかる! ドメイン駆動設計~もちこちゃんの大冒険~読書メモ

booth.pm こちらの本を読みました。 ストーリー仕立てでドメイン駆動設計の戦略的な部分を平易に説明してくれる良本で、DDDの用語にとっつきづらさを感じていた自分にはちょうどよい内容でした。 戦術的な部分については一切書かれていないので注意。 次は「…

【雑記】前に進むしかないという話

※極個人的な感情の辛さを整理するために書いたものです。 ここ数日、数年ぶりに仕事で何も出来ていないなぁ、役に立てていないなぁという無力感を味わう毎日が続いている。 未知の既存プロダクトの再構築、かつ得手としていないDB部分の構築、1Bに共有され1E…

【雑記】Miband4(Miスマートバンド4)のススメ

昨年末にXiaomiが日本公式販売をスタートしてからにわかに話題となっているXiaomiのスマートバンドですが、実際購入してみて確かに満足度が高かったので改めておすすめしたいと思います。 なぜMiband4を購入したのか Miband4でできること 買ってよかったこと…

【Java】ImmutableなCollectionをJavaで扱う

finalの挙動 インスタンスイニシャライザ 操作できないCollectionを作る インスタンスイニシャライザと組み合わせ finalの挙動 Javaのfinalは宣言した変数への代入を禁止するだけで、変数が持っているインスタンスの内容は変更できてしまう。 そのため、Coll…

【雑記】2020年の目標 その1

昨年の1月に色々目標を立ててみたものの、一年間というスパンではやりたいことの変遷や仕事の立ち位置、触れる技術などが変わっており、全然役に立たないなと思ったので、1月から3ヶ月おきに目標を立てようと思いました。 達成できた目標、今後も継続するべ…

【雑記】2019年よかったものたち

あけましておめでとうございます。あけてしまいました。 ホントは年内に書こうと思ってたのに冬休み前からずっとデス・ストランディングしていたら冬休みどころか明けて一週間も経っていたんですよね。 そこから書き始めた記事なので、公開がこんなに遅くな…

【雑記】2019 ふりかえり

2019年は、仕事・技術的な面で言えば平坦な年でした。 転職直後かつ、初めてのKotlinを導入した昨年のサバイバル感と比べてしまえば当然かも知れないです。 こなれた業務の中で既知の技術を扱い、たまにGoやRust、Androidに触れる程度でした。 Shibuya.apkや…

【PHP】PHPカンファレンス2019に参加したので感想などを書きました

PHP

2019/12/1に開催されたPHPカンファレンス2019に行ってきました。 2015年に開催されたもの以来の参加で、めっきりPHPを書いておらず不安だったのですが、 相変わらずとても楽しいイベントでした。 感想 参加したセッションと一言メモ PHPの今とこれから2019 P…

【Android/Kotlin】ZXing Android Embeddedを用いて簡単にQRコードを扱う

Androidアプリの勉強のため、QRコードリーダーの開発を行っています。 とりあえずQRコードを読み取る・生成する部分については実装することができました。 せっかくなのでご紹介しようと思います。 記事内に登場するコードは、下記リポジトリにて記載されて…

【Rust】Rust.Tokyo 2019に参加しました!#rust_tokyo

感想 参加セッション Rustで安全に実装するための心得 エッジMLシステムをC/C++からRustへ移行した事例 Rustによる数値計算の現状と課題 Web-based Data Visualization with Rust and WebAssembly いつの間にか社の中核製品にRustが使われていた件について R…

【API開発】稼働中のAPIサーバーリプレースの難しさ

TL;DR はじめに 何が辛いのか IFが定義されてない 仕様があまり明確ではない 独自フレームワークを使っている 最終的に目指すべき形 やりきるための進め方 忘れてはならないこと TL;DR I/Fや仕様が明確でないものを再現しながら移行するのは大変 まずは情報…

【ゲーム】今更 Papers, Pleaseをクリアした

全編日本語化されているので、安心してプレイできる Papers, Please、知ってますか? 細かい世界観の描写が良い お役所仕事を体験できる ぶっちゃけこのゲームの面白さなんて語り尽くされてるんですけどね Papers, Please、知ってますか? タイトルに今更っ…

【雑記】ブログ独自ドメイン化+AdSense再審査を行いました。

PV累計50万行ったので記念に独自ドメイン化しました。 その過程で色々やったので備忘がてら書いておきます 基本的には下記の記事の形で進めました。 https://blog.hatenablog.com/entry/2018/02/26/110000 1. お名前.comでドメイン取得 2. はてなブログ側で…

【JavaScript/jQuery】We don't need jQuery?

昔書いてたメモが出てきたので、今更ですが供養。 正直今でも作り捨てとか、とりあえず作るならjQuery使ってもいいんじゃないかな?って思ってる。 jQueryとはなんだったのか ブラウザ間でJavaScriptの実装が大きく異なっていた時代に、共通の実装が行えるよ…

【雑記】勉強会に参加するのが難しい

みなさん、勉強会参加してますか? 勉強会のあとはしっかり懇親してますか? 私は、あんまり社外の勉強会などに顔を出せてないです。 原因はいくつかあるんですけど、主に2つで ・どうやって参加したい勉強会を観測すればいいのかわからない ・人見知りなの…

【Rust】Rust勉強-1 普遍的なプログラミング概念

普遍的なプログラミング概念 - The Rust Programming Languageの勉強メモ 1.1.1. 変数 1.1.2. Result型 1.1.3. println!マクロのプレースホルダ 1.1.4. crate 1.1.5. シャドーイング 1.1.6. タプル 1.1.7. 配列型 1.1.8. 関数 1.1.1. 変数 変数宣言には let…

【雑記】累計50万PVを超えました

実は結構経っちゃったんですが、去る8/5に当ブログのアクセス数が50万を超えていました。 新卒の夏、現場に送り込まれた時期にインプットをまとめる場所として始めたこのブログを、 6年経っても継続できているとは思っていませんでした。 記事の内容こそ雑多…

【雑記】休息、取れていますか?

みなさん、きちんと休息を取れていますか? 4月に異動があった人、研修が終わって配属された新人... そうでなくても連日のこの暑さで疲れ気味の人は多いと思います。 自分自身の疲れには鈍感になりがちなものです。 「まだ頑張れる」、「もう少しで終わるか…

【Kotlin】KotlinのReified type parametersについて

前置き 【Kotlin】Kotlin+JacksonでJSONをparseする - B-Teck! のparseJSONがなぜ型情報を使えるのか 会社でJavaを書いている人にこの話をしたところ驚かれたので。 Genericsとtype erasure JVMにおけるジェネリクスはJava1.4以前のバイナリとの仕様互換のた…

【JavaScript/Vue.js】Vue.jsとVuetifyを使ってTodoリストを作ってみた

ちょっと会社でVueを触る機会があったので、勉強がてらTodoリストを作ってみました。 リポジトリと動作サンプルは下記 GitHub - beatdjam/training_vue-cli-todo サンプルページ やったこと vue-cliインストール $ npm install -g @vue/cli プロジェクト作成…

【Kotlin】data classにJavaから呼び出せるBuilderを用意する

はじめに Kotlinには名前付き引数を利用することができるので、 コンストラクタに渡す引数をわかりやすく記述することができます。 Person( name = "taro", age = 20 ) しかし、JavaとKotlinが混在している場合は、Javaからは名前付き引数の仕組みを利用でき…

【雑記】29歳になりました。

前置き 近況報告 振り返りとか ぷれぜんとこ〜な〜 さて、まぁ掲題の通りなんですが、29歳になりました。 (この記事は予約投稿なので書いているときはまだ28ですが) ついに20代最後の歳ですね。 前置き 元号が令和に切り替わり、GWも折り返しを過ぎちゃいま…

JSONからJSON Schemaを生成してYAMLに変換する

YAMLで書いてるSwaggerの定義に実装済みのAPIを記述したいが、 レスポンスの定義を手で書くのはしんどい…みたいなときに、 実際に返却しているJSONから生成できれば便利では!?と思ってやってみた。 TL;DR 手順 Quicktypeのインストール json2yamlのインス…

【Kotlin】JerseyをKotlinで動かす その2 パラメータの取扱編

前回の記事 beatdjam.hatenablog.com 準備 HTTPリクエストのクエリ クエリをdata classに対応させる Pathに含まれる値 リクエストパスからパターンに対応した値を取り出す リクエストパスから正規表現に対応した値を取り出す Formから送信されたリクエストを…

【Kotlin】JerseyをKotlinで動かす その1 導入編

Jerseyの雛形を作る Kotlin化する pomの記述変更 ファイルのKotlin化 Main.java → Main.kt MyResource.java → MyResource.kt MyResourceTest.java → MyResourceTest.kt サーバーの起動 Grizzly上ではなく通常のJavaEEアプリケーションとして動かす場合 ここ…

【Kotlin】Kotlinで競プロする

Scannerとprintln()で入出力する readLine()とPrintWriterで入出力する その他Kotlinで書いて嬉しいところ 普段使ってる解答用テンプレ PaizaやってたときはPHP+JS、AtCoderでは主にJavaで解いてたんですが、 ここ半年の案件でずっとKotlinを書いていたらJav…

【Kotlin】社内LTでServer Side Kotlinの導入について話しました

speakerdeck.com 資料は主に以前書いたこの記事をベースに作成しました。 beatdjam.hatenablog.com

【Bash】指定のポートを利用しているプロセスを殺す

プロセス探してkillしてを別々にやってたけどよく考えたら一行でできたのでメモ。 StackOverfrowに書いてあった。 bash - How to write a shscript to kill -9 a pid which is found via lsof -i - Ask Ubuntu # :80の部分は任意のポート番号 kill -9 $(lsof…

【Kotlin/Java】Jersey2でファイルアップロードを扱う

Jersey2でファイルアップロードを扱うときの方法を書いている記事があまり見つからなかったのでメモ。 StackOverfrowで見つけた。 java - Upload data method in REST web service - Stack Overflow アップロードされたファイルはbyte配列かInputStreamで扱…