読者です 読者をやめる 読者になる 読者になる

ターミナルからPhotoshopを起動すると便利

Mac

Macのちょっと便利な使い方。 MacでWebのフロントもやる人は、ターミナルでvim使ってCSSのコーディングなど快適に作業しているとき、ちょこっと画像を修正する必要があって、しかたなくFinder開くためにマウスに手を伸ばすことがあると思います。マウスでFin…

トゥギャりました

CakePHPとHTMLコーディングの話 - Togetter

PHP5.4のトレイトを学んだらRubyのmixinがちょっと変な気がした

あ、釣りタイトルっぽい。いちおう、釣りじゃなくて率直に考えたこと、のつもりなので誤解しないでね。きのうは、PHPのトレイトについてものすごく前倒しで調査しました。で、そこで、Rubyのmix-inに似ているというところまで行ったところで、こんなコメント…

PHP5.4とScalaのトレイト比較

PHP5.4にはトレイトという文法が導入されて、多重継承の便利さが享受できるようになるそうです。 いろいろ試してみることにしました。トレイトといえば代表選手はScalaですね。Scalaでいうトレイトは、インターフェースの定義とメソッドの実装を同時にやって…

Pinoco0.5は柔軟なバリデータが売り

PHP

ついこの前0.4を出したところですが、また機能的にひと皮むけた感じなので、0.5としてPinocoマイナーバージョンの桁を上げました。 Downloads · tanakahisateru/pinoco · GitHubこちらが変更点の一覧です。 Changelog · tanakahisateru/pinoco Wiki · GitHub…

インターネットでカネを稼ぐ方法は五ツしかないかアダルトサイトで検証

業界構造にあまり詳しくないので想像でしかないのですが、 インターネットでカネを稼ぐ方法は五ツしかない : ミームの死骸を越えてゆけ がアダルトサイトにもあてはまるのか、面白そうなので考えてみました。1. 広告型 -- 見る人を集め、見せたい人がそれを…

PHPTALはPHP互換でもある

PHP

XHTMLと完全に構文互換なPHPTALですが、実はテンプレートの中にPHPタグを入れることもできます。 <h1 tal:content="title">my title</h1> helpers->Html->link( sprintf( __("List %s", true), __("Posts", true) ), array("action" => "index") );?> $ctx はレンダリング時にテンプレート…

カレントディレクトリを一発でPinocoサイト化するコマンド

PHP

カレントディレクトリを一発でPinocoサイト化するコマンドができました。 localhostのApacheのドキュメントルート以下に適当なフォルダを掘って実行してみましょう。 curl -L http://pinoco-0.5.2で初期化.します.jp | sh シェルスクリプトのテキストの内容…

Pinoco0.4はクロージャですごくなる

PHP

Pinoco0.4.0をリリースしました。 Downloads · tanakahisateru/pinoco · GitHub変更点はこちらで簡単に。 Changelog · tanakahisateru/pinoco Wiki · GitHub重要な点は、データベースをサポートしたところ。もちろん単にPDO用のライブラリあります、ってだけ…

CoffeeScriptで書いたExpressで簡単メンテナンスモード

CoffeeScriptで書いたExpress(Node.jsのSinatraみたいなもの)で簡単メンテナンスモードコンテストにチャレンジしてみます。これまでのエントリー選手 CodeIgniterで簡単メンテナンスモード - localdisk Pinocoで簡単メンテナンスモード - なんたらノート 第…

Pinocoで簡単メンテナンスモード

PHP

CodeIgniterで簡単メンテナンスモード http://d.hatena.ne.jp/localdisk/20110525/1306337920 って記事があったので、Pinocoだとどうなるかやってみます。 app/hooks/_enter.php page = '/_maintenance.html'; // 追加 $this->terminate(); //追加 /* 以下に…

CoffeeScriptで話すように素数しながら考えた

久しぶりに素数シリーズをやりたくなる言語に出会いました。 CoffeeScript http://jashkenas.github.com/coffee-script/PythonとRubyとScalaとmlが混ざったような言語でプログラミングして、それをJavascriptにコンパイルします。 なんだJavascriptならかな…

Windows XP End of Support

こんなの作りました。元ネタはこれ http://www.forest.impress.co.jp/docs/news/20110420_440947.html Microsoft、Windows XPのサポート終了までをカウントダウンするガジェットを公開 Windows XPのサポートが完全終了する2014年4月8日までをカウントダウン…

PHPカンファレンス関西に行ってきました

PHP

PHPカンファレンス関西に行ってきました。行ってきましたというか、ついでにちょっと喋ってきました。で、そのあとなぜかいま、おうちハッカソンに来ています。 >> http://twitter.com/search?q=%23piece_networkとりあえず自分がLTで喋ったことDesigner fri…

PHPでfile_get_contents使ったHTTP接続がエラーなのかタイムアウトなのかを判別する

PHP

PHPでサーバ-サーバ間でREST-APIを使うとき、file_get_contentsを使うのが簡単なんですが、エラーレスポンスの場合、その状況をどう解釈したらいいのかという説明がどうもあいまいな気がしたので、ちょっと調べてみました。レスポンスコード200とエラー、そ…

5分で分かる SSI を忘れていた人が SSI+Perl の便利さを思い出せる記事を書いたよ

PHPの便利さが5分でわかるのが面白かったらしく、http://weble.org/2010/12/28/php-beginnerからerbやPythonなどいろいろ派生したので、ここらでだいぶ原点回帰。 SSIとPerlでもちょっとは5分便利シリーズとして有効だよということで参戦。SSIはApacheで使え…

jEdit日本語リソース for 4.4pre1 / 4.3.2

jEditの4.4pre1がリリースされています。http://www.jedit.org/pre版のダウンロードリンクが微妙なんですが、どうやらここから辿ることになっているみたいです。http://www.tellurianring.com/projects/jedit-daily/index.php?dir=jEdit_pre_release/という…

JQueryでイベントブロッキング

前回の jQueryで一回だけイベント - なんたらノート 第二期 でちょっとツメが甘かったので、もうちょっと具体的に言うと、ということで、イベントブロッキングを考えます。たとえば、ユーザのクリックによって、アニメーションエフェクトが起こったとき、同…

jQueryで一回だけイベント

jQueryで一回だけクリックできる(または二回目以降別のハンドラに切り替わる)ボタンを作りたい場合、もっとも簡単な方法はこんな感じじゃないかなという話です。まずは、ありがちな方法。 var oneshot = function(){ alert('oneshot'); $('button').unbind('…

Twitterでクロージャのことを説明したら通じた

Twitterでクロージャのことを説明したらうまくいったのでメモ。 クロージャを語るときの関数は、構造化プログラミングの関数(サブルーチン)とちょっと違うんですよね。関数はcallメソッドを持ったオブジェクトというイメージ。関数を関数内で生成して変数と…

jEditのGUIを翻訳するプロジェクトをgithubに作りました

これまでごく私的に作っていた jEdit の日本語化ファイルですが、思ったより多く使われているみたいなので、githubにこんなの作りました。http://github.com/tanakahisateru/jedit_gui-jagithubはソースコードリポジトリにgitを使う、ソーシャルな傾向の強い…

Flashの初期設定パラメータにHTMLを使う

Flash非対応デバイスを気にしなきゃならないこのご時世、Webデザインやるときは、Flashコンテンツの代替として、HTMLの代替画像と最低限のJavascriptアニメーションがあって当然って感じになってきました。それどころかむしろ逆に、HTMLとJavascriptだけでコ…

PHP で Hello World ベンチマーク (Pinocoも)

PHP

驚きのベンチマークテスト計測結果を報告します。さまざまなPHP開発プラットフォームで、「何もしていない時にかかるオーバーヘッド」を計測したいと思い、可能な限り余計な処理を省いた Hello World プログラムで、ベンチマークテストを行いました。Webアプ…

PHPテンプレートエンジンベンチマーク パート2 Smarty vs PHPTAL

PHP

以前PHPのテンプレートエンジンの実行速度を比較しましたが、http://d.hatena.ne.jp/tanakahisateru/20081024/1224850023あまりうまく計測できていなかったのと、ソース公開してなかったのと、いいかげん使ったマシンが古くなってきた感があったという3つの…

翻訳: PHPTALでテンプレーティング

http://phptal.org/ のニュース中のリンクで見つけたのですが、PHPTALに関する良い記事がありました。http://inside.webfactory.de/en/blog/templating-with-phptal-dont-make-your-designer-think-about-the-wrong-things.htmlPHPTALのいいとことろを紹介す…

Pinoco 0.2.3 リリース

PHP

拙作の「ダイナミックWebサイト向けフレームワーク」、Pinocoを公開します。悩ましいバグが取れたので、今こそ言うタイミングだ、ということで。pinoco - web site environment using PHP and TAL - Google Project Hostingこのところブログの更新が怠ってい…

Subversionで、あるリビジョン以降の差分をいきなりFTP

昨日の Subversionで、あるリビジョン以降の差分をファイルで抽出 - なんたらノート 第二期 をもとに、エクスポートファイルを吐出さず、直接FTPするツールを作りました。本当なら、ファイルとしてエクスポートして、きっちり確認しながらアップロードするべ…

Subversionで、あるリビジョン以降の差分をファイルで抽出

Subversionのexportコマンドは作業コピー内の全ファイルを吐き出してしまいます。ぜんぶですよ、ぜんぶ!! Web仕事の場合、この大量のファイルをすべてFTPで再アップロードしなくちゃいけない、となるとたいへんです。できれば、内容が変わってないファイルは…

MacOSXのjEditでうまくコピーペーストできない場合の対処

最近はよく、MacOSを使っています。もちろんメインのテキストエディタとしてjEditを使っているわけですが、どうもMacでうまく機能してくれない箇所がありました。検索ダイアログボックスのテキスト入力やQuickNotepadプラグインでは、キーボードでコピーペー…

jEdit日本語リソース for 4.3.1

jEdit4.3.1がリリースされていますが、やっと日本語のほうも作業時間をとることができました。変更は少ないので、影響はそれほど大きくないですが、キーボードニーモニックの矛盾などが改善されていたので、入れておいた方がいいと思います。ダウンロードは…

jQueryにreduceがなかったので書いた

jQueryには、普通の配列にも使えるeachやmapがあるのですが、残念なことに、畳み込み演算できるreduceがありません。というわけで、こんなことしました。 $.reduce = function(list, func, init){ var r = init; for(var i = 0; i < list.length; i++) { if(…

Pythonで全ファイルに何かする、たとえば改行コード変換

日常の便利ツールPythonですが、いつもの頻出タスク、「全ファイルに何かする」をやるとき、いちいち書いていた(書きはじめが書きやすすぎて)のですが、あまりにも頻出するので、もういっそ、最小基本パターンを決め、今後書き換えて使う基本形にしようと決…

iPadがあながち間違っていない8つのこと

アップルiPadが嫌な8つのこと : ギズモード・ジャパン のdisりをdisってみる思考実験です。 それによって、iPadの特徴を考えたいと思うのです。キーボードのないMacを期待してた人は多かったでしょう。このエントリで、彼らが裏切られた気持ちを非難するつも…

jEdit日本語リソース for 4.3 final

jEditの4.3代がついにfinalになりました。年末なってたのをスルーしていて、年明けてからになってしまいましたが、日本語リソースも追従します。ダウンロードはこちら なんたらノート 出張所 jEditjEditインストール先のproperties(Linuxのパッケージによっ…

PythonでExcelを上手に読む

PythonでExcelを読むには、http://pypi.python.org/pypi/pyExceleratorかhttp://pypi.python.org/pypi/xlwtを使うんですが、このpyExceleratorのパース結果が、Excel向きのメソッドのあるオブジェクトじゃなくて、リストとタプルと辞書だけでできていたりし…

PHPで安全に例外を投げる方法

PHP

ただの例外じゃユーザが補足できないし、かといって、あらゆる例外シチュエーションを自分で定義するのも、それはそれでユーザのAPI学習負担を高めてしまう。なので、標準の例外、たとえばRuntimeExceptionを投げたい。でも、PHP5.2(だったと思う)までは、SP…

PHPのnewに再チャレンジ PHP5.3

PHP

PHPのnewはこれで置き換えだ - なんたらノート 第二期 で書いたのは、どうもPHP5.3ではダメっぽいです。PHP5.3では、evalの実行コンテキストが、関数内ではなくグローバルになる(でも変数はローカルのをレキシカルに束縛してる)というトリビアがありました…

jEdit日本語リソース for 4.3pre18

jEdit日本語の4.3pre18です。ダウンロードはこちら なんたらノート 出張所 jEditjEditインストール先のproperties(Linuxのパッケージによっては、sharedとかにあったりする)にjedit_gui.propsファイルをコピーします。

PHPで動的継承

PHP

Rubyにある特異クラスや特異メソッドの便利さを、PHPでも実現してみようと試みました。Rubyの特異クラスは、すでにインスタンス化された、クラス不明なオブジェクトに、オーバーライドでメソッドを追加するものです。特異クラスはスクリプト言語ならではの機…

PMはもはやDS、いっぽうネットウォーカーもFlash対応

今日(というか昨日)ヨドバシで、シャープのネットウォーカーと工人舎のPMを触ってきました。PMのほうの電源がオフになっていたので、あくまで、手に持った感触だけのレポートです。 ネットウォーカーはUbuntuが動いてるとこに感心したものの、ガワのほうはや…

キレやすいのは誰だ -- 別の視点で考えてみました

http://mazzan.at.infoseek.co.jp/lesson2.html が新鮮だったので、そこから別の視点でfriendfeedで書いてるうちに、文章が長くなったので読みやすい場所に書こうと思いました。 平成2年に少年(15歳)だった者(もっとも犯罪傾向がない世代)は現在33才で、昭…

PHPにPATHを通すとPidginがクラッシュする

Windowsで、最近のPHPにPATHを通すと、Pidginがクラッシュします。どうやら、php.exeと同じフォルダに置かれるようになった、aspell-15.dllが競合している模様。 PidginはスペルチェックにAspellを使っていて、それはPidginとは異なるフォルダにインストール…

PHP5.3どのビルドを使うのか

PHP

http://windows.php.net/download/にて、計4種類のPHP5.3 Windowsバイナリが配布されています。というか、すでに5.2の時点で2種類ありましたが。これらのうち、どれを選ぶべきかという基準について、軽く調べたり推測したりしたメモです。 VC6かVC9 これは、…

jEdit の SVNPlugin イイ!

jEdit 4.3-pre17 用に、SVNPlugin というすばらしいプラグインがありました。 Eclipse でいう、 Subclipse とか Subversive みたいなことができます。 jEdit から移動することなく、Subversion コマンド(Update/Commit)が使える。 Project Viewer に変更ステ…

インストーラが起動したプログラムは権限昇格済み

Windows VistaのUACはけっこう厳しい、というか、うるさいんだけど、これは穴じゃないかと思う現象がありました。 インターネットからプログラムのインストーラをダウンロード インストールしようとすると、インストール前に権限昇格を問うダイアログが出る …

エルビスよ、aかbかcかdから肯定値を取り出せ

新しいPHPとかGroovyとか次のJavaとか、三項演算子の省略でElvis演算子(?:)なるものがあるそうで、どのぐらいおいしいのかを考えました。エルビス演算子へのニーズって、三項演算子(cond ? a : b)はやっぱり評価されるべきものだよね、ってことを意味してる…

PHPのnewはこれで置き換えだ

PHP

PHPの new は、オブジェクト生成後、変数に格納してからでないとそのメソッドが呼べません。ああダサいダサい。 myMethod(); //構文エラー $tmp = new MyClass(); $tmp->myMethod(); //こうしないといけない ?> あと、どこで競合するかわからない__autoload…

関数とは、手続きを書く場所を移動させるためにあるのではない

プログラム言語における関数とは、手続きを書く場所を移動させるためにあるのではない。単純で明確な意味を持つ言葉を定義すること。言葉を組み合わせて無限の意味を表すのが、まさに「言語」の本質。そのためには、関数のI/Oを最小化すること。便利かもしれ…

イテレータオブジェクトのバグを再現した

PHP

PHP5.3.6ではこの問題が発生しなくなっていました。きのうの http://d.hatena.ne.jp/tanakahisateru/20090827/1251379409 を再現できるコードをのっけときます。

PHP言語エンジンのif文の数は世界一ぃ〜〜〜

PHP

PHP5.3.6ではこの問題が発生しなくなっていました。PHP5.2.6なんだけど。イテレータでまわせるオブジェクトを書けるので、まわしてみた。