タグ

ブックマーク / os0x.hatenablog.com (26)

  • JavaScript連載第4回 - os0x.blog

    これでできる! クロスブラウザJavaScript入門 第4回 JavaScriptの基礎知識#1 今回は少し基に戻ったお話です。いや基といえば基だけど、わかりにくい・間違いやすいだろうなというところにスポットを当ててます。 この連載で意識しているのは、「JavaScriptは専門じゃないけどライブラリとか使って、当にこれでいいのか不安を感じつつもJavaScriptを書いてるプログラマ」です。と、改めて考えたら高階関数とかクロージャーは書いておくべきだなと。JavaScriptって(サーバーサイドの)他の言語を専門にしてる人が(言い方悪いけど)片手間で書いてることが多いので、そういう人は結構多いだろうと思っています。 プログラミングには大抵「動く」という正解があるけど、JavaScriptではクロスブラウザを考えるとその正解のハードルがすごく高くなります(いや、高くというよりハー

    JavaScript連載第4回 - os0x.blog
    teruwyi
    teruwyi 2010/04/27
  • IEでpassword表示 - os0x.blog

    140文字以内でパスワード丸見え - latest log IE対応は結構面倒なんですよね。 まず、IEはinput要素のtypeを書き換えさせてくれないので次のようなスクリプトすら通らない。 var d=document.createElement('div'); d.innerHTML='<form name="f"><input type="text" name="t"></form>'; document.body.appendChild(d); var t=document.getElementsByName('t')[0]; alert(t.type);// -> text t.type='password';//ERROR! そこでouterHTMLで書き換えをする var d=document.createElement('div'); d.innerHTML='<form

    IEでpassword表示 - os0x.blog
    teruwyi
    teruwyi 2010/04/27
  • ブラウザの環境構築のまとめを書きました - os0x.blog

    これでできる! クロスブラウザJavaScript入門:第2回 完全版:ブラウザとデバッグ環境|gihyo.jp … 技術評論社 IE6,7,8をどうやって共存させるのかとか、Firefox・Safari・Chrome・Operaの旧バージョンはどこから落とせるのとか、各ブラウザでデバッグするにはどういう方法があって、何が必要なのかとか…といった辺りをまとめました。 今まで各ブラウザごとに情報が分散していて、あっちこっち探して回らないといけなかったのを1つにまとめたので、結構便利かなと思っています。とにかく、自分自身がほしかったんです。 とくに、Safari/ChromeのWeb Inspector*1や、OperaのDragonflyとかは知らない人も多いと思うので、この機会に試してもらえたら良いなぁと思います。 第1回で対応ブラウザをまとめ、今回で環境を用意したので、ようやく次回から

    ブラウザの環境構築のまとめを書きました - os0x.blog
    teruwyi
    teruwyi 2010/03/29
  • referrerやDeferredのスペル - os0x.blog

    JSDeferredを打とうとしてrとeの数に不安になるこの頃だったが、 refer + rer defer + red で憶えると間違えないことに気がついた。

    referrerやDeferredのスペル - os0x.blog
    teruwyi
    teruwyi 2010/02/03
  • 複数のバージョンのGoogle Chromeを同時に動かす方法 - os0x.blog

    複数バージョンのChromeを同時に動かす方法は公式には用意されていませんが*1、割と簡単にバージョンごとのChromeを動かすことができます。 出典はGoogle Chromeを任意のフォルダにインストールする方法など: 夜明け前と2chChromeスレ*2からです。 インストールしたいバージョンのインストーラーを用意 4.0.249.30をインストールしたい場合、http://dl.google.com/chrome/install/249.30/chrome_installer.exe からダウンロードできます。 バージョン番号の後半2つをhttp://dl.google.com/chrome/install/xxx.xx/chrome_installer.exe のxxx.xxの部分に当てはめればそのバージョンがダウンロードできます。バージョン番号は後半2つだけでユニークになるよ

    複数のバージョンのGoogle Chromeを同時に動かす方法 - os0x.blog
    teruwyi
    teruwyi 2009/12/21
  • 株式会社ALBERTを退社します - os0x.blog

    12月末が正式な退社日で、有給休暇の消化のため昨日(11月30日)が最終出社日でした。 2005年5月からちょうど4年半、長かったような短かったような、なんとも言えない気持ちです。 2005年当時、大学4年生だった私は大学院に進むつもりで割と軽い気持ちで(といってもゼミの先生の紹介だったのですが)アルバイトを始めました。それが今のALBERTの前身で、その2ヶ月後にALBERTの立ち上げがありました。 いざバイトを始めてみると、仕事のほうが楽しくなってしまい(ベンチャーの創業期に関わったのだから、今思えば当然ですね)、学校のほうは卒業に必要な単位をほぼ取り終えていたこともあり、ほぼ週5日フルタイムで働いていました。 で、あっさりと大学院への進学はやめ、そのまま2006年の4月から(形ばかりの)新卒としてALBERTに正式に入社することになりました。 職場の方々は経験豊かな先輩ばかりで、色々

    株式会社ALBERTを退社します - os0x.blog
    teruwyi
    teruwyi 2009/12/01
  • Twitterで自分がブロックしているユーザーを確認するブックマークレット(とサービス) - os0x.blog

    Who I Block? by @arikfrでSign in with Twitterボタンをクリック→Twitterのサイトに飛ぶのでそこで拒否か許可を選択。whoiblockに戻るとブロックしているユーザーが表示される。こちらでは下記のようなブラウザの再起動みたいな手間もなく割と安全に確認できるはずです。ただ、このサービスを私とは一切関係がないので当に安全かどうかは(私は)保証できません。あしからず。 Twitterの仕様変更により、下記のブックマークレットは動作しません。 http://twitter.com/ を開いた状態で、下記をブラウザのアドレスバーに貼り付けて実行すると認証ダイアログが出るので、ユーザー名、パスワードを入力してください。サイドバーにユーザー名がずらっと出てくると思います(一人もブロックしてなければ何も出てきませんが)。 なお、一度認証を通すと、ブラウザを再

    Twitterで自分がブロックしているユーザーを確認するブックマークレット(とサービス) - os0x.blog
    teruwyi
    teruwyi 2009/11/25
  • AutoPagerizeを軽量化するアイデア - 0xFF

    先に結論を言うと、AutoPagerizeは拡張版がオススメです。以下その理由と余談的なお話です。 拡張版のAutoPagerizeについてちょっと勘違いしてました。AutoPagerizeは軽量化できるという話に路線変更します。 AutoPagerizeってのは、次のページを今見ているページの下に継ぎ足して、ページ遷移することなく次のページを見ることができる、ブラウザの機能を拡張するスクリプトです。 このAutoPagerizeは派生スクリプトがたくさんあって、FirefoxだけでみてもGreasemonkey版のAutoPagerize(家)、cho45さんのjAutoPagerize、Add-onのAutoPagerize(家)、AutoPager(作者は日人ではなく、どちらかというと非日語圏向けかも)などなど。他にもかなりの数があります*1。 で、Opera、Google

    AutoPagerizeを軽量化するアイデア - 0xFF
    teruwyi
    teruwyi 2009/10/22
  • 毎秒100回JavaScriptが実行ってのがどの程度なのか - os0x.blog

    非ネットで聞いた話なども含め、ここまでやっても信じない人もいっぱいいるみたいで、そこまで疑う人のためにとりあえずパッチは出しておいたのだが、みんな「怪しいよね」って陰で言うだけで、誰も追試はしてくれなかったみたいだ。他人の書いた、しかもCPU使用率なんて割とどうでもいい系のエントリなんてわざわざ検証する人はそりゃいないだろうとは思うけど、気分が悪いのも確かだ。どうせ誰も試さないなら、パッチ自体は次のネタにとっときゃよかったなぁ…。 http://d.hatena.ne.jp/tkng/20091003/1254578195 では折角なので、検証を。Firefox前提なら、Firebugのプロファイル機能で一発なので、検証用マシン*1で以下のスクリプト実行。 // ==UserScript== // @name google stats // @namespace http://ss-o.n

    毎秒100回JavaScriptが実行ってのがどの程度なのか - os0x.blog
    teruwyi
    teruwyi 2009/10/05
  • JavaScriptの勉強会資料を公開 - os0x.blog

    私が講師役をしている社内向けJavaScript勉強会の資料をまとめて公開しました。 実践JavaScript - 株式会社ALBERT 社内勉強会資料 1回目を書いてからだいぶ間が空いてしまいましたが、その分6回分をまとめて、インデックスや見た目等々を整理してあります。 コードのハイライトには google-code-prettify - syntax highlighting of code snippets in a web page - Google Project Hosting を使用してみたのですが、すごく重かったので出力結果を静的に使っています。 オススメ回は実践JavaScript - JavaScript特有の問題・クロスブラウザなど - 株式会社ALBERT 勉強会資料でしょうか。特にクロスブラウザなDOMサイズ取得は自分でも良く参照してます。 間違いなどありましたら

    JavaScriptの勉強会資料を公開 - os0x.blog
    teruwyi
    teruwyi 2009/10/03
  • Googleのトップページを開くと毎秒100回実行されるスクリプトを止めるユーザースクリプト - os0x.blog

    Googleのトップページを開くと毎秒100回JavaScriptが実行されるよ - 射撃しつつ前転をみて、ちょっとソース読んでみたらホントにそんな実装になっていた。んじゃ、止めちゃいますかってことで、サジェスト自体はそのまま機能させつつ、IMEでの確定前の入力には反応しないという実装に無理やり変えるスクリプトを書きました。一応動作を確認したのはFirefox3.5(Greasemokey 0.8)、Opera10、Google Chrome Dev(4.0.213.1)です。GreaseKitは実行タイミングの問題で怪しいかも。 404 Not Found – Userscripts.org ちなみに、なんでGoogleはポーリングをしているかっていうと、IMEが確定する前の入力途中のキーワードを捕まえるためのようです。そこまでする必要ないよって人も多そうですよね。そういう人向けのスクリ

    Googleのトップページを開くと毎秒100回実行されるスクリプトを止めるユーザースクリプト - os0x.blog
    teruwyi
    teruwyi 2009/10/01
  • IEをChromeにするGoogle Chrome Frameがすごい(けど実用的なレベルではないよ) - os0x.blog

    Googleから、Google Chrome FrameというIE用プラグインが開発者向けにリリースされました。 FirefoxのAdd-onで、Firefoxの中にIEを表示するIE TabというAdd-onがありますが、Google Chrome Frameの場合はIEの中にChromeを表示します。 今のところ、Chromeで表示させる方法は3つあります。 URLにcf:というプリフィックスをつける(手軽だけど、その時限り) HTMLのメタタグで下記の記述をする(サイト側の指定) <meta http-equiv="X-UA-Compatible" content="chrome=1"> レジストリでURLを指定する Page not found - The Chromium Projectsに詳細がありますが、ここでの紹介は控えます。 この通り、Google Chromeのdev版

    IEをChromeにするGoogle Chrome Frameがすごい(けど実用的なレベルではないよ) - os0x.blog
    teruwyi
    teruwyi 2009/09/24
  • AutoPagerizeで継ぎ足された部分に自分のスクリプトを適用する方法あれこれ - os0x.blog

    以前からある手法から順番に見ていきます。 ページの高さの監視 setIntervalでページの高さを監視して、増えていたらAutoPagerizeが動いたとみなして処理を行う var THRESHOLD = 300; var _height = window.innerHeight; setInterval(function(){ if (window.innerHeight - _height > THRESHOLD) { // 処理 } _height = window.innerHeight; }, 300); メリット AutoPagerizeだけでなく、はてなダイアリー・ブックマーク、Twitterなどでのサイト側でのページの継ぎ足しにも対応できる デメリット THRESHOLDをいくつにするかなど、一概に決められない。タイマーをたくさん回すと重くなる。Floatしている要素を継

    AutoPagerizeで継ぎ足された部分に自分のスクリプトを適用する方法あれこれ - os0x.blog
    teruwyi
    teruwyi 2009/08/31
  • Chrome Extensionsの作り方 2009/06/25版 - os0x.blog

    続きは、特集:先取り! Google Chrome Extensions|gihyo.jp … 技術評論社 と、 連載:続・先取り! Google Chrome Extensions|gihyo.jp … 技術評論社をどうぞ。 用意するもの Google Chrome 3.0.190.1以降(dev版か、latest Chromium snapshotがオススメ。) 最低限必要なもの manifest.json JSON(not JavaScriptなので、値を'ではなく"で囲まないといけないなど、割と厳格なので注意)で書く拡張の定義ファイルです。 一応必須といえるのはnameとkeyの2つですが、とりあえずはnameさえあればOK。keyはパッケージするときに自動で振られるので自分で書く必要はありません。 { "content_scripts": [ { "js": [ "all.js"

    Chrome Extensionsの作り方 2009/06/25版 - os0x.blog
    teruwyi
    teruwyi 2009/08/05
  • FirefoxとOpera対応のUser Scriptを書くときのunsafeWindow - os0x.blog

    煤 - Note : 各ユーザスクリプトツールの window、unsafeWindowの件。 今までは、 var w = typeof unsafeWindow != "undefined" ? unsafeWindow : window; こう書いてた。typeofや"undefined"が嫌な感じ。 でも、 var w = this.unsafeWindow || window; これでいけるみたい。 もちろん、thisが変わっている場合は使えない。 無名関数を使って、 (function(unsafeWindow){ // alert(unsafeWindow) })(this.unsafeWindow || window); こうするとスマートかも。 SafariやIE(fub)は確認してない。(が、問題ないと思う) [追記] miya2000さんのブクマコメより、 window

    FirefoxとOpera対応のUser Scriptを書くときのunsafeWindow - os0x.blog
    teruwyi
    teruwyi 2009/07/26
  • LDRですべての外部リンクをバックグラウンドタブで開くUserScripts - os0x.blog

    Greasemonkeyでも動くようにしましたが、一応Google Chrome用です。 LDR open in background tab for Greasemonkey Greasemonkeyでピンの数が減らないバグを修正 Operaで「ポップアップをバックグラウンドで開く」に設定した場合と同じ動作になっているはずです。 仕組みとしては、nativeのwindow.openを上書きして、a要素を作ってミドルクリックのイベントを投げる方式です。将来的に動かなくなる可能性が高い、グレーなテクニックです。 window.open = function(url,name){ var a = document.createElement('a'); a.href = url; if (name) a.target = name; var event = document.createEve

    LDRですべての外部リンクをバックグラウンドタブで開くUserScripts - os0x.blog
    teruwyi
    teruwyi 2009/06/01
  • Google Chrome 2.0のUserScriptsはGreasemonkey互換のようで、そうではない - os0x.blog

    嵌る人がいそうなので、先に書いておきます。 User Scriptsを書いてみると GM_系のAPIが一通り定義されていて、一見Greasemonkeyと互換性がありそうに見えますが実はほとんど機能していません。 実装は http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/resources/greasemonkey_api.js?view=log にあるんですが、例えば GM_[gs]etValueはlocalStorageを使っていて、(これはChrome 3.0 で実装される予定、つまり未実装なので)使うとエラーになります。 そのほかも、中身は throw new Error("not implemented."); となっていて、使うとエラーをぶん投げてきます(typeofとかでチェックしても使えるかわから

    Google Chrome 2.0のUserScriptsはGreasemonkey互換のようで、そうではない - os0x.blog
    teruwyi
    teruwyi 2009/05/24
  • word highlight ver1.0.6 - os0x.blog

    Googleの検索結果からキーワードハイライトするGreasemonkey Script - 0xFFの1.0.6をリリースしました。 キーバインドを変更しやすいように、Scriptの先頭近くに持ってきました。 // keybinds var KEY_NEXT = 'n'; var KEY_PREV = 'N'; var KEY_SEARCH = 'C-/'; デフォルトでは新規タブで開かないように変更しました。(以前、キーワードの保存のために別タブで開くように変更したのですが、その必要性がないとわかりました。) 新規タブで開きたい場合、Googleの表示設定で、「検索結果を新しいウィンドウで開く」にチェックする方法をお薦めします。 Google Chrome 2.0対応*1 word highlight for Greasemonkey *1:Chrome2のキー操作周りに非常に苦労しま

    word highlight ver1.0.6 - os0x.blog
    teruwyi
    teruwyi 2009/05/23
  • はてなダイアリーを軽くする設定 - os0x.blog

    『「このエントリーのブックマークコメント」アイコンを表示する』をOFFにする*1 ←このアイコンのこと。 効果のほどは下記の画像でご納得いただけると思います。 ON OFF なんでこんなことに 以前どこかで読んだんですが、はてなスター以前はどのJavaScriptライブラリを使うかといったルールがなかったそうです。 実際、ブックマークコメント表示機能が実装されたのは結構古く、当時Prototype.jsの対抗馬として注目されていたMochiKitを使って実装されています。上の画像の差分はすべてMochiKit関連のものです。 今となっては Ten.js への統合が進んでいるので、早めにこの機能も実装しなおしてほしいです。 きっかけ:DragonflyのNetworkタブがちょっと実用的になってる - もし高校野球の女子マネージャーがOpera Browserを使ったら - チーム俺等 ちな

    はてなダイアリーを軽くする設定 - os0x.blog
    teruwyi
    teruwyi 2009/05/11
  • Twitter用AutoPagerize - os0x.blog

    2009/04/30あたりのTwitterのリニューアルでAutoPagerizeがうまく動作しなくなりました。(Pager部分がJavaScriptを動的に生成するようになったため、SITEINFOだけでは対応できなくなってしまいました) 2009/05/07あたりから、oAutoPagerizeならデフォルトのままで動作するようになったみたいです。 FirefoxというかGreasemonkeyでは、 AutoPagerizeTwitterFilter - SWDYHがお勧めです。 JavaScriptを有効にしていないとページを遡ることもできなくなったので、その点に関して修正が入ればAutoPagerizeが再び動作するようになることも期待できるのですが、残念ながらそういった様子はないみたいです。 というわけで、Twitter用のAutoPagerizeを書きました*1。 twitt

    Twitter用AutoPagerize - os0x.blog