サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
dara-j.asablo.jp
すんごい久しぶりにtumblrのことなど それ以前にブログ更新するのがすんごい久しぶり、ってのは置いておいて。 いまだにメインブラウザがFirefoxなもので、tumblrのダッシュボード向けに、執念深く古いグリモン+Minibuffer+LDRize+Autopagerizeという環境で回しているんだけども、最近ふと気が付いたらダッシュボードでjした時に「カクッ」と動くようになってることに気付いた。 いつのまにか標準キーバインドが復活しとる 結構前からダッシュボードには、標準でキーバインドが組み込まれてて、使いづらいので これをキャンセルするグリモンスクリプトを組み込んでたんだけど、どうやらこれが効かなくなったらしい。 何日か前にこれに気付いて、なんとかキャンセルできるようにしたんだが、今日になったらまたコードが効かなくなってた。矢継ぎ早なアップデートみたい。 なんとか解除してみる 仕方
面白いネタ、いただきました。 にーまるどっとこむ(旧「突然消失するかもしれないブログ」)のなかのきえたさんから、こんなメンションが飛んできた。 Adbloc PlusではData URIはフィルター対象に指定出来ないのですが、何か技術的に難しい理由があるのでしょうか? Twitter / @typex20: @dara_j_ Adbloc PlusではData ... Adblock Plusはこれまで使ったことなかったんだけど、なんだかえらく興味をひかれたので調べてみることに。 よくわからんが使ってしてみると ちょっと調べたところ、Firefox用とChrome用があるみたいなんだけど、とりあえずFirefoxのほうを試してみる。 まずはAdblock Plusをインストールし、適当にググってみたページなんかを参考にして見よう見まねで data:image/* みたいな感じで登録、手持ち
TLでローカルストレージ絡みの話がちょろちょろ流れてたので、興味があったのと多少は需要がありそうな気がしたのでざっくり作ってみた。 用途は、スマートフォンやタブレットなどのモバイルOSで、例えばiOSなんかはorigin指定で削除することもできないし、消す場合はCookieやらなにやら一絡げで削除しちゃうので、「このoriginのlocalStorageだけ消したい!」というような用途で使ってください。 なお、削除すると元ページの機能が意図通りに動かなくなる可能性があるので慎重に。 ブックマークレット ローカルストレージの内容確認 こんな感じ。 ローカルストレージの内容確認 ローカルストレージを削除 こんな感じ。 ローカルストレージを削除 インストール方法 どちらのブックマークレットも、リンクをクリックくするとソースがpromptで表示されるので、スマートフォンやらタブレットデバイスの場合
この「bookmarks」テーブルを、Zend_Db_Adapterで検索、表示するところまでが前回分です。テーブルの作成やファイル構成などは前回の記事を参照してください。 Zend_Db_Tableを使う さて、ようやく今回の内容に入ります。 前回分では導入ということもあり、Zend_Db_Adapter(正確にはZend_Db_Adapter_Pdo_Sqlite)でデータベースへの接続を開き、そのまま原始的にクエリを発行して連想配列を取得するという、最低限の使い方のみでしたが、今回の題材のように単純なテーブルを対象にする場合は、Zend_Db_Tableを使用して、オブジェクトとして扱ったほうがラクに扱えます。 Zend_Db_Tableは抽象クラスなので、自分で使用する場合はここから派生させたクラスを作成する必要があります。また、Zend_Db_Tableは、基本的にクラスの定義が
WoL事情を調べてみた。なんとなく。 社内でちょっとした必要があって、Web経由でWake-on-LANによるPCの起動をするツールでも作ろうかと思って調べてみた。 Vineなんかはapt経由でwolコマンド(どうやらこちらのコマンドがオリジナルみたい)をさくっとインストールできたり、CentOSやDebianにもコマンドがあるらしいことがわかった。 これならPHP経由でもコマンド叩くだけで必要な機能は実装できそう(といいつつ、CentOSのethtoolはroot権限必要だけど)なので楽かなーとか思っていたが、Windowsでデバッグするのにちょっと面倒くさそう。 じゃ、PHPだけでやってみるか PHPだけでなんとかできんものかと思って調べたら、すでにやっておられる方もいるので、自分でもやってみることにした。 WakeOnLan.php こんな感じでやってみた。仮に「WakeOnLan.
はじめの一歩 - メッセージを表示してみる 前回の準備編でZend Frameworkの環境は整ったので、ものすごく簡単なアプリケーションから作ってみます。アプリケーションルートを「zf1」とします。 ディレクトリ構成 まずはディレクトリ構成。ドキュメントルート直下にフォルダ「zf1」を作成し、その下に「application」を作成します。さらに「application」下に「controllers」「views」を作成、「views」下に「index」を作成してください(結構面倒くさいでしょ?)。フォルダの名前に注意してください。特に「views」は、暗黙で参照される名前ですので、末尾の「s」が抜けていたりなどスペルミスがあるといきなり「ファイルが見つからない」エラーになってしまいます。 ※:2014-04-08 説明文中の「applications」を「application」に修正
一週間ほど現実逃避をしていたら、もう9月すぎてるし。1ヶ月以上ブログ更新してないし。と思ったのだが、あんまりいいネタがないのでコネタ。 もうね、なんで気が付かないかな。 1ヶ月ほど前のエントリで「コマンドラインで.svnディレクトリを一括削除」なんてコマンドラインネタやったんだけど、このときは dirコマンドのオプションに /b(ファイル名のみ表示)、/s(指定ディレクトリ以降の再帰処理)に加えて隠しディレクトリを対象にするために/aオプションで属性未指定(=すべての属性を対象)として、 結果をfindstrの正規表現で「.svn」だけに絞り込む という2段階の手続きを踏んでいた。こんな感じ。 dir /b/s/a | findstr /r \.svn$ うん、タイプするのめんどくさいわ。 でね、もう一回dirコマンドのヘルプ見てみると、 /A 指定された属性のファイルを表示します。 属性
Firefoxの新規インストール久しぶりだし ちょっと前のエントリで書いたが、ThinkPadのHDDがイカれたために久しぶりにOSからインストールしなおすハメになっていた。 余談だが、OSのファイルの一部が壊れたんだろうくらいの認識だったがそうではなく、パーティションはかろうじて認識できるが中身はまったく確認できないという状態になってた。おかげでメールやらはすっとんでしまった。よくある教訓だが、こまめにバックアップはとっておけ、ということだ。まぁ、とんで困るようなデータはそれほど多くなかったんだけどね。 で、当然ブラウザなんかもインストールしなおすことになったワケで、久々にFirefoxを新規インストール。 Firebugをはじめ、ないと困るものをころころとインストールしていき、まぁ使える環境になってきたが困ったのがタブ切り替え。 昔Sleipnirを使っていたころの名残で、タブの切り替
ひっさびさ(でもないか、図面の紹介だけど先月書いてたわ)のZFネタ。といってもツールというか、開発環境のお話なんですが。 文句言ってたころから久しく 昨年の終わりごろに、こんな感じでがっかりしていたオープンソースIDE「Open Komodo」、その記事から程なく「Komodo Edit」に統合され、着実にバージョンアップされていた。 んで、春ごろにMOONGIFTで紹介されたころから、まっとうに使えるようになってきていて(確か4.3ごろだったか)、少し触ってみてはいたのだが、先週リリースされた4.4からdara-j内で俄然使える予感がしてきた。 Zend Framework Support: Zend framework autocompletion and a new Zend MVC project template have been added. そう、Zend Framewor
以前、Firefox3でtumblrのダッシュボードが重いって愚痴エントリを書いたのだが、ふとしたことでこれが解決したのでメモ。 やっぱりメインはFirefox3、なんだけど。 ChromeでもMinibuffer+LDRizeが動くのでダッシュボードをつらつらと見たりして遊んでるうちに、やっぱりこの操作感が気持ちいいので久々にFirefox3でもLDRizeをONにしてみたのだが、やっぱり重い。 いや、LDRize云々以前に、普通にスクロールさせるだけでも猛烈なストレスなわけで、「やっぱPC買い替えかぁ?」とか思ってたのだが、ふと「なにがボトルネックになってるのだろうか」と疑問。 Firebugでスタイルを表示してみて、いろいろ試したところ、「ol#posts li.post」(個別エントリの要素)に -moz-border-radius-bottomleft: 10px; -moz-b
またChromeネタ。しかも中身ないし。 「Chrome、速くねぇよ」とかって意見もあるわけだが、個人的にはとっても速いと思う。 上のリンクでは、「DOM操作が大したことねぇよ、Safari最強!」ってな感じだったので、ドキュメントロード時に5000個ほどノード作成→bodyにappendしてその時間を計るようなテストをしてみたら、確かにSafariには及ばないが、それでもOpera9.5よりもFirefox3よりも速い。大体こんな感じだった。 Safari > Chrome > Opera9.5 >> Firefox3 >>> IE7 これだけ見るとSafari最強!って思わなくもないんだけど、ブラウザ自体の起動速度と、ウィンドウ自体やメニューなんかの非HTML領域の描画速度が決定的に違う。Chrome最強。 Chromeはここら辺に引っ掛かりがないので体感上はSafariよりかなり速く
Enumeratorオブジェクト ActiveXObjectと同様なJScript固有オブジェクトにEnumeratorがある。これはCOMのコレクションインターフェイスをJScriptから操作するためにある(と思われる) Enumeratorオブジェクトは、 // folderはfsoのFolderオブジェクトとする // folder#Filesはfolderが示すディレクトリ内のファイルコレクション var list = new Enumerator( folder.Files ); for(; ! list.atEnd(); list.moveNext()) { // list#item()でコレクション要素(=fsoのFileオブジェクト)を取得 var file = list.item(); // あとはfileを操作する } のように、atEnd()メソッドがtrueを返すま
DIR コマンドにこんな使い方が なにを探しているときに見つけたかすでに忘れたのだが、しばらく前にこんなTIPSを見つけた。 Unixのfindコマンドの代わり(のサブセット)になるコマンド - babydaemonsの日記 タイトルにあるとおり、 dir /b/s somedir ってやると、UNIX/Linuxのfindコマンドよろしく、指定ディレクトリ以下のファイルをフルパスで列挙してくれる。 例えば、dara-jの手持ちの環境ではZend Framework 1.0.0を D:\PHP\libs\Zend 以下に設置しているのだが、こんな感じで列挙できる。 C:\Documents and Settings\dara-j>dir /b/s D:\PHP\libs\Zend\*.php D:\PHP\libs\Zend\Acl.php D:\PHP\libs\Zend\Auth.ph
Zend_Json::decode()って便利!と思っていたが Zend_Json::decode()が割と使える。UNICODEエスケープされた文字(\uXXXX形式ね)をデコードできるからだ。 <?php require_once 'Zend/Json.php'; $s = '"\u65e5\u672c\u8a9e"'; echo Zend_Json::decode( $s ); とかってすると、「日本語」と出力が得られる(内部エンコードがutf-8じゃないとあかんみたいだが)。 だもんで、クライアント側でJSでescape()したマルチバイト文字を、preg_replace_callbackを絡めて'%uXXXX'を'\uXXXX'に変換した上でダブルクォートで囲ってZend_Json::decode()に渡すようにして復元したりしていた。 が、Zend_Jsonの動きをたいして気に
chkconfigモドキとかpsモドキとかで久々にWMIに触ったらなんだか面白かったのでちょろちょろといじくっているのだが、そのときに見つけたりしたコネタをば。正確には前も調べたけどすっかり忘れてたってとこなんだが。 まずはEnumeratorを拡張するが吉 WQLで問い合わせた結果はいわゆる「コレクション」が返ってくる。VBSの場合は何も考えずFor Eachを使えるのだが、JScriptの場合はEnumeratorでくるんでやる必要がある。まぁWMIに限らずWSH/HTAでCOMを触る場合はそうなるのだが。 んで好みの問題だと思うけど、WMIみたいなメタデータ中心のオブジェクトを扱う場合はコレクションのループ処理を多用するハメになるので、Enumeratorでeachなんかが使えるように拡張しといたほうが便利かな、と。 最低限のサンプル。 Enumerator.prototype =
のようになった。ふむ、どうやらタスクマネージャのCPU時間はカーネルモード+ユーザモードらしい。これで時間の値は取得できたのであとは表示。 最初は「ミリ秒単位にしてDateに食わせりゃあんまり計算しなくていいかも」とか不精なことを考えていたのだが、GMT時差補正や24時間を越えた場合の展開、getMinutes()やgetSeconds()などをちくちく呼び出すことを考えたら、素直に計算したほうが早いことに気づいたのでベタで計算することにした。 ちなみにuint64にそのまま合わせるデータ型がないためか、JSでKernelModeTimeなどを取得した場合、返ってきたデータの型はstringだったので、そこらへんも注意。 オーナー情報の取得 プロパティをざっと眺めたところ、それっぽいやつはなかったのだが、メソッドのほうには「GetOwner」「GetOwnerSid」とそれっぽいやつがあっ
なんちゃってコマンド 第四弾 我ながらしつこいなと思いつつ「なんちゃってコマンド」スクリプト。今度はps作ってみました。 ま、WMIでWin32_Process列挙できればそんなに難しくないので、似たようなことやってる人はいるだろなぁ。 例によってソース ちょっと長いけど例によってのっけときます。NYSLです。 var fso = new ActiveXObject("Scripting.FileSystemObject"); var shell = new ActiveXObject("WScript.Shell"); // コマンドライン引数の取得 var args = new function() { var args = WSH.Arguments, result = []; for(var col = new Enumerator( args ); ! col.atEnd();
まったくもってくだらんと思うが、コマンドライン引数でURL渡すとローカルに保存するコンソールスクリプト。なんで作ろうとしたのか忘れたけど、なんか作ってみたので載せてく。 ソース ※:同じローカルファイル名で上書きできないバグを修正しました(08.06.13) ※:この記事のコメント欄でhATrayfloodさんからContent-Disposition対応ソースのURLを教えていただきました。ソースはこちら(JSファイル直リン)。(11.08.25) 以下のソースをコピーして「wget.js」とでもつけてローカルに保存するか、これを名前をつけて保存。 依存ライブラリは一切なし。ライセンスはNYSLね。 var fso = new ActiveXObject("Scripting.FileSystemObject"); var shell = new ActiveXObject("WScri
久々にJSでも書いてみるか。 気がついたら1ヶ月近くもブログ放置状態だったので、ちょっと前になんとなく作ったスクリプトをば。 もうとっくに誰かがやってるであろう(つか、自分で昔作ってるし)、対話型JScriptシェル(っていうのか?)なんですが、ライブラリのロード機構とドラッグドロップでのバッチ処理をサポートしてるのでライブラリの整備次第ではちょっとしたデータ処理なんかに使えるのでは、と。 いきなりソース 以下、本体の全ソース。「jsi.js」とでもしてローカルに保存してください。例によってNYSLで。 var Global = { fso : new ActiveXObject("Scripting.FileSystemObject"), shell : new ActiveXObject("WScript.Shell"), arguments : (function() { var r
Firefoxのバージョンがあがったので Firefoxが2.0.0.10になった。セキュリティアップデートなので無条件に更新。 んで、他の作業をしてたのでしばらくブラウザは触らなかったが、ちと落ち着いたのであちこちニュースなんか見て回ったり。 そこで気がついたね。keyconfig、動かないじゃん。そういやFirefox再起動後に互換性がねーぞって文句言われたわな。 対応バージョンの改ざんを図る んで、仕方ないのでkeyconfigの対応バージョン情報を改ざんすると。やり方忘れちゃったな。 ユーザプロファイルのextensions内にそのものズバリの「keyconfig@dorando」ってディレクトリがあって、「確か、install.rdfだったよなー」とかうろ覚え状態でエディタで開いてみると、あったあった。 <RDF:Description RDF:about="rdf:#$CjV5
netshコマンド えー、久々のWSHネタで、需要が少なそうなスクリプト。Win2KとかXPとかでネットワーク設定を構成する「netsh」ってコマンドがあるんだけども、これが設定のダンプやリストアができるので、ちょこちょこっとTCP/IPの設定切り替えたりするのに割と便利。 例えば「netsh interface dump」ってコマンドラインから実行すると、こんな感じで表示される。 C:\Documents and Settings\dara-j>netsh interface dump #======================== # インターフェイス構成 #======================== pushd interface reset all popd # インターフェイス構成の最後 # ---------------------------------- # イン
2008/01/12 追記 このところ私事でネットに思うように時間を取れなかったため1週間近くの放置になりましたが、追記です。 こちらの一方的で感情的な内容のエントリですが、1/6付けにのしさんのほうが「これにて諍い終わり!ヽ(・ω・)ノ」とおっしゃってくださいました。かってにこちらから噛み付いておいて腰砕けのようですが、そのお言葉に甘えてこちらも終わりといたします。 このエントリの内容は削除しようかとも思いましたが、のしさんの「時々日記 #34」をご覧になる上での一種の資料と思い、とりあえずこのままにしておきます。ただ、のしさんが「印象操作をしている」かのような主張は大変失礼であったと反省をし、その部分は打消し、補足を追記いたしました。印象操作呼ばわりをして、大変申し訳ありませんでした。 コメント欄にも、さまざまなご意見をいただきました。また、はてなブックマークもいくつかブックマークして
0 == 'str' // true PHPSPOTでこんなエントリがあった。 PHPで、文字列と数値0の比較は等価になるようです:phpspot開発日誌 タイトルだけみたときは「0 == '0'のことか?そりゃ当然じゃん」とか思って記事を見たところ、 $a = 0; $b = 'str'; if( $a == $b ) { echo 'equal'; } else { echo 'not equal'; } なんてコードが掲載されてた。試してみると確かに「equal」と出力される。どういうこっちゃ? 仕様を調べてみる ちょっとこの現象は、どういう理屈に基づいてこうなるのかさっぱりわからないので、仕様上どうなっているのか調べてみた。 違う型同士を比較するので、暗黙の型変換が発生するだろうと思い、マニュアルの「型の相互変換」を見てみたがそれっぽいことは記述されていなかった。 このページの最後
いきなり試みてみたり ちょっと前に常山日記さんとこに掲載されていたorange-A-go-go!さんのこちらの記事。Photoshopでアクア風ボタンを作成する手順を説明してくれている。 これみて、なぜかInkscapeでできそう、と思ったのでやってみた。ま、ボタンつーか珠つーか。 ちなみに手持ちのバージョンは0.45。 手順 正円を描く
コマンドラインから管理者に昇格したい たとえば、mklinkでシンボリックリンクを作りたい場合、いちいちcmd.exeを右クリックから「管理者として実行」するのは非常に面倒くさく、いま開いてるプロンプトから権限昇格できると便利だよね、と思って調べると、まぁいろいろな方々がすでにやってたりするわけです。 要は、WSHでShell.Application(エクスプローラを外部から操作するためのActiveXインターフェイス)で実行ファイルに対して「管理者として実行」で起動させる、という仕組みを使う、と。 んで、久々になんちゃってコマンド んで、まぁ、suとかsudoとかを作ってみようかと。いや、先ほどのGoogle検索の結果に出てくるあちこちの記事でもすでに実現されてるんだけど、なんとなく自分でもやってみるか、という程度で。 suとsudoを別々に実装してもいいんだけど、cmd.exeを「管理
久々のWSHネタ via: Windows Script Programming: コマンドラインでHTMLファイルをテキストファイルにする。 うは、こりゃすごい。昔2chのWSHスレで「InternetExplorer.ApplicationをcreateしなくてもMSHTML扱える」っていうようなレスを見たことあったんだけど、具体的にどうやるのか知らなかったが、リンク先の記事にばっちり書いてあった。 こんな方法で取得できるとは... この記事では、 var htmlfile = new ActiveXObject("htmlfile"); ってな方法でオブジェクトを作成していて、これでMSHTMLのHTMLDocument(=documentオブジェクト)が取得できる。 んで、これのparentWindowを参照するとHTMLWindow2(=windowオブジェクト)があっさり取得で
未実装のアクションを呼び出す さて、今回は例外処理からはじめたいと思います。とはいってもそう難しいことをやるわけではなく、Zend_Controllerが標準的に用意している仕組みの導入方法を説明するだけですが。 まずは例外を発生させるところからはじめましょう。やりかたは至極簡単、前回作成した「zf2」アプリケーションで、存在しないアクションを呼び出すだけです。 前回までの実装では、IndexControllerに実装したアクションメソッドは「index」アクションと「dump」アクションの2つのみでした。この実装状況のままで、存在しないアクションメソッド、そうたとえば「hoge」を呼び出してみましょう。 http://<host名>/zf2/index/hoge/ へアクセスしてみてください。いきなり「Fatal error」が表示されるはずです(表示されない場合はdisplay_err
次のページ
このページを最初にブックマークしてみませんか?
『dara-j.asablo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く