- 1. DJI Mavic 2 Pro を自作Androidアプリで自律飛行させる(1)~Android Studioの環境構築~
- 2. プログラミング歴0ヶ月の人がJava Silver SE11に一発合格するシンプルな方法
- 3. JUnit テストの記述方法
- 4. [個人用]いくつかの用語整理
- 5. ABC261A~Dの解答[Java]
- 6. 22新卒が1か月勉強してJava SE Bronzeを受けてみた
- 7. JavaでSlack botをリリースするまで その3
- 8. Java Silver番外編(キャストのコンパイルエラーと実行時例外)
- 9. Java Silver番外編(Integerと==演算子)
- 10. 【初心者】ApacheSpark基礎編-共有変数
- 11. [memo] null emptyの違いについて
- 12. Javaでブロック崩しゲームを作る
- 13. APIリリースの手順(2)
- 14. 【初心者】ApacheSpark基礎編-SparkSQL
- 15. MacでのJava環境構築方法[HomeBrew][VSCode]
- 16. VSCodeでHello Worldする[Java][Mac]
- 17. HomebrewでJavaをインストールする際に発生したエラーと解決策
- 18. eclipse2022にjava EEがない
- 19. JavaのStreamAPIについて
- 20. Java SE11 Goldに合格した話
DJI Mavic 2 Pro を自作Androidアプリで自律飛行させる(1)~Android Studioの環境構築~
# はじめに
ドローンをAndroidアプリを使って制御する機会があり、アウトプットの目的も含めて投稿させていただきます。
大学の研究室にあるDJIのMavic 2 Proが使えたので、このドローンを自由自在にアプリ上で操作できるようにすることが目的です。
まだまだ勉強中なので、これを通じていろいろなことを身につけていきたいです。どなたかのお役に立てば幸いです。
# ドローン
使用するドローンはMavic 2 Proです。
[DJI Mavic 2のサイト](https://www.dji.com/jp/mavic-2)# 環境
– Android Studio Chipmunk | 2021.2.1 Patch 1
– macOS 12.1※作成したアプリはAndroidのGoogle Pixel 5にインストールし、ドローンのコントローラとして使用します。
# 環境構築
### AndroidStudioのインストール
ここからインストールしました。
インストールの際には[
プログラミング歴0ヶ月の人がJava Silver SE11に一発合格するシンプルな方法
## はじめに
配列?メソッド?なに?ってレベルから
Oracle Certified Java Programmer, Shilver SE11に一発合格する方法。
![スクリーンショット 2022-07-14 19.02.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1586473/d5d955ca-241f-bb7c-9bbd-008923cd23c6.png):::note
この記事の対象者
未経験エンジニアや、
プログラミングまったくやったことない人までカバーする内容
:::## 目次
[結論](#結論5秒でわかる)
[筆者のレベル](#筆者のレベル)
[IDEについて](#ideについて)
[やってはいけない学習法](#やってはいけない学習法)
[紫本はやるべきかどうか](#紫本はやるべきかどうか)
[トータル何時間かかったか](#トータル何時間かかったか)
[STEP 1 スッキリわかるJava入門とProgateをやる](#step-1スッキリわかるjava
JUnit テストの記述方法
# はじめに
JUnit その3です。今回から実際にJUnitの内容に入っていきたいと思います。
まずは、JUnit5でのテストコードの記述方法についてです。
不備等あるかもしれませんがご了承ください。# JUnitシリーズ 項目表
| NO | タイトル |
| —- | ——————- |
| その1 | [JUnit 単体テストの概要](https://qiita.com/ryo0527/items/70550e0a556975a593f5) |
| その2 | [JUnit 環境の準備](https://qiita.com/ryo0527/items/135c2104a9af0eb795e9) |
| その3 | [JUnit テストの記述方法](https://qiita.com/ryo0527/items/7e85b3444fa9c975eecb) |JUnit5を動かす環境の準備は、その2でおこなっています。
単体テストの概要については、その1に記載しております。
気になる方は、是非ご覧ください。
[個人用]いくつかの用語整理
—
– **Iterable**
反復可能なオブジェクト。配列はiterableの代表的な例。
—
– **List**
配列の限界のために作られたデータ型。配列はサイズを決めなければならないが、サイズが予想できない場合が多いため、Listはサイズの指定なしで使えるよう作られた。Listはインタフェース(親クラス)、ArrayListはListの代表的な継承しクラスだ。
—
– **Mustacheの繰り返し文**
“`
{{#article}} {{!articleを繰り返す}}{{id}} {{!articleのfield}}
{{title}} {{!articleのfield}}
{{{content}}} {{!articleのfield}}
{{/article}}
“`
—
– **HTMLのaタッグ**
Hyperlinkをかけるタッグ
—
– **HTTP
ABC261A~Dの解答[Java]
## はじめに
SimpleScannerによろしくない部分があったので書き換えました。もしコピペして使ってた人がいたら注意してください(そもそもそんな人がいるのか疑問ですが)。今回もDまで解けたので(コンテスト中はCまで)、そこまで解説できたらなと思います。
それでは見ていきましょう。## A – Intersection
問題文は[こちら](https://atcoder.jp/contests/abc261/tasks/abc261_a)仮にL1
0であることがわかるかと思います(赤の範囲と青の範囲のうちより原点から遠い左端から、より原点に近い右端の範囲が二色で塗られている)。ということで、このとき出力するべき数値はmin(R
22新卒が1か月勉強してJava SE Bronzeを受けてみた
## はじめに
今回、入社後の課題としてJava SE Bronzeを受験しました。
なんとかギリギリで合格したので記録と反省として記事を残します。
参考になるかはわかりませんが、暇つぶしに読んでいただけると幸いです。## Java SE Bronze試験について
### 試験概要
– 試験名: Java SE Bronze
– 試験番号:1Z0-818-JPN
– 試験時間:65分
– 問題数:60問
– 合格ライン:60%
– 試験方法:CBTによる選択式
– 試験料:16,500円(税込)Java資格の入門レベルです。
試験料が高めなので、落とすと再受験となり割と痛いです。
また、弊社では不合格の場合、試験料が経費精算できないため新卒からすると大赤字になります。## わたしのスペック
– 22新卒でIT企業に入社
– 大学時代の専攻は情報系(笑)
– 入社して2年ぶりにコードを書いた
– Javaへの理解ほぼ皆無
– 集中力も皆無## 学習期間と時間
– 6月28日から学習開始、7月23日に受験
– 学習時間は1か月×1~1.5時間程度(30時間くらい)
(平
JavaでSlack botをリリースするまで その3
# はじめに
[前回](https://qiita.com/blue_islands/items/a920a35d6153817924dc)、アプリ申請まででしたのですが、要はリジェクトされて帰ってきたので、その要点と対応をまとめていきます。返信された内容はこんな感じできていました。
> Hello ○○○○,
>
> Thanks for your patience during our review process! We’ve reviewed CotoGoto for Noby and have some notes on > the submission.
>
> You can jump straight to our notes here (https://api.slack.com/apps/xxxxxxxxxxx/app-submission).
>
> If you have questions about any of our feedback, just reply to this message and we’ll see it!
>
> The
Java Silver番外編(キャストのコンパイルエラーと実行時例外)
Java Silverを学習中、クラスのキャストについて学んだことがあったので復習も兼ねて投稿します。
# ■クラスのキャストによるエラー
クラスをキャストする際には、コンパイルエラーをする場合と実行時エラーとなる場合がある。“`java
public class A {}public class B extends A {}
public class C extends A {}
public class Main {
public static void main(String[] args) {// 実行時エラーのパターン
A a1 = new A();
B b1 = (B)a1;// コンパイルエラーのパターン
B b2 = new B();
C c = (C)b2;}
}
“`
# ■解説
### 結論:可能性があるなら実行時エラー、全く関係ないならコンパイルエラー#### AとBの関係
AとBの場合、両者にはスーパークラスとサブクラスという関係があるので、キャストが成功する可能性もある。
以下のような
Java Silver番外編(Integerと==演算子)
Java Silverの学習中、Integerと==演算子の比較の関係で知ったことがあったので、復習も兼ねてまとめようと思いました。
## ■Integerの生成方法の違いによる==演算子の結果
“`javapublic class Main {
public static void main(String[] args) {Integer i1 = Integer.valueOf(127);
Integer i2 = Integer.valueOf(127);
System.out.println(i1 == i2); // trueInteger i3 = Integer.valueOf(128);
Integer i4 = Integer.valueOf(128);
System.out.println(i3 == i4); // falseInteger i5 = 127;
Integer i6 = 127;
System.out.println(i5 == i6); // true
【初心者】ApacheSpark基礎編-共有変数
ApacheSpark基礎編-SparkSQLはこちらです。
https://qiita.com/SHA_AKA/items/b69fdd6a268d503682aa
今回は共有変数について、コードを書くと思います。# 目次
1. 共有変数とは
1. アキュムレーター(accumulator)
1. ブロードキャスト変数(Broadcast)
1. その他### 共有変数とは
通常、(map あるいは reduceのような)Spark操作に渡される関数は別々のエグゼキュータ(executor)上で実行され、関数の変数はドライバー(driver)各エグゼキュータにコピーされました。
各エグゼキュータ上の変数への更新はドライバーには反映されない。
ドライバープログラムにある変数を更新しても、各エグゼキュータ上の関数には影響がない。
この時は、Sparkから提供されている2種類の共有変数:Broadcastとaccumulator、を利用して、この制限を無視できます。
(下記の例を見たほうが理解しやすくなると思います。)### アキュムレーター(accumulator)
・“追加
[memo] null emptyの違いについて
[参考記事](https://wa3.i-3-i.info/diff290moji.html)
Javaでブロック崩しゲームを作る
# ブロック崩し
最近、Javaを勉強しています。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/4f5a9081-7f23-8872-b3a7-8eddf866f2a4.png)
こんな感じのブロック崩しを作りました。
想像以上に難しかったです。
オブジェクト指向って修正がしやすく、わかりやすく書ける気がします。## オブジェクト
1. ボール
1. 反射板(操作可能)
1. 障害物
1. 壁このうち**ボール以外は線分の組み合わせ**だと考えられます。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/92c347e3-86d9-a3de-ca97-79649e5ba1ec.png)
障害物がこのように長方形の場合、4つの線分で障害物を構成できます。そこで、**”線分クラス”** を作り、障害物や壁・反射板は **”線分インスタンス”の集まり**とし
APIリリースの手順(2)
# Teratermを用いてプロジェクトのリリースを行う
## 1. Teratermのインストール
① zipファイルを[ダウンロード](https://ja.osdn.net/projects/ttssh2/releases/)し、解凍する。
② 「ttermpro」を開く。
③ 言語設定より始まり、Teraterm セットアップウィザード通りに手中を進めていく。インストール先はドライブなどに設定する。(今回はDドライブに設置。)
「コンポ―ネメント」の」選択画面では、デフォルト値のまま「次へ」をクリックする。
入門編はこちらです。
https://qiita.com/SHA_AKA/items/455a3116b8e95a680753
今回はSparkSQLによって、色々なデータフォーマットを読み込み・書き出すを実行しようと思います。
SparkSQLとはSparkのAPIの一つという雑な理解をしています。
前回と同じ基礎知識が全くない、RDDとDataFrameとDataSetの違いなどは説明できないのでご了承ください。
または、今回はバッチ処理限り、ストリーミングが応用編までに。# 目次
1. 前準備
1. pom.xmlの更新
1. 実行コード
1. JDBCによりDBとの連携
1. その他### 前準備
実験データとしては、バンダイナムコさんの約一週間(7/19~7/22)の株価です。
フォーマットとしては、テキストファイル含め、json,csv,avro,parquet,hive-table
お先にcsvとjsonファイル両方用意しました。
CSVファイル
| share_code | datetime_JST | open | high | low | close | v
MacでのJava環境構築方法[HomeBrew][VSCode]
### 概要
久々にJava環境構築したら意外とハマってしまったので記録です。OS:Mac
言語:Java
エディタ:VSCode
ツール:homebrew必要な手順は大きく5つです。
[1.Javaのインストール](#javaのインストール)
[2.VSCodeのインストール](#vscodeのインストール)
[3.VSCodeを日本語化](#vscodeを日本語化)
[4.VSCodeにJavaをインストール](#vscodeにjavaをインストール)
[5.動作確認](#動作確認)***
### Javaのインストール
私はbomebrewで管理したかったので↓を参考にしました。
https://codeaid.jp/java-homebrew/最初は他サイトを駆使してインストール作業していたのですが、いろいろエラーにぶち当たったので↓に別途まとめてます。
https://qiita.com/timustan/items/1ad987232c1a975b8801***
### VSCodeのインストール
安心安全の公式サイトからインストールします。
http
VSCodeでHello Worldする[Java][Mac]
### 概要
Mac OSにてVSCodeでHello Worldする方法です。
今回はJavaを使用してます。
環境構築手順は↓をご参照ください。
https://qiita.com/timustan/items/78e02d3c02fbf3cc60cf
***
### 実行ファイルを作成する
①左のエクスプローラーアイコンをクリック(`Comand + Shift + e`でも可)
②「フォルダーを開く」をクリック
![スクリーンショット 2022-07-25 2.27.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745096/30c7c3cc-4b28-4b9a-38ba-7846061f071b.png)
③適当な開発用ディレクトリを作成、選択(私は今回`DEV`ディレクトリの中に`JavaTest`フォルダを作ってみました)
![スクリーンショット 2022-07-25 2.28.43.png](https://qiita-image-store.s3.ap-northeast-1.
HomebrewでJavaをインストールする際に発生したエラーと解決策
HomebrewでJavaインストールしようとしたらいくつかエラーにぶち当たったのでメモ。
***
### 「Error: Unknown command: cask」最初はこれ。
“`
$ brew cask install java
“`
を実行したら発生したエラー。
原因はcaskの利用方法が変更されたためでした。
Homebrew2.6まで`brew cask`としていたコマンドは、オプション`-–cask`で指定するように変更されていたようです。
てことで以下を実行。
“`
$ brew install java –-cask
“`
そして次のエラーにぶち当たる。***
### 「Cask ‘java’ is unavailable: No Cask with this name exists.」
んん〜〜〜〜〜!
どうやらJDK のインストール方法が変わったようです。
変わらないためには変わり続けることが必要って誰かが言ってました。***
### 解決策
結局以下のコマンドで最新版の`AdoptOp
eclipse2022にjava EEがない
## eclipse2022にjava EEがない
### JavaEEとは
企業向けのWebアプリケーション開発ができる機能がセットになったプラットフォームのこと調査してみると
https://mergedoc.osdn.jp/
eclipseのダウンロードサイトにこんな表記が
`・変更: Java EE パースペクティブ廃止 (サーバー・ビューは Java パースペクティブ初期表示、DTP 廃止のため)`
らしい,ぐぬぬぬぬ### そもそもパースペクティブとは
eclipseの作業内容に応じて切り替わる画面レイアウトで、表示するビューやエディタ、メニューをコントロールする設定のこと#### DTP廃止
`DTP`とはeclipse上からGUIでDB操作を行うためのプラグインだがこれが廃止されたとのことだ
ちなみにこれは`Eclipse IDE for Java EE Developers`に標準で入っていたらしく、その`DTP`が廃止されたこととサーバー・ランタイム環境の操作をする`サーバー・ビュー`がJavaパースペクティブで初期表示になったことにより、Java
JavaのStreamAPIについて
## はじめに
StreamAPIの入門者向け記事です。
StreamAPIで使われるラムダ式については解説していません。([この記事](https://qiita.com/taumax/items/302b5025e30b7a74c8c6)を参考にしてください)## StreamAPIとは
StreamAPIはJava SE8から追加されたコレクションの取り扱いをいい感じにできる機能です。
基本的には以下の流れで処理をします。
1. Streamを取得
1. 中間操作を実行してStreamの要素に対して操作を加える
1. 終端操作を実行して結果を取得java.util.streamパッケージに関連するクラスがまとめられています。
## 使い方
### Streamの種類
主にStreamオブジェクトは以下のものがあります。
通常のStreamは参照型の値しか扱うことができないので、プリミティブ型を扱うStreamが別に用意されています。
| Stream | 扱う型 |
| ——- | ——- |
| Stream | 参照型 |
| IntStream
Java SE11 Goldに合格した話
Java Goldを受験し、合格することができたので合格するまでの流れをまとめます。
## Java Goldとは
まずはじめに、Java GoldはOracleが提供するJavaの最難関資格とされているベンダー資格です。
正式にはOracle Certificated Java Programmer GOLD(OCJP GOLD)といいます。
前提としてJava Silverの資格取得が条件となっています。## 試験概要
受験時間:180分
設問数 :80問
合格ライン:63%(51問)設問は一問一答形式なので180分丸々使うようなことはあまりないと思います。
合格ラインもそこまで高くないのでしっかりと勉強をしていれば問題なく受かれるはずです。## 試験範囲
試験の範囲は以下の内容です。
Java Silverに比べて取り扱う内容の難易度が上がっています。* クラス
* 関数型インタフェースとラムダ式
* 並列処理
* Stream API
* 標準入出力
* JDBC
* 汎用とコレクション
* 例外処理とアサーション
* モジュールシステム
* ローカライズ