初めてのWordPress(Windows)

ちょっと色々調べ物していてそいえばWordPressなんてものがあったなーと思って軽く試そうとした結果。。。めっちゃはまった(´・ω・`)
動かない動かない。最後まで動かなかったけど。。。途中でめんどくなってやめた。
WordPress 3.6.1をDL:http://ja.wordpress.org/
Apache2.4をDL:http://www.apachelounge.com/download/win32/
PHP5.5.5をDL:http://windows.php.net/download/#php-5.5のVC11 x86 Thread Safe
MySQLは入ってたから入れてない。MySQL バージョン 5.0 以上って書いてあるから多分OK。

PHPは解凍してc:\phpに配置。
php.iniを修正

;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
;; mb_output_handlerによる出力変換を有効
output_handler = mb_output_handler

;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
;; HTTPヘッダcharsetを設定
default_mimetype = "text/html"
default_charset = "UTF-8"

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
;; インクルードパスを指定
include_path = ".;c:\php\includes"

;; ドキュメントルートを指定
doc_root = "C:\Apache24\htdocs"

;; 拡張モジュールのディレクトリを指定
extension_dir = "c:\php\ext"

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;; 必要なモジュールを有効化
extension=php_mbstring.dll
extension=php_mysql.dll

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone =  "Asia/Tokyo"
; この設定がうまくphp.iniに反映されない場合は、
; PHPファイルの先頭で「date_default_timezone_set('Asia/Tokyo');」を指定。

;; [mail function] メールの送信設定
SMTP = localhost
smtp_port = 25
sendmail_from = hogehoge

;; [mbstring] マルチバイトエンコーディング、シングルバイトエンコーディングの処理設定。
mbstring.language = Japanese
mbstring.internal_encoding = utf-8
mbstring.http_input = auto
mbstring.http_output = utf-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0

Apache2.4はとりあえずc:\Apache2.4に配置
httpd.confを修正

>追加
LoadModule php5_module c:/php/php5apache2_4.dll

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

<IfModule ssl_module>
 SSLRandomSeed startup builtin
 SSLRandomSeed connect builtin
</IfModule>

PHPIniDir "c:/php"

>修正
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Apacheのhtdocsにwordpressを配置
アクセス!
で一応画面が開いて何か入力していくとーーーー。。。。。エラー発生!
なんかSQLのCreate文でdatetimeにdefaultを0000-00-00 00:00:00で設定しようとしてるとことかでエラーが起きてた。
MySQLのバージョンか権限かわからないけど今のMySQLはおいそれとあまりいじれないのでここでめんどくなってやめた。

EAでHTML出力をC#でやってみた結果

最初の方法は使いものにならなかったorz

EAひらいたらプロジェクト-リソースを開いてRTFテンプレートで何か名前をつけて作成。コピー元をデータベース設計 ドキュメントにしておく。
HTMLテンプレートだと使えないらしい。HTMLテンプレートが使いたいのに。
まんまここに書いてあることやってみただけなのだけども。。>https://www.sparxsystems.jp/forum/modules/xhnewbb/viewtopic.php?topic_id=4548
ソリューション作成して、参照DLLにEnterprise Architect Object Model X.XXを追加。

using EA;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExportEAHtml
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("start export Html");

            EA.Repository repo = new EA.Repository();
            repo.OpenFile("hoge.eap");
            Collection coll = repo.Models;
      //階層ある場合はパッケージの位置まで掘り下げ
      //getName()で名前みながらどこか確かめる
            Package package = coll.GetAt(0).Packages.GetAt(0).Packages.GetAt(0);
            DocumentGenerator generator =repo.CreateDocumentGenerator();
      //テンプレート名指定
            bool result = generator.NewDocument("sample");
            if (result)
            {
                Console.WriteLine("success create documnt");
                result = generator.DocumentPackage(package.PackageID, 0, "sample");
            }
            if (result)
            {
                Console.WriteLine("success documnt package");
                result = generator.SaveDocument("sample.html", EA.DocumentType.dtHTML);
            }

            if (result)
            {
                Console.WriteLine("success");
            }
            else
            {
                Console.WriteLine("fail");
                Console.WriteLine(generator.GetLastError());
            }
            repo.CloseFile();
            Console.WriteLine("end export Html");
        }
    }
}

で、最後に書いてあったRunHTMLReportという方を使ってみた。そしたら出来た。

using EA;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExportEAHtml
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("start export Html");

            EA.Repository repo = new EA.Repository();
            repo.OpenFile("hoge.eap");
            Collection coll = repo.Models;
      //階層ある場合はパッケージの位置まで掘り下げ
      //getName()で名前みながらどこか確かめる
            Package package = coll.GetAt(0).Packages.GetAt(0).Packages.GetAt(0);
            Diagram diagram = package.Diagrams.GetAt(0);
            DocumentGenerator generator =repo.CreateDocumentGenerator();
            Project proj = repo.GetProjectInterface();
            //出力先と画像の拡張子、指定があればスタイル、最後はhtmlファイルの拡張子
            proj.RunHTMLReport(package.PackageGUID, "C:\\hoge", "png", "", "html");   
            repo.CloseFile();
            Console.WriteLine("end export Html");
        }
    }
}

ほんとに全体のイメージだけみたいなら上の方で、開発時にテーブル定義とか中まで見たいときは下ので出せた

同時接続数の設定変更の罠

  • SQLSERVERインスタンスに接続する接続数上限をManagementStudioから変更できる。サーバーを選択して右クリックし、プロパティ>接続で同時接続の最大数を利用する。ここで1を選び、インスタンスの再起動をかけると今度はManagementStudio上から接続数の変更ができなくなる罠に。。。ManagementStudioでログインして1つ。プロパティを開くので別接続になってるのかプロパティが開けなくて\(^o^)/

sqlcmdを利用して変更する。ぶっちゃけこれでできたけどよくわからない。cmdで開いてsqlcmd マシン名\インスタンス名して
EXEC sp_configure 'show advanced options', 1;
go
RECONFIGURE;
EXEC sp_configure;
go
EXEC sp_configure 'user connections', 0;
go
RECONFIGURE;
EXEC sp_configure;
go
でサーバー再起動。結構同じ罠にハマる人がいたのではないかと思っている次第です。ぐぬぬ...

UQ

UQを貼るとIndexを内部的に勝手に張ってくれる予定がパフォーマンスがあがってこない検索があった。
該当箇所は複合のUQとなっているところ。例えば組織IDとユーザIDにUQがあったとした場合、検索で利用する条件が組織IDなのかユーザIDなのかによって順序を気にしてあげる必要がある。ユーザIDに重きを置くのであればユーザID、組織IDの順にUQを作成する。ただしUQで組織ID、ユーザIDで作った後で明示的にINDEXをユーザIDに張っても効果はあった。

GWT+SimpleDto

  • GWTでSimpleDtoを利用することに結局なったのでメモ。SimpleDtoを画面出力データに利用する為出力先はclientへ出力する必要がある。daoなどとプロジェクトを分けてるときは何個フォルダあがるのだっけ。。。ってなるけどその辺りはよしなに。serverでdaoからデータを取得してmapperを利用しSimpleDtoに変換したデータを返してあげる。ただしこの際にSimpleDtoのtoString()の中でSimpleDateFormatが利用されている為エラーになる。テンプレート(bssimpledtoみたいなやつ)を修正して最初GWTのDateFormatを利用したのだけど今度はこいつをserverで使うなと怒られてしまうためとりあえずdate.toString()しといて利用できるようにした。今のところ上手くいってるようにみえる。

調査中

GWT+Seasar2+DBFluteでWebアプリ作成中。GWTjavascriptでごりごりする苦労が軽減するのであまりjavascriptが好きではないので嬉しい。今更ながらGWTって何?ってレベルから始めたのだけど今が一番楽しいとき。ちょっとだけはまったのがserverからclientへ返すクラスは同じプロジェクト内のSerialize可能なクラスだけ。なのでDBFluteのEntityなどは返せないのでfront側にDtoを用意してあげてそれをserverで詰めてclientへ返してあげる。