日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。
日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。
ファイル resizegrip エレメントをマウスでリサイズできる透明グリップ resizegrip - エレメントをマウスでリサイズできる透明グリップ floatingWindow 浮遊するウィンドウを生成する floatingWindow - 浮遊するウィンドウクラス buttondrag エレメントをマウスでドラッグ&ドロップ buttondrag - エレメントをマウスでドラッグ&ドロップさせる floatingLayer レイヤを浮遊させる floatingLayer - 浮遊するレイヤクラス xbrowser いくつかのブラウザで共通して使える基礎関数 xdom - DOM操作系関数 isbrowser - ブラウザ判定 Point - x,y の構造体 json json方式のエンコードとデコード json - json方式のエンコードとデコード ajax 非同期通信 aja
JavaScript llameradaの日記 - Method Finder for JavaScript ふと、id:llameradaさんの仕事を見て。(cloneのとこ..、破壊的なメソッドを呼んでも大丈夫なのかな..)JavaScriptのメタレベル操作機能の不足が原因で、DontEnumの属性を取得するためのメソッド羅列部分がやっぱり長くなっちゃうんですね。 DontEnum属性については、以下を(via www.horaguchi.net - DontEnum属性がついているんだと思う)。 for in でメンバを列挙しても length プロパティは見つかりませんでした。これはいったい何故でしょうか。実はこれは、文字列オブジェクトの length プロパティが DontEnum という属性を持っているからなのです。この DontEnum属性を持つプロパティは for in
Object クラスは JavaScript のデータ型の一つを表します。これは様々なキー付きコレクションとより複雑な実態を格納するために使用されます。 Object は Object() コンストラクターまたはオブジェクト初期化子/リテラル構文を使用して生成することができます。 JavaScript のほぼすべてのオブジェクトが Object のインスタンスです。一般的なオブジェクトは、プロパティを (メソッドを含めて) Object.prototype から継承していますが、これらのプロパティはシャドウ化 (別名オーバーライド) されている場合があります。しかし、意図的にそうではない Object を生成したり (例えば Object.create(null) によって)、変更した結果そうではなくなる場合 (例えば Object.setPrototypeOf) もあります。 Objec
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
MethodFinder for Ruby (May 2006) What’s a MethodFinder I use lots of different programming languages, and they all seem to have different names for the same concepts. For example, string concatenation is “+” in ruby and java, “.” in perl, “,” in smalltalk and “^” in ocaml. After a while, this starts to drive you mad. I know that I want a method which takes “foo” and “bar” and returns “foobar” but
for 文で 100 項目とか 1000 項目とかあるテストケースを処理するとブラウザが固まる。 こんなダイアログが表示されます。 ということで for 文を setTimeout や setInterval に変換する事で定期的にブラウザに処理を戻すことができる。 // ここでは console.log のところでログを取ってますが // 通常は処理が入ります。 for (var i = 0; i < 3; i ++) { console.log('a' + i); } /* * 結果 * a0 * a1 * a2 */ これをまず while 文に変換 var i = 0; while (true) { if (!(i < 3)) break; console.log('a' + i); i ++; } /* * 結果 * a0 * a1 * a2 */ で、 setTimeout に
借金をしたときには、必ず返済しなければなりません。 多くの人がそのまま頑張って返さなければと考えがちですが、賢い借金返済方法を取ることでより楽に返せるようになるのです。
文字列を結合するメソッドがJavaScriptに存在することは分かっているのに、そのメソッドの名前が思い出せず、リファレンスを一々参照することはありませんか? そんな時に便利なMethod Finderを作ってみました。オブジェクト・返り値・引数を与えると、Method Finderはそれらの条件を満たすメソッド名を返します。元々はSmallTalkにあった機能のようです。私もJavaScriptのメソッド名をよく忘れるので、Method FinderのJavaScript版を作ってみました。下記のサイトより試せます。 Method Finder for JavaScript 実装にはAndrew Birkett's MethodFinder in Rubyを参考にしました。 メインのコードはこんな感じです。あまり格好よくありません。 追記:id:brazilさんよりトラックバックを頂きま
CSSgallery.info Javascript form validators When we use forms, we need somehow to validate the data user input. JavaScript製のフォームバリデータライブラリがいろいろ紹介されています。 Realtime validation using Ajax ( フォームの入力値をリアルタイムにバリデーション「Realtime validation」 ) LiveValidation ( JavaScriptでリアルタイム値チェックを簡単に行える「LiveValidation」 ) JSValidate ( prototype.jsベースのリアルタイムバリデートJSライブラリ「JSValidate」 ) validator.js - Client-side form validatin
as3Query: alpha version (New Wave ActionScript) [TECH-NI Blog] as3Query is an ActionScript3.0 port of John Resig's exellent JavaScript library jQuery 1.2.1.ActionScript3でjQuery「as3Query」。 as3Query を使えば、ActionScript3 で jQuery の機能が使えるようになるそうです。 as3Queryを使った動くサンプルムービーも公開されています。 HTMLとFlashでは性質は違いますが、ステージ上のオブジェクトを $() 関数で選んで操作したりする機能は中々使いやすそう。
使えるCSSメニューいろいろ 1. Advanced CSS Navigation Menu Example まず、ホバー時以外は文字をぼやかせるCSSメニュー。 次のようにマウスホバー時は文字がクッキリするメニューのサンプルです。 JavaScript レスで実装できるので JavaScript なしがいいという方にはオススメ。 ただし、動かないブラウザもあるようなので注意が必要ですね。 2. Suckerfish Dropdowns - Perciformes! 次にCSSとJSで階層メニュー。やはりこのUIは直感的に操作できますね。 類似:CSSのみでクールな階層メニュー作成サンプル、CSSベースの階層メニュー作成ライブラリ 他にも色々と掲載されています メニュー関連エントリ PHP&CSSで動的にドロップダウンメニュー作成 ドラッグ&ドロップで描画して好きなHTMLレイアウトを作成
Countermeasures against XSS with UTF-7 are: Specify charset clearly (HTTP header is recommended) Don't place the text attacker can control before <meta> Specify recognizable charset name by browser. For more information about UTF-7 trick, see "Cross-site scripthing with UTF-7". These XSS patterns are tested on IE6 and IE7. Yosuke HASEGAWA <hasegawa@openmya.hacker.jp> Last modified: 2008-01
同一バッファ内で、キャレット位置によって複数のメジャーモードを切り替えるmmm-modeの設定を貼ってみる。HTML系だけ。 (require 'mmm-mode) (setq mmm-global-mode 'maybe) (set-face-background 'mmm-default-submode-face "#333333") (mmm-add-classes '((mmm-html-css-mode :submode css-mode :face mmm-code-submode-face :front "<style[^>]*>\\([^<]*<!--\\)?\n" :back "\\(\\s-*-->\\)?\n[ \t]*</style>" ) (mmm-html-javascript-mode :submode javascript-mode :face mmm-co
http://blog.livedoor.jp/dankogai/archives/50957890.html まず、Object.prototypeにメソッドを生やしてしまうとfor inでキーを列挙するときにいちいちhasOwnPropertyを使わないといけなくなるので普通は使いません。影響が大きすぎるので、よっぽど変態的なライブラリじゃないと使わない。他のライブラリと組み合わせるとほぼ確実に問題が起きる。それから、deep_cloneが欲しい場合はJSONを作ってevalすればよい。パフォーマンスを気にする場合とか、浅いコピーが必要な場合はそれなりに工夫する必要があるけど。 で、JSONにするのにFirefoxだとtoSourceというのが使える。unevalというラッパーがあって、これだとnullでも平気。 http://subtech.g.hatena.ne.jp/cho45/
書き上げた後に元記事の続きが出ているのに気づいたが、方向性が違うようなのでそのまま掲載。 404 Blog Not Found:javascript - プロトタイプ的継承 (元記事: Prototypal Inheritance) より。継承という言葉は意味が広いので、この操作に対してはチャイルドの作成といったほうが個人的にはわかりやすい。 さて、元記事で紹介されているコードではプリミティブ値からのチャイルドの作成 (継承) ができなかった。これはなぜかといえば、オブジェクト作成の際、プリミティブ値をプロトタイプ ([[Prototype]] 内部プロパティ、__proto__ プロパティ) に設定することはできないからである。 そこで、プリミティブ値が渡された場合は、それをラッパオブジェクトに変換することにする。といっても場合分けの必要はない。Object 関数を使えば、プリミティブ値
Greasemonkeyの過去においてのセキュリティ上の問題の解説。 Greasemonkeyだけに限らず、JavaScriptによるユーザ拡張を作成している全ての方に対して一読の価値があるドキュメントだと思われます。 原文:O'Reilly Media - Technology and Business Training Greasemonkeyの共通な落とし穴を避ける Greasemonkeyのセキュリティの歴史があなたの今にどう影響するのか (著) Mark pilgrim "Greasemonkey Hacks"の著者 2005/11/11 昔々、あるところにセキュリティホールがありました。(これは普通のおとぎ話ではないからそのまま読んでください。) Greasemonkeyのアーキテクチャは最初に書かれて以来大幅に変更されてきた。Version0.3は初めて広範囲に人気を得たバー
1985年、AT&TのBjarne StroustrupがC++をこの世に送り出しました。その後C++は様々な拡張を繰り返しながら進化してきました。 1991年、ISOはC++の国際標準(standard C++)を定める作業を開始しました。標準C++の最終草案は1997年にISO C++標準化委員会に承認されました。 標準C++が規定するのは言語仕様だけなく、C++標準ライブラリも規格の中で明確に定められています。それまでC++のライブラリといえばiostreamぐらいのものでしたし、それもあくまで"事実上の標準"でしかありませんでした。 そしてそのC++標準ライブラリの一部として組み入れられたのがSTL(Standard Template Library)です。すなわちSTLは標準C++の仕様の一部ということです。 僕がSTLを知ったのは1995年、いくつかのコンパイラがtemplat
未だに沢山の人が困ってるようです Permalinkを見てると例のエントリを見てくれてる方が沢山いらっしゃいます。1年前のエントリですが、お役に立ててるようでとてもうれしいです。 で、ふと気になってhttp://twitter.1x1.jp/search/で検索してみた。 http://twitter.1x1.jp/search/?source=&keyword=%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97+%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF&lang= http://twitter.1x1.jp/search/?source=&keyword=firefox+%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97&lang= http
はてなスターのJSにExpiresヘッダ云々の件 Twitterでぼやいたらmala氏からレスがついたついでに。 以下の画像はlimilicのyslowの画面 s.hatena.ne.jpの画像やJavaScriptにはExpiresヘッダがありません サーバから送り出されるコンテンツにExpiresヘッダがあると、ブラウザは指定された時間までキャッシュし、ブラウザのリロードボタンを押したとき以外はIf-Modified-Sinceのリクエストも送りません。サーバにもクライアントにも優しくなれます ってことで、yslow対策(笑)だけではなく、はてなスターにもExpiresつけたらいいんじゃねと思っているのですが、難しいのはmala氏も指摘するHatenaStar.jsが外部からリンクされているため「ファイル名を変更しての強制Expires」ができない問題。Expireを設定するとブラウザ
Scrapingは余りやらないんですけど、いざやる場合にフォームのパラメタとか調べるのは面倒です。そんな時にWWW-Mechanizeに付属のコマンドのmech-dumpを使うと便利です。 サンプル 例えば、Pathtraqのトップページなら、 $ mech-dump --forms http://pathtraq.com/ GET http://pathtraq.com/analytics url=解析したいサイトのURLを入れてください (text) <NONAME>=解析する (submit) m=hot (radio) [upcoming|*hot|popular|site]と言う風に出力されます。*1 つまり、 name type value url text -- submit 解析する m radio hot(/upcoming/popular/site) って感じだと分かる
やっぱりサービス側で堅牢なパスワードをユーザーに強制する仕組みが無いと問題があるサービスと言うのはたくさんあるって事で、Perlで出来る限り簡単にそういう仕組みを作れないかなと。 幾つかピックアップしてみました。 Data::Passwordモジュールを使う 真っ先にこれ。UNIX系OSでのパスワードの強度チェックと似たモジュールのようです。 use Data::Password qw(:all); print IsBadPassword("hogehoge"); 文字列が表示されちゃう場合はNGなパスワード。 このモジュールは辞書設定も出来るようです。 @Data::Password::DICTIONARIESに辞書ファイルを指定しておくとそこの内容も見てくれるみたい。 ありがちなパスワード集はftp://ftp.ox.ac.uk/pub/wordlists/に言語別にあります。 またU
なんかFirefox2ではポップアップブロックの挙動が変わってるというらしく、ポップアップを許可したサイトでもブロックされるというのでコメントをしたんだけど認識が違っていたようなので、気になってソースを読んで調べてみたりしたので、わかったことをメモしておく。 Firefoxのポップアップブロックの挙動 - 許可サイトでなくても、完全に許可されるポップアップがある -- ボタンやイベント設定された要素の左クリック -- Enterキーか、スペースキーでボタンが押された場合(onclickが呼び出される操作) -- ユーザーの設定に関わらず許可される、30個だろうと開く --- これを防ぐのが「browser.tabs.maxOpenBeforeWarn」? - 許可サイトでなくても、個数限定付きで許可されるポップアップがある -- フォームの値変更なんかで開くポップアップ。 -- dom.p
デザインに困った時にみると、インスピレーションがふつふつと沸いてくるサイトの紹介です。 Design Inspiration Gallery The Ad Generator Kuler Reject
noupeにエントリーされている、AJAXを使った素晴らしいCSSのフォームの47のサンプルの紹介です。
完全に私的なメモです。如何せん、めったにやらないのでしょっちゅう忘れてググる羽目に>< 手順 ez_setup.pyをダウンロード ez_setup.pyでsetuptoolsをインストール easy_installコマンドでソースからインストール(全プロジェクトに対して) ユーザー権限の設定 trac.iniの編集 インストール ez_setup.pyをダウンロード $ cd /tmp $ wget http://peak.telecommunity.com/dist/ez_setup.py ez_setup.pyでsetuptoolsをインストール $ python ez_setup.py setuptools==dev easy_installコマンドでソースからインストール(全プロジェクトに対して) svnレポジトリにダイレクトで行けます。 $ easy_install http:
IEでのWeb開発を便利にする「DebugBar ver5.0 beta1」が注目されているようですね。 IEにFirebugの機能を提供する - "DebugBar"登場(マイコミジャーナル) WEB開発に活用できるIE版のFireBug「DebugBar 5.0 beta」を試してみました(phpspot開発日誌) まあ、DebugBar を IE版FireBug というのは機能が少ないので違和感がありますが、そこは置いておいて、Microsoftから提供されている「Internet Explorer Developer Toolbar」と DebugBarを軽く比べてみました。 なお、DebugBar と Internet Explorer Developer Toolbar の両方とも、DOMインスペクタ機能は持っています。 ■DebugBar のみにある機能 JavaScrip
noupeにエントリーされている3カラムレイアウトのサンプルサイトの紹介です。 9 Timeless 3 Column Layout Techniques 紹介されているのは、3つのカラムが「固定:2、可変:1」「固定:3」「可変:3」「レイアウト サンプル集」となっています。 固定:2、可変:1
Developer's Guide - Google Chart API via Ajaxian GoogleにチャートAPIというものがあるとのこと。 APIの使い方は、以下のようにURLにパラメータをセットするだけです。 http://chart.apis.google.com/chart?cht=lc&chs=200x125&chd=s:helloWorld グラフのタイプは以下のようになります。 折れ線グラフ 棒グラフ 円グラフ ベン図 散布図 1ユーザあたり1日で50,00リクエストの制限はありますが、ちょっとしたことに使えそうでいい感じです。 まだ試してはいないですが、日本語が使えるとうれしいですね。
ActiveSupport equivalent to Perlで知ったautoboxがかっこいい。上のmiyagawaさんのコードを引用させてもらうと、DateTimeオブジェクトの生成が use autobox; use autobox::DateTime::Duration; print 1->day->ago, "\n"; # 2008-01-14T23:25:53 print 2->minutes->from_now, "\n"; # 2008-01-15T23:28:20 というようにActiveSupportっぽく書けたりする。autoboxを使ったモジュールは結構簡単にかけるので、以下のように使える、autobox::URI::Fetchを書いてみた。 my $res = 'http://d.hatena.ne.jp'->fetch; # URI::Fetch::Respo
解決:Scalar::Util::weakenを使おうとするとWeak references are not implementedで落ちる - ヒルズで働く@robarioの技ログ ↑コレの件。 確かにScalar::Utilを再インストールしたら治ったには治ったんだけど、そもそもつい2,3日前まで普通に動いてたのに今日イキナリ動かなくなったのがなんとも気持ち悪い。 ここ最近モジュールインストールもしてなかったし、いったい全体なんで急にエラーが出るようになったのか謎。 あれか?今まではXSバージョンで動いていたけど何かしらの理由により急にPurePerlバージョンで動くようになってしまったとかか?うーん、わからん。 また発動したらどうしよう。。。怖い怖い怖いよう。 Scalar::UtilのせいでCatalystが動かないわけで、つまりコンテンツの提供ができないということになるわけで。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く