タグ : 言語

[Perl][CPAN] CGI::Sessionで勝手にSessionIDが変わる件について

CGI::Session
CGI::Session

自分が以前に作ったPerlで動いているシステムで、テキストエリアに1000文字ほど入れると、セッションエラーになるというバグらしき報告をもらった。

色々試してみると、確かにある一定の文字数を超えるとエラーになるようでした。

最初は原因がわからず、プログラムのソースコードとにらめっこ。

うーん、わからん。

続きを読む

つぶやくつぶやく

[Linux][Debian][Plagger] Debian 4.0r1 (etch) で Plagger を使う

PlaggerのDebianパッケージ
PlaggerのDebianパッケージ

※ 2009/4/20 追記
http://debian.hansode.org/ のサイトが無くなってしまったようです。残念。


PlaggerのDebianパッケージを作ってくれている方がいますのでこれまで利用させてもらってましたが、Debian 4.0r1にしたら libencode-perl がうんぬんと怒られてしまい、インストールできなくなってしましました。

そこでGoogle検索してみると equivs でダミーパッケージを作って対応すると良いらしいので試してみたところ、見事に成功しました。。

ってことで、手順をメモメモ。

続きを読む

つぶやくつぶやく

[C#] TableAdapter にトランザクション機能を実装するクラス

TableAdapterにトランザクションを実装
TableAdapterにトランザクションを実装

今は Visual C# 2005 Express Edition にて ADO.NET 2.0 Provider for SQLiteを利用してクライアントアプリの開発しています。

TableAdapterにてINSERTやupdateするとどうも更新が遅いので、Googleで調べたら

> http://journal.mycom.co.jp/special/2004/php5/007.html
> SQLiteでは明示的にトランザクションを開始しない限り、INSERT処理の前後に必ず”BEGIN”、”COMMIT”が実行される。

とのことでした。

で、色々試行錯誤して下記のVB記事を参考にC#&SQLite用のトランザクションの処理を追加。

TableAdapterにトランザクションを実装 / うなまな Blog
http://www.ailight.jp/blog/unaap/archive/2007/02/13/13566.aspx

ソースは次のとおりです。

続きを読む

つぶやくつぶやく

[C#] ADO.NET 2.0 Provider for SQLite 1.0.43.0 ではまった…。

System.Data.SQLite (SQLite ADO.NET 2.0 Provider)
System.Data.SQLite (SQLite ADO.NET 2.0 Provider)

ことの始まりは、つい先日 SourceForge.net の RSS から ADO.NET 2.0 Provider for SQLite が 1.0.42.0 から 1.0.43.0 にバージョンアップしたのを知ったので、早速バージョンアップしてみました。

インストールも特に問題なく完了。SQLite3.4かぁ。ふーん。

でもって、開発中のアプリのコーディングを再開してしばらくすると、不可解なエラーが。

色々調べてみると、SQLのMAX関数やCOUNT関数で件数とかをチェックしているロジックが機能しない。intで返ってくるはずのところがstringになっていたり。それで変換できないエラーとか起こっている。なんじゃこれ!
ウーン、特に手を入れてないのにな…、と、ふと DataSet.Designer.cs を直接除いてみると、なんかおかしい。ん?

なんで COUNT で件数返すだけなのに return が object や string なんだ??

続きを読む

つぶやくつぶやく

[C#] Convert VB.NET to C#

Convert VB.NET to C#
Convert VB.NET to C#

VB.NETのソースをC#のソースに自動変換してくれるサイトです。
ネットでサンプルを探していて、VB.NETのソースしかないけどC#だとどうなるんだろう、、、という時に使えそうです(^^)
まぁ、ソース解析しろ!!って話ですが、道具は便利に使うが一番、てことで。

逆にC#からVB.NETにも変換できるみたいですよ。

Convert C# to VB.NET

日本語(2バイト)のコメントや文字列が有るとうまく変換できなかったり化けるみたいなので、そこら辺だけ注意すれば、便利に使えると思います。

つぶやくつぶやく

[IE][Firefox] ブラウザ 上 で グリッド を 表示 できる ブックマークレット

ブラウザ上にグリッド表示できるブックマークレットが紹介されていました。
画像とか、デザインを調べる時に有ると便利な機能ですね。

ものスゴく便利なグリッド表示用ブックマークレット登場 - (Web担当者Forum)
http://web-tan.forum.impressrd.jp/e/2007/05/21/1373

grid.png

詳しい使い方は、上記のURLのページに画像付きでのっています。

定番のJavaScriptライブラリprototype.jsscript.aculo.us
UI部分は Prototype Window Class をうまく使っているみたいです。よく出来ています!
ソースも圧縮していないバージョンも公開されているみたいなので、何か作る時の参考にしようと思います。
Firebug で色々動きを見て参考にしたい所です。

つぶやくつぶやく

[C#] 画像の保存ではまった…

ここんところC#付けの毎日です。

とそんな中、C#のコーディングで何気ない所で詰まってしまったので、メモしてみます。
やりたいことは、

画像ファイルをダイアログからか、ドラッグ&ドロップで読み込み、コントロール(今回はボタンですが)に表示。
保存ボタンで特定の固定のファイル名で保存する。

というこれだけのことです。で、こんな簡単な所で2点詰まった…。

  1. ImageクラスのFromFileメソッドを用いて画像を読み込むと、プログラム終了するまでファイルロックされたままになり、Image.Save時にファイルがロック(使用中)になり上書きできない。
  2. ImageクラスのFromStreamメソッドを用いて画像を読み込むと、ロックは解消されるが、Image.Save時に「GDI+ で一般的なエラーが発生しました」となり、保存できない。

1点目の解決方法は、以下のとおり。

ImageクラスのFromFileメソッドを用いて画像を読み込むと、プログラム終了するまでファイルロックされたままになる。
というのが有るそうで、早速FromFile から FromStreamで読み込むように変更。

PictureBox に画像を表示する
http://jeanne.wankuma.com/tips/image/picturebox.html

「プログラムが終了するまで、ファイルがロックされたままになります」
とあちこちのC#入門サイトに書いてありますが、私の開発環境ではIDEも終了するまでファイルがロックされているようでした。

それを裏付ける(?)記述が以下にありました。

[PRB] PictureBox Image プロパティにファイルを設定すると、イメージ ファイルがロックさる
http://support.microsoft.com/default.aspx?scid=kb;ja;311754

てなかんじで、ふむふむ、ロックされなくなったぞ。

よし、できた!

…と、安心したのもつかの間、今度は、Image.Saveとすると、2点目の問題発生。

GDI+ で一般的なエラーが発生しました」orz..

色々調べてみても、何が原因かわからず途方にくれていたら、やはり同じことで詰まってる人はいるということのようです。

以下の所で解決策が見つかりました。

ImageクラスのFileStreamで読み込んだ画像の保存
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15772&forum=7&6

FileStream fs;
fs = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
Bitmap bmp = (Bitmap)System.Drawing.Bitmap.FromStream(fs);
fs.Close();
pictureBox1.Image =new Bitmap(bmp);

pictureBox1.Image.Save();

こんな感じで解決でした。
ポイントは、FileStreamメソッドでBitmapとして読み込めばSave時もOKってことですかね。

あ、C#素人なんで、用語とか適当かも…。

つぶやくつぶやく

[C#] Visual C# 2005 Express Edition

ひょんなことから(またかよ!)仕事でVC#触ることになりました。
VS2003が手元に有るんですが、無料版も有るってことで2005を。

Visual C# 2005 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

.Net 2.0なC#プログラミング、初めてのチャレンジです。
以前は高価な開発環境だったVisual Studioですが、今は無料なんですねー。
(Express Editionですがね)

とりあえず、製作はデータ取込&印刷っていうクライアントアプリです。
てことで軽そうなADO.NET 2.0なDBが何が有るかなーとネットを探してみたら

ADO.NET 2.0 Provider for SQLite
http://sourceforge.net/projects/sqlite-dotnet2/

SQL Server 2005 Compact Edition
http://www.microsoft.com/japan/sql/editions/compact/default.mspx

とかとか。

とりあえず、SQLiteの方が馴染みが有るので、さくっとアプリを作ってみました。
色々便利になってるのねー、でもあっという間に重たいアプリになるかも、、、などと思った旧世代VBな人でした。

つぶやくつぶやく