- 1. eclipse × AmaterasUML 選択された操作は現在使用できません
- 2. iPLAss SDKを使ってEclipse環境で開発できるようにする
- 3. Androidで学生証(Felica)のIC残高を読む
- 4. NEMのノード(スーパーノード可)を建ててみよう Ubuntu 18.04
- 5. 【Spring】入力フォームを実装する(入力画面⇒確認画面⇒完了画面)
- 6. ExoPlayerで早送りと巻き戻しの秒数を設定する
- 7. Spring-boot+Herokuで作ったLINE Botを公開します(電車遅延通知bot、買い物リスト、Qiita記事のいいね/ストック数取得)
- 8. JavaのXORModeと同じことをC#でやろうとした時の格闘記
- 9. Swift Network.framework Study 20191207「Server UDP」
- 10. JavaからMySQLにInsertした際、返り値にAuto_Increment_ID(自動採番値)を取得する
- 11. Spring Boot Gradle Plugin の bootRun タスク実行時のプロファイルを設定する
- 12. AWS CDKでStepFunctionsを構築しました。
- 13. code smellリファクタリング第一弾[long method編]
- 14. Spring’s CompositeMeterRegistryConfiguration
- 15. 軽量フレームワークMicronautでサーバーレスJavaを始めよう!
- 16. 可変オブジェクト/不変オブジェクト
- 17. Swift Network.framework Study 20191207「Server TCP」その3 receiveメソッド使用 改善
- 18. Azure の Team Explorer for Eclipse で Git Repository が表示できないときの対応
- 19. [Java] Objects.equals()について、とString(文字列) 比較( == と equals )のおさらい
- 20. DDD自分用覚え書き
eclipse × AmaterasUML 選択された操作は現在使用できません
以下の環境で java ソースコードから UML を自動生成しようとすると、「選択された操作は現在使用できません」のダイアログが表示され、自動生成できなかった。
### 環境
* Windows 10
* [eclipse (Pleiades All in One 2019-09)](https://mergedoc.osdn.jp/)
* [AmaterasUML] (http://amateras.osdn.jp/cgi-bin/fswiki/wiki.cgi?page=AmaterasUML) ※ 上記 eclipse にプリインストールされているもの### 現象
* AmaterasUMLの機能で新規作成した cld ファイルにソースコードをドラッグ&ドロップしても、クラス図が描画されない。(ソースコードが別タブで開くだけ)
* cld ファイルの任意の場所を右クリック > [Java] > [インポート] を実行すると、「選択された操作は現在使用できません」のダイアログが表示される。### 原因&解決策
eclipse にプリインストールされている versi
iPLAss SDKを使ってEclipse環境で開発できるようにする
# 本手順について
– [iPLAssをInstall and Run(MySQL8.0.17+Windows10)で構築する](https://qiita.com/systie/items/0a0d0aa0d2f3a2c05008)
の続きになります。– 上記記事ではGroovyでの開発が前提でしたが、本手順を行うことでEclipse+Javaでの開発も行えるようになります。
– iPLAss SDKにあるzipファイルで作成する手順になります。
そのため、Githubアカウントがなくても構築できます。– 公式サイトにも導入手順がありますが、ここでは画像を交えて以下の環境での構築手順を載せていきます。
## 構築環境等について
– Windows10
– iPLAss 3.0.16
– JavaおよびTomcatは以下を利用して準備済み(解凍済み)
– eclipse 2019-09、JavaのFull Edition を導入([Pleiades All in One](http://mergedoc.osdn.jp/))
– 配置先:E:\eclipse\p
Androidで学生証(Felica)のIC残高を読む
# はじめに
この記事は、[SLP KBIT Advent Calendar 2019](https://adventar.org/calendars/4214) の8日目の記事です。
最近、AndroidのNFC機能を使って、ICカードのデータを読み取ることができることを知りました。
そこで「自分の学生証も読み取れるのでは?」と思ったので試してみました。# 読み取るデータについて
今回は学生証に格納されている大学生協のIC残高を読み取ってみたいと思います。
自分が持っている学生証は、Felicaに対応したICカードになっているので、NFCのFelicaに対応した端末で読み取ることができます。Felicaの規格に関しては、 [FeliCaカード ユーザーズマニュアル 抜粋版](https://www.sony.co.jp/Products/felica/business/tech-support/st_usmnl.html) にまとめられています。
学生証のデータ構造に関しては、 [大学生協Felicaの仕様](https://gist.github.com/oboeni
NEMのノード(スーパーノード可)を建ててみよう Ubuntu 18.04
##はじめに
NEMでハーベストするためにはNEMのフルノードに接続すること必要ですが、
ノードによって定員が定められており、なかなか空いてないことがあります。
そこで今回は自分でNEMのノードを建ててみることにします。
また、この手順で定期的に報酬が受けられるNEMのスーパーノードを建てることもできます。##手順
###ドメインの準備
####ドメインの取得
今回はipv4アドレスでも構いません。必要な場合のみドメインを取得してください。###サーバーの準備
####サーバーの用意
Linuxサーバーを立ち上げます。
今回はドイツにある[CONTABO](https://contabo.com/?show=vps)の「VPS L SSD」、OSは「Ubuntu 18.04」を選びました。
メールでroot/passwordが送られてくるのでそれでログインしてください。
8コア、RAM 30GB、SSD 800GB、帯域600Mbit/s、帯域利用無制限、DDoS保護で月15ユーロはVPSでは格安の部類だと思います。
![e41e240c2001c4fc927af94f
【Spring】入力フォームを実装する(入力画面⇒確認画面⇒完了画面)
# はじめに
## やりたいこと
– ユーザがフォームに入力した値をもとに何かしたい。
– 入力画面⇒確認画面⇒完了画面、と遷移させたい。## この記事が参考になる人
– お問い合わせフォームを実装する人など。
– Java, Spring, Thymeleafの知識が最低限ある人。## 使った技術要素
– Java
– Spring
– フレームワーク
– Thymeleaf
– テンプレートエンジン
– lombok
– getter, setterを自動生成してくれる# 実装
好みもあるかと思いますが、以下の手順で実装していくといいと思います。
最低限のスニペットのみ掲載します。## 入力画面
### HTML
“` HTML:input.html
問い合わせカテゴリー
Spring-boot+Herokuで作ったLINE Botを公開します(電車遅延通知bot、買い物リスト、Qiita記事のいいね/ストック数取得)
# はじめに
いろいろ準備が整ったので、過去記事で作っていたLINE botを公開します!
これらで作っていたBotです。– [Spring-bootとLINEMessagingAPIで電車遅延通知botを作る](https://qiita.com/kaad/items/2fef68e795b7a2a84119)
– [Spring-boot+Heroku+PostgreSQL+Flywayでアプリ作成してみた](https://qiita.com/kaad/items/ac41df221f3d5b7eab6b)
– [リファクタリングしました(Lombokの利用、Spring JPAの利用、ラムダ式で例外ラッピング)](https://qiita.com/kaad/items/28100b6049a5eb8eee5b)
– [Spring-boot+Heroku+RedisでLINE botの状態管理をできるようにした](https://qiita.com/kaad/items/5bbe0b8a6f7fc17f429f)
– [QiitaAPIを使って記事のいいね数ストック数を
JavaのXORModeと同じことをC#でやろうとした時の格闘記
#はじめに
既存資産であるJavaアプレットを .Net Framework上のC#で実装しなおすこととした。元々のプログラムはこてこての描画アプリであり、移植のための調査を色々実施したところ、一番ネックになりそうなのがXORModeというものであった。今回これをC#で実現するために調べたことをメモっておく。#XORModeとは
XORModeについて、まずはYahoo知恵袋の「[javaのGraphicsクラスにあるsetXORModeとは何ですか](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10152799455)」を参照してほしい。恐らく何のことかよくわからないと思う。自分もよくわからなかった。こういう時は、目的から理解するに限る。
例えば、マウスを使った描画プログラムで線を引くとしよう。ユーザの操作としては、線を開始したい位置でマウスクリックし、線を終了する位置でマウスアップするはずだ。その場合JavaだろうがC#だろうが、大体以下のような実装になると思う。1 マウスクリックのイベントハンド
Swift Network.framework Study 20191207「Server UDP」
# Study
Network.framework
Study:Server側## 環境
Client:Java、NetBeans
Server:Swift、Xcode# Client Source Java
“`java
package example.java.network;import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;public class ExampleClientUDP {
public static void main(String[] args) {
String sendData = “Send Data Example”;
try {
DatagramSocket datagramSocket = new DatagramSocket();
DatagramPacket datagramPacke = new Data
JavaからMySQLにInsertした際、返り値にAuto_Increment_ID(自動採番値)を取得する
# はじめに
JDBCを利用して、JavaのコードからDBにレコードをインサートする際、Auto_Increment(オートインクリメント)される値を取得する方法を示す。`SELECT LAST_INSERT_ID()`によって、最後に採番された値を取得することができるが、返り値として取得したい場合に利用できる。
# 使用環境
– MySQL 8.0
– Java 8# 前提事項
まず、以下のようなデータベース/テーブルを作成する。
– データベース名 : testdb
– テーブル名 : testここで、testテーブルに`Auto_Incrementの設定を施した主キーであるidカラム`と`Char型のnameカラム`を用意する。
テーブルを作成するSQLは以下のとおりである。
“`
CREATE TABLE test(
id INT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
“`テーブルのカラム情報を確認すると(SHOW COLUMNS
Spring Boot Gradle Plugin の bootRun タスク実行時のプロファイルを設定する
## 方法
build.gradle の bootRun タスク設定の jvmArgs にて、システムプロパティ値 spring.profiles.active にプロファイルを指定すれば良い。
“`build.gradle
// bootRun タスクの設定を追加する
bootRun {
// foobar プロファイルを指定する
jvmArgs = [‘-Dspring.profiles.active=foobar’]
}
“`参考資料:
– [Spring Boot Gradle Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/gradle-plugin/reference/html/)
– [BootRun \(Spring Boot Gradle Plugin 2\.2\.2\.RELEASE API\)](https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/gradle-plugin/api
AWS CDKでStepFunctionsを構築しました。
この記事は [ハンズラボ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/handslab) 7日目の記事です。
お疲れさまです。@naokiurです。
今年も担当させて頂きます。最近は業務でAWSリソースを構築する際に、
CloudFormationやServerlessで、
コード化することを心がけています。
(用法用量と守り、目的を忘れないようにしつつ…)おかげでYAML形式ファイルを書くことはだんだん慣れてきました。
そんな中、
[AWS CDK](https://aws.amazon.com/jp/cdk/)というものの存在を知り、
しかも[AWS CDKで、Javaと .NET 用が一般利用が可能に!!](https://aws.amazon.com/jp/blogs/news/aws-cloud-development-kit-cdk-java-and-net-are-now-generally-available/)個人的にJavaも好きな自分、
せっかくなので、AWS CDKをJ
code smellリファクタリング第一弾[long method編]
今年の四月に新卒入社した会社で 先輩とリファクタリングしていることがあるので、そこでリファクタリングに関して学んだことを連載という形で記事にしていきます。
今回は、long methodのリファクタリングを解説をしていきます。
間違っていることがあれば、指摘いただけると泣いて喜びますmm
## 使う言語
– scala(たまにjava)
## long methodとは
名前の通り、メソッドに含まれるコードの量が多すぎるということです。## なぜcode smellなのか?
そもそもなぜメソッド内のコードの量が多すぎることが問題なのでしょうか?2つの点が考えられます。
#### 1.単純に読みにくいので処理を追いにくい
例えば、同じメソッドを100行ほどのコードが書かれていると、三行目くらいで読むのを諦めてしまいます。
#### 2. ユニットテスト(UT)がしにくいので、バグの温床になる
同じ関数内で複数の処理をしていると、UTがしにくいので、網羅されていない、ふとした瞬間にバグの温床になります。
以下の例では、createUrlメソッドの中で
Spring’s CompositeMeterRegistryConfiguration
[spring\-boot/spring\-boot\-project/spring\-boot\-actuator\-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/CompositeMeterRegistryConfiguration\.java](https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/CompositeMeterRegistryConfiguration.java) 呼んだのでリンク集を作る
“`java
/**
* Configuration for a {@link CompositeMeterRegistry}.
*
*
軽量フレームワークMicronautでサーバーレスJavaを始めよう!
サーバーレスがとても盛り上がっていますね。
Javaはいわゆるコールドスタートの問題でサーバーレスには向いていないとの声もありましたが、今回紹介するMicronautを始めとしたマイクロフレームワークや、GraalVMのネイティブイメージ作成機能(SubstrateVM)の登場により状況が大きく変わってきています。この辺りの流れは、@_kenshさんや@jyukutyoさんの「JJUG CCC 2019 Fall」での素晴らしい講演資料がありますので、そちらを見てワクワクしましょう。
– [Serverless時代のJavaについて](https://www.slideshare.net/AmazonWebServicesJapan/serverlessjava-199195000)
– [多言語対応の仮想マシンGraalVMが照らす未来](https://www.slideshare.net/jyukutyo/guide-to-graalvm-jjug-ccc-2019-fall)さあ、ではMicronautで実際にサーバーレスJavaを作ってみましょう!
## なんでM
可変オブジェクト/不変オブジェクト
初学者ですが、個人的な勉強のためまとめました
##可変オブジェクト/不変オブジェクト
・オブジェクトに一度セットしたフィールドの値を、後から変更できるオブジェクトを**可変(mutable)オブジェクト**、変更できないオブジェクトを**不変オブジェクト(immutable)**という
・**java.lang.Stringクラス**や**java.io.Fileクラス**のインスタンスは不変オブジェクトの代表例であり、
値を後から変更することはできない
新しい値を扱いたい場合は新しいインスタンスを作るしかないが、**「変数の値(オブジェクトに対する参照)を変更」**するのであって、**「オブジェクトの状態を変更」**するわけではないで、そこの違いをしっかり理解すべし・不変なオブジェクトを定義するには以下のようにする
①オブジェクトの内部状態を変更可能なメソッドを提供しない(**setterメソッド**など)
②**クラスをfinalで宣言**し、どのメソッドもオーバーライドされないことを保証する(サブクラスからの状態の変更を防ぐ)
③**全てのフィールドを”priv
Swift Network.framework Study 20191207「Server TCP」その3 receiveメソッド使用 改善
# Study
Network.framework
Study:Server側## 環境
Client:Java、NetBeans
Server:Swift、Xcode# Client Source Java
複数回送信する様に修正。
“`java
package example.java.network;import java.io.PrintWriter;
import java.net.Socket;public class ExampleClientSocket {
public static void main(String[] args) {
try(Socket socket = new Socket(“localhost”, 7777);
PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);) {
for(int i = 0; i < 5; i++) {
Azure の Team Explorer for Eclipse で Git Repository が表示できないときの対応
#現象
Azure の Team Explorer for Eclipse で Git Repository が表示できない
#対応
Language Pack をアンインストールする
[Help] – [About Eclipse IDE] – [Installation Details] からたどると Team Explorer Language Pack を削除できるので、削除して再起動
図の右のように英語表記になって Git Repository が表示される。
![Clipboard07b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110265/5b855d04-efe1-97f3-c84f-10fc64f2f4d1.png)
[Java] Objects.equals()について、とString(文字列) 比較( == と equals )のおさらい
Javaエンジニアのアクマちゃん[@akumachanit](https://twitter.com/akumachanit)デモ!今日は文字列比較の話をするデモ!
#Java1.7がやってきた
**いつの話をしてるのか**ってデモ?
アクマちゃんは職場で**JDK1.6でアプリケーションを開発**していたんデモ(令和の時代に信じられるデモ?だけどバージョンアップってなかなか大変デモからね!)が、最近バージョンアップをして1.7の機能を使えるようになったデモ!#Objects
1.7から追加されたクラスに[Objects](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/util/Objects.html)があるデモ。1.7がリリースされたのは2011年らしいから、これを読んでる人の中にはその頃まだエンジニアになってなかった人もいっぱいいると思うデモ。いまさらこんな話をしてごめんデモ。(かくいうワガハイもそのころまだエンジニアではなかったデモ)。で、その`Objects`のメソッド`Objec
DDD自分用覚え書き
# はじめに
– DDD本を読んで噛み砕いた理解をメモで残します(随時更新)。
– 検証可能性から、なるべく意見は引用からにしています。
– 実装例は、DDDの概念とは別にJavaの言語仕様から決めている面もあるかと思います。
– コード例は、WunderlistのようなTodoアプリを想定しています。# 途中雑感
– domain modelとdomain serviceの説明を読んでいると、ビジネスルールを熟知することが問題の切り分けにつながる事だと強く感じる。
– 銀行という施設が持つべき概念としての中枢処理(domain model, repository, factory)
– 口座残高以上に出金できないだとか
– 投資商品の金利がいくらだとか
– 銀行員の業務(domain service)
– 振替処理をするだとか、組戻処理をするだとか
– 銀行員の生産性を上げるアプリケーションユースケース(application service)
– 円や日本語でやり取りするとか、帳票をXM