KUMA TYPE

猫、パソコン、プログラム、映画、ドラマ、アニメ、perl、etc.

[SQLiteメモ][perlメモ]SQLiteで一つのコネクションで複数のデータベースファイルを扱うには?

普通はひとつのデータベースに対して一つのコネクションで接続を行ってデータベース(以下DB)を制御します。一つのDBのなかには複数のテーブルがあってSQLを使って目的のデータを抽出します。一つのDBの中に複数のテーブルがあった方がリレーションするのには都合がいいからです。SQLiteを使っていると一つのDBが一つのファイルになるのですが、私の場合、DBファイルが大きくなるとパフォーマンスが悪くなったり、万が一DBファイルが破損したときに被害が最小限にする為に、リレーショナルする事がないと思われるテーブルは別ファイルにしたりします。

しかし、別DBファイルにしたのにリレーションする必要が出てくる場合があります。大抵の場合考えが甘かった時ですがw。

そういう場合一つのコネクションで二つのDBを開くことになるのですが、そのやり方です。

ATTACHコマンドを使います。

ATTACH [DATABASE] データベースファイルパス AS データベース名

◇参考:SQLite が認識する SQL – Third impact
◇参考:気の向くままに・・・: SQLiteで複数DBへの同時接続
◇参考:sqlite – openbooth
◇参考:SQLite Query Language: ATTACH DATABASE

perl言語からDBI経由で扱う場合下の様にすればよさそうですが、「cannot attach database within transaction」というエラーになります。訳すと、「トランザクションの中でデータベースをアタッチできないよ」ということになります。

#!/usr/local/bin/perl

use strict;
use warnings;
use DBI;

my $hDB = DBI->connect("dbi:SQLite:dbname="test01.db","","",{PrintError=>0,AutoCommit=>0});
unless($hDB){
    die $DBI::errstr;
}

my $ATTACH_SQL = "attach database ‘test02.db’ as test02";

my $hst = $hDB->do($ATTACH_SQL);
unless($hst){
    my $errstr = $hDB->errstr;
    undef $hst;
    $hDB->disconnect;
    die $errstr;
}

(以下通常のデータベースの処理)

ちょっとしたコツが必要になります。トランザクション中はATTACH DATABASEできないのだから、トランザクション中じゃないときにアタッチすればいいわけで、一旦トランザクションを終わらせてからATTACH(アタッチ)して、ATTACH(アタッチ)後にトランザクションを開始してあげればいいことになります。なので下の様な感じのソースになります。

#!/usr/local/bin/perl

use strict;
use warnings;
use DBI;

my $hDB = DBI->connect("dbi:SQLite:dbname="test01.db","","",{PrintError=>0,AutoCommit=>0});
unless($hDB){
    die $DBI::errstr;
}

$hDB->do(‘END’); #トランザクションを一旦終わらせる

my $ATTACH_SQL = "attach database ‘test02.db’ as test02";

my $hst = $hDB->do($ATTACH_SQL);
unless($hst){
    my $errstr = $hDB->errstr;
    undef $hst;
    $hDB->disconnect;
    die $errstr;
}

$hDB->do(‘BEGIN’); #トランザクションを開始する

(以下通常のデータベースの処理)

◇参考:Neverwinter Nights: SQLite 3.3.6 ATTACH command

タグ : , ,

エクセルでガンダムを書いてる動画見た

絵ーうまいなーと思った。だけど、エクセルを使って書いているということ自体には別に驚かなかった。なんでかっていうと、懐古厨乙といわれそうだけど、昔の8ビット時代のグラフィックソフト知っているからw。X1やFM-7やPC-88シリーズを使っていてポムコムソフトのダ・ビンチなどを使った事があるユーザーならわかると思うけど、昔は基本的にマウスはなかったのでカーソルキーでポイントして、ラインを引くというのが普通だったし、グラフィックソフトにはUndo機能が無いかあっても1回で、塗潰しでドット欠けからはみ出すと全部塗りつぶされて終わるとか普通っだったのでどう考えてもエクセルの方が高機能なグラフィックソフトなわけですw。

POPCOM SOFT [ポプコムソフト]/小学館

パソコンがより高速になって、メモリーが数十キロバイトしかなかった時代から数メガ積める時代になり、パソコン本体にハードディスクが搭載されるようになってきて徐々にいろんなソフトにUndo機能が搭載され始めました。テキストエディタでさえUndo機能がなかったのですから今のどこまでもUndoできるテキストエディタは素晴らしいですね。今ではもう当たり前で忘れてしまってましたが、Undo機能がいろんなソフトに搭載され始めた頃の驚きというか感動は今でも覚えています。最初にその感動を覚えたのはUnixワークステーション上で動いてたのEmacsだったかな。viエディタだと1回しか戻れないけど、Emacsだと結構前まで戻れるので感動しました。パソコンがまだまだWindows 3.1にもなっていない頃Unixは既に一般人から見たら現在と変わらないほどいろいろ出来るようになっていて(その分数百万もする高価なワークステーションでした)PCの貧弱さを思い知らされたものです。Windows 3.1や95が一般の会社にも導入され始めた頃クライアントサーバーやイントラネットという言葉が盛んに使われもてはやされていましたが、UnixワークステーションやVAXやVMSを既に導入していた企業ではそんなのは既に当たり前でした。

#また壮大に話が脱線したw。

ついでに書いちゃうけど、そういうわけで、Unixってすごいなーと思ってた僕は、高価だけど中古でいいからいつかUnixワークステーション欲しーなーとか思ってたりしてたのですが、(実際中古カタログとかよく見てた)そのうちフリーのLinuxやNetBSDやFreeBSDが出てくるわけです。感動しましたが、正直最初はこれが本当にパソコンにインストールして動くようになるのだろうかと思ったものですが、開発が進みご存知の通り現在ではレンタルサーバーなどでもよく使われているOSはLinuxやFreeBSDが主流に成っています。

『エクセル』のオートシェイプでハイクオリティなガンダムを描いてしまう動画!:アルファルファモザイク

タグ :

[アニメ]覚悟のススメ

ニコニコ動画で何故か消えてないアニメを発見。「覚悟のススメ」です。原作は少年チャンピオン連載だった。連載時読んでいたので懐かしい。OVAになってるのは知らなかったんだけど、懐かしかったのでつい見てしまった。面白かったです。久しぶりに原作も読みたいなぁ。

内容的には北斗の拳+強殖装甲ガイバーといった感じのワクワクするような組み合わせの作品なので好きな人は大好きなアニメではないかと思います。ちょっとグロイけどね。声優陣も豪華です。

※なにげに、「強殖装甲ガイバー」が一発で変換できるGoogle日本語入力すごいw。

タグ : ,

足立自動車学校のホームページが新型8080系ガンブラーに感染しているようです。

現在もいろんなサイトがGumblar(ガンブラー)に感染したまま放置状態になっているようですね。昨日、知り合いの子がこの自動車学校に通うことになったので、知り合いがサイトを見てたら「ウイルス警告が出たんだけど誤認識かな?」と聞かれたのでチェックしてみた。

XG001806

チェックには、下のサイトを使いました。
aguse.jp
 XG001809
[Gumblarの可能性あり]と表示されました。

XG001807 
また、細かく見ると、フランスにあるロシアドメイン(.ru)のサーバーに8080ポートと使って接続に行くようです。

現在閲覧は危険なので閲覧はしないでください。avast!だと検出できました。

例によってホームページを作成した会社のPCがガンブラーに感染したんだと思うけど、ページを置いているサーバーはロリポみたいですね。Movable Typeで構築されているようだけどver.3.33で古すぎてセキュリティーホールも放置っぽいです。こういうバージョンアップも商売になると思うんだけど作りっぱなしでその後フォローしてないのはページを作った会社は営業意識とかセキュリティー意識は低そうですね。時期にもよるけど(昔は選択肢があんまりなかったから)サーバーにロリポをえらんでる時点でまあそうかなという気もします。

ついでに、Webの安全性をチェックできるサイトをまとめておきます。

McAfee SiteAdvisor - Web サイトの安全性評価と安全検索
http://www.siteadvisor.com/

Norton Safe Web, from Symantec
http://safeweb.norton.com/

gred|安全なサイトはgreen、危険なサイトはredでお知らせ。無料のWeb安全チェックサービスといえばグレッド!
http://www.gred.jp/

aguse.jp
http://www.aguse.jp/

ただし、上のページがGumblarに感染の可能性ありと判定できたのはaguse.jpと後で紹介するガンブラー専用のチェックツールGumblar Checker 3だけです。Norton Safe Webは未評価で「評価のスケジュールに設定しました」とでるだけで何時間たっても評価してくれないので役立たずですw。他のページは安全と出ましたwww。おいw。

誤認識の可能性もあるかなーと思ったのですが、aguse.jpで.ruドメインのポート8080の外部サイトへのアクセスが検出されてるしその可能性は低いと思いましたが、試しにVMware上に構築したXPにMicrosoft Security Essentialsを入れた環境を複製してアクセスしてみたところ、エッセンシャルは検出してくれませんでした。ステータスバーを見ていると上記に書いた外部.ruドメインの8080ポートへアクセスに行っているのは確認できました。実際に感染したかまでは調べませんでした。実験用の環境は即削除しました。

でも、まだ、aguse.jpだけでは不安だったので他のチェックツールはないかと思って、探してみたらGumblar専用のチェックツールを公開されているところがあったので、そちらでもチェックしてみたところ、「新型8080系のコードが発見されました!」と表示されました。間違いなさそうです。

Gumblar Checker 3
http://gumblar.s1.dynamitelife.net/ver3/index.php

Gumblar.X Checker
http://gumblar.s1.dynamitelife.net/gumx/

XG001811

 

なんにせよ、やっぱりウイルス対策ソフトはそれなりのものを入れた方がよさそうですね。

#足立自動車学校にはメールで知らせておきました。

タグ : ,

Yahoo! JAPAN Webサービスを利用して記事の内容にマッチしたヤフオクとヤフショの商品をサイドバーに表示する様にしてみた。

XG001800 
Yahoo! JAPAN WebサービスのAPIを利用して、ヤフーオークションとヤフーショッピングからブログの記事の内容にマッチした商品をサイドバーに表示する様にしてみました。

(続きを読む)

タグ :

今日ローソンショップ100にいったらもう四海樓監修長崎ちゃんぽん売れ切れてた(涙

タイトルの通りですが、今日ローソンショップ100に行ったらもう四海樓監修の長崎ちゃんぽん売れ切れてました。調べてみると定価は200円位するものみたいなのでやっぱりみんな抜け目ないのねw。

昨日いったときもう残り少なくなってたので4個買っといて良かったw。もう入荷されないのかなぁ?改めて検索してみると、動画とか他のブログの記事などを発見したけど、やっぱり結構評価はいいですね。マルタイって人気あるんですね。

代わりに例の生誕100年記念のカップヌードルがおいてあったけど、オトク感がまったくないので触手は伸びませんでした。

しょうがないので、ニュウータッチの懐かしのちゃんぽんというのを買ってみたけど、マルタイの奴を食べた後にこれ食べるとがっかり感がすごいwww。

タグ :

IEEE802.11g/b 無線LAN USBアダプタ GW-US54GXSを買った

IEEE802.11g/b 無線LAN USBアダプタ GW-US54GXSを買いました。

無線LAN|IEEE802.11b+g 無線LAN USBアダプタ:PLANEX:GW-US54GXS:製品特長

古いノートPC用に1月に買って放置していたのですが、昨日ちょっと光回線の方が故障でネットに繋がらなくなったの別回線の方の無線LANでネットに繋ぐべくようやく梱包をといて設定しました。

商品自体は千円ちょっとで楽天のJoshin webオンラインショッピングモールで購入しました。取り寄せ商品だったので発送までに四日ほどかかりましたが、安かったし商品は問題なく届きました。

購入時にとにかく安いのを価格.comで検索してこれに決めました。レビューを見ると、設定が難解とか、マニュアルが分かりづらいなどという意見が書かれていたのでちょっと不安でしたが、無線LAN自体はマニュアル見ながらなんの問題もなく設定できインターネットに接続できました。無線LANの設定が初めてでなければ特に設定で困ることはないと思います。

価格.com – PLANEX GW-US54GXS 価格比較

この無線LANアダプタはアクセスポイントにもなるらしくDSなどでwifiする際のアクセスポイントとして使うこともできるようです。あとXlink Kaiというソフトウェアを使うことで、PSPなどの携帯ゲーム機などでお互いが離れたところにいてもインターネットを介して協力プレイが出来る様です。対応ゲーム機と対応ソフトなどの詳しい情報は下のサイトに書いてあります。

XLink Kai 日本語版公式サイト

 

楽天 amazon
PLANEX ドラクエもモンハンもWi-Fi通信するならこれ!  IEEE802.11b+g WLAN USBアダプタ GW-US54GXS

タグ :

Google日本語入力開発版の学習アルゴリズムが改善されたらしい

ちょっと前に、下記のエントリを投稿したんですが、

Google日本語入力betaをしばらく使ってみた感想とか(重いとか、バカになっていくとか)

バカになるのは自分の使い方が悪いんだと思ってたんですが、どうやらまだ調整が不完全だった様で、学習アルゴリズムが改善されたとの記事を発見。

「Google日本語入力」開発版アップデート、学習アルゴリズム改善 -INTERNET Watch

で、通常のベータ版ではなくベータ版のさらに開発版という奴らしいのでこれをインストールしてみました。

XG001797

上が、開発版をインストール前のバージョン表示バージョン0.9.248.0だったようです。

XG001798

そして、開発版をインストールした後のバージョン表示がこれバージョンが0.10.281.100になりました。

そして、設定も初期値に戻しました。(Googe日本語乳力が馬鹿になるという前に書いたエントリーの時に学習は一旦無効にしていましたが、やっぱり不便だったのでその後学習するようにしていました。馬鹿になったらまたクリア擦ればいいやということでw。)

そしてインストールして今このエントリーをバージョンアップしたGooge日本語入力で書いています。辞書がバカにならないかはしばらく使ってみないと分かりませんが、インストールしてすぐに気づいたことがひとつあります。ものすごく軽くなっています。前は変換がとてももっさりで、特にWindows Live Writerでブログの記事を書いているときは格別にもっさりだったのですが、今この記事を書いているのですが、入力と変換がサクサクで気持ちがいいです。

重くて困ってる人は試してみてはどうでしょうか?

注意点としては、開発版はインストール時に開発版なので不安定になる場合があるかもしれないのでその点をご理解したことに同意する必要があるのと、使用状況のデータと障害レポートの送信に同意する必要があります。

Google 日本語入力 – ダウンロード

タグ :

ちゃんぽん発祥の店創業百十年四海樓監修長崎ちゃんぽんがマイブームになりそうな予感。

大層な名前名前ですが、即席カップめんです。僕は豚骨ラーメンと長崎ちゃんぽんが大好きですが、ビンボウなのでカップラーメンばかりです。で、ローソンストア100によく行くのですが、いつもだとガラ炊き豚骨ラーメンを買うのですが、最近見かけたのが下のちゃんぽん。マルタイの「ちゃんぽん発祥の店 創業百十年 四海樓監修 長崎ちゃんぽん」という長い名前です。で、カップラーメンも割とあたりはずれがあるのであまり冒険はしないのですが、ちゃんぽんの即席カップ麺というのは割と珍しいですし、こういうキワモノは期待はずれのな事が多いのでかなり悩んだのですが、ちゃんぽん大好きな僕としては見逃せない商品なのでついつい買ってしまいました。

CA350230

(続きを読む)

タグ :

[perlメモ]perlの文法チェックを手軽にするバッチファイルを書いてみた

Windows上でperlスクリプトを書いている時に文法チェックする時いちいちコマンドプロンプト開いて

C:\src>perl –c hogehoge.pl

とするのが面倒なので、バッチファイル書いてみた。

下がそうです。

◆perl文法チェック.BAT

cd /D %~d1%~p1
perl -c %1
pause

 

これを、「perl文法チェック.BAT」というファイル名で適当な場所に保存。ショートカットを作成して

C:\Documents and Settings\<自分のアカウント名>\SendTo

にコピーします。

※SendToは隠しファイルなのでフォルダオプションの[ファイルとフォルダの表示]で[すべてのファイルとフォルダを表示する]に設定すると見えるようになります。

そして、下の様にperlのスクリプトがあった場合

XG001790

右クリックして、送るで[perl文法チェック]を選ぶと

perl02

下の様に文法チェックが行われます。ちょっとだけ便利です。

XG001793

このバッチファイルを作成するにあたって下記のURLを参考にしました。

◇参考:DOSのバッチファイルでカレントフォルダを取得するには?(1/1) | OKWave

%0がバッチファイル自身のパスで %1、%2・・・が引数ぐらいは知ってたけど、いろいろと取得できるのね。とっても参考になりました。

%~d0 :%0からドライブ名だけを取り出す。(C:)
%~p0 :%0からパス名だけを取り出す。(\Documents and Settings\user\デスクトップ\⇒両端に"\"が付く)
%~n0 :%0からファイル名だけを取り出す。(test)
%~x0 :%0からファイル拡張子だけを取り出す。(.bat)
%~s0 :%0をMS-DOSの8.3形式の短いファイル名を取り出す。(C:\DOCUME~1\USER\デスク~1\TEST.BAT)

◇参考:コマンドプロンプトを使ってみよう! -バッチファイルとは?-

#javaスクリプトとかperlスクリプトと書くときにウイングマンの所為で、スクリプトとスプリクトがどっちがどっちだったかよくわからなくなるのは俺だけなのかな?

ウィングマン 1 (少年ジャンプコミックス)

#ウイングマン大好きだったのでコミック買い揃えたのはいい思い出w。X1用のアドベンチャーゲーム、ウイングマンとウイングマン2も買った。ウイングマンでコマンドの「フル ス○○○○」がわからなくて詰んだのもいい思い出。鬼畜過ぎる。わかんねーよそんなのw。(超分かる人にしか分からない話w。)

タグ :

 
© KUMA TYPE