Kazuki.io

プログラミングやITガジェットなどの備忘録だよ。人の役に立てばいいな。

Visual Studio 2017 Installer コントロールパネルに表示される項目を設定する

Visual Studioでインストーラを作成するときに、色々な項目を設定したくなると思います。例えばインストールした後のコントロールパネルに表示される項目など…

 

コントロールパネルに表示される項目を確認しましょう。

1. アイコン画像

2. アプリ名

3. 発行元

4. バージョン

f:id:kazukisaito:20180828214331p:plain

Visual Studio での設定は以下の通りです。

Setup Projectを一度選択するとプロパティがすぐ下に表示されます。

 

f:id:kazukisaito:20180828215352p:plain

1のAddRemoveProgramsIconはicoファイルを指定します。

私はアイコンコンバータを使用して、pngからicoに変換しています。

service.tree-web.net

実際に上記設定でビルドしインストールするとこのように表示されます。

アイコンは黒猫のアイコンを充てました。

f:id:kazukisaito:20180828215830p:plain

 

ご参考までにどうぞ。

 

www.kazukiio.com

fbprophetで時系列分析をしてみた。

まえがき

最近、プログラミングのネタとして、Pythonと機械学習なるものを勉強中です。
仕事柄、時系列分析をできると面白いネタができるんじゃないかと探してみるとありました! その名もfbprophet!

facebookが作ったPythonとRのライブラリでだれでも簡単に時系列分析ができるみたいです。
facebook.github.io
github.com

本当にそんなに簡単にできるのかよってことでトライ!
今回は超シンプルに過去データからトレンドを学習して未来のデータを予測することにチャレンジしてみます!
まずは過去約3年分のデータから未来の14日分を予測する…ということをやってみようと思います。

ソースコード

1. 必要なモジュールをインポートします。
codecsはShif-JIS読み込みように使っています。pandas.reas_csvだと調子わるかったので…

import pandas as pd
import matplotlib.pyplot as plt
import codecs
from fbprophet import Prophet 


2. 分析元のデータを読み込みます。
データはcsvで予め作っておきました。

read_path = 'data/raw/'
data_file = 'data.csv'
all_data = pd.DataFrame()

with codecs.open(read_path+data_file, "r","Shift-JIS", "ignore") as f:
    data = pd.read_table(f, delimiter=",", skiprows=1, index_col=0, usecols=[0, 1])
    data.index = pd.to_datetime(data.index)
    data.columns = ['value']
    all_data = pd.concat([all_data, data])
    
all_data = all_data.dropna(how='all')

3. データフレームを整形します。

df= pd.DataFrame()
df['ds'] = all_data.index
df['y'] = all_data.value.values

4. モデルを作成します。

m = Prophet()

5. モデルにデータフレームの内容を学習してもらいます。

m.fit(df)


6. 将来を予測してもらいましょう。ここでは14日分を予測します。

future = m.make_future_dataframe(periods=14)
forecast = m.predict(future)

7.予測したデータをグラフ化してみます。

m.plot(forecast)
plt.xlim(future.ds.iloc[-365-30], future.ds.iloc[-1]) # lloc 行ラベル ilo行番
plt.xlabel('Date')
plt.ylabel('High')
plt.show()

出力結果は以下のとおりです。なんとなく、「っぽい」感じでグラフが描画されました。
f:id:kazukisaito:20180823133611p:plain

とりあえず、動かしたい場合のためにソースを貼っておきます。

fbprophet_study

テストデータはこちら
data.csv · GitHub

感想

本家ドキュメントやQiitaを見ながらコピーしつつ、意味を調べつつ勉強しました。
当方Pythonをほぼ知らない状態から勉強したため、時間はかかりましたが同時にPythonの魅力にも触れることができました。
こんなに簡単に分析できるなんて…

次回は周期設定や外部変数などを使ってもう少し深い分析をしたいと思います。

Visual Studio 2017 Installer ProjectがIIS10に対応してるぞ!

以前、Installer Project作成の記事を書きました。

 

kazukiio.hatenablog.com

 作成したWebアプリのインストーラでインストールしようとすると、IIS10(Windows10, Windows Server 2016)に対応していないせいか、以下のメッセージが表示され失敗します。

f:id:kazukisaito:20180819230509j:plain

エラーメッセージがWindows2000に対してのメッセージのようですが、私がインストールしようとしていたPCはWindows 10 !

 

よくよく調べてみるとVisual Studio Installer Projectの初期パラメータによくない記述が…

④の部分に注目です。

f:id:kazukisaito:20180819230704j:plain

IIS 10の「10」はHEXで表現すると「A」。

数値として認識されないのか、「そんなバージョン知らんすわ。」って言われているそうな。

④の式を以下に設定するとインストールができた。

((IISMAJORVERSION >= "#5" AND IISMINORVERSION >= "#1") OR IISMAJORVERSION >= "#6") OR IISMAJORVERSION = "#10"

 これで無事に問題解決…

 

先日PCのバッテリーが死んでPCのセットアップ中、Visual Studio InstallerProjectをインストールしようとWebページをみてみると…

f:id:kazukisaito:20180819231155p:plain

 

Version 0.8.8からIIS 10を認識してくれるようになったようです。

めでたし。