タグ

2009年11月20日のブックマーク (28件)

  • Now Text::MicroTemplate is even faster than HTML::Template::Pro - Islands in the byte stream (legacy)

    前提:Text::MicroTemplateの速度を簡単にベンチマーク Text::MicroTemplateを最適化したので,ベンチマークをとってみた。 スクリプトはほぼ同じだが,loop countは-1*1にした。 http://github.com/kazuho/p5-text-microtemplate/blob/master/author/benchmark_templates.pl キャッシュを有効にした結果*2: $ perl benchmark_templates.pl Perl/5.10.1 (i686-linux) HTML::Template/2.9 HTML::Template::Compiled/0.94 HTML::Template::Pro/0.92 Template/2.22 Text::MicroTemplate/0.09 Benchmark: runn

    Now Text::MicroTemplate is even faster than HTML::Template::Pro - Islands in the byte stream (legacy)
  • Perl表技集

    移転しました。 https://mas3lab.net/perl/waza/index.html

  • oinume journal

    大規模なコードベースでリファクタリングを省エネ化するためにcodemodを最近調べていて、軽く試行錯誤したのでそのメモ。 やりたいこと 例えば以下のようなTable Driven TestなコードをBEFOREからAFTERに書き換えたい。コード量が多いため人間がやるのは現実的ではなく、codemodで機械的に書き換えたい。 BEFORE package main import ( "slices" "testing" ) func TestContains(t *testing.T) { type args struct { ss []string s string } tests := []struct { name string args args want bool }{ { name: "empty: false", args: args{[]string{}, ""}, wan

    oinume journal
  • 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

  • MessagePack for Perl - 0.3.3 リリース - Blog by Sadayuki Furuhashi

    バイナリシリアライズ形式 MessagePack のバージョン0.3.3をリリースしました。 id:tokuhirom さんによる perl バインディングができました!(MessagePack for perl 書いた sv_catpvn を連続で呼びまくると激しく遅いので気をつける) 最新のリリースはここからダウンロードできます:http://sourceforge.jp/projects/msgpack/releases/ ドキュメント等プロジェクトページ:http://msgpack.sourceforge.jp/ コピーしないシリアライズ用カスタムバッファを追加 msgpack::vrefbuffer(C++)と msgpack_vrefbuffer(C)を追加しました。msgpack::sbufferの代わりに使うと、大きいバイト列をシリアライズするときに中身をコピーせずに元の

    MessagePack for Perl - 0.3.3 リリース - Blog by Sadayuki Furuhashi
  • バイナリシリアライズ形式「MessagePack」 - Blog by Sadayuki Furuhashi

    Googleが公開したバイナリエンコード手法であるProtocol Buffersは、クライアントとサーバーの両方でシリアライズ形式を取り決めておき(IDL)、双方がそれに従ってデータをやりとりするようにします。 この方法では高速なデータのやりとりができる反面、IDLを書かなければならない、仕様を変えるたびにIDLを書き直さなければならない(あらかじめしっかりとIDLを設計しておかないとプログラミングを始められない)という面倒さがあります。 ※追記:Protocol BuffersのデシリアライザはIDLに記述されていないデータが来ても無視するので(Updating A Message Type - Protocol Buffers Language Guide)、仕様を拡張していっても問題ないようです。 一方JSONやYAMLなどのシリアライズ形式では、何も考えずにシリアライズしたデータ

    バイナリシリアライズ形式「MessagePack」 - Blog by Sadayuki Furuhashi
  • 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

  • oinume journal

    大規模なコードベースでリファクタリングを省エネ化するためにcodemodを最近調べていて、軽く試行錯誤したのでそのメモ。 やりたいこと 例えば以下のようなTable Driven TestなコードをBEFOREからAFTERに書き換えたい。コード量が多いため人間がやるのは現実的ではなく、codemodで機械的に書き換えたい。 BEFORE package main import ( "slices" "testing" ) func TestContains(t *testing.T) { type args struct { ss []string s string } tests := []struct { name string args args want bool }{ { name: "empty: false", args: args{[]string{}, ""}, wan

    oinume journal
  • JSONPなAPIの負荷対策にngx_http_jsonp_callbackってのを書いてみた - hideden.hatenablog.com

    認証が不要で、結果をJSONPで返してくれるAPI。大体は高速化の為にmemcachedを使用し、cacheが存在すればcacheから、存在しなければDB等から引いてcacheに入れ、その後結果を返す設計になってるはず。 URL: http://api.example.com/count?user_id=12345&entry_id=12345&callback=hoge response: hoge({"status":"success", "count":1000});みたいなの。ほとんどの場合cacheにHitするので一瞬でresponseが返るけど、あまりに簡単なお仕事過ぎてそれの為にmod_perlのプロセスを使うのがもったいない。特に1日数千万回アクセスされるようなAPIだと積もり積もってすごい負荷に。 responseに使うJSONをそのままcacheに入れて、Tokyo T

    JSONPなAPIの負荷対策にngx_http_jsonp_callbackってのを書いてみた - hideden.hatenablog.com
  • にひりずむ::しんぷる - PerlからGmailで簡単にCCとかBCCとか添付ファイルメール送信するラッパー書いた

    最新版はgithubにありますのでそちらをどうぞ。(モジュール名かわってますが。。。) xaicron's send-gmail-simple at master - GitHub メールの送信 - モダンなPerl入門 - モダンなPerl入門 を見ながらEmail::Send::Gmailを使ってGmailからメール送信しようとしてみたけど、なんかようわからなかった。 CCが送れない Bccが送れない 添付ファイルがめんどくさい 添付ファイル送れたと思ったら壊れてた 下記みたいなコードを書いてみたけどCC入れると「Error sending email: Email::Send::Gmail: no valid recipients」とか。 CC入れなかったり、添付ファイル送らなかった場合はちゃんといける。 #!/usr/bin/perl use strict; use warning

  • CentOSで自宅サーバー構築

    ルーター経由接続によるインターネット常時接続環境である(当サイトはIIJmioひかりによるインターネット常時接続環境) 固定または非固定のグローバルIPアドレス環境である(当サイトはGMOとくとくBBの固定グローバルIPアドレス環境(逆引きも可能)) ※メールサーバーを構築する場合は逆引き可能な固定グローバルIPアドレス環境が望ましい(非固定グローバルIPアドレスや、固定グローバルIPアドレスでも逆引きしたホスト名とメール送信元ホスト名が異なる場合にメール受信を拒否するメールサーバーがまれに存在するため) OSのインストール時を除き、サーバーの操作はWindowsからコマンド操作で行なう ■コンテンツ ※ホスト名やドメイン名、IPアドレスは各自の環境に置き換えること ※各目次に表記してあるバージョンは、当サイトで確認をとったCentOSのバージョンを示しており、そのバージョンでないとできな

  • Text::MicroTemplateで遊ぶ : As Sloth As Possible

    こないだ言ってたPlackアプリのサンプルでは、出来るだけ普段使ってない構成にしようと目論んでて、そのために例えばテンプレートエンジンにはText::MicroTemplateを使ってみたりしている。 Text::MicroTemplateはシンプルで軽くてなかなか良かった。ちなみにこんな感じで使う。 use Text::MicroTemplate qw(:all); my $html = render_mt('Hello, <?= $_[0] ?>', 'faultier')->as_string; でもファイルから読みたいよねーそれ実装しなきゃなのかなーとか思ってたらちゃんとText::MicroTemplate::Fileってのがあって、こっちを使えばキャッシュも使ってくれるしラッパーの機能とかもあるしで素敵だ。 ?# hello.mt Hello, <?= $_[0] ?> use

    Text::MicroTemplateで遊ぶ : As Sloth As Possible
  • 日経BP

    株式会社 日経BP 〒105-8308 東京都港区虎ノ門4丁目3番12号 →GoogleMapでみる <最寄り駅> 東京メトロ日比谷線「神谷町駅」4b出口より徒歩5分 東京メトロ南北線 「六木一丁目駅」泉ガーデン出口より徒歩7分

    日経BP
  • 液晶保護シートを微塵の混入もなく貼るコツ | 週アスPLUS

    最近の保護シートは固めなので混入した気泡は逃がしやすくなりましたが、埃はどうしても入ってしまいますよね。お風呂場など湿気のある所で作業するといいなんて説もありますが、デジガジェをそんな危険地帯に持って行くなんてオススメできません。それに、さほど効果ないッス(実践経験アリ)。 私が推奨する貼り方は、“とにかくまず貼ってしまう”です。何度貼り直してもいいので、位置だけは正確に。 そして、粘着性の高いテープ(フツーのセロハンテープでいい)でエッジを持ち上げ、裏から丸めたテープをペタペタし、埃を除去してからまた貼る! を各エッジで行なうのです。ペタペタ用テープは、できれば粘着性の低いモノがいいですが、なければセロハンテープの粘着面を指の腹で少し触り、粘着度を低下させて使ってもいいです。

    液晶保護シートを微塵の混入もなく貼るコツ | 週アスPLUS
  • 月間売り上げ10万円だが……添削SNS「Lang-8」で世界を狙う25歳社長

    資金繰りに頭を悩ませているベンチャー企業経営者は多いかもしれない。世界のユーザー同士で母語を教え合うSNS「Lang-8」を運営するランゲート(京都市)の喜洋洋社長(25)もそんな1人だ。1カ月の売り上げは10万円ほどで、経費の9%しかまかなえていないため、ユーザーから寄付を募ったり、黒字化達成に必要な有料会員数をサイトの目立つ位置に掲載するなど、あの手この手で収益拡大に努めている。 この状況だけを聞くと、Lang-8がよっぽど人気のないサイトなのかと思われそうだが、そんなことはない。世界190カ国以上の会員に利用され、会員数は9万人。日発のサイトにもかかわらず、約7割のユーザーが日語以外の母語を使用している。ネットメディア関係者などが革新的なネットサービスを表彰する「WISH2009」で2位に選ばれるなど、注目を集めている。 大赤字でも、喜社長は前向きだ。「世界中でスタンダードに使わ

    月間売り上げ10万円だが……添削SNS「Lang-8」で世界を狙う25歳社長
  • YAPC::Asia2009の特別研修「Perl, Unicode, and AJAX」は自由な感じの研修でした - こんにちはこんにちはmonmonです!

    小飼弾(id:dankogai)さんのAjaxの基礎講義でした。 ただ、ダブルブッキングだったらしく、16時前にdanさんは抜けました。(一通りの説明したので研修を疎かにしてはないです) ということで、16時からはMaki(id:lestrrat)さんとEmerson Millsさんがいろんな話をしてくれました。 これが何でも聞ける形式で面白い時間でした。こっちのコーナーが一日だったとしても面白かっただろうなぁと。 今回の研修は前日のMooseの研修と違い、ほぼ自由な感じでした。なので質問とかどんどんしてなかったら多分何も得られてなかっただろうなと思います。 その分、関係ないことも色々質問できて楽しかったです。 IRCの話とかそういうの。 研修と関係ないことメモ。 danさんは<script>のことをチートと言います。 danさんはemacs使います。 ただ、今回はsyntaxの拡張とか入

    YAPC::Asia2009の特別研修「Perl, Unicode, and AJAX」は自由な感じの研修でした - こんにちはこんにちはmonmonです!
  • select ボックスを超便利にしてくれユーザビリティ向上に使える「jQselectable」:phpspot開発日誌

    select ボックスを超便利にしてくれユーザビリティ向上に使える「jQselectable」がGoogle Codeに公開されています。 jQというだけあって当然ながらjQueryプラグインの形式です。 適用前の普通のSelect ボックスが便利に変化します 都道府県の縦に長かったものが横方向に超分かりやすく表示 日付も次のように超分かりやすいセレクトに。縦に長いのとはもうオサラバできそうです。 更に、コールバック関数によってクリックした後の動作も定義できるっぽいです。 はじめから日対象という点でも使いやすいですね。 実装も、jQueryプラグインなので超使いやすいです。 次のように初期化するだけのようです。 $(".simpleBox").jQselectable({ set: "fadeIn", setDuration: "fast", opacity: .9 }); 以下のエント

  • Touch Lab - タッチ ラボ

    Amazonで、充電ステーション「Anker 637 Magnetic Charging Station」の2,500円OFFクーポンセールが開催されています(ブラックのみ)。 続ける

    Touch Lab - タッチ ラボ
  • グーグル、iPhoneなどへ対応した「Google News」を公開

    グーグルが、iPhoneはじめとするスマートフォン向けに新しい「Google News」を公開しています。[source: Google Mobile Blog] iPhoneAndroid・Plam Preなどでの最新のニュースの閲覧が、これまで以上に便利になっています。 「Google News」は、各ニュースサイトの情報をリアルタイムでカテゴリー別にまとめたもので、最新のニュースをいちはやく知ることができる便利なサイトです。 iPhone・iPod touchからは下記のリンク、またはSafariのブックマークにデフォルトで登録されている「Google」>「News」、からアクセスできます。 【リンク】 http://news.google.com 今回のアップデートでは、Mac/PCのアカウントでのカスタマイズが反映、またiPhone・iPod touchからもカスタマイズするこ

    グーグル、iPhoneなどへ対応した「Google News」を公開
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

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

    はじめの一歩 概要 - Ark とはインストール チュートリアル Hello World アプリケーションテンプレートを使うデータベースを使うユーザー認証OpenID 認証アプリケーションのテスト共有サーバーへのデプロイ ドキュメント コア Ark の基Controller と ActionModel と Viewヘルパースクリプト プラグイン セッションキャッシュ認証 ホーム ページ一覧

  • Ark - opensource.kayac.com

    Web Application Framework Description Ark は perl で書かれたウェブアプリケーションフレームワーク(WAF)です。 Ark はおなじく perl 製のフレームワークである Catalyst を参考に開発されており、その多くの特徴はそのまま引き継いでいます。 そのため Catalyst の経験のある開発者であればすぐに使い始めることができるでしょう。 Catalyst とのいちばんの違いは、Catalyst は実用的に運用するためには基的に mod_perl や FastCGI など永続的なプロセス実行環境を要求するのに対し、 Ark は CGI でも実用的に動作するという点を重視して開発されています。 もちろん mod_perl/FastCGI でも動作します。 より詳しい説明はドキュメントを参照ください。 Download 現在の最新バージ

  • Dropboxで「快適!USBメモリ要らず生活」のススメ | IDEA*IDEA

    ドットインストール代表のライフハックブログ

    Dropboxで「快適!USBメモリ要らず生活」のススメ | IDEA*IDEA
  • 話し声さえ発電に!株式会社音力発電の省エネ根性|日経BP社 ケンプラッツ

    人が歩行するときの振動を利用して小さな電力を発電する床の話を、ニュースや展示会などで見聞きした人も多いでしょう。このように、ちょっとした振動や音による発電技術の開発を手がけているのが、「音力発電」という株式会社です。 同社はこれまで「捨てられていた」騒音や振動を発電用の資源として徹底的に活用するための技術開発を行っています。例えば、人の話し声を活用した「音力発電」や、振動や自動車、自転車による「振動力発電」、そして冒頭の「発電床」などです。 このほど、同社とNECエレクトロニクスは、電池のいらない家電用リモコンを試作しました。 ナ、ナ、ナ、ナ、ナント、リモコンの ボタンを押す力 によって発電するというものです。 この電池レスリモコンは、音力発電が開発した「振動力発電」デバイスに、NECエレクトロニクスのRFリモコン対応マイコンと電源制御技術を組み合わせることによって実現しました。乾電池がな

    話し声さえ発電に!株式会社音力発電の省エネ根性|日経BP社 ケンプラッツ
  • 2009年度ベストiPhoneアプリのまとめ72個!

    2009年12月28日にリストを更新し、合計で93個になりました!おそらくこれで2009年ベストiPhoneアプリ企画はほぼ決定です。 今回はゲームを除いた(iPhone ベストゲームランキング50, 2009年下半期版はこちら)全ジャンルのiPhoneアプリの中から、おもわずうなったiPhoneアプリをずらっとご紹介いたします。どれもすばらしいアプリばかりです。ぜひご覧ください! String Trio こちらのアプリ、まさにエアバイオリンアプリです。ぜひ売れるべきアプリだと思います。大人はもちろんですが、お子様もすごい楽しめると思います。 詳しくはこちら String Trio: エアバイオリン演奏アプリ。超楽しい!みんなで演奏会しよう!2105 奇妙な写真メーカー(無料) この写真1枚とアプリ名で、もうおわかりだろう。奇妙な写真メーカー(無料)は、あの人気漫画シリーズの特徴的な擬音描

  • Encode 日本語などのマルチバイト文字列を適切に処理する - Perl入門〜サンプルコードによるPerl入門〜

    Perl › モジュール › here 日語などのマルチバイト文字をPerlで適切に扱うにはEncodeモジュールを使用します。次の3つのことを覚えておけば多くの場合適切に日語を扱うことができます。 外部から入力された文字列はEncodeモジュールのdecode関数でデコードする 外部へ出力する文字列はEncodeモジュールのencode関数でエンコードする ソースコードはUTF-8で保存しutf8プラグマを有効にする この解説での用語 この解説では外部から入力された文字列のことを「バイト文字列」と呼ぶことにします。Perlの内部表現に変換された文字列を「内部文字列」と呼ぶことにします。また「バイト文字列」が特定の文字コードで記述されている場合は「UTF-8バイト文字列」「Shift_JISバイト文字列」などと呼ぶことにします。 プログラミングで日語を扱う場合にその文字列がバイト文字

    Encode 日本語などのマルチバイト文字列を適切に処理する - Perl入門〜サンプルコードによるPerl入門〜
  • ポートスキャンプログラムの構造解説と作成 Perl « ORBIT SPACE

    に一部間違いや遠回りをしていると思われる点がありましたので修正してあります。 [perl] #!/usr/bin/perl #————————————————-# # Name: Port Scan Program # 原作: Perl scan port # (URL: http://www.perlmonks.org/?node_id=806461) # 解説: ORBIT SPACE # 目的: ポートスキャンプログラムの構造の # 理解とモジュール利用方法等の理解 # を行う為に今回構造の解説とプログ # ラムの変更を行いました。 #————————————————-# #モジュール使用宣言 use IO::Socket; # Very Simple Scan Port Write in Perl # MAIN PROG print “Perl Sca

  • 現代的なPerlの記述方法一覧 - Perl入門ゼミ

    Perl › here Perl5.8以降における標準的なPerlの書き方を解説します。 インターネットで検索するとPerl4のころの古い記述がたくさんあります。また書籍などの多くもPerl4の記法で書かれています。Perl4の記法は複雑になりやすく間違いを生みやすいのでこれからPerlを書く人はPerl5の現代的な記法で記述することを強くお勧めします。 strictプラグマとwarningsプラグマ (必須) strictプラグマとwarningsプラグマを有効にします。 use strict; use warnings; use strict;とuse warnings;の2行はスクリプトの最初に必ず記述してください。これらはPerlの文法チェックを厳しくするためのものです。面倒だという軽い気持ちでこれを記述しないと後々当に面倒なことになります。 use strict;とuse wa

    現代的なPerlの記述方法一覧 - Perl入門ゼミ