JAVA関連のことを調べてみた

JAVA関連のことを調べてみた

[Vision API] Javaで画像内のロゴを検出する

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像内に含まれているロゴを検出します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||2|[レスポンスの内容](#22-レスポンスの内容)|
|3||[結果の検証](#3-結果の検証)|
||1|[Googleの場合](#31-googleの場合)|
||2|[楽天の場合](#32-楽天の場合)|
||3|[トヨタの場合](#33-トヨタの場合)|
||4|[Bandai Visualの場合](#

元記事を表示

【Java】並列処理【Thread】

備忘録としての投稿です
記事にしておきながらなんですが、人に見せることは目的をしておりません。
ですが、見かけた方が内容についていろいろとツッコミを入れてくださると嬉しいです。

【自分について】
となるITベンチャー企業に入社し、日々勉強中です。
主にJavaを勉強しています。

## スレッドとは?
プログラムの実行の流れ
基本的にプログラムは一行ずつ、上から下に実行される
この、上から下へのプログラムの実行の流れを「スレッド」という

## シングルスレッド / マルチスレッド
・シングルスレッド:上記のスレッドが1つのみ。
そのため、一つのプラグラムが順番に実行される
・マルチスレッド:複数のスレッドを同時に実行する
処理A と 処理B を同時進行できる

## 並行処理 / 並列処理
・並行処理:2つの処理の実行を切り替えながら、「並行」して処理を進めること
ある時点では、個別の処理しかしていないが、全体像としてみると、同時に進行「しているように」見える
→シングルコアでも可能

・並列処理:実際に2つの処理を同時に行うこと

イメージとしては、
料理をしてい

元記事を表示

「Struts」 ⇒「Spring Framework」に移行されると聞いて

## この記事を書こうと思った経緯
私が今いるプロジェクトでは使用されているフレームワークとして
Struts(正確にはStrutsベースのオリジナルフレームワーク)が使われているのですが、
後々にシステムをマイグレーションすることになりました。
そこで選ばれたフレームワークがSpring Frameworkでしたので、
いい機会だと思い、それぞれの特徴を調べることにしてみました。
## 各フレームワークの特徴

■Struts

・MVCモデルが採用されている
・2001年に初版リリースされており、歴史が長い
・短期間での開発や初心者にも取り組みやすい
・Javaのコードの代わりに利用できる専用のタグライブラリを設けており、
 JSPの記述を統一し可読性を上げることができる
・過去に脆弱性を指摘されている。(Struts2ではパッチで対策済み)
・Struts2とは互換性はない。

■Spring Framework

・2003年に初版がリリースされている
・AOP(Aspect Orientati

元記事を表示

[Vision API] Javaで画像内のオブジェクトを検出する

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像内に含まれているオブジェクトを検出します。
画像にどのようなものが写っているのかをAIで検出し、
画像内の位置とオブジェクト名前を返します。

本記事の[3.結果の検証](#3-結果の検証)でどのようなものが検出されるか試していますが、
大きめに映り込んでいるものしか検出されないようです。
ラベルを検出するの方がより細かい情報を取得できそうです。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||

元記事を表示

アクセス制御

publicは全てのクラスからのアクセスを許可します。
privateは同一クラスからのアクセスのみを許可します。

また、アクセス修飾子をクラス宣言に記載しない場合は、同一パッケージに属するクラスからのアクセスを許可(pakage private)します。

元記事を表示

APIとは

## :ledger:前置き
よく聞くようになったAPIですが、人にきちんと説明することできますか…?
私は恥ずかしながらぼんやりとしか理解していませんでした。
今回はそんなAPIについて初心者に分かりやすくまとめていきたいと思います。

## :ledger:APIってなに…?

一言で表すと
`他社が提供しているサービス内の機能や情報を扱える仕組み`です。

Application Programming Interfaceの略称で
ソフトウェアやプログラム、Webサービスの間をつなぐインターフェースとも言われます。

使用するプロセスは
利用者が`リクエスト`を送信し、提供者が`レスポンス`を返すことで構成されています。

## WEB API
HTTP・HTTPS通信によってやりとりするAPIのことです。
GoogleやYahoo、Amazon、楽天、Facebook…など
ユーザーは各社のAPIを利用する事で、各サービスのデータを検索したりサイトで利用したり出来るようになります。

## REST API
「RESTの

元記事を表示

Processingでスレッドthread処理

# Processingでthread

https://processing.org/reference/thread_.html

標準でスレッド機能がある。
しかし、変数の受け渡しはできない。
重い計算を並列に計算して、マルチコアCPUの性能を引き出したいときに困る。
スレッドにid番号を振って、処理を振り分けたい。

# プログラム
10個のスレッドを作成するサンプル。作成時にid番号を割り振る。
delayを追加することで、若干、処理のタイミングがズレて、printの実行タイミングがずれる。よって、実行のたびに、出力の順番が変わる。
実行後、1秒経過した時点で、一度に10個のprintが実行されるので、並列処理されていることが確認できる。

“`java:processing
myThread myTh [] = new myThread[10];

void setup() {
for(int i=0; i<10; i++){ myTh[i] = new myThread(i); } for(int i=0; i<10; i++){ m

元記事を表示

[Vision API] Javaで画像内の人の顔を検出する

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像内に含まれている人の顔を検出します。

画像内の人の顔の位置のみだけではなく、
・顔が向いている向き
・顔のパーツ位置([目、鼻など](#landmarktype))
・表情([怒っているか、悲しんでいるかなど](#faceannotation))
なども情報として取得できます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||2|[レスポンスの内容](#22-レスポンスの内容)|
|3||[結

元記事を表示

ElasticSearchでompressor detection can only be called on some xcontent bytes or compressed xcontent bytesエラーが出る

# はじめに

ES6からES8に変わったことで躓いたことがあったので、まとめます

# 問題

以下のようにKotlinでインデックスに対してドキュメントを追加するようなコードを書きました

“`kt
fun putToIndex(index: String, id: String, json: String) {
client.index { it.index(index).id(id).document(json) }
}
“`

そしてこのjsonには文字列のjsonが渡されています。
すると以下のエラーが発生しました

“`
Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes
“`

おそらく文字列のjsonをjsonだと判断できていないようです。(es6ではjsonであることを第二引数で渡していたけどなくなったみたい)

# 解決方法

ドキュメントをよくみると渡すのはオブジェクト

元記事を表示

【Java】パスワード変更を遷移なしでやろうとした話【Ajax】

備忘録としての投稿です
記事にしておきながらなんですが、人に見せることは目的をしておりません。
ですが、見かけた方が内容についていろいろとツッコミを入れてくださると嬉しいです。

【自分について】
となるITベンチャー企業に入社し、日々勉強中です。
主にJavaを勉強しています。

## 事の発端
現在、Javaの動的WEBプロジェクトで簡単な従業員管理サイトのようなシステムを作っている。
管理者のパスワード変更機能を付けたいと思ったのですが、変更のためだけに別でページを作るのもなーなんて思い、モーダルウィンドウでパスワード変更画面を出し、ページ遷移することなく変更処理ができたら良いよねと思う。

## 画面遷移なく Servlet の処理を実行することは可能か?
パスワード変更機能の追加で一番実現させたかったのは、画面遷移なくパスワード変更の処理を実行すること

このシステムでは、基本的には JSP で画面表示、Servlet で内部処理を行っている。
(基本そうかもしれませんが、、)
JSP → Servlet → JSP のやり取りは Servlet の URLマッピング で s

元記事を表示

ラッパーを作れば労働時間が減るかもしれない【adapterパターン】

# adapterパターンとは
安定してるプログラムの中身(Adapteeの中身)を変えずに仕様を変更するためのパターン
ようはラッパーを作るってことです

中身を変えないから
仕様を変更しても既存クラス(Adaptee)の品質が保証されますね
つまりテストが減ります貴方の労働時間は減ります

# クラス図(委譲を使用した実装)
![スクリーンショット 2024-03-06 130636.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3714713/34f3c01e-ac8e-c1e5-b059-b0f8cddc1e5c.jpeg)

# 詳しい解説
こちらの記事が非常に詳しく解説しているので委譲(丸投げ)します
> 引用: よしたろうブログ

# おわりに
ラッパーを作るという考え方を頭の片隅に置くための
きっかけを目指してみました

ふと思ったんですけど
機械学習ライブ

元記事を表示

Hello Worldからの復習 ~カプセル化編~

Spotifyで落語を聞くのが趣味だが、いろんな噺家さんがランダムに聞けて良い。
去年、おととしあたりは、春風亭一之輔にはまり、笑点に出演が決まったとき、笑点の見方も知っている噺家さんが出るようになるとまた違った感じで見れる気がする。
まぁ最近テレビを破棄したのでテレビ自体観ていないのだが、、
最近聞いて話し方面白いなぁと感じているのは「桃月庵白酒」で師匠は五街道雲助。
師匠の亭号を継ぐ人もいれば改める人もいるんだな。
歌舞伎だと代々受け継ぎ格式高い印象がある。(落語が格式低いとは言っていませんw)
落語の亭号は割と自由なんだなと感じた。
歌舞伎は屋号、名跡、格で枠が決まり生まれた家系でカチッとしていて、落語は家系というより噺家になりたいという人が弟子入りしてっていう感じで割とパブリックな感じ。
歌舞伎も養成所から入ったりと家系外もたまにあるが、どちらかというとprotected、privateなところがあるなと思いましたというお話。

ペコリ

##### カプセル化って?
+ メリットは?
+ Sample

◆カプセル化って?

**アクセス修飾子**でクラス・メン

元記事を表示

[Vision API] Javaで画像内のいろいろなものを検出する

Googleが提供しているVision APIをJavaで使ってみました。

***Vision APIとは***
Googleが提供しているAPIで
機械学習モデルを使い、対象となる画像から様々な情報を取得することができます。
画像に含まれている文字、物(猫や人物が履いているジーパンとか)、人物の表情などの
情報を取得することができます。

Google Cloud Platform(GCP)が提供する機械学習サービスの一種です。 このサービスを利用することで、Googleの持つ画像に関する機械学習モデルを使い、対象となる画像から様々な情報を取得することができます。

料金は、1000回/月(API実行回数)までなら無料です。
詳細は、Googleのページ[⧉Cloud Vision の料金](https://cloud.google.com/vision/pricing?hl=ja)を参照ください。

|No|||目次|
|—|—|—|—|
|1|||[Cloud Vision APIを使用するための準備](#1-cloud-vision-apiを使用するための準備

元記事を表示

[Google Sheets API] JavaでスプレットシートのメニューとAPIを関連づけてみた

スプレットシートのメニューとGoogle Sheets API使い方のQiita記事を
関連づけた一覧を作成しました。
関連づけてみた所感としては、ほとんどの操作がAPIで対応されているようです。

記事では、Google Sheets API v4(Java)を使用していますが、
ほぼ全てのAPIを網羅しているはず(執筆の時点では)

なお、コメント関連の操作はSheets APIには用意されていません。
Google Drive APIでコメントの追加・取得・変更が可能ですが
追加位置の指定はできないようです。(こちらは別途記事にします)

|No||目次|
|—|—|—|
|1||[メニュー](#1-メニュー)|
||1|[ファイル](#11-ファイル)|
||2|[編集](#12-編集)|
||3|[表示](#13-表示)|
||4|[挿入](#14-挿入)|
||5|[表示形式](#15-表示形式)|
||6|[データ](#16-データ)|
|2||[シートメニュー](#2-シートメニュー)|
|3||[ツールバー](#3-ツールバー)|
|4||[行・列メニュー

元記事を表示

継承

継承は親クラスの持つメソッドやフィールド等を子クラスに引き継がせることができます。
継承を用いると子クラスが親クラスの機能を全て利用できる為、機能の本質が似通っている類似クラスを容易に作成できます。

ただしクラスの多重継承は禁止されています。
また、安易な継承はクラスの参照元を増やす事や不要な機能の追加にも繋がり、コードが読みにくくなります。
その為、委譲等の類似機能での代用が可能か常に考える必要があります。

元記事を表示

[Google Sheets API] 埋め込みオブジェクト(グラフ、画像、スライサーなど)のサイズ、配置位置を変更したり、埋め込みオブジェクトを削除する

Google Sheets API v4(Java)を使用して、
スプレットシートに埋め込まれたオブジェクトのサイズ、配置位置を変更する方法と
スプレットシートに埋め込まれたオブジェクトを削除する方法
についてご紹介します。

**埋め込みオブジェクトとは**
グラフ、画像、スライサーなど、スプレットシート上に配置され、
マウスなどで動かすことができるオブジェクトのことを指します。
埋め込みオブジェクトは、グラフや画像などの種類に関わらず一意のIDを持ちます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://qiita.com/doran/items/3d43f776188b2281044c)
を参照ください。
“`
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
“`
:::

:::note info
その他のGoogle Shee

元記事を表示

「容器」と「中身」を同一視するということについて【コンポジットパターン】

“`
最終更新日: 20230305
“`
# はじめに
ライトな感じでコンポジットパターンに触れてみようってテーマの記事です

コンポジットパターンってようは、ツリー型データ構造作りたいから同一視して再帰処理するってことだと思うんですけど
まず頭に入れるべきことは「同一視」かなって個人的には思ってます

ツリー型データ構造が必要ならライブラリ使えば良いで終わりな気がするけど
同一視って設計概念は頭の片隅に置いとけば役に立つ日が来る予感!

# 何が実現できる?
「容器」と「中身」を同一視するということは
「容器」を「中身」として見ることができるので

下記のような「容器」に「容器」を格納する入れ子構造が実現可能
“`
* ディレクトリ
* ディレクトリA
* ファイルA
* ディレクトリB
* ファイルB
* ファイルC
“`

# クラス図
> 引用: Java言語で学ぶデザインパターン入門 結城 浩

![スクリーンショット 2024-03-05 101940.jpg](https://qiita-image-st

元記事を表示

Hello Wordからの復習 ~static編~

##### お品書き
+ staticって?
+ static変数、staticメソッド
+ 使いどころは?
+

◆staticって?

staticを使わないパターン。
カウンター変数を設定し入力された人数は?

まずはひとつみてみよう。

“`java:java
class Student4{
String name;
int counter = 0;

Student4(String n){
name = n;
counter++;
System.out.println(name + “さんをインスタンス化しました”);
}
void display(){
System.out.println(counter + “人です”);
}
}

“`

“`java:java
class StuSample4{
public static void main(String[] args){
Student4 stu1 = new Student4(“大輔”);
stu1.display()

元記事を表示

Spring Cloud Gatewayを使用してAPIゲートウェイを構築してみた

## Spring Cloud Gatewayとは?

Spring Cloud Gatewayは、Spring BootフレームワークとSpring Cloudプロジェクトの一部であるAPIゲートウェイで、シンプルかつ効果的な方法でAPIへのルーティングを提供し、セキュリティ、監視/メトリクス、回復力などの横断的な関心事をAPIに提供することを目的としている。

#### 主な機能

– ルーティング: さまざまな条件に基づいてリクエストを適切なサービスにルーティングする
– フィルター: リクエストとレスポンスを処理するフィルターを適用できる
– 認証と認可: OAuth2、JWTなどの認証と認可メカニズムをサポートする
– 監視: Prometheus、Micrometerなどのツールを使用してAPIの使用状況を監視できる
– サーキットブレーカー: 障害が発生したサービスへのリクエストを自動的に遮断し、システム全体の安定性を保つ

## APIゲートウェイとは?

APIゲートウェイは、複数のAPIをまとめて管理するためのプラットフォームで、APIの開発、公開、保護、監視を容易

元記事を表示

Java開発者向け: GitHub ActionsでGraldeとSpotBugsを使ったCI静的解析の実装方法

### はじめに
– GitHub Actionsの詳細な説明は行いません
– Gradleを中心した説明になります。Mavenの説明は行いません。
– 私のイメージも交えて話します。誤っていたら指摘していただけると記事も私のイメージも修正できるのでありがたいです


# GitHubActionsのイメージ

![スクリーンショット 2024-03-05 12.35.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641519/02a83b99-199c-0916-2777-c2c98c3ef22e.png)

### 項目の説明

**ワークフロー(Workflow)**
ディレクトリにあるYAMLファイルで定義され、一連のジョブを含みます。
GitHubActionsにおける一番大きな枠組みです

https://docs.github.com/ja/actions/using-workflows/about-workflows

**イベント(

元記事を表示

OTHERカテゴリの最新記事