2011年8月31日水曜日

イントラネットでIE8が勝手に IE7互換表示をするのを防ぐ設定

IE8が互換表示になりバグと誤解するのを回避する方法 | エンタープライズ | マイコミジャーナル
メニューからツール、互換表示設定を選択し、「互換表示でイントラネットサイトを表示する」のチェックをはずしておけば、そうした問題を避けることができる。

これだ

iPhoneでクレジットカード決済の Squareの分かりやすい説明

アメリカより (携帯・モバイル・流通業ITブログ) » ブログアーカイブ » iPhoneでクレジットカード決済-Square
iPhone/iPadでクレジットカード決済(マーチャントとして・・・)が出来る端末、Squareに登録しました。
アンドロイド端末でも使用可能だそうです。

写真付きで非常に分かりやすい。

2011年8月30日火曜日

Chromeは autocompleteなテキストボックスの背景色を薄黄色にする

Google Chromeの自動入力欄の色を変更する。 | ハナモゲラボ / 試行錯誤のPC人生
Google Chromeにはユーザー名やパスワードなどの入力欄に
前回入力した物を記憶させて表示する「自動入力」機能がついてます。

デフォルトのままだと、この入力欄を黄色でハイライト表示しよるんです。

user agent stylesheetというので下記のように定義されていた。
input:-webkit-autofill {
  1. background-color: #FAFFBD;
  2. background-image: none;
  3. color: black;
}




はてなブックマークの歴代最多ブックマークランキング

人気エントリー - はてなブックマーク
はてなブックマーク > 人気エントリー

Yahoo!Japanが1万ごえ、さらに7000ごえが続くとは!

このページの出し方すぐ忘れる。

Pythonで 短縮URLを元に戻す方法

短縮URLを1行で展開する@Python : Shibuya Blog
てな感じになります。urllib2.urlopen()でリソースを開いたのち、geturl()で展開したURLを取得できます。

これは便利そう。Google AppEngineでも使えるか?

Twitter上の短縮URLを Twitter Search APIを使って展開

twitterの短縮URLを展開: PHPメモ
調べたらtwitterで短縮URLの展開APIが提供されていました。

ふむふむ

2011年8月26日金曜日

Thickboxによる画像表示が Google Chromeで動かない

ローディングバーが出たまま、画像が表示されない。FirefoxやIEは問題ない。

これと同じ箇所が原因だった。
↓
最新版のjQueryとThickboxの組み合わせでrel属性のグルーピングができないエラーと回避方法。/ライブラリー : アファメーションで独立・起業・夢実現。「いきなり!社長宣言!!」-“夢は口に出すことで実現する!”というアファメーション
実は、ThickboxとjQueryのバージョンの組み合わせによっては、このrel属性によるグルーピングができない(エラー)という現象が起こってしまうのです。

jQueryの仕様変更により、DOM要素のrel属性の指定が@relではできなくなり、Chromeの場合はその場合に固まってしまうようだ。

2011年8月24日水曜日

それでもGoogle Docsで古いバージョンのドキュメントを作成する方法

ずいぶん前にGoogle Docsのドキュメントが一新した時に、ブログへの投稿など一部の機能が失われた。
でも、 https://docs.google.com/?action=newdoc というURLを直接開けば、古いバージョンの新規ドキュメントを開くことができた。

が、それができなくなっていた。

Finally: Single page documents and blog publishing now gone - Google Docs Help
Got a nasty surprise a few minutes ago. The single page google docs is now gone, and with it blog publishing. https://docs.google.com/?action=newdoc produces a pseudo-paper word doc, telling us there will be no paperless office, and the power of direct publishing is also gone, which I used a lot.

例のURLにアクセスしても、新しいバージョンの新規ドキュメントが開いてしまう。
新しいバージョンには引用やブログへの投稿機能が無いので困る。

でも、それでもまだ古いバージョンのドキュメントを作る方法はあった。
既存の古いバージョンのドキュメントから、「ファイル」→「コピーを作成」で作れるのだ。コピー用に、内容が空のドキュメントを1つ作っておくと便利だろう。

Google側の進め方を見ると、この方法もそのうちに(1年くらいで?)使えなくなりそうだなあ。

Google Mapsは矢印キーで地図を移動できる

Google マップについて - マップ ヘルプ
キーボード ショートカット - 矢印キーで上下左右にスクロールします。PageUp、PageDown、Home、End キーでさらに広い範囲を移動できます。プラス(+)キーでズームイン、マイナス(-)キーでズームアウトします。
地図を1回クリックすると、十字キー(カーソルキー)で地図を移動できるようになる。

2011年8月22日月曜日

IEでは JavaScriptで start()という関数を定義するとエラーになる

予約語一覧
IE5、IE6.0では、startという名前の関数をボタンクリックなどのイベントから使おうとすると、「このオブジェクトではサポートされていない操作です」などというエラーが出ます。予約語ではありませんが、startという関数を作らないようにしましょう。

IE8でも怒られた。ボタン等から呼ばなければ良いのかな?

jQuery 3兄弟


  1. jQuery "write less, do more."
  2. jQuery UI "user interface"
  3. jQuery Mobile "mobile framework"
末っ子のMobileはまだBeta版。
ページ最上部のリンクでは、まだMobileへのリンクはない(Bolg等からも。)Betaが取れたら変わるのかな?

UIだけファビコンが違う。
UIは独立したBlogを持ってるけど、Mobileはどうなるのかな。

2011年8月19日金曜日

PHPはリクエストのデータのドットをアンダーバーに変換する

PHP: 外部から来る変数 - Manual
変数名のドットやスペースはアンダースコアに変換されます。 たとえば<input name="a.b" /> は $_REQUEST["a_b"] となります。

影響があるのは$_GET, $_POST, $_COOKIE。
あまりドットを入れた名前は使わないから知らなかった。
COOKIEでドット繋ぎとアンダーバー繋ぎがある場合、ドット繋ぎの方をアンダーバーに変換して渡されるので注意。(ケースバイケース?)
例:a.b=1, a_b=2 → 受け取った a_bは1

2011年8月18日木曜日

JavaScriptの 標準Objectを拡張するライブラリ

Sugar: A simple Javascript library for working with native objects.

What is Sugar?

Sugar is a Javascript library for working with native objects. It is designed to be intuitive, unobtrusive, and let you do more with less code.

via 直感的なJavaScriptプログラミングを実現する新ライブラリ「Sugar」 | エンタープライズ | マイコミジャーナル
.

Codepadで 数値や文字列を出力するサンプル

C++ code - 7 lines - codepad
#include <stdio.h>

int main()
{
  printf("%d\n", 123);
  puts("abc");
}

数値はprintfか。

codepadでの Cや C++でのシンプルなコードのサンプル

codepad を試してみました。 | 株式会社きじねこ
きまぐれに codepad で遊んでみました。codepad は、ウェブブラウザで入力したソースコードを実行できるサイトです。対応しているプログラム言語は、C, C++, D, Haskell, Lua, OCaml, PHP, Perl, Python, Ruby, Scheme, Tcl です。

コピペ用に。

特定のビットが1か0かを調べる方法

C言語入門::ビット演算色々 - びんずめ堂
nビット目を取り出す

nビットシフトしてから,最下位ビットのみを取り出せばいいわけです.

ふむふむ

2011年8月5日金曜日

Google Maps APIで斜めの航空写真が表示できる場所

OverviewMapControlと鳥瞰図タイルがリリース: Oooooops! Goooogle Maps
なお、鳥瞰図(バードビュー)の画像が利用出来るのは、次の地図にマーカーがある地域です。

日本はまだ無い。

2011年8月4日木曜日

YUI3にカレンダー登場

Calendar - YUI Library
In addition to the core logic for displaying a date range and allowing date selection and navigation, Calendar also provides options for custom date filtering, custom formatting of individual dates, various display options, internationalization, flexible templates, additional navigation plugins, and more.

次期リリースのYUI3.4に、満を持してCalendar Widgetが登場。

PHP5.4では配列の生成にシュガーシンタックスが使える?

PHP5.4.0 alpha3が準備中らしい - Do You PHP はてな
α2からの変更点の詳細はNEWSファイルの差分を参照してもらうとして、今回の目玉は、当然

. Short array syntax, see UPGRADING guide for full details

[0, 1, 2]のようにできるようだ。
連想配列の場合はどっちのやり方になったんだろう?
個人的にはJavaScriptに合わせて[]ではなく{}にして、かつ、コロンでなくPHPっぽくアローでつないで欲しい。{ "こんな" => "感じに" }

CentOS6の PHPのバージョンは 5.3.2らしい

CentOS6 [がらくたネット]
RHEL6とSL6で分かった情報を備忘録しとこう。準備だね。SL6でもおんなじバージョンだね。(当たり前か…)
CentOS6の情報も追記(2011/07/10)
注記がないところは同じバージョンって事。っか、ほぼ一緒。

やっと5.3系になるのか。しかし5.3.2では結局古過ぎる...

Apacheで 名前ベースのVirtualHostで別のサーバ証明書を使う

ApacheのSNIについて [がらくたネット]
ブラウザの対応はほぼできてきてる感ありです。
注意点はブラウザは対応しているバージョンであるがOS側が対応していないって組み合わせがあること。

IE7以降が対応というのはいいんだけど、WinXPが駄目ってのがネックか。

2011年8月2日火曜日

PDO::inTransaction()は PostgreSQL以外でも使える

wakuworks
PDO::inTransaction http://ow.ly/3YATg “今のところ、このメソッドを実装しているのは PostgreSQL ドライバだけであることに注意しましょう。”(英語マニュアルでも同様の記述)が嘘すぎて吹いた。

たぶんマニュアルの記述が古いのだろう。
たしかにMySQLでもエラーにならなかった。

古いPHP(5.3.1)では普通にFatal Errorになった。

2011年8月1日月曜日

Google Mapsでマウスで選択した範囲を拡大表示するライブラリ

DragZoomControl Documentation: Examples
You can add the DragZoomControl to any Google map with a couple of lines of code.

V2用だけど。V3用もあるのかな?

2011年7月28日木曜日

マスタ管理等に使えそうなPHP製のリッチなData Grid

phpGrid | Instant PHP Datagrid Solution
Grid-based editing, create, read, update and delete (CRUD), are the most common operations for web developers. With phpGrid web-based data editing is easy. Even with little programming background, one can develop professional looking, AJAX-enabled PHP datagrids in just a few minutes.

でも無償版はデータの編集等ができないらしい。
UIにはjqGrid(とjQuery UI)を使っている。

2011年7月27日水曜日

Apacheで 特定のドメイン(VirtualHost)だけアクセス拒否する設定

mod_authz_host - Apache HTTP サーバ
mod_authz_host により提供されるディレクティブは サーバの特定の部分への アクセスを制御するために , , と .htaccess ファイルで使用されます。クライアントのホスト名、IP アドレスや 環境変数として取得された、その他のリクエストの特徴に基づいて アクセス制御を行なうことができます。Allow と Deny ディレクティブは どのようなクライアントにアクセスを 許可する、しないかを指定するために使用されます。一方、 Order ディレクティブは デフォルトのアクセス状態と、 Allow ディレクティブと Deny ディレクティブとのお互いへの影響の仕方を設定します。


こんな感じか。403になる。404にはできない?
<VirtualHost *:80>
    ServerName www.example.com

    <Location ~ />
        Order Deny,Allow
        Deny from all
    </Location>
</VirtualHost>
.

2011年7月25日月曜日

Webkitは location.originが使える

JavaScript/jQuery method to find base URL from a string - Stack Overflow
Webkit browsers have window.location.origin. For others, I use the following code:

SafriでもChromeでも使える?
location.originは、location.protocol + "//" + location.hostnameと同じらしい。
(ポート番号やBasic認証のユーザー名やパスワードはどういう扱いなんだろ?)

2011年7月22日金曜日

jQueryの live()で使えるイベント

.live() – jQuery API
In jQuery 1.3.x only the following JavaScript events (in addition to custom events) could be bound with .live(): click, dblclick, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover, and mouseup.

As of jQuery 1.4 the .live() method supports custom events as well as all JavaScript events that bubble.
As of jQuery 1.4.1 even focus and blur work with live (mapping to the more appropriate, bubbling, events focusin and focusout).
As of jQuery 1.4.1 the hover event can be specified (mapping to mouseenter and mouseleave, which, in turn, are mapped to mouseover and mouseout).

showとかhiddenとかはないのか。

2011年7月21日木曜日

PHPExcel

PHPExcel の使い方 | Sun Limited Mt.
基本的な手順は下記のようになります。

PHPExcel クラスのオブジェクトを生成
作業するシートを指定
セルの値を更新
ファイルを出力

コードで書くと以下のようになります。

日本語のリファレンスはないのかな

2011年7月20日水曜日

テキストエディタのGinnieが更新再開していた

Ginnie Free Edition - Windows用タブ式MDIテキストエディタ - KNTWARE.NET
Version 1.0.0.85 Beta 最終更新日:2011/06/30

Windowsでは最強だと思うテキストエディタGinnieだが、長らく更新されていなかった。
でも先々月から更新を再開していたようだ。嬉しい。

Apacheの mod_rewriteで特定のホスト名(ドメイン)以外を全てリダイレクトさせる設定

TIPS: Apache - mod_rewrite
distraid.co.jp以外でのアクセスについては、全てdistraid.co.jpにリダイレクトさせています。 URLのホスト部以外はリダイレクト先に引き継いでいる為、ユーザーはリダイレクトを意識する事無くサイトを利用出来ます。

NCはnocaseの略。
.

2011年7月15日金曜日

jQuery EasyUIと jQuery UIの比較

タブやアコーディオンなど、様々なUI構築用のjQueryプラグイン30個以上をセットにしたフレームワーク・ jQuery EasyUI - かちびと.net
jQueryを使ったシンプルなユーザーインターフェースを構築する為のプラグイン30数個をワンセットにしているフレームワークです。

jQuery UIがCSS Framewrok+基本部品だけなのに対して、EasyUIの方はDataGridなどけっこう作りこまれた即戦力も取り揃えてる感じか。

でも一番必要性が高いDate Picker(Date Box)についてはjQuery UIの方が使いやすそうな感じが。日本語化とか。

2011年7月13日水曜日

なぜ日本ではStumbleUponが流行らないのだろう

stumbleupon!でマクロの情報収集 かわいい自分は「旅」に出そう
なにやら本国アメリカではtwitterよりも影響力があるらしい…という噂をきき、
とりあえず使ってみよう、といういつものノリで使ってみました。

それにしても、StumbleUpon!とは何なんだろう?

ということでざっくり日本語で調べてみたんですが、全然情報がありませんね。

TechCrunchでは当たり前のように出てくるのに、日本ではその存在自体が無視されているようなサービスはStumbleUponくらいではないだろうか?

2011年7月12日火曜日

続 mysqldumpの文字化け対策

mysqldump で文字化け (マルッと!)
確かに、DEFAULT CHARSET=latin1 となっている。

これを sed で変換してリストアするスクリプトを書いてみた。

このUTF-8への置換も必要みたい。

mysqldumpの文字化け対策

ヒビノアワ: UTF-8のデータベースをmysqldumpすると文字化けする件
これをバックアップしたいなーと思って、mysqldump してみるんだけど、なんか、文字化けしてる。phpMyAdminでもエクスポートするといい感じの文字化け。

パスワードを履歴に残さない場合はこんな感じか。
mysqldump -uUser -p --compact --default-character-set=binary dbname > filename.sql
--compactはコメントを減らしてファイルサイズを小さくする。(劇的には変わらない?)

Linuxのファイル圧縮・解凍コマンドまとめ

Linuxの圧縮/解凍コマンドまとめ | dTblog | デザインとプログラムの境界をさまようブログ
マイナーな圧縮形式になるとコマンドを忘れがちなので、まとめのメモ。

gzipやtarからWindowsのためのzipやlhaまで簡潔にまとまっている。

PHPで月の最後の日付を簡単に取得する方法

[PHP] 月の末日を取得する | around design
date関数の”t”を使うと、当月の末日を簡単に取得できます。
date("Y-m-t");

date()の"t"は「指定した月の日数」。地味に便利。

参考:ローカルの日付/時刻を書式化する - PHP 5.3 日本語マニュアル

2011年7月11日月曜日

Google Maps API V3のポリゴン・ポリライン編集機能は 8月リリース?

Issue 2432 - gmaps-api-issues - Feature Request: Add support for enableDrawing and enableEditing in V3 - Google Maps API bug reports and feature requests - Google Project Hosting
Can't deny that it is taking longer than we had expected, but this is still in the pipeline. Somewhat hesitant to commit precisely given how unsuccessful we have been at hitting our predicted dates so far, but right now we're aiming for mid quarter.

V2にあってV3に無い最後(ほかに何かあったっけ?)の大物、いよいよ登場か?

2011年7月7日木曜日

Cで文字列の変数を初期化する

データの扱い
※ 配列の初期化では、初期化の足りない要素は 0 で初期化されます。
 int no[5] = {0};
とすると、配列no の 5個の要素全てに 0 を設定することが出来ます。
また、
 int no[5] = {1};
とすると、{ 1, 0, 0, 0, 0 } で初期化されます。
※ この初期化は宣言時のみ可能です。
宣言後に初期化を行おうとすると、コンパイルエラー
となります。
 int no[5];
 no[] = { 1, 2, 3, 4, 5 }; ==> コンパイルエラー

ループ内などで変数を再度初期化したい場合はmemset()とかでやるのが定石か。
.

起業家のための10ヶ条

GoDaddy 22億5000万ドルで売却へ | DomainsNews.net
ゆかしメディアにてCEOのボブ・パーソンズが以前語ったビリオネアになるための心得を特集していたので紹介

これ系のもので、今までで一番しっくりというかぐっときた。

特に「最初はなかなかうまくいかない。もしも最初が簡単なら、誰もがやっている。」とか「あきらめようとの誘惑にかられた時こそ、成功の直前にいる。」とか。

2011年7月6日水曜日

Linuxをバージョンアップしたら VMware Serverが動かなくなった

vmware-config.plの再実行 « PC総合研究所
FC5をホストOSとしているんだけど、昨日、ようやくyum updateしてカーネルのバージョンが上がった。で、いやな予感がしていたんだけど再起動後、案の定、VMware Serverが立ち上がってこない。

カーネルを更新するたびに/usr/bin/vmware-config.plを実行しなければいけないらしい。

WinSCPで Amazon EC2に接続する方法

WinSCPでAmazon EC2にファイルを転送する方法 - プログラマになりたい
そしてファイル->秘密鍵の読み込みでファイルを指定して、成功したというメッセージが出たら秘密鍵の保存をすれば大丈夫です。

EC2のssh用のssh.com形式とはまた違うみたい。

Inquiring remote APICが failedになり Linuxの起動が無限ループする問題の解決方法

Why do I get some APIC error on bootup if I "Enable mouse/keyboard" in my MoBo bios? [Archive] - Ubuntu Forums

The only solution to the above problem is to disable USB mouse/keyboard during bootup in my during bootup (USB mouse/keyboard still works, it's just I can't use them before Ubuntu is loaded -- in the Live CD, etc.) in my motherboard bios.

GRUBまでは起動するがLinuxが起動せず、タイトルのような状態になる場合について。
起動オプションのquietを外すと上記リンク先のようなログが出る。
対策は、BIOSの設定でUSBキーボードとUSBマウスをDisabledにすれば、発生しなくなる。

2011年7月5日火曜日

Linuxで kernel起動時に止まってしまう問題の解決方法

№1613 FC2/FC4インストール直後の起動不能処置 - Web Patio - Fedoraで自宅サーバー構築
kernelオプションに、edd=offを追加することで、問題を回避できることが判明しました。

メモ。
.

2011年7月4日月曜日

CentOSをシングルモードで起動する方法

◇システムが起動しないときは◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆
しかし既にシステムが起動できない状態にあるときにはこういった方法は使えませんので強制的にシングルユーザーモードで起動することになります。

シングルユーザーモードではネットワークが利用できませんから、リモートではなくサーバー機を直接操作することになります。

メモ。
.

Googleリアルタイム検索は復活するようだ

Googleリアルタイム検索が消えている - ITmedia ニュース
Googleリアルタイム検索の公式Twitterアカウントは日本時間の4日午後3時過ぎにこの件をツイートで説明。現在はリアルタイム検索をいったん停止した上でソーシャルサービス「Google+」との統合を試みているという。

一時的に停止中らしい。Google+のために。

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 の安定性と準備状況

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

2011年5月26日木曜日

エクスプローラのコンテキストメニューから邪魔なのを削除

Windowsのエクスプローラの右クリックメニューが増えすぎて邪魔なので削除したい。(GrooveとかMS Office関連が使わないのに場所を取る。)


このソフトでできた。

窓の杜 - 【NEWS】エクスプローラの右クリックメニューから不要な項目を削除「FileMenu Tools」
「FileMenu Tools」は、エクスプローラの右クリックメニューから不要な項目を削除できるソフト。ファイル・フォルダ・ドライブでそれぞれ個別に削除できるのが特長。特定のアプリケーションをインストールした際に、強制的に右クリックメニューへ追加されてしまった項目を整理したい場合などに便利だ。

日本語化していない場合は「Commands of other applications」から。
このソフト自体が1つメニューを追加してしまうが、メニューの「Options」から非表示にできる。

でもOneNoteがなぜか削除できない...

2011年5月25日水曜日

Google Maps API V3に 3つ目のライブラリ登場

Google Maps Javascript API V3 Places Library - Google Maps JavaScript API V3 - Google Code
The Google Places JavaScript library's functions enable your application to search for Places (defined in this API as establishments, geographic locations, or prominent points of interest) contained within a defined area, such as the bounds of a map, or around a fixed point.

例えばキーワードで検索する時に指定範囲内のデータを使ったサジェストができるみたい。
他に何が出来るか読んでみる。

2011年5月23日月曜日

Mac Windowsの標準日本語フォント一覧

標準の日本語フォント / もうパンツはかない
それぞれのOSで標準添付されてると思われる日本語フォントをCSSの指定で表示させてみました。小さい方の字は16ピクセル、大きい方は x-large とCSS上で指定しています。使用ブラウザは各環境の標準ブラウザ(MacはSafari、WindowsはIE)です。

これは素晴らしい

Firefox4対応版の Deliciousアドオンが出てた

Delicious Extension :: Add-ons for Firefox
Delicious Firefox 4.0 Extension (Beta) integrates your bookmarks and tags with Firefox and syncs them for convenient access. For more information, go to: www.avos.com/terms and www.avos.com/faq

Beta版だけど。
別アドオン扱いなので自動Updateされないので気付けない。

以前のDelicious Bookmarksは作者がYahooとAVOSの連名になってるけど、この「Delicious Extension」の方はAVOSが作者になってるからAVOSに移ってからリリースされたのかな。

2011年5月20日金曜日

jQuery 1.6.xでの attr()と prop()についてのまとめ

jQuery1.6のattr()で困ったら、1.6.1にすればいいみたい。 | Ginpen.com
幾つかの属性、プロパティについて、どちらのメソッドを使うべきかを示します。一部のプロパティは、過渡期的な措置として.attr()で動くだけである点は注意してください。

わかりやすくまとまっている

仕事が速い...

PHPでsleep sort - Shin x blog
コロンブスの卵的なソートアルゴリズム「sleep sort」をPHPで実装してみました。

pcntl使うのかー
.

C++で 無名enum

const, static, enum : kei@sodan
単にenumとして定数を宣言します。enumの型自体を使うことはないから、無名enumでOKです。
ちょっと反則っぽいけど、定数同士の比較しか行わないならこの方法がメジャーです。

これか!

2011年5月16日月曜日

JavaScriptでハッシュをマージするのは意外に面倒

Merging associative arrays javascript - Stack Overflow
What's the best/standard way of merging two associative arrays in javascript? Does everyone just do it by rolling their own for loop?

Objectのmerge(またはextend, mixinなど)は各フレームワークで実装されるほど、ちょっと面倒らしい。(自分でできないこともないが、毎回やるのは面倒な程度に。)

プリミティブな値だけを持つハッシュなら単純なループでコピーでいいのかな。

2011年5月9日月曜日

Twitterの特定のユーザーの Tweetを RSSで購読する方法

TwitterでRSSフィードを取得したい場合 - Mémorandum
以前は、Twitterでツイートを公開しているアカウントはRSSのアイコンが表示されていたのに、 デザインが変わったらRSSのアイコンが無くなってしまいました。

RSSへのリンクがいつの間にか無くなっていた。でもフィードのURL自体は今まで通り有効。

2011年5月6日金曜日

Twitter APIの OAuthの説明ページ

Authenticating Requests with OAuth | dev.twitter.com
To use the Twitter API, the first thing you have to do is register a client application. Each client application you register will be provisioned a consumer key and secret. This key and secret scheme is similar to the public and private keys used in protocols such as ssh for those who are familiar. This key and secret will be used, in conjunction with an OAuth library in your programming language of choice, to sign every request you make to the API. It is through this signing process that we trust that the traffic that identifies itself as you is, in fact, you.

結局本家が一番分かりやすい

OAuth 1.0の脆弱性

OAuthと周辺技術の勉強会 — ありえるえりあ
攻撃者がreq-tokenを覚えておけば、被害者がアクセス許可を出した後、req-token(authed)を使って6.2.3の処理を実行すれば、被害者になりすませる

そういうことだったのか

2011年4月28日木曜日

さらに改良されたclearfix

[CSS]スタイルシートの量を少し減らした、新しいclearfix -micro clearfix | コリス
この新しいclearfixの対応ブラウザは、下記の通りです。

Firefox 2+
Safari 2+
Chrome
Opera 9.27+
IE 6+, IE Mac

IE6があるうちはclearfixもそう変わらないだろうなと思っていたが、先日改良版が出たと思ったらさらに改良版が出た。

dispaly:tableという珍しいのを使うのが肝かな?

YouTube創業者が Delicious.comを Yahooから買い取った

Yahoo、DeliciousをYouTubeのファウンダー2人に売却(公式発表)
本日(米国時間4/27)、YouTubeの共同ファウンダー、Chad HurleyとSteve ChenはDeliciousのテクノロジーをYahoo!から買収したことを発表した。彼らはユーザーに愛されてきたこのサービスの運営を継続し、さらにウェブでもっとも興味あるコンテンツを発見する機能をさらに改良、拡充する予定だ。

これでしばらくはDeliciousも安泰か?

2011年4月25日月曜日

Google検索結果で Greasemonkeyが動かなくなった問題を回避する方法

Twitter / @「にわかダンサー」: Google検索結果がスニペットを非同期に取るように ...
Google検索結果がスニペットを非同期に取るようになって、Greasemonkeyで独自に情報付加するツールが効かず困った。右上の歯車ボタンから「検索設定」→オートコンプリートの「検索ボックスに予測を表示しない。」を選択→保存で回避。いずれガード不能になるんだろうか。

GreasemonkeyやアドオンのOptimizeGoogleのフィルタが効かなくなって困っていたら、Googleリアルタイム検索で上記を見つけた。
真似してみたら解決した。

IE9では 正しいContent-Typeでないと JavaScriptがブロックされる場合がある

IEのMIMEタイプ取扱い方法の変更 - 技術ブログ読み日記
SCRIPT要素の応答にサーバが「X-Content-Type-Options: nosniff」ヘッダをつけた場合、正しいMIMEタイプでなければスクリプトをロードしない*1。
JSONPを使っているサイトは、MIMEタイプをちゃんと設定しないとうまく動かなくなるとのこと。

これかー。

PHPでJavaScriptファイルやCSSファイルを生成してるときにContent-Typeを指定しないと「☓☓☓☓からのスクリプトはMIMEのタイプが一致しないためブロックされました」ってなる。

2011年4月22日金曜日

IE6以下では botder-styleの dottedが dashedになるらしい

点線と破線の表示(IE/dashed、dotted):スタイルシート(CSS)辞典 - HTMLタグボード
CSSで定められる線種のスタイルはいくつかありますが、この中に点線(dotted)、破線(dashed)という線種があります。通常のブラウザでは、点線を構成する1点は「丸」で、一方、破線を構成する1点は「四角形」で表示するのが一般的です。

しかし、IEでは線の太さを1ピクセル(px)で表示した場合に限り、この点線と破線のスタイルに違いがなく、点線が破線で表示されてしまいます

ふむふむ
.

Twitter Searchも Thriftを採用したらしい

【これはすごい】Twitter検索を3倍高速化した記事の翻訳 - nokunoの日記
BlenderはNettyを使って構築されたThriftとHTTPのサービスである。NettyとはJavaで書かれた高スケーラブルなNIO(JavaのNew IOライブラリ)クライアントサーバーライブラリであり、Nettyによって様々なプロトコルのサーバーやクライアントを素早く簡単に開発できるようになる。我々は他の様々な競合、例えばMiraやJettyの中からNettyを選んだ。なぜならNettyはクリーンなAPIとよいドキュメントを持っていたし、より重要なことにTwitterの他のプロジェクトがこのフレームワークを使っていたからだ。NettyをThriftと組み合わせるために、我々は簡単なThriftのコーデックを書いた。ソケットから読み込むときにはNettyのチャンネルバッファから来るThriftのリクエストをデコードし、ソケットに書きこむときにはThriftのレスポンスにエンコードできるようにした。

ThriftはFacebookが作ったプログラム連携用のプロトコル。プログラム言語を越えてやりとりでき、わりとオーバーヘッドが少ないらしい。
キャズムを超えるか?

2011年4月21日木曜日

Google Page Speedのオンラインサービス版が出たらしい

Page Speed Online。

そして、Page SpeedとYSlow!を同時に試してくれるオンラインサービスもあるらしい。

Page Speed Online も出たよ  |  gaspanik weblog
たまたまオンライン版のPage Speedが出ましたが、「GTmetrix」というサイトではYahoo!のYSlow!とGoogleのPageSpeedの双方を同時にチェックできます。

試してみたらなかなかよいが、YSlow!のCDNの登録が(たぶん)できないのでそこが残念。

ディレクトリ内を再帰的にgrepする方法

あるディレクトリ以下を再帰的に grep する方法 - Shoulder.jp
あるディレクトリ以下を再帰的に grep するには、いくつかの方法があるが、よく使うのは、検索したいあるディレクトリまで行ってから以下のコマンドを打つやり方である

メモメモ。
.

2011年4月19日火曜日

Amazon Web Serviceに Flash Media Serverが追加された

【AWS発表】 Adobe Flash Media Serverを用いたライブストリーミングを従量課金で簡単に利用可能に - Amazon Web Services ブログ
今回の発表により、AWS上でAdobe Flash Media Serverを用いて、音声/ビデオのライブストリーミングを安価な従量課金で用いることが可能になりました。今回の構成では、Amazon EC2、 Amazon CloudFront、Amazon Route 53を用いており、 CloudFormationのテンプレートを用いて即座に起動することが可能です。

これは驚きの選択。Flash Media Server(以下FMS)といえば動画のLIVEストリーミング以外にも(録画済み)動画のストリーミング配信や音声のみの配信、チャットなどの双方向なやりとりもできるはずだが、やはりメインディッシュはLIVE動画(と音声)のストリーミングなのだろう。

配信側のクライアントはAdobe Flash Media Live Encoderというのを使うと楽らしい。
視聴側のクライアントはやはりFlashで自分で作るのかな。オープンソースなビューワはたくさんあるから、簡単にすませるならそういうのもありか。

Subversionで変更のあるファイルだけコピーする方法

Subversion のリポジトリから、変更されたファイルのみを取り出す方法 | バシャログ。
さて、Subversion のリポジトリから、「修正をかけたファイルのみをエクスポートしたい。しかもディレクトリ構成も維持したまま」という事例はよくあるかと思います。それが取り出せれば、そのまま上書きするだけで修正をアップでき、ミスも少なくなると思います。

RevisionのCompareした後にExportするのがポイントか。

HTTPS + Basic認証の脆弱性

どさにっき
Basic 認証は平文で送られるから盗聴される危険がある、HTTPS ならば暗号化されるから安全、といわれることがあるが、上記の手法は HTTPS を使っていても防ぐことはできない。

HTTPSを使ってるWebサーバでディレクトリごとに別の管理者がいて、なおかつ自由にBasic認証をかえられるというレアなけーすではあるが。

2011年4月15日金曜日

ブラウザ上でRubyを実行できるサイト

try ruby! (in your browser)
Try out Ruby code in the prompt above. In addition to Ruby's builtin methods, the following commands are available:

ブラウザ上でコンソールのようにRuby(1.9)を実行できる。
さらにhelpのチュートリアルに従って入力していけば、Ruby初心者用の操作を覚えられる。
すごい。

clear fix (子要素のfloatを 親要素:afterの clear: bothで解除する)

いまどき ? いまさら ? clear fix のコード | ヨモツネット
float によるレイアウトフローをクリアランスする手法として知られる通称 "clear fix"、昔は長いコードを書いていましたが、今ならもっと短くても問題ないです。

古典的な方法よりシンプルでスマートなclear fix。
探しても見つけにくそうなのでメモ。

2011年4月14日木曜日

Google Chromeに印刷プレビューがやってくる

Google Chromeに印刷プレビューが隠しコマンドで実装されてる!! …だけどうまく動かない >_< - オタしましょっ

…確かにプレビューページなんだけど、肝心の内容が表示されないのだ。

Chrome12(dev)で試してみたら、使い物にはならなかったけど内容が少し表示された。
(Google Adsenseのとこだけ普通に表示されて、その他の部分は真っ黒。)
開発は進んでいるようだ。

Web Fontsのスマートな書き方

Webフォント (Webfonts)を使う際の最新記述方法 Fontspring Syntax (The New Bulletproof@Font-Face Syntax) - フォントブログ
IE9以下ではsrc:で複数のフォントを指定すると無視されてしまう。
というバグがあり、かつローカル上のフォントをも探そうと試みます。これを回避するためには、EOTを先に指定しておき、かつ.eotの後に ? をつけておきます。こうすることで、IEには残りの記述をクエリーとして認識させることができるため、残りのWOFFやTTF/OTF、SVGの処理を無視させることができます。

なんというハック。
Google WebFonts Directoryに日本語フォントが登場するのはいつの日か...

2011年4月13日水曜日

日本語に適用できるWebFontsのまとめ

WebFonts として利用できるフリーの和文フォント | ヨモツネット
WebFonts はとても便利で今まで似なかった表現ができる仕組みですがフォントファイル使用時のライセンスは難しく、本当に使えるのかがわかりづらいです。そこで一つずつライセンスを読み、WebFonts として利用できるフォントをまとめてみました。

おお素晴らしい。けっこう色いろあるのね。
で、一通り読んで、コメント欄のフォントが読みやすい!と思ったらメイリオだった。

VMwareの VMをコピーする方法

VMWare (on Windows) のVMをコピーする - 大切なものは目に見えない - mahataの日記
コピー後のファイルで、一点だけ変更すべきポイントがある。C:\Virtual Machines\CentOS5_1\Other Linux 2.6.x kernel.vmx のdisplayNameで始まる行である(上の画像で選択反転している部分)。これはVMWare のコンソールで表示される文字列で、これがユニークでないと、「現在どのVMをいじっているのか」が把握できなくなる。

このdisplayNameの変更をしておかないと面倒になる。

ということで手順としては、
  1. VMのディレクトリごとコピー
  2. 上記のdisplayNameを変更
  3. VMware Infrastructure Web Accessで「Commands」の「Add Virtual Machine to Inventory」をしてコピーしたディレクトリ内のvmxファイルを選択する(画面にVMが追加される)

さらに、VMware Infrastructure Web AccessでVMを選択し、「Commands」の「Generate Virtual Machine Shortcut」からショートカットを作成しておくと便利だが、これはIEでしかできない(?)

IE10がダウンロードできるらしい

[速報]Internet Explorer 10をマイクロソフトがデモ。今日からPlatform Preview版を公開。MIX11 - Publickey
このInternet Explorer 10 Platform Preview 1をietestdrive.comで公開する。すでにダウンロード可能だ。

Platform Previewというのはアルファ版くらいの扱いなのかな。
ietestdrive.comからダウンロードするMSIはファイル名にバージョン番号が入ってないけど後で試してみよう。

2011年4月8日金曜日

PDOの MySQLはデフォルトではサーバサイドの Prepared Statementを使わないらしい

ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション) - 徳丸浩の日記
PHP5.2.1から、PDO_MYSQLは、デフォルトではクライアントサイドのプリペアードステートメントになったようですね。

いつの間に変えたんだってもうかなり前からずっとそうだったのか!!!

HTML5の input要素の type属性ごとの使用可能な属性値

input-HTML5タグリファレンス
以下は、type属性がどの値の場合に、どの属性を指定できるかを示した表です。

この表がよくまとまってる

HTML5で実装された formの Validationを JavaScriptから操作する

ここに仕様が書いてあった。

制約 - フォーム - HTML要素 - HTML5 タグリファレンス - HTML5.JP
要素は、独自の妥当性エラー・メッセージを持つことができます。当初は、要素は空文字列にセットされた独自の妥当性エラー・メッセージを持たなければいけません。その値が空文字列でないとき、その要素は独自エラーに陥っている ということになります。それは、setCustomValidity() メソッドを使ってセットすることができます。ユーザーエージェントは、コントロールに問題が生じていることをユーザーに警告するときは、この独自妥当性エラー・メッセージを使うべきです。

肝はsetCustomValidity()か。

2011年4月7日木曜日

HTML5の classList APIの仕様

HTML5 classList API
The classList object, added to all nodes within the DOM, provides developers methods by which to add, remove, and toggle CSS classes on a node. classList also allows developers to check if a CSS class has been assigned to a given node.

lengthとかitemはループで回して使うことを想定してるのかな。

2011年4月5日火曜日

IE9で Google Maps API V3の overviewMapControlが表示されない問題が解消した

IE9で Google Maps API V3の OverviewMapControlが表示されない問題が解消するらしいでFixedNotReleasedになり、その後Fixedになってからもしばらく駄目だったけど、ようやく解決したみたい。
アナウンスはないのかな。

2011年4月4日月曜日

PHPの crypt()を自力で実装する例

php - How to create md5 hash as the crypt function generates with a md5 salt using the md5 function, not the crypt function? - Stack Overflow
Here's code in Java that implements the same function. This may help you to do the same in other languages.

For PHP, you may want to look into this code:

思ったよりややこしいのね。base64_encode()とかmd5()は使えないのかしらん。

2011年4月1日金曜日

mb_convert_kana()はクォーテーション等を変換しない

PHP関数 mb_convert_kana() の罠 ( しゃいん☆のブログ| 名古屋市 Webシステム開発 サーバ構築 ネットワーク構築 株式会社コネクティボ )
そして、対象外となるのは以下の四つのみということです。
U+0022: " (ダブルクォート)
U+0027: ' (シングルクォート)
U+005C: / (バックスラッシュ)
U+007E: ~ (チルダ)

半角にしないのはXSS対策か。全角にしないのは対象の特定が半角と同じだからか。
でも大なり小なりを変換したらXSSは可能な場合が多い気がする。

携帯向けにページ全部を半角化するような処理で、全角で書かれたHTMLが半角になってHTMLとして有効になってしまうというのはありそう。
携帯ならJavaScriptが使えなくてXSSとしては成り立たないことが多そうだが。(最近の携帯はそうでもないのか?)

ブログ アーカイブ

カテゴリー