厳選された本が10分で読める! 時短読書サービス「flier」を紹介

  • POST
はじめに この記事では、有識者により厳選された本の内容をわずか10分で読むことができる時短読書サービス「flier(フライヤー)」について紹介します。 flierとは 一般的に、ビジネス書や、実用書、教養書などの本を1冊読み終わるのに、4~6時間ほどかかると言われています。 flierは、プロのライターがまとめた2,600冊以上の本の要約が読むことができる、 月額制のサブスクリプションサービスです。 filerを利用することで、本の要点をわずか10分で抑えることができます。 flierの特徴 1. 厳選された2,600冊以上の本の要約が読み放題 flierで取り扱われる本は、flier社内のライターや、社外の有識者を含めた「選書委員会」により選定されています。 flierを利用することで、「繊維委員会」の有識者たちによって厳選されたビジネスパーソンが今読むべきビジネス書・実用書・教養書の要約を読むことができます。 また、新しい要約は1日に1冊のペースで追加されており、飽きることなく楽しむことができます。 2. 出版社/著者のチェック得ているので、要約の質が高い flierに公開されている要約は、各分野の専門のライターが要約し、公開前に全て出版社/著者の許諾を得ているので、質が高いです。 本の主旨がコンパクトに読みやすくまとめられているので、短時間で本の内容を把握したい方や、読書難度の高い本を読んで、挫折してしまった方からも好評を得ています。 3. 音声再生機能があるので、ながら学習ができる flierで公開されている本の要約には、音声再生機能が付いています。 音声再生機能を有効にすることで、運動中やクルマの運転中・通勤の移動中など、スキマ時間を活用した学習も可能です。 flierを使ってみた感想 取り扱われている本のカテゴリは17種類 Flierで取り扱われている本は以下の17カテゴリになります。 No カテゴリ 1 スキルアップ・キャリア 2 自己啓発・マインド 3 生産性・時間管理 4 リーダーシップ・マネジメント 5 経営戦略 6 起業・イノベーション 7 人事 8 マーケティング 9 産業・業界 10 グローバル 11 政治・経済 12 ファイナンス 13 テクノロジー・IT 14 サイエンス 15 リベラルアーツ 16 健康・フィットネス 17 トレンド ビジネス書が主体なので、スキルアップ・キャリア、自己啓発・マインドなどは取り扱っている本の数もかなり多いという印象です。

Log4Jで特定のライブラリのログ出力を無効化する

  • POST
Log4Jで特定のライブラリのログ出力を無効化する はじめに Javaのログ出力ライブラリ「Apache Log4j」にて、特定のライブラリのログメッセージの出力を無効化する方法を紹介します。 特定のライブラリのログメッセージを無効化 以下にあるように、<Logger name="xxx.xxx" level="OFF"/> を設定することで、指定したライブラリのログメッセージのみを無効にすることができます。 <?xml version="1.0" encoding="UTF-8"?> <Configuration packages="jp.co.logger" status="off"> <Properties> <Property name="encoding">UTF-8</Property> </Properties> <Appenders> <Console name="test"> <PatternLayout pattern="${output-format}" charset="${encoding}" /> </Console> </Appenders> <Loggers> <!-- 特定のライブラリのログ出力を無効(xxx.xxxに対象のライブラリを指定) --> <Logger name="xxx.xxx" level="OFF"/> </Loggers> </Configuration> https://stackoverflow.com/questions/23996762/disable-log-output-from-libraries おわりに 本記事では、Javaのログ出力ライブラリ「Apache Log4j」にて、特定のライブラリのログメッセージの出力を無効化する方法を紹介しました。 a8adscript('body').showAd({"req": {"mat":"3HREPM+6UHH82+279M+HUSFL","alt":"商品リンク","id":"3IzcOOW-g7-u2A2FzR"},"goods": {"ejp":"h"+"ttps://ebookjapan.yahoo.co.jp/books/721208/","imu":"h"+"ttps://cache2-ebookjapan.akamaized.net/contents/thumb/m/F0100169654961.jpg?1663322311000"}});

Azure FunctionsにLog4Jの脆弱性の暫定対策を実施

  • POST
Azure FunctionsにLog4Jの脆弱性の暫定対策を実施 はじめに 2021年12月10日に発覚したJavaのログ出力ライブラリ「Apache Log4j」にて、深刻な脆弱性「CVE-2021-44228」があることが発覚しています。 https://milestone-of-se.nesuke.com/sv-advanced/sv-security/cve-2021-44228-log4shell-logjam/ 上記について、暫定的な回避策として、以下の2点が公開されています。 Log4j バージョン 2.10 およびそれ以降 Log4j を実行する Java 仮想マシンを起動時に「log4j2.formatMsgNoLookups」という JVM フラグオプションを指定する 環境変数「LOG4J_FORMAT_MSG_NO_LOOKUPS」を「true」に設定する Log4j バージョン2.10 より前 JndiLookup クラスをクラスパスから削除する https://msrc-blog.microsoft.com/2021/12/11/microsofts-response-to-cve-2021-44228-apache-log4j2/ 通常の物理サーバまたは、仮想サーバ上でJavaアプリケーションを動作させているケースと違い、 サーバレスのAzure Functionsの場合、どのように設定すればいいのか分からないという方もいるかと思われます。 本記事では、Azure Functions に対して、上記の1.Log4j バージョン 2.10 およびそれ以降への回避策を設定する方法を紹介します。 Azure Functionsのアプリケーション設定に環境変数を追加 Azure Functionsには、アプリケーション設定という、Functions内で利用することができる環境変数を定義することができる項目があります。 以下のAzure CLIコマンドを実行することで、Azure Functionsのアプリケーション設定に変数を追加することができます。 az webapp config appsettings set -g "リソースグループ名" -n "関数アプリ名" --settings JAVA_OPTS='-Dlog4j2.formatMsgNoLookups=true' az webapp config appsettings set -g "リソースグループ名" -n "関数アプリ名" --settings LOG4J_FORMAT_MSG_NO_LOOKUPS='true' おわりに 本記事では、Azure FunctionsにLog4Jの脆弱性の暫定対策を設定する方法を紹介しました、

Service Bus Queues Triggerのメッセージ処理順がFIFOにならない事象

  • POST
Service Bus Queues Triggerのメッセージ処理順がFIFOにならない事 はじめに Service Bus Queues Triggerを用いたAzure Functionsにおいて、メッセージ処理順がキューに送信された順番にならず、FIFOにならないケースがあります。 本記事では、Service Bus Queues Triggerのメッセージ処理順がFIFOにならない事象と対策について、ご紹介します。 Service Bus Queues Triggerのメッセージ処理順がFIFOにならない原因 Service Bus TriggerのFunctionsはPeek&LockというモードでService Busからのメッセージの受信とロックを行います。 https://docs.microsoft.com/ja-jp/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock Service Busを利用していると際に、Service BusとFunctionsからのネットワークが切断されたりすると、 Message processing errorというエラーログが出力されます。 https://stackoverflow.com/questions/65999984/azure-function-v3-net-core-3-1-servicebustrigger-message-processing-error-act Peek&Lockモードの場合、特定のスレッド/プロセスにて受信対象のメッセージのロック中に Message processing errorが発生すると、次回起動時に当該メッセージがロックされたままになっているために、後続のメッセージを先に受信してしまいます。 Service Busのセッションを用いた対策 上記のケースへの対応として、Service Busにはセッションという機能があります。 https://devblogs.microsoft.com/premier-developer/ordering-messages-in-azure-service-bus/ https://docs.microsoft.com/ja-jp/azure/service-bus-messaging/message-sessions 上記のドキュメントの内容を要約すると、以下のような挙動になるものと思われます。 Service Busのキューを作成する際に、セッションを有効にして作成すると、送信側はメッセージをキューに挿入する際に、セッションIDを付与することが可能になります。 受信側のFunctionsでService Bus Triggerの属性 IsSessionsEnabled を有効にすると、セッションが付与されたメッセージを受信することが可能になります。 https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-service-bus-trigger?tabs=csharp#configuration セッションを有効にするとFunctionsはメッセージ受信時に、セッションIDが同じメッセージを全て、排他ロックします。 Message processing error などエラーが発生した場合は、メッセージのロックを解除して、同じメッセージを受信するため、FIFOを維持することができます。 おわりに この記事では、Service Bus Queues Triggerのメッセージ処理順がFIFOにならない事象と対策について、ご紹介しました。 Azureの各サービスは、多数のオプションが用意されているので、要件に応じて、適切なオプションを設定するようにしましょう。 本サイトへのご意見、お問い合わせなどありましたらこちらからご連絡下さい。 お問合せフォーム a8adscript('body').showAd({"req": {"mat":"3HREPM+6UHH82+279M+HUSFL","alt":"商品リンク","id":"3IzcOOW-g7-u2A1CfX"},"goods": {"ejp":"h"+"ttps://ebookjapan.yahoo.co.jp/books/789749/","imu":"h"+"ttps://cache2-ebookjapan.akamaized.net/contents/thumb/m/J6100281917861.jpg?1696410860000"}}); a8adscript('body').showAd({"req": {"mat":"3HREPM+6UHH82+279M+HUSFL","alt":"商品リンク","id":"3IzcOOW-g7-u2A2FzR"},"goods": {"ejp":"h"+"ttps://ebookjapan.yahoo.co.jp/books/721208/","imu":"h"+"ttps://cache2-ebookjapan.akamaized.net/contents/thumb/m/F0100169654961.jpg?1663322311000"}});

Phrase Expressに代わるスニペットツール! Windows版テキスト拡張ツール「aText」入門

  • POST
Phrase Expressに代わるスニペットツール! Windows版テキスト拡張ツール「aText」入門 はじめに aTextは、Tran Ky Nam Softwareが開発した特定のキーを入力することで、予め設定したスニペット(定型文)を挿入したり、設定したスクリプトを起動させることができるテキスト拡張ツールです。 https://www.trankynam.com 2011年Mac OS用に提供されていましたが、2021年現在、Windowsでも利用できるようになっています。 本記事では、Windwos版のaTextのインストール方法と、使い方について紹介します。 インストール方法 Windwos版はMSストアからインストールすることができます。 https://www.microsoft.com/ja-jp/p/atext/9n68hc1srr0k?rtc=1&activetab=pivot:overviewtab インストールは以下の画面遷移に従って、インストールします。 インストール後は、スタートメニューから、すべてのプログラム→ アプリ → aTextの画面遷移することで、アプリを起動することができます。 aTextの使い方 aTextではスニペットをグループ単位で管理することができます。 デフォルトではExamplesグループの配下に、Basic、Arrows、Date/Time Variable、Field、Scriptsというサブグループが用意されており、 各サブグループ配下にスニペットが登録されています。 グループとサブグループには配下のスニペットに対して、共通の設定をすることができます。 グループの作成は以下のように実施します。 サブグループの作成は対象のグループ配下で右クリックを実施し、 New SubGroupを選択します。 スニペットを作成するときは、New Snipettをクリックします。 Abbreviationにスニペットを起動する際の略語を指定します。 以下の例では、hlwと入力することで、Hello World.というテキストを挿入することができます。 Tips デフォルトで登録されているExamplesは、画面上部のHelpメニューからいつでも追加することができます。 そのため、aTextに慣れたらExamplesは、削除しても問題ありません。 スニペットの種類 aTextでは以下の5種類のスニペットを登録することができます。 Plain Text Rich Text Html Script Picture Plain Text Plain Textは事前に登録した平文のテキストを挿入する場合に使用するスニペットです。 Rich Text Rich Textは文字の色や大きさなどフォント情報を含んだ装飾テキストを挿入する場合に使用するスニペットです。 また、テキストだけでなく、画像も挿入することができます。 Html HtmlはHTML形式で指定した装飾テキストを挿入する場合に使用するスニペットです。 Script Scriptは、Windows Batchや、Linux shell、Python、JavaScriptなどスニペットに指定したスクリプト言語を実行する場合に使用するスニペットです。 以下の例は、\rpwと入力した際に、ランダムな文字列を出力するWindwos Batchを実行するスニペットです。 Picture Picureは指定した画像を挿入する場合に使用するスニペットです。 画像自体を挿入するか、画像のファイルパスをテキストとして挿入するかを指定することができます。 組み込みスニペットを追加 aTextにはいくつかのスニペットがデフォルトで用意されています。

Intellij IDEAのVMプラグインでCtrl + VおよびCtrl + Cが機能しない場合の対象

  • POST
Intellij IDEAのVMプラグインでCtrl + VおよびCtrl + Cが機能しない場合の対象 はじめに 本記事では、Intellij IDEAのVMプラグインでCtrl + VおよびCtrl + Cが機能しない場合の対処法について紹介します。 原因 Intellij IDEAのVMプラグインが有効になっていると、 Ctrl + VおよびCtrl + Cを使って、貼り付けおよびコピーができなくなります。 https://pleiades.io/help/idea/using-product-as-the-vim-editor.html これは、VIMプラグインをインストールしたことによってIDEAのショートカット設定でCtrl + VおよびCtrl + CのハンドラーがデフォルトのIDEではなく、VIMに変更されているためです。 IDEの設定画面からEditorでVim Emulationを実行すると、 それぞれのショートカットに割り当てられているハンドラーが確認できます。 上記の画像にあるように、ハンドラーがVIMプラグインに変更されてしまっていることが分かります。 対処方法 対処方法は至ってシンプルで、以下のように別のショートカットを使用します。 コピー : Ctrl + Cの代わりに、Ctrl + Insert 貼り付け : Ctrl + Vの代わりに、Shift + Insert 通常VMを使用する場合は、コピーはy、貼り付けはpですが、 上記のショートカットを使用するとVIMのクリップボードではなく、システムのクリップボードからコピー・アンド・ペーストを行うことができるようになります。 https://qastack.jp/ubuntu/568662/ctrl-v-and-ctrl-c-doesnt-work-in-intellij-idea-14-0-2

Azure DevOpsのパイプラインからAppServiceのデプロイ

  • POST
Azure DevOpsのパイプラインからAppServiceへのデプロイ はじめに 本記事では、マイクロソフトから提供されているサンプルWebアプリケーションを使って,Azure DevOpsでのリポジトリの作成~パイプラインの作成からAppServiceの デプロイを行うまでの一連の操作を記載する。 AppServiceにWebアプリケーションを作成 以下の手順で、Webアプリケーションを作成。 DebOpsで組織を作成 DevOps用のプロジェクトの作成 リポジトリの作成 サービスコネクションを作成 サンプルプログラムを取得。 以下のサイトから、サンプルプログラムを取得してZIPダウンロードする。 先程クローンしたローカルリポジトリに展開する。 https://github.com/MicrosoftDocs/pipelines-java コミットを行い、その後リモートリポジトリにPushする。 $ git add . $ git commit -m "Sample WebAppを追加" $ git push パイプラインYAML作成 以下のパイプラインを作成する。 trigger: - master variables: # Azure Resource Manager connection created during pipeline creation azureSubscription: '作成したサービスコネクション名を指定' # Web app Type webAppType : 'webAppLinux' # Web app name webAppName: 'sample-web-application' # Environment name environmentName: 'sample-enviroment' # Agent VM image name vmImageName: 'ubuntu-latest' stages: - stage: Build displayName: 'Build stage' jobs: - job: Debug displayName: 'Show debug message' steps: - script: | echo "Subscription : $(azureSubscription)" echo "Web App Name : $(webAppName)" echo "Environment Name : $(environmentName)" echo "Vm Image Name : $(vmImageName)" echo "Pipeline Workspace Name : $(Pipeline.

SQL Serverに登録日時と更新日時を自動で設定する方法

  • POST
はじめに 本記事は、SQL Serverにおいて、INSERT時に登録日時を、UPDATE時に更新日時を自動で登録する方法を紹介します。 INSERT時に登録日時を自動登録 対象のテーブルに対して、以下のSQLを実行することで、レコードの登録日時の自動登録が可能になります。 ALTER TABLE [テーブル名] ADD DEFAULT (GETDATE()) FOR [登録日時のカラム名] ADD DEFAULT はテーブルのカラムにデフォルト値を設定することができます。 GETDATE() はデータベースシステムのタイムスタンプを返しており、ADD DEFAULT のデフォルト値に指定することで、レコードの登録日時を自動登録することができます。 UPDATE時に更新日時を自動登録 対象のテーブルに対して、以下のSQLを実行することで、レコードの更新日時の自動登録が可能になります。 CREATE OR ALTER TRIGGER [トリガー名] ON [テーブル名] AFTER UPDATE AS BEGIN UPDATE [テーブル名] SET [更新日時のカラム名] = GETDATE() WHERE [プライマリキー] IN (SELECT [プライマリーキー] FROM inserted) END CREATE TRIGGER でレコードがUPDATEされたときに更新日時を自動登録するトリガーを作成することができます。 SELECT [プライマリーキー] FROM inserted の箇所についてですが、 insertedテーブルには、INSERT ステートメントおよび UPDATE ステートメントの実行で影響を受けた行のコピーが格納されています。 上記のSQLを実行すると、inserted テーブル内に存在するレコードを更新する際に、更新日時を自動登録するトリガーが作成されます。 おわりに 本記事は、SQL Serverにおいて、INSERT時に登録日時を、UPDATE時に更新日時を自動で登録する方法を紹介しました。 本記事が、SQL Serverを利用しているエンジニアの参考になれば、幸いです。 本サイトへのご意見、お問い合わせなどありましたらこちらからご連絡下さい。 お問合せフォーム a8adscript('body').