2011-01-01から1年間の記事一覧

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…

Access-Control-Allow-Origin と Access-Control-Allow-Headers について

Slim3 で JSON を受け取るために、久しぶりに Ajax のデータを受け取る処理を記述していたら、(Chrome 上で)下記のエラーが発生した。 XMLHttpRequest cannot load http://localhost:8888/api/json/... Origin http://localhost is not allowed by Access-Co…

Slim3 で JSON を利用する

参考 Slim3 JSON 機能の説明(非公式) GAE + Slim3 で JSON 出力 Model での記述例。 基本的には JSON を利用するのに既存の Model をそのまま使える。 しかし、JSON アノテーションで Model が保持するエンティティ内のプロパティを操作したい場合は、下記の…

任意の日のタイムスタンプの範囲を取得する

結局使わなかったけれど。 日付のパースには Apache のライブラリを利用。 import java.util.Date; import org.apache.commons.lang.time.DateUtils; public class MySample { private Date _startDatetime; private Date _endDatetime; private void setTim…

WWW::Mechanize と文字コード

WWW::Mechanize は、 HTTP レスポンスヘッダ部分の Content-type で設定されている charset HTTP レスポンスのボディに記述されている文字コードmeta 要素で設定されている Content-Type の charset を参照して、データの文字列を Perl 内部の文字列にデコー…

Slim3 の application_ja.properties に日本語を書くために UTF-16 LE を16進数で表現する

Slim3 の application_ja.properties にマルチバイトを記述するには、文字列を UTF-16LE に変換して16進数でダンプする必要があることに気が付いた。 この方法を Java でやる方法がわからなかったので、Perl で書いてみた。 #!/usr/bin/perl use strict; use…

Slim3 の BeanUtil で特定の値を処理対象外にしたい場合

例えば、渡された値が一意でその値を Key として利用したい場合や、タイムスタンプを Java で利用できるミリ秒単位に変換したい場合などで、BeanUtil で処理をする前に一度別の処理を行いたいときに使う。 public class ItemService { private ItemMeta a = …

Slim3 をローカルで起動するとエラーが発生する

エラー内容は下記の通り。 2011/06/21 3:03:50 com.google.apphosting.utils.jetty.JettyLogger info 情報: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger 2011/06/21 3:03:50 com.google.apphosting.utils.config.AppEn…

WWW::Mechanize で HTTP ステータスによって die するのを回避する

通常の初期設定では、WWW::Mechanize は HTTP ステータスで 400 や 404 コードが返されると、WWW::Mechanize は die を起こして処理を中断してしまう。 そのため、400 や 404 コードが返された場合の処理が記述できない。 対応方法 use WWW::Mechanize; my $…

LWP::UserAgent の POST メソッドと 414 Request-URI Too Large コード

LWP::UserAgent の POST メソッドの間違った使い方 LWP::UserAgent の POST メソッドの間違った使い方をしていたため、レスポンスに「414 Request-URI Too Large」が返ってくる原因に気が付かなかった。 問題だったコード #!/user/bin/env perl use strict; …

Slim3 の JSP でそのまま文字列を出力する

JSP ファイル内での記述 <p>${f:h("&amp;")}</p> <p>${"&amp;"}</p> 出力後 <p>&amp;amp;</p> <p>&amp;</p>

lenght 関数の動作確認

Windows 上で動作を確認した。 #!/usr/bin/env perl # 日本語 use strict; use warnings; use Encode; use utf8; my $chars; while (<DATA>) { $chars = $chars . $_; } print encode('cp932', "Perl の内部文字コードの場合は lenght 関数は文字数を返す\n"); pri</data>…

ports インストール時のオプションを表示する

ports インストール時のオプションの設定内容を表示する % sudo make showconfig ports インストール時のオプションの設定内容を破棄する % sudo make rmconfig 設定ファイルの場所 「/var/db/ports」下にある。このディレクトリ下のディレクトリを削除する…

てっとり早く ports 名を知りたい場合

whereis コマンドにアスタリスクを加えて探すよりも、FreeBSD の公式サイトから入手できる ports を探したほうが早い。 About FreeBSD Ports

MySQL 5.1 系と MySQL 5.5 系の文字コード

MySQL をインストールしたら、root のパスワードを設定した後に、文字コードの設定をするが、エラーが発生。しばらく調べてみたら、 MySQL 5.5 系では文字コードの設定方法が変更されていた。 mysql> SHOW VARIABLES LIKE 'char%'; +-----------------------…