Author Archives: admin

Windows 8でDVD認識されない

管理者コマンドで以下を実行してリブート

OpenSSLをビルド

前準備

activeperlをダウンロードしてC:\Perlにインストール
nasm-2.11.06-installer.exeをダウンロードしてC:\nasmにインストール

解凍

https://www.openssl.org/からopenssl-1.0.2.tar.gzをダウンロードしてC:\osl\openssl-1.0.2に解凍

デスクトップにnasmのショートカットができているのでここからプロンプト起動、これはnasmにパスを張るだけ。perlも起動できるか確認。

nasmperl

Config

nmake

ここでVC環境が必要なのでVC10のvcvarsall.batを実行

nmake実行

10分くらいで終了、次にテスト

30秒くらいで終了、次にインストール、これはやらなくてもいいらしいが

完成

kansei

boostがライブラリを見つける方法

WindowsのVC2013で調べた場合。
boost\config\auto_link.hppが各種のマクロ定義から最終的に
#pragma comment(lib, “boost…lib”)を呼ぶ。

影響するマクロは_DLL, _MT, _DEBUG, __SGI_STL_PORTなど多数。
lib名の最後につくdgsとかのsは_DLLならsがつかない。そうでなければsがつく。
_DLLは/MDか/MDd (Multithreaded DLL)があればつく。/MDはランタイムをダイナミックリンクする。

boostのスタティックライブラリは標準ランタイムをstatic linkしたもの。
最近のビルドはほとんど/MDのはずなのでsはいらない。/MTの場合はランタイムをスタティックリンクする。

boostのビルドを何も考えずに行った場合staticバージョンはビルドされない。

BOOST_LIB_DIAGNOSTICを定義すればビルド時にlibのファイル名がわかる。

win32でファイルが開かれているか調べる

簡単な方法はないようだ。このコードでも以下の問題がある。

  1. ファイルはグローバルリソースなのでこの関数が戻った時点で本当に開かれているのかどうかわからない。
  2. この関数は他のオープン操作を失敗させてしまう。

sqliteのREPLACE

https://www.sqlite.org/lang_conflict.html

・REPLACEとINSERT OR REPLACEは同じ
ここでいうORは制約エラーが発生した場合でUNIQUEやPRIMARY_KEYもしくはNOT NULL制約
UNIQUEやPRIMARY KEYの時はその行を削除してからINSERTが行われる。
NOT NULLの時はデフォルト値で置き換えられる。

とのことなのでREPLACEが使えるのはコラムを全部指定したときで一部しか指定しないと
他のコラムが消えるかデフォルト値で置き換えられるのだろう。

一部しか指定しないと他のコラムが消えてしまう。

こう書けばOKだが、コラムが増えたとき対応できない。
やる方法もあるのかも知れないが返って複雑になりそうだから素直にUPDATEとINSERTに分けたほうがいいのか

svnでリードオンリーにする

/repodir/repos/conf/svnserve.confでauthz-dbを有効にする

/repodir/repos/conf/passwdにリードオンリーユーザを加える

/repodir/repos/conf/authz-dbでリードオンリーに設定する。セクションのパスはレポジトリのパス

svnサーバを再起動して実験

svnコマンドに–username readonlyをつければreadonlyユーザでのアクセスになる。

コミットしようとすると以下のエラー