HAKUHIN's home page
更新履歴
 
 


HAKUHIN's home page 過去ログ 2012年



■2012/12/30
 
PageExpand ver.1.0.7 をリリースしました。
 
■共通
 
・メニューに「掲示板の設定を編集」を追加しました。
 
・Shift キーを押しっぱなしで、ポップアップ系が動作しないよう追加しました。
 
・https://t.co/* (セキュア版)の短縮 URL 展開に対応しました。
 
・ハイパーリンク置換にキャッシュ設定を追加しました。(有効時、同一のURLに対してコールバック関数が呼ばれるのは一度)
 
・ログ速の変更に対応しました。
 
・あっとちゃんねるずの変更に対応しました。(プリセットを分離)
 
・soundcloud.com の変更に対応しました。(高さの取得が不可に)
 
・フェイスブックの画像アドレス取得を修正しました。
 
・「基本リファラを正規表現で置換」の仕様を変更しました。従来は円記号 "\" でしたが、ドル記号 "$" となります。(過去の設定は、すべて自動的に変換)
 
■2012/11/11
 
PageExpand ver.1.0.6 をリリースしました。
 
■共通
 
・「画像検索サイト」のプリセットに以下のサイトを追加しました。(yandex.ru)
 
・ハイパーリンク監視のリミッタが機能していない問題を修正しました。
 
■2012/11/09
 
PageExpand ver.1.0.5 をリリースしました。
 
■共通
 
・ウィキペディア内の、高解像度画像のポップアップに対応しました。
 
・「画像検索サイト」のプリセットに、以下のサイトを追加しました。
 
「*.yahoo.com」、「yahoo.cn」、「Ask.com」、「AOL 画像検索」、「goo 画像検索」、「百度」、「Baidu.jp」、「NAVER」、「naver.jp」、「livedoor 画像検索」、「OCN 画像検索」、「BIGLOBE 画像検索」
 
・「リアルタイム検索サイト」のプリセットに、以下のサイトを追加しました。
 
「goo 検索」
 
・「ポップアップを無効化(イメージ検索用)」のプリセットに、以下のサイトを追加しました。
 
「*.yahoo.com」、「aol.com」、「百度」、「NAVER」
 
・soundcloud.com のサウンドプレイヤー展開に対応しました。(Flash 版、HTML5 版)
 
・mixcloud.com のサウンドプレイヤー展開に対応しました。
 
・サウンド展開の挿入位置のコールバック関数の仕様を変更しました。
 
・エレメントの置換、テキストの置換、アンカーの置換設定が複数選択できるようになりました。
 
・テキスト置換のプリセットに「空白とタブを可視化」を追加しました。
 
・ustream のライブ動画展開が動作しない問題を修正しました。
 
・Youtube の動画展開をプライバシー強化モードに変更しました。(youtube-nocookie.com)
 
・Youtube と dailymotion のみセキュアページでも動画展開するように変更しました。
 
・ビデオの再生を開始した時点から、暗号化の警告が表示されるようになるので注意して下さい。
 
・ハイパーリンクの動的変更を検出した場合、展開系処理を再構築するよう修正しました。
 
・ハイパーリンク先を書き換える別の拡張機能と連動できるかもしれません。
 
■Greasemonkey 版
 
・@updateURL メタデータを追加しました。
 
■Opera 版
 
・コンテキストメニューを追加しました。この実装により Opera 12.02 以前にはインストールできません
 
■2012/10/25
 
AS 講座にArray クラスについてを追加しました。
 
JS 講座にArray クラスについてを追加しました。
 
■2012/10/22
 
PageExpand ver.1.0.4 をリリースしました。
 
Google Chrome の拡張機能の manifest_version 2 の仕様変更で、eval() 関数が使えなくなりました。
 
PageExpand の設定画面から JavaScript を書けるようにしていたので、オワタ?と思ってたのですが、コンテントスクリプト内では使える(?)ようなので一部仕様変更でいけそうです。
 
Google Chrome Extensions の API を覗いてみると、拡張機能の保存データが、同期機能で共有できるようになってますね。 容量の上限が、102400 バイトとなっています。
 
PageExpand では容量不足で実装を断念しましたが、将来容量が増えれば対応してみたいですね。
 
■共通
 
・LiveLeak.com の動画展開に対応しました。
 
・ニコニコ静画のサムネイル展開に対応しました。
 
・エレメントの置換定義に、「連続するBRタグを削除」のプリセットを追加しました。
 
・定義用 インポート/エクスポート機能を追加しました。
 
・旧「ハイパーリンクの置換定義」を「アンカーの置換定義」に変更しました。
 
・新「ハイパーリンクの置換定義」を追加しました。
 
・ハイパーリンクの置換は、デフォルトで展開系処理だけに作用するように変更しました。
 
・画像検索サイト結果が直接リンクでは無くなりました。(設定から従来の様に直接リンク化する事は可能)
 
・アンカーの置換定義に「直リンクに変更(ツイッター用)」のプリセットを追加しました。
 
・「ハイパーリンクの置換定義」に「直リンク(汎用)」のプリセットを追加しました。(instagr.am、flickr.com、lockerz.com、lockerz.com、twitpic.com、pic.twitter.com、facebook.com、tumblr.com、フォト蔵、ついっぷる、ニコニコ静画[要ログイン]、ピクシブ[要リファラ変更])
 
・ユーザーエージェント置換設定を、JavaScript 指定から、文字列指定に変更しました。
 
・リファラ置換設定を、JavaScript 指定から、正規表現による置換指定に変更しました。
 
・展開系の許可コールバックスクリプトの仕様を変更しました。
 
・掲示板拡張の許可スクリプトを、正規表現リストに変更しました。
 
・掲示板拡張に初期化スクリプトを追加しました。
 
・基本設定に、「コンソールにログを出力(デバッグ)」を追加しました。通信系の動作確認ができます。
 
・ハイパーリンク置換設定の初期コールバックスクリプトのコメントが間違っている問題を修正しました。
 
・インラインフレームの展開で、重複チェックが動作しない問題を修正しました。
 
・4chan のIDカウントが動作しない問題を修正しました。
 
■Google Chrome 版
 
・manifest_version 2 に対応しました。
 
・PageExpand の設定画面で JavaScript のエラーチェックが不可能になりました。
 
・PageExpand 設定の保存先を chrome.storage.local に変更しました。
 
■Opera 版
 
・ツールバーボタンの表示/非表示に対応しました。
 
・アクセスブロックに対応しました。ただし「Opera 拡張機能用」という定義が強制的に有効となる特殊仕様となります。(全ページで1つの共通設定を使う状態。閲覧元ページごとに条件を分けることができない。)
 
■2012/10/02
 
AS3 講座にArray クラスについてを追加しました。
 
■2012/09/17
 
ゲームに、メーク君の遺跡巡りを追加しました。
 
あほげー 第6回参加作品。
 
 
数年ぶりに日新礼符とのチーム製作となりました。
 
AS3.0でゲーム作ったのは今回が初めてですね。内容は、トップビューの遺跡巡りゲーム?です。
 
エンディングは 7 通りあります。いろいろ試みると新たな発見があるかもです。
 
■2012/09/08
 
AS講座に、タイマーについてを追加しました。
 
JS講座に、タイマーについてを追加しました。
 
■2012/09/07
 
JS講座に、ハイパーリンクについて(HTMLAnchorElement)を追加しました。
 
■2012/09/06
 
ムービーページをリニューアルしてみました。
 
■2012/09/03
 
AS3 講座にスタイルシートを適用するを追加しました。
 
AS3 講座に高品質アンチエイリアスを使用するを追加しました。
 
■2012/09/02
 
 
■2012/08/31
 
AS3 講座のマウスの操作についてに、マウス関連のイベントを追記しました。
 
JS 講座のマウスの操作についてに、マウス関連のイベントハンドラを追記しました。
 
AS3 講座に、コンテキストメニューを表示しない(Flash Player 11.1 以降)を追加しました。
 
Flash Player 11.2 から、コンテキストメニューの無効化、マウス右ボタンとマウス中央ボタンの取得ができるようになってますね。
 
■2012/08/26
 
AS 講座にテキストスナップショットについて(Flash 7 以降)を追加しました。
 
AS3 講座にTextSnapshot クラスについてを追加しました。
 
■2012/08/24
 
AIR 講座にAIR アプリ起動時の引数を取得するを追加しました。
 
■2012/08/20
 
AIR 講座に「SystemTrayIcon について」を追加しました。
 
AIR 講座に「DockIcon について」を追加しました。
 
Macintosh 環境がないので、未検証リリースです。
 
間違いがありましたら、ご指摘よろしくお願いします。m(_ _)m
 
■2012/08/19
 
AIR 講座に「NativeMenu について」を追加しました。
 
AIR 講座を、全面的に書き直してみました。
 
■2012/08/10
 
AS3.0 講座の「コンテキストメニューについて」に、コンテキストメニューにクリップボードメニュを追加する(Flash 10以降)を追加しました。
 
リファレンスに、ContextMenuItem.systemPasteMenuItem() メソッドの記述がありまして…ん?動かない…
 
AS3.0 講座にクリップボードについてを追加しました。コピペ量産ページです。
 
■2012/08/09
 
AIR 講座の「NativeWindow について」を加筆しました。
 
■2012/08/08
 
AS3 講座に「JSON について(Flash 11.0以降)」を追加しました。
 
いつものコピペ量産ページです。
 
AIR 講座の「NativeApplication について」を加筆しました。
 
AIR 講座に「NativeWindow について」を追加しました。
 
Adobe AIR 2.6 以降からこんな感じの親子関係付きウィンドウが楽に作れるようになってますね。
 
 
AIR 講座の「HTMLLoaderクラスについて」に「HTMLLoader から JavaScript にアクセスする」を追加しました。
 
HTMLLoader 内の JavaScript を叩く例を追加しました。
 
ExternalInterface のような仕組みがあるのかなと思ったら、 ActionScript3.0 から直接 JavaScript と同じ名称のメソッドとプロパティにアクセスできるんですね。不思議な感じです。
 
■2012/08/03
 
AIR 講座に「ジオロケーションについて(AIR 2.0以降)」の記事を追加しました。
 
AIR 講座に「デバイスとステージの回転について(AIR 2.0以降)」の記事を追加しました。
 
実機がないので、Flash CS6.0 のシミュレータ機能による推測で書いてみました。
 
■2012/07/09
 
アクセスカウンタを、非同期実行な自作物に変更してみました。
 
ページ読み込み速度がちょっと早く?
 
 
 
■2012/06/11
 
ホームページの保存には、Subversion を使用しています。
 
いつもの様に、チェックアウトするとこんなエラーが。
 
「svndiff データの解凍に失敗しました。」
 
えっそれは…(滝汗)
 
…という事で修復メモです。
 
まず、リポジトリを作成したフォルダを念のためにバックアップを取ります。
 
自分の環境では、Windows で、TortoiseSVN を使っています。
 
TortoiseSVN のインストーラから、「command line client tools」を追加インストールします。
 
次にコマンドプロンプトから、
 
リポジトリの整合性テスト

svnadmin verify リポジトリを作成したフォルダのパス(例:"D:\svn\html")
 
…と打ち込みます。
 
リビジョン 0 から順番にチェックを行いどこにエラーがあるか調べてくれます。
 
エラーのあるリビジョン番号がわかるので、その 1 つ前の状態まで戻すことにします。
 
次にダンプを行います。
 
「-r」オプションにて、ダンプしたいリビジョン番号を指定できます。0 から 123 までダンプしたい場合は、「-r 0:123」と記述します。
 
リポジトリのダンプ (リビジョン 0 から 123 までの場合)

svnadmin dump -r 0:123 リポジトリを作成したフォルダのパス(例:"D:\svn\html") > 出力するダンプファイルのパス(例:"D:\save.dump")
 
新規にリポジトリを作成します。
 
リポジトリを新規作成

svnadmin create 新規にリポジトリを作成したいフォルダのパス(例:"D:\svn\html_new")
 
新規に作成したリポジトリにダンプファイルをロードします。
 
リポジトリにダンプファイルをロード

svnadmin load 新規にリポジトリを作成したフォルダのパス(例:"D:\svn\html_new") < 出力したダンプファイルのパス(例:"D:\save.dump")
 
工事完了です...
 
■2012/06/10
 
Flash の拡張機能関連を、Flash CS5.5 ~ 6.0 に対応しました。
 
「配置したインスタンスを一括で入れ替える」にて、
 
サウンドの入れ替えが動作していなかったので修正しました。
 
「ライブラリアイテムの書き出し」にて、
 
Flash CS6.0 からの新機能である「PNG シーケンス」の出力に対応しました。
 
「PNG シーケンス」とは、ムービークリップの 1 フレーム目から終わりのフレームまで、1フレームずつ PNG 形式の連番名で出力してくれるという機能ですね。
 
拡張機能から実行すると、
バッチ処理でまとめて出力できる
行列を指定する事で最終出力姿勢を変更できる(拡大縮小は元々可能、移動は無視される)
 
…という恩恵があります。
 
 
それ以外の拡張機能は、説明文以外特に変更はありません。
 
■2012/06/04
 
PageExpand ver.1.0.3 をリリースしました。
 
・短縮URLの解析方法を修正しました。
 
・掲示板拡張のプリセットに「unkar.org」を追加しました。
 
Greasemonkey 版で、暗号化強度についてご報告を頂きました。
 
確かに PageExpand を使用すると、緑の南京錠アイコンが灰色になりますね。何でやろー
 
>HTTPS モードでの埋め込み
 
http://support.google.com/youtube/bin/answer.py?hl=ja&answer=171780
 
はぇ~。
 
「セキュア(https)なページ内」で「http://~ にあるリソース」を貼り付けると「暗号化されていない」という警告が出るんですね。
 
PageExpand を使用しているとセキュリティアイコンが意味を成さなくなるのはマズイので、 セキュアなページでは、「http://~ にあるリソース」をデフォルトで貼らないように修正しました。
 
この仕様変更により、「Google 検索」や「ツイッター」のページで、展開系の処理がほとんど動作しなくなっているのでご注意下さい。
 
設定を変更すれば、従来のようにすべて展開することができます。ただし、暗号化警告が常に表示されます。
 
設定方法です。
 
1.PageExpand の設定を開く。
 
2.左のメニューから「URLマッピング設定」を選択する。
 
3.右上にあるリストから該当する設定を選択する。
 
4.下にある「セキュリティ」の『セキュアなページ内で「http://~ にあるリソース」を展開する』のチェックボックスを有効にする。
 
 
■2012/06/02
 
PageExpand ver.1.0.2 をリリースしました。
 
テキストエリア内の URL 文字列が消える問題を修正しました。
 
不具合のご報告ありがとうございます。
 
後、Opera 版の審査が通りまして現在公開中です。
 
ただ、自分の環境では Opera 版の表示関連が不安定なんですよね。
 
他のブラウザ拡張機能だと、JavaScript の実行が終わるまで、DOM 操作が画面に反映されることはありませんが、 Opera 拡張機能だと JavaScript の実行中でも、リアルタイムに DOM 操作が画面に反映される動作をします。
 
「先に DOM オブジェクトを新規挿入して、次にサイズを整形する」という処理を行った時に、 挿入した瞬間の一瞬が画面に表示されて、次の描画サイクルで整形結果が正しく表示されるという事があり、たまにチラつきます。
 
Opera の拡張機能は非同期で動作するという話をどこかで見かけた気がするので、そういうのが影響してるのかもです。
 
…という事で Opera 版のみスクロール補正処理を切っています。
 
■2012/05/31
 
PageExpand ver.1.0.1 をリリースしました。
 
ポップアップの設定で「アニメーション無し」に変更するとエラーとなる問題を修正しました。
 
掲示板拡張のプリセットに「ニコニコ大百科」の掲示板を追加しました。別途、自動継ぎ足し系の拡張機能と併用すると捗ります。
 
Google Chrome 版の拡張機能ですが、Chromeウェブストアへアップロード時に審査は無くすぐに更新できました。アップデート時は審査スルーという感じでしょうか。
 
■2012/05/29
 
PageExpand の新版 ver.1.0.0 をリリースしました。
 
Opera 版と、Safari 版の拡張機能を作ってみました。なお Opera 版は審査協議中です(落ちたな…)。
 
詳細仕様は以下のページからどうぞ。
 
https://hakuhin.jp/browser_extension.html#EXTENSION_PAGE_EXPAND
 
2ちゃんねるレスポップアップ機能を追加しました。
 
 
せっかくなんで、ふたばや 4chan にも対応してみました。流用効くもんですね…。
 
 
ユニークな機能…なのかは分かりませんが、
 
IDとフォロワー数をクリックすると対象を消せるようにしてみました。 >>1-1000 みたいなレスリンク爆撃を一掃できます。
 
前回のバージョンは、レイアウトが崩れまくるという問題があったので 今回はインライン表示系はデフォルトでは動作させないようにしました。
 
変わりに、ハイパーリンクから直接ポップアップ表示するようになっています。(イメージのみ)
 
Google Chrome 版の拡張機能は、webRequestBlocking 機能を有効にして提出してみました。結果…、
 
審査はありましたが、サイン書きはありませんでした。
 
ドメインを登録してるのと、アドセンスから住所が判明してるからでしょうか。
 
審査は、夜提出して次の日の朝には公開されてました。早いですね。
 
Opera 版の拡張機能で、XMLHttpRequest でリダイレクト先の URL を取得したい場合は、HTTP メソッドに "HEAD" を指定すると自動リダイレクトされずに 301 や 302 の結果が得られるようです。
 
xhr.getResponseHeader("Location"); でリダイレクト先の URL を取得できます。
 
Safari 版の拡張機能でツールバーのアイコンの色がおかしくなる問題ですが、アイコンをアルファチャンネル変換するといいようです。
 
色を付けててもグレースケール表示となります。
 
「ハイパーリンクの置換定義」のプリセットに「ソーシャルサービスのカウント数を表示」という機能を用意しています。
 
 
この秘蔵のプリセットを使うと、いろんなソーシャルサービスのカウント数が表示されます。
 
これにより、Web での反応っぷりが数値として見えてきます。例えば hakuhin.jp を閲覧した場合です。
 
 
t:twitter、f:Facebook、g+:Google +1、B!:はてなブックマーク数、Y:Yahoo!ブックマーク、l:livedoor クリップ となります。
 
この機能は、ソーシャルサイトに負荷が掛かる事を理解した上で、自己責任でご利用下さい。
 
■2012/03/26
 
JS 講座に「HTMLDocument について」を追加しました。メモメモ。
 
GoogleChrome の拡張機能用 API を調べてたら、いつの間にかリファラの偽装ができるようになってますね。 これでブログサイトの画像が取得できるのかー?
 
webRequestBlocking 機能を使った拡張をストアで公開すると、審査ありで一筆書かされるという噂が気になります。
 
■2012/03/08
 
mcs.jp ドメインを取得してから無駄に1年経過記念?ということで
 
問答収集 ver.0x00020000 にバージョンアップしました。
 
動作に不備があるかもしれませんが、運用開始してみます。
 
以下 ver.0x00010000 からの変更点です。
 
・URL を mcs.jp へ変更しました。別ドメインサービスとなります。
・幅可変なデザインに変更しました。
・保存方法を見直して分割しました。スレッド単位で閲覧が可能となりました。
・スレッドごとの Atom 配信に対応しました。(更新時間が怪しいです…)
・ファイルのアップロードが可能になりました。
・カテゴリに 「JavaScript プログラミング」を追加しました。
・トラフィック増加に備えて広告追加しました。
 
■2012/02/15
 
JS 講座に「HTMLVideoElement について」を追加しました。コピペ量産ページです。
 
HTML5 世代のドラフト段階の API です。
 
HTMLAudioElement と HTMLVideoElement は、HTMLMediaElement から派生してるので、どちらかのお作法を覚えるともう片方も似たように使用できます。
 
現時点でどのブラウザでも共通して使用できる動画フォーマットというのはまだ無いようです。
 
オーディオと同様に、safari で再生速度にマイナスを指定するとビデオの逆再生とかできたりします。
 
■2012/02/14
 
JS 講座に「HTMLAudioElement について」を追加しました。
 
HTML5 世代のドラフト段階の API です。
 
現時点でどのブラウザでも共通して使用できるサウンドフォーマットというのはまだ無いようで、サウンドファイルを複数用意してブラウザごとに振り分けるのが当たり前なのか、 どのブラウザでも共通して使用できるサウンドフォーマットが最低1つでも策定されるのかは、今後の楽しみです。
 
safari で AUDIO を動作させるには QuickTime のインストールが必要だったりするようですが、再生速度にマイナスを指定すると逆再生とかできたりしてリッチですね。
 
サウンド素材は日新礼符氏からの提供で、東京エイリアンのテーマ曲です。
 
■2012/02/12
 
JS 講座に「アプリケーションキャッシュについて」を追加しました。
 
HTML5 世代のドラフト段階の API です。
 
オフラインの状態でもページにアクセスするとコンテンツを動作させることができます。 Flash ゲームなどもキャッシュさせる事ができます。
 
JS 講座に「HtmlImageElement について」を追加しました。
 
IMG タグに相当するエレメントです。
 
■2012/01/31
 
JS 講座に「エレメントの基本的な制御について」を追加しました。
 
DOM オブジェクトを、スプライトのようにヌルヌル動かすためのスタイルシート設定方法の考察です。
 
ブラウザの種類や HTML のドキュメントタイプの設定、スタイルシートの設定によっては解説通りの動作をしないかもしれません。
 
■2012/01/28
 
JS 講座の「ファイルのアップロードについて」に Ruby と Python の例を追加しました。
 
■2012/01/26
 
検索で別言語ページに到着してしまった人向けに、言語タブを追加しました。
 
別言語で同じような内容の記事にアクセスしやすくなりました。
 
 
JS 講座の「ファイル参照のダイアログボックスを開く」に 「FileAPI について」の申し訳程度の情報を追加しました。
 
JS 講座に「ファイルのアップロードについて」を追加しました。
 
フォームを使った方法限定でまとめてみました。
 
ところで JavaScript のソースコードを読んでると、以下のような表記を見かけます。
 
匿名関数を用意して即時実行

(function (){
	// -----------------------------
	// 適当な処理
	// -----------------------------
})();
 
何をしているのかわかりませんでしたが、 匿名関数を作って即時実行するということは、この中で変数を宣言すればローカル変数として扱われるようになるので、スコープのノリで使っていけるわけですね。
 
スコープ風に記述できる

var aaa = 123;

(function (){

	var aaa = 456;
	alert(aaa);

})();

alert(aaa);
 
Flash でも使っていきたいんですけどどうも動きませんね。他の記述法があるのでしょうか…。
 
ちなみに AS3.0 であれば Flash CS4 以降で動きました。Flash CS3 は…
 
同名の変数を使ったとしてもスコープが違うので無限ループにならない

(function (){
	var i;
	var num = 5;
	for(i=0;i < num;i++){

		trace("i:" + i + " num:" + num);

		(function (){
			var i;
			var num = 10;
			for(i=0;i < num;i++){

				trace(" i:" + i + " num:" + num);

			}
		})();
	}
})();
 
 
2011 年の更新履歴