2009年06月08日14:30 カテゴリLightweight Languages perl - use encoding; #は黒歴史 ぎゃあぁぁ length関数で文字列の長さを求める - perl初心者BLOG - Hatena::Group::Perl 日本語の文字数を正確に求めたい場合、use encodingを指定する use encoding;は、jperlなど、かつて存在したL10Nされたperl用に書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。こういう目的で利用すべきではありません。 このあたりのことは、以前 404 Blog Not Found:perl - no encoding; # whenever possible でも書いたのですが、大事なことなのでまた書きます。 スクリプトはUTF-8で書き、use utf8;する のがモ
分業による効果 一般的なデザイン作業において、下記のようなデザイン作業の上流部分をごく限られた人数で行い、そこから先の展開部分を大人数で行う方法を取る場合が多いと思われます。 インタラクションの設計 ビジュアルの設計 主要要素のHTMLマークアップ・CSSコーディング設計 しかし、モジュールの概念を取り入れることにより、デザイン作業の上流部分から分業を行うことが可能になります。 作業者のスキルやサービスへのコミット具合によって、多少ぶれる場合もありますが、そこはサービスの全体的なルールや作業時の補助ツールによってコントロールを行うことが可能です。 そのため、モジュールの命名規則や運用ルールについては、あらかじめドキュメントを作成した上で、ある程度厳密に運用を行う必要があります。 コミュニケーションの効率化による効果 最初にインタラクションの設計時に命名したモジュール名や要素名を、ビジュアル
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Smashing Magazine - WE SMASH YOU WITH THE INFORMATION THAT WILL MAKE YOUR LIFE EASIER, REALLY. 文字列を処理するにあたって正規表現は欠かせない機能といえる。任意の文字列やテキストファイル、HTML/XMLから特定のキーワードを検索したり取り出し、置換をおこなうにあたって、正規表現が使えると使えないのとでは、プログラミングの手間やツールの活用度合いが変わってくる。 正規表現は便利で強力な機能だが、その独特の表記方法はプログラマ初心者には敷居の高いものでもある。Glen Stansberry氏による正規表現に関するチュートリアルや資料、ツールなどのまとめがSmashing MagazineにEssential Guide To Regular Expressions: Tools and Tutori
ばずったーみたいなものを作りたくて、Mecabでほげほげしてたのですが、Yahoo!からなんか便利そうなAPIが出たので使ってみました。 Yahoo!デベロッパーネットワーク - テキスト解析 - キーフレーズ抽出 このAPIはJSONで返してくれるので、超簡単に使えました! 以下Python2.6でのサンプルです。 # -*- coding:utf8 -*- import urllib import urllib2 import json text = u"東京ミッドタウンから国立新美術館まで歩いて5分で着きます。" url = "http://jlp.yahooapis.jp/KeyphraseService/V1/extract" params = { "appid":"ApplicationID", "sentence":text, "output":"json", } json_
先日ですが Yahoo!デベロッパーネットワーク - テキスト解析 - キーフレーズ抽出 なる API が公開されました。 この API を駆使すれば個人でも Google AdSense のようなコンテンツマッチ広告すらできちゃいそうなシロモノです。この手の技術に興味がある僕からすれば、コンテンツマッチ技術の根幹の技術を、よくもまぁ無料の API で公開したものだなぁ〜 Yahoo! って太っ腹だなぁ〜と唯々感心するばかりです。 さて、どうせなので、コンテンツマッチの技術についてもう少ししゃべってみます。 基本的に”とあるページ”にコンテンツマッチの”何か”を表示するロジックはこんな感じ。 ”とあるページ"(解析対象)”の html を取得 html 全体から本文抽出 特徴語抽出(キーフレーズ抽出) 特徴語をベースに”表示する何か”を類似度順にソート(例えばコサイン距離とか) ”とあるペ
_ 勉強会カンファレンス2009 参加してきました。 普段、勉強会の運営をしている方ばかりが参加者だったので 仕事の進み方がすごい、という話は先日の日記に書きましたが、 当日の対応能力もすごかったです。 受付のノウハウなど、GoogleGroup/Metacon に早速レポートがあがってますので 興味がある方は探してみてください。 私はタイムキーパーとして運営のお手伝いとタイマーの運用をしてきました。 タイマーはちゃんとustreamからのメッセージも出せたし、 会場と全国をつなぐという目標が達成できたのはよかった。 ただ、自分のマシンをタイマーに使ってしまうとチャットに参加できないのはつまんない。(笑) 次回はiPodにIRCクライアントをインストールして挑みたい。 タイムキーパーをやって最も強く思ったことは 「セッションリーダーに現在どれくらい遅れて/進んでいるのかを見える化したい」。
自炊をするしないにかかわらず、野菜や果物などをちょっと保存しておきたいときに、冷蔵庫に入れておいた方がいいのか、それとも入れない方が長持ちするのか、あるいは冷蔵庫に入れるとして、どういうようにすればより長持ちするのか?というのは知っていれば必ずいつか役立つはず。 というわけで、冷蔵庫に入れておいた方が長持ちするものと、冷蔵庫に入れない方が長持ちする野菜と果物リストは以下から。 How to Keep Fruits and Veggies Fresh http://www.divinecaroline.com/article/22145/57459-keep-fruits-veggies-fresh まず大前提として冷蔵庫の中に入れない場合、直射日光を避け、ボウルの中や通気のための穴が空いたビニール袋に入れることとします。 次に、冷蔵庫の中に入れる場合も同様に通気のための穴が空いたビニール袋
はじめまして。面白法人カヤックの村瀬と申します。ArkというWebアプリケーション作成用のフレームワークを開発しました。今回から4回にわたって、このリリースしたばかりの「Ark」について紹介させていただきます。 Ark(アーク)とは Arkは、Perlで作られたWebアプリケーションフレームワーク(WAF)です。 Arkの特徴としては Catalystに似たインターフェース CGI/FCGI/mod_perlなどさまざまな環境で実用的に動作する CGI用モードの存在 日本製であり、日本語ドキュメントが充実している などが挙げられます。 Catalystに似たインターフェース Catalystは、Arkと同様にPerl製のWebアプリケーションフレームワークで、現在、Perlのフレームワークでは標準となりつつあるものです。 Arkは開発動機の1つが「CGIでも実用的に動作するCatalyst
vimのテンプレ設定のおかげで、use strict;とか一切書かない生活ができてます。iabとっても便利。 半年前にvimdoc読みながらコメントつけて以来全然いじってないです。あ、ackの追加したくらい。 なにかツッコミがあれば言ってください>< "行番号を非表示 set number "括弧入力時に対応する括弧を表示 set showmatch "コマンドをステータス行に表示 set showcmd "タイトルを表示 set title "常にステータス行を表示 set laststatus=2 "if(){}などのインデント set cindent "ルーラーを表示 set ruler set ignorecase "検索に大文字を含んでいたら大小区別 set smartcase "検索時にヒット部位の色を変更 set hlsearch "検索時にインクリメンタルサーチを行う se
Firefinderとは何か? https://addons.mozilla.org/en-US/firefox/addon/11905/ CSSセレクタやXPathで要素を検索出来るFirebugの拡張です。 どんな人にお勧めか? hiddenフィールドの値を閲覧したり、 formのどの要素のnameが何かとかさくっと見たくなることないですか? あるならお勧めです。 Firebugには既に$$というCSSセレクタで要素を検索出来る関数があるんだが? CSSセレクタのサポートの度合いが違います。 $$関数では基本的なCSSセレクタしかサポートされていないので、 例えば、ここなら、http://images.google.co.jp/advanced_image_search?hl=ja $$('input'); // [input, input ja, input Google 検索, i
はてなブックマークの Web Hook というのがリリースされましたね! (開発者さま向け) はてなブックマーク Web Hook 機能を公開しました - はてなブックマーク日記 - 機能変更、お知らせなど はてなブックマーク Web Hookとは - はてなキーワード これを設定しておくと、自分がはてブしたタイミングではてブ側から CGI 等を叩いてくれます。 CGI から様々なプログラムを起動するようにしておけば、あんなことやこんなことが可能になっちゃいますね>< こ、これはすごい! ということでさっそく、自分がはてブしたページの URL を Twitter に POST する CGI を書いてみた。 ご自由にお使いください #!/usr/bin/env perl use utf8; use strict; use warnings; use CGI; use Net::Twitter
String::Dictionary という Perl のライブラリを作ってみました。 http://github.com/naoya/perl-String-Dictionary/tree/master String::Dictionary は検索エンジンその他を作る時に必要になる「辞書」のためのデータ構造 + API です。辞書は単語の集まりですが、これを配列やハッシュなどで持つのではなく、単語をすべて繋げた一つの大きな文字列として保持することでメモリ領域を節約したものです。単語は単に文字列連結で持つだけでなく、Front Coding で圧縮しています。以下簡単な解説です。 辞書は例えば [0] ・・・ jezebel [1] ・・・ jezer [2] ・・・ jezerit [3] ・・・ jeziah [4] ・・・ jeziel ...という風に単語を配列で持つことで実現でき
2009年06月03日02:00 カテゴリBlogosphere 梅田望夫は「残念」なただ一つの理由 そろそろオレからも一言。 日本のWebは「残念」 梅田望夫さんに聞く(前編) (1/3) - ITmedia News Web、はてな、将棋への思い 梅田望夫さんに聞く(後編) (1/3) - ITmedia News 21世紀に見聞きした中で、最も残念なインタビュー。 梅田望夫が、「一流じゃない」からじゃない。 おい望夫! ヤフーで賭け将棋しようぜ: 切込隊長BLOG(ブログ) Lead‐off man's Blog 人間、30歳超えたら「だいたい俺の人生こんなもんかな」って諦めがつき始めるじゃん。超一流なんて遠いよなと彼我を比べて分を知るというか弁えるようになるしな。webだろうが将棋だろうが限界の見えたヘボは一生ヘボなんだから、無理に超一流に絡もうとしないで実力に見合った将棋指せばい
※ 画面は公式サイトデモより Lingrの終了を受けて、という訳ではないだろうが最近Webチャットのシステムを良く見かける気がする。この手のプラットフォームとしてはIRCが最も軽量で使いやすいだろうが、Webベースであればもっとインタラクティブなものになる。 Cometを使ったものではないが、JSONを使ったWebベースのチャットシステムがJsChatだ。 今回紹介するオープンソース・ソフトウェアはJsChat、JavaScriptを使ったWebチャットシステムだ。 JsChatはIRC的な面白さを持ったWebチャットシステムだ。ユーザ名を決めて、#ではじまるルーム名を設定すれば良いだけだ。友人にはそのURLを知らせれば良い。ルームに入った後「/name ユーザ名」で名前を変更できる。 画面や動画の埋め込みに対応。ヘルプの呼び出すも簡単 画像のURLやYoutubeのアドレスを送信すると、
iPhone アプリの開発には、コンパイラとして gcc 以外を使うことは基本的にありません。 したがって、gcc に実装されている C99 仕様や gcc 拡張仕様を気がねすることなく利用することができます。 ここでは、便利な C99 仕様や gcc 拡張を紹介します。 配列の動的確保 (C99) 配列を定義するときに、動的にサイズを指定してメモリを確保することができます。 従来は、 int n = 100; char* buf = alloca(n); のように alloca を使っていたところを、 int n = 100; char buf[n]; と、言語仕様の範囲内で、より直観的に書けるようになりました。 case の範囲指定 (gcc 拡張) 従来、switch 〜 case で switch (n) { case 0: case 1: case 2: case 3: proc
数日前にmemcached-1.4のリリース候補が出ましたので、今日はその最新版と、それを使ったメモリ節約の運用法を紹介します。厳密にいうと、ご紹介させていただくmemcachedのメモリ節約機能は1.3のbetaから存在し、過去にこちらで取り上げました。 memcached-1.4.0-rc1 1.4 RCは基本的に1.3.* betaで発見・報告されたバグの修正やコードベースの改修が主な内容です。詳しいリリースノートはこちらになります。 http://code.google.com/p/memcached/wiki/ReleaseNotes140rc1 ダウンロードはこちらです。 http://code.google.com/p/memcached/downloads/list 新しいバージョンのmemcachedはバイナリプロトコルの導入以外に地味に生まれ変わっています。例えばコード
Ark CGIでも実用的に使うことが出来るCatalystライクなウェブアプリケーションフレームワーク 2009.06.01 ArkはCatalystの流れをくむPerl製のウェブアプリケーションフレームワークです。 カヤックのBM11ブッコミイレブンのような大量に小さなアプリケーションを開発するような現場においてはCatalystのような大規模なフレームワークは逆に足枷になってしまう場合があります。 「もっと軽いけどCatalystっぽくつかえるフレームワークが欲しい・・・!」 というラボ内の要望に応えて新しいフレームワークを開発しました。 といっても一から開発したのではなく、最近のPerlにはHTTP::Engineという「フレームワークをつくるためのフレームワーク」とも言える素晴らしいライブラリがあり、そのライブラリの上で開発を行っています。 HTTP::Engineを使用するとCG
Yacafiを使った簡易掲示板を作ろうと延々弄っていて、色々ときがついたこと。JKだらけかもしれないけど、なれてない身にとってはこんなことでも衝撃的ということで。 do_indexを省くと404 not foundと返される。 do_indexの内容が初期表示(index)になるので、sub do_index{}はよほどのことがない限り必ず含める。 view_*の中で変数を直接printすると1などが表示される。 ''の中身、あるいは''と結合した変数がprintとして出力されるので、つぎのようにする。 sub view_foo{ my $foo = "Hello.World"; ''.$foo; } あるいは sub view_foo{ my $foo = "Hello.World"; join '',$foo; } とか。 スカラー値をprintしまくりたい。 引数にスカラー値を渡した
アプリケーションの枠組みを越えた再利用 前回は、Catalyst 5.7で登場したチェーンドアクションを利用して適切なベースコントローラをつくれば、CRUDのような定型処理は再利用できるようになる、という話をしました。これはコンテントマネジメントシステム(CMS)のように同じようなインタフェースを持つ画面が多いシステムをつくるときには特に効果的なのですが、その再利用を、ひとつのアプリケーション内だけで完結させてしまうのはもったいない話。自社でつくるアプリケーションにはどんどん使い回していきたいものですし、コピー&ペーストを避けるためには、なんらかの名前空間上にその共通コードをまとめていく必要があります。 もちろんそのコードが小さく、十分に一般化できるものなら、Catalyst、あるいはCatalystXという名前空間に入れてもかまいませんが、コントローラの部品だけでなく、モデルやビューまで
Yacafiを使って掲示板をこしらえてみました。そこらへんにあるレンタル掲示板より正直低性能ですが、あくまで学習用途なので。 do_*から処理を行い、&_template_param_buildにてそれぞれのテンプレート差し込み用変数をまとめてハッシュとして、templateに流してます。 perl自体の高度な機能について見識がないので、ある程度の基礎的な知識を身につけていれば多分読むのに苦労しない程度の代物です。以下をもちあわせていれば、初学者でも普通に弄れる、と思います。 import サブルーチン FileのIO操作 ハッシュ MENTA::Template…というかMojo::Templateの使い方 Yacafi.pmのソースをかじる勇気 #!/usr/local/bin/perl use strict; use warnings; use Yacafi extends => {
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く