謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

SpringBoot2 でたお

今気づいた。 https://start.spring.io/ 見てさわればわかるけど、SpringBoot2 の名前がある。 対応しているバージョンは Spring 5 らしい。 公式を表面だけなぞっても Reactive Web に対応したらしい。 非同期万歳! というのは多分自分みたいなオタクだけ……

DI 入門者向けの話(DI が生まれる背景)

[日記][Tips]DI 入門者向けの話(DI が生まれる背景) Dependency Injection 日本語訳で、外部依存注入の話をする。 前提知識 オブジェクト指向には多態性なるものがある。 これは、Java でいうところのインターフェースに依存する作りをすることで、その実…

MyBatis の定義がクソ面倒なので、生成を狙う

A5:SQL Mk-2 - フリーの汎用SQL開発ツール/ER図ツール .. 松原正和 使って作ったテーブルのマッピングを書くのがだるくなったので、自動生成を狙った。 まずはこんな感じの ER を書いて、CSV でエクスポートする。 一応設定は UTF-8 で吐く。 そうすると、a5…

Java9 入れて遊んでみた

まずはここからダウンロード。 Java SE - Downloads | Oracle Technology Network | Oracle Early Access Releases を選ぶと、JDK9 がダウンロードできる。 インストーラを終えたら .bash_profile を設定する。 export JAVA_HOME=`/usr/libexec/java_home -v…

Bootstrap 以外の css フレームワーク

有名どころ。 個人的にきになったやつのみ http://foundation.zurb.com/foundation.zurb.com サイトや email に使用できるフレームワーク。 CSS フレームワークというより、HTML の組み方なんかも固定となっている。 やたらと部品が豊富で、一種のラブラリ集…

現時点で Reactを Gulp 上コンパイルして見る

教科書はこれ qiita.com package.json をしれっと。 { "name": "react-base", "version": "0.1.0", "description": "React base application template", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "autho…

Gradle4 でマルチプロジェクト

教科書はこれ。 第57章 マルチプロジェクトのビルド まずは Jersey の設定を作って、分離するものを指定する。 Jerseyの設定2(web.xmlとかApplicationクラスとか) - edgegram サーブレット設定をソースで web.xml ファイルは昔は役に立ったアーキテクチャだ…

Gradle4 + Jersey2 + Kotlin でRESTサービスを作ってみる

SPA でアプリ作ろう思って、サーバに当初 Spring 考えてたけど、こっちの方が API サーバが楽そうだった。 で、Kotlin は個人的な好み 教科書はこれ JAX-RS(Jersey)+GradleでWebアプリを作る - Olivinecafe - blog Gradle 汎用ビルドツール。 Java 専用では…

Redmine3 に Backlogs を入れるメモ

先日入れた Redmine 3.3 にBacklogs を突っ込んでみる。 教科書はこれ。 interprism.hatenablog.com 確かに Gem 競合を除いてしまえば入るっちゃ入る。 [root@localhost redmine]# RAILS_ENV=production bundle exec rake redmine:backlogs:install 3.3.4.st…

CentOS7 に Redmine 3 を試してみるテスト

とりま VirtualBox に CentOS7 を普通にインストールして、ホストオンリーアダプタを有効化。 # nmcli connection modify enp0s3 connection.autoconnect yes これで普通に ssh 可能となるので、ここからはインストール開始。 あとは下記の手順で Redmine イ…

SPA アプリそろそろ作って見たいんじゃい(3)

とりあえず SpringBootSecurity を設定してみた回 まずは build.gradle に依存を追加する。 dependencirs{ compile('org.springframework.boot:spring-boot-starter-security') // あとはおすきに そしてログインに使用する DB からデータを取得するためのイ…

SPA アプリそろそろ作って見たいんじゃい(2)

次に DB 接続と Migration してみる。 SpringBoot では公式に Flyway 書いてあるので、そっちを使う。 build.gradle に compile("org.flywaydb:flyway-core") 追加。 application.properties に下記を記載 spring.datasource.url=jdbc:h2:./db/example;MODE=…

SPA アプリそろそろ作って見たいんじゃい(1)

話としてはこれだけ。 仕様としては、ログインと TODO だけで、特にセキュリティも考えない。 SPAの構成は、バックエンドに SpringBootWeb + Thymeleaf + SpringDataJPA + SQLite3 構成。 フロントに riot + riot-control でもしようかなと考えてる。 まずは…

「面倒なことは Python にやらせよう」の実習課題(3章以降)

課題図書はこれ 退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング作者: Al Sweigart,相川愛三出版社/メーカー: オライリージャパン発売日: 2017/06/03メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見…

プログラム脳を鍛える数学パズル on python3

追記: とりま gist に置いてみた (2017/06/27 プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問作者: 増井敏克出版社/メーカー: 翔泳社発売日: 2015/10/16メディア: Kindle版この商品を含むブログ (7件) を見る お題はこれで、…

超久々に Python 弄ってた

AI 関連が実質 Python 一択で、数学系ライブラリもその表示も Python だとかなり揃ってたので、久々にやってみようとしてどハマりした記録。 何をしようとしたかというと、下記を Python で実装すればいいかなーとかとか漠然と考えてどハマりした。 プログラ…

Java8 の Stream が物足りない人たちへ

www.vavr.io 言ってみれば、Scala 並の Collection を Java で提供するライブラリ。 何がいいって、Tuple とか Either 型もあるから、クソッタレな null や throw とおさらばできる。 その昔 javaslang (java.lang があるなら俗語があってもいいよね)と名…

JUnit をもう少し管理者にみやすくしてみた

今日紹介するのはこれ。 Scala でザクッと作ってみた。 github.com 制作時間は調べ物 6h 、実装 4h か… まだまだ精進が足りない。 こいつは先日書いた、JavaDoc を XML で吐き出すメモ - 謎言語使いの徒然 と、JUnit の結果をマージして出力するツールだ。 …

引数パースライブラリの SCOPT(3.6.0) 使ってみた

紹介するのはこれ github.com 依存はこれだけ libraryDependencies ++= Seq( "com.github.scopt" %% "scopt" % "3.6.0" ) で、引数を格納するクラスをこんな風に用意して import java.io.File case class Config(javaDocXml: File, junitResultDir: File) パ…

sbt を jar にしてみた

つっても何の事は無い。 github.com これ突っ込んだだけ。 project/plugins.sbt に下記を追加して addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.4") build.sbt でざっくり指定するだけ。 name := "Example" version := "1.0-SNAPSHOT" scalaVersio…

JavaDoc を XML で吐き出すメモ

やりたい事が何かと言うと、外部プログラムにおいて、Java クラスのリスト取得と、そのドキュメントを引き抜きたいと考えた。 しかしながら、単純に javadoc のコマンドだけ実行すると、HTML ファイルが出てくる。 これは JavaDoc コマンドの仕様であり、基…

くたばれカーゴ・カルト・プログラミング

何? Wikipedia によると。 実際の目的には役に立たないコードやプログラム構造を儀式的に含めておくプログラミングのスタイルである。カーゴ・カルト・プログラミングは主に、プログラマが解決しようとしているバグか解決策のいずれかかまたは両方を理解し…

1 クラス 1 機能、1 メソッド 1 処理の徹底

どういう事? 名前の通り、クラス設計において、1つの機能は1クラスとして用意します。 また、1機能の実現もまた手続きがありますので、それら手続きも基本的にクラス、メソッドとします。 さらに、手続きの中でもループして書き換えるとか、なんらかの値…

オブジェクトの状態は作らない

ここで言う状態とは、クラス変数と振る舞いの状態を意味します。 例えば、クラス内の特定のフラグが true となったらメソッドの挙動が変わるなどです。 状態とは? Java で例えれば、Closable インターフェース実装クラスなんかがそれに当たります。 リソー…

設計はトップダウンとボトムアップ

設計のトップダウン コードが設計だとしても、全ての設計が不要になるわけではない。 もちろん、Excel 方眼紙に書いた誰も読まないコード書いた方が早い設計書ではない。 まずは機能設計までと名前空間(パッケージやディレクトリ構成)だ。 何の事はない、…

車輪の再発明は避ける

プログラマなら何度も聞いた筈。 でも、実際に車輪の再発明って結構やってるのでは? 車輪の再発明とは? 何のことはない、同じようなものを何回も書く事をいう。 例えば、AJAX API を作るという場合なら、XML/JSON でシリアライズ/デシリアライズの環境を整…

勉強し続ける

前のエントリ でも書いたが、勉強はスキルを上げる唯一の手段だ。 加えて言えば、勉強する気もなく古い技術ですべて解決しようとする人、とはコードを改善したいとも思わない人とは、僕は仲良くできないだろう(きっと一緒に仕事をしたら喧嘩になるか、そいつ…

プログラムを読みやすくするための個人的Tips

個人的に綺麗なコードを書くために心がけているもの。 数が多いので、効果があると個人的に思っているものだけ集めてる。 なぜ読みやすく書くのか 読みやすいことに興味がない人のコードで、本当に汚ければ遠慮なくけなすし、そのコードを保守したいとも触り…

Playframework2.5 で Slack3 弄ってみる

まずはアプリケーション仕様 今回は特に何も考えず、Evolution で突っ込んだ文字列を画面に表示するだけ。 ジンプルなことは良いことだ。 教科書はこれ PlaySlick - 2.5.x Playframework プロジェクト作成 いつものこと activator new play-scala を選択する…

Playframework2.5.x でプロジェクト分離してみた

サブプロジェクト自体は、Playframework2.3 から存在していて、当時はあまり使い道も思い浮かばなかったが、今では大分使いやすくなってたのでメモ。 完全独立した sbt プロジェクトを取り込む このケースでは、完全に独立した sbt モジュールを取り込みます…