なみひらブログ

学んだことを日々記録する。~ since 2012/06/24 ~

プログラミング

【発信文書】2019年 活動報告

背景 2019年も終わるので、今年のキーワードを雑記します〆(´Д`) キーワード(順不同) IV&V 比率は下がったけどもろもろやった。今年で終わり。 FMEA FMEAの故障をどう発想するかどうレビューするかに取り組む 以下が成果例 本会議1日目 | ソフトウェア品…

Kaggle NLPコンペ参加の「はじめの一歩」の「はじめの一歩」 ※コンペ実施中

※この記事は 自然言語処理 #2 Advent Calendar 2019 - Qiita の25日目の記事です。 概要 最近、自然言語処理/機械学習をやりだし、とりあえず勢いだけでKaggleコンペに参加し始めたのでその作業メモです。 執筆時点(2019/12/25)で現在進行系のコンペなので…

Laravel Telescopeの導入メモと初見の所感

※この記事は Laravel #2 Advent Calendar 2019 - Qiita の24日目の記事です。 概要 これまでLaravelを関連ツールを使わずに素だけ(?)で使っていたので、デバック用にLaravel Telescopeを入れてみました。 その作業メモと見てみた所感を書いてみます。 ※真…

Spring Dataで直SQLクエリかつ設定されていないパラメータを無視する方法

背景 Spring Dataで直SQLクエリを使って検索するときに、設定していない検索パラメータ(配列)を無視したいときの対応メモです。 対応 以下のような例の場合、categoriesが文字列配列の値が入っているとき、「:#{#conditions.categories}) IS NULL」と書く…

2018年 活動報告

背景 2018年も終わるので、今年のキーワードを雑記します〆(´Д`) キーワード(順不同) IV&V 比率は下がったけどもろもろやった。 FMEA FMEAの故障をどう発想するか議論するかに取り組む 以下が1例 本会議1日目 | ソフトウェア品質シンポジウム 2018 論文 …

vue-headで動的にhead metaを変えたときのメモ

背景 vueを使っててタグ内のタグを動的に追加する必要があったので、vue-headで対応したときのメモです。 ※説明に公式のドキュメントをかぶる点あり。 GitHub - ktquez/vue-head: Manager the meta information of the head tag, a simple and easy way 作業…

MaterializeでのselectとdatepickerをVue.jsで扱うときのメモ

背景 Materializeの動きのせいで、select/option, datepicker/timepickerをVue.jsで使おうとしたら、うまくいかなかったのでメモっときます(;´Д`) materializecss.com materializecss.com 事象1:selectに選択された値が、バインディングした変数に格納さ…

Materializeのdatepickerの初期化でエラーがでたときの対応メモ

背景 Materializeのdatepicker, timepickerを使おうとしたら、初期化でエラーができたのでその対応のメモです(;´Д`) ※結論的には、Materializeのdatepickerどうこうではなく、ライブラリの読み方の問題。 materializecss.com エラー TypeError: $('.datepi…

「JJUG CCC 2017 Spring」に行ってきました

Javaの日本ユーザ会のカンファレンスに行ってきたのでメモっときます。 ※CCCは「Cross Community Conference」の略らしい。 www.java-users.jp 開催概要 日時 2017/05/20(土)9:30-18:30 場所 ベルサール新宿グランド コンファレンスセンター 主催 日本Java…

golang+EchoでREST APIを作った話

背景 新しいWebアプリ(今回はREST API層だけ)を作るにあたって、これまでJava+SpringFrameworkばかりだったので、他の言語で作ってみることにしました。 (ちょうど仕事上もJava+SpringFrameworkから離れているので) 言語候補として、近くで使っている人…

Androidアプリでのセキュリティ情報の定義方法

背景 Androidアプリ開発にてセキュリティ情報(他サービスのAPIキーなど)を定義しますが、それらの情報はGithubなどのソースコード管理にコミットはしないほうがいいので、その定義方法を書いておきます。 定義方法 セキュリティ情報の定義 security.proper…

Fabric環境構築の作業メモ

背景 Androidアプリ開発にてアプリでTwitter連携がしたくなったところ、それを実現する際、最近は「Fabric」というフレームワークがよいらしい(なみひら調べ) なのでFabricを導入してみたときの作業メモです。 Fabric - App Development Platform for team…

「LINE DEVELOPER DAY 2016」に行ってきました

「LINE DEVELOPER DAY 2016」に行ってきました。 LINEサービスを利用した開発者向けセッション、LINE開発の取り組み紹介などなど。 linedevday.linecorp.com 開催概要 日時 2016/09/29(木)10:40-18:30 場所 渋谷ヒカリエ 9F ヒカリエホール 主催 LINE株式…

Java9で追加される機能を少し見てみた話

背景 2017/03/23リリース予定(今のところ)のJava9の機能一覧をたまたま見かけたので、ちょっと確認してメモっときます。 ※Java9はリリースが一回遅れていて、これ以上遅れないように幾つか削られるかも(;´Д`) 現状の機能一覧(予定) http://openjdk.jav…

EL式内でEL式が使えない件

背景 JSPでEL式を書くことはよくありますが、そのEL式内でEL式を書こうとしたらエラーになったので、その対処法のメモです。 起こったこと 以下のようなコードを書いたらエラーになった(;´Д`) * 以下※はコメント (略) <select id="userId" name="userId"> <c:forEach var="user" items="${Users}" > ※ModelにセットしてあるUserリス</c:foreach></select>…

Spring Securityを適用するときの作業メモ

背景 Springプロジェクトが提供する認証の機構「Spring Security」を適用したときのメモです。 今回はログイン・ログアウト・ロールに合わせた画面表示切り替えあたり処理を書いてみます。 環境 前提として以下を利用して書いています。 maven JSP メモ 必要…

Spring MVC+Jacksonで日付文字列をLocalDateTimeにマッピングする

背景 spring-webmvcを使ったWebAPIで、Java8で追加されたLocalDateTimeに対応したときのメモです。 ゴール 以下のようなJSONをLocalDateTimeのパラメータにマッピングします。 (日時のフォーマットは一例です) リクエスト { "name" : "test", "createdAt" …

社内の技術書読書会で次に読む本が決まった話

背景 社内の有志でやっている技術書読書会で今読んでいる本がそろそろ終わりそうです。 なので、次に読む本をメンバーで話し合って決まったので、そのあたりの話です。 今読んでいる本(読み終わりそうな本) レガシーコード改善ガイド作者: マイケル・C・フ…

パフォーマンスを意識したJavaコーディング

この記事はJava Advent Calendar 2015 - Qiitaの9日目の記事です。8日目の記事:JavaでHttpのGETとかPOSTをさくっと実装したい - Qiita 10日目の記事:JavaFXのUIをJUnit形式でテストする - Katsumi Kokuzawa's Blog背景以下の本を社内の読書会で読んで、「…

AngularJSの$locationを使う時に気をつけること

背景AngularJSでの$locationを使うときに自分の理解が間違っていていろいろハマったのでメモっときます。前提 今回はログイン画面(/login)を表示して、ログインできたらホーム画面(/home)を表示するという例。 ログイン処理自体は、サーバサイドのAPIにAjax…

SpringFrameworkで多言語を扱うときの実装メモ

背景 SpringFrameworkを使って多言語対応する際の実装をメモっときます。 ブラウザやクライアントの言語によって返すJSONの内容を変えたいときなどに利用します。 今回はWebAPI用のメモです。Viewでの多言語対応はまた別途記載します。 例: (言語指定:英…

Java8言語仕様でよく使う書き方のまとめ【Stream、Lambda関連】

背景最近良く使っているJava8の構文についてまとめておきます。 普段似たような処理を書きたいときに「あれっ?どんな感じで書くんだっけ?(;´Д`)」となるので備忘録的なメモです。小言以前はif/for文ぐらいを駆使してゴリゴリ書いていたので言語仕様に振…

SpringFrameworkでのJSON Validationの実装/動作確認メモ

背景SpringFrameworkでAPIを実装するときにリクエスト内容の妥当性確認(Validation)をよく行うので、その実装パターン/挙動をメモっときます。 今回は、ユーザ情報をPOSTする際に妥当性を検証するAPIを題材にしています。事前準備必要なライブラリを入れる…

AngularJSのひと通り動作させるためにやったこと

AngularJSのひと通り動作させるためにやったことをメモっときます。前提この作業メモには以下の前提があります。 レイアウトにはTilesを使っています。 Springframework, mavenを使っています。 AngularJSを使うためにはこの辺の技術は関係ありませんが、自…

SpringMVCアプリケーションにTilesを適用するときにやったことメモ

背景最近いろんなところで画面構築にTilesというフレームワークが使われているので、ちょっと動作確認してみると仕組みの勉強のメモです。 Apache Tiles - Home作業メモTilesライブラリへの依存追加pom.xmlにTilesライブラリへの依存を追記します*1。 <dependency> <groupId>org.a</groupid></dependency>…

Arrays.asListが返すListの仕様について

背景Java8でCollectionインターフェースに追加されたremoveIf()を試そうと思ったら、別件でエラーが発生したのでメモっときます。 修飾子と型 メソッドと説明 default boolean removeIf(Predicate filter) 指定された述語を満たすこのコレクションの要素をす…

JavaFX関連クラスについてJUnitテストを実施するための準備

背景JavaFXのクラスを使った関数を実装した際に、その関数も単体テスト(JUnit)を行う必要があります。そのテスト実行の際に事前準備が必要だったので、そのことについて記載します。前提今回、以下のようなクラスを考えます。JavaFXパッケージのクラスを使…

Java7以降のnullチェックの仕方

背景メソッドを実装する際、そのメソッドの実行の事前条件を満たしているか確認するため「防御的プログラミング」をする必要があります。その「防御的プログラミング」の例として、「引数のnullチェック」があります。その「引数のnullチェック」の記法につ…

ラムダ式がどのように実現されているかを確認してみました。

背景Java8で新仕様として「ラムダ式」が追加されました。 そのラムダ式がどのように実現されているか、確認してみました。簡単な確認Java7以前比較のために、まずJava7以前のコードを以下のように書いてみます。 Java7まではメソッドの引数として、無名クラ…

Java8で、Objectが持つメソッドについてはインターフェースでdefault実装をできないようにしている理由

背景Java8にて、インターフェースにdefaultメソッド(メソッド定義と実装)を定義できるようになりました。しかし、その実装においてObjectクラスが持っているメソッド(toString()とかequals()とか)は、インターフェース内でdefault実装として定義できない…