投稿

[Java] 入出力ストリーム

Javaの入出力ストリームについてまとめていきます。 Fileクラス Fileクラスは、Java1.0の最初期からあるAPIで、ファイルやディレクトリのパスを表すクラスです。 あくまでパスを扱っているだけで、ファイルやディレクトリそのものを扱っているわけではない。 Fileオブジェクトの取得 コード例 File file = new File("output/data.txt"); この時オブジェクトはファイルパスを扱っているだけなので、output/data.txtの存在有無や書き込み権限にかかわらず、インスタンスを生成することが可能です。 Fileオブジェクトの主なメソッド boolean isFile() ファイルの場合にTrueを返す。 boolean isDirectory() ディレクトリの場合にTrueを返す。 long lastModified() ファイルの更新日付をUNIXタイムで返す。 String getAbsolutePath() ファイルの絶対パスを取得する。 String getCanonicalPath() ファイルの相対パスを取得する。 File[] listFiles() ディレクトリ配下のFileオブジェクトの配列を生成する。 File[] listFiles(FileFilter) FileFilter関数型インターフェースを引数に取り、条件に一致したFileオブジェクトの配列を生成する。 サンプル コード例 output配下の拡張子が「.txt」のファイル一覧を取得 ファイル名と最終更新日時を出力する File file = new File("output"); FileFilter filter = pathname -> pathname.getName().endsWith(".txt"); File[] files = file.listFiles(filter); Ar

[Java] ストリームAPI

ListやSetといったコレクションを扱う際に、すべての要素に処理を行う際、for文を使って順に要素を取り出していましたが、このような逐次処理を簡潔に記述できるようにしたStream<T>型がJava8で導入されました。 ここではStream API(以下ストリームAPI)の使い方についてまとめていきます。 ストリームAPIを使用する目的 ストリームAPIを使用する目的としては以下の通りです。 コレクションや配列の全要素に対して同じように変換する。 コレクションや配列の要素の合計や平均といった統計を取る。 コレクションや配列の要素に対して特定の条件でグルーピングやフィルターを行う。 コレクションや配列から特定の条件に合ったデータを検索する。 ストリームAPIは従来のfor文や拡張for文を置き換えるために用意されたAPIではない。 ストリームオブジェクトの取得 Iterableインターフェースから取得 java.lang.Iterableインターフェースのstream()メソッドで取得します。 コード例 List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Melon"); list.add("Orange"); Stream<String> stream = list.stream(); Streamインターフェースから取得 コード例 Streamインターフェースのofメソッドからも可変長引数で取得することが出来ます。 Stream<String> stream = Stream.of("Apple", "Melon", "Orange"); Arraysクラスから生成 コード例 String[] arrays = {"Apple", "Melon", "Orange"}; Stream<String> stream = Arrays.stream(arrays

[Java] 並列処理 (Thread, Runnable)

Javaで並列処理(マルチスレッド)の実装についてのまとめです。 Javaで並列処理を実装するにはいくつか方法がありますが、ここではThreadクラスを継承する方法と、Runnableインターフェイスを実装したクラスを用意して、Threadクラスのインスタンスを生成する方法についてまとめます。 基本的な並列処理の実装 Threadクラスを継承する 実装 import java.lang.Thread; public class ThreadTest { public static void main(String[] args) { Thread t = new Thread() { @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println("sub:" + i); } } }; t.start(); for (int i = 0; i < 5; i++) { System.out.println("main:" + i); } } } 実行結果 実行結果は順不同で出力され、並列に処理されているのが分かります。 java ThreadTest.java main:0 sub:0 main:1 sub:1 main:2 sub:2 main:3 sub:3 main:4 sub:4 Runnableインターフェースを実装する 実装 import java.lang.Runnable; import java.lang.Thread; public class ThreadTest { public static void main(String[] args) { Runnable r = new Runnable() { @Override

[java] Optional<T>について

Optionalクラスは何らかの処理の結果を格納・保持するクラスです。 これまでは取得した値が空ではないか、またはnullではないかなど、取得結果について確認したうえで後続の処理を行っている場合があり、これが冗長・可読性低下の原因でした。 Java8から導入されたOptionalクラスを使うと、こういったケースが簡潔に記述できるようになりました。 ここではインスタンスの生成と、値を使用するにあたって利用する主なメソッドについてまとめておきます。 インスタンスの生成 OptionalのインスタンスはOptionalインターフェースに定義されたファクトリメソッドを使用して生成します。 1. Optionalインスタンスを生成するメソッド empty() 空のOptionalのインスタンスを生成する。 of(T value) nullを許容しない値を持ったOptionalのインスタンスを生成する。 nullを指定するとNullPointerExceptionが発生する。 ofNullable(T value) nullを許容し、nullを指定した場合は空のOptionalインスタンスを生成する。 emptyメソッド コード例 Optional<String> optional = Optional.empty(); System.out.println(optional); 実行結果 Optional.empty ofメソッド コード例 Optional<String> optional = Optional.of("test"); System.out.println(optional); 実行結果 Optional[test] ofメソッドにnullを指定するとNullPointerExceptionが発生する。 ofNullableメソッド コード Optional<String> optional = Optional.ofNullable(null); System.out.println(optional); 実行結果 Optional.e

[Java] Enum(列挙型)についてまとめ

Enum(列挙型)について 概要 Enumは同じカテゴリの定数をまとめて管理するためのもので、クラスのように扱うことができます。 なお、JVM上はクラスとして扱われるため、メソッドやコンストラクタを定義することもできます。 構文 アクセス修飾子 enum 列挙名 { 列挙子, 列挙子, 列挙子... } Enumの基本的な使い方 定義例 public enum Status { DISABLED, APPROVED, ENABLED } Enumを使った分岐処理 Status status = Status.APPROVED; switch (status) { case DISABLED: System.out.println("無効"); break; case APPROVED: System.out.println("承認"); break; case ENABLED: System.out.println("有効"); break; } 配列で列挙子をすべて取得する Status[] statuses = Status.values(); 列挙子を文字列で取得する Status status = Status.valueOf("APPROVED"); 存在しない列挙子を指定すると IllegalArgumentException が発生します。 列挙子に値を持たせる 構文 アクセス修飾子 enum 列挙名 { 列挙子(値), 列挙子(値), 列挙子(値)... private 型 フィールド; private コンストラクタ {} } 定義例 enum Status { DISABLED("無効"), APPROVED("承認"), ENABLED("有効"); private String value; Status(String

[Java] ラムダ式と関数型インターフェース

ラムダ式とは前述の匿名クラスの記述をより簡潔に書くことが出来る記述法で、Java8から導入されました。 また、それに合わせてラムダ式で記述できるいくつかの関数型インターフェースが用意されているので、主要な部分についてまとめていきます。 ラムダ式 構文 インターフェース 変数 = (引数) -> {処理}; 定義例 例えば匿名クラスの説明で利用した次のサンプルコードがあります。 https://www.s-watanabe.work/2022/10/java.html#3 interface Itest { public void doTest(); } public class AnonymousTest { public static void main(String[] args) { Itest itest = new Itest() { @Override public void doTest() { System.out.println("Itest.doTest"); } }; itest.doTest(); } } このコードはラムダ式によって次のように置き換えることが出来ます。 interface Itest { public void doTest(); } public class AnonymousTest { public static void main(String[] args) { Itest itest = () -> { System.out.print("Itest.doTest"); }; itest.doTest(); } } 処理内容が1行の場合、中カッコ{}を省略することができます。 Itest itest = () -> System.out.print("Itest.doTest"); ラムダ式は関数型インター

[Java] ネストしたクラスについてのまとめ

クラス内に定義するクラスを総称してネストしたクラスと呼び、外側のクラスをエンクロージングクラスと呼びます。 ネストしたクラスには次の種類があります。 インナークラス staticインナークラス 匿名クラス ローカルクラス インナークラス インスタンス化 new エンクロージングクラス().new インナークラス() インナークラスのインスタンス化するには、エンクロージングクラスのインスタンスを先に生成する必要がある。 定義例 public class InnerTest { private class Test { private void method() { System.out.println("Test.method"); } } public static void main(String[] args) { new InnerTest().new Test().method(); } } インナークラス、およびそのメソッドのアクセス修飾子はpublic、protected、private、無しの4つとも指定できる。 privateを指定してもエンクロージングクラスからは呼び出すことができる。 実行結果 java InnerTest.java Test.method staticインナークラス インスタンス化 new インナークラス() staticインナークラスのインスタンス化には、エンクロージングクラスのインスタンスは必要ない。 staticインナークラスが外部のクラスファイルの場合は、「new エンクロージングクラス.インナークラス()」のように生成する。 定義例 public class InnerTest { private static class Test { private void method() { System.out.println("Test.method"); } } public static

Alexaをしゃべらせる (Win10)

概要 Amazon Echo Dotを購入したので、Alexaに任意の文章をしゃべらせるまでの手順をまとめておきます。 事前準備 Amazon Echo Dot Amazon Echo Dot (エコードット)第3世代 - スマートスピーカー with Alexa、チャコール WSL https://learn.microsoft.com/ja-jp/windows/wsl/ WSLはWindows上で実行できるLinux仮想環境です。 インストール方法はリンク先にあります。OSはUbuntuを選択しました。 ※今回実行しようとしているスクリプトは、Windowsやgitbash上では動作しませんでした。 設定 jqコマンドインストール jqコマンドは、json形式データの整形や加工を行うコマンドです。WSLを開き、以下コマンドでインストールします。 sudo apt install jq 以下のように確認コマンドを実行し、整形されたデータが出力されればOKです。 echo "{\"a\":123}" | jq { "a": 123 } スクリプトダウンロード githubで公開されている以下のスクリプトを任意の場所へダウンロードします。 https://github.com/thorsten-gehrig/alexa-remote-control.git スクリプト設定 ダウンロードした alexa_remote_control.sh をテキストエディタで開き以下の変数を設定します。 設定項目 SET_EMAIL AmazonアカウントのEメールアドレス SET_PASSWORD Amazonアカウントのパスワード SET_MFA_SECRET MFAシークレットキー ※MFAシークレットは以下の手順で確認できます。 Amazonのアカウントサービスから、ログインとセキュリティを開く 2段階認証の「管理」を開く 新しいアプリの

[資格]SC-900 Microsoft セキュリティ、コンプライアンス、IDの基礎

イメージ
SC-900について 概要 セキュリティ、コンプライアンス、ID の概念、アクセス管理ソリューションの機能、Microsoft セキュリティ ソリューションの機能、Microsoft コンプライアンス ソリューションの機能についての知識を問われる試験です。 https://docs.microsoft.com/ja-jp/certifications/exams/sc-900 試験 試験コード SC-900 合格ライン 700点 / 900点 問題数 45-48問程度 試験時間 45分程度 ※問題数と試験時間について公式に記載はありませんが、おそらく他の基礎コースと同程度と思われます。 事前対策 事前対策としてはAI-900と同様に、オンライントレーニングで受講した内容と、公式ドキュメント(WEB)を使って対策していきます。 また、以下にサンプル問題が公開されているので参考にしました。 https://docs.microsoft.com/ja-jp/certifications/resources/sc-900-sample-questions ※日本語の参考書・テキスト等は現時点(2022/08)でおそらくありません。 重要ポイント ゼロトラスト - 3つの原則 明示的に検証する 最小限の特権アクセス セキュリティ侵害を想定する IDの概念 新しいセキュリティ境界 ユーザー、アプリケーション、デバイスなどに関連付ける ID管理の基本概念 管理 ユーザー、デバイス、およびサービスのIDを作成し管理する。 認証 特定のIDについて、身元の保証に十分な証拠があるかどうかを検証する。 承認 (認可) 認証されたユーザーまたはサービスが、アクセス先のアプリケーションまたはサービス内で持つアクセスのレベルを決定する。 監査 認証されたユーザーまたはサービスが、何を、いつ、どこで、どのように行うかを追跡する。 Azure Active Directory (Azure AD) クラウドベースのID、ア

[資格]HTML5 レベル2

イメージ
HTML5 レベル1に続きレベル2を受けてきました。 レベル2はレベル1とは出題範囲が異なり、JavaScriptの文法、コーディングスキルについての問題が中心です。 なお、今回万が一不合格でも無料でもう一回受験できる「リテイクフリーサマーキャンペーン2022」を利用して受験しました。 https://html5exam.jp/campaign/retake202207/ この手のキャンペーンは今後もあるかどうか分かりませんが、無料のセミナー等は定期的に開催されています。 気になる方は以下ページをチェックしておくと良いと思います。 https://html5exam.jp/news/event/ HTML5 レベル2について 概要 JavaScriptの文法、およびコーディングスキル、API、そのほか通信やセキュリティ等、レベル1と比べるとより高いレベルのスキルと知識を求められる試験です。 試験 試験名 HTML5プロフェッショナル認定資格 レベル2 合格ライン 70点 / 100点 問題数 40問 試験時間 90分 前提条件 有効なHTML5 レベル1を保有していること 試験時間にはアンケートの時間が含まれるので実際は80分です。 問題数はおそらく40~45の間で変動します。 選択形式のみで記述する問題は出ませんでした。 使用した参考書について こちらの参考書はバージョンは2.0対応です。現時点で2.5に対応した参考書はおそらくありません。しかし2.5の範囲を確認したところ、2.0と大差はありませんのでこちらの参考書で十分だと思います。 以下に2.5の変更点が公開されていますので、心配であれば確認しておくとよいです。 https://html5exam.jp/outline/objectives_lv2.html 書籍については、レベル1と同様にLPI-Japanの認定教材です。 重要なポイントについての問題と解説、模擬試験1回分が収録されています。 また、購入特典としてダウンロード版の模擬試験がついてきます。 試験内容 覚えている範囲で箇

[資格] AI-900 Azure AI Fandamentals

イメージ
Azure AI Fandamentals試験について、合格するまでの記録です。 こちらも基礎コースなので、オンライントレーニングを受講し、無料で受験してくるので合格するまで挑戦したいと思います。とはいえ一発で合格したいのでオンライントレーニングの内容から要点等をここにまとめておきます。 Azure AI Fandamentalsについて 概要 機械学習・AIワークロードの知識、およびそれらの実装についての知識を問われる試験です。 https://docs.microsoft.com/ja-jp/learn/certifications/exams/ai-900 試験 試験コード AI-900 合格ライン 700点 / 900点 問題数 45-48問程度 試験時間 45分程度 ※問題数と試験時間について公式に記載はありませんが、おそらく他の基礎コースと同程度と思われます。 事前対策 事前対策としてはオンライントレーニングで受講した内容と、公式ドキュメント(WEB)を使って対策していきます。 ※データの基礎同様、日本語の参考書・テキスト等は現時点(2022/06)でおそらくありません。 Microsoft AIの基本原則について 公平性 すべての人を公平に扱う 信頼性と安全性 確実かつ安全に、一貫して動作すること プライバシーとセキュリティ プライバシーやビジネスの情報について保護する 包括性 AI技術が幅広い人間のニーズや経験を組み込み、それらに対処する 透明性 理解しやすいシステムである必要がある アカウンタビリティ システムがどのように動作するかについて説明責任がある Azure Machin Learning AIシステムの基盤となるもので、予測を行い、データから結論を導き出す方法をコンピュータモデルに「教える」ことを指す。 自動機械学習 データから効果的な機械学習モデルを作成する Azure Machine Learning デザイナー 機械学習ソリューションのコードなしで開発を可能にするGUI パイプライン モデルのトレーニング

[資格]Javaプログラミン能力認定試験2, 3級

6/19に行われた、Javaプログラミング能力認定試験の2級と3級について受験してきました。 と言っても、オンラインによるリモート開催のため、自宅にいながらの受験です。オンラインによる受験自体が初めての体験だったので、このあたりについても少し記載しておきます。 Javaプログラミン能力認定試験について 概要 サーティファイ社が運営する認定プログラムで、Javaプログラミングについてのスキル、知識を認定する資格で3級から1級まであります。 3級についてはJavaについての基礎知識、オブジェクト指向に関する基本的な知識などに加え、簡単なプログラムの保守能力のようなものが求められます。 2級についてはJavaについての基礎知識に加えて、インターフェース、抽象クラス、例外処理、マルチスレッドなどに関する知識、さらに小規模なアプリケーションの理解、保守能力のようなものが求められます。 1級についてはまだ受験してませんが、Javaについてのより上級レベルの知識が求められ、さらに実務に近い形の実技試験となります。いずれはこちらについても受験したいと思っているので、その際にまた詳しくまとめたいと思います。 試験 1. Javaプログラミング能力認定試験 3級 試験名 Javaプログラミング能力認定試験 3級 合格ライン 6割 問題数 テーマ別で6問、全37問 試験時間 60分 出題形式 多岐選択式 受験料 ¥5,100 2. Javaプログラミング能力認定試験 2級 試験名 Javaプログラミング能力認定試験 2級 合格ライン 6割 問題数 テーマ別で7問、全39問 試験時間 90分 出題形式 多岐選択式 受験料 ¥6,200 ※合格ラインは共通で、6割程度と言われています。詳細は公開されていません。 また、2級と3級に関して現在オンラインによるリモート試験

Microsoft Virtual Training Day参加特典を利用してFundamentals試験を受ける

イメージ
Microsoft Virtual Training Dayとは、Microsoft製品についての技術解説セミナーです。 オンラインにより結構頻繁に開催されています。 興味のある方は、以下ページをブックマークしておくとよいです。 https://www.microsoft.com/ja-jp/events/top/training-days また、Fundamentalsと付くいわゆる基礎コースには、対象の試験が1回分無料で受験することができるという特典が付いてきます。今回この特典を利用して無料で試験を受ける際の流れをまとめます。 ※補足ですが、オンライントレーニングを受講すれば何度でも無料で受験できます。失敗してもめげずに何度でも挑戦しましょう。 Microsoft Virtual Training Dayについて 私の場合、Azureの資格でしか利用したことはないですが、その他にもいろいろと用意されているようです。 Microsoft Azure Power Platform Dynamics 365 Microsoft 365 Microsoft Security このオンラインセミナーには定員があり、上限に達すると締め切りになるのでご注意ください。 無料受験の流れ Microsoft Virtual Training Day 終了後にメールが届く 対象試験のリンクがあるのでクリックします。 一応このメールに手順が記載されています。 イベント終了から 5 営業日後に、試験の詳細をクリックして確認します。 [試験のスケジュール] ボタンをクリックして、オンライン登録プロセスを開始します。 サインインするか、認定資格プロファイルを作成します。 試験割引ページに移動し、イベントに登録したメール アドレスを入力します。割引を受けるには、アカウントをリンクする必要があります。 ※Virtual Trainingから 90日以内 に試験を予約する必要があります。 ※なお、このメールでトレーニングに使用された資料がダウンロードできます。複製、配布は許可されていませんのでご注意ください。 試験についての詳細ページ この

[資格] DP-900 Azure Data Fandamentals

イメージ
Azure Data Fandamentals試験について、合格するまでの記録です。 Azure Fandamentals(AZ-900)の記事で紹介したオンライントレーニングを利用し、無料で受験できたので内容の振り返りまとめて置きます。また、不合格だったため次回のために生かしていきたいと思います。(のちに無事合格) Azure Data Fandamentalsについて 概要 コアデータの概念、Azureデータサービスについての知識を問われる試験です。 https://docs.microsoft.com/ja-jp/learn/certifications/exams/dp-900 試験 試験コード DP-900 合格ライン 700点 / 900点 問題数 48問 試験時間 45分 AZ-900と比較して問題数が多く、また時間も少なめに設定されています。 ただしこちらも知識を問われる問題がほとんどですので、1問にかかる時間はそうありません。 また、選択問題オンリーでした。 各セクションとセクションが占める割合 主要なデータの概念についての説明(15 - 20%) Azure でのリレーショナルデータベースの扱い方についての説明(25 - 30%) Azure での非リレーショナルデータベースの扱い方についての説明(25 - 30%) Azure での分析ワークロードの説明(25 - 30%) 使用した参考書について なし(2022/5月時点で日本語の参考書・テキストは無さそうです) 試験内容 覚えている範囲で箇条書きですが、各サービスと特徴について以下にまとめます。 データ分析 ストリーム処理 バッチ処理テクノロジ Azure Synapse Analytics 大規模なデータ分析、超並列処理(MPP)をサポート Azure Data Lake Analytices オンデマンド分析ジョブサービス、非常に大きなデータセットの分散処理に最適化 HDInsight マネージドHadoopサービス、Hadoopクラス

Windows + IntelliJ + Javaアプリケーションの開発環境を構築する

イメージ
IntelliJ はJET BRAINS開発のJVMアプリケーションに特化した統合開発環境IDEです。 有償版のUltimateと無料版のCommunityがあります。 今回は機能は制限されますがCommunityを使用します。 環境構築 Java11をインストール まずはJDKのをインストールします。以下ページからWindows版のインストーラをダウンロードしてインストールします。 ※Oracleアカウントが必要 https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html chocolateyのインストール chocolateyはWindowsのPackage管理ツールです。 Linuxでいうところの yum や apt のようにアプリケーションのインストール、アップデートができます。 これまでWindowsアプリケーションはインストーラを探してインストールやアップデートをポチポチ行ってましたが、この作業が劇的に楽になります。 今後も使うと思うのでこれを導入してみました。 インストール PowerShellを管理者権限で起動し、以下のコマンドを実行してchocolateyをインストールします。 PS> Set-ExecutionPolicy Bypass -Scope Process -Force; ` iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) パッケージ管理コマンドについて よく使うパッケージ管理コマンドについて簡単にまとめます。 # インストール済みのパッケージ一覧 choco list --local-only # パッケージの検索 choco search <filter> # パッケージのインストール choco install <package> [-y] # パッケージのアップデート choco upgrade <package> # パッケージのアンインストール choco uni

[資格] AZ-900 Azure Fandamentals

イメージ
Microsoft認定資格 Azure Fandamentals を受験し、なんとか合格できました。 業務でAzureを使用して2年弱ほど経過し、基礎的な部分に関していえば十分理解しているつもりで挑みました。 結果は無事合格できましたが、結果はあまり良いとは言えない結果でしたので、得点を大きく落としているセクションについてはしっかりと復習しようと考えています。 Azure Fandamentalsについて 概要 Microsoft Azureについての基礎知識について問われる試験です。 試験 試験コード AZ-900 合格ライン 700点 / 900点 問題数 44問 試験時間 60分 問題数は44問程で1問に使える時間が1分弱といったところですが、全体を通して考える問題ではなく知識を問われる問題がほとんどなので、時間が足りなくなるということはまずありません。 しかし問われる知識については幅広く、Azureのサービス、セキュリティ、ツールなどの知識に加え、クラウドに関する幅広い知識、またポリシーやプライバシー等の法的な知識についても問われます。 使用した参考書について 合格対策 Microsoft認定 AZ-900:Microsoft Azure Fandamentals テキスト&問題集 AZ-900についての概要、Azureについての基礎知識、模擬試験1回分が収録されたテキストです。 基礎的な部分について一通り学べますが、ボリューム的には少なめで、未経験者や初心者が受験するにはやや物足りないと感じました。 Azure 定番システム 設計・実装・運用ガイド こちらはAzureの基本、データベース、App Service、負荷分散と地理冗長などを、実際の運用に沿った形で学べるテキストです。 試験について直接の対策とはなりませんが、合格対策テキストで足りないと思った箇所を補完する意味で購入しました。 Microsoftのテクニカルサポートエンジニア監修のテキストのため、長く使えると思います。 学習について 上記の合格対策テキストの巻末問題、模擬試験を3周ほど繰り返し、9割以上は正解

[資格] HTML5 レベル1

イメージ
HTML5はLPI-Japanが運営する資格で、HTMLとCSSのスキルを問われる試験です。 レベル1とレベル2の2段階があり、今回は基礎編であるレベル1を取得しました。 HTMLとCSSはITエンジニア、またWebデザイナーにとっても必須スキルとなっています。これまで理解しているつもりではいましたが、いざ勉強してみると理解が浅かったり、分かってなかったりしていた部分が結構あったので、この資格取得によって基礎をしっかりと抑えることができたのは非常に良かったと思います。 また、習得した知識は「デザイナーと開発者」といった異なる立場の方同士がスムーズにコミュニケーションを行うことにも、非常に役立つと考えられます。 今回はこの有益な資格についてと、試験について簡単にまとめていきます。 HTML5 レベル1について 概要 HTML5やCSS3、JavaScript等によるWebページなどのデザインから構築までのスキルを保有することを認定する資格です。 レベル1はHTMLとCSSについてのスキルを中心に試験が構成されています。 なお、LPI-Japanの資格は全部そうなのですが、5年で優位性の期限が切られています。5年経過すると失効するわけではないのですが、優位性が失われますので、同一試験を再受験するか、レベル2を取得するかしなくてはなりません。 https://html5exam.jp/outline/lv1.html 試験 試験名 HTML5プロフェッショナル認定資格 レベル1 合格ライン 70点 / 100点 問題数 60問 試験時間 90分 問題数が多めですが知識を問われる問題がほとんどですので、1問にかかる時間はそうありません。 また、選択問題が9割近くを占め、記述問題はほとんどありませんでした。 各セクション Webの基礎知識 CSS 要素 レスポンシブウェブデザイン APIの基礎知識 使用した参考書について こちらはLPI-Japanの認定教材となっている問題集+模擬試験1回分です。 設問ベースですが、解説がしっかりめに記載されてますので、合格だけを目

JavaFXアプリケーションをMavenプロジェクトで作り直す

イメージ
前回作成したパスワード管理ツールをMavenプロジェクトで作り直し、jarファイルを作成するところまでを行います。 なお、今回からスペックの関係上OSがUbuntuになってますが、基本的な手順は変わらないはずです。 環境 Ubuntu 20.04 vscode JDK11 プロジェクト作成 mvn archetype:generate コマンドでプロジェクトを作成します。 入力ウィザードで以下を求められるので適当に入力します。 groupId artifactId version package mvn archetype:generate [INFO] Scanning for projects... [INFO] [INFO] ------------------< org.apache.maven:standalone-pom >------------------- [INFO] Building Maven Stub Project (No POM) 1 [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] >>> maven-archetype-plugin:3.2.1:generate (default-cli) > generate-sources @ standalone-pom >>> (省略) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1854: Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 7: 1.3 8: 1.4 Choose a number: 8: Define value for property

Windowsで動くパスワード管理ツールをJavaFXで作る

イメージ
Windows上のGUIで動作するパスワード管理ツールを作成しました。 まずは必要最低限の機能を持たせました。 パスワード名称の一覧表示 絞り込み機能 クリップボードへコピー 経緯について コロナ過に入ってからずっとリモートワークが続き、Slack等で画面を共有しながら作業することがよくあります。 その際にパスワードをメモからコピーするときにさらけ出してしまうのを防ぎたかったからです。 2画面以上のマルチディスプレイであれば共有していないほうのディスプレイでコピーすれば済むんですが、1画面のためそうはいかず... またWindowsのアプリケーションでも探してみましたが、有償であったり会員登録が必要であったりと、これといったものが無かったのでJavaFxの勉強がてらに作ってみました。 環境 Windows10 vscode JDK11 プロジェクト作成 vscodeを開き「Ctrl+Shift+P」で「Java:Create Java Project...」を選択 Project type に No build tools を選択 Project を作成する親フォルダを選択 ここでは C:¥workspace を選択 Project名を入力 以下のような構成でプロジェクトが作成される 実行は右上の > ボタン Terminalに「Hello, World!」が出力されればひとまずOK ライブラリ JavaFX SDKダウンロード JavaでGUIを実装するためのフレームワークです。 Windows版のSDKをダウンロードします。 https://gluonhq.com/products/javafx/ ダウンロード後解凍し、任意のディレクトリに配置します。 ここでは C:\workspace\password-manager-test\lib\javafx へ配置しました。 JavaFX SDKインポート vscodeのエクスプローラーから、Java Projectを開く