- 1. 初めてのSpringBootでのアプリケーション作成(実装編)
- 2. 初めてのSpringBootでのアプリケーション作成(環境構築編)
- 3. Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較
- 4. 【JDK】インストールと環境変数の設定(Windows)
- 5. Gradle実行時に発生するjava.lang.IllegalArgumentException: Unsupported class file major version 61を解消する方法
- 6. KMSでSecp256k1の署名と検証(後編)
- 7. Python,Ruby,PHP,Java,JavaScript,Perlのfor文の比較
- 8. C言語とJavaの環境構築
- 9. Spring IntegrationのTCP機能のデシリアライズ時にタイムアウトを指定する
- 10. 逆引きQuarkus
- 11. Java・Kotlin得意マンがRustの文字列の納得に時間を要した話
- 12. ABC268A~Dの解答[Java]
- 13. (初心者向け)AndroidStudioを使ってギャラリーアプリを作る
- 14. 【Java Silver SE11】検証環境をdockerで構築する
- 15. Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
- 16. Exchange Onlineの基本認証廃止で普通に困ってる人のためのエントリ
- 17. Keycloakによる認証基盤の立ち上げ(2) Quarkus版
- 18. DynamoDB StreamsのデータをKinesis Client Library (KCL) で処理する方法
- 19. Javaで同時実行スレッド数を制御するコンポーネントを作ってみた
- 20. Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
初めてのSpringBootでのアプリケーション作成(実装編)
# 概要
本記事では、プログラミング初学者が初めてWebアプリを作成してみて詰まったことや困ったことなどをまとめました。今回は実装編です。
環境構築編もありますので、是非そちらも併せて読んでいただければと思います。基本的には以下の記事で作成しているポモドーロタイマーと同じものを作成しています。
設計やコードなどはほぼほぼ一緒ですので詳細はそちらをご参照ください。https://qiita.com/Shiho_anyplus/items/59a93b1fcb09b6ef8e81
## 作成したアプリ画面
参考元の記事と少し違いますがcssの変更によるものだけで機能は同じです。
![スクリーンショット (520).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629104/020fed79-26af-7958-ffef-6b7040c5701a.png)### 環境
– Windows10
– Eclipse 2021
– Java 11
– PostgreSQL14# 作業して
初めてのSpringBootでのアプリケーション作成(環境構築編)
# 概要
本記事では、プログラミング初学者が初めてWebアプリを作成してみて詰まったことや困ったことなどをまとめました。今回は環境構築編です。基本的には以下の記事で作成しているポモドーロタイマーと同じものを作成しています。
設計やコードなどはほぼほぼ一緒ですので詳細はそちらをご参照ください。https://qiita.com/Shiho_anyplus/items/59a93b1fcb09b6ef8e81
## 作成したアプリ画面
参考元の記事と少し違いますがcssの変更によるものだけで機能は同じです。
![スクリーンショット (520).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629104/020fed79-26af-7958-ffef-6b7040c5701a.png)### 環境
– Windows10
– Eclipse 2021
– Java 11
– PostgreSQL14# 作業してみて詰まったこと・困ったこと
Eclipseは使える!記事も読んだ!けどど
Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較
Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較
# Python
https://qiita.com/taashi/items/07bf75201a074e208ae5
# Ruby
https://qiita.com/shiGira/items/44586bdc48c06e00d99f
# PHP
https://qiita.com/aic0o/items/91ca1ddc1fc6e025286f
# Java
https://qiita.com/takahirocook/items/ece64146015f702d0a83
# JavaScript
https://qiita.com/furusin_oriver/items/f030d1eaa9e7b54233c3
# Perl
https://perlzemi.com/
【JDK】インストールと環境変数の設定(Windows)
## 環境
+ Microsoft Windows 10.0.22000.856
+ Windows Terminal 1.14.2282.0## はじめに
この記事ではJDKのインストールと環境変数の設定の手順を説明する。【用語解説】Java SE, JVM, JRE, JDK
### Java SE (Java Platform, Standard Edition)
**Java APIの集合体**。ここでいうAPIはJavaの機能やデータなどを利用するための呼び出し方を定義したもの。### JVM (Java Virtual Machine)
**Java仮想マシン**。Javaで作成されたアプリケーションをOSで動かすために必要となるアプリケーション。クラスファイル内のバイトコードをCPUが解釈できるマシンコードに変換するとともに、CPUに送って処理を実行する。### JRE (Java Runtime Environment)
**Java実行環境**。Javaのプログラムを実行するためのJVMや対応する
Gradle実行時に発生するjava.lang.IllegalArgumentException: Unsupported class file major version 61を解消する方法
# 対処方法
使用しているJava SDKのバージョンを変更する。
## macOS
“`sh
brew install openjdk@11
echo ‘export PATH=”/opt/homebrew/opt/openjdk@11/bin:$PATH”‘ >> ~/.zshrc
rehash
“`# エラーが発生する理由
使用しているJavaのバージョンが新しい、もしくは古い。
# エラー全文
“`
FAILURE: Build failed with an exception.* Where:
Settings file ‘/Users/reoring/repos/mal/mal-account-keycloak/settings.gradle’* What went wrong:
Could not compile settings file ‘/Users/reoring/repos/mal/mal-account-keycloak/settings.gradle’.
> startup failed:
General error dur
KMSでSecp256k1の署名と検証(後編)
# はじめに(Introduction)
BitcoinやEthereumでは署名にECDSA(楕円曲線DSA)を用いています。
そこで使用される、楕円曲線はSecp256k1と呼ばれるパラメータです。
AWS Key Management Service (AWS KMS) では、Secp256k1のECDSAを用いることが出来るのでこれをJavaを使用して署名、検証を行います。サンプルで使用するライブラリとしては、Ethereumで利用されているWeb3jを使用します。
筆者は、AWSもEthereumも素人なので、そこら辺の間違いについてはご指摘いただけるとありがたいです。
この記事は後編です。
[前編はこちら](https://qiita.com/tnakagawa/items/7c4ef36080aed97516d1)# 実装(Programming)
JavaでKMSを利用して署名と検証を行います。
前編で取得した、IAMユーザの「**アクセスキーID**」と「**シークレットアクセスキー**」と
KSMで作成した鍵の「**キーID**」を使用します。#
Python,Ruby,PHP,Java,JavaScript,Perlのfor文の比較
Python,Ruby,PHP,Java,JavaScript,Perlのfor文の比較
# Python
https://qiita.com/Morio/items/e8aed85346c0055beea7
# Ruby
https://qiita.com/Morio/items/3ac5cac9ace7e9ddbdb4
# PHP
https://qiita.com/miriwo/items/d1b5d5ece4f16c7b5985
# Java
https://qiita.com/Co_Pilot/items/7c59410cd90be4cf06d8
# JavaScript
https://qiita.com/w-tdon/items/f3ecb29dc9350f2f2e8d
# Perl
https://perlzemi.com/blog/20080327120662
C言語とJavaの環境構築
*Ubuntu22.04*環境下における、*C*と*Java*の環境構築について備忘録。
# C言語
コンパイラの*clang*と*gcc*のインストールだけなので、
“`
sudo apt install clang gcc
“`で良いです。
# Java
*Eclipse*は、好みの問題で今の所、使いません。
“`
sudo apt install default-jdk
“`で良いです。*JDK*についてバージョンを選択したい場合は、
[Java Downloads | Oracle](https://www.oracle.com/java/technologies/downloads/)
から選択して落としてください。当方、まだ初学者なので、そんなJDKを選ぶような状態ではないです。の場合は、上述のコマンドでよいでしょう。
以上です。
Spring IntegrationのTCP機能のデシリアライズ時にタイムアウトを指定する
Spring IntegrationのTCP機能には、ソケットレベルのタイムアウト時間(SO_TIMEOUT)を指定することはできるのですが、これは接続相手から指定した時間データが送られてこないとタイムアウト扱いになります。
特に問題ないように思うかもしれませんが、例えばタイムアウト時間に「10秒」を指定した場合、接続完了から10秒間データのやり取りがないとタイムアウトになってしまいます。これは都度接続方式であれば問題にならない可能性はありますが、常時接続方式だと・・・問題になります。:::note warn
本エントリーの記載は、NIO(Non-Blocking/IO)を使う前提になります。NIOじゃないと「やりたいこと」が実現できないので悪しからず。
:::# やりたいこと
データを受信して1つのメッセージにデシリアライズが完了するまでのタイムアウト時間を指定できるようにしたい。
# タイムアウト検知機能付きのデシリアライザ
タイムアウト検知機能付きのデシリアライザを作ってみました。
“`java
package com.example;import org.
逆引きQuarkus
[backend-example-quarkus](https://github.com/unhurried/backend-example-quarkus)を実装する過程での知見を整理した。QuarkusでReactiveなRestful APIを実装する際の勘所をまとめている。
#### 基礎知識を学ぶ
RESTful APIを実装するのであれば、下記が全体を理解するのに役に立つ。
* [WRITING JSON REST SERVICES](https://quarkus.io/guides/rest-json)
* [WRITING REST SERVICES WITH RESTEASY REACTIVE](https://quarkus.io/guides/resteasy-reactive)#### 開発環境を構築する
[Quarkus CLI](https://quarkus.io/guides/cli-tooling)というスタンドアロンなコマンドが提供されているが、[Mavenプラグイン](https://quarkus.io/guides/maven-t
Java・Kotlin得意マンがRustの文字列の納得に時間を要した話
Javaを20年やってきた自分が、Javaの先入観からかRustで“`String::from(“hoge”);“`という書き方をすることに納得するまで時間を要したので整理。
## Java
文字列リテラル=“`String“`
“`String“`は固定長の文字列を扱うクラス。
+で連結できるが、インスタンスが保持している文字列に付け加えているわけではなく、新しいインスタンスが生成される。
Kotlinの場合は+演算子をオーバーロードしているが、起きていることはJavaと同じはず。場合にもよるが、“`String“`を連結したい場合は“`StringBuilder“`を使うのが良いとされている。
## Rust
文字列リテラル=“`&’static str“`
メモリ上の不変の部分に存在している。文字列の連結など、可変長の文字列を扱う場合は“`String“`。
“`String“`の参照はそのまま“`&str“`として扱うこともできる。
逆に、“`&str“`を“`&String“`扱いはできないので、“`String::f
ABC268A~Dの解答[Java]
## はじめに
今回も4完出来たのでDまで載せようと思います。では見ていきましょう。
## A – Five Integers
問題文は[こちら](https://atcoder.jp/contests/abc268/tasks/abc268_a)[公式解説](https://atcoder.jp/contests/abc268/editorial/4779)のように全部比べていっても良いですが、今回はHashSetを使ってみました。
Setで要素の重複はしないので、単純にsize()を出力すれば良いです。
“`A.java
class Main{static Library System = new Library(java.lang.System.in,java.lang.System.out);
public static void main(String[] args)throws IOException{
//重複を弾くためのHashSet
HashSetlist = new HashSet ();
(初心者向け)AndroidStudioを使ってギャラリーアプリを作る
### 環境
– Windows10 21H2
– Android Studio Chipmunk | 2021.2.1 Patch 1### 使用するライブラリ
– [glide](https://github.com/bumptech/glide) 4.13.2今回は Java を使用して簡易的なギャラリーアプリを作っていきます。
完成するとこのようになります。
\*記事中でこの部分が間違っているやこの方法の方が良いという部分がありましたら教えていただけると幸いです。
それでは始めましょう!
## 下準備
まずは、マニフェストファイルに`【Java Silver SE11】検証環境をdockerで構築する ## 概要
Java Silver SE11の検証用環境をdockerで構築する。
[今回はgithubにソースを置いときました。](https://github.com/hagemanto-saitama/openjdk11)
こちらをベースに説明していきます。
※dockerとdocker-composeの環境が整っていることが前提です## Java Silverおすすめの勉強方法
なぜdockerで環境を構築するのか、に関係するのがこれ。
Java Silverの試験対策で、個人的におすすめなのが、
コード検証を
**テキストエディタで編集+コマンドラインでコンパイル&実行**
で行うこと。
理由は以下の通り。
– コマンドを自然と覚えられる。
→コマンドも試験に出てくるため、わざわざ頑張って暗記するよりも自然に覚える方が楽
– ディレクトリ構成が自然と頭に入ってくる。
→ファイルを跨いだ継承やモジュール関係の箇所は、
実際にディレクトリ、ファイルを作成してコンパイル&実行を行うと頭に入ってきやすい。
– コンパイルエラー、例外、実行時エラー等の違いが経験として蓄積できる
→
Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
# Python
https://qiita.com/Morio/items/10d33f6dbb0845ae5038
# Ruby
https://qiita.com/Hashimoto-Noriaki/items/f406bcfb00e79e3937d0
# PHP
https://qiita.com/miriwo/items/2c2aa77d5de66c074ec5
# Java
https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e
# JavaScript
https://qiita.com/kaz7991/items/7f98cc17c4df9ab6a009
# Perl
https://perlzemi.com/
Exchange Onlineの基本認証廃止で普通に困ってる人のためのエントリ
# はじめに
基本認証を使っている方は2022年10月1日からExchange Onlineに接続できなくなります。
ある日会社に行ったら、Xデー迄あと1か月ないので至急対処してくれとお達しが来ていました。
現実を受け止めきれなかったのですが、公式声明文が出ていたので、どうやら本当のようです。https://docs.microsoft.com/ja-jp/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online
> 2021 年 9 月に、2022 年 10 月 1 日 より、Exchange Online の Outlook、EWS、RPS、POP、IMAP、EAS プロトコルの基本認証の無効化が開始されることを発表しました。 SMTP 認証が使用されていない場合も無効になります。
2022/09/12 追記:影響が大きいという判断なのか、若干の延命ができるよというアナウンスがでていました。
> 2022 年 9 月 1 日に、この
Keycloakによる認証基盤の立ち上げ(2) Quarkus版
# この記事の概要
– 以前 [Wildflyベースで立ち上げたKeycloak環境] が壊れたのを機に、Quarkusベースで再立ち上げ。
– Keycloakについては、前項記事を参照。
[Wildflyベースで立ち上げたKeycloak環境]:
# やってみる
[Get started with Keycloak on bare metal] によると、OpenJDK 11以降が必要になったとのこと。
[Get started with Keycloak on bare metal]:
32bit Windows環境では選択肢少ないが、Zulu 17 JDKをscoopから入れる。
“`
> scoop install zulu17-jdk
“`Keycloak本体は、こんな感じでbucket自作。
“`keycloak.jso
DynamoDB StreamsのデータをKinesis Client Library (KCL) で処理する方法
# 概要
DynamoDB StreamsのレコードをKCLを使用して処理する方法です。[AWSの公式ドキュメント](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Streams.KCLAdapter.Walkthrough.CompleteProgram.html)に実装例が示されています。
この実装例は、
1. DynamoDBにテーブルを生成する
1. DynamoDBのレコードを作成(更新、削除)する
1. レコードの更新を受け、DynamoDB Streamsにレコードが流れる
1. DynamoDB Streamsに流れたレコードを処理するというものですが、実際には一連の処理を1つのアプリケーションで行うことはないかと思い、DynamoDB Streamsに流れたレコードを処理する部分(4.)にフォーカスを当てる形で作り替えました。
# 使用した技術
– Java 17
– [localstack](https://github.com/localstack/loca
Javaで同時実行スレッド数を制御するコンポーネントを作ってみた
訳あって同時実行数を制御する処理が必要そうなので・・・Javaで実現するとしたら「こんな感じかな〜」というのを作ってみました。完全に個人メモです。
もっと良いやり方や、OSSのこれ使えば同じことできるよ〜みたいなのあれば是非コメントを!!
# やりたいこと
* 同時に処理を行うスレッド数(=最大同時実行スレッド数)を指定できること
* 「最大同時実行スレッド数」に達している際は空きがでるまでキューインングできること(+キュー数も指定できること)
* キューイング状態で待つ最大時間(=無限に待たないようにタイムアウト)を指定できること
* 「最大同時実行スレッド数」+「キュー数」を超える状態を検知したら拒否時の処理を実装できること# 作ってみたコンポーネント
“`java
package com.example;import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.Semaphore;
Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
# Python
https://qiita.com/imuimu/items/7f27d156dd0f6507803b
# Ruby
https://qiita.com/k-penguin-sato/items/1a6c8096effccb19565a
# PHP
https://qiita.com/wakahara3/items/bcadef53367097765c82
# Java
https://qiita.com/ts7i/items/d7f6c1cd5a14e55943d4
# JavaScript
https://qiita.com/andota05/items/fc1e340642be42ca47c0
# Perl
https://perlzemi.com/blog/201