ASP.NETでHTML5(INPUT TYPE)

ASP.NETで、HTML5のINPUTタグを利用して、
type="number"とかにしたい場合、
カスタムコントロールを作成すると良いみたいです。
Public Class Html5NumberText
Inherits System.Web.UI.WebControls.TextBox
Protected Overrides Sub Render(writer As HtmlTextWriter)
Me.Attributes.Add("type", "number")
MyBase.Render(writer)
End Sub
End Class

但し、.netframework4.0で、KB2468871を当てていないといけないようです。
当ててないと、type="text" type="number" というふうに追加扱いになって正常に表示できません。
当てるのは開発環境とサーバ両方です。
ちなみにKB2468871は再起動がかかるのでサーバー側は注意が必要です。

javascriptを利用して、数字だけしかインプット出来ないように制御は可能ですが、
モバイル端末からアクセスしたときにhtml5でinput type="number"を指定していると
テンキーボードが表示されるので、入力がすごく楽になります。
これを解決するのに1週間以上かかりました・・


Exchange2010上で共有アカウントでの接続が出来ない

EXCHANGE2010で共有アカウントを利用している場合、
・5台位まではOUTLOOKで接続出来るのに、もう一台接続しようとすると、エラーになる。
・OWAからは利用出来たりする。
・既に接続済みのPCで、OUTLOOKを落とすと接続できなかったPCから接続出来る。
・イベントログには何も出ていない。
という症状で困っていましたが、解決。

EXCHANGEを実行しているサーバー上で、マネジメントシェルを起動。

Get-ThrottlingPolicy | where {$_.IsDefault -eq $true} | Set-ThrottlingPolicy -RCAMaxConcurrency 100

とコマンド実行。
100のところは適当に(デフォルトは20です)

ポリシーで20接続までしか出来ないようになっているみたい?
スケジュール?とかのセッションでOUTLOOK1接続あたりのセッション数は1つでは無いみたい。
OUTLOOKのバージョンにもよるようで、今の環境だど2003が4つ2007が3つで31セッションありました。

ちなみに現在どれだけセッションを使っているかを見るには
Get-LogonStatistics -Identity admin | fl applicationid
とコマンド実行して、
ApplicationId : Client=MSExchangeRPC
となっている行を数えると良いです。

2003でも共有アカウントは同様のエラー対応はあったけどレジストリ変更で解決できた気がする。
2003はイベントログに表記があったからすぐわかったけど2010は何もでないのね。。。

共有アカウントやめたいんだけど、なかなかうまくはいかない。。。


EXCHANGE2010のOWAからEXCHANGE2003のOWAへ添付ファイルが届かない

EXCHANGE2010で管理されているアカウントから、OutlookWebAcccess(OWA)でメール送信して、
EXCHANGE2003で管理されているアカウントでメールを受けた場合、
OUTLOOKで受けると普通に添付ファイルも見える。
OWAで受けると添付ファイルが見えない。
添付ファイルがあるというマークだけは表示される。

最初、添付ファイルが受けれない設定なのかと調べてたけど、
EXCELやらPDFも見れないからおかしいなと思ってた。

調べてたら

http://support.microsoft.com/kb/2400041/

Set-OwaVirtualDirectory -Identity "サーバー名\Owa (Default Web Site)" -SilverLightEnabled $False

*サーバー名はクライアントアクセスサーバ

で治るそうで、やってみたら治りました。


2008 Server Core で機能の追加

2008Server Coreで機能の追加を行うときは
start /w
この  に何を指定して良いのかわからないときは
oclist
で、インストール済みの機能とインストールしてない機能がわかる。
未インストールってなっている機能を に指定してあげればよい。

2008 Server CoreでMPIOの設定

ServerCoreでMPIOの設定を行うときは、
mpiocpl
とコマンドを打つとGUIの画面が出ます。簡単
ちなみに電源OFFするときは
shutodown -i
でGUIの画面が出ます。


ESXへSSHで接続可能にする

Vmwareでサポートを受ける場合、「ESXのコンソールで作業してください」とか言われる。
ESXのダイレクトコンソールで作業するとコピーペーストとかができません。
SSHでESXへ繋げば作業が楽に・・・
但しそのままではSSHでつながりません...

手順
1.ダイレクトコンソールへログイン
2.「vi /etc/ssh/sshd_config」 と入力してエンター
3.なにやら一杯文字列がでるので、カーソルを動かして「PermitRootLongin no」のところを「PermitRootLogin yes」に書き換える。
**noを消すのはdeleteボタンで良いけど yes と入れるときは「i」を押してinsertモードにすると入力可能
4.「:w」で上書き
5.「:q」で終了
6.「service sshd restart」でSSHのサービスが再起動する
7.SSHで接続してみる

UNIXなんか使ったことないからviの使い方なんかわからんし・・


Oracle Instant Client のODBC でTNSエラー

ODACインストール済みで、ODP.NETやoo4oはまともに動く環境に
ODBC接続もしたいのでOracleInstantClientをインストール
ODBCの設定画面でTNSを選択しようとすると接続文字列が化けてる・・・
環境変数NLS_LANGは設定済みなのに・・・
ODP.NETもoo4oも正常に動作するのにODBCだけTNSエラー
TNSPINGももちろん正常
***解決策***
環境変数TNS_ADMINにODACのTNSNAMES.ORAファイルがあるフォルダを指定
接続文字列は正常
動作も正常
これって検索してもNLS_LANGの設定しか解決方法が殆ど出ないのよね


ESX上のWindows7のCPU数

ESX上にWindows7を展開して自分用のPCを作成してみるテスト。
vSphereClient上で該当PCのvCPU数を8にしてみる。
ゲストOS上のタスクマネージャでは2つしかCPU表示されない・・・
*対処法
該当仮想PCの電源を切る
vSphereClient上で該当PCを右クリック→設定の編集
オプションタブの全般をクリックして構成パラメータボタンをクリック
行を追加して
名前列にcpuid.coresPerSocket
値に8を設定
仮想PCの電源をON
タスクマネージャに8個のCPUが!!

vmxを直接編集しても良いみたいです
cpuid.coresPerSocket = "8"


VmWareでNTWorkstationを延命

未だに捨てきれないシステムあります。
NTWorkstationだったり・・・
ハードがもう対応しきれないので、VmWareで逃げるのが良いような感じ。
手順はそんなに難しくないけど、イメージ作成ツールを探すのが一番大変かも。
VmWareConverterで変換できるイメージが、最新バージョンのイメージ作成ツールだとダメだったり・・・
たまたま会社にあったから良かったけど、無ければ試供品でやるしかないのかな?


Hyper-V上のWindows2003でW32Timeエラー多発

Hyper-V上で動かしているWindows2003サーバで
イベントログにW32Timeエラーが大量に・・・
ドメインに参加しているサーバであればドメインコントローラから時刻同期するはずだけど、同期出来てない?
でも時刻はあってるような・・・
原因はHyper-VのゲストOSにインストールする統合サービス。
「時刻の同期」のオプションがあるのでこのチェックを外す。
これだけで解決。


Exchange2003への移行で容量不足

Exchange2000から2003へメールボックスを移行していて、失敗したこと。
2000から2003へメールボックスを移行するとデータストアのサイズが大きくなった。
12GB位だったのが、2003へ移行途中で16GBを超えるように・・・
Exchange2003はStandardだとデフォルトで16GBが最大サイズ。
16GBになるとデータストアがアンマウントされてメールボックスへアクセスできません。
もちろん移行は途中でエラー
Exchange2003のSP2からデータストアのサイズを75GBまで増やせます。
SP2当てて
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\サーバー:名\Private-Mailbox StoreGUID *Mailbox StoreGUIDは環境によって違います。
に「Database Size Limit in Gb」というキー(DWORD)を作成し、10進数で75と設定します。
それからExchangeのInformationStoreサービスを再起動すればマウントします。
ちなみにレジストリを設定してからSP2当ててもいけます。





ExchangeServer2000→2010へ

ExchangeServer2000から2010へは直接アップデートできない。
2000→2003へバージョンアップもしくは別サーバへ2003をインストールしてメールボックス移動
2000を消す。(消してないと2010インストールできない)
2010を別サーバへインストール
2010へメールボックス移動

手順は良いけど、2003にメールボックス移動するだけでもかなり時間かかります。

移動すると、OWA(Outlook Web Access)の画面が変わってしまうので、
ユーザには先に説明しておかないといけない。
普通のOUTLOOKは特段変化なし。

別サーバへメールボックス移動すると、OWAのアドレスは元のサーバからリダイレクトしてくれるけど、
認証自体は新サーバで行われるので擬似SSOなんかやってるときは注意。

あまりにもバージョンがかけ離れてると、めんどくさい・・・



ファイルの完全削除

削除したファイルを復活できないようにする方法。

cipher /W:C:

C:のところはドライブ指定
容量によるけどかなり時間かかる

Vmware ViewComposer

サーバーを仮想化するときはESXとvCenterServerがあれば事足りるけど、
XPとかVISTAを仮想化するときに便利なのがVmwareView。
ライセンス体系はいくつかあるみたいだけど、PremierエディションならViewComposerが使える。
ViewComoserはマスターイメージからリンククローンを作成して、
そのリンククローンをPCとして利用するんだけど、
作成済みの多数のリンククローンにバッチを当てるときはマスターのみに当てればOK。
これすごく楽ちん。
Premierエディション高いけど・・まぁ、MSのライセンスのほうが高すぎてあまり気にならんかもしれん。


サーバーへ複数の名前でアクセス

サーバーに複数の名前を付けて運用したい場合、
DNSに登録すれば良いけど、実際のコンピュータ名と異なる名前でアクセスしようとすると、
「ネットワークに重複した名前があるため接続されませんでした。~」
ってエラーが出ます。




NetBIOSのせいで1台1つの名前ってなってるので、このエラーが出ます。
回避方法
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\

OptionalNames (REG_SZ:文字列値) に別名を登録すると一応回避できます。

クライアントじゃなくて対象サーバーのレジストリを変更すること!



ASP.NET SqlDataSource で ORA-01036

GridViewのデータソースに、SqlDataSourceを利用してUpadateしてたけど、
いつのまにかOra-01036が発生するように・・・
一日はまりましたが、ようやく解決。

GridViewのEditItemTemplateにあたらしく項目を増やしてたんだけど、
値をもってくるのをBind(変数名)ってやってた。
普通はこの値を連動してDBへUpdateするから良いけど、
RowDataBoundイベンドで値を変更できなくしたりするように変更不可時は読み取り専用のフィールドを作成してた。
この読取専用フィールドまでBind(変数名)で記述すると、UpdateCommandのSQLに読取専用フィールドの変数名を書かないとならない。かかなければOra-01036エラー。
BindではなくてEval(変数名)って記述することで解決。

長かった・・・

追記
Ora-01036エラーが出るパターンとして、
Sqlの中に書いているバインド変数(:変数名)と、select palametersやInsert Parametersは合っているけど、HTMLの中のBind変数に余計なものが多いとか、Selectにしか使っていないものをUpdate時にBindを使ってしまっていることが多い。
項目数が多くなると、どうしても整理しづらいけど、うまい解決方法がわからない・・
エラーの時は、Sqlのバインド変数とPalametersの定義、HTMLのBindで定義されている変数をエディタにコピーして一つづつ比較していくのが一番早いかも・・


ESXのインストール

ESXのインストールはすごく簡単。

  1. ISOをダウンロード
  2. CDに焼く
  3. CDブートする。
  4. デフォルトで良ければずっと進む(固定IPの場合はIPアドレスは指定する)

ESX-iは使ったこと無いからわかりません。
vCenterServerの設定とかのほうがめんどくさい。


ラムダ式

Genelic.Listを良く利用します。
配列使うときなんか利用しやすい。
Genelic.Listで検索するときなんかにラムダ式は簡単です。

下記のクラスがあったとします。

Public Class TESTCLS
Property CODE As Integer
Property NAME As String
End Class

そんで、下記のようにリストを作成します。

Dim TESTS As Generic.List(Of TESTCLS)
'適当にデータ投入
For COUNTER as Integer = 0 to 10
dim TMPTEST as New TESTCLS
TMPTEST.CODE = COUNTER
TMPTEST.NAME = "TEST" & COUNTER
TESTS.Add(TMPTEST)
Next

検索します。

'CODEが2のものを検索
Dim F_TEST As TESTCLS = TESTS.Find(Function(a) a.CODE = 2)
'F_TESTに検索結果がセットされる
Dim KENSAKUNAME as String = F_TEST.NAME

ラムダ式のやり方を初めて見た時、簡単になり過ぎて感動したなぁ


SQLで大小比較の条件文

Oracleしか使ってないので、SQLServerはあまり知りませんが・・・
decode文を使うときに大小比較を行う場合、単純には出来ません。
SIGN関数を使います。

A>BのときにC、A<Bのときはd、A=BのときはEを出したいとき
decode(SIGN(A-B),1,C,-1,D,E)
っていうふうにやります。

case文なら

case
when A < B then C
when A > B then D
when A = B then E
end

という感じで出来ますけどね、ちょっとした条件文のときはdecodeのほうが早く書ける気がする。
慣れかもしれんけど

GoogleMapApiの利用

htmlは以下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>タイトルが入ります</title>
    <script src="http://maps.google.co.jp/maps?file=api&v=2.x&key=KEYを入力"type="text/javascript"></script>
 <link rel="stylesheet" href="/accordion/style.css" type="text/css" />
 <script type="text/javascript" src="/accordion/script.js"></script>
<style type="text/css">
<!--
body {
 font-family: Verdana, Arial, sans-serif;
 font-size: 12px;
 margin-top: 6px;
 margin-left: 6px;
}
div#map {
 border: 2px outset gray;
}
div#sidebar {
 border: 1px solid #666;
 padding: 4px;
 line-height: 2;
 overflow:auto;
}
img {
 border: 0px;
}
//-->
</style>

</head>

<body onload="initRollovers();" onunload="GUnload();">

<!-- Mapのサイズ(幅・高さ)-->
<table>
  <tr>
    <td valign="top" WIDTH=99% height="100%">
     <div id="map" style="width: 99%; height:700px" ></div>
    </td>
    <td valign="top" WIDTH="100px" height="100%">
     <div id="sidebar" style="overflow:auto;width:102px;height:99%;">
      <div id="accordion" align="left">
    <dl class="accordion" id="slider">
    </dl>
   </div>
  </div>
 </td>
  </tr>
</table>
<div id="directions" style="width: 275px"></div>
jsは以下


    
accordion要素も入れてみたけど超読みにくい;;


accordion

アコーディオン機能を入れる場合はこれで
http://www.p51labs.com/accordion/
下記を忘れずに入れること

RoundTable

WEB会議に利用するカメラ
一人用は良く見るけど多人数用は昔すごく高かった。
Polycomのカメラなんてもう・・・手が出ない。


そんな中、RoundTableです。

実売50~60万ぐらいかな。
1台で12人くらいまでは利用できます。
話している人に焦点が自動的に行くのは結構すごい。

昔からモーターみたいなのが動いて話してる人にフォーカスが行くやつあったけど、
高すぎて全然手が出なかった。
こいつは話してる人へのにフォーカスが切り替えが一瞬。
結構サクサク動きます。

Microsoft製だったらしいけど現在販売はPolycomらしい。
しかもPolycomのサイトを見ると大塚商会と内田洋行しか販売代理店が無いらしい・・・
もっと流通して安くならんのかなぁ

一人づつ参加する会議が主流になるのはわかるけど、年齢層が高い組織は
こういうのから入っていくのも良いと思うけどね。
カメラをあまり意識しないで良いから抵抗感が低いみたい。
まぁあまり意識しすぎないと、相手に伝わってないということもありますが・・

これは買いだと思います。

Lync Server

OCS(Office Communication Server)の後継らしい。
値段も変らんみたい。

OCS2007は運用中だけど、導入はえらい簡単だった。
これでSI費用とれるんかな・・・まぁうちは払わないけど。
意外に安くて良いものがたまにあるMicrosoft
WEB会議を自前で構築したいときはおすすめです。

LyncServerの導入はどうなのかなぁ
来月あたりやってみるかな


HP BL465cでHyper-V

VmWareも良いですが、WindowsServerに慣れてるのでHyper-Vもやってます。
HP BL465c G5 と G6 (G7はHyper-Vやってないからわからん
BIOS設定(HPではRBSUという名前?)を変えないと動きません。


  1. RBSUを起動
  2. アドバンストオプション
  3. プロセッサオプション
  4. No-Executeメモリ保護をEnabledに
  5. AMD VirtualizationをEnabledに(Intelは知りません・・
  6. セーブして起動
Hyper-Vを起動してエラーが出た後でも上記設定変更でOK。

ESXは設定しなくても動く・・ような気がする(確認してない


Xperiaで複数アカウント管理

Android2.1にバージョンアップしたらアカウントを追加できるようにはなったけど、
追加のアカウントはGmailと連絡先しか表示されない・・・
カレンダー使いづらい・・
GalaxyTabはAndroid2.2だからか、追加アカウントもカレンダー使える。
Xperiaも使えたらなぁ


Bloggerでコードハイライト

http://www.kuribo.info/2008/06/blogger-syntax-highlighter.html

この機能がコードハイライトと呼ぶこと自体を知らんかったけど・・・

<pre class="java" name="code">

(コード)

</pre>

html表示は

<を&lt;

>を&gt;

に変換しておくこと

classのとこは
Language Aliases
C++ cpp, c, c++
C# c#, c-sharp, csharp
CSS css
Delphi delphi, pascal
Java java
Java Script js, jscript, javascript
PHP php
Python py, python
Ruby rb, ruby, rails, ror
Sql sql
VB vb, vb.net
XML/HTML xml, html, xhtml, xslt

すごく便利!