2006年8月アーカイブ

Imager-0.53でGIFアニメーションのループをさせるためのパッチ」で書いたパッチを作者のTony Cookさんに送ったら、「次のリリースではこれをやりたいんだ!」と返事がきました。

んで「Imagerはgiflib 3系のサポートも行おうとしている」のだそうで、「次のリリースでは、giflib 3では無効に、giflib 4では有効にする必要があるね」との話も書いてあったので、次のリリースを期待して待ちませう。

まるごとPerl! Vol.1
まるごとPerl! Vol.1
posted with amazlet on 06.08.26
小飼 弾 宮川 達彦 伊藤 直也 川合 孝典 水野 貴明
インプレスコミュニケーションズ (2006/08/24)

「まるごとPerl Vol.1」が発売されました。今回、Perl界隈の名立たる偉人の方々が名が連ねている中、恥しながら私もSledgeについての記事を書かせて頂きました。本当に恐縮です。。。

見本が届いていたので、さっそく他の記事を拝見させて頂きましたが、最近のPerlやWeb技術についていろいろな題材が盛り込まれていて結構面白いことになっている感じです。個人的は、弾さんのEncodeの記事がけっこうよかったです。なぜならEncodeでの日本語の扱いって、意外と曖昧に覚えていたり、あれencodeだっけdecodeだっけとか思うこともあって、結局Jcodeでやってしまったりとかあるんですが、今回の記事を見てその辺の曖昧に覚えていたことをいろいろ理解することができました。

その他にも、CatalystやJiftyなどのフレームワークの記事はとりあえず触ってみようかなという気にさせられるし、水野さんのWeb APIの記事は昨今使われているいろいろなWeb APIの説明がモリモリで説明されていたり、その他それPlaで有名なPlaggerの記事ありーの、Inside はてブに Inside livedoor Readerありーの、Perl6ありーのでなかなかいい感じです。
Perlを使っている方は一冊持っていて損はない内容になっていると思いますので、興味のある方はぜひ。

最近マイブームの Perl でイメージを扱うモジュール Imager ですが、最新バージョンの 0.53 では GIF アニメーションの生成がうまくできないようです。原因は giflib の問題らしいのですが、giflib の最新バージョン(現時点では4.1.4)ではその問題が直っているっぽいのですが、まだ Imager のバージョンアップがされないようなので patch を作ってみました。

このパッチを適用する場合には、giflibのバージョン4.1.4以降を入れておく必要がありますので注意して下さい。
diff -u Imager-0.53/gif.c Imager-0.53.new/gif.c
--- Imager-0.53/gif.c   2006-06-30 12:54:56.000000000 +0900
+++ Imager-0.53.new/gif.c       2006-08-20 00:10:34.000000000 +0900
@@ -1387,13 +1387,12 @@
      If giflib's callback interface wasn't broken by default, I'd
      force file writes to use callbacks, but it is broken by default.
   */
-#if 0
   /* yes this was another attempt at supporting the loop extension */
   int loop_count;
   if (i_tags_get_int(&img->tags, "gif_loop", 0, &loop_count)) {
     unsigned char nsle[12] = "NETSCAPE2.0";
     unsigned char subblock[3];
-    if (EGifPutExtension(gf, 0xFF, 11, nsle) == GIF_ERROR) {
+    if (EGifPutExtensionFirst(gf, APPLICATION_EXT_FUNC_CODE, 11, nsle) == GIF_ERROR) {
       gif_push_error();
       i_push_error(0, "writing loop extension");
       return 0;
@@ -1401,18 +1400,19 @@
     subblock[0] = 1;
     subblock[1] = loop_count % 256;
     subblock[2] = loop_count / 256;
-    if (EGifPutExtension(gf, 0, 3, subblock) == GIF_ERROR) {
+    if (EGifPutExtensionLast(gf, APPLICATION_EXT_FUNC_CODE, 3, subblock) == GIF_ERROR) {
       gif_push_error();
       i_push_error(0, "writing loop extention sub-block");
       return 0;
     }
+#if 0
     if (EGifPutExtension(gf, 0, 0, subblock) == GIF_ERROR) {
       gif_push_error();
       i_push_error(0, "writing loop extension terminator");
       return 0;
     }
-  }
 #endif
+  }
   return 1;
 }

@@ -1491,6 +1491,7 @@
 */

 static void gif_set_version(i_quantize *quant, i_img **imgs, int count) {
+  EGifSetGifVersion("89a");
   /* the following crashed giflib
      the EGifSetGifVersion() is seriously borked in giflib
      it's less borked in the ungiflib beta, but we don't have a mechanism

yaml-mode 0.0.2 have been released. yaml-mode is a major mode for editing files in the YAML data serialization format. New version is added a lot of features from Vandegrift's patch. You can download it from http://yaml-mode.clouder.jp/.

Changes is below:
* Patch from Marshall T. Vandegrift. Added lots of features.
* Added face used for YAML node anchors and aliases to `font-lock-function-name-face'.
* Added face used for YAML tags to `font-lock-type-face'.

以前書いたemacsでyamlを扱うためのメジャーモードであるyaml-modeの新しいバージョン(0.0.2)をリリースしました。今回は、Vandegriftさんからのパッチを適用し、多くの機能が追加されていると思います。ソースは、http://yaml-mode.clouder.jp/からダウンロードできます。

主な変更点は以下:
* Marshall T. Vandegriftのパッチを適用し、多くの機能が追加されています。
* `font-lock-function-name-face'というアンカーとエイリアスのためのfaceを追加しました。
* `font-lock-type-face'というタグのためのfaceを追加しました。

自分用メモ。

もし、/はBasic認証したいけど、/fooと/barだけは制限をかけたくないという場合は、Locationディレクティブに以下のようにすればよい。
<Location ~ ^/(?!foo|bar)/>
AuthType Basic
AuthUserFile foobar.htpasswd
AuthName BasicAuth
require valid-user
</Location>

検索

広告

OpenID対応しています OpenIDについて
Powered by Movable Type 4.22-ja