正規表現で全角文字(ひらがな・かたかな・漢字、記号など)、半角カタカナをマッチさせる

#!/usr/bin/env perl use strict; use warnings; use Encode; use utf8; # 全角文字、全角記号、全角英数字、半角カナを含めている my $strings = "Aあb漢Cイd字0ギ-ャ1ゃ213=~3\\^_%―$\"#\tわ\n−Z"; my @chars = split '', $strings; my $utf8 = find_enco…

FreeBSD の Perl がアップグレードされた場合の対応方法

おそらく vim をアップグレードしたタイミングで、Perl のバージョンもアップグレードしたようだ。これまで正常に動作していたスクリプトが、モジュールを読み込めないとエラーを出しているのに気が付いた。 「/usr/ports/UPDATE」を確認すると、 20130612: …

ディレクトリを走査してファイルの絶対パスと相対パスを出力する

指定したディレクトリ内にあるファイルの絶対パスと相対パスを取得する。 package practice; import java.io.File; import java.io.IOException; public class GetFilePathList { public static void main(String args[]) throws IOException { //String pre…

文字列の一部を取得する mb_substr の動作について

PHP

全角半角が混在する文字列を操作する場合の実行結果を確認する。 文字列の文字コードは UTF-8 とする。 文字コードを指定しない場合: %s</p>', $after); $after = mb_substr($string, 0, 5, 'UTF-8'); printf('<p>文字コードを指定した場合: %s</p>', $after); ?> 実行…

削除・名称変更・移動できないファイル名を操作する

ファイルを消すこともファイル名も変更できないファイルを操作する。 まずは ls コマンドで iノード番号を調べる $ ls -i 1257928 消せないファイル名の画像_01.jpg 1257923 消せないファイル名の画像_02.jpg 1257924 消せないファイル名の画像_03.jpg 12579…

Compass をインストールする

Compass を試してみるために、数年ぶりに Ruby をインストールしてみる。 gem 自身をアップデートしてみると、下記のエラーが発生した。 C:\Users\littlebuddha>gem update --system Updating rubygems-update Fetching: rubygems-update-2.0.3.gem (100%) S…

PHP のタイムゾーンを修正する

FreeBSD で PHP-FPM を設定して稼働確認を取ったら、下記のようなエラーが出た。 Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set(…

MS Access の週番号と週初め

ISO-8601 には準拠していない。 SELECT CInt(Format(#2012/09/22#,"ww")) AS 土曜日, CInt(Format(#2012/09/23#,"ww")) AS 日曜日, CInt(Format(#2012/09/24#,"ww")) AS 月曜日; 実行結果。 週番号 土曜日 38 日曜日 39 月曜日 39 MS Access の週番号は日曜…

FreeBSD に munin をインストールする

munin をインストールする ports から munin をインストールする。 % cd /usr/ports/sysutils/munin-master % sudo make install clean ******************************************************************** Unless this file already existed, a sample …

さくら VPS で FreeBSD を使う

インストール直後に、一気にやってしまう設定を残しておく。 さくら VPS にFreeBSDをインストールする FreeBSD 8.1 から FreeBSD 9.0 にアップグレードする portupgrade をインストールする make.conf をサーバー用途に変更する portsnap.conf を編集する ss…

ソースファイルを取得する

sysinstall からカーネルなどのソースを取得できない場合、ネットワークから取得する。 # cd / # fetch ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/amd64/9.0-RELEASE/src.txz # xz -d src.txz # tar xvf src.tar 「ftp://ftp.jp.freebsd.org/pub/FreeB…

Amazon EC 2 で Amazon Linux AMI に cpanm で DBD::mysql をインストールする

その前提として、 perlbrew で独自に Perl をインストールしている cpanm を使ってインストールする というのがある。 DBD::mysql をインストールする おそらく DBD::mysql をインストールするのに失敗し、「~/.cpanm/build.log」をみるようにメッセージが出…

Windows 7 で Amon2 が動作するのか?

結論としては、Amon2 で作成した雛形内に cpanm をインストールするところから、進められていない。理由は、「Nmake15.exe が 64 bit に対応していない」からだ。 前提 今回試してみた環境は次の通り。 Windows 7 64 bit SP1 ActivePerl 5.14.2 この ActiveP…

ln の備忘録

ln -s 本体 シンボリックリンク

Windows 版 ActivePerl で ImageMagick を使う

ActiveState の ActivePerl を使っていれば、ImageMagick のインストーラーが Image::Magick(PerlMagick)をインストールしてくれる。 手順としては 32bit か 64 bit の Windows 版 ActivePerl をインストールする。 Windows Binary の ImageMagick をインス…

さくらのレンタルサーバーに perlbrew を使って Perl をインストールする

以前作成した環境をすべて削除し、レンタル時の初期状態に戻してから perlbrew で Perl をインストールしたら、エラーが発生せずにインストールできた。 % curl -LO http://xrl.us/perlbrew % chmod u+x perlbrew % ./perlbrew install % cat perl5/perlbrew…

さくらのレンタルサーバーに zsh をインストールしたら怒られた

いまのレンタルサーバーには zsh がインストールされているから、特に理由がない限り、自分でインストールをする必要がないという話し。 % mkdir -p ~/local/src % cd ~/local/src % wget http://downloads.sourceforge.net/project/zsh/zsh-dev/4.3.12/zsh-…

Perl 本体が落ちる

Windows 7 上で Perl を実行すると Perl.exe が初めてクラッシュした。思い当たることがなく、同じスクリプトを FreeBSD 上で実行すると Perl がクラッシュしてコアダンプを吐き出した。 % tail -f /var/log/messages Nov 18 13:43:49 myhost kernel: pid 83…

Mac OS X Lion に homebrew で MySQL をインストールする

Mac OS X 10.7 に MySQL をインストールする。homebrew はすでにインストール済みとする。 % brew install mysql ==> Installing mysql dependency: cmake ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/cmake-2.8.6-bottle.tar.gz…

XAMPP の MySQL を利用して Perl の DBD::mysql をインストールできるか

結論としては、インストールできないといわざるを得ないと考える。理由としては、DBD::mysql をインストールするのに必要なファイルが、XAMPP の MySQL では不足しているからだ。 % cpanm DBD::mysql でインストールをすると、mysql_config のパスがわからな…

ストアドファンクション その1

DROP FUNCTION IF EXISTS FIND_CATEGORY; DELIMITER // CREATE FUNCTION FIND_CATEGORY (category_title VARCHAR(32)) RETURNS INT BEGIN DECLARE HAS_TITLE_ID INT DEFAULT 0; SELECT `id` INTO HAS_TITLE_ID FROM `bbs_category` WHERE `title` = category…

LWP::UserAgent で gzip, deflate のデータを受け取る

#!/usr/bin/env perl # 日本語 use strict; use warnings; use LWP::UserAgent; use HTTP::Message; use utf8; my $board_list_url = 'http://www.example.com/'; my $ua = LWP::UserAgent->new; my $can_accept = HTTP::Message::decodable; my $response =…

PDO で SELECT の結果数を取得する

PHP

SELECT 文で取得した結果の数が取れなかったので調べてみたら、次のような注意書きがあった。 PDOStatement::rowCount() は 相当する PDOStatement オブジェクトによって実行された 直近の DELETE, INSERT, UPDATE 文によって作用した行数を返します。 関連…

文字コードを変換する際に全角波ダッシュ「〜」を文字化けなしで変換する

$target 内の文字コードは Perl の内部文字コードに変換してある。 # Shift-JIS の全角波ダッシュを UTF-8 の全角波ダッシュに変換する $target =~ tr/\x{301c}\x{2212}/\x{ff5e}\x{ff0d}/; # UTF-8 の全角波ダッシュを Shift-JIS の全角波ダッシュに変換す…

画像を Base64 でエンコードする

画像を Base64 でエンコードすることの目的として、 Data URI スキーマを利用することでデータ(画像)のリクエスト回数を減らす。画像データを HTML 内に記述してしまう。 Base64 でエンコードされた画像を HTML 内に記述することで、応答するデータを圧縮す…

スマートフォンで操作する event について

パソコンでは正常に動いているのに、スマートフォンでは操作のイベントを正しく認識していないように思えたので、調べた。 その結果、 if (isSmartPhoneDevice()) { // スマートフォンでは、PC の clikc イベントは tap になる $('a').tap(function() { ... …

自作 Web API でデータを JSONP で返す場合

GET メソッドや POST メソッドで callback 関数をサーバー側で引き取り、JSON を引数に受け取る関数名を出力する必要があることがわかった。 自分でやってみないとわからないことばかりだ。 http://www.example.com/webapi?id=1&callback=mycallback という …

Memcache のサンプル利用例

利用する箇所は、Controller でも Service でもよい。 下記は Controller での利用した場合のサンプル。 import org.slim3.memcache.Memcache; public class MyAppController extends Controller { private MyAppService service = new MyAppService(); priv…

Slim3 の Timezone の取り扱いについて

Slim3 のタイムゾーンの挙動が複雑なことに気が付いた。 FrontController では、タイムゾーンは UTC に設定されている。 TestCase から FrontController で設定されているタイムゾーンはローカル時間。この場合、自分は日本時間に設定しているので、JST で設…

正規表現でマッチした文字列を取得する

備忘録。 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexSample { public void main(String[] args) { String date = "20110101"; Pattern pattern = Pattern.compile("^(\\d{4})(\\d{2})(\\d{2})$"); Matcher matche…