タグ

ブックマーク / amachang.hatenablog.com (40)

  • Tabnagging の自衛用 User JavaScript を書いてみた - IT戦記

    Tabnagging というフィッシング手法があるそうです。 詳しい内容は、以下の記事をごらんください。 ブラウザでたくさんのタブを開いてネットサーフィン! あなたが知らないうちに非アクティブなタブの内容が偽のGmailページに書き換えられた!(タブのアイコンも変わる!) ← 別にGmailじゃなくてもFacebookでもmixiでも。 あなたがそのタブに戻ってくるとGmail(もしくは他のサービス)のログイン画面が!(URLはおかしいけれどあなたは気づかない!) ID&PWDを入力してしまってあなた終了のお知らせ…orz ブラウザのタブを使ったフィッシングの最新手法『Tabnagging』が巧妙すぎる件… | IDEA*IDEA これは…!! というわけで、とりあえずタイトルを「ホスト名を省いたドメイン」に書き換える User JavaScript を書いてみた。 これをインストールする

    Tabnagging の自衛用 User JavaScript を書いてみた - IT戦記
    kistame228
    kistame228 2010/05/26
    おそろしや
  • Jython がおもしろい - IT戦記

    仕事で Jython を使う機会があって ほぼ、初めて Jython を触ったんですけど、めっちゃおもしろいJava のクラスが何も考えずに使えちゃう。 たとえば、 HTML (not XHTML) をパースして XPath で取得するコードとかを nekohtml と xalan で以下のように書ける from java.io import FileInputStream from org.xml.sax import InputSource from org.cyberneko.html.parsers import DOMParser from org.apache.xpath import XPathAPI # input source = InputSource(FileInputStream('test.html')) source.setEncoding('UTF-8')

    Jython がおもしろい - IT戦記
  • 文字の情報を調べるためのブックマークレット - IT戦記

    ウェブで見かけた文字が、やたら気になることがあるので 作ってみました javascript:location.href = 'http://www.fileformat.info/info/unicode/char/' + (function(r){ var n = r.startContainer; var p = r.startOffset; return (n.nodeType == 3) ? n.nodeValue.charAt(p) : n.childNodes[p].textContent.charAt(0); })(getSelection().getRangeAt(0)).charCodeAt(0).toString(16) + '/index.htm'; void(0); 使い方は簡単 気になる文字を選択してブックマークレットを実行するだけ! 対応ブラウザ HTML5 t

    文字の情報を調べるためのブックマークレット - IT戦記
  • 「ツイート」を「ツイート(笑)」に置換するブックマークレット - IT戦記

    【急募】twitterトップページのツイートをツイート(笑)に置換するグリモン notfunc on Twitter: "【急募】twitterトップページのツイートをツイート(笑)に置換するグリモン" というわけで書いてみた javascript:var r=document.evaluate("//text()[contains(., 'ツイート')]", document, null, 7, null);for(var i=0;i<r.snapshotLength;i++)r.snapshotItem(i).nodeValue=r.snapshotItem(i).nodeValue.replace(/ツイート/g, 'ツイート(笑)');void(0); Firefox 系と WebKit 系と Opera 系で動きます。たぶん。 ロケーションバー(URL が書いてあるところ)に貼付

    「ツイート」を「ツイート(笑)」に置換するブックマークレット - IT戦記
  • IT アンカンファレンスをやってみたい! - IT戦記

    アンカンファレンスをやろう! みなさんは、アンカンファレンスというイベントのスタイルをご存知でしょうか。 先月、 id:AKIMOTO と「北陸で IT 系のイベントをやりたいね。」という話になり、「それなら、アンカンファレンスがいいよ」という話になりました。 アンカンファレンス?アンカンファレンスってなんでしょうか。 僕も知らなかったのですが、調べてみたところ、とっても面白そうでした。 なので、是非北陸で「IT 系でアンカンファレンス的なイベント」をやってみようということになったのです。 ↑突然、語りだす id:AKIMOTO のイメージ写真 じゃあ、アンカンファレンスって実際どんな感じのイベントになるの? では、シミュレーションもかねてイベントにいったつもりで書いてみます。 実際にイベントに行ったつもりで読んでくださいね>< レッツ、シミュレーション!! 会場に到着 まず、会場に到着す

    IT アンカンファレンスをやってみたい! - IT戦記
  • Macbook (with Snow Leopard) 買った後にやったことまとめ - IT戦記

    購入編 会社にて amachang「秋だけに akky ですね。Macbook が欲しくなってきました」 akky(苦笑) amachang「新しい Macbook が欲しくなってきました」 akky(苦笑) amachang「買って来まーす」 akky(苦笑) Apple Store 銀座にて amachang「Macbook Pro の 13 inch のやつください」 店員「はい。 2 種類ありますが」 amachang「高いほうのやつください」 店員「キーボードは JIS と US どちらにいたすますか」 amachang「US ください」 店員「こちらでよろしいですか?」 amachang「JIS よりキー少ないのですね」 店員「はい。英数キー、かなキーなどがありません」 amachang「えっ」 店員「えっ」 amachang「JIS ください」 店員「かしこまりました」 am

    Macbook (with Snow Leopard) 買った後にやったことまとめ - IT戦記
  • Y コンビネータって何? - IT戦記

    このエントリの 親友へ。ブログを書こう。 - IT戦記 y がブログを始めたみたいなので、読んでみた。 で、最新のエントリを読んでみたら、 Y コンビネータというものについて書いてあったので、 Y Combinatorが凄すぎる! - yuji1982の日記 Y コンビネータって何ってところから、自分でもいろいろ考えてみた。 結局なんなのかさっぱり分からなかったんですが、自分が考えたことをまとめておく まず、フィボナッチ数を求める fib を定義する var fib = function(n){ return (n <= 2) ? 1 : (arguments.callee(n-1) + arguments.callee(n-2)); }; fib(10); おお! JS すげー!名前は n しか使ってねーよ! めでたし、めでたし。。。。じゃなくて! JS が素晴らし過ぎて話が終わってしま

    Y コンビネータって何? - IT戦記
  • live な NodeList の作り方 - IT戦記

    live な NodeList 概要 NodeList の IDL interface NodeList { Node item(in unsigned long index); readonly attribute unsigned long length; }; Interface NodeList - Document Object Model Core 「live な」NodeList とは DOM の変更が動的に反映される NodeList のこと 現状の leve な NodeList のユースケース getElementsByTagName getElementsByTagNameNS getElementsByName getElementsByClassName childNodes children, all, tags (IE legacy) 重要な事 現状の liv

    live な NodeList の作り方 - IT戦記
  • for 文と無名関数のイディオム - IT戦記

    id:cho45 がチョロっと書いたコードが話題になっている 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech このような書き方は、自分もたまにする。 というわけで、この書き方をする利点を以下の順に解説して見る。 単純な for 文の問題点 with 文を使った解決方法と、その微妙な問題点 無名関数を使った解決方法 単純な for 文の問題点 まずは、以下の HTML に対して <ul> <li>hoge</li> <li>fuga</li> <li>piyo</li> </ul> 以下の JavaScript を実行して var list = document.querySelectorAll('ul > li'); for (var i = 0, len = list.length; i < len; i++) { var node = list[i]; v

    for 文と無名関数のイディオム - IT戦記
  • XPath に文字列を埋め込むときの注意 - IT戦記

    よく、以下のように XPath に文字列を埋め込む事があります document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); まあ、僕もよくこんなコード書くんですけど。 でも、これって text が外部から来るものだったら、意図通りの動作をしないんですよね たとえば、以下のような例です。 var text = '"] | /hoge/fuga/piyo | .["'; document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); というわけで 任意の文字列を XPath の式に変換する JavaScript を書いてみた 以下で試せます http://amachang.sakura.ne.jp/misc/xpath_es

    XPath に文字列を埋め込むときの注意 - IT戦記
  • HTML5 のセクションアウトラインを取得する JavaScript - IT戦記

    id:vantguarde さんが HTML5 のセクション 3 箇条を書かれて紹介しています スタイルシートやスクリプトの都合には使わないこと。それらにはdivを使うこと。 article, aside, navが適切な場合には、そちらを使こと。 セクションの先頭に見出しが自然に存在してない場合には使わないこと。 sectionの使い方とセクション三箇条 - vantguarde - web:g すばらしいですね! 便乗して セクションのアウトラインを求める JavaScript(YAPC 前夜祭で紹介したやつ)を公開します http://amachang.sakura.ne.jp/misc/outliner.js この JavaScript は 以下のアルゴリズムをそのまま JavaScript で実装したものになっています 4.4.11.1 Creating an outline

    HTML5 のセクションアウトラインを取得する JavaScript - IT戦記
  • セキュリティ&プログラミングキャンプ 2009 を終えて - IT戦記

    はじめに セキュリティ&プログラミングキャンプ 2009 参加してくださった学生の皆様、講師やチューターの皆様、また、ご協力いただいた事務局の皆様、当にお疲れさまでした! そして、熱い思い出をありがとうございました!! 今年も、素晴らしいキャンプにすることができたなあと思っています。 今年も様々な出会いがありました 今年は、参加者同士が横に繋がれるように様々な工夫をしました。 ご飯をべながらのコミュニケーション(多少無言になっても気まずくないし、話も弾み易い) 皆が、名刺を持っているというルール(パッと参加者と会ったときとかに、話かけるきっかけを作り易かった) 早い段階での交流(初日のうちに仲良くなっちゃったほうが、後からさらに友情を深め易い) この結果、去年よりも広く参加者同士の繋がりが広がったのではないかなー。と思っています。 キャンプでも言ったのですが、キャンプで出来た仲間は 同

    セキュリティ&プログラミングキャンプ 2009 を終えて - IT戦記
  • 新はてなブックマーク件数取得 API を使って自分のページに件数を埋め込む最も簡単な方法 - IT戦記

    はてなブックマークから新しい件数取得 API が提供されているようです! (開発者さま向け)はてなブックマーク件数取得APIに新しいAPIを追加 - はてなブックマーク日記 - 機能変更、お知らせなど この API のいいところは JSONP に対応しているところでしょうね! すばらしい! というわけで、 HTML だけで、件数を埋め込む例を書いてみたよ! やり方は簡単 callback パラメータに document.write を指定するだけ! <script src="http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fwww.example.com%2F&callback=document.write"></script>件のブックマークがあります。 あとは、適当にリンクとか張って <a href="http://b.ha

    新はてなブックマーク件数取得 API を使って自分のページに件数を埋め込む最も簡単な方法 - IT戦記
  • IT戦記

    みなさんお元気ですか?僕は少しだけ元気ではありません。じんわりとした夏の暑さを感じながらブログを書いています。 実は、数ヶ月前にスマートニュースという会社を退職しました。 しばらく無職 しばらくは就職せずに無職でいようかなと思っています。 すぐに再就職した方がいいんだろうな〜。とは思うのですが少し疲れたかも。 いい時代になったものだ 最近は AI の進化も素晴らしく、昔ソフトウェアで出来なかったことがどんどんできるようになってるなって感じます。 Rust とか、ちょうど欲しかった感じのプログラミング言語もあるし、 ChatGPT は完璧ではないけど何か新しいことを始めるときに素晴らしい洞察を与えてくれる。 時代は確実に良くなってる。そんな時代に「自分は働いていないくていいのか」と少し不安になるけれど、自由気ままにコードを書く、そんな時間が今あってのもいいのかなって思ってます。 オフトピック

    IT戦記
    kistame228
    kistame228 2009/08/13
    amachangのプロフィール画像、ずーっとクシ持ってる姿だと思ってた。携帯でした。
  • PHP で引数をそのまま返す関数を作っておくと便利 - IT戦記

    PHP では以下のように new してすぐメソッドを呼べない <?php new DateTime()->getOffset(); なので、引数をそのまま返す関数を作ってやると <?php function expr($a) { return $a; } expr(new DateTime())->getOffset(); // OK! 便利だなー おまけ 配列アクセス用のも作っておくと便利 <?php function expr($a) { return $a; } function idx($array, $i) { return $array[$i]; } echo idx(idx(expr(new DateTimeZone('Asia/Tokyo'))->getTransitions(), 0), 'abbr') . "\n"; おまけ2 無名関数をそのまま呼ぶときにも使える。 <

    PHP で引数をそのまま返す関数を作っておくと便利 - IT戦記
  • 本を検索して yonda4.com に呟きやすくするブックマークレット作りました - IT戦記

    はじめに Twitter 経由で、読んだを紹介しあえるサイト yonda4.com がリリースされましたね! twitter読書記録。読んだ4! このサイトは @yonda4 にの名前をつぶやくだけで、の紹介ページが生成されるという「格書籍紹介サイト」です! すごいですね!きゃっふきゃふですね! というわけで このサイトにを紹介しやすくするために、 twitter のページからを検索するブックマークレットを作ってみました。 javascript:(function(s){s.src="http://amachang.sakura.ne.jp/misc/amazon/search.js";document.body.appendChild(s)})(document.createElement('script')) twitter のホームに行って、このコードをブラウザのロケー

    本を検索して yonda4.com に呟きやすくするブックマークレット作りました - IT戦記
  • tmux 入れてみた - IT戦記

    以下を見て 時代はGNU screenからtmuxへ - Dマイナー志向 Ubuntu に tmux を入れてみた インストール方法 まず ncurses を入れる $ sudo apt-get install libncurses5-dev次に、最新版をダウンロード $ wget http://downloads.sourceforge.net/sourceforge/tmux/tmux-0.9.tar.gz?use_mirror=jaist次に、ビルド $ tar xvfz tmux-0.9.tar.gz $ cd tmux-0.9 $ ./configure $ make && sudo make install 設定ファイル 時代はGNU screenからtmuxへ - Dマイナー志向 に書かれている例をそのまま ~/.tmux.conf にコピペ。 起動 $ tmux とりあえず

    tmux 入れてみた - IT戦記
  • ICU の解放順序でハマった - IT戦記

    ちょっとメモ 以下のようなコードを書いて失敗した。 #include <boost/shared_ptr.hpp> #include <unicode/uclean.h> #include <unicode/ucnv.h> int main() { UErrorCode status = U_ZERO_ERROR; u_init(&status); // (snip) boost::shared_ptr<UConverter> ucnv(ucnv_open("Shift_JIS", &status), ucnv_close); // (snip) u_cleanup(); } u_cleanup より後に ucnv_close が呼ばれてしまうのが問題。 valgrind で検出 このコード問題があるのに、普通にエラーも何もでないので気が付かない。 valgrind を使ったら、 stil

    ICU の解放順序でハマった - IT戦記
    kistame228
    kistame228 2009/06/29
    c++のソースを読めるようにならないと
  • Google Wave 私的まとめ - IT戦記

    正直わからないことが多いです。突っ込み歓迎 以下、箇条書き Google Wave という言葉が曖昧に使われている Google Wave というサービス(これはオープンソースではない) プロトコルでもない Google Wave Provider に接続するためのアプリ メールでいうところの、メーラーのこと Google Wave Provider Google Wave Federation Protocol (XMPP Extension) のやりとりを実装したサーバー Wave Proxy と Wave Gateway を持つ Wave Gateway (配信用サーバー) Wave Proxy (受信用サーバー) Wave (Proxy|Gateway) とは別に何かしらの Frontend を持つ場合が多い(たとえば Comet みたいな) Google Wave Federat

    Google Wave 私的まとめ - IT戦記
  • はてなブックマークプラスに登録していないユーザーをエントリーページから抹消する JavaScript と Greasemonkey - IT戦記

    はじめに http://b.hatena.ne.jp/guide/plus がリリースされましたね! というわけで、「てなブックマークプラスに登録していない(正確には、 plus アイコンを出していない)ユーザーをエントリーページから抹消する JavaScript」を書いてみました!! これで、はてブプラス民に囲まれて幸せですね! やったね! ご自由にお使いください(Firefox or Safari で動くと思います) Ten.Selector.getElementsBySelector('ul#bookmarked_user > li').filter(function(e) { return !e.getElementsByClassName('plus_icon').length }).forEach(function(e) { e.style.display = 'none' }