タグ

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

  • 配列を走査するときに、途中でループを抜けるにはsomeが使える - os0x.blog

    LDRize.Opera用に、some相当の関数を書いていて気がついたことをメモメモ。 配列を走査する際に、目的の値を見つけたらそこでループを抜けたい場合というのは良くあるケースだと思います。普通にfor文などで回す場合は、breakを使うのが一般的です。ただ、forEachではbreakは使えません。 [1,2,3,4,5].forEach(function(v,i){ console.log(v,i); if ( v > 2) ;//break? }); /* 1 0 2 1 3 2 ←ここで止めたい 4 3 5 4 */ そういったときはArray#some(Array#everyでも可)が使えます。 [1,2,3,4,5].some(function(v,i){ console.log(v,i); return v > 2; }); /* 1 0 2 1 3 2 */ このとき、当

    配列を走査するときに、途中でループを抜けるにはsomeが使える - os0x.blog
  • git初心者向けのTipsなど - os0x.blog

    gitの基的なcommandしか使ってないって人向けのtips集です。 エイリアスの設定 $ git config --global alias.co "checkout" とすると、 ~/.gitconfig に [alias] co = checkout のように追記されます。 このようにgit configを叩いてもいいですし、~/.gitconfigを直接編集しても大丈夫です。 とりあえず、 [alias] co = checkout # checkout長い… st = status -sb # シンプルなstatus pr = pull --rebase # pull するときにmergeコミットを作らない fo = fetch origin ro = rebase origin # branchでfoしてroすればmasterにrebaseできる rc = rebase -

    git初心者向けのTipsなど - os0x.blog
  • NinjaKit - os0x.blog

    NinjaKit*1というChrome/Safari拡張を公開しました。 Chrome:Chrome Web Store - NinjaKit Safari:NinjaKit for Safari Source: os0x/NinjaKit · GitHub これはFirefoxのアドオンであるGreasemonkey相当の機能を実装することを目指しています。 今のところ、 GM_xmlhttpRequest GM_addStyle GM_getValue GM_setValue GM_deleteValue(new in ver 0.7) GM_listValues(new in ver 0.7) GM_log GM_openInTab GM_registerMenuCommand(Safari版は未サポート) Metadata @include @exclude @require @b

    NinjaKit - os0x.blog
  • GreasemonkeyをBookmarklet的に実行してみる - 0x集積蔵

    Firefox3 の Greasemonkey, unsafeWindow 内の prototype がとれない - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtechの件。 そろそろGreasemonkeyをFirefox3対応にしていきたいところだけど、この問題がすごく厄介。 例えば、はてなスターの星をプロフィールアイコンに置き換えるGreasemonkey Scriptメンテナンス更新 - 0xFFはFirefox2では動くけどFirefox3では動かない。 とりあえず、無理やり動かしてみる。 // ==UserScript== // @name replace star by profile icon // @namespace http://ss-o.net/ // @include http://*.hatena.ne.jp/* // @checkur

    GreasemonkeyをBookmarklet的に実行してみる - 0x集積蔵
  • WEB+DB PRESS Vol.65にCoffeeScriptの記事を書きました - os0x.blog

    WEB+DB PRESS Vol.65|gihyo.jp … 技術評論社 今回は「CoffeeScriptから学ぶJavaScriptプラクティス」と題して、CoffeeScriptが生成するJavaScriptについて、どうしてこういったJavaScriptになるのかという点を中心に解説しました。 CoffeeScriptには様々なJavaScriptの(バッド)ノウハウが詰め込まれています。生成されるJavaScriptを読んでいると、「やっぱりそうなるよね」と思わせることが多くてニヤニヤしてしまいます。 そもそも、CoffeeScriptは生成されるJavaScriptの読みやすさにかなり気を使っている点が、CoffeeScriptを気に入っている一番の理由です。(その点、Dartは…) 今回も結構苦労しましたが、なかなか面白い記事に仕上がったと思うので、手にとって頂ければ幸いです。

    WEB+DB PRESS Vol.65にCoffeeScriptの記事を書きました - os0x.blog
  • WEB+DB PRESS Vol.63からJavaScriptの連載始めました - os0x.blog

    WEB+DB PRESS Vol.63|gihyo.jp … 技術評論社 id:uupaaさんの後任な感じで、JavaScript周りのホットな話題・最新情報を中心に、書いていこうと思っています。 初回は例によってデバッグ周りの話を書きました。といってもまだブログでは触れていないスマートフォンでのデバッグ方法や、 prototype.jsからjQueryに移行するたったひとつの冴えたやりかた - 0xFFでちょっとだけ触れたonerrorの具体的な使い方などを解説しています。よろしければ手にとってみてください。って発売は24日でした…紛らわしい書き方してしまってごめんなさい。。 WEB+DB PRESS Vol.63 作者: 竹迫良範,和田卓人,じゅんいち☆かとう,太田昌吾,小野修司,ミック,嶋田裕二,個々一番,みやけん,清水亮,おにたま,中島聡,角田直行,はまちや2,上谷隆宏,青木俊介,

    WEB+DB PRESS Vol.63からJavaScriptの連載始めました - os0x.blog
  • 君は3つのリロードを知っているか? - os0x.blog

    はい、今さら聞けないウェブ開発者の基礎知識のお時間です。 ブラウザには3つの読み込みモードがあることはご存知ですか? 2つくらいはわかるけど、3つ目が出てこないって方は少なくないかもしれません。 リロード 一番オーソドックスなのがブラウザのリロードボタンを押したときの挙動ですね。普通ですね。 スーパーリロード ブラウザによっては、スーパーリロードという機能を備えています。IEの場合Ctrl+F5(Ctrl+更新ボタン)、Firefoxの場合Ctrl+F5(Shift+更新ボタン)、Chromeの場合Shift+更新ボタン(Ctrl+Shift+R)などでスーパーリロードを呼び出すことができます。スーパーですね。 ページ遷移(リフレッシュ) 3つ目はちょっと良い名前が思いつかないのですが、リロードではなく、通常の画面遷移での読み込みのことです。アドレスバーにフォーカスしてenterするといっ

    君は3つのリロードを知っているか? - os0x.blog
  • 「JavaScriptでconcatはもう使うべきではないのかも」なんてことはない - os0x.blog

    JavaScriptでconcatはもう使うべきではないのかもしれない (Kanasansoft Web Lab.)に早まるなとツッコミを入れる。 まず、当たり前ですがpushを使うべきところでconcatを使う理由はありません。配列に要素を追加したいならpushを使うのは当然ですね。 あえてconcatを使うのは配列を複製したい場合です。*1 で、複製する場合のベンチをとってみました。 http://ss-o.net/test/array_clone.html Firefoxは配列の長さが大きくなってくるとpushのほうが高速になる傾向が見られるものの、基的にconcatのほうが安定して高速です。なにより、配列を複製していることが明確なconcatを使わない理由はありません。 ちなみにIE8はconcatが最適化されているらしく、上記ベンチではっきりとした差が出ます。シンプルに書いてお

    「JavaScriptでconcatはもう使うべきではないのかも」なんてことはない - os0x.blog
  • Google ChromeのJavaScriptデバッガの進化がすごい - os0x.blog

    Chrome版のFirebugことGoogle Chrome Developer Toolsですが、以前gihyoで解説したときよりさらに便利になっているので、少し紹介します(元はWebKitなので、そのうち(近いうちに)Safariでもそれなりに使えるようになるはずです)。 圧縮されたコードの整形 まず、目立つところからいきましょう。ちょうど先日更新されたChromeのdev版(12.0.742.0)に搭載されたばかりの機能で、minifyされているJavaScriptコードを読みやすいように整形して表示してくれるというものです(IE9の開発者ツールにも実装されている機能です)。 例えば、Google Analyticsのコードは圧縮されていて普通は読めません。 しかし、Chromeのデベロッパーツールなら、 このように整形してくれます。 やり方は簡単で、デベロッパーツールのScript

    Google ChromeのJavaScriptデバッガの進化がすごい - os0x.blog
  • はてなスターのユーザー名をCSSだけで強引に表示 - os0x.blog

    なんとなくブログの見た目を少しいじった(テスト前になると部屋を片付けたくなるアレ)。 シングルカラムだと横に間延びするのは前から気になってたので、max-widthを1000pxで設定して、あとフッターをシンプルに。 で、はてなスターってデフォルトだとマウスを乗せるまで誰のだかわからないのが気になってて、自分ではGreasemokey Scriptでユーザーのアイコンに置き換えてるんですが(hatena big profile star)、そういうことをしてない多くの人はが並んでいるだけで、わかりにくいなーと。 ってことで、装飾してやろうと思ったけど、CSSだけだとやはり厳しい。まあ、IEを考えなければ(IEだと普通の表示のまま)ってことで、afterとか使って強引にIDを表示してみた。 CSSはこんな感じ(ネガティブなtext-indentとoverflow:hiddenというよくあるバ

  • stock.xchngのSITEINFO - os0x.blog

    oAutoPagerizeのSITEINFO追加 - 0xFFで書いたstock.xchngのSITEINFOはoAutoPagerizeでは問題ないんだけど、Firefoxではbase要素のせいで3ページ目でエラーが。。 というのも、nextを取得する際に、その要素はページには追加されていないので、base指定による影響を受けない。 そのため、http://www.sxc.hu/category/1091/2の最後の/を基点として、http://www.sxc.hu/category/1091/category/1091/3というURLを取得してしまう。 残念ながら、こういうのはXPathをどうこうしても解決できない。 というわけで、AutoPagerizeをhackしてgetNextURLを書き換えてしまうGreasemonkeyを書いてみた。 // ==UserScript== //

    stock.xchngのSITEINFO - os0x.blog
    saitamanodoruji
    saitamanodoruji 2011/01/01
    base 要素
  • valueOfとtoStringとToPrimitive - os0x.blog

    valueOfとtoStringメソッドの水深43cmぐらいの深さの話 - 三等兵のもう少し深いお話。コメント欄に書こうかとも思ったけど、最近ブログ書いてない気がしたのでちゃんと記事にしてみる。 まずは問題です。次のコードを実行したときにtrueかfalseのどちらがalertされるかそれぞれ当ててみてください。 var date = new Date(); var date_string = date.toString(); var date_value = date.valueOf(); alert(date == date_string); alert(date == date_value); true, true false, false true, false false, true (難しい問題ではないと思いますが、)この問題の答えは最後に。 続いて、もっとシンプルな問題です。

    valueOfとtoStringとToPrimitive - os0x.blog
  • script, styleタグ内のコードの書き方 - os0x.blog

    # 最初にちょっと余談を。Chromium-Extensions-JapanのほうにChrome6 Betaの変更点を書きました。どうぞよろしく。 さて、scriptタグ内をHTMLコメントで括ってからJavaScript書くのって意味あるの? - Togetterの件に関して、関連ネタをいくつか書いておきます。。 まず前提として、scriptタグの中に直にコードを書くというのはできる限り避けたほうが良いです。とはいえ、ちょっとしたコードをいちいち外部ファイルにしていると読み込みのコストも馬鹿にならないので、インラインで書く事もよくあります。なので、以下は主に数行程度のコードをインラインに書く場合の話です。 scriptタグの中に直にコードを書くときはscriptタグに非対応なブラウザのために<!--で始め*1 // -->で閉じるというノウハウは今でも結構使われているみたいです。 しかし

  • 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
  • HTML5やECMAScript5の話 - os0x.blog

    HTML5周辺やECMAScript5の話をgihyo.jpでいくつか書かせて頂きました(上2つは3週、2週前の記事ですが…)。 新春特別企画:2010年のJavaScript:「これまで」と「これから」|gihyo.jp … 技術評論社 続・先取り! Google Chrome Extensions:第7回 Google Chrome拡張とHTML5 #1|gihyo.jp … 技術評論社 続・先取り! Google Chrome Extensions:第8回 Google Chrome拡張とHTML5 #2|gihyo.jp … 技術評論社 特に「2010年のJavaScript」は「現状」をまとめるのにこれ以上ないチャンスだと思い(一年後に参照されたときに、一年前の情報であることが誰の目にも明らかであるというところがポイント)、現時点でのHTML5周辺のサポート状況という息の短い情報

    HTML5やECMAScript5の話 - os0x.blog
  • Chromium-Extensions-Japan開始と、Google API Expertのお知らせ - os0x.blog

    既に、いくつかの記事*1で報じられていますが、Google Chrome拡張のGoogle準公式コミュニティChromium-Extensions-Japanができました。 そして、私がそのコミュニティの管理人を担当させて頂くことになり、同時にGoogle API Expertになりました。 私にそんな大役が務まるのか不安はありますが、同じくGoogle準公式コミュニティである html5j.org | Google グループ の白石さん、羽田野さんという大先輩にもサポートを頂きつつ活動していく予定です。このあたり、Google Chrome拡張はHTML5とその関連技術によって成り立っていますし、HTML5はブラウザの対応状況の問題で、その最新技術のフィールドとしてGoogle Chrome拡張を求めているという、実利的な関係があります。 拡張が使える Google Chrome (BE

    Chromium-Extensions-Japan開始と、Google API Expertのお知らせ - os0x.blog
  • MinibufferベースのTwitter Post&Favorites Command Greasemonkey - os0x.blog

    MinibufferにTwitterへの投稿コマンドを追加するGreasemonkeyを書きました。 とりあえず動いているので公開してみます。Greasemonkey専用だし、あとでuserscripts.orgに上げるかも。 POST用 http://ss-o.net/userjs/twitcommandminibuffer.user.js http://coderepos.org/share/browser/lang/javascript/userscripts/minibuffer.twitter.update.command.user.js? 動作条件 Minibufferが動くサイト 追加されるコマンド Twitter::post 追加されるショートカットキー T T //投稿フォームを表示 と T R //ピン、もしくはカレントの@usernameやリンクなどをフォームに補完し

    MinibufferベースのTwitter Post&Favorites Command Greasemonkey - os0x.blog
  • 株式会社ALBERTを退社します - os0x.blog

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

    株式会社ALBERTを退社します - os0x.blog
  • 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
  • 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