久々にPHPで適当なコードを書く。

PHP

1〜2年くらいぶりにPHPでコード書いた。 最初&$mとか書いてた JavaScriptと違って''は\がエスケープシーケンスとして働かないので正規表現パターンを文字列で書くには便利かも preg_match_all()便利だな はてな記法忘れててMarkdownのつもりでリストの'-'を'…

前回IEを起動してからの経過時間を表示する

殆どIEを使うことがないので、前回の起動からどれだけ経ってるか調べるBookmarkletを書いてみました。IE8以上で動きます。 javascript:(function(l,k,t,d,_){(d=t-l[k])&&(d=new Date(d))&&alert('前回の起動から'+(((_=d.getUTCMonth())?_+'ヶ月':'')+((_=d…

SakuraEditor 2.0.0.2のマクロAPIに関する変更点

サクラエディタマクロを書く際にhttp://www.geocities.jp/maru3128/SakuraMacro/を参考にしていたが、更新日時が2006年と随分古かったので、今使っているサクラエディタのバージョンのAPIを調べてみた。 以下のドキュメントを比較して、増減したAPIを調べた…

読み間違えやすい名前

Git (ギット) http://d.hatena.ne.jp/keisukefukuda/20081117/p2 http://d.hatena.ne.jp/kinneko/20081004/p4 GIF (ジフ) http://fpcu.on.coocan.jp/words/cat90/gif.html

C# 2010 Express Edition で構成マネージャーを表示し、リリースビルドを行う

C# 2005 Express Edition, C# 2008 Express Editionとはまた操作の仕方が変わったようで少し戸惑ったが、なんとか見つけた。 自分はインストール後特に何も設定することなく使用していたのだけど、どうやらC# 2010 Express Editionには設定の種類が2つあるら…

JsUnit 2.2をGoogle Chromeで使う

最近のGoogle Chromeだとインラインフレームとクロスドメイン制限の関係でJsUnitが動かない。解決法としては、(ローカル)サーバにJsUnitとテストコードを置いて実行する。動作確認した環境 JsUnit 2.2 Google Chrome 10.0.648.204

スタックトレースを取得

Google Chrome 10.0.648.204で確認 方法1: Error#stackプロパティから取得 (ただし文字列形式なのでパースが必要) スタックトレースの出力形式 例外クラス名※1: メッセージ※2 at 例外が発生したメソッド名※3 (メソッドが呼び出されたファイル名:行番号※4:位…

コンソールに出力する文字列を読みやすくする

以下のコードで元の文字列の各文字の位置を分かりやすくするための、補助的な文字列を生成できる 文字幅(=文字数)は元の文字列と同じとなる var s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890'; console.log(s); var t = s.replace(/[\s\S]{1,4}/g, function(…

Unicode 空白文字等調査

Unicode 'Other, Format'カテゴリ (Cf) コード 意味 バージョン コメント U+200B ZERO WIDTH SPACE Unicode 1.1.0 幅の無い空白 U+200C ZERO WIDTH NON-JOINER Unicode 1.1.0 U+200D ZERO WIDTH JOINER Unicode 1.1.0 U+FEFF ZERO WIDTH NO-BREAK SPACE Unic…

タグを生成

追記:Bookmarkletとして実行するとm%60の部分がURLデコードされて構文エラーとなってしまうのを修正(とりあえず%の直後に空白を追加) (function(){ /* タイムスタンプを取得 */ javascript: var d = new Date(), o = d.getTimezoneOffset(), m = Math.abs(o…

メソッド内からメソッド名を取得

var o = { f : function(){ for( var i in this ){ if( this[i] == arguments.callee ){ console.log(i); } } } }; o.f(); // f

Bookmarkletで画像ビューア

Bookmarklet用の簡単なビューアVersion0.1(といっても1066文字もある・・・) 機能: 実行すると、ページ内の<img>要素を順番に表示。 <img>要素が<a>要素に囲まれている場合は、<a>要素ごと表示。 Right, Leftで画像切り替え、Escでビューア終了。ビューア終了後、vで再度実</a></a>…

DOMContentLoadedイベントのイベントターゲットを調べる

document.addEventListener('DOMContentLoaded', ...)という記述と window.addEventListener('DOMContentLoaded', ...)という記述を見たので、どっちが正しいのだろうと思い、チェック用のHTML+jsを作成。 結果は、(IEを除く)どのブラウザでもdocumentがイベ…

function文とfunction式の違い

console.log(typeof fn1); // undefined console.log(typeof fn2); // function var fn1 = function(){}; function fn2(){} varによる変数宣言は、スコープに入ったとき変数の追加だけ行われ、宣言のある行で値の代入が行われる。それに対してfunction式で定…

配列の要素を検索

Array#searchとかあっても良さそうだけど、用意されていないようなので適当に定義。 /** * 配列から要素を検索 * @param a0 検索する要素またはテスト関数 * @return number 要素の添字。見つからない場合は-1 */ Array.prototype.search = function(a0) { i…

JavaScriptでコールスタックを取得

arguments.callee.callerが使える環境でのみ動作 コード function getCallStack() { var caller = arguments.callee, ret = []; while( (caller = caller.caller) ) ret.unshift(caller); return ret; } テストBookmarklet javascript:function f(a,b){a=[],…

Eclipse Helios(3.6)が起動せず、"Failed to create the Java Virtual Machine."というエラーが出る場合の対処法(Windows)

"eclipse.exe"と同じフォルダ内にある"eclipse.ini"を以下の方法で編集することで対処。 方法その1 "-Xmx512m"を"-Xmx256m"に変更 方法その2 "-vmargs"の前の行に -vm C:\Program Files\Java\jdk1.6.0_20\bin\javaw.exe (javaw.exeのパス)を追加 参考 Helios…

選択した範囲のURLをまとめて開くBookmarklet

Google Chrome 6.0.472.53 betaで動作確認。 厳密に動作を検証したわけではないので、予期せぬ動作をするかもしれません。 javascript:var r=getSelection().getRangeAt(0),b=r.startContainer,e=r.endContainer,t='childNodes',b=b[t][r.startOffset]||b,e=…

正規表現メモ

忘れがちなのでまとめておく。 基本的な部分はどこのサイトにでも載っているので割愛。 後方参照 $n,\nグループ化した部分文字列を後で利用 パターン内で/(A)b\1/ → AbAにマッチ 置換文字列内で/(A)b\1/, $1 → Aとなる 非格納グループ化 (?:…)内部でキャッシ…

JavaScript言語メモ

プロパティの属性について var宣言文で定義された変数はDontDelete属性がついており、delete演算子で削除することができない。 ArrayインスタンスのlengthプロパティなどはDontEnum属性がついており、for in構文で列挙されない。object.propertyIsEnumelable…

ツイートを読むのに必要な時間を表示するBookmarkletを140文字で書いてみた

元ネタ。 http://tt3000.blog12.fc2.com/blog-entry-15.html たった一行追加するだけでサイトの滞在時間を13.8%伸ばす方法・・・ | IDEA*IDEA http://briancray.com/2010/04/09/estimated-reading-time-web-design/ Twitterの自分のTL(https://twitter.com/home…

オープンアプリ(MIDP)アプリケーション開発環境を整える[Win+Eclipse]

オープンアプリはau用のJava製アプリのことである。他にdocomoのiアプリやソフトバンクのS!アプリも同様にJava製アプリだが、自分の携帯がauであるためオープンアプリの開発環境を整えることにした。auには他にBrewアプリがあるのだが、こちらは敷居が高い上…

統合開発環境 Eclipseについて

必要な環境 Windowsの場合、インストールは不要(解凍するだけ)。 Eclipseを動かすにはJavaの実行環境(JRE)または開発環境(Java 2 SDK)が必要。 バージョンごとの別称 バージョン 別称 由来 Eclipse 3.2 Callisto(カリスト) 木星の第4衛星 Eclipse 3.3 Europa…

コンストラクタは継承される

'; } } class Sub extends Base{} class Sub2 extends Base{ public function __construct(){} } $sub = new Sub('hoge'); // "hoge"と出力される $sub2 = new Sub2('fuga'); // 何も出力されない ?> 出力 hoge 子クラスで定義しない場合、親クラスのコンス…

例外クラス一覧

例外クラスツリー Exception |-- LogicException | |-- BadFunctionCallException | | |-- BadMethodCallException | |-- DomainException | |-- InvalidArgumentException | |-- LengthException | |-- OutOfRangeException |-- RuntimeException |-- Unexp…

Google Chrome拡張のマニフェストファイルまとめ

JSON中のコメントは実際にマニフェストを書くときは除去する(JSONの仕様にコメントは無い)。 不鮮明な部分は参考にしたページや公式リファレンスを確認する。 { //--- 必須 --- "name": <String>, // 45文字以内 "version": <versionString>, // 4つまでのドット区切りの数値(0〜655</versionstring></string>…

バッチファイルでコマンドプロンプト風スクリプト

ちょっと前に同じ実験班の人に教えてもらったのでメモ。 @echo off :start set /p command="%cd%>" call %command% goto start

プリミティブな文字列型(string型)に関する考察

console.log( "Error" === new String("Error") ); // false console.log( "Error" === String(new String("Error")) ); // true console.log( String.fromCharCode(0x41) === "A" ); // true (Chrome4 JavaScriptコンソールで確認) プリミティブな文字列(st…

整数値を1ずつカウントアップしながら生成

function E(n){ n = n || arguments.callee.n || 0; arguments.callee.n = n+1; return n; } 使い方 var errorCode = { NO_ERROR : E(0), TYPE_ERROR : E(), // 1 RANGE_ERROR : E(), // 2 NETWORK_ERROR : E(100), SERVER_ERROR : E() // 101 }; 2010/05/02…

エラー処理メモ

エラー情報を定義する意味 複数のエラーを一意に識別し、個々のエラーに対し処理を行う エラーの原因特定を助けるため エラー情報 識別子 (整数、識別子(文字列等)、例外クラス名などエラーを区別するのに用いる) メッセージ (人間に対する) データ (原因に…