mamori017.log

歴史的クソブログ

サマータイムの調整時間をTimeZoneInfo.ConvertTimeで変換した

サマータイムについて話をしていて、仮に実施されるとなると結局UTCオフセット時間ありきで考えるのが良い*1という話になり、 既存のDateTime型データはTimeSpanを使用してDateTimeOffset型として扱うという方針でその場が何となく纏まりました。 その話の流…

リンクとして追加したコードを含むプロジェクトをAppveyorでビルドする

.NET Frameworkのプロジェクトで一部のコードを別のソリューションからリンクで参照するということはよくあるケースだと思います。 GitHubでバージョン管理している.NETプロジェクトはAppVeyorを使用してビルドしているのですが、 AppVeyorでこの関係性を持…

Visual Studioのデバッグシンボルをローカルにキャッシュした

某所からVisual Studioのデバッグが遅いと言われたので確認してみたところ、 デバッグシンボルがローカルにキャッシュされるよう設定されていなかった。*1 これではデバッグの都度サーバーからシンボルを読み込むことになり効率が悪いので、デバッグシンボル…

ClickOnceアプリケーションの配布をGitHub Pagesでできないか試したら警告が来た

ClickOnceアプリケーションの配布はHTTPで更新ファイルを参照できさえすれば動作するはず。 それならGitHubのリポジトリ上でも実現できるのではないかと思ったのでやってみました。 といっても既にGitHubでの運用を検討されている方はおられるわけで。 どう…

DataGridView上のデータを絞り込み表示する

DataGridViewに表示されているデータに対して、絞り込み条件を指定し表示させたい場合は BindingSourceクラスのFilterプロパティが使用できる。 BindingSource.Filter プロパティ (System.Windows.Forms) 手順 DataGridViewにバインドしたDataSourceをDataTa…

ヤマハRTX1200から出力したログをLogstashを使用してelasticsearchに登録、Kibanaで可視化してみた

ヤマハRTX1200のsyslogにURLフィルターのログを出力するようにしています。 このURLフィルターのログをLogstashを使用してelasticsearchに登録し、kibanaで可視化してみました。 使用するログ syslog全体から以下のログを抜き出しテストで使用しました。 201…

Elasticsearchをアップデートしたら起動できなくなったのでKuromojiプラグインを再インストールした

Ubuntuのパッケージを更新したところ、ElasticsearchとKibanaのバージョンが5.6.7にアップデートされていました。 OS再起動ののちElasticsearchとKibanaの起動状態を見てみたところElasticsearchだけ起動していません。 $ sudo service --status-all | grep …

UbuntuにJenkinsをインストールした

Ubuntuの環境を新しく作ることにしたので手始めにJenkinsをインストールしました。 手順はJenkinsのWikiを参照しました。 Installing Jenkins on Ubuntu - Jenkins - Jenkins Wiki こちらのページの手順通りにコマンドを実行しましたが、扱いとしては古いよ…

Function Appにリクエストクォータの上限値を設定する

Function Appにデプロイしている関数にHTTPリクエストをトリガーとしているものがあるため、 念のためリクエストクォータの上限値を設定することにしました。 docs.microsoft.com この設定を行うと、1日あたりのリソースの使用量が設定値に到達すると関数が…

Azure Function Appの利用料金を計算した

Function Appの価格例はAzureのページにあるのですが、 いまいちわからなかったのでAzureにデプロイ済みの関数を対象に料金試算してみました。 azure.microsoft.com リージョン デプロイ先に使用している西日本を選択したので、料金レートも2018/1/19時点の…

Azure Function AppでHTMLコードを出力する

using System; using System.Net; using System.Net.Http.Headers; public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) { // ステータスコード HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); // 表示さ</httpresponsemessage>…

simplexml_load_fileでRSSから最新エントリの情報を取得する

PHP

このブログの最新記事の更新日とタイトルを抜き出してハイパーリンクを作成したかったので、 PHPのsimplexml_load_fileを使用してRSSをパースしました。 PHP: simplexml_load_file - Manual <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> </meta></meta></head></html>

Google Home MiniとIFTTTを使ってツイートしてみた

Google Home Miniを買ったので、IFTTTを使って喋った内容がツイートできるようにしました。 いつものように「OK、Google」でGoogle Assistantを呼び出し、 「ツイート」と言ったあとに続く言葉をツイートしてもらうように設定してみました。 言語は日本語を…

NULLは比較演算子では検索できない

SQL

NULLに対して検索を行いたい場合はIS (NOT) NULLを使用しなければいけません。 NULLは通常の値とは異なる*1ので、NULLに対して比較演算子("="や"<>")を使用しても結果に反映されません。 ColumnA ColumnB 100 100 200 NULL 300 300 400 400 上記のテーブルに…

Amazon Athenaを使ってみる

AWS

Amazon S3に保管したログなどをSQLで解析できるというAmazon Athenaを触ってみました。 コマンドラインからだと結果が見づらいようなのでマネジメントコンソールから見てみます。 今回は事前に手持ちのIISログをS3バケットに放り込んでいます。 また、IISロ…

AWS Lambdaでタイムアウトを発生させてみる

AWS

AWS Lambdaで関数実行中にタイムアウトするとどうなるのか見たことが無かったのでためしにやってみました。 Lambdaで空の関数を作成し、ランタイムにPython3.6を選択したときに作成されるコードをsleepで10秒止めてみます。 import time def lambda_handler(…

GitリポジトリにAWS CodeCommitを使用する

AWS CodeCommitを使用できるようになるまでの手順。 IAM(Identity and Access Management)の設定 グループの作成 IAM(Identity and Access Management)のダッシュボードから[グループ]を選択する。 [新しいグループの作成]を選択する。 グループ名を入力し[…

AWS Summit Tokyo 2017に行った

AWS

www.awssummit.tokyo 今更なんだけど昨年に続きAWS Summitに行った。 今年は事前予約をしていたものの、 色々あって1週間前まで行けるか微妙な中だったので無事参加できて良かった。 現地で色々書いていたけど、既に講演動画と資料が公開されているので感想…

DataGridViewにチェックボックスを追加する

DataGridView上にデータベースから取得したデータとチェックボックスを表示させたい場合、 バインドするDataTableにチェックボックス列を追加することで表示できる。 Dim objDataTable As DataTable Dim objCol As DataColumn ' チェックボックス列を作成 ob…

ASPでSessionオブジェクトから変数名と値を取得する

ASP

ASPでSessionオブジェクトから変数名と値を取得する方法。デバッグの時には大抵書いているコード。 Dim strKey For Each strKey in Session.Contents Response.Write(strKey & ":" & Session.Contents(strKey) & "<BR>") Next

SQLでAVGとCOUNTはNULLを無視する

SQL

ColumnA ColumnB 100 100 200 200 300 300 400 NULL 500 500 テーブルが上記の状態のとき、ColumnA、ColumnBに対して集合関数を使用してみると以下のような結果が出力される。 ColumnA SUM MAX MIN AVG COUNT 1500 500 100 300 5 ColumnB SUM MAX MIN AVG CO…

UPDATE文でCASE式を使う

SQL

SQLのUPDATE文で、別の列の状態から更新する列の値を設定したいときなどにはSET句にCASE式が使える。 UPDATE table SET column_A = CASE WHEN column_B = 0 THEN 'column_B is 0' WHEN column_B = 1 THEN 'column_B is 1' WHEN column_B = 2 THEN 'column_B …

Ubuntu上のJenkinsをアップデートする

Jenkinsのトップページに新しいバージョンの利用可能通知が表示されている場合のアップデート方法。 アップデートファイルのダウンロード トップページに表示されている通知のダウンロードリンクからjenkins.warをダウンロードする。 Jenkinsを停止する sudo…

Visual Studio CodeでPHPファイルを開くと警告が出るときの対応

Windows版のVisual Studio CodeでPHPファイルを開くと、Cannot calidate since no PHP executable is set. Use the setting php.validate.executablePath' to configure PHP executable.と警告が出る。 これはVisual Studio CodeにPHPの実行ファイルのパスが…

LogstashをインストールしてElasticsearchにデータを登録する

(2018/02/18) LogstashからElasticsearchへのデータ登録については新しい記事があります。 mamori017.hatenablog.com 前提 Elasticsearch、Kibanaがインストール済みの環境にLogstashをインストールすることを前提にしています。 Logstash www.elastic.co リ…

Ubuntu 16.04にElasticSearch 5.3.0とKibana 5.3.0をインストールする

OpenJDK ElasticsearchはJava 8が必要になるのでOpenJDKを使用してインストールする。 $ apt-get install openjdk-8-jdk Javaバージョンを確認する。 ubuntu@ubuntu:~$ java -version openjdk version "1.8.0_121" OpenJDK Runtime Environment (build 1.8.0…

Microsoft Edgeで取得できるkeydown・keyupイベントのキーコード一覧

Microsoft Edge(38.14393.0.0)上でjQueryのkeydown、keyupイベントからキーコードを取得してみたので調べた。 キー キーコード キー メモ 229 同時押ししないとキーコードが取得できないキーを押した場合に出力。 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 5…

Opencoverのカバレッジチェック対象を名前空間で除外する

OpenCoverでコードカバレッジを計測する対象がVB.NETのプロジェクトのとき、 テストプロジェクトとプロジェクト内のMy Projectディレクトリ配下のコードについては カバレッジの計測は不要と考えたので-filter:パラメータを使用して除外することにした。 git…