2013/07/17

正規表現デリミタ

仕事でPHP触ってる時にSmartyの変数を展開する際のescapeを追いかけてる時に発見した

  return preg_replace("%(?<!\\\\)'%", "\\'", $string);

とかいう正規表現について

一般的に使用される正規表現のデリミタは「/」だと思うんだけど
ここでは「%」がデリミタとして使用されていた

最初見た時全然わからなかったけど

http://php.net/manual/ja/regexp.reference.delimiters.php

↑ここ見るとちゃんと書かれてた

デリミタに「%」などを使用することにより正規表現中に「/」が出てきた場合に
エスケープが不要らしい

へぇー

2012/05/15

WCF RIA ServicesでSubmitChanges時エラー。


クライアントサイドでコンテキストに行追加して、最後にSubmitChangesした時に、以下のエラー。

Submit 操作に失敗しました。エントリを更新中にエラーが発生しました。詳細については、内部例外を参照してください。 InnerException メッセージ: ReferentialConstraint の依存プロパティがストア生成の列にマップされています。列: '列名'。

調べた結果、WEBプロジェクトのデータモデルのStoreGeneratedPattern="Identity"が主キーでなく外部キー側に設定されてしまっていた。
凡ミスじゃねーかっ!

2012/02/25

AIXにてファイルサイズ制限

仕事で何故かファイル作成処理がうまく行かなかった
色々調べてみるとファイルサイズが1023.99MBぐらいから処理が終了していた

"smitty user"で対象ユーザーのソフトファイルサイズを変更して解決(512blockで記載)
まさかこんなことがあるだなんて…

2012/02/19

Unix系でISO作成

LinuxとかUnixでISOファイルを環境が整ってないとこで作るメモ
というかmacでddがうまく動かなかったときにやった方法

Bash# cat /dev/cdrom > hogehoge.iso

これでできちゃう
標準出力とかって便利だよねー

やってないけど権限さえあれば

Bash# cat hogehoge.iso > /dev/cdrw
ISOの書き込みとか
Bash# cat /dev/cdrom > /dev/cdrw
CD2CDとかできると思う

ファイル受信確認


Bash# while :
> do
> ls -ltr <FILENAME> |tail -10
> sleep 60
> done

スクリプト作るまでもないとき用
tailとかお好みで…

2011/12/13

SilverlightでボタンのContentにリソースを適用すると例外が発生


<Grid x:Name="LayoutRoot" Background="White">
 <Button >
  <Button.Content >
   <StackPanel>
    <TextBlock Text="ほにゃらら" />
    <Rectangle Width="50" Height="50" Fill="Red" />
   </StackPanel>
  </Button.Content>
 </Button>
</Grid>

こんなボタンを作って、プロパティ一覧からContentの「値をリソースに抽出」すると自動で↓みたいな感じになる。
<UserControl.Resources>
 <StackPanel x:Key="Content1">
  <TextBlock Text="ほにゃらら" />
  <Rectangle Fill="Red" Height="50" Width="50" />
 </StackPanel>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
 <Button Content="{StaticResource Content1}"></Button>
</Grid>

この状態でデザイナは正常に表示されるんだけど、実行時に例外が発生する。
XamlParseException
なんかボタンのスタイルを眺めてたら、ContentTemplateにリソースを適用すればいいみたい。
ContentTemplateにはDataTemplateを指定する。
 <UserControl.Resources>
  <DataTemplate x:Key="Content1">
   <StackPanel>
    <TextBlock Text="ほにゃらら" />
    <Rectangle Fill="Red" Height="50" Width="50" />
   </StackPanel>
  </DataTemplate>
 </UserControl.Resources>
 <Grid x:Name="LayoutRoot" Background="White">
  <Button ContentTemplate="{StaticResource Content1}"></Button>
 </Grid>

これでContentとStyleを別々に指定できるので、Contentだけの使い回しができるようになった。

SQL Server Expressで定期バックアップ

SQL Server (今回は2008 R2) で定期的にバックアップ取りたい時、
Standardならメンテナンス・プランとかいう機能が付いてるらしいが、Expressにはそんないいもんない!

なので、バッチファイルとwindowsタスクで対応。

バッチファイルの中身。

@ECHO OFF
set dt=%date:~-10%
set tm=%time: =0%
set fname=%dt:~0,4%%dt:~5,2%%dt:~8,2%-%tm:~0,2%%tm:~3,2%%tm:~6,2%.bak
set fpath=C:\Program Files\Microsoft SQL Server\MSSQL10_50.NDB1\MSSQL\Backup\

::古いファイルを削除(最新7個のみ残す)
cd %fpath%
for /f "skip=7" %%A in ('dir /b/o-d "%fpath%"') do @del /q %%A

::ログインしてバックアップ
sqlcmd -S (local) -U sa -P pass -d dbname -Q "BACKUP DATABASE [dbname] TO  DISK = N'%fpath%%fname%' WITH NOFORMAT, NOINIT,  NAME = N'dbname-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD,  STATS = 10"

これをタスクで好きなタイミングに実行。
久々のバッチファイル。