B-Teck!

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

【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で扱…

【Kotlin】Kotlin+JacksonでJSONをparseする

準備 ビルドツールの設定に jackson-module-kotlin を追加する。 バージョンは任意で。 maven <dependencies> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-kotlin</artifactId> <version>2.9.7</version> </dependency> </dependencies> gradle compile group: 'com.fasterxml.jackson.module', name: 'j…

【雑記】今年の目標

1月もほぼ終わりになってしまいましたが、今年の目標をたてました。 明確な数字がないものも多いですが、なるべく達成したいですね。 ブログ 内容・ジャンルにかかわらずブログちゃんとかく 最低月1以上 年40本以上 PV 15000/month 競技プログラミング 緑コ…

【雑記】2018年お疲れ様でした

今年も一年お疲れ様でした。 去年もやっていたので今年も振り返りを書こうと思います。 beatdjam.hatenablog.com 結婚生活 結婚してそろそろ一年半が経過しました。 お互いぶつかったり喧嘩したりしながらも、なんだかんだで仲良く、楽しくやっています。 結…

【雑記】2018年末時点でのスキルセット棚卸し

今年までに業務で学んだ・触った知識をざっくり書き出してみた。 とりあえず並べて書いているので初学者レベルのものもあるものの、 目安として。 5000兆円いただける企業からのお声がけお待ちしています。 言語 JavaScript ES5 jQuery ES6~ (New!) Java/Jav…

【映画】シュガー・ラッシュ・オンラインを見た

この記事は下記キャンペーンに参加し、シュガー・ラッシュ・オンラインの感想を書いています。 内容のネタバレを含みますので、視聴後の閲覧を推奨します。 映画「シュガー・ラッシュ:オンライン」の感想 #シュガラお題 blog.hatena.ne.jp

【Kotlin】Sequenceを使おう

Sequenceとは? Sequenceを使うと何が嬉しいか ループ回数が少なくなる Sequenceを使わない場合 Sequenceを使った場合 不要な計算をスキップできる Sequenceを使わない場合 Sequenceを使った場合 まとめ 参考 Sequenceとは? Kotlinにおけるコレクション遅延…

【Kotlin】Server Side Kotlin やってみた

tl;dr はじめに なぜKotlinを導入したのか? 実際にKotlinを導入してみた Server Side Kotlin導入のPros/Cons Pros Cons まとめ tl;dr Server Side Kotlinは特に特殊なことはないよ Kotlinの言語仕様は便利だよ Null安全の機構を導入することでアプリ側との…

【Kotlin】文字列の日時が指定の期間内に含まれているかを判定する

KotlinのDateにはRange演算子(Ranges - Kotlin Programming Language)が実装されているので、 簡単に大小や範囲を判定することができる。 下記は文字列の日時をSimpleDateFormatでDateに変換して、 0時から3時の間に含まれるかを判定しているサンプル。 impo…

【JavaScript/jQuery】後から生成されたDOMからイベントを発火させる

jQueryの場合 jQueryの場合のサンプル pure JSの場合 JavaScriptの場合のサンプル jQueryの場合 昔こういう事するときはjQueryのlive()を利用していたんだけど、1.9で死んでた。 $("p").live("click", function(){ $(this).after("<p>これもクリックできる</p>"); }…

【Java/Kotlin】URI Template(RFC6570)の仕様に則ってURL文字列に変数をセットする

"http://example.com/name/{name}/age/{age}"のような文字列に対して変数を割り当てたいとき、 javax.ws.rs.core.UriBuilderが利用できる。 URI文字列がqueryも含む場合は、 UriBuilder.fromUri() を利用すると良い。 Javaの場合 import javax.ws.rs.core.Ur…

【本】ジョブ理論を読んだ

ジョブ理論 イノベーションを予測可能にする消費のメカニズム (ビジネスリーダー1万人が選ぶベストビジネス書トップポイント大賞第2位! ハーパーコリンズ・ノンフィクション)作者: クレイトン M クリステンセン,タディホール,カレンディロン,デイビッド S ダ…

【雑記】競技プログラミングを始めたら楽しかったのでおすすめします

ふとしたきっかけで会社で競技プログラミングの本を見せて貰う機会があり、 内容が面白かったので自分でも購入して読んだり、 解いているうちにズブズブとハマって行ってしまいました。 せっかくなので読者の方にもおすすめしてみたいと思います。 競技プロ…

TwitterのUser Streams API廃止について

Twitterは、8/16をもってUser Streams APIの提供を終了します。 移行先として、Acount Activity APIが提示されていますが、 ヘビーユーザーからは不満の声が上がっています。 今回は、なぜこれだけ騒がれているかを、知らない人向けにまとめてみようと思いま…

【Java/Kotlin】BufferedReaderの今風な書き方を調べてみた

Javaで書かれたBufferedReaderの処理をKotlin化する中で、 イマドキのJavaでの扱い方と、Kotlinの場合どう書くかを調べてみました。 いにしえの書き方(Java) いまふうの書き方(Java) Kotlinで書くと…? サンプルはすべてsomeStream という入力を連結する場合…

【Kotlin】KotlinでJava EEのBean Validationを使うときの注意点

Kotlinの場合のBean Validationのアノテーションの書き方 Kotlinでdata classをbean paramとして利用してBean validationを行う際、 下記のように書くと正しくvalidationされない。 パラメータが欠けると500エラーで死ぬ (?=fuga や ?hoge= など) data class…

【Kotlin】Kotlinで複数の例外をキャッチする

Java7以降で対応されている複数例外のマルチキャッチ機能が、 Kotlinでは利用できなかったので調べた。 書き方 Java6以前の書き方 try { ... } catch(IOException e) { ... } catch(ClassNotFoundException e) { ... } Java7以降の書き方 try { ... } catch(…

【雑記】金融系システムの現場から自社サービス系に転職して半年の雑感

スキルセット 前職はSES業態の企業に所属しており、保険・金融等を扱う企業に常駐し、 5年ほど働いていました。 Java/PHPのWebシステム、VBAの業務ツール等の作成を中心に、 フロントからDBまで一通りやれることは何でもやるような立ち位置でした。 とはいえ…

【JavaScript】クリップボードに文字列をコピーする

document.execCommand("copy") が選択した要素の文字列のみしかコピー出来ないので、 一時的に要素を作って、選択してコピーする。 const copyToClipboard = s => { const d = document; // copy用の一時要素を作成し、文字を入れる const t = d.createEleme…

【本】小説 君の名は。を読んだ

小説 君の名は。 (角川文庫)作者: 新海誠出版社/メーカー: KADOKAWA/メディアファクトリー発売日: 2016/06/18メディア: 文庫この商品を含むブログ (53件) を見る 先日のテレビ放映でようやく映画版に触れて、きれいな新海誠を見て心が浄化されたので、 プラ…

【JavaScript】アロー関数

アロー関数のthisは定義した場所のthisで固定される this.val = `global`; let obj1 = { val: 'obj1', print:function(){ console.log(this.val); }, printAllow:() => { console.log(this.val); } } // obj1のthisを参照するので // obj1が出力される obj1.…

【JavaScript】スプレッド演算子

配列の展開 const value = [2, 3, 1, 4, 5]; console.log(Math.max(...value)); シャローコピー // 配列の複製 let a = [1, 2, 3]; let b = [...a]; console.log(b); //[ 1, 2, 3 ] // シャローコピーなので多次元配列やオブジェクト等は影響を受けてしまう …