主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 google friend connect を使ってください。

>> 記事の追加

php の foreach で参照渡しをするには

php の foreach は基本値渡しで、受け取った値を変更しても当然元の配列データは変更されない。
でも実際は参照渡しもできることを知ったので一応メモ。

以下は普通の値渡しの例。

$enjoi = array("normal", "crazy");
foreach( $enjoi as $e )
{
  if( $e == "crazy" )
  {
    $e = "normal";
  }
}
var_dump($enjoi);
array(2) { [0]=>  string(6) "normal" [1]=>  string(6) "crazy" }

でも関数の参照渡しみたいに & をつけてやると、参照渡しを使って foreach で配列を処理できる。

$enjoi = array("normal", "crazy");
foreach( $enjoi as &$e )
{
  if( $e == "crazy" )
  {
    $e = "normal";
  }
}
var_dump($enjoi);
array(2) { [0]=>  string(6) "normal" [1]=>  &string(6) "normal" }

VisualStudio でアップデート可能なインストーラを作成する


Visual Studio 2005 では Setup プロジェクトっていうのがあるんだけど、これは標準のプロパティではアップデート可能はインストーラにならない。
でも Setup プロジェクトのプロパティを変えるだけで簡単に変えられる。

セットアッププロジェクトのプロパティを選んで以下の作業を行う。

  • RemovePreviousVersions を true にする。
  • Version をインクリメントする。

IE6 でアンカー上に CSS で指定した背景が消えるのを防ぐ


CSS を使って a タグに背景を指定して、 hover で画像を切り替えるような事をよくするんだけど、 IE6 上だと何かチカチカしてスムーズに切り替えを行ってくれない。
これをどうしたらうまい事切り替えてくれるのかを調べたときのメモ。


解決策は驚くほど簡単なんだけどね。


もっと読む

透過 PNG を IE6 で扱う

最近知ったんだけど、 PNG 画像の Transparent 部分って IE6 ではきちんと透明に表示されないらしい。
これをどうにか FF とか他のブラウザでも表示されるようにしながら対応する方法。

基本的なやり方は CSS で background と filter を使って、以下のようにすれば表示はされるようだ。

background: transparent;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/hello.png',sizingMethod=scale);
width: 160px;
height: 120px;

でもこれだけじゃ当然 FireFox では表示されない。じゃーどうするか。


もっと読む

Proftpd で hidden ファイルも表示する

Proftpd はいくらクライアント側で List オプションに -a をつけてもドットファイルなどの隠しファイルを表示してくれない。
これを表示するようにするには、サーバ側の ListOptions を変更する必要がある。

# vi /etc/proftpd.conf
ListOptions -a

.NET で UserControl に Custom Event を追加する

.NET でカスタムイベントを UserControl に追加する方法を何度か調べている気がしたので、まとめておく。
たしか .NET 2003 のときは結構面倒くさかった気がしたけど、今はクラスに event handler 定義するだけでプロパティパネルにも簡単に表示させることができるんだね。

とりあえず環境
VisualStudio 2005 C# .NET


もっと読む

Plesk で open_basedir とか safe_mode の回避

Plesk で php 関連の作業していると、必ずといっていいほど毎回 open_basedir とか safe_mode のエラーではまり、その度に解決策を探しているので、とりあえずメモっておく。

今回の Plesk 環境は以下の通り。
Fedora Core 6
PSA-3.2.0


もっと読む

Auto Scaled Font with JavaScript

任意のテキストを、指定した幅に改行無しで一行に表示させたい時に、 JavaScript でフォントのサイズを変化させて実現する例。

HTML

<span id="scaled" style = "white-space: pre;">ここに動的に変化するテキスト</span>

JavaScript

Prototype.js 使ってます。

function fitFont()
{
    var fs = 40; // 標準フォント
    var fw = 300; // max width
    Element.setStyle($("scaled"), {"font-size": fs + "px"});

    while( true )
    {
        if( Element.getWidth($("scaled")) > fw && fs > 1)
        {
            fs -= 1;
            Element.setStyle($("scaled"), {"font-size": fs + "px"});
        }
        else
        {
            return;
        }
    }
}

ASP .NET C# で DB を Excel にエクスポート

GridView を使用してやる方法です。
GridView を使って Excel にエクスポートすると、どんな形式のクエリでも書式でもうまいことできるのでとても便利。

とりあえず環境
VisualStudio 2005
ASP .NET C#

簡単な手順
1) GridView と SqlDataSource を追加する
2) Select したいクエリを SqlDataSource に指定する
3) GridView の Columns を適切に追加したり書式とか整理したりする
4) GridView の RenderControl で出力してやる
これ見ても分からんのでコードを見るのがいいと思う。


もっと読む

Flash と JavaScript の連携

Flash から JavaScript の関数を呼んだり、 JavaScript から Flash の関数を呼んだりしたいことがかなりあって、どんな方法があるのか調べたときのメモ。
ただ単に呼び出す方法が分かっても、JavaScript と Flash のロードし終わるタイミングなんかもあって色々と厄介だったのでその辺の回避方法もついでに書いておく。


もっと読む

Flex で TitleWindow を resize 可能にする

Flex で何かと使える TitleWindow をマウスで普通のウインドウみたいにリサイズを可能にしてみた。
そもそもなぜこのコントロールはこんなに中途半端なんだろう。クローズボタンはあるのに。

基本 MouseEvent を拾ってるだけ。
その時のソース。


もっと読む

Flex で DataGrid に XML データをロードするには

単純に Web 上にある XML データをロードしたい場合は、 mx:HTTPService と mx:DeataGrid の dataProvider 属性を使って以下のように簡単にできる。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
  creationComplete="xmldata.send()" layout="absolute">

  <mx:HTTPService
    id="xmldata"
    url="http://blog.enjoitech.jp/upload/33_datagrid.xml"
    useProxy="false"/>

  <mx:Panel title="xml data">
    <mx:DataGrid id="dgUser" dataProvider="{xmldata.lastResult.users.user}">
      <mx:columns>
        <mx:DataGridColumn headerText="Name" dataField="name" />
        <mx:DataGridColumn headerText="Gender" dataField="gender" />
      </mx:columns>
    </mx:DataGrid>
  </mx:Panel>
    
</mx:Application>

もし POST データを渡して動的に変化する値を取得するには。


もっと読む

HTML で画像サイズの比率固定したまま高さ幅制限


動的な HTML で様々なイメージサイズが想定されるイメージの width と height の比率は固定したまま、一定の高さと幅のスペースに収めたいときがある。
例えば AxB サイズの画像の幅と高さを固定したまま、 300x200 のスペースに収めたいという感じ。
高さが幅より高いときもあれば幅が高さより広い場合もある。
そんな時は css の max-width と max-height を使うと便利。


ただこれは IE6 では対応していないので、じゃーどうしようか。


もっと読む

Flex で HTML からパラメータを渡すには

Actionscript から Application.application.parameters クラスが使える。
まず HTML

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
	id="myflash" width="100%" height="100%"
	codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
	<param name="movie" value="myflash.swf" />
	<param name="quality" value="high" />
	<param name="bgcolor" value="#869ca7" />
	<param name="allowScriptAccess" value="sameDomain" />
	<param name="flashvars" value='my_param=hello'>
	<embed src="myflash.swf?my_param=hello" quality="high" bgcolor="#869ca7"
		flashvars='my_param=hello'
		width="100%" height="100%" name="myflash" align="middle"
		play="true"
		loop="false"
		quality="high"
		allowScriptAccess="sameDomain"
		type="application/x-shockwave-flash"
		pluginspage="http://www.adobe.com/go/getflashplayer">
	</embed>
</object>

このコードからパラメータ my_param を取得するスクリプトが以下

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initVars()">
	<mx:Script>

		<![CDATA[
			import mx.controls.Alert;
			[Bindable]
			private var param:String;

			private function initVars():void
			{
				Alert.show(Application.application.parameters.my_param);
			}
		]]>
	</mx:Script>

Flex で swf 自身のパスを取得するには

Actionscript で以下のように参照できる。
Alert.show(mx.core.Application.application.url);
ドメイン名だけを取得したければ、
Alert.show(URLUtil.getServerName(mx.core.Application.application.url));

Facebook Application の作り方

最近個人的にはまってる Facebook アプリケーションを開発したときのメモ。
まだそんなに日本では有名じゃないけど、こういう形の Web アプリは個人的に好きだし、こういうアイデアを知っておくととても面白いと思う。
しかも Facebook アプリの作成は比較的簡単にできる。
とりあえず今回の環境は以下の通り。

CentOS-4.4
PHP-5
App URL: http://www.enjoitech.jp/facebook_dev/

実際は php 以外の言語でも非公式ながらそこそこライブラリがそろってる。


もっと読む

Flash Player の z-index

Flash Player の上に css の z-index で何かをかぶせたいときは、 Flash Player に param タグで wmode っていうパラメータを指定してやらないと駄目らしい。

<object type="application/x-shockwave-flash" data="hoge.swf">
<param name="movie" value="hoge.swf" />
<param name="wmode" value="transparent">
</object>

あとは z-index で調整する。

SQLServer の osql コマンド一覧

SQLServer のフリー版が MSDE だった頃に色々と osql コマンドを使ったので、それのメモ。今は Express とか GUI 付きでフリーなのでいいね。
でもいざって時に役立つと思います。というか知っておいても損は無い。


もっと読む

古い php mysql lib から 新しい mysqld にアクセスする

古いバージョンの php から新しいバージョンの mysql にアクセスした際に、こんなエラーをくらうことがある。

Warning: mysql_connect(): Client does not support authentication protocol requested by server;
consider upgrading MySQL client in *.php on line *
couldn't connect: Client does not support authentication protocol requested by server;
consider upgrading MySQL client

MySQL のパスワード認証方法が 4.0 から 4.1 でちょっと変わった事が原因。
サーバ側で php が新しくなるまで old password を使うように設定してやればいい。

# vi /etc/my.cnf
...
[mysqld]
old_passwords=1
...

もしくは、 mysql のユーザのパスワードを古い形式に変更してやる。

$ mysql
mysql> SET PASSWORD FOR user_name = OLD_PASSWORD('user_password');

Zend Framework + QuickForm + Smarty

今まで mojavi 、 symfony と php のフレームワークを使ってきたわけだけど、今回 Zend Frameworkを使ってみて明らかに一番使い易かった(入りやすかった)ので、ちょっとそれについてまとめておこうかなと。
# Cake はソースコードを見た時点で使う気うせた。。

まあ zend がやってるってことで、少くてもやっておいて損は無いかと。とりあえず QuickForm と Smarty は手放せないので、その当たりを交えてうまいこと C-MVC を構築する方法のメモ。

環境
CentOS-5
php-5.1.6
Zend Framework-1.0.1
QuickForm2-1.4
Smarty-2.6.18


もっと読む

Smarty で変数の数を取得する

例えば
$myarr = array(1, 2, 3);
$smarty->assign("myarr", $myarr);
と php 側でやった場合、
{$myarr|@count}
で取得できる。

FireFox で Gmail を等角フォントにするには

FireFox で Gmail のメール本文を等角フォントの Monospace にしました。
FireFox の profile にある userContent.css をいじるだけみたいです。

$ vi ~/.mozilla/firefox/u1iexrmm.default/chrome/userContent.css
div.msg div.mb {
   font-family: monospace !important;
   font-size: 12px !important;
}
textarea.tb {
   font-family: monospace !important;
   font-size: 12px !important;
}
td.ct {
   font-family: monospace !important;
   font-size: 12px !important;
}

Ruby on Rails on CentOS 5

新しくアプリケーションのネタが浮かんだので、せっかくだから ruby on Rails でやってみようと思いとりあえずセットアップまでしてみた。
今回は CentOS 5 だけど、サーバは 4 なので、そちらもセットアップしたら違いを追記する予定。
とりあえず、 RPM パッケージでセットアップできるものは以下のとおり。

ruby
ruby-devel
rdoc
mysql
mysql-server
mysql-devel
and dependencies.
もっと読む

QuickForm で複数項目を必要とする custom validation rule の作成

HTML_QuickForm_Rule クラスを継承したクラスを定義し、その validate 関数を加工してやればできます。
よく使う年月日を別々のテキストボックスで入力させてチェックさせたい場合などを例にします。

class IsDateExist extends HTML_QuickForm_Rule {
	function validate($value) {

		for ($i = 0; $i <= 2; $i++) {
			if (! ereg ("^[0-9]+$", $value[$i])) {
				return false;
			}
		}
		return ( checkdate($value[1], $value[2], $value[0]) );
	}
}

PHP Smarty で文字列の連結をするには

|cat: を使ってやります。
例えば $str1 と $str2 をくっつけて間に "_" をいれて $str3 を連結したい場合を例にすると。

value = {$str1|cat:$str2|cat:"_"|cat:$str3}

Linux でファイルをシンクする

Linux でファイルの同期を取りたい場合があります。
例えば /home/user/dev/websrc/* と /var/www/html/* を同じ状態に保ちたい場合です。
シンボリックリンクを張るのも一つの方法ですが、同期にはなってません。
ここでは rsnyc を使います。

$ rsnyc -avzr /home/user/dev/websrc/* /var/www/html/

.NET で Exe 形式のファイルを出力する Exe を作る

zip ファイルなどを圧縮した際に、自己解凍形式のファイルを出力するソフトとかあるじゃないですか。
あんな感じで exe ファイルを生成するソフトの .NET 版を作ってみたいなと思い、色々リサーチしてみたので、その時のメモ。
実は .NET には CSharpCodeProvider というとんでもないクラスが存在しているので、これを使ってみました。
今回開発した EnjoiCrypto にもこのテクは使っています。
一応環境。

.NET Framework 1.1/Mono 1.2

もっと読む

.NET C# File/Directory tips

.NET C# のファイル、ディレクトリ操作関連のチップスです。
もっと読む

.NET C# String tips

.NET C# のファイル、文字列操作関連のチップスです。
もっと読む

mono で C# .NET 2.0 向けコードのコンパイル

SVN から mono を取り出して Linux-Windows Cross-platform アプリを作ってるんだけど、ソースコードのコンパイルではまったので、むかつきがてらメモ。
mono の C# のコンパイルは mcs だっていうのは知ってたんだけど、どうやっても 2.0 対象のクラスとかもろもろがうまくいかない。
で、小一時間悩んだ挙句、 2.0 向けのコンパイラはそもそも gmcs だということが判明。

$ gmcs EnjoiXXXX.cs
Compilation succeeded - 0 warning(s)
できた。。

CentOS 5 で Eclipse で SVN を行う

Linux で svn コマンドをいちいち打つのが段々めんどくさくなってきたので、 Eclipse をいれて Subversion plugin の Subclipse をインストールしてみた。
subclipse.tigris.org
その時のメモ。


もっと読む

PHP で BASIC 認証もどきを実装する

このブログを作成している際に、特定の記事だけ簡単な認証を行いたかったので、 PHP で BASIC 認証 っぽいことをやってみた。
実装は簡単で、ユーザが BASIC 認証を行った場合 PHP_AUTH_USER と PHP_AUTH_PW 環境変数にその際のユーザ名とパスワードが復号化されて格納される。
これを PHP で認証して、違ったら 401 エラーを返せばいいだけ。

$signin = false;

if (isset ($_SERVER['PHP_AUTH_USER']) &&
    isset ($_SERVER['PHP_AUTH_PW']))
{
    if ($_SERVER['PHP_AUTH_USER'] == 'masaki' && 
        $_SERVER['PHP_AUTH_PW'] == 'password')
    {
        $signin = true;
    }
}

if (! $signin)
{
    header('WWW-Authenticate: Basic realm="Enjoi Blog"');
    header('HTTP/1.0 401 Unauthorized');
    print "Error 401";
    exit;
}

Windows(Visual Studio) から svn+ssh

Visual Studio + PuTTY + TortoiseSVN + AnkhSVN でフリーな GUI svn+ssh 環境を構築してみた。
前回で svn+ssh 環境を構築して Linux からは svn コマンドで簡単にアクセスできるようになったんだけど、
肝心の Windows からのアクセスがまだできてなかったのです。
Subversion の構築メモはCentOS に Subversion を導入するを、 svn+ssh 環境の構築メモはCentOS で svn+ssh 環境の構築を参考。


もっと読む

CentOS で svn+ssh 環境の構築

次回の CentOS に Subversion を導入する では単純に over http の SVN 環境を導入したけど、
実際にソースを公開して、一方でソースを更新するにはアクセス制限をしとく必要がある。
今回は svn+ssh を構築して、 ssh アクセスでの更新のみを許可する環境を作ってみた。


もっと読む

CentOS に Subversion を導入する

最近 Linux と Windows を交互に切り替えて使ってるので、共有レポジトリでバージョン管理したいなと思い、
SVN をセットアップしてみた。そのときのメモ。
ただなんか色々調べてると Mercurial というのが結構あついみたいだね。
Mercurial - Mercurial
Windows から使いづらそうだったのでパスしたけど。


もっと読む

CentOS 5 で DAG(rpmforge) の yum repository 追加

DAG(rpmforge) は redhat 及び fedora 向けの追加パッケージ群です。
DAG
これのレポジトリを CentOS 5 の yum に追加しておけば、 CentOS でもほぼ完全に使用できます。
レポジトリに追加するには以下の URL から追加用の rpm を取得してインストールするだけです。
rpmforge
RPM は Redhat 5 用のやつなので、

rpmforge-release-x.x.x-x.el5.rf.yyy.rpm

になります。
もちろん CentOS 4 とかなら Redhat 4 用のやつになるので、 el4 というやつを使ってください。
これをインストールすると /etc/yum.repos.d/ 配下に rpmforge.repo が追加されて、 yum を実行した際の検索対象になります。

# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
追加パッケージはかなり豊富。ちなみに livna との関連は知りません。

telnet で ssl 接続をしたい

telnet コマンドは基本的に平文の通信しかサポートしてなくて、 HTTPS プロトコルに HTTP コマンドを手動でちょっと発行したいときなどに対応できない。
debian には telnet-ssl っていうパッケージがあるみたい何だけど、 CentOS 5 上でコンパイルしようとしたらどうにもエラーで進まないので、ちょっと perl で作ってみた。
その時のメモ。というかソース。
特に細かい説明無し。気が向いたら。


もっと読む

PHP の Session を複数ドメインで共有する

例えば www.enjoitech.jp と blog.enjoitech.jp でセッションを共有したい場合は、 php のコードの session_start () 関数の前に、 session_set_cookie_params() でクッキーの影響範囲を enjoitech.jp にしてやることができる。

session_set_cookie_params (0 , '/', 'enjoitech.jp');
もしくは php.ini で
session.cookie_domain "enjoitech.jp"
でも可能。

Linux で共有ファイルをマウントする

Windows の共有フォルダをマウントするには、

smbfs を OS がサポートしているなら、 mount コマンドで windows の共有フォルダをマウントできる。

$ mount -t smbfs -o username=hoge,password=hoge01 //192.168.0.100/pub /mnt/smb
fstab に書く場合は以下のようにする。
//192.168.0.100/pub    /mnt/smb    smbfs   noauto,username=hoge  0 0

ただ GUI から参照するなら最近の Linux は Network Servers メニューから Windows Network がのぞけるので、ほとんど Windows と同じ感覚で使えますね。

Postfix のメールキューを削除するには

どうしようもない不要メールがキューに溜まってしまうことがあります。
この場合は postsuper コマンドを使用して削除できます。
postfix のメールキューは /var/spool/postfix/ 配下のディレクトリにそれぞれの意味合いごとに溜まります。
例えば deferred のメールを全部削除したい場合は以下のコマンドを実行します。

# postsuper -d ALL deferred

CentOS 5 の totem で WMV などを再生する

totem は gnome 標準の動画再生ソフトで、 CentOS 5 にも標準でインストールされてます。
これ実は backend で gstreamer か xine を使用して再生するようになってるんだけど、
標準の gstreamer のプラグインは WMV とか AVI, FLV とか全然再生できない。
これを xine 向けの totem でパッケージングしなおして、インストールして動画を再生できるようにしてみた。


もっと読む

CentOS 5 で RealPlayer をインストールするには

リアルプレイヤーを CentOS5 にインストールするには、 compat-libstdc++33 を入れる必要があるらしい。 libstdc++ のバージョンが 6 でリアルプレイヤーは 5 を要求するから。

# yum install compat-libstdc++*

次に以下のサイトでインストール用のバイナリをダウンロードしてインストールする。
RealPlayer for Linux

# chmod 755 ./RealPlayer10GOLD.bin
# ./RealPlayer10GOLD.bin

PostgreSQL でシーケンスキーを操作する

新たにレコード INSERT 時に、シーケンスキーの次の値を特定の項目にセットする場合は以下のように行う。

INSERT INTO TBL_NAME VALUES (nextval ('seq_name'), 1, 2);

また、その結果インクリメントされたシーケンスキーの値を参照するには

SELECT currval ('seq_name');

さらに、シーケンスキーの値を設定しなおしたい場合は、

SELECT setval ('seq_name', 10);SELECT setval ('seq_name', 10, false);

となり、前者は nextval の結果が 11 となり、後者は 10 となる。

Access の Macro や Form を Grep する

たまに Access で作成したマクロやフォームから特定の文字列を検索したいときなどがあり困るんですが、
実は Access のマクロやフォームはテキストファイルに変換できます。
しかも簡単な VB スクリプトを書くだけ。
そのやり方のメモ。


もっと読む

Linux で FLV Movie を作成する

Youtube を始めとする動画共有サイトで多く使用されている FLV 形式のムービーを Linux で作成してみた。
あまりこの分野詳しくないんだけど、 AVI ってやつと WMV ってやつ MPEG って拡張子のやつは変換できた。
環境は以下のとおり。

CentOS 5

もっと読む

FireFox のマウスジェスチャーを無効にするには

Mouse Gesture は時に便利ですが、時にうざいです。特にホイールパッドを使ってると、用もないのにがんがん操作されてしまうこともあります。
で、 FireFox の設定を立ち上げて無効にしようとしたのですが、設定項目が見当たりません。ないのでしょうか?少なくても Linux 版の FireFox には見当たりません。
しかたがないので、 All-in-One Gestures というプラグインをインストールしてこれを無効化しました。
All-in-One Gestures
本当にこれしか方法がないかは分かりません。

SELinux の状態を変更する

今さらですが、コマンドラインで SELinux の有効無効を確認するには getenforce を用いる。
# getenforce
Disabled
状態を変更するには /etc/selinux/config の SELINUX パラメータを変更します。
# vi /etc/selinux/config
SELINUX=disabled
enforcing とかそういうのは次回ってことで。

Rhythmbox で mp3 を再生するには

CentOS 5 の Rhythmbox は標準で mp3 に対応してないし、追加パッケージも存在しないみたいです。
でも DAG にある gstreamer のプラグインを追加すれば再生できるようになります。
DAG を yum レポジトリに追加したら、 gstreamer-plugins-ugly をインストールします。

# yum install gstreamer-plugins-ugly
DAG を追加する方法は CentOS 5 で DAG(rpmforge) の yum repository 追加 を参照。

CentOS 5 で同時に複数のアプリからの音を再生する

CentOS 5 に限らず Linux では alsa を使ってサウンドを再生してるが、ほとんどの Linux で複数のアプリケーションからサウンドデバイスを共有して音を出すことがデフォルトでできない。
例えば rhthmebox で音楽を再生していると gaim のサウンドが再生されなかったりするわけ。
これを有効にするには alsa の dmix プラグインを有効にすればいい。


もっと読む

CentOS 5 で Wireless LAN を使う

CentOS 5 + Let's note (Intel® PRO/Wireless 2200BG) で無線 LAN の設定をした。設定をしたと言っても別に大したことはしてないんだけど。


もっと読む

Linux の時間を合わせるには

Linux の時間を合わせるには ntpdate コマンドを使って外部の ntp サーバと同期をとるのが簡単です。
ntp server の一覧は http://www.pool.ntp.org を参照。

# ntpdate jp.pool.ntp.org

cron で定期的に実行するようにしてもいいし、 ntp server を立てて同期するようにしてもいいかも。

IIS の ASP .NET のバージョンを切り替える

Visual Studio .Net/2003/2005 などがインストールされてるマシンで、 ASP .NET のプロジェクトを作成する際に、「ASP .NET Version 1.1 が実行されていません」みたいなメッセージが表示されて、作成できないことがある。
これは、 IIS を再インストールしたり、 .Net は 1.0 、 2003 は 1.1 、 2005 は 2.0 と、 Visual Studio のバージョン毎に動作する .NET のバージョンが違うことから起きたりする。
このエラーを解消するには、 IIS で動作させたい ASP .NET のバージョンにしてやればいい。実際には以下のコマンドを打つ。
1.1.4322 の場合。

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322>aspnet_regiis.exe /i
ASP.NET (1.1.4322.0) のインストールを開始します。
ASP.NET (1.1.4322.0) のインストールが完了しました。

もしくは「管理ツール」の「インターネット インフォーメーション サービス」、「既定の Web サイト」のプロパティから、 ASP .NET タブを開いて変更することもできる。

.Net から MySQL へ接続するには

.Net から MySQL に接続するには MySQL AB がリリースしている MySQL Connector/Net を使用します。
MySQL® Connector/Net
MySQL はフリーでかなり優れているので、 .Net からの使用用途もかなり増えました。
とりあえず Visual Studio 2003 で C# ASP .NET から MySQL に接続しました。


もっと読む

CVS のコマンド一覧

CVS をコマンドで使用する際のリファレンスです。
もっと読む

borland C++ Builder String tips

Borland C++ Builder の文字列操作関連のチップスです。
もっと読む

awstats のインストール(with Geo-IP plugin)

以下のサイトから RPM をダウンロードしてインストール。
http://awstats.sourceforge.net/
設定ファイルは、 /etc/awstats/ に、 awstats 用の wwwroot は /usr/local/awstats/ に展開される。


もっと読む

Mailman で Reply-To ヘッダを ML 宛にするには

Mailman で ML 環境を構築した際に、 ML の全てのメールのヘッダに Reply-To で ML のアドレスを指定するには、 /usr/lib/mailman/Mailman/ ディレクトリにある Defaults.py の DEFAULT_REPLY_GOES_TO_LIST に 1 をセットすればよい。

# vi /usr/lib/mailman/Mailman/Defaults.py
# 0 - Reply-To: not munged
# 1 - Reply-To: set back to the list
# 2 - Reply-To: set to an explicit value (reply_to_address)
DEFAULT_REPLY_GOES_TO_LIST = 1

Redhat ES 4 に mrtg をインストール

Redhat ES 4 に mrtg を入れた。ほとんどパッケージインストールで、ちょちょっと設定が必要。
いつも MRTG の導入はやり方を忘れるのでメモ。
まず、必要そうなパッケージは以下のとおり。
mrtg
net-snmp
多分それ以外も依存関係の影響で必要になるかもしれない。
あと、 CentOS 4.4 でも全く同じように設定できるみたい。


もっと読む

Munin の Plugin を作成する

Munin のプラグインを作ると言っても、単純な文字列と数値を出力するスクリプトを作成するだけでとても簡単です。
スクリプトは bash だろうが perl だろうが、 C 言語でも別に構わないので、好きな言語で作れる。
とりあえず、マザーと CPU の温度を表示するプラグインを作ってみた。
インストールの仕方や基本設定はCentOS に Munin をインストールするMunin を Debian にインストールするMunin のグラフ(plugin)の種類を変えるを参考。


もっと読む

Coldfusion 7 から MySQL 5 に接続するには

Coldfusion 7 の管理画面からデータソースへいって、データソースの設定をしようとしても、 MySQL 5 用のドライバは標準では用意されてない。
でも MySQL からしっかりと配布されているのでそれを入手して設定すれば普通に使えます。
そのときのメモ。


もっと読む

Munin のグラフ(plugin)の種類を変える

Munin の設定ファイルやプラグインを変えて、必要なグラフだけを表示するようにしてみた。
基本的にはプラグインへのシンボリックリンクを削除したり作成するだけで、グラフの数は自由に変えられる。実際のやり方をメモっておく。
インストールの仕方や基本設定はCentOS に Munin をインストールするMunin を Debian にインストールするを参考。


もっと読む

bash でファイルを一行ずつ処理したい

Linux で bash を使ってあるテキストファイルの内容を一行ずつループして処理したい場合、 read を使って以下のようなスクリプトが便利。
echo filename | while read i
do
echo $i
done

SQLServer で CSV のインポート/エクスポート

SQLServer で CSV 形式のデータファイルを import/export するには、 bcp コマンドを使用すると便利です。フォーマットファイルというのを指定することで、型の定義も可能で非常に便利。
またインポートは、 osql で BULK INSERT クエリを発行することでも対応できます。


もっと読む

SQLServer で バックアップ/リストア

SQLServer でデータを backup/restore するには osql で BACKUP/RESTORE クエリを発行することで行えます。
作成するダンプファイルにパスワードをつけることも可能です。


もっと読む

SQLServer の collation (照合順序)の設定

SQLServer で文字列検索を実行した際にアルファベットの大文字小文字やひらがなカタカナを区別しなかったりした時には、照合順序(Collation)が正しくない場合がある。
一通りの照合順序の設定方法と意味などをまとめておく。


もっと読む

ASP .NET でファイルを出力する

ASP .NET でイメージファイルや CSV ファイルを出力する aspx を作成するには、出力ヘッダを書き換えてファイルを出力してやる。
this.Response.AddHeader("Content-Disposition","attachment;filename=CSVData.csv");
this.Response.AddHeader("media-type","application/octet-stream");
this.Response.WriteFile(csvFilelPath);
this.Response.End();

C# .NET で schema.ini を使用した CSV 処理

C# .NET で CSV をOLE で読み込んで、データベース処理をするやり方のメモ。 csv ファイルの置き場所は C:\text.csv 。
string strDir = "C:\\";
string strFile = "test.csv";
OleDbConnection myConn = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
  + strDir + ";Extended Properties='TEXT;HDR=NO'");
myConn.Open ();
OleDbDataAdapter sqlda = new OleDbDataAdapter ("SELECT * FROM " + strFile, myConn);
DataTable dtbl = new DataTable ();
sqlda.Fill (dtbl);
dgrdCsv.DataSource = dtbl;
myConn.Close ();
ちなみに、読み込む CSV のフィールドタイプを指定した場合は、 schema.ini を用意して CSV と同じフォルダにおいておく。
[filename.csv]
ColNameHeader=True
Format=CSVDelimited
Col1=user_id Integer
Col2=user_name Char Width 32
Col3=notes LongChar

といった感じ。はじめの一行目が CSV ファイル名をセクションで指定して、二行目がヘッダの有無、三行目はデータファイルの書式(ここでは CSV )を指定してます。それ以降が実際のカラムの指定。

ASP .NET でボタンクリック時に JavaScript を実行

ASP .NET でボタンが押下されたり、サブミットされた際に、サーバにデータを送る前に confirm を実行したり、特定のチェックや処理をクライアント上で行いたい場合、 RegisterOnSubmitStatement などを使うと便利です。
public void Page_Load(Object sender, EventArgs e)
{
    RegisterOnSubmitStatement ("submit", "return window.confirm ('削除します。よろしいですか?');");
もしくは、特定のボタンのみに登録したい場合は以下も有効。
public void Page_Load(Object sender, EventArgs e) {
    Button1.Attributes["onclick"] = "return window.confirm ('削除します。よろしいですか?');";

ASP .NET の VIEWSTATE を暗号化する

ASP .NET はコントロールデータが全て一つの BASE64 エンコードされた __VIEWSTATE っていうフォーム変数に格納されてるんだけど、それ用のソフト等を使えば内容が閲覧できるし、書き換えることもできる。
これを暗号化して、改ざんされた際にはエラー処理するようにするようにするには、 web.config で Page.EnableViewStateMac を有効にすればいい。

<configuration>
<system.web>
<machineKey validation="3DES" />
<pages enableViewStateMac="true" />
</system.web>
</configuration>
Mac stands for "message authentication check".

Style Sheet(CSS) で Scroll bar

HTML で、限られたスペースに、可能な限りのドキュメントを入力してスクロールバーで制御したい場合があります。 iframe や textarea でも行えますが、スタイルシートで overflow を使用してスクロールバーを出すこともできます。
例えば幅 400x40 のスクロールバーつきエリアを作成するには以下のようにします。

<div style="overflow: auto; width: 400px; height: 40px">
    ここに入力したいドキュメントを書く。
</div>

実際どのようになるかというと、このように入力したドキュメントの長さに応じて、必要なスクロールバーを自動的に表示してくれます。当然 textarea とは違いタグも書けまし、 iframe みたいに別の HTML を作成する必要もありません。

postfix と saslauthd で SMTP-AUTH

CentOS-4.4 で Postfix と saslauthd で SMTP 認証環境を構築したときのメモ。 とりあえずは SPAM 防止ということで、全ユーザに共通のパスワードを発行してる。それぞれのユーザに IMAP と UNIX 、 SMTP-AUTH 共通の 独自パスワードを発行したいんだけど、やり方は調査してない。
もっと読む

CentOS に Munin をインストールする

MRTG みたいなツールで温度とかも簡単にグラフ化できるって専らのうわさだったので入れてみた。
ダウンロードはここ。
http://munin.projects.linpro.no/
Download リンクから munin と munin-node の最新版 RPM パッケージを入手。
CentOS には存在しない (Redhat にも存在しない) パッケージを要求されたりして結構面倒でした。


もっと読む

Linux である文字を含む行を削除したい

多分一番簡単にファイル内の行を削除するのは sed コマンドです。
その他にも grep コマンドを使用したりしても十分行えます。
sed で abc を含む行を全削除するには以下のコマンドを実行します。

$ sed '/abc/d' input.file
パイプで渡すこともできます。
$ cat input.file | sed '/abc/d'
grep コマンドで削除するには以下のコマンドです。正確には削除してるわけで無い気がしますが。
$ grep -v abc input.file
grep の -v オプションは文字列を”含まない”行を出力するためのオプションです。

Linux で改行コードを変換する

Windows で作成したテキストファイルの改行コードが CRLF で、この内の CR の部分を除去して、 Unix にあわせたい場合に便利なコマンド。
置換などに用いる tr コマンドを使う。

$ tr -d "\r" < input.file > output.file
ただしこの tr コマンドの -d オプションは注意が必要で、指定した「文字列」を削除するんじゃなくて、指定した「charactors」を全て削除することです。なので、
$ tr -d "abc" < input.file > output.file
とやると、全ての a と b と c が削除されることになります。文字列を削除したりしたい場合は sed コマンドがおすすめです。

Windows のフォルダを仮想的にドライブに見立てる

subst コマンドを使うと、 Windows 上のフォルダを仮想的にドライブにすることができる。
> subst P: C:\Util
解除するときは -D オプションをつける。
> subst P: /D P:

Apache で特定のサイトからのアクセスログを残さない

Apache でローカルアドレスや特定のサイトからのアクセスをログに残さないようにするには、環境変数を使ってやると便利。
まずは /etc/httpd/conf/httpd.conf に特定のアドレスからのアクセスに環境変数を設定するように以下のように追記。
例えば 192.168.0.0/24 からのアクセスの場合。

SetEnvIf Remote_addr 192.168.0. nolog
で、 CustomLog 設定を以下のように変更すれば終了。
CustomLog logs/access_log combined env=!nolog

be rooted

ルート権限が奪取された、は英語で it was rooted.

JavaScript で HTML Control の表示/非表示を切り替える

ものすごいベーシックですが、なぜかよく忘れるのでメモっておきます。 StyleSheet の display を使用して行うやり方です。 例えば以下のような div コントロールを対象として切り替えたい場合を取り上げます。
<div id = "tarishou">test</div>
JavaScript は以下のようになります。
var ctl = document.getElementById ("taishou");
if (ctl.style.display == "none")
    ctl.style.display = "inline";
else
    ctl.style.display = "none";

CentOS に PostgreSQL をインストールする

Yum のレポジトリに centosplus を追加すれば、以下のコマンドでインストールできます。
# yum install postgresql-server
レポジトリへの追加方法は、 CentOS に PHP5 をインストールする を参考。
もっと読む

MySQL 設定やコマンド

昔は全部コマンドラインでやっていたんだけど、最近はもうずっと phpmyadmin を使っちゃってるな。 万が一に備える意味と、初心に戻るという意味で、一応まとめておく。
もっと読む
ページ: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank1, rank2, rank3, rank4, rank6, rank7, rank8, rank9, rank10, rank11
todo メモ
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5