タグ

ブックマーク / labs.gmo.jp (20)

  • Firebugクックブック #1 - bits and bytes

    最近の中学生のはじめてのプログラミング言語がJavaScriptだったりするこの時代、最も使いやすいJavaScriptの実行環境であるFirebugは現代のコマンドラインです。UNIXコマンドラインでgrepやuniqを使って、日常の細々した処理を行うのと同じようにFirebugとjavascriptを使いこなせると、日常作業のちょっとしたことをさくっとこなすことができます。ちょっとした作業だから手作業でやってもいいけど自動でやればミスったりしないし、気分的には楽なので自動でやりたい、という作業がけっこうないでしょうか。例えば、ページの中の特定の部分の文字列をリストにしてテキストファイルに保存したい、とか。 そこで今回は私が普段よくやっている単純作業をFirebug+javascriptでさくっとかたづける方法を2回にわけてご紹介します。 ページの中からテキストや属性の値を拾う ページの

  • 日時表記のフォーマットの名前とperl/PHP/javascriptでのつくりかた - bits and bytes

    毎回毎回日時を出力する時にどうすればいいのか思い出せなくて毎回毎回調べていてばかみたいなのできちんとまとめてみます。 日時のフォーマット名 まず、よく使われる日時表記の名前を把握することが大切です。名前がわからないと検索のしようがありません。 ISO8601 ISO8601はたぶん一番なじみが深いものだと思います。 MySQLのdatetime型の表記 2008-08-06 19:38:56 はISO8601です。 ISO8601は日時を表すだけでなく、年だけや時刻だけを表せるほか、期間を表すことができます。また、多様な書き方を許していて、間にある記号を省略して20080806 193856というのもISO8601として正しい日時になります。英語wikipediaのISO 8601が詳しいです。 W3CDTF W3CDTFはatomのフィードで使われている 2003-12-13T18:3

  • スクレイピングはもっと簡単にならなければいけない - bits and bytes

    スクレイピングをやったことがあるひとならばわかると思うけど、スクレイピングはとてもつまらない作業だ。 HTMLの中から抜き出したい部分を見つけて、その周辺にある特徴的な部分に着目して正規表現を書いたりして抜き出す。あるいはHTMLからDOMを生成して特定のクラスがついているエレメントを抜き出したりする。HTMLをXHTMLに整形、変換してXPathで抜き出す方法もある。どの方法もやることは単純で簡単なことだけれど、極めてめんどくさい。 そういうものだと思って数年間過ごしてきたけれど、去年の夏に出てきた Dapper: The Data Mapper は、そんな退屈な常識をモダーンなajaxでもって吹き飛ばした。もしDapperがどんなのなのか知らなかったら、ちょっと長くてはじめ退屈なんだけど デモムービー を見てみてください。 Dapperが教えてくれたことは、スクレイピングなんて、欲し

    michael-unltd
    michael-unltd 2008/07/05
    html to XML : htree
  • クローンサービスのAPIデザイン - bits and bytes

    最近トラブル続きのTwitterのかわりにWassrを使いはじめたひとたちにフォローしていただいてたくさんメールが来ました。 去年たくさんできたtwitterみたいなサービスの中で、自分が注目していたのはもごもごとWassrです。このふたつのサービスにはTwitter同様APIが用意されているだけでなく、そのAPITwitterAPIと互換になっていると書かれていたからです。 1年前に書けばよかったのにとおもいつつ、今日はサービスのAPIがほかのサービスと互換にすることについて書きます。 いいところ 既存のサービスと完全に同じAPIにすると、そのサービス用に作られたツールを少し改造すればそのまま新しいクローンのサービスで使うことができるようになります。 Twitterのクローンであれば、そのサービスにTwitterとおなじAPIを用意すれば、Twitter用に作られた多数のツールをその

  • TheSchwartzで仕事をあとにまわす - bits and bytes

    web2.0 時代のジョブキューサーバー Gearman と TheSchwartz の関係について - TokuLog 改めB日記に書かれているとおり、Gearmanは仕事を投げられたらすぐやって返す前提になっていて今やりたくないけどあとでやるみたいなのができません。 たとえば、10分後にならできるんだけど、という仕事が来たとします。 このときGearmanのワーカの中でsleepして10分待つと、後から来たほかの仕事を一切しないで10分待つことになってしまって、後から来た仕事が今すぐできるものだったとしても10分待たれさるのでGearmanだと今来た仕事のためにsleepして待つわけにはいきません。 結果としてGearmanだとやってきた仕事を今すぐやるか、絶対やらないか、の二択になってしまいます。 それだと困るので、もう一方のTheSchwartzだと、今やりたくないけどあとでやる、

  • javascriptで作るGearmanクライアント - bits and bytes

    Webアプリケーションの中には、ときどき時間がかかる処理をしないといけない部分があります。アップロードされた画像のサムネイルを多数生成するときや、クライアントからのリクエストに応じてさらにリモートのサーバからファイルを取得してきたりするとき、ふつうに作るとユーザは処理が終わるまでの数秒~数十秒間待たされるのでイライラしてきます。 こんなときには昨年のYAPCでLiveJournal: Behind The Scenesの中で紹介されている、perlで書かれた非同期処理サーバのGearmanが役に立ちます。Webアプリケーションから時間のかかる処理を別プロセスで動いているGearmanに依頼しておくことで、時間のかかる処理が終わるまで待つことなくユーザにレスポンスを返すことができます。 ほんとうは、時間のかる処理の性質と、必要とされる機能に応じてGearmanとTheSchwartzとを使い

  • infra-RED LED throwies をセンサバーのかわりにしてWiiリモコンを動かす - bits and bytes

    みなさまGraffiti Research Labをご存じでしょうか。 ハイテク(とかローテクとか)を駆使して最先端のグラフィティをテーマに活動している集団で、ビルにレーザーで落書き映像を投影するL.A.S.E.R. Tagが有名です(MoMAで展示もあったそうで)。Graffiti Research Labにはいろんな作品があるんですが(ページの右側にリストされています)、その中で個人でもわりとお手軽に楽しめるのがGraffiti Research Lab » LED Throwiesです。 LED throwies の作り方 3Vのボタン型リチウム電池にLEDを挟んで磁石と一緒にテープでくっつけたらできあがり。あとは身近にある金属の部分がある何かにくっつけて楽しみます。部品の調達方法から組み立てかたまで、詳しいことはLED Throwies - Instructablesに載っています

  • Google Gearsの位置情報取得機能(まだぜんぜん実装されてないけど) - bits and bytes

    気がついたらGoogle Gears API Blog: Gears and Standardsを読んでいて、この中に and we're working on resumable uploads, a geolocation API, and lots more fun things for the future. と書かれているのを発見(強調は自分によるものです)。 "geolocation API"と聞いてはじめは住所から緯度経度を返すジオコーダのことかと思ったけどそうではなくて、クライアントのデバイスの現在位置を取得するためのものです。日のケータイでいう位置情報取得APIみたいなもの。 そんな機能が実装される予定になっているとは、と思って調べたらいつのまにかいくつかの機能が追加されていました。API History - Google Gears API - Google Code

  • Firefox3でSQLite3の全文検索機能を使って日本語を検索する - bits and bytes

    mal_blue@tumblrでFirefox3に載っているSQLiteに全文検索機能がついたのを知りました。昨年12月にGoogle Japan Blog: Google デベロッパー交流会 ( 第 4 回 )に参加させていただいたとき、Google Gearsの開発者がGoogle Gearsでサポートされているlocal storage(実体はsqliteのデータベースでSQLを使ってデータを読み書きできます)について非ASCIIのfull-text searchをサポートしたいと言われていたのを思い出しました。 その後どうなったかなー、と思ってちょっと検索してみたらGoogle Gearsと直接関係ないけどSQLite Full Text Search with MeCab - mynoteという記事が。この記事はSQLiteのCのAPIにはtokenizerを指定することができて

  • WWW::Mechanize::AutoPager+Web::Scraperで複数ページにまたがるデータを扱う - bits and bytes

    AutoPagerizeのSITEINFOに含まれている、次のページへのリンクを示すXPathはAutoPagerize以外の用途でも使うことができます。 CPANにこのSITEINFOをパースすめたるの HTML::AutoPagerize - Utility to load AutoPagerize SITEINFO stuff というモジュールがあるのは知っていたのですが、ページのロードと次のページのURLの解決もやってくれる WWW::Mechanize::AutoPager - Automatic Pagination using AutoPagerize というモジュールがあるのはさっき知りました... このモジュールを使うと、MechanizeでロードしたページがAutoPagerizeのSITEINFOに記述されていれば、自動的にSITEINFOのnextLinkを参照して

  • XPathをてきとうに作ってくれる機能を追加したwebscraperp.js - bits and bytes

    perlのWeb::Scraperみたいな記述で、ページの中からデータを取り出すwebscraper.jsという小さなjavascriptのライブラリに、要素をてきとうに渡したらてきとうにXPathを作って動いてくれるwebscraperp.jsというのを書きました。なんで最後にpをつけたかは思い出せません... ブックマークレットWeb::Scraperのjavascriptバージョンwebscraper.jsと同じように、データを取り出したいページでブックマークレットでwebscraperp.jsを読み込んでFirebugコンソールで使います。 ブックマークレット(Firefox3専用) webscraperp コードwebscraperp.js つかいかた Web::ScraperのSYNOPSISで例としてあげられているebayだとアクセスしたときによって出品されているものが違って

  • てきとうにクリックしたらてきとうにWeb::Scraperのコードを作ってくれるWebScraper IDE - bits and bytes

    まえに作ったWeb::Scraperのjavascriptバージョンwebscraper.jsとXPathをてきとうに作ってくれる機能を追加したwebscraperp.jsにHTMLのドキュメントから繰り返し部分をみつけてSITEINFOをつくるAutoPagerize Iteration Detectorみたいなみためをくっつけて、取り出したい部分をクリックしたらてきとうにXPathを生成してWeb::Scraperのコードにして出してくれるFirefoxのextensionを作りました。Firefox3専用です。ごめんなさい。 ダウンロード WebScraper IDE (for Firefox3) 使い方 今回もいつもお世話になっているスターバックスさんの店舗検索結果(住所・店名・条件から探す)を例に使い方をご紹介します。 WebScraper IDEをインストールするとツールメニュ

  • いまさら人に聞けない Firebug tips - bits and bytes

    2年前の夏に書かれたFirebugの便利な組み込み関数 - 技術メモ帳を読んで、いまさらdebuggerと書くとそこからデバッガでステップ実行できるのを知ってショックでした.... lurkerさんのブログで紹介されている$0, $1 で直前にinspectしたものを参照できることも、なぜか公式のドキュメントっぽいFirebug Documentationには載っていなくて、FireBug Documentation - JoeHewitt.comには載っています。 で、もうひとつ、ソースコードにしか書かれてなさそうなやつを発見しました。$$1と$$2です。 自分はFirebugを使っていて、ときどきconsole.logで出したオブジェクトのプロパティを引数にして関数を呼んだりしたい、ということがあったけどできなくて困ってたんですが$$1でそういうことができるようになりました。 たとえば

  • Lilyで視覚的にHTTPDサーバを作る - bits and bytes

    なんか気がついたらノキアの携帯向けApache Nokia Mobile Web ServerからはじまってWindows Mobile, iPhone, mozJSHTTPとキワモノHTTPサーバ紹介ブログみたいになってますが、今回のHTTPサーバはFirefox上で動くLily | Visual Programming for the Mozilla Frameworkのhttpdパッチです。去年Yahoo! Pipesが話題になったちょっとあとでその存在を知りました。Yahoo! PipesはXMLデータを視覚的に処理するためのツールでしたが、Lilyは視覚的にプログラムを作るためのツールです。その中になぜかHTTPサーバが含まれているのです。 プログラムを視覚的に作るものを文章で説明してもしょうがないので、どんなものかはLily: Demo Archivesのビデオをみてみてくださ

  • HTMLのドキュメントから繰り返し部分をみつけてSITEINFOをつくるAutoPagerize Iteration Detector - bits and bytes

    HTMLのドキュメントから繰り返し部分をみつけてSITEINFOをつくるAutoPagerize Iteration Detector HTMLのドキュメントから繰り返し部分をみつける - bits and bytesをベースにして、(ページによるけど)3回くらいクリックしたらSITEINFOが作れるAutoPagerize Iteration Detectorという長い名前のFirefox extensionを作りました。 インストール iterd.xpi version 0.12 (supports Firefox 2.0-3.0.0.*) つかいかた 今回はスターバックスさんの店舗検索結果(住所・店名・条件から探す)を例としてご紹介します。 AutoPagerize Iteration Detectorをインストールすると、リンクを右クリックしたときに出てくるメニューにDetect

  • E4Xっぽい記述でXPath式の文字列を作るXPathBuilder - bits and bytes

    AutoPagerize IDEのように、ある条件を元にXPathを生成するようなコードは、とりあえずふつうに書くと var attribute = "class"; var nodeName = "div" var value = "main"; "/" + nodeName + "[contains(@" + attribute +",'" + value + "')]" のような何を書いてるのかわからないようなコードになってしまいます(AutoPagerizeもこんなかんじになってます)。 SQLであればDBIx::ClassをはじめとしてORマッパがあって $self->{schema}->resultset('Recents')->select( { id => 4000, } ); と書いたものを SELECT * FROM recents me WHERE ( ( me.id

  • アプリケーションもjavascriptで書けるpure javascriptのHTTPサーバmozJSHTTP - bits and bytes

    以前Firefoxのソースコードの中にmozJSHTTPという名前のjavascriptで実装されたHTTPサーバをみつけたのでちょっと動かしてみました。 mozJSHTTPがいったいどういう目的で開発されているのか、わかりませんでしたが(いまはFirefox体に組み込まれているわけでもないし、拡張機能でもなく、単にソースコードがCVSに入っているだけみたいです)ソースコードはmozillaのCVSから持ってくることができます。 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/netwerk/test/httpserver Firefox3のインストール mozJSHTTPは、新しくFirefox3で追加された @mozilla.org/thread-manager;1 という名前のコンポーネントを

  • FirefoxのE4XはXPathより便利? - bits and bytes

    つい最近FirefoxのXMLオブジェクトがすごく便利なのを知りました。そして、そのXMLオブジェクトサポートのことをE4X(ECMAScript for XML)と呼んでいたというのを今知りました.... E4Xについては ECMAScript for XML (E4X) 仕様邦訳 を翻訳された nanto_viさんが書かれている E4X in Firefox が詳しいです。 しょせんはさっきE4Xがなんなのかを知った程度なのでちゃんとしたことは他のページを参照していただくことにして、11.2 左辺式 に書かれているアクセサと選別述語演算子でXPathと同じようなことができて、それがXPath以上に便利なところがありますよ、というはなしだけ書こうと思います。 E4XについてECMAScript for XML (E4X) 仕様邦訳序文には このプログラミング言語拡張は、世界中のもっとも大

  • AutoPagerize用のXPathをかんたんに作るためのブックマークレット AutoPagerize IDE - bits and bytes

    GreasemonkeyのスクリプトでAutoPagerizeというものがあります。これはgoogleの検索結果のように何ページにもページが別れているときに、次のページを表示するためのリンクを押さなくても自動的に次のページの中身がAjaxで継ぎ足されて表示されるというものです。 オモロ 検索エンジン SAGOOL サグール の検索結果のページがAutoPagerizeとおなじしくみになっていて、検索結果を一番下まで見ると自動でさらに10件が表示されるようになっているので試してみてください。 これが極めて快適で、慣れると次へのリンクを押す生活には戻れません。記事全体は長いのに1ページの文章量が少なくて、次のページへのリンクをやたら押さないといけないニュースサイトなどは当然のように対応されていて、クリックする必要がなくなって、ストレスなく文章に集中できるようになります。対応しているサイトも

  • XML+Excelという組み合わせなIntelのマッシュアップツールMash Maker - bits and bytes

    前回の続きです。Mashups: Mashup Maker SmackdownでIntelがMash Makerという名前のいわゆるマッシュアップ用のツールをリリースする、という話を読んでマッシュアップツール(と呼ばれるもの)の比較 - bits and bytes をはじめたら、えらく長くなったのであらためてMashMakerのことを書きます。 Intel To Launch MashMaker に、デモのビデオがあるので英語がわかるならこれをみればおしまいかもしれません。自分はわかんないので ProgrammableWeb.com » Blog Archive » Intel’s MashMaker Coming Soon にある論文 Intel research paper from SIGMOD 07(PDF) と User-Friendly Functional Programm

  • 1