ひらおかゆみのなげやりブログ

もう、なげやりです…

JavaFX Advent Calendar 2017、もうすぐ始まります

わたしが毎年参加させていただいていた "JavaFX Advent Calendar"、今年はどなたも主宰される様子がなかったので、僭越ながらわたしが主催します。今までの感謝の気持ちが先走って、肝心のネタがまだ見つかっていないのですが。

皆さんぜひ、参加してみてください。

qiita.com

※ただし、平田あづみ(id:planet-az)は義務なのでよろしく。

※あと、@btnrouge (a.k.a. @khasunuma) はさっさと参加表明しなさい。

2017年8月の部分月食

こんばんは。

 

8月8日の午前2時過ぎから4時過ぎにかけて、全国的に部分月食が見られるようです。当日は曇りの予報(東京)で天気がちょっと心配ですが、コンディションが良ければ南西の空で徐々にかけてゆく月の姿が見られるでしょう。

www.nao.ac.jp

 

今月は流星群(ペルセウス座流星群)も見られます。夜空を見上げるのが楽しみになりますね。

 

Surface Pro 3、再び

こんばんは。

 

わたしの手元に、再びSurface Pro 3がやってきました。

頂き物です。というか、補償です。

中古で、電源コネクタのところにやっちゃった感丸出しの大きな傷はありますが、今のところ問題なく動いています。

 

最初に電源入れたとき、Windows 8.1の懐かしい画面が出てきたので、Microsoftアカウントの設定だけ済ませてすぐにWindows 10へとアップグレードしたのですが、どこかでライセンス認証すると言われるかと思いきや、最後まで何も言われなかったです。前の持ち主が一度アップグレードしたか、もしくはわたしが以前のSurface Pro 3でWindows 10へアップグレードした記録がMicrosoftアカウントに存在したのか、定かではありませんが、結果オーライということで。

 

 

実はOfficeがついていないのですが、ブラウザのOffice OnlineやGoogle Docsで事足りそうだし、Windows Inkとかで十分遊べそうだから、しばらくはこのままでいいかなとも思っています。

 

ではまた。

Google Domains

お久しぶりです。

 

唐突ですけど、Googleがドメインの取り扱いまで始めたようです。

domains.google.com

 

何だか面白そうなので、"yumix.net"を移管させて…いる途中です。

ここには10~20分で終わると書いてあったのに、もう30分以上待たされています。

お名前.comから応答がないっぽい。お名前.comの移管状況確認見ても何にも載っていないし、ちゃんと移管できるの? →1時間くらい経ったら移管始まった。よかった

 

Payara ServerのLog Viewerについて

このエントリは、Payara Advent Calendar 2016の24日目です。昨日は@n_agetsuさんの「PayaraのJMX Monitoring Service」でした。明日は@khasunumaです。

1. はじめに

このアドベントカレンダーをご覧の方はご存じのはずですが、Payara ServerにはWebインタフェースのAdmin Consoleが付いています。Payara Serverの操作を一通り行える優れものですが、その中にはLog Viewerという興味深い機能があります。文字通り、ログを見るための機能です。

2. Log Viewerの使い方

操作は簡単で、まず左側の「server (Admin Server)」をクリックして「General Information」を表示します。

f:id:yumix_h:20161211233037p:plain

サーバのステータスの上にいくつかボタンがありますが、その中の「View Log Files」をクリックします。これでLog Viewerが開きます。

f:id:yumix_h:20161211233500p:plain

Log Level、Recordの先頭と最後、タイムスタンプなどでの絞り込みができます。詳細は一覧のMessageのところにある「(details)」というリンクをクリックすると見ることができます。ここではRecord Number 51(つまり一番上)の詳細を表示してみます。

f:id:yumix_h:20161211233741p:plain

Log Viewerには「Advanced Search」という機能があり、さらに細かな条件でログを検索することができます。以下のスクリーンショットから、どれだけ細かく検索オプションを指定できるのかがわかります。

f:id:yumix_h:20161211234007p:plain

Log Viewerの関連機能として、ログをそのまま表示するRaw Log Viewer、ログの強制ローテートなどがあります。「Domain」の「Domain Logs」タブで「Collect Logs」ボタンをクリックするとログをダウンロードすることも可能です。

3. まとめ

Windowsにはgrepsedawkも入っていないので、ログの検索が可能なLog Viewerは心強い味方となることでしょう。また、サーバマシンにsshで直接ログインできない環境であっても、Admin Consoleさえ使えれば、Log Viewerでログの解析もできますし、ログを差し押さえたければダウンロードすればOKです。

もし、皆さんのPayara ServerがAdmin Consoleにログインできるのであれば、ログに関する操作はすべてAdmin Consoleだけで行えます。Windows環境でPayara Serverを使用している方、リモート接続が制限されている環境でPayara Serverを使用せざるを得ない方にとっては、Log Viewerは非常に強力なツールだと思います。ぜひ、お試しください。

4. 制限事項

server-config → Logger Segins  Log File Logging Format でログ・ファイルの出力形式 (デフォルトでは ODL) を JSON に変更すると、JSON ログLog Viewerでは表示できません。

f:id:yumix_h:20161212001752p:plain

参考まで、ログ出力形式をJSONに設定すると、JSONで出力されたログはLog Viewerでは表示できません。

f:id:yumix_h:20161212001810p:plain

仕様なのか、バグなのかは私では判断なかったので、とりあえずバグかも?ということで事象を報告しました。 

github.com

@khasunumaが何の前触れもなく付けてきたコメントをまとめると、

  • ソースコードから判断する限り、バグではなく制限事項と考えられるため、これは改善要望とすべき
  • PayaraのログにはULF形式とODF形式以外に「カスタム・フォーマッタ」が使用でき、JSON形式は現時点ではカスタム・フォーマッタ扱い
  • Log Viewerはカスタム・フォーマッタには対応しておらず、そのためJSON形式のログは表示することができない
  • 現状、Admin ConsoleでJSON形式のログを表示するなら、Log ViewerではなくRaw Log Viewerの方を使った方がいい

だそうです(分かるような、分からないような…)。さらにPayaraのMike Croft (@croft) さんからは、この件は改善要望として取り上げるとのコメントをいただきました。

自作のJavaMailラッパーでiCloudメールにアクセスする

このエントリはJava Advent Calendar 2016の19日目です。そして今日は私の誕生日でもあります。昨日は川場 (@tkxlab) さんの「暗号処理をやってみよう!」でした。今日はJavaFX Advent Calendar 2016の方でも小惑星JavaFXで描画してみるチャレンジでエントリしていますが、こちらではJavaMailの話題で進めようと思います。

今回は、今年の6月頃にGitHubへ上げたままになっていた自作のJavaMailラッパーを手直しする過程で気づいた、iCloudメールへアクセスできない現象とその対策について取り上げます。こちらが自作のJavaMailラッパー、simplemailです。

github.com

simplemailはJavaMailを使ってメールの送信と受信の両方を行います。送信だけでなく受信もできるのが強みです。対応しているメールサービスは標準でOutlook.com、GmailiCloudメール、ドコモメール(iモードやspモードではない)の4種類、JavaMailのプロパティが書ければ拡張は無制限にできます。設定に関する情報が少ないiCloudメールやドコモメール(Contributed by 某李衣菜P)のJavaMailプロパティをあらかじめ用意してあるのも特長です。というか、そのつもりでした。

ところが、最近メンテナンスしている最中に、iCloudメールがつながらなくなっていることに気づきました。iCloudメールのIMAPサーバーが "A0 NO [AUTHENTICATIONFAILED]" というエラーを返して、認証できなくなってしまったのです。

原因はiOS 10にアップデートした際の2ファクタ認証でした。JavaMailはiOSの2ファクタ認証に対応していないため、2ファクタ認証を設定した状態ではiCloudSMTPサーバーやIMAPサーバーにログインできないのです。解決方法は2つあって、

  1. iOSの2ファクタ認証を無効にする
  2. App用パスワードを生成する

です(ソースが2ちゃんねるというのが何とも…ですが、結果としては合ってました)。私は両方試してみて、最終的にApp用パスワードを使うことにしました。App用パスワードはAppleアカウントの管理のセキュリティから生成することができます。生成されたApp用パスワードをApple IDのパスワードの代わりにJavaMailのSMTPまたはIMAPパスワードとして指定することで、以後App用パスワードを使ってJavaMailからiCloudメールへアクセスできるようになります。

Windows 10に付属しているメールとカレンダーもiCloudの2ファクタ認証には対応しておらず、同様にApp用パスワードを生成して使うことになります。Windows 10側の設定情報を覗いてみた感じでは、iCloudのカレンダーにはHTTPSでアクセスしているようですが、こちらもJavaからアクセスする場合はApp用パスワードが必要になるはずです。

2ファクタ認証はiOS 9からの機能で、iOS 10ではデフォルトになっているようです(少なくとも私はiOS 9時代に2ファクタ認証の設定をした覚えがありません)。iPhoneiOS 9からiOS 10へアップデートすると、2ファクタ認証用のSMSが送信されてもその場でiPhoneがSMSを拾って認証コードを読み取ってしまうため、2ファクタ認証に阻まれて初めて設定していたことに気づくようです。

明日は…やっぱ紹介しなきゃだめ?(よね)ThreeTen Extraの紹介 by @khasunuma です。いつもの「困ったときのDate and Time API」です。