SSブログ

[Review]Twitter API プログラミング [Book's Review (Develop)]

(1)レビュー
 『つぶやき』で有名なTwitter。
 『投稿』、『フォロー』や『リツイート』等、
 多くの機能はAPIとして公開されていて、
 それらを駆使して、独自のTwitterクライアントを作ったりできます。

 本書は、公式ドキュメントに基づいたAPIのリファレンスです。
 サンプルコードも充実しているので、
 独自のTwitterクライアントの開発など、大いに役立ちます。

(2)リンク
Twitter API プログラミング

Twitter API プログラミング

  • 作者: 辻村 浩
  • 出版社/メーカー: ワークスコーポレーション
  • 発売日: 2010/04/21
  • メディア: 単行本

[Review]mixiアプリをつくろう!OpenSocialで学ぶソーシャルアプリ [Book's Review (Develop)]

(1)レビュー
 Mixiアプリの設計や開発についてまとめた入門書です。

 Mixiアプリは、
 (株)ミクシィが提供するAPI(アプリケーション・プログラム・インターフェース)を
 利用して、第三者(企業や個人)より開発・提供されています。

 しかし、情報が少ない為、HTMLやJavaScriptの知識がある人でも、
 個人でMixiアプリを開発するのは難しいのが現状です。

 本書は、
 Mixiアプリに興味がある人、
 これからMixiアプリを作ってみたい人にとっては、最適な入門書だと思います。

(2)リンク
mixiアプリをつくろう!OpenSocialで学ぶソーシャルアプリ

mixiアプリをつくろう!OpenSocialで学ぶソーシャルアプリ

  • 作者: 神部 竜二
  • 出版社/メーカー: ソーテック社
  • 発売日: 2010/04/22
  • メディア: 単行本

タグ:mixiアプリ

[Review]カラー版 CD付 高校3年間の英語を10日間で復習する本 [Book's Review(Book)]

(1)レビュー
 TOEIC対策向けに購入したのですが、
 大学受験を控えている高校生にも、オススメできると思います。

 英会話ではなく英文法向けです。

 230ページというお手軽なボリュームですが、
 高校3年間で学習する英文法が濃縮されていて、
 効率よく復習できます。

 一番忘れているのが、『仮定法過去』だと思っていましたが、
 読めば読むほど忘れている内容が、
 他にもあることが明らかになっていきました。(『仮定法過去』もそうですが。。。)

 例えば『比較』
 甘く見ていましたが、こんな文章にも各々で違いがあります。
 復習して初めて思い知らされました。
 [以下、本書より抜粋]
 ・This is not more difficult than that. 
  これはあれよりも[以上に]難しくない[これ≦あれ]
 ・This is not less difficult than that.
  これはあれにまさるとも劣らず難しい。[これ≧あれ]
 ・This is no more difficult than that.
  これはあれと同じく難しくない[これ=あれ=難しくない]
 ・This is no less difficult than that.
  これはあれと同じく[に劣らず]難しい。[これ=あれ=難しい]

(2)リンク
カラー版 CD付 高校3年間の英語を10日間で復習する本

カラー版 CD付 高校3年間の英語を10日間で復習する本

  • 作者: 稲田 一
  • 出版社/メーカー: 中経出版
  • 発売日: 2010/01/28
  • メディア: 単行本(ソフトカバー)

また、関連で中学生版も出版されています。
カラー版 CD付 中学3年間の英語を10時間で復習する本

カラー版 CD付 中学3年間の英語を10時間で復習する本

  • 作者: 稲田 一
  • 出版社/メーカー: 中経出版
  • 発売日: 2010/01/28
  • メディア: 単行本(ソフトカバー)

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page1] [Programming .NET Tips]

[はじめに]
 ・プログラムソース(C#、VB.NET)をHTMLに変換するツールを
  作ってみましたので、ご紹介します。
  (全てのソースは膨大なので、変換処理のみ)
  このブログに貼り付けているプログラムソースもこのツールで変換したものです。
[機能]
  プログラムソースの文字列を、HTMLに変換する。
  変換後のHTMLは、<table>タグで整形した形になります。
[変換後HTML]
 ・インデントのスペースが「& nbsp;」に変換され、ブラウザ上でも表示される。
  (インデントが無視されない)
 ・予約語、コメント、文字列(ダブルコーテーションで囲んだ部分)に色がつく。
 ・ソースコードをクリップボードにコピーする機能を提供。(「コードのコピー」リンクを付加)
  但し、IEのJScriptであるclipboardData.setDataメソッドを使用している為、IE限定です。
[制限事項]
 ・言語は、C#とVB.NETのみです。
  但し、VB6やVBA等はVB.NETと言語仕様が似ている為、
  制限事項を考慮の上、利用することもできます。
 ・C#のコメントは、行の先頭の「//」のみサポート。
  行の途中の「//」や「/*」~「*/」はサポートしません。
 ・VB.NETのコメントは、行の先頭の「'」のみサポート。
  行の途中の「'」はサポートしません。
[使い方]
 (1)ビルド前に、「System.Web」を参照設定に追加する。
   追加しないとコンパイルエラーになります。
 (2)CodeConverterToHtml クラスのGetInstanceメソッドで、
   変換オブジェクトを取得します。
   言語の種類(C#かVB.NET)は、GetInstanceメソッドの第1引数で指定します。 
 (3)CodeConverterToHtml クラスのConvertCodeToHtmlメソッドで、
   ソースをHTMLに変換します。
   ConvertCodeToHtmlメソッドの仕様
   ・第1引数:プログラムソースの文字列
   ・第2引数:整形後HTMLのタイトル。(省略可能)
   ・戻り値:変換後のHTMLの文字列
        変換後の文字列(HTML)は、
        <table>タグで整形した形となります。
        (<html>タグでは囲みません。)
'変換クラスを取得する。
Dim conv As CodeConverterToHtml = _
        CodeConverterToHtml.GetInstance( _
            CodeConverterToHtml.ProgLangType.VBNet _
        )

'プログラムソース
Dim strPgSource As String = "・…(プログラムソース)…"

'変換処理(変換結果はブログ等に貼り付けて、利用できます。)
Dim strConv As String = _
    conv.ConvertCodeToHtml(strPgSource, "[VB.NET]変換機能の使用例")
[VB.NET]変換機能の使用例

[改造ポイント]
 ・拡張性
  言語(C#、VB.NET)の固有ロジックを、
  CodeConverterToHtml の派生クラスに定義しています。
  (VBCodeConverterToHtml、CSharpCodeConverterToHtml)
  予約語一覧、キーワードの前景色、背景色、検索条件(正規表現)、変換仕様は、
  派生クラスの修正で変更できます。
  また、言語を追加する場合も、既存の派生クラスの流用が簡単です。
 ・予約語一覧
  予約語一覧は各派生クラスに定義しています。
  予約語の追加、変更、削除が簡単です。
 ・キーワードの検索条件
  正規表現を各派生クラスに定義しています。
  正規表現を修正することで、キーワードの検索条件を変更できます。
 ・キーワードの変換仕様
  正規表現の検索結果毎に、
  MatchEvaluator()メソッドが呼ばれます。
  MatchEvaluator()メソッドの修正で変換仕様を変更できます。
 ・マルチスレッド対応
  スレッドセーフではありません。
  派生クラスのGetRegEx() とGetReservedWords()に、
  複数スレッドが同時アクセスした場合、
  m_RegEx変数、m_ReservedWords変数の値に
  矛盾が生じる可能性があります。
  ASP.NET等のマルチスレッド環境で安全に使用する為には、
  SyncLockで排他をかける必要があります。

[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
Imports System.Text.RegularExpressions

''' <summary>
''' 変換(ソースコード→HTML)
''' </summary>
''' <remarks></remarks>
Public MustInherit Class CodeConverterToHtml

#Region "定数定義"
    ''' <summary>
    ''' HTMLレイアウト
    ''' </summary>
    ''' <remarks></remarks>
    Private Const TABLE_STRING As String = _
        "<table width=""100%"" border=""0"" " & _
        " bgcolor=""@@@TITLEBGCOLOR@@@"" " & _
        " cellspacing=""0"">" & _
        " <tr><td>" & _
        "  <span " & _
        "   onmouseover=""this.style.color='green';""" & _
        "   onmouseout=""this.style.color='black';"" " & _
        "   onClick=""window.clipboardData.setData('Text', " & _
        "   this.parentNode.parentNode.parentNode.getElementsByTagName('tr')[1].innerText);"">" & _
        "   <u>コードのコピー</u>" & _
        "  </span>" & _
        " </td></tr>" & _
        " <tr><td>" & _
        " <table width=""100%"" border=""0"" " & _
        "  cellpadding=""10"" " & _
        "  bgcolor=""@@@BGCOLOR@@@"" " & _
        "  cellspacing=""0"">" & _
        "  <tr><td>" & _
        "   <font color=""@@@FORECOLOR@@@"" " & _
        "    style=""font-size: 9pt"">" & _
        "    <code>@@@CODE@@@</code>" & _
        "   </font>" & _
        "  </td></tr>" & _
        " </table>" & _
        " </td></tr>" & _
        " <tr><td>" & _
        " <b><font size=""2"">@@@TITLE@@@</font></b>" & _
        " </td></tr>" & _
        "</table>"
#End Region

#Region "列挙定義"
    ''' <summary>
    ''' 言語の種類
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum ProgLangType
        ''' <summary>
        ''' VB.NET
        ''' </summary>
        ''' <remarks></remarks>
        VBNet = 0
        ''' <summary>
        ''' C#.NET
        ''' </summary>
        ''' <remarks></remarks>
        CSharp = 1
        ''' <summary>
        ''' SQLServer
        ''' </summary>
        ''' <remarks></remarks>
        SQLServer = 2
    End Enum

#End Region

#Region "変数定義"
    ''' <summary>
    ''' インスタンス
    ''' </summary>
    ''' <remarks></remarks>
    Private Shared instanceList() As CodeConverterToHtml = _
        New CodeConverterToHtml() { _
            New VbCodeConverterToHtml(), _
            New CSharpCodeConverterToHtml(), _
            New SqlServerCodeConverterToHtml() _
        }

#End Region

#Region "コンストラクタ"
    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <remarks></remarks>
    Protected Sub New()

    End Sub

#End Region

#Region "インスタンスを取得"
    ''' <summary>
    ''' インスタンスを取得
    ''' </summary>
    ''' <param name="type">言語の種類</param>
    ''' <returns>インスタンス</returns>
    ''' <remarks></remarks>
    Public Shared Function GetInstance( _
        ByVal type As ProgLangType) As CodeConverterToHtml

        Return instanceList(type)
    End Function
#End Region

#Region "ソースコードをHTMLに変換する。"
    ''' <summary>
    ''' ソースコードをHTMLに変換する。
    ''' </summary>
    ''' <param name="src">ソースコード</param>
    ''' <returns>HTML</returns>
    ''' <remarks></remarks>
    Public Function ConvertCodeToHtml(ByVal src As StringAs String
        Return Me.ConvertCodeToHtml(src, Me.GetDefaultTitle())
    End Function

    ''' <summary>
    ''' ソースコードをHTMLに変換する。
    ''' </summary>
    ''' <param name="src">ソースコード</param>
    ''' <param name="title">タイトル</param>
    ''' <returns>HTML</returns>
    ''' <remarks></remarks>
    Public Function ConvertCodeToHtml( _
        ByVal src As StringByVal title As StringAs String

        Dim wkSrcList() As String = Nothing

        'ソースコードを行単位に分割する。
        '(vbCrLf, vbLf, vbCr毎)
        wkSrcList = src.Split( _
            New String() {vbCrLf, vbLf, vbCr}, _
            StringSplitOptions.None)

        '先頭の空白文字数を取得
        Dim cntIndent As Integer = _
            Me.GetHeadSpaceCount(wkSrcList)

        '先頭の空白文字を削除
        Me.RemoveStringList(wkSrcList, cntIndent)

        'HTMLエンコード
        Me.HtmlEncode(wkSrcList)

        Dim regEx As Regex = Me.GetRegEx()
        Dim regMatchEvaluator As _
            New MatchEvaluator(AddressOf Me.MatchEvaluator)

        'キーワードにタグを付加
        For i As Integer = 0 To wkSrcList.Length - 1
            wkSrcList(i) = wkSrcList(i).Replace( _
                    " ""&nbsp;")
            wkSrcList(i) = regEx.Replace( _
                    wkSrcList(i), regMatchEvaluator)
        Next

        Dim wkStr As String

        wkStr = String.Join(vbCrLf, wkSrcList)
        wkStr = wkStr.Replace(vbCrLf, "<br/>" & vbCrLf)

        Dim wkStrTable As String = Nothing

        wkStrTable = TABLE_STRING.Replace( _
            "@@@TITLE@@@", title)
        wkStrTable = wkStrTable.Replace( _
            "@@@BGCOLOR@@@"Me.GetBackColor())
        wkStrTable = wkStrTable.Replace( _
            "@@@FORECOLOR@@@"Me.GetForeColor())
        wkStrTable = wkStrTable.Replace( _
            "@@@TITLEBGCOLOR@@@"Me.GetTitleBackColor())
        wkStr = wkStrTable.Replace("@@@CODE@@@", wkStr)


        Return wkStr
    End Function

#Region "ヘルパーメソッド"
    ''' <summary>
    ''' HTMLにエンコードする
    ''' </summary>
    ''' <param name="srcLineList">ソース</param>
    ''' <returns>ソース(HTMLエンコード済)</returns>
    ''' <remarks></remarks>
    Private Function HtmlEncode(ByVal srcLineList() As StringAs String()

        For i As Integer = 0 To srcLineList.Length - 1
            srcLineList(i) = System.Web.HttpUtility.HtmlEncode(srcLineList(i))
        Next

        Return srcLineList

    End Function

    ''' <summary>
    ''' インデントの桁数を取得。
    ''' </summary>
    ''' <param name="srcLineList">ソース</param>
    ''' <returns>インデントの桁数</returns>
    ''' <remarks></remarks>
    Private Function GetHeadSpaceCount( _
        ByVal srcLineList() As StringAs Integer

        Const CHR_BLANK As Char = " "c
        Return Me.GetHeadSpaceCount(srcLineList, CHR_BLANK)
    End Function

    ''' <summary>
    ''' インデントの桁数を取得。
    ''' </summary>
    ''' <param name="srcLineList">ソース</param>
    ''' <param name="indentChar">インデントの文字</param>
    ''' <returns>インデントの桁数</returns>
    ''' <remarks></remarks>
    Private Function GetHeadSpaceCount( _
        ByVal srcLineList() As String, _
        ByVal indentChar As CharAs Integer

        Dim cntIndent As Integer = Int32.MaxValue

        If srcLineList.Length = 0 Then
            Return 0
        End If

        For Each wkSrc As String In srcLineList

            For i As Integer = 0 To wkSrc.Length - 1

                If wkSrc.Trim() = "" Then
                    Exit For
                End If

                If i >= cntIndent Then
                    Exit For
                End If

                If wkSrc(i) = indentChar.ToString() Then

                Else
                    cntIndent = Math.Min(i, cntIndent)
                    Exit For
                End If
            Next
        Next

        If cntIndent = Int32.MaxValue Then
            Return 0
        End If

        Return cntIndent

    End Function

    ''' <summary>
    ''' 各行からインデントを除去する。
    ''' </summary>
    ''' <param name="srcLineList">ソース</param>
    ''' <param name="cnt">インデントの桁数</param>
    ''' <returns>処理結果</returns>
    ''' <remarks></remarks>
    Private Function RemoveStringList( _
        ByVal srcLineList() As String, _
        ByVal cnt As IntegerAs Boolean

        If cnt = 0 Then
            Return True
        End If

        For i As Integer = 0 To srcLineList.Length - 1
            If srcLineList(i).Trim() = "" Then
                Continue For
            End If
            srcLineList(i) = srcLineList(i).Substring(cnt)
        Next

        Return True

    End Function
#End Region

#End Region

#Region "変換対象の文字列を検索する正規表現を取得する。"
    ''' <summary>
    ''' 変換対象の文字列を検索する正規表現を取得する。
    ''' </summary>
    ''' <returns>正規表現</returns>
    ''' <remarks></remarks>
    Protected MustOverride Function GetRegEx() As Regex
#End Region

#Region "正規表現の検索結果を編集する。"
    ''' <summary>
    ''' 正規表現の検索結果を編集する。
    ''' </summary>
    ''' <param name="match">検索結果</param>
    ''' <returns>編集結果</returns>
    ''' <remarks></remarks>
    Protected MustOverride Function MatchEvaluator( _
        ByVal match As Match) As String
#End Region

#Region "予約語一覧を取得する。"
    ''' <summary>
    ''' 予約語一覧を取得する。
    ''' </summary>
    ''' <returns>予約語一覧</returns>
    ''' <remarks></remarks>
    Public MustOverride Function GetReservedWords() As String()
#End Region

#Region "タイトルを取得"
    ''' <summary>
    ''' タイトルを取得
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public MustOverride Function GetDefaultTitle() As String
#End Region

#Region "タイトルを取得"
    ''' <summary>
    ''' 前景色(タイトル)を取得
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public MustOverride Function GetTitleBackColor() As String
#End Region

#Region "背景色を取得"
    ''' <summary>
    ''' 背景色を取得
    ''' </summary>
    ''' <returns>背景色</returns>
    ''' <remarks></remarks>
    Public MustOverride Function GetBackColor() As String
#End Region

#Region "前景色を取得"
    ''' <summary>
    ''' 前景色を取得
    ''' </summary>
    ''' <returns>前景色</returns>
    ''' <remarks></remarks>
    Public MustOverride Function GetForeColor() As String
#End Region


End Class

[VB.NET]CodeConverterToHtml

続きを読む


[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page2] [Programming .NET Tips]

[はじめに]
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page1]」からの続きです。

[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
Imports System.Text.RegularExpressions

''' <summary>
''' 変換(C#ソースコード→HTML)
''' </summary>
''' <remarks></remarks>
Public Class CSharpCodeConverterToHtml
    Inherits CodeConverterToHtml

#Region "定数定義"
    ''' <summary>
    ''' 背景色
    ''' </summary>
    ''' <remarks></remarks>
    Private Const BACK_COLOR As String = "#FFFFE0"

    ''' <summary>
    ''' 背景色(タイトル)
    ''' </summary>
    ''' <remarks></remarks>
    Private Const BACK_COLOR_TITLE As String = "#66CCCC"

    ''' <summary>
    ''' 前景色
    ''' </summary>
    ''' <remarks></remarks>
    Private Const FORE_COLOR As String = "#000000"

    ''' <summary>
    ''' 前景色(コメント)
    ''' </summary>
    ''' <remarks></remarks>
    Private Const FORE_COLOR_COMMENT As String = "#008040"

    ''' <summary>
    ''' 前景色(文字列)
    ''' </summary>
    ''' <remarks></remarks>
    Private Const FORE_COLOR_STRING As String = "#FF0000"

    ''' <summary>
    ''' 前景色(予約語)
    ''' </summary>
    ''' <remarks></remarks>
    Private Const FORE_COLOR_RESERVED_WORD As String = "#0000FF"
#End Region

#Region "変数定義"
    ''' <summary>
    ''' 正規表現
    ''' </summary>
    ''' <remarks></remarks>
    Private m_RegEx As Regex = Nothing

    ''' <summary>
    ''' 予約語一覧
    ''' </summary>
    ''' <remarks></remarks>
    Private m_ReservedWords As New List(Of String)
#End Region

#Region "コンストラクタ"
    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()

    End Sub
#End Region

#Region "変換対象の文字列を検索する正規表現を取得する。"
    ''' <summary>
    ''' 変換対象の文字列を検索する正規表現を取得する。
    ''' </summary>
    ''' <returns>正規表現</returns>
    ''' <remarks></remarks>
    Protected Overrides Function GetRegEx() As Regex
        If Not (Me.m_RegEx Is NothingThen
            Return Me.m_RegEx
        End If

        Dim strPatternAll As String = Nothing
        '正規表現パターン
        '※コメント判別
        '(先頭開始、0個以上の「&nbsp;」、1個以上の「//」、0個以上の任意文字)
        Dim strPattern1 As String = "^(&nbsp;)*(//)+.*"
        '※コメント判別
        '(先頭開始、0個以上の空白、1個以上の「//」、0個以上の任意文字)
        Dim strPattern2 As String = "^\s*(//)+.*"
        '※文字列判別
        '(「"」開始、0個以上の任意文字、最も手前の「"」終了)
        Dim strPattern3 As String = """.*?"""
        '※文字列判別
        '(「&quot;」開始、0個以上の任意文字、最も手前の「&quot;」終了)
        Dim strPattern4 As String = "&quot;.*?&quot;"
        '※予約語判別
        '(単語単位で予約語の何れかと同じ)
        Dim wkStr As String = String.Join("|"Me.GetReservedWords())
        Dim strPattern5 As String = "\b(" & wkStr & ")\b"

        strPatternAll = _
                    strPattern1 & "|" & strPattern2 & "|" & _
                    strPattern3 & "|" & strPattern4 & "|" & _
                    strPattern5

        Me.m_RegEx = New Regex(strPatternAll)

        Return Me.m_RegEx
    End Function
#End Region

#Region "正規表現の検索結果を編集する。"
    ''' <summary>
    ''' 正規表現の検索結果を編集する。
    ''' </summary>
    ''' <param name="match">検索結果</param>
    ''' <returns>編集結果</returns>
    ''' <remarks></remarks>
    Protected Overrides Function MatchEvaluator(ByVal match As Match) As String
        If match.Value.Replace("&nbsp;""").StartsWith("//"OrElse _
            match.Value.Trim().StartsWith("//"Then
            'コメントの場合            
            Dim wk1 As Integer = match.Value.IndexOf("//")
            If wk1 = 0 Then
                Return String.Format( _
                    "<font color='{0}'>{1}</font>", _
                    FORE_COLOR_COMMENT, _
                    match.Value.Substring(wk1))
            End If
            Return match.Value.Substring(0, wk1) & _
                    String.Format( _
                    "<font color='{0}'>{1}</font>", _
                    FORE_COLOR_COMMENT, _
                    match.Value.Substring(wk1))
        End If

        If (match.Value.StartsWith("&quot;"AndAlso _
            match.Value.EndsWith("&quot;")) OrElse _
           (match.Value.StartsWith(""""AndAlso _
            match.Value.EndsWith("""")) Then
            '文字列の場合            
            Return String.Format( _
                "<font color='{0}'>{1}</font>", _
                FORE_COLOR_STRING, _
                match.Value)
        End If

        '予約語の場合
        Return String.Format( _
            "<font color='{0}'>{1}</font>", _
            FORE_COLOR_RESERVED_WORD, _
            match.Value)
    End Function
#End Region

#Region "予約語一覧を取得する。"
    ''' <summary>
    ''' 予約語一覧を取得する。
    ''' </summary>
    ''' <returns>予約語一覧</returns>
    ''' <remarks></remarks>
    Public Overrides Function GetReservedWords() As String()
        If Me.m_ReservedWords.Count > 0 Then
            Return Me.m_ReservedWords.ToArray()
        End If

        With Me.m_ReservedWords

            .AddRange(New String() {"abstract""as""base""bool""break"})
            .AddRange(New String() {"byte""case""catch""char""checked"})
            .AddRange(New String() {"class""const""continue""decimal""decimal"})
            .AddRange(New String() {"default""delegate""do""double""else"})
            .AddRange(New String() {"enum""event""explicit""extern""false"})
            .AddRange(New String() {"finally""fixed""float""for""foreach"})
            .AddRange(New String() {"from""get""goto""group""if"})
            .AddRange(New String() {"implicit""in""int""interface""internal"})
            .AddRange(New String() {"into""is""join""let""lock"})
            .AddRange(New String() {"long""namespace""new""null""object"})
            .AddRange(New String() {"operator""orderby""out""override""params"})
            .AddRange(New String() {"partial""private""protected""public""readonly"})
            .AddRange(New String() {"ref""return""sbyte""sealed""select"})
            .AddRange(New String() {"set""short""sizeof""stackalloc""static"})
            .AddRange(New String() {"string""struct""switch""this""throw"})
            .AddRange(New String() {"true""try""typeof""uint""ulong"})
            .AddRange(New String() {"unchecked""unsafe""ushort""using""value"})
            .AddRange(New String() {"virtual""void""volatile""where""while"})
            .AddRange(New String() {"yield"})

        End With

        Return Me.m_ReservedWords.ToArray()

    End Function
#End Region

#Region "タイトルを取得"
    ''' <summary>
    ''' タイトルを取得
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overrides Function GetDefaultTitle() As String
        Return "C#"
    End Function
#End Region

#Region "背景色(タイトル)を取得"
    ''' <summary>
    ''' 背景色(タイトル)を取得
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overrides Function GetTitleBackColor() As String
        Return BACK_COLOR_TITLE
    End Function
#End Region

#Region "背景色を取得"
    ''' <summary>
    ''' 背景色を取得
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overrides Function GetBackColor() As String
        Return BACK_COLOR
    End Function
#End Region

#Region "前景色を取得"
    ''' <summary>
    ''' 前景色を取得
    ''' </summary>
    ''' <returns>前景色</returns>
    ''' <remarks></remarks>
    Public Overrides Function GetForeColor() As String
        Return FORE_COLOR
    End Function
#End Region

End Class

[VB.NET]CSharpCodeConverterToHtml.vb

[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page3] [Programming .NET Tips]

[はじめに]
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page2]」からの続きです。

[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
Imports System.Text.RegularExpressions

''' <summary>
''' 変換(SQLServerコード→HTML)
''' </summary>
''' <remarks></remarks>
Public Class SqlServerCodeConverterToHtml
    Inherits CodeConverterToHtml

#Region "定数定義"
    ''' <summary>
    ''' 背景色
    ''' </summary>
    ''' <remarks></remarks>
    Private Const BACK_COLOR As String = "#FFFFE0"

    ''' <summary>
    ''' 背景色(タイトル)
    ''' </summary>
    ''' <remarks></remarks>
    Private Const BACK_COLOR_TITLE As String = "#66CCCC"

    ''' <summary>
    ''' 前景色
    ''' </summary>
    ''' <remarks></remarks>
    Private Const FORE_COLOR As String = "#000000"

    ''' <summary>
    ''' 前景色(コメント)
    ''' </summary>
    ''' <remarks></remarks>
    Private Const FORE_COLOR_COMMENT As String = "#008040"

    ''' <summary>
    ''' 前景色(文字列)
    ''' </summary>
    ''' <remarks></remarks>
    Private Const FORE_COLOR_STRING As String = "#FF0000"

    ''' <summary>
    ''' 前景色(予約語)
    ''' </summary>
    ''' <remarks></remarks>
    Private Const FORE_COLOR_RESERVED_WORD As String = "#0000FF"
#End Region

#Region "変数定義"
    ''' <summary>
    ''' 正規表現
    ''' </summary>
    ''' <remarks></remarks>
    Private m_RegEx As Regex = Nothing

    ''' <summary>
    ''' 予約語一覧
    ''' </summary>
    ''' <remarks></remarks>
    Private m_ReservedWords As New List(Of String)
#End Region

#Region "コンストラクタ"
    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()

    End Sub
#End Region

#Region "変換対象の文字列を検索する正規表現を取得する。"
    ''' <summary>
    ''' 変換対象の文字列を検索する正規表現を取得する。
    ''' </summary>
    ''' <returns>正規表現</returns>
    ''' <remarks></remarks>
    Protected Overrides Function GetRegEx() As Regex
        If Not (Me.m_RegEx Is NothingThen
            Return Me.m_RegEx
        End If

        Dim strPatternAll As String = Nothing
        '正規表現パターン
        '※コメント判別
        '(先頭開始、0個以上の「&nbsp;」、1個以上の「--」、0個以上の任意文字)
        Dim strPattern1 As String = "^(&nbsp;)*(--)+.*"
        '※コメント判別
        '(先頭開始、0個以上の空白、1個以上の「--」、0個以上の任意文字)
        Dim strPattern2 As String = "^\s*(--)+.*"
        '※文字列判別
        '(「'」開始、0個以上の任意文字、最も手前の「'」終了)
        Dim strPattern3 As String = "'.*?'"
        '※予約語判別
        '(単語単位で予約語の何れかと同じ)
        Dim wkStr As String = String.Join("|"Me.GetReservedWords())
        Dim strPattern4 As String = "\b(" & wkStr & ")\b"

        strPatternAll = _
                    strPattern1 & "|" & strPattern2 & "|" & _
                    strPattern3 & "|" & strPattern4 

        Me.m_RegEx = New Regex(strPatternAll, RegexOptions.IgnoreCase)

        Return Me.m_RegEx
    End Function
#End Region

#Region "正規表現の検索結果を編集する。"
    ''' <summary>
    ''' 正規表現の検索結果を編集する。
    ''' </summary>
    ''' <param name="match">検索結果</param>
    ''' <returns>編集結果</returns>
    ''' <remarks></remarks>
    Protected Overrides Function MatchEvaluator(ByVal match As Match) As String
        If match.Value.Replace("&nbsp;""").StartsWith("--"OrElse _
            match.Value.Trim().StartsWith("--"Then
            'コメントの場合            
            Dim wk1 As Integer = match.Value.IndexOf("--")
            If wk1 = 0 Then
                Return String.Format( _
                    "<font color='{0}'>{1}</font>", _
                    FORE_COLOR_COMMENT, _
                    match.Value.Substring(wk1))
            End If
            Return match.Value.Substring(0, wk1) & _
                    String.Format( _
                    "<font color='{0}'>{1}</font>", _
                    FORE_COLOR_COMMENT, _
                    match.Value.Substring(wk1))
        End If

        If match.Value.StartsWith("'"AndAlso _
            match.Value.EndsWith("'"Then
            '文字列の場合            
            Return String.Format( _
                "<font color='{0}'>{1}</font>", _
                FORE_COLOR_STRING, _
                match.Value)
        End If

        '予約語の場合
        Return String.Format( _
            "<font color='{0}'>{1}</font>", _
            FORE_COLOR_RESERVED_WORD, _
            match.Value)
    End Function
#End Region

#Region "予約語一覧を取得する。"
    ''' <summary>
    ''' 予約語一覧を取得する。
    ''' </summary>
    ''' <returns>予約語一覧</returns>
    ''' <remarks></remarks>
    Public Overrides Function GetReservedWords() As String()
        If Me.m_ReservedWords.Count > 0 Then
            Return Me.m_ReservedWords.ToArray()
        End If

        With Me.m_ReservedWords

            .AddRange(New String() {"ADD""ALL""ALTER""AND""ANY"})
            .AddRange(New String() {"AS""ASC""AUTHORIZATION""BACKUP""BEGIN"})
            .AddRange(New String() {"BETWEEN""BREAK""BROWSE""BULK""BY"})
            .AddRange(New String() {"CASCADE""CASE""CHECK""CHECKPOINT""CLOSE"})
            .AddRange(New String() {"CLUSTERED""COALESCE""COLLATE""COLUMN""COMMIT"})
            .AddRange(New String() {"COMPUTE""CONSTRAINT""CONTAINS""CONTAINSTABLE""CONTINUE"})
            .AddRange(New String() {"CONVERT""CREATE""CROSS""CURRENT""CURRENT_DATE"})
            .AddRange(New String() {"CURRENT_TIME""CURRENT_TIMESTAMP""CURRENT_USER""CURSOR""DATABASE"})
            .AddRange(New String() {"DBCC""DEALLOCATE""DECLARE""DEFAULT""DELETE"})
            .AddRange(New String() {"DENY""DESC""DISK""DISTINCT""DISTRIBUTED"})
            .AddRange(New String() {"DOUBLE""DROP""DUMP""ELSE""END"})
            .AddRange(New String() {"ERRLVL""ESCAPE""EXCEPT""EXEC""EXECUTE"})
            .AddRange(New String() {"EXISTS""EXIT""EXTERNAL""FETCH""FILE"})
            .AddRange(New String() {"FILLFACTOR""FOR""FOREIGN""FREETEXT""FREETEXTTABLE"})
            .AddRange(New String() {"FROM""FULL""FUNCTION""GOTO""GRANT"})
            .AddRange(New String() {"GROUP""HAVING""HOLDLOCK""IDENTITY""IDENTITY_INSERT"})
            .AddRange(New String() {"IDENTITYCOL""IF""IN""INDEX""INNER"})
            .AddRange(New String() {"INSERT""INTERSECT""INTO""IS""JOIN"})
            .AddRange(New String() {"KEY""KILL""LEFT""LIKE""LINENO"})
            .AddRange(New String() {"LOAD""MERGE""NATIONAL""NOCHECK""NONCLUSTERED"})
            .AddRange(New String() {"NOT""NULL""NULLIF""OF""OFF"})
            .AddRange(New String() {"OFFSETS""ON""OPEN""OPENDATASOURCE""OPENQUERY"})
            .AddRange(New String() {"OPENROWSET""OPENXML""OPTION""OR""ORDER"})
            .AddRange(New String() {"OUTER""OVER""PERCENT""PIVOT""PLAN"})
            .AddRange(New String() {"PRECISION""PRIMARY""PRINT""PROC""PROCEDURE"})
            .AddRange(New String() {"PUBLIC""RAISERROR""READ""READTEXT""RECONFIGURE"})
            .AddRange(New String() {"REFERENCES""REPLICATION""RESTORE""RESTRICT""RETURN"})
            .AddRange(New String() {"REVERT""REVOKE""RIGHT""ROLLBACK""ROWCOUNT"})
            .AddRange(New String() {"ROWGUIDCOL""RULE""SAVE""SCHEMA""SECURITYAUDIT"})
            .AddRange(New String() {"SELECT""SEMANTICKEYPHRASETABLE""SEMANTICSIMILARITYDETAILSTABLE"})
            .AddRange(New String() {"SEMANTICSIMILARITYTABLE""SESSION_USER"})
            .AddRange(New String() {"SET""SETUSER""SHUTDOWN""SOME"})
            .AddRange(New String() {"STATISTICS""SYSTEM_USER""TABLE"})
            .AddRange(New String() {"TABLESAMPLE""TEXTSIZE""THEN"})
            .AddRange(New String() {"TO""TOP""TRAN"})
            .AddRange(New String() {"TRANSACTION""TRIGGER""TRUNCATE"})
            .AddRange(New String() {"TRY_CONVERT""TSEQUAL""UNION"})
            .AddRange(New String() {"UNIQUE""UNPIVOT""UPDATE"})
            .AddRange(New String() {"UPDATETEXT""USE""USER"})
            .AddRange(New String() {"VALUES""VARYING""VIEW"})
            .AddRange(New String() {"WAITFOR""WHEN""WHERE"})
            .AddRange(New String() {"WHILE""WITH""WITHINGROUP""WRITETEXT"})

        End With

        Return Me.m_ReservedWords.ToArray()

    End Function
#End Region

#Region "タイトルを取得"
    ''' <summary>
    ''' タイトルを取得
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overrides Function GetDefaultTitle() As String
        Return "SQLServer"
    End Function
#End Region

#Region "背景色(タイトル)を取得"
    ''' <summary>
    ''' 背景色(タイトル)を取得
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overrides Function GetTitleBackColor() As String
        Return BACK_COLOR_TITLE
    End Function
#End Region

#Region "背景色を取得"
    ''' <summary>
    ''' 背景色を取得
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overrides Function GetBackColor() As String
        Return BACK_COLOR
    End Function
#End Region

#Region "前景色を取得"
    ''' <summary>
    ''' 前景色を取得
    ''' </summary>
    ''' <returns>前景色</returns>
    ''' <remarks></remarks>
    Public Overrides Function GetForeColor() As String
        Return FORE_COLOR
    End Function
#End Region

End Class

[VB.NET]SqlServerCodeConverterToHtml

[Review]ドラゴンクエストIX 星空の守り人 [Game's Review]

(1)レビュー
 このゲームの醍醐味は、
 メインストーリーよりもクリア後にあると思います

 1677万種類もある宝の地図や
 100以上のクエスト、
 ワイヤレス通信によるマルチプレイなどなど(≧Д≦)ゞ

 宝の地図はすれ違い通信でも交換可能なので、
 今の時期に大きめの駅に行けばすごい事に(笑)

 あと発売後一年間は、クエストが配信されるようなので、
 しばらくは飽きることなく楽しめると思います。

 欲を言えば、L、Rによる回転をもう少し充実させて欲しかったですね。
 DSでは難しいのかな。。。

(2)リンク
ドラゴンクエストIX 星空の守り人

ドラゴンクエストIX 星空の守り人

  • 出版社/メーカー: スクウェア・エニックス
  • メディア: Video Game

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[Review]ドラゴンクエストIX 星空の守り人 公式ガイドブック 上下巻●世界/知識編 [Book's Review(Book)]

[Review]ドラゴンクエストIX 星空の守り人 公式ガイドブック 上下巻●世界/知識編

(1)レビュー
 今さらかもしれませんが…

 ドラクエ9をノーマルクリア後、
 コンプリートを目指す方にオススメの1冊です!

 但し、掲載情報は、
 初版発売までのデータが対象なのでご注意を。。。 

(2)リンク
ドラゴンクエストIX 星空の守り人 公式ガイドブック 上巻●世界編 (SE-MOOK)

ドラゴンクエストIX 星空の守り人 公式ガイドブック 上巻●世界編 (SE-MOOK)

  • 作者:
  • 出版社/メーカー: スクウェア・エニックス
  • 発売日: 2009/09/11
  • メディア: ムック

ドラゴンクエストIX 星空の守り人 公式ガイドブック 下巻●知識編 (SE-MOOK)

ドラゴンクエストIX 星空の守り人 公式ガイドブック 下巻●知識編 (SE-MOOK)

  • 作者:
  • 出版社/メーカー: スクウェア・エニックス
  • 発売日: 2009/09/11
  • メディア: ムック

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[.NET]QRコードの変換 [Programming .NET Tips]

[はじめに]
・最近、仕事でQRコードを扱うシステム開発に携わる機会が多いので、
 .NETでも作ってみました。
 .NET FrameworkではQRコードを標準でサポートしていない為、
 外部のコンポーネントを利用しています。

[関連情報]
QRコードの仕様 (デンソーウェーブのサイト)
 http://www.qrcode.com
外部コンポーネント
 「ThoughtWorks.QRCode.dll」を参照しています。
 [Open Source QRCode Library] からダウンロードできます。
 「ThoughtWorks.QRCode.dll」を参照は、「参照設定」から追加して下さい。
 (※追加しないとコンパイルエラーになります。)
  参照設定

[ソース]
 QRコードの変換ユーティリティクラスです。
 提供するメソッドは、以下の2つです。
 ・Encodeメソッド:文字列をQRコードのイメージに変換する。
 ・Decodeメソッド:QRコードのイメージから文字列を取得する。
Imports System.IO
Imports System.Text
Imports ThoughtWorks.QRCode.Codec
Imports ThoughtWorks.QRCode.Codec.Data
Imports ThoughtWorks.QRCode.Codec.Util

''' <summary>
''' QRコード関連のユーティリティ
''' </summary>
''' <remarks></remarks>
Public NotInheritable Class QRCodeUtil

    '[説明]
    '[参照設定]
    '   ThoughtWorks.QRCode.dll
    '  上記DLLは、以下のサイトよりダウンロード可能
    '  [Open Source QRCode Library]
    '  [http://www.codeproject.com/KB/cs/qrcode.aspx]
    '[QRコードの仕様]
    '   デンソーウェーブの下記サイトをご参照下さい。
    '   [QR Code.com]
    '   [http://www.qrcode.com]


    ''' <summary>
    ''' デフォルトのエンコーディング名
    ''' </summary>
    ''' <remarks></remarks>
    Private Const DEFAULT_ENCODING_NAME As String = "shift_jis"

    ''' <summary>
    ''' デフォルトのエンコーディング
    ''' </summary>
    ''' <remarks></remarks>
    Private Shared ReadOnly DEFAULT_ENCODING As Encoding _
             = Encoding.GetEncoding(DEFAULT_ENCODING_NAME)

#Region "文字列をQRコードに変換する。"

    ''' <summary>
    ''' 文字列をQRコードに変換する。
    ''' </summary>
    ''' <param name="txtData">変換元の文字列</param>
    ''' <param name="encMode">情報の種類(Byte/AlphaNumeric/Numeric)</param>
    ''' <param name="errCorrect">誤り訂正能力(L/M/Q/H)</param>
    ''' <param name="scale">1セル当りのピクセル数</param>
    ''' <param name="version">QRコードに格納する情報量を決める型番(1~40)</param>
    ''' <returns>QRコードのイメージ</returns>
    ''' <remarks></remarks>
    Public Shared Function Encode( _
        ByVal txtData As String, _
        ByVal encMode As QRCodeEncoder.ENCODE_MODE, _
        ByVal errCorrect As QRCodeEncoder.ERROR_CORRECTION, _
        ByVal scale As Integer, _
        ByVal version As Integer _
        ) As Image

        Return Encode( _
            txtData, encMode, errCorrect, _
            scale, version, DEFAULT_ENCODING)
    End Function


    ''' <summary>
    ''' 文字列をQRコードに変換する。
    ''' </summary>
    ''' <param name="txtData">変換元の文字列</param>
    ''' <param name="encMode">情報の種類(Byte/AlphaNumeric/Numeric)</param>
    ''' <param name="errCorrect">誤り訂正能力(L/M/Q/H)</param>
    ''' <param name="scale">1セル当りのピクセル数</param>
    ''' <param name="version">QRコードに格納する情報量を決める型番(1~40)</param>
    ''' <param name="encoding">エンコーディング</param>
    ''' <returns>QRコードのイメージ</returns>
    ''' <remarks></remarks>
    Public Shared Function Encode( _
        ByVal txtData As String, _
        ByVal encMode As QRCodeEncoder.ENCODE_MODE, _
        ByVal errCorrect As QRCodeEncoder.ERROR_CORRECTION, _
        ByVal scale As Integer, _
        ByVal version As Integer, _
        ByVal encoding As System.Text.Encoding _
        ) As Image

        Dim errMsg As String = Nothing

        Dim qrEnc As QRCodeEncoder = Nothing
        Dim img As Image = Nothing

        '引数チェック
        '[変換元の文字列]
        '   Nothingと空文字列はNGとする。
        If String.IsNullOrEmpty(txtData) Then
            Throw New ArgumentException( _
                "Encode#txtDataが、Nothingか空文字列です。")
        End If

        '[QRコードに格納する情報量を決める型番]
        '   1~40の範囲外はNGとする。
        If version < 1 OrElse version > 40 Then
            errMsg = String.Format( _
                "Versionが範囲外[1~40]です。値:[{0}]", version)
            Throw New ArgumentOutOfRangeException( _
                "Encode#version", errMsg)
        End If

        qrEnc = New QRCodeEncoder()

        '「情報の種類」を設定
        '   QRCodeEncoder.ENCODE_MODE.BYTE
        '   QRCodeEncoder.ENCODE_MODE.NUMERIC
        '   QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC
        qrEnc.QRCodeEncodeMode = encMode

        '「誤り訂正能力」を設定
        '   QRCodeEncoder.ERROR_CORRECTION.L
        '   QRCodeEncoder.ERROR_CORRECTION.M
        '   QRCodeEncoder.ERROR_CORRECTION.Q
        '   QRCodeEncoder.ERROR_CORRECTION.H
        qrEnc.QRCodeErrorCorrect = errCorrect

        '「1セル当りのピクセル数」を設定
        '   数値が大きい程、画像のサイズは大きくなる。
        qrEnc.QRCodeScale = scale

        '「QRコードに格納する情報量を決める型番」を設定
        '   1から40までの整数を指定
        '   格納するデータ長が長い程、
        '   より大きいバージョン番号を必要とする。
        '   QRコードを構成するセルの数も多くなる。
        qrEnc.QRCodeVersion = version

        img = qrEnc.Encode(txtData, encoding)

        Return img
    End Function
#End Region

#Region "QRコードのイメージから文字列を復元する。"

    ''' <summary>
    ''' QRコードのイメージから文字列を復元する。
    ''' </summary>
    ''' <param name="imgData">QRコードのイメージ</param>
    ''' <returns>復元後の文字列</returns>
    ''' <remarks></remarks>
    Public Shared Function Decode( _
        ByVal imgData As Image _
        ) As String
        Return Decode(imgData, DEFAULT_ENCODING)
    End Function


    ''' <summary>
    ''' QRコードのイメージから文字列を復元する。
    ''' </summary>
    ''' <param name="imgData">QRコードのイメージ</param>
    ''' <param name="encoding">エンコーディング</param>
    ''' <returns>復元後の文字列</returns>
    ''' <remarks></remarks>
    Public Shared Function Decode( _
        ByVal imgData As Image, _
        ByVal encoding As System.Text.Encoding _
        ) As String

        Dim qrDec As QRCodeDecoder = Nothing
        Dim qrBitmap As QRCodeBitmapImage = Nothing
        Dim txtData As String = Nothing

        '引数チェック
        '[変換元の文字列]
        '   NothingはNGとする。
        If imgData Is Nothing Then
            Throw New ArgumentNullException( _
                "Decode#imgDataがNothingです。")
        End If

        qrDec = New QRCodeDecoder()
        qrBitmap = New QRCodeBitmapImage(New Bitmap(imgData))

        txtData = qrDec.decode(qrBitmap, encoding)

        Return txtData
    End Function

#End Region

End Class
[VB.NET]QRコードの変換ユーティリティ

[雑記]携帯電話の待受け画像って何にしてる!? [雑記]

プレスブログのお題があったので乗ってみました(笑)

富士山
7、8年位前に新幹線から撮影した富士山です。
当時の携帯はまだカメラの性能が乏しかったので
少し画像は悪いですが、
待ち受けとしては充分です。

猫の門柱
偶然通りがかったらネコが集まっていたそうです。
(画像は頂き物です(^^))

ルミナリエ
ルミナリエです。
普通の携帯の写メですが、
綺麗なのでよく待ち受けにしています。

サザンテラスシティー
携帯にもともと入っていた画像です。
サザンテラスシティーです。



[.NET]データベースの接続文字列の書式を簡単に知るには? [Programming .NET Tips]

[はじめに]
・.NETのアプリケーションからデータベースに接続する場合、
 接続文字列という情報が必要になります。(.NETに限った話ではありませんが…)
 .NETのアプリケーション開発で、接続文字列の書式が分からない場合、
 書籍やインターネット、他のアプリケーションを参考にすることがありますが、
 「Visual Studio 2008」の機能を使って、接続文字列を簡単に取得する方法があります。
 (※「Visual Studio 2008」とありますが、
   「Visual Studio.NET 2002」、「Visual Studio.NET 2003」、
   「Visual Studio 2005」でも可能です。
   試していないので若干方法が異なると思いますがご了承下さい。)

[前提条件]
・「Visual Studio 2008」がインストールされていること。
・データベースにアクセスできること。

[手順]
(1)「Visual Studio 2008」を起動し、「サーバーエクスプローラ」を選択します。
  (※「サーバーエクスプローラ」が表示されない場合は、「ツール」から表示可能にできます。)
sql2005_01.JPG

(2)「データ接続」を右クリックし、「接続の追加」を選択します。
sql2005_02.JPG

sql2005_03.JPG

(3)「データソースの変更」画面で、「データソース」や「データプロバイダ」を選択します。
  選択する内容は、接続するデータベースの種類によって変わります。
  ここでは、「SQL Server 2005 Express Edition」に接続する例として、
  「データソース」に「Microsoft SQL Server」、
  「データプロバイダ」に「.NETFrameworkSQLServer用データプロバイダ」を選択します。
sql2005_04.JPG

(4)「接続の追加」画面で、接続情報を入力します。
  ここでは、
  ・接続先のサーバを「(local)」、
  ・認証方式を「Windows認証」、
  ・接続先データベースを「master」
  とします。
 接続情報を入力したら、「テスト接続」ボタンを押して、
 データベースの接続がうまく行えることを確認します。
sql2005_05.JPG

(5)データベースの接続が成功したら、確認画面が表示されます。
  確認メッセージを「OK」ボタンで閉じ、
  「詳細設定」ボタンを押し「詳細プロパティ」画面を表示します。
sql2005_06.JPG

(6)「詳細プロパティ」画面の一番下の欄に、接続文字列が表示されます。
  通常のテキストなので、コピーして流用することもできます。
  この場合の書式文字列は、
  「Data Source=(local);Initial Catalog=master;Integrated Security=True」
  です。
sql2005_07.JPG

[関連サイト]
(1)接続文字列の使用
 http://msdn.microsoft.com/ja-jp/library/ms254978(VS.80).aspx

[Review]電子ブロック [Toy's Review]

(1)レビュー
 学研より発売された電気実験キットです。
 抵抗、トランジスタ、ダイオード、豆電球等のパーツが、
 ブロックになっており、組み立てるだけで、
 簡単に電気回路を組み立てることができます。

 私は小学校3年の頃にクリスマスプレゼントで買ってもらいましたが、
 予め回路の組立て例が用意されているので、
 小学生でも充分楽しめる内容でした。

 部品の意味を知らなくても、
 電子ブザーや簡易ラジオを簡単に組み立てられる。
 これが電子ブロックの醍醐味だと思います。

 1981年に生産が中止になりましたが、
 「大人の科学」シリーズとして復刻版が発売されたようです。

 「大人の科学」とありますが、子供でも充分楽しめると思います。
 子供の理系離れが進んでいる昨今、薦めてみてはどうでしょうか?
 
(2)リンク
大人の科学 学研電子ブロックEX-150

大人の科学 学研電子ブロックEX-150

  • 出版社/メーカー: 学研
  • メディア: おもちゃ&ホビー
大人の科学 製品版 新装版 電子ブロックEX150

大人の科学 製品版 新装版 電子ブロックEX150

  • 出版社/メーカー: 学研
  • メディア: おもちゃ&ホビー
大人の科学 学研電子ブロックEX150

大人の科学 学研電子ブロックEX150

  • 出版社/メーカー: 学研
  • メディア: おもちゃ&ホビー
大人の科学 学研電子ブロックEX150

大人の科学 学研電子ブロックEX150

  • 出版社/メーカー: 学研
  • メディア: おもちゃ&ホビー
大人の科学 学研電子ブロックEX150入門セット

大人の科学 学研電子ブロックEX150入門セット

  • 出版社/メーカー: 学研
  • メディア: おもちゃ&ホビー
大人の科学 電子ブロックDXパック210

大人の科学 電子ブロックDXパック210

  • 出版社/メーカー: 学研
  • メディア: おもちゃ&ホビー
大人の科学シリーズ マイキット150復刻版

大人の科学シリーズ マイキット150復刻版

  • 出版社/メーカー: 学研
  • メディア: エレクトロニクス

[雑記]実家のネットワーク不具合 [雑記]

ここ数週間、実家のインターネット環境(無線LAN)が
不安定だったそうです。

家族に私以外にネットワークが分かる人がいなかったので、
私が帰省するまで放置だったそうです。。。

…なので、GW中ネットワークの調査をしていました。

問題を切り分ける為に、有線と無線で違いを確認すると、
有線だとインターネットを閲覧できるが、
無線だと閲覧できないことがわかりました。

「閲覧できない」というのは、「接続はできる」が
Internet Explorer(IE8)でホームページを開こうとすると、
「このページは表示できません」エラーになるのです。

…で、ネットワーク診断ツールで原因を調べてみると、
こんな結果が返ってきました。。。
ネットワーク診断ツールの診断結果
--------------------------------------------------------
次の複数層サービスプロバイダ(LSP)に
問題があることが検出されました。K7Computing LSP
このLSPを削除しますか?
--------------------------------------------------------

「K7Computing」というのは
「ウィルスセキュリティZERO」のプログラムを指しています。

「ウィルスセキュリティZERO」が悪いのか?
そんな馬鹿な!
…と思いつつ、「削除」を開始すると
なぜか実行に失敗して以降の処理を続行できなくなってしまいます。。。

仕方なく「ウィルスセキュリティZERO」をアンインストールして、
再度同様の手順を踏むと、
今度は「ルータ等の接続が間違っていないか?」の結果が出てくる。

結局、ルータを再設定して、関連する機器を再起動をかけたら、
何とか安定して動作するようになりました。

「K7Computing」についてはネットで調べてみると、
同様の現象に遭遇している方が何人かいましたが、
根本的な原因が分からないような内容ばかりでした。

恐らく他の原因が起因して「K7Computingが…」と
出ていたのかなぁ。。。




nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

[Review]Acronis Disk Director Personal [Software's Review]

(1)レビュー
 ハードディスクのパーティションを作成したり、
 他のパーティションに容量を移したりするツールです。

 パソコンのCドライブの残容量が少なくなってきたので、購入しました。
 今回はCドライブの残容量が2GB弱でデフラグも出来ない状態だったので、
 Dドライブから20GB移動しました。
 正確な時間は計っていませんが、およそ5分で作業が完了したと思います。

 パーティションを管理するツールは過去にも触れたことがありますが、
 ここまで手軽に操作できて安価(1,980円)なツールは今までに見た記憶がありません。

 作業時間が短いので、作業前に悩むことなく、
 気軽にパーティションを変更ができるのでオススメです。
 
(2)リンク
Acronis DiskDirector Personal (説明扉付スリムパッケージ版)

Acronis DiskDirector Personal (説明扉付スリムパッケージ版)

  • 出版社/メーカー: ソースネクスト
  • メディア: CD-ROM





[Review]作って覚える Visual Basic 2005 Express Edition入門 [Book's Review (Develop)]

(1)レビュー
 対象の読者としてこれからプログラムを始める初心者を想定していて、
 専門用語を日常の身の回りのものに例えながらわかりやすく解説しています。

 『インスタンス』、『ポリモーフィズム』などについて、
 いろんな動物に置き換えて解説しています。
 (でも、『抽象クラス』や『インタフェース』は難しいかもw)

 著者の荻原さんはお仕事でご一緒させて頂いたことがありますが、
 Microsoft系の技術に長けていらっしゃる方です。

 p.s.表紙の青い象さんがかわいらしい。。。
(2)リンク
作って覚える Visual Basic 2005 Express Edition入門

作って覚える Visual Basic 2005 Express Edition入門

  • 作者: 荻原 裕之
  • 出版社/メーカー: 秀和システム
  • 発売日: 2007/03
  • メディア: 単行本


他にもいろんなシリーズがあります。

作って覚える Visual C# 2005 Express Edition 入門

作って覚える Visual C# 2005 Express Edition 入門

  • 作者: 荻原 裕之
  • 出版社/メーカー: 秀和システム
  • 発売日: 2007/05
  • メディア: 単行本


作って覚える Visual Basic 2008 Express Edition 入門

作って覚える Visual Basic 2008 Express Edition 入門

  • 作者: 荻原 裕之
  • 出版社/メーカー: 秀和システム
  • 発売日: 2008/11
  • メディア: 単行本


作って覚える Visual C# 2008 Express Edition 入門

作って覚える Visual C# 2008 Express Edition 入門

  • 作者: 荻原 裕之
  • 出版社/メーカー: 秀和システム
  • 発売日: 2008/12
  • メディア: 単行本


nice!(0)  コメント(0)  トラックバック(2) 
共通テーマ:

[Review]クイズマジックアカデミーDS(通常版) [Game's Review]

(1)レビュー
 一時期ゲーセンではまっていて、
 いつかはDSで出て欲しいなと思っていましたが、ようやくでました。

 このゲームの醍醐味はやはり対戦でしょう !!
 自宅に無線LANの環境があれば、全国のプレイヤーと対戦ができます。
 しかし、相手も同じゲームを持っていないとできないのが残念(>_<)
 ダウンロード対戦もありにして欲しかったなぁ。。。

 最新のクイズの問題がサーバーから配信されるので、
 インターネット経由でダウンロードして、常に最新のクイズを楽しめます! 

(2)リンク
クイズマジックアカデミーDS(通常版)

クイズマジックアカデミーDS(通常版)

  • 出版社/メーカー: コナミデジタルエンタテインメント
  • メディア: Video Game




タグ:QMA クイズ
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[Review]ドラゴンクエストV 天空の花嫁(DS版) [Game's Review]

(1)レビュー
 [DS版オリジナルの要素]
 ・花嫁候補が3人になった。
  ビアンカ、フローラに加えて、デボラが追加!
 ・すれちがい通信でオリジナル名産品集めが楽しめる。
  DSを閉じてかばんの中とかに入れておくだけで、
  ドラクエ5を持っている人とすれ違うと勝手に通信します。  
  他の人と通信するとお互いが作った『名産品』を交換するというもの。
  交換して受け取った名産品は専用の展示室に飾られます。

 モンスターを仲間にするシステムは従来通りです。
 以下は、はぐれメタルを仲間にした時の写真です。
 228匹目でグランバニアの洞窟で仲間にしました。
 はぐれメタル(その1)
 はぐれメタル(その2)

(2)リンク
ドラゴンクエストV 天空の花嫁

ドラゴンクエストV 天空の花嫁

  • 出版社/メーカー: スクウェア・エニックス
  • メディア: Video Game



タグ:ドラクエ
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[Review]ドラゴンクエストIV 導かれし者たち(DS版) [Game's Review]

(1)レビュー
 ドラクエ4は、ファミコン、プレステでプレイしましたが、
 思わず買ってしまいました!!

 リニューアル版では、プレステ版同様、6章までありますが、
 若干内容が異なります。

 裏ダンジョンは、ドラクエ8でお馴染みのあの二人組がでてきます(笑)

(2)リンク
ドラゴンクエストIV 導かれし者たち

ドラゴンクエストIV 導かれし者たち

  • 出版社/メーカー: スクウェア・エニックス
  • メディア: Video Game



nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[Review]Visual Studio 2008 Professional Edition with MSDN Professional Subscription [Software's Review]

(1)レビュー
 実際使っているものとはエディションは異なりますが。。。(DevelopmentEdition)

 プログラムで、.NET(『どっとねっと』と読みます)系のアプリケーションを
 開発する為の代表的なツールです。

 利用できる言語は、
 ・Visual C#.NET
 ・Visual Basic.NET
 ・Visual C++.NET
 で、Windows系、Web系、Office系のアプリケーションが簡単に作成できます。

 前バージョンからの違いとして、以下があります。
(1).NETFrameworkの複数バージョンをサポート
 ・.NETFrameworkのバージョンを2.0、3.0、3.5から選択できるようになりました。
  (前バージョンでは固定でした)
(2)Officeアプリケーションの構築を標準でサポート
(3)LINQによるデータ操作を統合
 ・前バージョンでは、XML、DB、オブジェクトの操作を
  各々の手法で操作していましたが、LINQにより操作が統一されました。
(4)WPF(WindowsPresentationFoundation)を使用可能
 ・WindowsVista風の画面を構築できます。
(5)Web開発のScript関連の技術強化
 ・AJAX、JSONにより、より優れた画面開発が可能になりました。
 ・JavaScript関連で、インテリセンスによる入力支援や
  デバッガを使用できるようになりました。

 
 まだインストールしたばかりですが、少しずつ覚えていきたいと思います。

 難点があるとすれば、お値段が高いことですね(笑)

(2)リンク
Visual Studio 2008 Professional Edition with MSDN Premium Subscription 更新パッケージ

Visual Studio 2008 Professional Edition with MSDN Premium Subscription 更新パッケージ

  • 出版社/メーカー: マイクロソフト
  • メディア: DVD-ROM

[Review]Visual Studio 2005 Team Editionfor for Software Developers with MSDN Premium 更新 [Software's Review]

(1)レビュー
 プログラムで、.NET(『どっとねっと』と読みます)系のアプリケーションを
 開発する為の代表的なツールです。

 利用できる言語は、
 ・Visual C#.NET
 ・Visual Basic.NET
 ・Visual C++.NET
 ・Visual J#.NET
 で、Windows系やWeb系のアプリケーションが簡単に作成できます。

 Web系に至っては、従来版ではIISのインストールが必須でしたが、
 このバージョンにおいてはVisualStudio自身が簡易Webサーバとなってくれるので、
 ちょっと試しに構築したい場合も、気軽に構築できたりします。

 あと単体テストを容易に進める為の、
 テストクラスの作成やカバレージを取る機能も搭載しています。
 従来版は別途ツールをインストールする必要がありましたが、
 標準で搭載しています。(TeamEdition系のみですが。。。)

 過去にいろんなプログラミングツールに触れてきましたが、
 一番シンプルでわかりやすいですね。
 言語(特にC#)もわかりやすい!!

 難点を言えば、お値段が高いですね(笑)

(2)リンク
Visual Studio 2005 Team Editionfor for Software Developers with MSDN Premium 更新

Visual Studio 2005 Team Editionfor for Software Developers with MSDN Premium 更新

  • 出版社/メーカー: マイクロソフト
  • メディア: CD-ROM



[Review]ドラゴンクエストVIII 空と海と大地と呪われし姫君 [Game's Review]

(1)レビュー
 本シリーズ初の3D対応のゲームです。

 従来シリーズは「上から見下ろす視点」でしたが、
 今作は「主人公視点」となることで、
 あたかも自分がフィールドを歩いたり洞窟を探検しているかのような
 感覚で楽しめました。
 「あたかも自分が~」ってところが、
 RPGの本来あるべき姿なのかなと思いました。
 (堀井雄二のこだわり!?)

 3Dのぐりぐりな動きには、2時間くらいのプレイで慣れると思います。
 また洞窟で方向が分からなくなって迷うのも楽しみ方の一つかなと…(笑)

 [今後のドラクエについて]
 次回作もそうですが、今回の3Dエンジンを使ったリニューアルも期待します!!

(2)リンク
ドラゴンクエストVIII 空と海と大地と呪われし姫君

ドラゴンクエストVIII 空と海と大地と呪われし姫君

  • 出版社/メーカー: スクウェア・エニックス
  • メディア: Video Game



nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[Review]ファミコンミニ スーパーマリオブラザーズ [Game's Review]

(1)レビュー
 旧ファミコン時代が懐かしく思い、つい買ってしまいました。
 当時のゲームは、シンプルが故に奥の深いゲームが多く、
 「スーパーマリオ」もその一つだと思います。

 【良い点】
 ・FC版と同様の操作性です。
 ・裏技もほぼ移植。
  以下、再現させた裏技。
  ・コンティニュー(タイトルからAボタン+スタート)
  ・スケートマリオ
   (ファイヤマリオで、土管から出た直前にAとBを同時押しっぱなし)
  ・マイナス1面(ステージ1-2)
  ・無限増殖
  ・透明パックンフラワー(8-4の水中面)
 【イマイチな点】
  ・9-1以降のステージがプレイできない。
   (FC版は「テニス」との併せ技が必要な為、GB、DSでは無理だと思いますが…)
  ・カメをハンマーブロスに当てようとすると、なぜかすり抜ける。(ステージ8-3)
   FC版では必ずヒットしていたはず。。。

(2)リンク
ファミコンミニ スーパーマリオブラザーズ

ファミコンミニ スーパーマリオブラザーズ

  • 出版社/メーカー: 任天堂
  • メディア: Video Game



nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ゲーム

[Review]Acronis True Image Personal 2 (説明扉付スリムパッケージ版) [Software's Review]

(1)レビュー
 このソフトは、パソコンのHDDをイメージとして外部記憶媒体に保存し、
 万が一の時に備えてバックアップを取得するツールです。

 会社で「Acronis True Image 11 Home」の評価をしているのですが、
 使い勝手が良かったので個人的にも購入しました。(下位バージョンですが…)

 ・バックアップ、復元の操作が簡単です。
 ・Windowsが起動できなくなっても、CD起動で復元可能です。
 ・イメージの保存先を、HDDだけでなくDVD-Rにも指定できます。(別途ライティングソフト要)

 但し、Vista未対応なので購入には注意が必要です。

(2)リンク
Acronis True Image Personal 2 (説明扉付スリムパッケージ版)

Acronis True Image Personal 2 (説明扉付スリムパッケージ版)

  • 出版社/メーカー: ソースネクスト
  • メディア: CD-ROM



[雑記]五月病、どうやって乗り切る!? [雑記]

今年のゴールデンウィークは最大16連休の大型だそうですが、
私は今日から連休開始です。

…なので、連休はその半分もありません(笑)

今日は、とりあえず洗濯やら部屋の掃除などをしてから、
帰省の準備をする予定です。

今日は連休初日ということで、先ほど起床したばかりなのですが、
特に何もする気にもなれず、とりあえずパソコンに電源をいれ、
何気なくメールやブログのチェックなどをしております。(笑)

メールをチェックしていると、『五月病、どうやって乗り切る!?』なんて
広告メール(ブログ系)が目についたので、
『五月病』についてふと考えてみました。

『五月病』とは、
主にゴールデンウィークなどの大型連休明けに起きる症状で、生活環境の急激な変化やリズムの不規則さが引き起こす一種の『うつ』状態
…と考えています。

…なので、最低限の生活のリズムを守りさえすれば、
多少の防止にはつながるのだと、勝手に解釈しています(笑)

生活のリズムの一番の要素といえば、
やはり『睡眠の時間帯』『睡眠時間』

これが不規則になると、平日でも調子がおかしくなります。

これを解消するには、『日光を浴びる』ことだそうです。
(体内時計がリセットされるからだとか…)

予めカーテンを開ける等して、
朝になったら自然に太陽の光が入ってくるようにすることで、
少しでも五月病の防止につながればなぁと思います。

読者アンケートはこちら
nice!(1)  コメント(2)  トラックバック(0) 
共通テーマ:健康

[雑記]マッサージする家具!? [雑記]

…で遊んでみた。

…とは言っても、実際に使っみた訳ではなく、
Web上の体感シミュレータで、
Webの中の人が気持ちよく満足してもらえるように、
マッサージの強弱を調節するだけですが(笑)
http://panasonic.jp/massage_chair/sofa/simulator/

実際に、機械が人間を満足させるくらい
気持ちよくできるかどうかわかりませんが、
シミュレータの中の人みたいに満足できるなら、
一度は使ってみたいなぁ。。。

マッサージソファは、コンパクトサイズで、部屋のインテリアに合わせて、
いろんなカラーバリエーションが用意されているそうです。

今住んでいる家では置き場所に困るけど、
もう少し部屋が広ければ1台くらいあってもいいかも。。。






[MCP]新資格「力試し」8 割引キャンペーン [MCP試験]

マイクロソフトのベンダー資格試験でこんな企画が!

旧バージョン MCP 資格取得者 MCP 新資格の試験が、
通常価格から約 8 割引の2,677 円で受験可能
下記すべてに該当するあなたが本キャンペーンの利用対象者です。

(1)2007 年 6 月 30 日以前に何らかの MCP 資格を取得した方。
(2)2007 年 7 月 1 日以降今日まで新たに MCP 資格を
   取得していない方。
(3)お客さまの MCP 資格者登録情報として、
   お住まいの国が日本を含む本キャンペーンの対象国に
   なっている方。

詳しくはこちら→MCP 新資格「力試し」8 割引キャンペーン

通常の受験料は15,000円と高額ですが、
この金額なら気軽に受験できますね。

…とはいうものの、
(2)の条件を満たしていないので、私は対象外。。。(TT)

条件厳しいなぁ。。。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:資格・学び

[雑記]黄色い新幹線 [雑記]

出張の帰り広島駅にて偶然見かけました。
この黄色い新幹線は『ドクターイエロー』とも呼ばれ、
偶然見かけるとその日は、いいことがあるそうです。

偶然見かけたのはこれで2回目です。

前回は通り過ぎるのを遠めでしか見れませんでしたが、
今回は回送電車だったので写真を撮る余裕がありました。
その分、いいことあるといいなぁ。。。

ドクターイエロー(その1)
ドクターイエロー(その1)
ドクターイエロー(その2)
ドクターイエロー(その2)

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:自動車

[雑記]季節が変わって。。。 [雑記]

最近、年が明けたと思ったら、
もう1年の3分の1が終わろうとしていますね。。。

1ヶ月前までは寒かったり暖かかったりの毎日でしたが、
最近では涼しいと暖かいの毎日ですね。

季節の変わり目は、気温の変化だけではありません。

寒い時期にはなかなか見かけなかった
部屋の中で見かけるようになりました。

といっても、小さいクモだったり、だったりしますが。。。

は季節がら早いと思っていましたが、
夜、耳の近くを『ぶーん』って通り過ぎて、
その後、手足が痒くなったので、おそらくだろうと思います。

ちなみに私はO型なので、他の血液型より
吸われやすいそうです。

虫除け対策をせねば。。。


タグ:季節
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:地域

[雑記]Excelで『履歴』は予約語? [雑記]

Microsoftの表計算ソフト『Excel』のトリビア的ネタです(笑)

『履歴』という名前でシートを作成しようとすると、
こんなエラーが出ます。
『履歴』は予約語?
『履歴』が予約語!?Σ(゚□゚;)

予約語は半角英数字が一般的だと思っていたので、
全角が予約語になるのは珍しいですね。

ひょっとして、Excelを英語から日本語に翻訳する際に、
予約語も一緒に翻訳しちゃったのかな?

試しに『history』でシートを作ろうとすると、

普通にシートが作れます。。。
特にエラーも無く普通に作れちゃいました。。。

『履歴』ってどんな予約語なんだろう。。。

[雑記]新宿の街を舞台に展開する二人のストーリー [雑記]

新宿マルイ の本館が4/24(金)にオープンとの事。

それに合わせ4/10(金)-5/1(金)までの期間限定で、
日々新しいオリジナルラブストーリーがweb上で
展開されるそうです。

ミニチュアが動画の中でコミカルに動き回ります。
いわゆる新宿を舞台にしたミニチュアドラマです。

ストーリーが小出しになっていて、
先を予想できないので展開が楽しみです。

~あらすじ~
 舞台は、新宿。
 ~ルオ(男)は忘れものを探している。
  しかし忘れものが何なのかが、わからない。
 ~ルコ(女)は探しものを見つけようとしている。
  しかし何を見つけたいか、わからない。~

ルオとルコがお互いの『忘れ物』なのかな。。。

なんとなくそう予想したくなるけども、

もしそうだったとしても

二人が出会うまでの経緯を、少しずつ楽しみたいですね。。。

ミニチュアドラマについてはこちらから





nice!(0)  コメント(1)  トラックバック(0) 
共通テーマ:演劇

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。