2011/07/21

指定された長さでランダムな英数字の文字列を生成するVBScriptのこと

32文字の暗号キーをVBScriptで作ってみたくなったの試しに書いてみた。
真っ先に思いついて書いたのは英数字の文字コードをランダムに出すもの(GenerateRndString)だが、なんかアホっぽい気がしたので英数字の文字列から文字をランダムに取り出す方にした(GenerateRndString2)。
お遊びコードです。あくまでも。

'
' Summary:
'  指定された長さでランダムな英数字の文字列を生成する
'
Option Explicit

Const TITLE = "ランダムな英数字文字列を生成するやつ"

Dim size

Do
 size = InputBox("生成する文字列の桁数ね", TITLE)
 If IsNumeric(size) Then
  size = CInt(size)
  Exit Do
 Else
  MsgBox "桁数だから数字で"
 End If
Loop
InputBox "こんな", TITLE, GenerateRndString2(size)



'
' Summary:
'  指定された長さでランダムな英数字の文字列を生成する
' Input:
'  size As Integer - 生成する文字列の長さ
' Output:
'  String - 生成した文字列
'
Function GenerateRndString(size)

 Dim str
 Dim n

 str = ""
 Randomize
 Do Until Len(str) >= size
  '数字または英字を生成する
  '"0"(048) ~ "9"(057)
  '"A"(065) ~ "Z"(090)
  '"a"(097) ~ "z"(122)
  n = Int((122 - 48 + 1) * Rnd + 48)
  If (48 <= n And n <= 57) _
   Or (65 <= n And n <= 90) _
   Or (97 <= n And n <= 122) Then
   str = str & Chr(n)
  End If
 Loop

 GenerateRndString = str

End Function



'
' Summary:
'  指定された長さでランダムな英数字の文字列を生成する
' Input:
'  size As Integer - 生成する文字列の長さ
' Output:
'  String - 生成した文字列
'
Function GenerateRndString2(size)

 Dim chars
 Dim str
 Dim i

 chars = "0123456789" _
  & "ABCDEFGHIJKLMNOPQRSTUVWXYZ" _
  & "abcdefghijklmnopqrstuvwxyz"

 str = ""
 Randomize
 For i = 1 To size
  str = str & Mid(chars, Int(Rnd * Len(chars) + 1), 1)
 Next

 GenerateRndString2 = str

End Function

2011/03/04

交渉のロジックのこと

3月3日放送のカンブリア宮殿にて、元外務事務次官で現在は外務省顧問をされている藪中三十二(やぶなか みとじ)さん、交渉におけるロジックについて。
実際に交渉でロジックがなぜ必要かというと言うとですね、共通用語なんですね僕に言わせれば、世界共通用語。つまり、各々の国は歴史も違えば習慣も違う。その時に「まあまあ」とかね、「なあなあ分かるだろう」って言うんじゃ分からないわけです相手はね。そこで共通の用語としてあるのはね、英語とかそういうことももちろんありますけれども、考え方として一応筋が立っていると。論理が通っていることが大事だと。それがお互いを理解できる1つの共通の基準になると思うんですね。

もうひとつは交渉ってのは、本国へ帰って「相手はこう言っていました」と言う時に、相手の言っていることが筋が通ってない場合には説明のしようがないわけですね。「まあうちの特殊事情を理解してくれ」と言われたってね相手がそんなことを理解したら、国に帰ったら「お前バカか」と言われるだけですからね。
ある意味、毎日が異文化コミュニケーションな最近の自分にとって、目からウロコな言葉だったので思わず書き取り。

2011/02/20

映画『穴』を観たこと

あー、テレビでなのだけど面白かったので。タイトルだけ見てニック・ハムさん監督のかと思ったけど、まったく別の話でアンドリュー・デイヴィスさんの方。

先祖代々呪われた家系の少年、スタンリー・イェルナッツ4世君、無実の罪で更生キャンプに送られて、炎天下の荒野で毎日ひたすら穴掘らされて、キャンプで仲良くなったみなし子ゼロ君と脱走して山登りして呪いを解いて、キャンプに戻ってまた穴を掘ってお宝を見つけて一攫千金という運命の話。

作品ではスタンリー君の運命の話を見せつつ、その原因であるスタンリー君の高祖父(だったかな?)エリヤ・イェルナッツとマダム・ゼローニの話、女教師キャサリン・バーロウとサムの話を絡ませてくるあたりの組み立て方が楽しかった。スタンリー君の境遇と施設の慣習に囚われないあたりは、ほんのちょっと『ショーシャンクの空に』のアンディを連想したりもした。地味にじわりと面白い。

2011/01/17

DHCPサーバー移行ガイドのこと

Microsoft TechNetで調べたメモ。

DHCP サーバー移行ガイド
既存のDHCPサーバーの設定をWindows Server 2008 R2が実行されているサーバーへ移行する手順の説明。

DHCP サーバーの役割で推奨されるタスク
推奨されるタスクのインデックスページ。
DHCP スコープを分割してフォールト トレランスを向上する 
動的更新およびセキュリティ保護された動的更新を構成して、DNS レコードの手動更新を廃止する 
Windows ファイアウォールのポートを構成して、DHCP サーバーのリモート管理を許可する 
AD DS で DHCP サーバーを承認することにより、ネットワーク上から非承認の DHCP サーバーを排除する 
ネットワーク アクセス保護と連携するよう DHCP を構成して、クライアントの正常性に関するネットワーク アクセス ポリシーを強制する 
DHCP 予約を作成して、静的 IP アドレスを使用するデバイスの管理を自動化する 
DHCP リレー エージェントを構成して 1 台の DHCP サーバーで複数のサブネットをサポートする 
既存の DHCP インフラストラクチャを移行して、新しいサーバー上の DHCP の再構成を回避する 
スコープの 80/20 規則を使用して、DHCP サーバーの負荷を分散する 
DHCP サーバーをクラスター化し、複数の DHCP サーバーを単一のシステムとして集中管理する 

DHCP バックアップと復元の詳細
上記のインデックスからはなぜか漏れているもの。
「DHCP サーバー サービスでは、3 種類のバックアップ方法をサポートしています。」とあるが、私の頭が悪いのか2つしかわからない。
自動的に行われる同期バックアップ。既定のバックアップ間隔は 60 分です。
DHCP コンソールで backup コマンドを使用して実行される非同期 (手動) バックアップ。

DHCP データベースのエクスポートおよびインポートの詳細
上記のインデックスからはなぜか漏れているもの。
移動元サーバーから移動先サーバーにDHCPデータベースを移動する手順、だが、私の頭が悪いのか手順に漏れがある気がしてならない。

2011/01/11

AWkitchen新宿に行ったこと

AWkitchen新宿でツレと夕食。自分はキノコたっぷりシンプルクリームフェットチーネ。ツレはごぼうと岩塩ソーセージスパゲッティー、はトマトソースベース。どちらもかなりもっちりというか不思議な食感の麺と濃い目のソースのマッチがとても美味しかった。でも30男には少々ボリューム不足。テイクアウトもあるので試してみたい。

どうにも足りないので、帰宅後に忘れていたもちのカビを削って焼いて雑煮を作成。