2011年6月29日水曜日

PHPの知られざる機能

PHPってこんな機能もあったんだ?っていう、存在感の薄い仕様について(ユーザ関数編) - ふじこのプログラミング奮闘記
そういえばPHPってこんな機能もあったよね!
ぜんぜん使っていないけど!!

関数の入れ子(ネスト)ができる
関数を動的な名前で呼び出せる(可変関数)
関数の戻り値を参照渡しにできる
など。

普通は使わないし、使われると分かりづらくなる...

2011年6月27日月曜日

Blogger (blogspot.com)に Facebookの「いいね!」ボタンを設置する方法

Facebook いいねボタンを設置 | iKnowHow
Bloggerへの設置
生成したソースコードをBloggerへ導入した例をご紹介します。
(以下、「HTML編集」+「ウィジェットテンプレートを展開」で行います)

の下あたりに以下を埋め込みます

Facebookアカウント作成が必須って本当かな?
ここのHTMLをURLを変えて入れれば済みそうだけど...?

OGP (The Open Graph Protocol)の仕様

The Open Graph Protocol
The Open Graph protocol enables any web page to become a rich object in a social graph. For instance, this is used on Facebook to enable any web page to have the same functionality as a Facebook Page.

下記の4つが必須。URLリンター - Facebook開発者で試すと、省略した場合でもそれなりのもので補完してくれる?
  • og:title - The title of your object as it should appear within the graph, e.g., "The Rock".
  • og:type - The type of your object, e.g., "movie". Depending on the type you specify, other properties may also be required.
  • og:image - An image URL which should represent your object within the graph.
  • og:url


.

2011年6月23日木曜日

Facebookの「知り合いかも?」

facebookで「知り合いかも?」の欄に共通の友人が居ないのにここに挙げられる人は... - Yahoo!知恵袋
私の経験ですが、Facebookは利用者がFacebook上で知人のeメールアドレスを入れて検索したことを記録しているようです。

だからあの人が出てきたのか!な?

PHPで共有フォルダにアクセスする設定

PHP(IIS5)から共有フォルダ等へのアクセス権について - Windows Server Insider - @IT
「匿名でアクセスできる共有」とANONYMOUS LOGONに必要な権限を付与してやれば
OKのようです。

「failed to open stream: Permission denied」なんて怒られる場合、上記設定変更で解消するらしい。

2011年6月17日金曜日

PostgreSQLが遅い実行プランを選択してしまう

PostgreSQLを遅くしている犯人はどこだ?(2/3)
一方正しい統計情報になっている場合、「良い例」のように、左側と右側のrowsの値が近づきます。テーブルに含まれるレコード数が100万件を超えるようなケースや、分布が一定の傾向を示さずにばらばらの状態である場合には、ANALYZEによる統計情報用のサンプル数を増やすために「ALTER TABLE SET STATISTICS」文や設定パラメータ「default_statistics_target」で、設定する値を100より大きくするとよい場合もあります。

ふむふむ。
具体的な「ALTER TABLE SET STATISTICS」の使い方についてはPOSTGRESQL 検索スピードが遅い - BIGLOBEなんでも相談室を参考に。

PostgreSQLで簡単に昨日や今日や明日のタイムスタンプを得る方法

Note - imatakutin's Mind Map: PostgreSQLのSQLで変数を使う
知らなかった。

'yesterday'がtimestampにキャストできるなんて。

SELECT CAST('yesterday' as timestamp)
"2009-08-25 00:00:00"

これは便利かも。

2011年6月15日水曜日

ブラウザ上でコードを実行できるサイト

codepad
codepad is an online compiler/interpreter, and a simple collaboration tool.
Paste your code below, and codepad will run it and give you a short URL you can use to share it in chat or email.
ブラウザ上で書いたソースコードをSubmitすると実行結果を表示してくれる。エラーの場合はエラー情報を表示してくれる。

対応しているプログラム言語は、
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl

気軽に動かせる実行環境が手元に無いときにとても便利。
ソースコードを書くのがテキストエリアじゃなくてリッチエディタだったらもっと便利なのに。

ところでDは要るのか?(どのDだろ?)
JavaScriptも入れればいいのに。


2011年6月14日火曜日

日本語ファイル名を扱えるらしい分散バージョン管理ツール

Bazaarでござ~る。猿でもできる分散バージョン管理“超”入門 (2/4) - @IT
Bazaarは最初から国際化対応しているので、メッセージやファイル名に日本語を問題なく使えます。GitやMercurialのように文字化けしないようにする設定に悩む必要はありません。

Subversionはサーバがいるし、gitやhgは日本語駄目みたいだし、これを試すか?

2011年6月10日金曜日

Dokuwikiに ?do=checkで PHPバージョンの表示等をさせない方法

Disabling ?do=check - DokuWiki User Forum
local.php

$conf['disableactions'] = 'debug,check';

見せちゃまずいのはPHPのバージョンくらいかな

2011年6月9日木曜日

RE: Togetter は Twitter API の利用規約を遵守してほしい

Togetter は Twitter API の利用規約を遵守してほしい
TwitterのユーザーはAPI経由でツイートを再利用されることに同意していますが、そのAPIには利用規約があります。そのひとつが「ユーザーが削除したツイートはAPIを利用したサービスの方でも削除されなければならない」というもの。ならば、本来は削除すべきツイートを表示し続けるのは、無断転載に他なりません。

わざと書いてるのかどうかは分からないけど、いくつか感想を。

Twitter API利用規約からの抜粋で、
I.4.A. Exporting Twitter Content to a datastore as a service or other cloud based service, however, is not permitted.
を転載しててこれだけ読むとTweetをDBやファイルに保存することも許されてないように読めるが、実は元の文は、
You may export or extract non-programmatic, GUI-driven Twitter Content
as a PDF or spreadsheet by using "save as" or similar functionality.
Exporting Twitter Content to a datastore as a service or other cloud
based service, however, is not permitted.
となっている。(API Terms of Service | dev.twitter.com
分かっていて誤読を誘うように切り取ったのかな?

そもそもTweetを外部のサーバに保存できないのでは毎回API経由で取りに行かなくてはならなくなりTwitter側が大変なことになるし現実的にTwitter側はそんなこと望まないでしょう。


Togetter側には削除機能があるみたいだけどおそらくログインが必要なのではないだろうか。
もう一歩踏み込めば、ログインしなくても「Tweetが削除または非公開になっていたらTogetter側からも削除する」というボタンなり申請フォームなりを実装すればユーザビリティは上がるのではないだろうか。

魚拓的に使いたいなら、Togetterじゃなくてもいくらでもあるんだし。

2011年6月8日水曜日

Google Code上の ソースコードがブラウザから編集可能になってた

Make quick fixes quicker on Google Project Hosting - The official Google Code blog
Today the Google Project Hosting team is announcing a new feature for you: the ability to edit your source code files directly in the browser, in our online editor powered by CodeMirror.

今年の1月かららしい。githubやuserscripts.orgのように、ブラウザでソースコードを変更できる。自分参加してるプロジェクトの場合はそのままcommitできるようだ。そうでないプロジェクトの場合はパッチを投げることになるみたい。

2011年6月3日金曜日

Firefoxで動かない innerText、 IEで動かない textContent

DOM の textContent と innerText について - フリーフォーム フリークアウト
textContent は W3C で標準化されたプロパティです. IE 以外のブラウザがサポートしています.

innerText は IE4 から実装されている IE の独自機能です. Firefox 以外のすべてのブラウザがサポートしています. IE 独自のものなので明文化された仕様はありません.

挙動も全く同じではないらしい。

JavaScriptで簡単にリンク要素を生成する方法

JavaScriptのコードサイズを圧縮するための変態テクニック集がすごい | IDEA*IDEA
html="<a href='"+url+"'>"+text+"</a>" // before
html=text.link(url) // after

JavaScriptにこんな能力があったとは。
ただし(beforeの方にも当てはまることだが)urlやtextの中身は(エスケープ不要と分かっている場合意外は)エスケープが必要。

jQueryだったらurlもテキストもエスケープしてくれる。
$("<a />").text(text).attr("href", url);



RE: wise9 › JavaとJavaScriptの20年戦争

wise9 › JavaとJavaScriptの20年戦争
そして西暦2003年にECMAscript4の仕様策定がマイクロソフトとネットスケープの両者で決裂すると、その仕様の一部はAdobeが引き継ぎ、ActionScriptとしてFlashに搭載されるに至った。

そう。実はFlashとJavaScriptは兄弟関係にあるのだ。

FlashイコールActionScriptではないから、FlashとJavaScriptは叔父さん/甥っ子の関係だと思う。(Flashの子どもの一人がActionScriptと考えたほうがどちらかと言えば合ってる気がする。)

あとJavaScriptの可能性に気づいていてかつ将来を決めたのは、何と言ってもMicrosoftのOutlookチームだった気がする。OutlookのWeb版を作るために、IE/JScriptにXML HTTP Requestを組み込んだのが。JavaScriptでDOMをぐりぐりいじるのもその辺りが先駆者?早すぎたMS Ajax。

printf() / sprintf()での整数の精度指定

printf()関数
精度はデータ型によって様々な意味を持ちます
たとえば、文字列であれば出力する最大文字数の指定になり
指定数以上の文字数を出力することはできず、あふれた文字は切り捨てられます

整数の場合、精度がゼロ埋めを伴う桁数で、フィールド幅がスペース埋めを伴う桁数か。ややこしい。

2011年6月2日木曜日

IEのことかー!

World IPv6 Day 2011年6月8日 IPv6トライアル
特定サイトに繋がらない -> ダメなアプリケーション

XPはIE9に上げられないし。駄目ねぇ。

IPv6対応状況を調べられるサイト

あなたの IPv6 をテストしましょう。
あなたの事前対応点
10/10 コンテンツ側が IPv4 および IPv6 を提供した際の、あなたの IPv4 の安定性と準備状況
0/10 コンテンツ側が IPv6 のみになった際の、あなたの IPv6 の安定性と準備状況

クライアントサイドはともかく、サーバサイドはそろそろ考えないといけないんだろうか。

ブログ アーカイブ

カテゴリー