2015年9月10日木曜日

redmine チケット登録 重い

redmine のチケットを登録が重い!


原因はチケット登録時のメール送信


回避するにはconfiguration.ymlのメール設定を以下のように変更する。


  email_delivery:
    delivery_method: :async_smtp
    smtp_settings:     
      address: "vXXXX.XXX.co.jp"
      port: 25


断然早くなる!

なんだけど、メールがいっこうに届かない。

なんど設定を変えてもだめで、OS再起動したら届くようになった。

Apacheの再起動だけだとだめなの?


はまりました。








Redmineに「ニコカレ」プラグインをインストール

先ほどのagile pluginに引き続き
Redmineにredmine_nikoca_reをインストールしてみました。


作業のながれ

 1.プラグインのダウンロード
 2.フォルダコピー
 3.コマンドラインからインストール
 4.動作確認



1.プラグインのダウンロード
  gitからZipファイルをダウンロード
  https://github.com/yuuu/redmine_nikoca_re
  redmine_nikoca_re-master.zip


2.ファイルコピー
 ダウンロードしたZipファイルを解凍
 redmine_nikoca_re-masterフォルダを以下のフォルダ直下にコピー
 C:\BitNami\redmine-3.0.4-1\apps\redmine\htdocs\plugins

3.コマンドラインからインストール
 bundle exe rake redmine:plugins:migrate NAME=redmine_nikoca_re RAILS_ENV=production


C:\BitNami\redmine-3.0.4-1\apps\redmine\htdocs\plugins>bundle exe rake redmine:p
lugins NAME=redmine_nikoca_re RAILS_ENV=production
(in C:/BitNami/redmine-3.0.4-1/apps/redmine/htdocs)
DL is deprecated, please use Fiddle
Migrating redmine_nikoca_re (Redmine Nikoca Re plugin)...
== 5 CreateNikoFaces: migrating ===============================================
-- create_table(:niko_faces)
   -> 0.0080s
== 5 CreateNikoFaces: migrated (0.0100s) ======================================

== 6 CreateNikoResponses: migrating ===========================================
-- create_table(:niko_responses)
   -> 0.0050s
== 6 CreateNikoResponses: migrated (0.0060s) ==================================

== 7 AddUnreadToNikoResponses: migrating ======================================
-- add_column(:niko_responses, :unread, :boolean)
   -> 0.0390s
== 7 AddUnreadToNikoResponses: migrated (0.0410s) =============================



4.動作確認
 redmineを再起動したあとで、Webブラウザからプラグインを設定
 ニコカレタグを開くと・・・登録できない・・・(涙)だめだ!


Redmineにアジャイルプラグインをインストール

RedmineにAgile Pluginをインストールしました。

チーム内で利用しているRedmineにAgile開発ツールの1つ「かんばん」を組み込みたい。
BitNamiがWindows向けにAllInOneパッケージとして提供しているRedmineにどう組み込むか?ネットを漁ってもドンピシャがなかったので書いておきます。

動作環境
 OS:Windows Server 2008 R2 Standard SP1 64bit
  Redmine version 3.0.4.stable
  Ruby version 2.0.0-p645
  Rails version 4.2.3
  Database Mysql2
 

作業は
  1.プラグインのダウンロード
  2.フォルダコピー
  3.コマンドラインからインストール
  4.動作確認
の順で行いました。


2015年8月31日月曜日

Git スタートアップ


Git使ってソース管理することに、Webサーバ立ち上げて、HTTP経由でPull,Pushできればいいのだけど、Httpより早いWindows共有フォルダで管理します。以下、インストメモ


1. インストール
 1.1. Gitインストール
  以下のサイトからインストール
  https://git-for-windows.github.io/

 1.2. TortoiseGitインストール
  GitをGUIベースで簡単に操作するためのツール
  https://tortoisegit.org/download/

 1.3. TortoiseGit日本語パッケージインストール
  https://tortoisegit.org/download/

 1.4. Gitの言語、ユーザーアカウントの設定
  TortoiseGitの設定から
  General > Language:日本語(日本)
  Git > ユーザー情報:名前、メール

2. リポジトリ作成
 2.1. Windows共有フォルダ作成
  新しいフォルダをメンバーが見える場所へ作成
  hogehoge.git
  フォルダの名前には「.git」を付けるべし


 2.2. リポジトリ作成
  フォルダを右クリックし、Git ここにリポジトリを作成を選択


  リポジトリの作成ダイアログで[Bareの生成]にチェックし[OK]ボタンを選択

これでOK!

2015年8月17日月曜日

Windows Azure モバイルサービス作成

WindowsAzureにモバイルサービスを作成する際の手順をまとめた。

ポイントはバックエンドにJavaScript
SQLデータベースサーバーの照合順序


■モバイルサービスの作成
 url:debug-hogehoge
 データベース:新しいSQLデータベースインスタンスを作成する。
 地域:西日本
 バックエンド:JavaScript
  ※選択肢はJavaScriptとC#の2つ、C#にするとWebAPIが利用できない。
 プッシュの詳細設定の構成:チェック

■通知ハブ
 名前空間:新しい名前空間を作成する
 名前空間名:debug-hogehoge
 通知ハブ名:debug-hogehoge

■データベースの設定の指定
 名前:debug-machisapo_db
 サーバー:新しいSQLデータベースサーバー
 サーバーログイン名:
 サーバーログインパスワード:
 パスワードの確認:
 地域:日本(西)
 データベースの詳細設定を構成します:チェック

■データベースの詳細設定
 サービスプラン:BASIC
 パフォーマンスレベル:Basic
 照合順序:Japanese_XJIS_100_CI_AI
  CI(Case Insensitive)
   大文字、小文字を区別しない。全角アルファベットの大文字、小文字も区別しない。 例:「A」と「a」は同じ
  AI(Accent Insensitive)
   アクセント、濁音、破裂音を区別しない。半角カナの濁音、破裂音も区別しない。 例:「ハ」、「バ」、「パ」は同じ

照合順序確認SQL
Select DATABASEPROPERTYEX('db_name', 'collation')

2015年8月7日金曜日

JenkinsとActiveDirectory認証をつなげる


Jenkinsにログイン機能を実装する。独自にユーザ管理するとメンバー追加等のメンテナンスに時間を取られるので、社内のActive Directoryと連携することに。


環境
 ・ OS:Windows Server 2012 Standard
 ・ Jenkins:1.6.23


大まかな手順
 1. プロキシ設定
 2. Active Directory plugin インストール
 3. インストールしたプラグインの確認
 4. Active Directory pluginの設定
 5. 動作確認



1. プロキシ設定
 社内LAN上にあるJenkinsにhttps経由でプラグインをインストールできるようプロキシを設定する。
  [Jenkinsの管理] > [プラグインの管理]から
  



2. Active Directory plugin インストール
 フィルターにActiveを入力し、一覧から[Active Directory plugin]を選択。そして、インストール。


3. インストールしたプラグインの確認


4. Active Directory pluginの設定
  [Jenkinsの管理] > [グローバルセキュリティの設定]


5. 動作確認
 Jenkinsに再度アクセス




 成功!!


2015年8月5日水曜日

VisualStudio2015 ASP.NET5 MVC6

あるユーザ様へデータ登録用のWebサイトを提供することになった。ここ6,7年Web開発から遠ざかっていたこともあり、顧客要件を満たし、納期内、予算内の開発を手助けしてくれる開発技術がわからない・・・。

WebサイトをWindowsAzure上に構築するため、VisualStudio系のインフラを採用する。あとは何で作るか?

・ASP.NET5
クロスプラットフォーム
・SilverLight
クロスブラウザサポート。Windows10Edgeのサポートなし
・WPF,WinForm
Windowsシリーズ.NETFrameworkが必要

机上であれやこれやと想像しても埒があかないので、実際に触れてみることに。
2015年7月にリリースされたVisualStudio2015、ASP.NET5がどんな動きをするのか?遊んでみました。

目的
 MSDNのサイトにあるTodoListサンプルサイトを作る。

ターゲット
 VisualStudio2015
 .NETFramework4.5.1
 MVC6

大まかな流れ
 1.プロジェクトの作成
 2.DB接続の設定
 3.動作確認
 4.ソース編集
 5.TodoListテーブル作成
 6.EntityFramework7.0のマイグレーション
 7.動作確認

1.プロジェクトの作成
 プロジェクト:ASP.NET Webアプリケーション
 ASP.NET5テンプレート:WebApplication
 ※.NETFrameworkを4.6に指定したがASP.NET5.0は4.5.1にしか対応していない。
  だから、project.jsonはDNX451。

 Coreは対象としないので、project.jsonの"frameworks"からdnxcore50削除。

"frameworks": {
"dnx451": {}
},

2.DB接続の設定
 config.jsonにあるDB接続を以下の設定とする。
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=.\\SQLEXPRESS;Database=aspnet5-TodoList;Trusted_Connection=True;MultipleActiveResultSets=true"
    }
  }


3.動作確認
  ここまで至って簡単な作業にも関わらず。以下のエラーで動かず。

  The current runtime target framework is not compatible with 'TodoList'.

  Current runtime Target Framework: 'DNX,Version=v4.5 (dnx45)'
   Type: CLR
   Architecture: x86
   Version: 1.0.0-beta6-12256

  Please make sure the runtime matches a framework specified in project.json
  
  VS2015をインストール後に、dnvx,dnx周りを触っていたからか?
  ひとまずDNXに関するフォルダ%USERPROFILE%\.dnxフォルダや環境変数を削除
  その後、VS2015再起動し実行したら動作した。


4.ソース編集
  サンプルソース、チャートリアルは以下のサイトから
  http://www.asp.net/vnext/overview/aspnet-vnext/vc

  IdentitiyModels.cs編集後に実行し、エラーとなればOK!



5.TodoListテーブル作成
   ApplicationDbContextModelSnapshot.csサイトに以下のコードを追記

builder.Entity("TodoList.Models.TodoItem", b =>
    {
        b.Property<int>("Id")
            .GenerateValuesOnAdd();
        b.Property<bool>("IsDone");
        b.Property<int>("Priority");
        b.Property<string>("Title");
        b.Key("Id");
    });

と書いてある。まずここでGenerateValuesがエラーとなる。
周りのコードを見るとGenerateValue、sがない。
sだけ削除したらうまくいった。


 6.EntityFramework7.0のマイグレーション
  ここからが本題。
  まずはEntityFrameworkにはテーブルを作成してからプログラムコードを書くのではなく。
  プログラムコードを書きテーブルを作成するという考え方「コードファースト」がある。
  
  プログラムの更新、つまりバージョン毎に異なるテーブル構造を比較し、差分のみバージョンアップしてくれるのがイグレーション。

  マイグレーション用コマンドを管理者のコマンドラインから実行するが・・
  dnx . ef
dnxなんてない!と怒られる。
  where dnx
確かにない!

  したがってdnvmをコマンドラインからアップグレード
  dnvm upgrade
  where dnx
ようやく出現
  C:\Users\%USERPROFILE%\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta6\bin\dnx.exe

  いける!
  dnx . ef
やっぱりダメ、エラー内容見るとどうやらtry dnu restore

  指示通りに

  dnu restore
  cd "Webソリューションフォルダ"
  dnx . web migration add newTodoList
  dnx . web migration apply

  ローカルDBを確認すると、TodoListテーブルができてます。


 7.動作確認
   ここでVS2015に戻り、再度コンパイルすると。
   なぜか参照設定がないと約2000個のエラーが発生。
   dnu restoreの際に project.lock.jsonファイルが書き換わっている。
   書き換わっている箇所を見ると参照の順番が異なるだけで、参照そのものは変わっていない。
   #それでもだめなの?
   思い切ってproject.lock.jsonを削除しVS2015を再起動。
   project.lock.jsonをVS2015が再作成し、コンパイルエラー回避!
   というわけで、再実行し追加したTodoListが無事動きました。



おまけ
   作業の途中で削除した環境変数を確認すると復活してました。
   VS2015もしくはdnvm upgradeが追加したのかな?


感想、やっぱりASP.NETは閲覧専用だな!データ登録用のサイトには向いとらん!

2015年7月30日木曜日

Apache JMeter

ApacheJMeterとはWebサイトの性能を測定するベンチマークツールです。

JMeterからテスト対象のWebサイトに大量のリクエストを投げ、そのレスポンスタイムを測定することで性能を測定します。


■ダウンロード
Apacheプロジェクトがフリーツールとして公開しており、以下のサイトからダウンロードできます。

http://jmeter.apache.org/download_jmeter.cgi


Windows環境で動かすには、上記URLのBinaries > apache-jmeter-2.13.zipを
任意のフォルダにダウンロードし、解凍することで使用できます。


■起動
前提PPとしてJavaランタイムが必要です。
JMeterを起動するには解凍先フォルダのbin/jmeter.batをクリックします。


■設定

画面左のツリーメニュー、テスト計画にこれから実行するテストの要素を追加します。
最低限必要な追加項目は

 1.スレッドグループ
 2.HTTPリクエスト初期値設定
 3.HTTPリクエスト
 4.統計レポート

の4つ。


1.スレッドグループ
 テスト実行するクライアントの設定(スレッド数、ループ回数、スレッド実行間隔)
 テスト計画を右クリック、追加 > Threads(Users) > スレッドグループ


2.HTTPリクエスト初期値設定
 Webサイトのアドレス(ホスト名)を設定
 テスト計画を右クリック、追加 > 認定エレメント > HTTPリクエスト初期値設定




3.HTTPリクエスト
 リクエストするURLを設定
 テスト計画を右クリック、追加 > リスナー > 統計レポート
 


4.統計レポート
 負荷テストの結果を確認するレポートを設定(追加して終わり)
テスト計画を右クリック、追加 > リスナー > 統計レポート



■実行
ツールバーの緑の矢印(再生ボタン)をクリックして実行すると、先ほど追加した統計レポートの一覧にレスポンスタイム、エラー率、スループット等が表示されます。



■所感
 単にWebサイトにいくつものリクエストを投げるだけならプログラム書いたほうが速いけど、
 複雑なリクエストの条件があったり、詳細な結果レポートを見たい場合はJMeterがいいでしょう。

Windows Azureのアカウントと役割

これまで1つのアカウントを3、4人で使いまわしていたが
流石に人数が多くなると、何されるかわからないので
ちゃんとアカウント管理します。

以下の、説明ページを超訳
http://blogs.msdn.com/b/dsazurejp/archive/2013/10/03/azure.aspx


WindowsAzureには3つの役割を持った管理者がいる
 •アカウント管理者
 •サービス管理者
 •共同管理者

イメージ
-----------------------------
アカウント管理者

   サービス管理者
    共同管理者
    共同管理者

   サービス管理者
    共同管理者
    共同管理者
    共同管理者

-----------------------------


アカウント管理者 お金管理する人
 Azureの支払いや契約を担当する管理者
 アカウントポータルへアクセスできる
 各種サービスを利用する権限はない
 アカウント管理者の変更はマイクロソフトへ問い合わせる必要あり。

サービス管理者 サービス管理する人
 Azureの各種サービスを利用するための管理者
 AzureのActiveDirectoryから追加

共同管理者 作業者
 サービス管理者と同様に各種サービスを利用する


管理者の変更
詳細は以下のページ参照のこと


アカウント管理者の変更は、MS窓口へ問合せる。
サービス管理者、共同管理者はWebサイトから変更可能。

 

2015年5月26日火曜日

ASP.NET 5.0の概要

VisualStudio2015、ASP.NET5.0の正規版のリリースが間近に迫り
技術的な動向が気になるところ、今日はお世話になっているMicrosoft Academy
から「ASP.NET 5 概要」の動画をもとにまとめてみました。

-----------------------------------
タイトル:「ASP.NET 5.0の概要」
スピーカー:エバンジェリスト 中村
時間:20分
リンク:http://www.microsoftvirtualacademy.com/training-courses/aspnet5
-----------------------------------

ASP.NET5の概要
・モジュラー設計(NuGet)
・オープンソース(.NET Foundation)
・コンパイル不要の開発と配置(Roslyn)
・Windows,Mac,Linuxでの実行(MonoProject)
・完全なSydeBySide実行
・依存性の注入(Dependency Injection)
・高速化、低メモリ使用量と高スループット
・クラウドへ最適化(設定、デバッグ、ロギング、キャッシュ)
・クロスプラットフォーム


これらを要約すると
新しくリリースされるASP.NET5はGitHubでオープン化され、開発者ならだれでもソースを入手可能。
ASP.NET 5はWindows以外のLinuxやMac上でも動作可能なASP.NET CORE を提供する。
ライブラリがモジュール化かつ軽量化され、クロスプラットフォームやクラウド環境への展開が楽になる。

特に強調したいのが、コマンドラインからのアプリ実行
ASP.NET5 KRuntime 通常 KRE
あたらしい流れクロスプラットフォームを考慮。
VisualStudioがなくとも、ソース作成、コンパイル配置が可能である。

KREで利用する代表的なコマンドは3つ
1. KRE  ランタイムの管理
2. KREバージョン管理、KVM ランタイムの部分のバージョン管理
3. KPakeage Manager (KPM) アプリケーションの部分のバージョン管理

こんなコマンド叩いてWebアプリを実行する。
 kvm list
 kvm use default
 kpm restore ペッケージ取得
 k web ローカルホストで動く

それと、ASP.NET5プロジェクトのフォーマットがXMLからjsonフォーマットに変わった。

VisualStudio2015 の正規版待ち遠しいです。

2015年5月23日土曜日

VisualStudio2015 クロスプラットフォーム

今年発売予定のVisualStudio2015。
クロスプラットフォームを大々的にアピールしているので、
どんなもんなのかMicrosoftAcademyを覗いてみた。

デスクトップアプリやWebサイトの機能はVisualStudio2013と変わり映えしないのが率直な感想。
反面、クラスプラットフォーム開発用のXamarinやPhoneGapを標準搭載。そしてなんといってもVisualStudioでAndroidのエミュレーターを提供していることからもわかるように、スマホやタブレットをターゲットにした開発に注力しているように感じられた。

めったなことじゃないとお目にかからないWindowsStoreもWindowsPhoneよりも、みんな使っているAndroidやiOSへシフトするのが自然な流れであり、マイクロソフトでさえも認めざるを得ない事実なんだろうな。


確認した動画は「クロスプラットフォーム開発 VisualStudio」


ポイントを簡単にまとめると、

クロスプラットフォームの開発方法は3つ、違いは開発言語
 1.Cordova(PhoneGap)  HTML/JS
 2.Xamarin      C#
 3.CLang          C++
ほかにもゲームライブラリ Unityもあるが、説明にはなかった。
どれもAndroidはVisualStudioさえあれば開発できるが、iOSはMacとXCodeの開発環境が必要。


1.Cordove(PhoneGap)

 WebView上で動くアプリを作る。
 javaScriptで android,iOS,WidnowsPhoneのアプリを作ることができる。
 共通的なプログラムはそれぞれのネイティブアプリの上にあるWebView上で動く。
 iOSのビルド、デバッグ、エミュレーターはVisualStudioは用意してないのでマックが必要。


2.Xamarin(ザマリン)

 各プラットフォームのネイティブアプリを作る。
 共有化できるのは PCL (Portable Class Liblary)を使ったBizLogicのみで、UIについては各プラットフォームで作る必要がある。

 ・ Xamarin.Android,
 ・ Xamarin.iOS,
 ・ WindowsPhone
 ・ Silverlight5
 ・ .NET Framework4.5
 ・ Store App

 Xamarin.FormsでUIコードも共有化
 UIも共有化できる仕組みがそろいつつある。
 前提としてMVVMモデル、ロジックとUIの結びつきが弱い、独立したモデルを採用する必要あり。


3.CLang C++

 C++からオープンソースのコンパイラCLang を使ってAndroidのネイティブアプリを作る。
  iOSのネイティブはない。


ここまでが動画の内容。


VisualStudio2013でクロスプラットフォーム開発するには
VisualStudio2013 Update4 を適用し
Multi-deviceHybrid Apps というアドインを追加するとPhoneGapの開発ができる。


まとめ

Android,iOSにアプリを提供する上で、運用・保守フェーズに入ってからのプログラム保守費用と用とアプリのバージョンアップに伴い発生する配布コストが、クロスプラットフォームの環境で改善できるのは魅力的。

気になるのはVisualStudioのライセンス料かな。

AndroidStudioやXCodeも相当使いやすいから、単にネイティブアプリ作るなら、VisualStudioを選ぶ人はなかなかいないんじゃないかな。