2015年6月30日火曜日

IIS 8.5にPHP 5.6.10を設定

IIS 8.5にPHP 5.6.10を設定してみました。どこかで躓くかと思いましたが、あっさり設定できてしまいました(笑)。嬉しい!

php.ini
cgi.fix_pathinfo=1
fastcgi.impersonate=1
cgi.force_redirect=0
error_log = c:/php5/logs/php_errors.log
date.timezone = Asia/Tokyo
open_basedir = "C:\inetpub\wwwroot"
extension_dir = "./ext"


参考サイト
Windows Server 2012にIIS 8 + PHP 5.4.10の環境を構築する(Symfowareさん)

2015年6月29日月曜日

IIS 8.5にASP.NETの機能を追加

IIS 8.5にASP.NETの機能を追加してみました。よくわかっていませんが、とりあえず、.aspxファイルが動作するようになりました(笑)。

インターネット インフォメーション サービス(IIS)マネージャー
↓
役割と機能の追加





参考サイト
Windows Server 2012 R2にIIS 8.5のインストールとASP.NETの有効化(Symfowareさん)

2015年6月28日日曜日

Amazonの「Fire OS」

Amazonの「Fire OS」 アマゾンのモバイルデバイスで採用されているAndroidベースのOSだそうです。Androidで、すでにソフトを開発していれば、サービスの幅が広がりますよね。というわけでメモです。



参考サイト
アマゾン、「Fire OS 5」の開発者プレビュー版をリリース--「Android 5.0」ベース(CNET Japan)

2015年6月26日金曜日

IISで、詳細なエラーを表示

IISで、詳細なエラーを表示する設定です。開発段階では、デバックの助けになります。

インターネット インフォメーション サービス (IIS) マネージャー
↓
エラーページ
↓
機能設定の編集
↓
詳細なエラーを選択




参考サイト
Detailed 500 error message, ASP + IIS 7.(Stack Overflow)

2015年6月25日木曜日

IISにClassic ASP(Active Server Pages)を設定

IISClassic ASP(Active Server Pages)を設定してみました。IISの7.0以上だと、デフォルトでは利用できないようなので、「サーバー マネージャー」→「役割と機能の追加」から機能を追加する必要があります。





参考サイト
IIS での Classic ASP Web サイトの構築(マイクロソフト TechNet)
Classic ASP Not Installed by Default on IIS 7.0 and above(The Official Microsoft IIS Site)

2015年6月24日水曜日

IIS(Internet Information Services)のバージョン確認方法

IIS(Internet Information Services)のバージョン確認方法です。

インターネット インフォメーション サービス(IIS)マネージャー
↓
ヘルプ
↓
インターネット インフォメーション サービスのバージョン情報



参考サイト
IISのバージョン確認方法 - (IISにOSSをインストールするための情報サイト[IIS de OSS 64bit]さん)

2015年6月23日火曜日

Windows Serverでsshd「FreeSSHd」

Windows Server 2012に、sshdサーバーのFreeSSHdをインストールしてみました。ダウンロードは、こちら。今回インストールしたのは、 freeSSHd.exe 1.3.1です。指示通り進めていけば、問題なくインストールできます。



起動すると、タスクバーに常駐し、こちらから各種設定の変更が可能です。


参考サイト
WindowsでCygwinやSUAを入れずにSSHが使いたい!(とあるSEの備忘録さん)

2015年6月22日月曜日

Windows Server 2012に、WEBサーバーのIISをインストール

Windows Server 2012に、WEBサーバーのIISをインストールしてみました。

サーバーマネージャー
↓
ダッシュボード
↓
役割と機能の追加
↓
サーバーの役割で、「Web Server(IIS)」を追加
↓
確認で「インストール」をクリック

サーバーマネージャー


IISの初期画面


参考サイト
Windows Server 2012 & IIS 8 設定ガイド(desknet's NEOさん)

2015年6月21日日曜日

PHP 7のアルファ版が公開

PHP 7のアルファ版が公開されたとのこと。11月12日にファイナルリリースの予定だそうです。楽しみに待つことにしましょう。



参考サイト
PHP 7、初のアルファ版登場(マイナビニュース)

2015年6月19日金曜日

Microsoft SQL Server 2014 Expressは無償

Microsoft SQL Server 2014 Express無償なんですね。Microsoft製品のデータベースで無料で使えるものなどないと思っていましたから、今年最大の驚きでした。利用可能なメモリの最大容量やデータベースのサイズ上限など、制限はありますが、個人や中小企業向けの小さなシステムであれば、十分運用に耐えると思います。というわけで、インストールしてみました。



参考サイト
ここまで使えるSQL Server Express Edition(@IT)
SQL Server Express(Wikipedia)

2015年6月18日木曜日

Windows Server 2012 英語版を日本語に

Windows Server 2012 英語版を日本語に入れ替えてみました。

コントロールパネル「Language, and Region」
↓
日本語を追加
↓
日本語の優先順位を上げて、第一の言語に設定
↓
再起動

日本語に変った画面



参考サイト
Amazon EC2~windows server 2012を日本語化してみる編~(ナレコムAWSレシピさん)

2015年6月17日水曜日

MacからWindowsのCDやDVDドライブにアクセスするには「Windows用のDVDまたはCD共有設定1.0」

MacからWindowsのCDやDVDドライブにアクセスするには、「Windows用のDVDまたはCD共有設定1.0」を、Windows側のPCにインストールしておく必要があるんですね。単にネットワーク上で共有すればアクセスできるだろうと思い込んでいたため、時間がかかってしまいました(笑)。



2015年6月16日火曜日

評価版の「Windows Server 2012 R2」をインストール

評価版の「Windows Server 2012 R2」をインストールしてみました。ダウンロードしたファイル名は、9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_SERVER_EVAL_JA-JP-IR3_SSS_X64FREE_JA-JP_DV9.iso。評価版なので(?)、インストールできたものは英語版です。



参考サイト
Windows Server 2012クラウドジェネレーション:第1回 Windows Server 2012の概要(@IT)

2015年6月15日月曜日

AngularJSのサンプルプログラム紹介サイト「Web Programming examples」

AngularJSのサンプルプログラム紹介サイト「Web Programming examples」 AngularJSとGoogle Maps、Dartなど、多くのサンプルプログラム例が紹介されていて、非常に参考になります。

2015年6月14日日曜日

アマゾンが本やDVDなどの買取サービス「Amazon買取サービス」無料宅配集荷

アマゾンが本やDVDなどの買取サービス「Amazon買取サービス」を始めたらしい。無料宅配集荷だそうです。この市場に競争が起こることは良いことだと思います。

Amazon買取サービスでは、本・コミック・雑誌、TVゲームソフト・TVゲーム機本体、DVD・ブルーレイ、ミュージックCDを、1点から買取申込みできます。集荷は無料の宅配集荷サービスで、商品受領24時間以内に査定が完了、お客様のアカウントにギフト券が自動で登録されます。アマゾン以外でご購入いただいた商品でも買取可能で、事前に全ての買取価格を検索できます。査定にご満足頂けない場合の返送配送料も無料です。


参考サイト
Amazon、本の買い取り開始 1冊から無料集荷、事前に買い取り価格をWebで確認(ITmedia ニュース)

2015年6月13日土曜日

オープンソースのPostgreSQL暗号化ソフト「Transparent Data Encryption for PostgreSQL」

オープンソースのPostgreSQL暗号化ソフト「Transparent Data Encryption for PostgreSQL」 アプリケーションを改修することなく、データベース自体を暗号化できるので、システムのセキュリティを容易に向上させることが可能とのこと。要チェックでしょう。



参考サイト
NEC、PostgreSQLを透過的に暗号化できるOSSを公開(クラウド Watch)

2015年6月12日金曜日

AngularJSのAngular Google Mapsで、レイヤーの追加

AngularJSAngular Google Mapsで、レイヤーの追加です。交通渋滞情報のTrafic Layerを追加してみました。

コントローラーのJS
var mylat = document.getElementById("mylat").textContent;
var mylng = document.getElementById("mylng").textContent;

$scope.map = { 
  center: { 
      latitude: mylat, 
      longitude: mylng 
    }, 
  zoom: 12,
  showTraffic: true,
};
テンプレートのHTML
<ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="options">
  <ui-gmap-layer type="TrafficLayer" show="map.showTraffic"></layer>
</ui-gmap-google-map>

実際に設定してみたサイトがこちら

参考サイト
API documentation(Angular Google Maps)

2015年6月11日木曜日

AngularJSのAngular Google Mapsでマーカーのクリック

AngularJSAngular Google Mapsでマーカーのクリックです。 モーダルウィンドウを表示するような感じでデザインできます。

コントローラーのJS
var mylat = document.getElementById("mylat").textContent;
var mylng = document.getElementById("mylng").textContent;
var myname = document.getElementById("myname").textContent;
$scope.map = { 
  center: { 
      latitude: mylat, 
      longitude: mylng 
    }, 
  zoom: 12
};
$scope.options = {scrollwheel: false};
$scope.marker = {
  id: 0,
  coords: {
    latitude: mylat,
    longitude: mylng
  },
  showWindow: false,
  options: {
    labelContent: 'ここ',
    labelAnchor: "10 0",
    labelClass: "marker-labels"
  }
};
$scope.windowOptions = {
  visible: false
};
$scope.onClick = function() {
  $scope.windowOptions.visible = !$scope.windowOptions.visible;
};
$scope.closeClick = function() {
  $scope.windowOptions.visible = false;
};
$scope.title = myname;
テンプレートのHTML
<ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="options">
  <ui-gmap-marker idkey="marker.id" coords="marker.coords" options="marker.options" click="onClick()" events="marker.events" >
    <ui-gmap-window options="windowOptions" closeClick="closeClick()">
      <div><h2>{{title}}でーす!</h2></div>
    </ui-gmap-window>
  </ui-gmap-marker>
</ui-gmap-google-map>

実際に設定してみたサイトがこちら

参考サイト
API documentation(Angular Google Maps)

2015年6月10日水曜日

AngularJSのAngular Google Mapsでマーカーの表示

AngularJSAngular Google Mapsでマーカーの表示です。 前回の使い方は間違っていました。 失礼しました。今度は大丈夫でしょう、たぶん?

コントローラー
var mylat = document.getElementById("mylat").textContent;
var mylng = document.getElementById("mylng").textContent;
$scope.map = { center: { latitude: mylat, longitude: mylng }, zoom: 10 };
$scope.options = {scrollwheel: false};
$scope.marker = {
  id: 0,
  coords: {
    latitude: mylat,
    longitude: mylng
  }
};
HTML
<ui-gmap-google-map center="map.center" zoom="map.zoom" options="options">
  <ui-gmap-marker coords="marker.coords" options="marker.options" events="marker.events" idkey="marker.id"></ui-gmap-marker>
</ui-gmap-google-map>

実際に設定してみたサイトがこちら

参考サイト
API documentation(Angular Google Maps)

2015年6月9日火曜日

AngularJSで、Google Mapの「Angular Google Maps」

これでも表示されますが、正しくはこちらです。すみません。


AngularJSで、Google Mapの「Angular Google Maps」を組み込んでみました。とりあえず、地図は表示できました。ちょっと嬉しい(笑)。

コントローラー
var mylat = document.getElementById("mylat").textContent;
var mylng = document.getElementById("mylng").textContent;

var mapOptions = {
  zoom: 10,
  center: new google.maps.LatLng(mylat, mylng),
  mapTypeId: google.maps.MapTypeId.ROADMAP
}

$scope.map = new google.maps.Map(document.getElementById('map'), mapOptions);
HTML
<span id="mylat">{{lat}}</span> : <span id="mylng">{{lng}}</span>
<div id="map"></div>

実際に設定してみたサイトがこちら



参考サイト
Google Maps with AngularJS(JSFiddle)

2015年6月8日月曜日

JavaScriptのユーティリティライブラリ「lodash」

JavaScriptのユーティリティライブラリ「lodash」を組み込んでみました。色々なユーティリティがありますが、中でも配列操作が便利です。

_.assign({ 'a': 1 }, { 'b': 2 }, { 'c': 3 });
// → { 'a': 1, 'b': 2, 'c': 3 }

_.map([1, 2, 3], function(n) { return n * 3; });
// → [3, 6, 9]


参考サイト
Underscore.js
lodashでよく使う関数まとめ(matsukaz's blogさん)
javascriptの配列操作に便利なライブラリ「Underscore.js, Lo-Dash」(SONICMOOV LABさん)

2015年6月7日日曜日

世界中の公共WiFiホットスポットでインターネットできる「Skype WiFi」

世界中の公共WiFiホットスポットでインターネットできる「Skype WiFi」 世界各地に200万ヶ所以上あるWiFiホットスポットに接続し、使った分数に応じて料金をSkypeクレジットで支払うことができると紹介されています。国際的なビジネスマンになるには、知っておく必要があるかもしれません(笑)。

利用可能なWiFiホットスポットは、こちら

2015年6月6日土曜日

PyPy 2.6登場で、Pythonより7倍高速化

PyPy 2.6登場で、Pythonより7倍高速化とのこと。PyPyは、実行時コンパイラを活用し、実行速度が高速で、かつ、メモリ使用量が少ないという特徴を持っているそうです。既存のPythonコードとも互換性が高いらしい。興味をもったのでメモです。



参考サイト
PyPy 2.6.0登場 - Pythonより7倍高速化(マイナビニュース)

2015年6月5日金曜日

AngularJSで、if文「ng-if」

AngularJSで、if文「ng-if」です。HTMLタグに、そのまま有効にするのか、無効にするのか条件を書き込めるので、わかりやすいし、メンテナンスしやすいでしょうか。

ページ送り(ページネーション)の例
<div ng-if="all > 0">
  <a href="nextPage(page-1)" ng-if="page != 1">前</a>
  <span ng-repeat="n in pages">
    <a href="nextPage(n)" ng-if="(n % 10 == 0 && n != page) ">{{n}}</a>
    <a href="#" ng-if="n == page">{{n}}</a>
  </span>
  <a href="nextPage(page+1)" ng-if="page != all">次</a>
</div>

<div ng-if="all == 0">
  該当するデータがありません。
</div>

実際に設定してみたサイトがこちら

参考サイト
ngIf(AngularJS)
angularjsのng-ifの場合に数値や文字列の比較は?(m_shige1979のささやかな抵抗と欲望の日々さん)

2015年6月4日木曜日

AngularJSで、フォームのディフォルト値「ng-init」

AngularJSで、フォームのディフォルト値「ng-init」です。なんで表示されないのか、しばらく悩んでしまいました(笑)。「ng-init="inquiry.username='{{username}}'"」といった具合に、指定する必要があるんですね。

<input type="text" name="username" ng-model="inquiry.username" value="{{username}}" ng-init="inquiry.username='{{username}}'" required ng-minlength="2" ng-maxlength="20">

<input type="email" name="email" ng-model="inquiry.email" value="{{email}}" ng-init="inquiry.email='{{email}}'"  required>

<textarea name="message" ng-model="inquiry.message" ng-init="inquiry.message='{{message}}'" required ng-minlength="10" ng-maxlength="200">{{message}}</textarea>

実際に設定してみたサイトがこちら

参考サイト
Angular.jsでvalue="初期値"を使いたいときは、ng-initを使いましょう(コロタエンヂニアリングさん)
Value attribute on an input text box is ignored when there is a ng-model used?(Stack Overflow)

2015年6月3日水曜日

AngularJSで、フォームの入力チェック

AngularJSで、フォームの入力チェックを設定してみました。ng-modelとして定義されたデータは、入力状態やデータの検証を行うことができるようになるらしい。

<form name="inquiryForm" action="inquiry" ng-submit="inquiryPost()" method="post" novalidate>
  <input type="text" name="username" ng-model="inquiry.username" required ng-minlength="2" ng-maxlength="20">
  <span ng-show="inquiryForm.username.$error.required">必須</span>
  <span ng-show="inquiryForm.username.$error.minlength">文字数が足りません。</span>
  <span ng-show="inquiryForm.username.$error.maxlength">長すぎです。</span>

  <input type="email" name="email" ng-model="inquiry.email" required>
  <span ng-show="inquiryForm.email.$error.required">必須</span>
  <span ng-show="inquiryForm.email.$error.email">正しいメールアドレスをどうぞ。</span>

  <input class="btn btn-primary" type="submit" value="送信">
</form>

実際に設定してみたサイトがこちら


参考サイト
フォームの基本を学ぼう(ドットインストール)
input[email](AngularJS)

2015年6月2日火曜日

PHPバリデーションクラス「GUMP」の日本語化

PHPバリデーションクラス「GUMP」の日本語化です。エラーメッセージを出力しているのは、get_readable_errorsget_errors_arrayのメソッドなので、これをオーバーライドしてしまうのが手っ取り早いと思います。

class GumpValidator extends GUMP
{
  public function get_readable_errors()
  {

  }

  public function get_errors_array()
  {

  }
} 

あとは、同じように
$gump = new GumpValidator();

実際に設定してみたサイトがこちら


参考サイト
Displaying Form Error Messages from Array(Stack Overflow)

2015年6月1日月曜日

PHPでスタンドアローンの入力データ用バリデーションクラス「GUMP」

PHPでスタンドアローンの入力データ用バリデーションクラス「GUMP」を設定してみました。結構細かくチェックできます。ただし、エラーメッセージは英語になってしまいます。日本語化するのはちょっと面倒。ちなみに、GUMPは、Simple MVC Frameworkで採用されているようです。

$gump = new GUMP();

// サニタイズ
$_POST = $gump->sanitize($_POST);

// バリデーション
$gump->validation_rules(array(
  'username'  => 'required|alpha_numeric|max_len,100|min_len,6',
  'password'  => 'required|max_len,100|min_len,6',
  'email'     => 'required|valid_email',
  'gender'    => 'required|exact_len,1|contains,m f',
  'credit_card' => 'required|valid_cc'
));

// フィルター
$gump->filter_rules(array(
  'username' => 'trim|sanitize_string',
  'password' => 'trim',
  'email'  => 'trim|sanitize_email',
  'gender'   => 'trim',
  'bio'    => 'noise_words'
));

// runで、バリデーションとフィルターを両方行ってくれる
$validatedData = $gump->run($_POST);


if($validatedData === false) {
// エラーの場合
  $errors = $gump->get_errors_array();
  print_r($errors);
} else {
// OKの場合
  print_r($validatedData);
}

実際に設定してみたサイトがこちら