タグ

*perlに関するsugizouのブックマーク (145)

  • リニューアル詳細 2 — 旧メイン・ブログ | Baldanders.info

    昨日の続き。 del.icio.us の daily blog posting 機能は悪くないのだが, うちの Movable Type では再構成時に上手くカテゴリ情報が入らない。 DB にはちゃんと入っていて, 手動で再構成するとちゃんとカテゴリ情報も入る。 なんだかなぁ。 この MT 3.3x シリーズは異様にバグが多い気がするんだけど大丈夫なんだろうか。 しょうがないので POST 時にカテゴリを指定するのを止めた。 昨日書いた RSS を JSONP に変換する CGI だが, 何が大変だったかというと, 日語が文字化けしやがるのだ。 例えば「Vox にガチャピン登場!」というタイトルを CGI に通すと, "Vox \x{306b}\x{30ac}\x{30c1}\x{30e3}\x{30d4}\x{30f3}\x{767b}\x{5834}\x{ff01}" ってな感じの謎

    リニューアル詳細 2 — 旧メイン・ブログ | Baldanders.info
  • Perl で 8ビット CPU を作る - naoyaのはてなダイアリー

    CPU を作る、と言ってもハードではなくソフト、仮想機械です。 2001 年から UNIX USER で連載されていた西田亙さんの「gccプログラミング工房」。いまさらながら、バックナンバーを取り寄せて初回から順番に読んでいます。とてもためになる連載です。 この連載中で第10回から数回に分けて開発されていた octopus という 8 ビット CPU の仮想機械があります。オリジナルは C 言語で書かれていたのですが、その設計を見て、これは他の言語でも作れるのではないか、と思い Perl に移植してみたところなんとか動作させることができました。以下の URL にコードを公開します。(西田さんに確認を取ったところ、オリジナルのソースは Public Domain とのことでした。オリジナルは http://www.skyfree.org/jpn/unixuser/ からダウンロード可能です。

    Perl で 8ビット CPU を作る - naoyaのはてなダイアリー
  • IRCのチャンネルのログを取るBOTスクリプト改良 - Lazy Programmer :-p

    http://d.hatena.ne.jp/tomyhero/20070911/1189489871 複数のチャンネルをログる用に修正した。ログファイル指定じゃなくて、ディレクトリ指定に変更 #!/usr/bin/perl use strict; use warnings; use POE qw(Sugar::Args Component::IRC); use Class::Inspector; use IO::All; use Getopt::Long; use DateTime; use File::Spec; my @channels = (); my $logdir = '/tmp/'; my $nick = 'logbot'; my $server = 'localhost'; my $port = 6667; my $result = GetOptions ( "channel

    IRCのチャンネルのログを取るBOTスクリプト改良 - Lazy Programmer :-p
  • whileでファイルハンドルをループする時の暗黙の$_について - Unknown::Programming

    こんな記事をみつけた。 Perlプログラムをコンパクトに記述する方法 - builder by ZDNet Japan 短く書けてPerlってすげーんだよ的な記事でまぁそれはそれでいいんだけどこういう場合はデメリットもちゃんと説明すべきかと。 というのも上記記事にこういうコードがあったのです。 while (<STDIN>) { print $_; } $_を使うことによって「while( $line = ) {}」と書くよりも短く書けて良いっちゃ良いんですが、このコードにはバグが含まれています。 whileでの暗黙の$_はローカル化されないのです。コレ超重要。 つまり、 $_ = 100; while ( <STDIN> ) { print $_; } print $_; こう書くと$_に格納してた100が上書きされてしまうので、whileを抜けたあとに$_を参照しても100という値は消

    whileでファイルハンドルをループする時の暗黙の$_について - Unknown::Programming
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • YappoLogs: overloadのreblessとRHLのoverloadが遅いパッチ

    overloadのreblessとRHLのoverloadが遅いパッチ fbis++ overloadと再blessの問題 - Unknown::Programming でも現状の対策としてはどうすればいいのかちょっと思いつかないですね。リファレンスを捜索してoverloadフラグを立てる、なんてことをするモジュールとか作れるのかしら・・・。この段落を見て全てが繋がった! fbisすげーよ!まじすげーよ! 以前騒がせたFedoraCoreやCentOS系の遅いPerlのパッチの件で、overloadすると極端に遅くなるって話題ですが、問題のpatchのコメントに注目すると This is a hack cope with reblessing from class with overloading magic to one without (or the other way). まさしく、

    sugizou
    sugizou 2007/12/12
    fbis++
  • overloadと再blessの問題 - Unknown::Programming

    overload が無効? - Practice of Programming 軽く調べてみたんですが、どうやらオブジェクトを再blessした場合、overloadフラグが立たないケースがあるようです。 具体的に言うと、overloadを使用しないオブジェクト$mが、overloadを使用しているクラスに再blessした場合、$mにはoverloadフラグが立つが$mをコピーした別のリファレンスにはoverloadフラグが立たないということです。 あー、ややこしい。こーゆーのは文章で説明するよりもコードを見た方がわかりやすいってことで以下コードで説明。 まずoverloadフラグが立つケース use Mortal qw/:all/; use strict; my $m = bless {}, "main"; bless $m , 'Mortal'; print $m; # This obj

    overloadと再blessの問題 - Unknown::Programming
  • overload - Perl の演算子のオーバーロードを行うパッケージ - perldoc.jp

    overload - Perl の演算子のオーバーロードを行うパッケージ 概要¶ package SomeThing; use overload '+' => \&myadd, '-' => \&mysub; # etc ... package main; $a = new SomeThing 57; $b=5+$a; ... if (overload::Overloaded $b) {...} ... $strval = overload::StrVal $b; 説明¶ オーバーロード関数の宣言¶

  • YappoLogs: dan - リテラルとかを読まなくなるプラグマ作った

    dan - リテラルとかを読まなくなるプラグマ作った 何を言っているのか解らないとは思いますが、use danをするとそれ以降の""とか''やq{}とかとかで囲まれた文字列を全て読まなくなります。 use dan; print "foo"; # not displaying no dan; print "foo"; # foo こんな感じで、use danからno danの間にあるもの全てを読まなくなります。 正規表現だろうがqwの中身だろうがヒアドキュメントだろが構わずです。 その他フィルタ的にも使えるので詳しくはソースとか読んでみて下さい。 サンプルはテストを見るべし。 ちょっとしたアーミーナイフ的で素敵です。 use orz的に考えてもらえると嬉しいです。 なんだかuse utf8してると、hint bits的にdanの処理がうまく行かないのでforceモード付けて、use utf8

  • Munin - Trac

    Hugin and Munin are the ravens of the Norse god king Odin. They flew all over Midgard for him, seeing and remembering, and later telling him. "Munin" means "memory". News 2008-07-03: A mailinglist for german-speaking Munin users started today. Info and subscription under: https://lists.sourceforge.net/lists/listinfo/munin-users-de?language=de 2008-06-11: Munin 1.2.6 is released. It contains bugfi

  • ウェブリブログ:サービスは終了しました。

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    ウェブリブログ:サービスは終了しました。
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 非同期メッセージングを実現するPOE::Component::MessageQueue を試してみた : no hacking, no life

    非同期のメッセージングができるソフトウェアを探してたら、PerlでPOE::Component::MessageQueueというモジュールにあったので使ってみた。検索してもcpan以外のドキュメントが見当たらなかったので、ソース読んだりで使い方を調べてみたので簡単に紹介します。間違ってたり、もっと正しい使い方があったらコメント頂けると助かります。 概要 POE::Component::MessageQueueは、メッセージキューをPOE上に構築して非同期メッセージングを実現したperlモジュールであり、キューへの入出力はメッセージングに特化した(TCP上の)STOMPというプロトコルで行います。詳しくはcpanを参照してください。STOMPについては、この辺に書いてあります。 インストール インストールはこれだけ。 sudo perl -MCPAN -e 'install POE::Com

  • ActiveMQ

    内容は2012年当時のものです Date: 2012.4.6 Update: 2020.8.29 (codehausへのリンクを削除) JMS の実装、ActiveMQ を perl から使うことについて。特にトランザクションまわり。 まずはJavaで。 Queue からメッセージを読みこみ、処理をして、失敗したら rollback したい、という場合にはJMS使ってJavaから使うと、こんな感じ? 参考にしたページ TECHSCORE JMS / 5.メッセージ配信の確認 ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL); QueueConnection connection = factory.createQueueConnec

    ActiveMQ
  • log4ZIGOROu : Gearmanを使ってみた

    daemonの起動 下記のようにdaemonとして起動します。 daemon起動オプションに関してですが、PODの記載は誤りで--daemonizeでは無く--daemonです。 $ sudo gearmand --daemon --pidfile=/var/log/gearmand.pid --debug=1 関数の登録 次にgearmanに実行させたい処理を予め登録し、さらにjob queを待ち受けるworkerを記述します。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use Gearman::Worker; use Storable qw(thaw); use List::Util qw(sum); my $worker = Gearman::Worker->new; $worker->job

  • gearman [Gearman Job Server]

    What is Gearman? Gearman provides a generic application framework to farm out work to other machines or processes that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events. In other word

  • Catalyst::Plugin::DoCoMoUID作ってみた。 - Unknown::Programming

    要はApache::DoCoMoUIDと同じようなことをCatalystのプラグインとしてやるだけですね。 sub default : Private { my ( $self, $c ) = @_; my $uid = $c->req->header('X-DoCoMo-UID'); } こんな感じ。ま、それだけのこと。 Catalyst::Plugin::DoCoMoUID-v0.01

    Catalyst::Plugin::DoCoMoUID作ってみた。 - Unknown::Programming
  • Perlでプラガブルモジュールを作ろう!:第2回 attributeを使ってplugin作成を支援する|gihyo.jp … 技術評論社

    今回のテーマ 今回は、Perlのattributeという仕組みの詳細と、そのattributeを利用したClass::Componentのpluginについての解説、pluginの作成方法といった話題を取り上げます。 サンプルアプリケーション 連載では、プラガブルなモジュールを作製するという事を考えて、Gopperという実際に実行可能なサンプルアプリケーションを元に解説を行ないます。GopperはCodeRepos上のsvnリポジトリに置いてあるので各自checkoutしてください。 svn co -r 455 http://svn.coderepos.org/share/lang/perl/Gopper/trunk Gopper attributeとは attributeとは、Perlのサブルーチンや変数に属性を定義して、サブルーチンとしての挙動を標準から変更したり、どのようなサブルー

    Perlでプラガブルモジュールを作ろう!:第2回 attributeを使ってplugin作成を支援する|gihyo.jp … 技術評論社
    sugizou
    sugizou 2007/10/12
    第2回
  • DSAS開発者の部屋:携帯ゲートウェイのIPアドレス帯更新を効率的に確認する方法

    携帯電話各キャリアは、そのゲートウェイのIPアドレス帯域を公開しています。 DoCoMo au SoftBank WILLCOM 携帯ブラウザからのアクセスの場合、このIPアドレスがソースアドレスとなるので、アクセス制御や判別のために使っている方は多いのではないかと思います。 今回は、このIPアドレス帯の更新を効率的に確認する方法についてのお話です。 更新されたかどうかの確認だけならアンテナ系のWebサービスを使えばよいのですが、それだけだと、 どのIPアドレス帯が追加・削除されたのかわかりづらい。 IPアドレス帯のコピペが面倒くさい。 といった不満点があります。 そこでNet::CIDR::MobileJPというPerlのモジュールの出番です。(作者はモバイルファクトリという会社の方のようです) このモジュールには与えたIPアドレスが携帯かどうかを判別する機能があるのですが、次のようにす

    DSAS開発者の部屋:携帯ゲートウェイのIPアドレス帯更新を効率的に確認する方法
  • 第1回 Class::Componentから始めるプラガブルモジュール | gihyo.jp

    はじめに はじめまして。大沢と申します。 この連載では、筆者が実装したCPANモジュールのClass::Componentを題材にしつつ、近代的なPerlでのプラガブル(拡張可能)なソフトウェアの実装方法を紹介します。 今回は、Class::Componentの概要を説明します。 連載で使うサンプルアプリケーション 連載では、プラガブルなモジュールを作製するという事を考えて、Gopperというサンプルアプリケーションを元に解説を行ないます。 GopperはCodeRepos上のsvnリポジトリに置いてあるので各自checkoutしてください。 svn co -r 271 http://svn.coderepos.org/share/lang/perl/Gopper/trunk Gopper サンプルアプリケーションは連載中にも頻繁にupdateされる事が予想されますので、毎回リビジョン

    第1回 Class::Componentから始めるプラガブルモジュール | gihyo.jp