タグ

cpanに関するsyou6162のブックマーク (55)

  • horensoのSlack reporterを書いた - beatsync.net

    すっかり季節は年度末ですね〜。なんと明後日には新年度で新入社員が入社してくるぞ!! ということで新卒研修の準備に追われてる今日この頃ですが、みなさまいかがお過ごしでしょうか。 さて、研修準備も長々やると疲れてくるのでちょっと現実逃避に…というわけではないんですが、最近horensoというGoogleじゃないほうのcronなどでコマンドをwrapして成功失敗の通知を仕組み化するツール(詳しくは作者のSongmuさんのブログをご参照ください)用にSlack Reporterを書きました。ちなみにGoogleのhorensoは漢字入力システムです。 で、きっと今どきのWeb系の会社はSlack使ってるところ多いし、社内の各プロジェクトで汎用的に使えるように作ったから勢いよく全世界に公開しておくか〜と思った次第なので、この記事を(現実逃避に)書いてます。この前とある勉強会に行ったときも自席から前側

    horensoのSlack reporterを書いた - beatsync.net
  • WebService::Slack::IncomingWebHookというモジュールを書いてCPAN Authorとやらになったようです - 目の前に僕らの道がある

    WebService-Slack-IncomingWebHook-0.01 - slack incoming webhook client - metacpan.org はい。 名前がすごい長ったらしいですが、名前のとおりSlackのIncoming Web Hookを使ってSlackに投稿をポストしてくれる君です。 post-slackというコマンドを同梱していてコマンドラインからも使えるようになってます。 当初Net::Slackという名前を使っていたんですが、どうやらNetという名前空間はネットワークプロトコルを喋るモジュールが使うところで、webサービスAPIを叩くようなものはWWWかWebServiceを使うらしいので、避けました。また、Slack APIが別にあるので、Slack単体名だとSlack API叩くように誤解されるのでさらに一段名前空間を斬ってます。 これによりだ

    WebService::Slack::IncomingWebHookというモジュールを書いてCPAN Authorとやらになったようです - 目の前に僕らの道がある
  • 第18回 local::lib:ふだんと違う環境でPerlを使う | gihyo.jp

    いつでも理想の環境を使えるとは限りません 「弘法筆を択ばず」ということわざもありますが、なんであれ手になじむまで使い込んだ道具を持っている人は、環境が変わってその道具が使えなくなるとやはりいらいらするものです。 Perlの場合もそう。日頃から自分の必要や興味に応じてがんがんCPANモジュールをインストールしていると、何らかの事情でまっさらに近いPerlを使わなければならなくなったとき、途方に暮れます。来のコードを書き始める前に、モジュールのインストールだけで一日潰してしまった経験をお持ちの方も少なくないことでしょう。 今回は、そんな「ふだんと違う」環境でもなるべくストレスなくPerlを使えるようにするためのモダンな努力をいくつか紹介してみます。 PERL5LIBという環境変数を活用する Perlはディストリビューションに同梱されているコアモジュールを保護するために、CPANからインストー

    第18回 local::lib:ふだんと違う環境でPerlを使う | gihyo.jp
  • 手軽にTF/IDFを計算するモジュール - download_takeshi’s diary

    情報検索の分野でよく使われるアルゴリズムで「TF/IDF」というものがあります。 ドキュメントの中から「特徴語」を抽出する、といったような用途でよく使われています。 TF/IDFアルゴリズムのくわしい解説はこことかここを見てください。 今回はこのTF/IDFの計算を「簡単」に実現するためのperlモジュールをCPANに上げましたので、ご紹介します。なまえはLingua::JA::TFIDFといいます。 Lingua::JA::TFIDF - TF/IDF calculator based on MeCab. http://search.cpan.org/~miki/Lingua-JA-TFIDF TF/IDF実装の困りどころ TF/IDFの実装を試みた方であればわかると思うのですが、実際にやろうとすると、TF(Term Frequency)の計算はなんら難しくありませんが、IDF(Inve

    手軽にTF/IDFを計算するモジュール - download_takeshi’s diary
  • http://perldoc.perlassociation.org/pod/Moose-Doc-JA/

  • 第15回 DateTime:APIの標準化をめざして | gihyo.jp

    Cから継承したAPI プログラマにとって、ログの解析や作成などに含まれる日付や時刻の操作は切っても切り離せない分野のひとつです。もちろんPerlにも日付や時刻を操作するための関数は組み込まれています。 ただし、Cから継承してきたlocaltime()やgmtime()の返り値は、お世辞にもわかりやすいとはいえません。リストコンテキストで呼び出せば年月日、時分秒などの値を取り出せるとはいえ、単一の配列で受け取ると、個々の要素を使うときに直感的ではなくなりますし、明示的な名前をつけたスカラー変数を並べて受け取るのはいかにも冗長です。 use strict; use warnings; # 短いけれど非直感的 my @tm = localtime(); $tm[5] += 1900; $tm[4]++; printf "%04d-%02d-%02d %02d:%02d:%02d\n", reve

    第15回 DateTime:APIの標準化をめざして | gihyo.jp
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • 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

  • holidays-l開発ブログ - Perl::Criticでコーディングスタイルを統一

    Perl::Critic - Critique Perl source code for best-practices. - metacpan.orgをコーディングスタイルを統一するために使っています。 (実際には字面としてのコーディングスタイル(コードレイアウト?)はPerl::Tidy - metacpan.orgが担当しているわけですけども、ここでは「use strictを入れる」「PODを付ける」なども含めてコーディングスタイルと言ってます) コーディングスタイルに唯一絶対的に正しいなんてものはないわけで(だから宗教論争にもなるわけで)、機械的に統一することで揉め事はなくなります。 しかしその時に.perlcriticrcなんかを使ってコーディングスタイルをデフォルトから変更してしまうと元も子もありません。 .perlcriticrcに何を設定するかで揉めますし、例えその時に揉めな

    holidays-l開発ブログ - Perl::Criticでコーディングスタイルを統一
  • Parse::RecDescentでJSONをパース - はこべにっき ♨

    JSON::Hatchet の構文解析子 - Tociyuki::DiaryのJSONパーサがすっきりと書けていたのものだから,ちょっとうちもJSONパースしたくなってので書いてみました.といってもLL構文のパーサを1から書くのも芸がない感じだったので.Parse::RecDescentというCPANモジュールを使ってJSONのパーシングをしてみました. Parse::RecDescentはその名のとおり,汎用の再帰下降型パーサです.LL(1)文法にのっとっていれば,パースが可能です.*1 id:tociyukiさんがの記事にあるBNFを流用させてもらい,JSONのパーサを書くと以下のようになりました. このように,BNFっぽいものを記述するだけでパースを行うことができてお手軽です.パターンとして正規表現を書くこともできて,スキャナーに相当することもやってくれてます. 構文規則に合わせてパ

    Parse::RecDescentでJSONをパース - はこべにっき ♨
  • Web::Scraper便利! - はこべにっき ♨

    naoyaのはてなダイアリー - Web::Scraperを見て。 これはよさそう。ソース読んでみると単純に値を取得する以外にも、どうやら、配列で結果を受け取ったり、サブルーチンを渡して処理を委譲したりできるようなので、ためしにやってみよう。 use strict; use warnings; use Web::Scraper; use URI; use YAML; use Encode; my %result; sub parse_title { my $node = shift; my $text = $node->as_text; my $left = decode_utf8('『'); my $right = decode_utf8('』'); my ($nth, $title, $date) = $text =~ m/^\[(.*?)\]\s+$left(.*?)$right(.

    Web::Scraper便利! - はこべにっき ♨
    syou6162
    syou6162 2009/08/30
    サブルーチーンを渡せる
  • CPANパッケージをつくった時のメモ - はこべにっき ♨

    WebService::Hatena::Diary 0.01リリース/わーい,CPAN Authorになったよー - はこべブログ ♨ でCPANパッケージをつくった時のメモをおもむろに公開.なんか変なとこあったらおしえてくださいな みたいな. 書いてから気づいたのですが,Makefile.PLを書こう - soffritto::journalに書かれている,まず,Makefile.PLから書くやりかたの方が,より良さそうすね.Makefile.PLが開発プロセスをコントロールしていて,迷わずに開発がすすめられそうです. ともあれ,以下メモ. 基的に上から下の順番に実行していく. pmsetup でひな形をつくる パッケージのひな形を作成するためのpmsetupというプログラムを実行する.もともとは,miyagawaさんの作ったスクリプトで,自分用にカスタマイズして使う.(CodeRep

    CPANパッケージをつくった時のメモ - はこべにっき ♨
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • パスワード設定をコードに書かない(Config::Pit) - モダンなPerl入門 - モダンなPerl入門

    パスワード設定をコードに書かないようにするには Config::Pit をつかいます。 なぜ必要なの? アカウント情報が必要なWebサービスを利用するスクリプトを作るとき、アカウントやパスワードをスクリプトのコードに直接書き込むと(ハードコーディング)、そのスクリプトがほかの人に見られてしまうことによりパスワードが漏洩してしまいます。 Config::Pitは、外部ファイルにWebサービスのアカウント情報を格納しておき、スクリプト側で必要なときに、読み出しできるようにします。これにより、スクリプト内にアカウント情報をハードコードすることがなくなり、スクリプト単体でのパスワード漏洩が防げます。 例:コードを配布しようとして、 #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use WWW::Mechanize;

  • Big Sky :: 訳:Installing Perl modules without root access

    by Jon Allen (JJ) - posted on Wednesday, 26 August 2009 ここ2、3年にわたって、Perlでの開発はCatalystやDBIx::Class、Moose等のエキサイティングな新技術により変わってました。 しかしながら、これらや他のツールに共通して言える事が1つあります - それらはこれらがPerl体の配布物ではなくCPANの一部という事です。共有ホスティングサーバなど信頼されている環境においては、ユーザはルート権限なしでCPANモジュールをシステムにインストールする事が難しいでしょう。 ただ幸い、単純解があります - それが local::lib です。 local::lib の紹介 local::lib は CPAN ディストリビューションをホームディレクトリににインストールできる様にあらゆる設定を行うPerlモジュールです。これは

    Big Sky :: 訳:Installing Perl modules without root access
  • 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

  • cohtan blog: TheSchwartzを使って重たい処理を非同期に行い、手元はサクサクに

    2008年6月25日 TheSchwartzを使って重たい処理を非同期に行い、手元はサクサクに 昨日id:rytich経由でGearmanやTheSchwartzというキーワードを知りました。 調べてみるとこれがなんだかとても面白そうで、実装に必要なCPANモジュールも完備されてるので何かやってみようと思い、出来たのはWWW::YourFileHostを使った非同期なダウンローダーです。 codecheck.inに置いてます これを使うと、こんな感じになります。 URLを指定してキューを追加して終了。軽くてサクサク(client.pl) キューに登録されたURLを元にコンテンツをゲット。重たいけどきっちりこなす(worker.pl) これの何がうれしいかというと、コンテンツをゲットする部分を待たずに、 どんどんゲットしたいURLを投げつける事が出来る事にあります。 通常はコンテンツをゲット

  • Perl でグラフを作ろう (GD::Graph) | Shinta's Site

    これらすべてが必要なわけではありません。OS によっては、すでにインストールされているものもあります。 インストール 必要なモジュールを入手したら、それらをインストールする必要があります。OSによって、入手しなければならないモジュールが異なります。ここでは、RedHat Linux 9 を利用して説明します。RedHat Linux 9 ではほとんどのライブラリがインストールされています。以下では、必要なモジュールのインストールのみ記述しています。また、Perl のバージョンが 5.6.0 以上でなければなりません。 インストールはスーパーユーザーで作業 GD Perl モジュールのインストール # gzip -dc GD-1.41.tar.gz | tar xf - # cd GD-1.41 # perl Makefile.PL ... Build JPEG support? [y] <

    syou6162
    syou6162 2009/08/24
    あんまりよしなにはやってくれないなー
  • ぽろきぃのblog : livedoor Wiki記法モジュールを公開しました

    2009年08月21日11:18 カテゴリperl livedoor Wiki記法モジュールを公開しました こんにちは。ぽろきぃです。昨日、Wiki記法モジュール Text::Livedoor::Wikiを公開しました。CPAN経由で利用することができます。CPAN Authorsの仲間入りですね! 使い方 簡単なサンプルコードです。使い方は至って簡単です。是非御利用ください! #!/usr/bin/perl use strict; use Text::Livedoor::Wiki; my $wiki_text = "&color(red){こんにちは!}"; my $wiki = Text::Livedoor::Wiki->new(); my $html = $wiki->parse( $wiki_text ); print $html; 詳しくは、Text::Livedoor::Wik