タグ

ブックマーク / secondlife.hatenablog.jp (21)

  • ブックマークレットサービス・Hatena::Let を作りました - 2nd life (移転しました)

    ブックマークレットをかんたんに作成・公開できるラボサービス、その名も Hatena::Let を作りました。 http://let.hatelabo.jp/ 未だにブックマークレットを作るときには、アドレスバーに javascritp:... を打ち込んで実行したり、 Firebug で実行して試しつつも外部の bookmarklet 化サービスを使って文字列削ったり、IE対策のため500ちょい文字を超えると gist にファイルを置きつつもおきまりの var script = document.createElement('scrit');... で JS のローダー書いたり、とやりたいことは同じなのにめんどくさい手順を毎回行っていたました。 ここらへんの手順を毎回繰り返すことなくさくっと作って公開したい!と思い id:cho45 と半年ぐらい前の開発合宿*1で作って眠らせていたのを、ち

    ブックマークレットサービス・Hatena::Let を作りました - 2nd life (移転しました)
    facet
    facet 2010/05/19
  • はて☆すた OP - 2nd life (移転しました)

    ※スペックが低いマシンや一部ブラウザだと固まったり落ちる可能性があります javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";s.src="http://rails2u.com/misc/hatesuta.js";document.body.appendChild(s)})();を適当なページでアドレスバーに入れて実行!すると…。スターつきの blog のトップページなんかだと最後にカウンターも出てカウンターとしても使えるよ☆ ソースは CodeRepos で公開してます。MIT ライセンスとしてご自由にどうぞ。 http://coderepos.org/share/browser/lang/actionscript/hatesuta

    はて☆すた OP - 2nd life (移転しました)
    facet
    facet 2007/09/16
    って何?[*]
  • Rails のためのものぐさな Web アプリケーションの国際化手法 - 川o・-・)<2nd life

    最近、自分が作る Web アプリケーションで、日語圏に限らず使ってもらえそうな物は最初から一応国際化(というか英語対応)して作るようにしています。国際化対応しておくと、はてブに限らず、del.icio.us や digg で取り上げられたりして、いろいろな人に使えてもらって嬉しいし海外からも adsense 収入gです。del.icio.us のトップや /popular/ からのリファラは、はてブトップ or 人気エントリーからのリファラとそんなに変わらないぐらいなのですが、digg からのアクセスはその十数倍あって驚きでした。 で、題の国際化の方法なのですが、favicon2dots や polaroizeぐらいの小粒なアプリケーションなら、ほんの数分〜十数分作業時間を増やすだけで対応できてしまうので、その方法のご紹介を。 ruby-gettext 武藤さん作の ruby-gett

    Rails のためのものぐさな Web アプリケーションの国際化手法 - 川o・-・)<2nd life
    facet
    facet 2007/02/09
    gettext
  • MochiKit で JSONP の利用 - 2nd life (移転しました)

    最近日でも JSONP が広く知られるようになってきました。JSONPについて詳しくはhail2u.net - JSONP や snippets from shinichitomita’s journal - JSONPについてをどうぞ。 で、JSONP を簡単にライブラリから扱うには、dojo ならScriptSrcIO、prototype.js なら dojoの ScriptSrcIO ライクに拡張した Dojo penetrates Prototype Dude, WTF?! などがあります。 しかしながら、我らが MochiKit は開発者の Bob さんが JSONP を提唱したにもかかわらず、JSONP を扱う Async の関数が見あたらない*1ので作ってみました。デモでは delicious の json api をコールバック関数付きで呼び出し(JSONP)て、リストを

    MochiKit で JSONP の利用 - 2nd life (移転しました)
  • 川o・-・)<2nd life - Rails における信頼とは

    アンカテ(Uncategorizable Blog) - Rails的世界の「安心」と「信頼」の力学 自分の場合 Rails における信頼とは DHH (Rails 作者) のセンスだと思ってます。Rails はマーケティング、設計思想、共に成功したと言えますが、そのうちエンジニアの自分が興味があるのは設計思想なわけで。 最初 Rails に出会ったときは、日では一年遅れでやってきた「Rails って簡単に素早く Web アプリケーションが作れるよね」といったスピード感に Rails ってばスゲー、と思いましたが今は違います。ここら辺は結局フレームワークに慣れれば、他のフレームワークでも大概は出だしのスピード感をつけることができます*1。 実際 Rails を使っていても、周りのその他たくさんの開発者と技術力の差をつけるには、結局 Rails のソースを読み、ネット上でかなりの情報が流れ

    川o・-・)<2nd life - Rails における信頼とは
  • 川o・-・)<2nd life - Firefox 2.0 Beta 1 で Rails のドキュメントをインクリメンタルサーチ

    先日、Firefox の Beta 1 がリリースされました。で、2.0 の新機能の一つで、OpenSearchを利用した検索プラグインを個人でも簡単に作成することができるようになりました。また A9.com > OpenSearch > OpenSearch Autodiscovery を利用すると、2クリックで簡単に閲覧しているサイトを検索プラグインとして Firefox に追加することができます。 で、Creating MozSearch plugins - MDCを読んでいたら、JSON でデータを返すと google suggest のようなインクリメンタルな検索結果を表示できるようです。面白そう!ということで早速 api.rails2u.com にOpenSearch Autodiscovery と 検索結果を JSON で返すAPIを仕込んでインクリメンタルサーチするようにし

    川o・-・)<2nd life - Firefox 2.0 Beta 1 で Rails のドキュメントをインクリメンタルサーチ
  • 川o・-・)<2nd life - Services_Hatena リリース!

    http://d.hatena.ne.jp/gooooooogle/20060327 http://hetena.com/ http://pear.php.net/package/Services_Hatena/ ということで php の pear パッケージ、 Services_Hatena がアルファ版ながらリリースされました。php から各はてなAPI が簡単に使えるよ、というもの。インストールは pear コマンドで pear install --alldeps Services_Hatena-alphaとかで。軽く API を眺めてみたところ、Factory でインスタンスを取り出して execute で主のコマンドを実行みたいですね。たとえばはてな検索でキーワードを取り出したい場合、 !#/usr/bin/php <?php require_once 'Services/H

    川o・-・)<2nd life - Services_Hatena リリース!
  • 川o・-・)<2nd life - JavaScript や CSS の query に自動で最終更新時間をつける Rails Plugin

    最近いろいろなサイトで <script src="/javascripts/foo.js?1142509269" type="text/javascript"></script>や <script src="/javascripts/bar.js?v=2.3" type="text/javascript"></script>の記述を見るようになってきました。また CSS でも <link href="/stylesheets/foo.css?1142509300" media="screen" rel="Stylesheet" type="text/css" />といった記述もちらほら見かけます。 これは JavaScriptCSS を更新しても、ブラウザキャッシュが読み込まれているため、更新された JS ファイルなどがロードされない場合への対策です。上記のような最終更新時刻やバージ

    川o・-・)<2nd life - JavaScript や CSS の query に自動で最終更新時間をつける Rails Plugin
    facet
    facet 2006/03/17
    query付きURLで強制リロード。
  • 川o・-・)<2nd life script.aculo.usのファイルサイズを軽減

    http://www.goodpic.com/mt/archives2/2006/02/ajax.html で紹介されてる通り、script.aculo.usは通常のロードではファイルサイズが100KBを超えます。しかし、それはフルでロードしたときの容量なのです。script.aculo.usはロードするパッケージを選ぶことができる*1ので必要な機能だけを選べば良いのです。例えば、たいていの場合はscript.aculo.usのeffects.jsだけしか使わなかったりするので <script src="/js/scriptaculous.js?load=effects" type="text/javascript"></script> とすればOK。これでファイルサイズは34KBに収まります。また、二つ以上のパッケージを選択したい場合は <script src="/js/scriptac

    川o・-・)<2nd life script.aculo.usのファイルサイズを軽減
    facet
    facet 2006/02/04
    ?load=effects,dragdrop
  • はてな 入社しました - 2nd life (移転しました)

    2006年からはてなエンジニアとして働くことになりました。よろしくお願いいたします。初出社の昼ごはんはカップ麺!!!

    はてな 入社しました - 2nd life (移転しました)
    facet
    facet 2006/01/04
    これはでかいかも。[gorou]
  • 川o・-・)<2nd life - prototype.js with mousehweel event

    http://rails2u.com/misc/wheel_event/ prototype.jsではイベントハンドラの登録をEvent.observeに追加することにより行えます。これはWinIEだとelement.attachEvent, Firefoxだとelement.addEventLisnerと登録用の関数が違う互換性を吸収してくれるので大変便利です。しかし、ホイールイベントは少々特殊なため、通常のEvent.observeでは上手く登録が行えません。 ホイールイベントをwebアプリケーションで上手く使うとユーザビリティの向上が見込める*1ので、簡単にホイールイベントを登録できるEvent.observeを作ってみました。上記URL先のwheel_event.jsをprototype.jsを読み込んだ後に読み込むことによって、mousewheelイベントを扱えるようになります。

    川o・-・)<2nd life - prototype.js with mousehweel event
  • Irb/TipsAndTricks - 2nd life (移転しました)

    http://www.rubygarden.org/ruby?Irb/TipsAndTricks Ruby使いなら誰もが愛用している(と思われる)irbのtipsなどが書かれているrubygardenの1ページなんですが、ここのriを使ってリファレンス引く方法が超便利!refeに変えたら鼻血が出るほど便利だったので紹介。refeとは、 クラス名とメソッド名から Ruby のリファレンスマニュアルのエントリを引く、コマンドライン用のツールです。読みは「りふぇ」。 ri をパクって日語・RD に対応させたものです。 http://i.loveruby.net/ja/prog/refe.html という青木さん作のツールで、最近はgem化もされてるのでgem install refeでも一発インストールができます。で、先ほどのサイトで書かれてるriの箇所をちょっと変更して、~/.irbrcに

    Irb/TipsAndTricks - 2nd life (移転しました)
    facet
    facet 2005/11/14
  • ActionWebServiceでxmlrpcサービスを作る - 2nd life (移転しました)

    下が変な人に「くれりんこ」と云われたような気もするので作り方を解説します。 RailsではActionWebServiceを使うとxmlrpcやsoapのサービスを簡単に作ることができます。今回はTraipyという以前実装したTropyクローンに簡単にxmlrpcで投稿(newTropy)、エントリーの取得(getTropy)をできるAPIを実装してみましょう。 まずAPIのライブラリを置く場所ですが、Rails的にはRAILS_ROOT/app/apis/*_api.rbとして置くのが一般的です。今回はxmlrpc_api.rbという名前を付けて配置します。 module XmlrpcStruct class Tropy < ActionWebService::Struct member :key, :string member :source, :string end end cla

    ActionWebServiceでxmlrpcサービスを作る - 2nd life (移転しました)
    facet
    facet 2005/11/14
  • RubyのSymbol - 2nd life (移転しました)

    Rubyを最初学んだとき、SymbolとStringの違いが解って無くて、なら全部StringでいいやとSymbolを全く使わなかった時期がありました。今は意図的に使い分けるようにしています。Lost-Season: Rubyのシンボル で疑問点が上がっていたので、初心者向けにSymbolについて説明してみます。 まず使い道ですが、文字の定義を明確にしたいときに使うことが多いです。たとえばhashのkeyだったり、アクセサの引数で渡すインスタンス変数名だったり、alias_methodの引数で渡すメソッド名だったりと、文字に意味づけしたい時に使えます。このようなときにSymbolを使うことによって、ソースがすっきりして可視性が上がります。 また、symbolを使うと速度が向上します。これは、'a' と書くと毎回Stringの'a'を生成しコストが発生しますが、:aと書くと初回にしかコストが

    RubyのSymbol - 2nd life (移転しました)
    facet
    facet 2005/10/27
    ふむ。(よくわかってないけど)
  • はてなマップの prototype.js による Object.prototype 汚染の弊害

    以前からprototype.jsでObject.prototypeが汚染されてしまうのは問題になっていた。詳しくはノゾキ日記やアルファニート2.0の人がまとめている。先日はてなマップが正常に動かなくなったときいて、そういやはてマってprototype.jsつかってるからそのせいじゃないかな、と思って昼間検証したところ(有休バンザイ!)ドンピシャだった。 で、Rails追っかけやprototype.js追っかけの人は知ってると思うんだけど、最近のprototype.js(prototype.js 1.4.0_preからかな?)ではこのObject.prototype汚染がマズイと思ったのか、Object.prototype拡張がなくなった。そのため、継承は以前では ExtendKlass.prototype = (new Klass).extend({}); と書かれていたのが、 Exten

    はてなマップの prototype.js による Object.prototype 汚染の弊害
    facet
    facet 2005/10/08
    prototype.js 1.4でObject.extendに。
  • 川o・-・)<2nd life : はてなダイアリーのサイドバーをドラッグアンドドロップで移動

    できるようにするブックマークレット作ってみたよ!使い方は簡単で、サイドバーを動かしてみたいはてなダイアリー(例 id:sample )上で下のソースをコピペしてアドレスバーに貼り付けると完了。一見なんにも起こってないようだけど、サイドバーをドラッグアンドドロップすると移動できちゃう!! javascript:(function(){var%20s=document.createElement("script");s.charset="UTF-8";s.src="http://rails2u.com/tmp/javascript/hatena_sidebar/hatena_sidebar.js";document.body.appendChild(s);})(); はてダのサイドバーのクラス名が固定されてるからできる技だね。サイドバーレイアウト考えるときに使えたりするかも!はてダのデザイン設

    川o・-・)<2nd life : はてなダイアリーのサイドバーをドラッグアンドドロップで移動
  • 他の鯖で勝手にAjaxしてユーザビリティの向上を考える - 2nd life (移転しました)

    Ajaxを有益に使うにはちまちまちーさいギミックとして使うのが今のところ一番妥当そう。で、ウェブサービスでここでこういう風にAjax使ってれば便利そうなのになー、って思うこともしばしば。 そこでbookmarkletでxmlhttprequestを利用し、無理矢理Ajax組み込んでみてプロトタイプ作ってみるといいかもしんない、つーことでやってみた。こないだのbookmarletの文字数制限を取り払うアレで結構楽に作れそうだし。 ターゲットにしたのははてなキーワードの投票機能。いちいちリロードされなくてもAjax使える環境ならそこの部分だけ動的でもよさそー。 最初はIEとFirefox対応のつもりでコード書いてたんだけどなぜかIEだとstr.match(regexp)だとマッチするのにstr.replace(regexp,'foo')だと置換されないという現象に悩まされてIEはおいといてFi

    他の鯖で勝手にAjaxしてユーザビリティの向上を考える - 2nd life (移転しました)
  • 川o・-・)<2nd life - bookmarkletの文字数制限を無くす

    bookmarkletを作るとき、IEでは500文字ちょい、Firefoxでは2000文字ぐらい(?)の文字数制限がある。また、作った後に一行にまとめたり、デバッグしたりも大変面倒。でもそれがとても簡単な方法でどうにでもなることをインターフェイス!インターフェイス!の人に教わった。 javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";s.src="http://example.com/example.js";document.body.appendChild(s)})(); createElementでscript要素を作って、その中にhttp://example.com/example.jsとソースを指定することによってそのJSを実行できる。WinIEとFirefoxでは確認済み。

    川o・-・)<2nd life - bookmarkletの文字数制限を無くす
  • prototype.js - 2nd life (移転しました)

    http://prototype.conio.net/ railsjavascript helperの一つ。汎用的に使える関数を集めたライブラリみたいなもんだね。 http://dev.conio.net/repos/prototype/test/ にprototypeを使ったデモが置いてある。んで、このprototype.jsのソースを読んだのだけど、 function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) r

    prototype.js - 2nd life (移転しました)
    facet
    facet 2005/04/17
    $(id);
  • RailsでAjaxなファイルアップロードのプログレッシブバー - 2nd life (移転しました)

    http://weblog.rubyonrails.com/archives/2005/04/11/a-peak-at-the-additional-ajaxing-coming-in-0112/ 詳細はリンク先の動画を見て貰うとして。iFrame + xmlhttprequestで現在アップロードしているファイルをプログレッシブバーで表示するつー機能が。凄すぎ。まだまだRails体へのAjax関係の取り込みは盛んに行われているみたい。ちなみにこのプログレッシブバーはEdge RailsとTicket#1026 ([PATCH] Multipart form upload progress stored in the session)なパッチ使ってやってるみたいね。俺も試してみようとpatchあてて10分ぐらい格闘したけどうまく動かせなかった…。

    RailsでAjaxなファイルアップロードのプログレッシブバー - 2nd life (移転しました)
    facet
    facet 2005/04/13