‘プログラミング’ カテゴリーのアッー!カイブ

あれこれポップアップ Lite Ver. 1.11

バグがありましたので、またバージョンアップです。

利用者もいるし、完成度も高まってきたので、専用ページ作りました。

http://dojikko.com/arekore/

あれこれポップアップ Lite Ver. 1.00 リリース

こんな感じにポップアップしてくれます。↓

あれこれポップアップ Lite

あれこれポップアップ Lite

このブログでも動いているので↓にもサンプル書きます。(ただしこのブログでは影は無効にしてあります)

ここにマウス載せてね。 CCさくら

  • title属性があるとポップアップします
  • title属性の値に全角スペースがあると改行します
  • a要素の場合、URLとキャプチャ画像を表示します(非表示も可能)
  • 自サイトへのリンクの場合はURLもキャプチャ画像も表示しません
  • ほとんどの最新のブラウザで動きます
  • 軽いです
  • かっこいいです
  • WordPress対応 (arekore_wp.js)
  • あまり使うとウザがられるかもしれません
  • IE 9未満は角丸になりません

IE6?なにそれ?(動作未確認)

ダウンロード

使い方はsample.htmlを見れば分かると思います。jsファイルには「ユーザー初期設定」欄を用意したので適当にいじってください。

もし需要があるならちゃんとした説明ページ作るのでコメントでゴルァしてください。

+追記+
Ver. 1.11 出ました!

さくら鯖でText::MeCabをインストールする方法(UTF-8対応)

これは誰でもハマると思うので、インストール手順をまとめておきます。「username」を自分のアカウント名に置き換えて利用してください。

ちなみに著者は「さくらのレンタルサーバ スタンダード」です。

「tar zxfv ******」の「******」は予め「/home/username/」にダウンロードしておくか、wgetを使ってください。

ひとつインストールできる度に「/home/username」に戻ってください。(念のため)

libiconvをインストール

tar zxfv libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --with-prefix=/home/username/local
make
make install prefix='/home/username/local' exec_prefix='/home/username/local' libdir='/home/username/local/lib'

mecabをインストール

tar zxfv mecab-0.98.tar.gz
cd mecab-0.98
./configure --prefix=/home/username/local --with-charset=utf-8 LIBS=-liconv CPPFLAGS=-I/home/username/local/include LDFLAGS='-L/home/username/local/lib -R/home/username/local/lib'
make
make check
chmod 755 install-sh
make install

↓のエラーが出るけど大丈夫っぽいです。
(少なくとも自分はこれが出ても動きました)

runtests faild in
exit: Illegal number: -1
FAIL: run-cost-train.sh
===================
1 of 3 tests failed
===================

mecab-ipadicをインストール

tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --prefix=/home/username/local --with-charset=utf-8
make
make install

mecab-configのパスを調べる(次のステップで聞かれるため)

whereis mecab-config
mecab-config: /home/username/local/bin/mecab-config

Text::MeCabのインストール

tar zxvf  Text-MeCab-0.20008.tar.gz
cd Text-MeCab-0.20010
perl Makefile.PL prefix=/home/username/local/lib/perl5/ LIB=/home/username/local/lib/perl5/ INSTALLMAN1DIR=~/home/username/local/man/man1 INSTALLMAN3DIR=~/home/username/local/man/man3

↓のメッセージが出る場合は(恐らく出る)

Can't link/include 'mecab', 'mecab'

「/home/username/Text-MeCab-0.20010/Makefile.PL」をテキストエディタで開いて「check_lib($config);」を「#check_lib($config);」にしてコメントアウト。

コメントアウトしたら、「Text::MeCabのインストール」のコマンドを再度入力。

Warning: prerequisite Test::Requires 0 not found.

↑のエラーが良くみたら出ている場合は、

cpan
install Test::Requires

で一応インストール。

「Test::Requires」をインストールしたら「Text::MeCabのインストール」のコマンドを再入力。

無事に終わったら完了です!もしエラーが出ていたら、まずはエラーの英語をよく読みましょう。

サンプルコード↓(文字コード:UTF-8)

#!/usr/bin/perl

use strict;
use warnings;
use lib qw(/home/username/local/lib/perl5/i386-freebsd-64int);
use Text::MeCab;

print "Content-Type: text/html; charset=UTF-8\n\n";

my $mecab = Text::MeCab->new();

my $str = "私はかわいいものが好きなだけであってロリコンではないぞ!";

my $node = $mecab->parse($str);

for(my $node = $mecab->parse($str); $node; $node = $node->next)
{
	print " 表層:" . $node->surface . "<br />\n"; # 表層
	print " 品詞:" . $node->feature . "<br />\n"; # 現在の品詞
	print "コスト:" . $node->cost    . "<br />\n"; # その形態素までのコスト
	print "<br />\n";
}

サンプルコードに対するアウトプット↓

 表層:私
 品詞:名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
コスト:2737

 表層:は
 品詞:助詞,係助詞,*,*,*,*,は,ハ,ワ
コスト:3163

 表層:かわいい
 品詞:形容詞,自立,*,*,形容詞・イ段,基本形,かわいい,カワイイ,カワイイ
コスト:9394

 表層:もの
 品詞:名詞,非自立,一般,*,*,*,もの,モノ,モノ
コスト:11400

 表層:が
 品詞:助詞,格助詞,一般,*,*,*,が,ガ,ガ
コスト:10091

 表層:好き
 品詞:名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ
コスト:10402

 表層:な
 品詞:助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
コスト:9498

 表層:だけ
 品詞:助詞,副助詞,*,*,*,*,だけ,ダケ,ダケ
コスト:13285

 表層:で
 品詞:助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
コスト:14327

 表層:あっ
 品詞:助動詞,*,*,*,五段・ラ行アル,連用タ接続,ある,アッ,アッ
コスト:10781

 表層:て
 品詞:助詞,接続助詞,*,*,*,*,て,テ,テ
コスト:11972

 表層:ロリコン
 品詞:名詞,一般,*,*,*,*,ロリコン,ロリコン,ロリコン
コスト:16804

 表層:で
 品詞:助詞,格助詞,一般,*,*,*,で,デ,デ
コスト:17505

 表層:は
 品詞:助詞,係助詞,*,*,*,*,は,ハ,ワ
コスト:17740

 表層:ない
 品詞:形容詞,自立,*,*,形容詞・アウオ段,基本形,ない,ナイ,ナイ
コスト:19285

 表層:ぞ
 品詞:助詞,終助詞,*,*,*,*,ぞ,ゾ,ゾ
コスト:21801

 表層:!
 品詞:記号,一般,*,*,*,*,!,!,!
コスト:22256

 表層:
 品詞:BOS/EOS,*,*,*,*,*,*,*,*
コスト:20519

Visual Studio 2010+OpenCV 2.1の設定

OSはWindows Vistaでやりました。

↑の2つのリンクでほぼできます。

VS2010の場合、c:\OpenCV2.1\lib\ia32\vc9 を c:\OpenCV2.1\lib\ia32\vc10 に置き換えて、あとはCMakeのConfigureボタンを押したあとに出る「どの開発環境を使うか?」のところでVisual Studio 10 を選択するのに注意です。

VC++ ディレクトリはプロジェクト毎に設定できますが、プロジェクト毎に設定するのが面倒な場合は、「C:\Users\ユーザ名\Local Settings\Application Data\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props」をテキストエディタで開いて、↓のようにすれば新しくプロジェクトを作った時点で設定済みになっています。(ARToolKitのも混ざっています・・(^^; )

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
	<PropertyGroup>
		<ExecutablePath>$(ExecutablePath)</ExecutablePath>
		<IncludePath>C:\OpenCV2.1\include\opencv;C:\OpenCV2.1\include\tbb;C:\Program Files\ARToolKit\include;$(IncludePath)</IncludePath>
		<ReferencePath>$(ReferencePath)</ReferencePath>
		<LibraryPath>C:\OpenCV2.1\build\lib\Debug;C:\OpenCV2.1\build\lib\Release;C:\OpenCV2.1\lib\ia32\vc10;C:\Program Files\ARToolKit\lib;$(LibraryPath)</LibraryPath>
		<SourcePath>$(SourcePath)</SourcePath>
		<ExcludePath>$(ExcludePath)</ExcludePath>
	</PropertyGroup>
</Project>

さくらたんのレンタルサーバでEmail::Sender

Twitterで「Perlでのモダンなメールの送信方法はNet::SMTPかな!?」とつぶやいたら、「Email::Sender」だよ!と教えてもらったのでモジュールのインストールからやりました。

CPANのインストール手順は省略するとして、Email::Senderのインストールは他のモジュールをインストールする手順で普通にできました。Moose依存なので少し時間がかかりましたが・・・。

とりあえず日本語のメールも送信できるコード↓

#!/usr/bin/perl

use utf8;
use strict;
use warnings;
#use CGI::Carp qw/fatalsToBrowser/;
use Encode    qw/encode/;
use lib       qw(Emaill::Senderをインストールしたパス);
use Email::Sender::Simple qw/sendmail/;
use Email::MIME;
use Email::MIME::Creator;
binmode STDOUT => ':utf8';

my $email = Email::MIME->create
(
	header =>
	[
		To      => encode('MIME-Header-ISO_2022_JP' => '"ぱわ" <pawaアッー!とdojikko.com>'),
		From    => encode('MIME-Header-ISO_2022_JP' => '"くりえ" <kurieアッー!とk-hanyan.com>'),
		Subject => encode('MIME-Header-ISO_2022_JP' => "てすとめぇる"),
	],

	attributes =>
	{
		content_type => 'text/plain',
		charset      => 'ISO-2022-JP',
		encoding     => '7bit',
	},

	body => encode('iso-2022-jp' => "がぉぉぉ!nなのです!n"),
);

sendmail($email);

print "Content-Type: text/html; charset=UTF-8nn";
print "送信完了!";

ちなみに、本文の部分はISO-2022-JPに、ヘッダー部(To,From,Subjectなどの部分)はISO-2022-JPをさらにMIMEという形式に変換したものでなければならないようです。

ARToolKit俺用メモ

Visual Studio 2010 Professionalの場合

VC++ディレクトリを設定できないので、「C:\Users\ユーザ名\Local Settings\Application Data\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props」をテキストエディタで開き

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
	<PropertyGroup>
		<ExecutablePath>$(ExecutablePath)</ExecutablePath>
		<IncludePath>C:\Program Files\ARToolKit\include;$(IncludePath)</IncludePath>
		<ReferencePath>$(ReferencePath)</ReferencePath>
		<LibraryPath>C:\Program Files\ARToolKit\lib;$(LibraryPath)</LibraryPath>
		<SourcePath>$(SourcePath)</SourcePath>
		<ExcludePath>$(ExcludePath)</ExcludePath>
	</PropertyGroup>
</Project>

とする。