Java 14から導入されたRecordのjavadoc

見たほうがはやい。 recordであるということは明記される模様。パラメーターについては@paramで書いておけば、レコードコンポーネントとして表示される。 メソッドのドキュメントは自動生成されたものになるが、引数名のみが表示されて@paramで付けた名前が…

Microsoft 365(Exchange Online)を使用してメール送信する場合に2022年10月から基本認証が使えなくなるそうです。

2022年10月からメール送信に限らず、Exchangeで基本認証が無効化されるとのこと。 メール送信(SMTP AUTH)については事前のオプトアウトはできますが、無効化された後には再有効化はできないようなので注意な。 つまり、ちまたのJavaMailを使用したメール送信…

認定Webアプリケーション 脆弱性診断士 公式トレーニングが面白かった。

会社で受ける機会をもらったので受講してきたけど思ってたよりも面白かった。 当然のように徳丸本は読んでいて、セキュリティを考えたアプリケーション実装は常にしてるのですが、 実際にアタックを掛けてみるというところを実際にやってみるというのは非常…

Oracle XEで容量を超過した場合

Oracle 18c XEはディスク量に12Gの制限があるが、そちらを超過した場合はデータベースをオープンできなくなる。 その状態でデータをメンテナンス(削除)するのは至難の業なので、バックアップから復旧するしかない。

ヌーラボ backlogエンタープライズで最近アクセスしていないユーザーの一覧を取得する。

backlogエンタープライズはユーザー数による課金になっているので、アクセスしていないユーザーについては削除を行いたい場合があります。 ただ、backlogのAPIは貧弱で、画面からは最終ログイン日時が取れるのにAPIからは最終ログイン日時が取れない、APIを…

Oracle DBの表領域ごとの使用率を出力する

ぐぐって出てくる既存のSQLだと正しい結果が出てこなかったのでメモ。 19cで確認。 Oracle SQL DeveloperのDBAコンソールで使われてるものほぼそのままです。 select a.tablespace_name as "Tablespace Name", round(a.bytes_alloc / 1024 / 1024) "Allocate…

sqlplusでデフォルトの接続先を変更する。

Windowsの場合は環境変数 「LOCAL」にtnsnames.oraの値を書き込む、そうでないOSの場合は「TWO_TASK」に指定するらしい。 Linux版(と思われる)記事はたくさんあったけど、Windowsで確認しました。 stackoverflow.com

Oracle DBでtnsnames.oraを使ってフェイルオーバー(もしくは負荷分散)を行う。

基本的にマニュアルの通りですが、Oracle DBの場合接続文字列を変えるだけでフェイルオーバー(もしくは負荷分散)を行えます。 docs.oracle.com 複数をどう切り替えるかというと、(FAILOVER=on)もしくは(LOAD_BALANCE=on)をつけるだけ。 どのサーバー間で切り…

リングフィットを1週目クリアしたけれども痩せなかった。

リングフィットをやったら痩せましたという人ばかりなので、痩せませんでしたという記録も。 リングフィットをやったけれども、痩せませんでした。 6月14日に初回起動をして、10月18日*1 にクリア。 そのままサブクエストも同じ日に終了。 体重推移 どうせ運…

AWS ALBで特定のパスもしくはパスが存在しない場合のみリクエストを許可したい場合

https://example.com/app もしくは https://example.com ではアクセスを許可したいが、それ以外についてはアクセスを許可したくない(404を返したい)場合は以下のように設定する。 パスが/app または /app/* または / の場合は許可する。 パスが /* の場合は…

Javaのメソッド呼び出し階層を表示する

Threadオブジェクトからスタックトレースを取得できるのでそれを使用する。 System.out.println(java.util.Arrays.stream(Thread.currentThread().getStackTrace()) .skip(1).limit(4).map(t -> t.getClassName() + "." + t.getMethodName()).collect(java.u…

JavaからActive Directory(LDAPS)接続(自己署名証明書の検証スルーコード付き)

自分向けの備忘録として。 基本はこちら。 kazuhira-r.hatenablog.com こちらの記事だと自己証明書のスルーに使用しているのが X509TrustManager だが、新しいTLSに対応するためには代わりに X509ExtendedTrustManager を実装してあげる必要がある。 よって…

JavaMailでメールアドレスに名前を付ける

JavaMailで送信したメールに宛先や送信元に名前を表示したい場合がある。 以下のような感じですね。 ゆとり<megascus@megascus.dev> InternetAddressクラスの3つの引数があるバージョンを使えば対応できる。 docs.oracle.com 日本語を扱う場合、charsetとして"iso-2022-jp"を使用し</megascus@megascus.dev>…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

ネットワークドライブの割り当てを行ったNASに保管されているExcelファイルの元の場所のURLを取得する

\XXXnas\share\hoge.xlsx みたいなでアクセスするのを嫌がって、 \XXXnas\share\ をZドライブに割り当てみたいなことをした場合に、他の人に共有する場合はZドライブではなく元のネットワークドライブ上のパスで指定したい場合があります。 その場合、リボン…

aws-sdk-java-v2を使用してs3からオブジェクトを取得する。

aws-sdk-javaのバージョン2が出ていたので試してみました。 v1と比べて、パッケージ名が変更されていたり、APIがビルダー形式(いわゆる流れるようなインターフェース)になっていたりと微妙に差はありますが、大きく差があるわけではないというのが印象です。…

「みんなのJava」は最近5年間のJavaの動向概要を復習するための本 #minjava

「みんなのJava」を著者の方から頂いたので読みました。 ありがとうございます。*1 みんなのJava OpenJDKから始まる大変革期!作者:きしだ なおき,吉田 真也,山田 貴裕,蓮沼 賢志,阪田 浩一,前多 賢太郎発売日: 2020/03/13メディア: 単行本(ソフトカバー) …

Tomcat 10でJakarta EE 9のServlet APIを試す。

Tomcat 10のマイルストーンリリースが出ました。こちらはJakarta EE 9(旧Java EE 9)対応のリリースとなります。 tomcat.apache.org 現時点ではパッケージ名称が変わったぐらいで大きい変更はなく、結果だけ言えばうごいたねーぐらい。 mavenの依存性には以下…

去年と今年と

もう年が明けて5日になってしまいましたが、去年の総括と今年についてつらつらと。 12月末日で今の会社に入ってからちょうど5年が経ちました。 社会人生活に入ってからここまで長く勤めた会社ってのは初めてなので、 まあ、今までで一番合っている会社なんだ…

Oracle DBがWindowsの再起動時に自動で立ち上がらなくなった場合

Oracle DBをサービスとして登録してあり自動で起動するように設定されていて、TNSリスナーは自動で立ち上がるのにOracle DBに接続できない場合があります。 データベースを再作成した時にそうなることがあるのですが、そちらについての確認方法と対処方法を…

特定の文字がWindows-31J(Shift_JIS)で扱えるかどうかをJavaで確認する。

現時点では、以下のコードが一番よさそう。 private static final Charset windows31J = Charset.forName("Windows-31J"); public boolean canEncodeWithWindows31J(CharSequence str) { CharsetEncoder encoder = windows31J.newEncoder(); return encoder.…

Hitachi Cosminexusの新規採用は止めましょう。

Java EE(Jakarta EE)の仕様検討ワーキンググループへの参加を止めてしまい、最新仕様への追従も数年前から止めてしまっているようなので、導入するのは止めましょう。 仮に導入しても、レガシーAPIしか使用できず、生産性の向上は望めません。 Java EE(Jakar…

WindowsでOracle 18c XEのインストール時に管理者権限があるのに管理者権限がないと怒られて失敗する場合

ドメインに参加しているWindowsでドメインユーザーを使用してOracle 18c XEをインストールしようとすると、管理者権限がついていたとしても管理者権限がないといわれて怒られる。 その場合、同名のローカルユーザーを作って管理者権限を付けてあげると、ドメ…

Servlet APIとJPA APIの日本語翻訳を独自ドメインに移動させました。

タイトルのとおり。 古いページにアクセスしても自動でリダイレクトされるはずですが、ご連絡として。 中身はgithub pagesのままで何も変わってないです。 https://github.megascus.dev/ よくある質問と答え なんでドメインを移動させたんですか? github pa…

Oracle DBのPL/SQLからOffice365(starttls)を利用してメールを送信する

君がこれを読んでいるということは非常につらい状態に置かれているということだろう。 公式ドキュメント通りにやっても動かないという人向けに記す。 以下についてはきちんと読みましょう。 docs.microsoft.com https://support.microsoft.com/ja-jp/help/44…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

正規表現で空白をマッチさせるときは\sじゃなくて\hのほうが良いのかもしれない。

正規表現で空白文字とマッチさせるときは\sを使用することが多いと思いますが、本当に求めているものは\hなのかもしれません。 \s 空白文字: [\t\n\x0B\f\r] \h 水平方向の空白文字: [ \t\xA0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000] \sはasciiで定義…

SQLExceptionをハンドリングしなくてもよくなるJDBCドライバ

DB障害時にもJDBCから例外返すなと言われるとねぇ— いとうちひろ(Chihiro Ito) (@chiroito) February 7, 2019 そういえば、log4jdbcみたいにラップしてあげれば実装できるよねーということに気が付いたので、実装してみました。 github.com なんと!SQLExcep…

Tomcatのログの保持日数がTomcat 9から90日になっていた。

題名のとおり。 ついでに、Tomcat-9.0.13からはログの出力文字がUTF-8に変更されました。 よって、現状は以下のような感じになっています。 ※conf/logging.propertiesから抜粋 ※下2行が増えた。 1catalina.org.apache.juli.AsyncFileHandler.level = FINE 1c…

Oracle DBのjdbcドライバをmavenから利用する。

日本語情報だと、どこからか取ってきたjdbcドライバを自前でローカルリポジトリにインストールしろという記事しか見つからなかったので。 Oracle社はOracle DB用のjdbcドライバを自前のmavenリポジトリでリリースしており、そちらから取得する設定を行うこと…