2011年12月28日水曜日

apple-touch-iconの大きさと種類

apple-touch-icon.png をサイトに設定する意味のまとめ :: drk7jp
なおいろいろ設置して検証してみたところ、上記6つのファイルが揃っていないと 404 エラーを全て消すことができなかったので、404 が気持ち悪い人は全て揃えましょう。気持ち悪くない人は、5,6 のみでかまわないでしょう。

6種類もいるのかー。Androidは明示的に指定しなければ探しに来ないんだっけ。

2011年12月27日火曜日

Titaniumで Androidアプリを作るための Tips集

【Titanium Advent Calendar 2011:十九日目】Androidアプリも作ろうぜ!~Androidアプリに実装すべきTipsたち - harukazepcの日記
Androidアプリを開発時に、利用頻度の高いもの(必須なもの、と言っていいかも)をとり挙げてみます。

Intent インテント
システムリソース(android.R.drawable)の使い方
オプションメニュー
Backボタンなど、ハードウェアキーの制御
アプリ更新に必要な、バージョン設定
SDカードへのアプリインストール許可
AndroidManifest.xml のカスタマイズ
日本語フォントのカスタマイズ
その他
個人的要望?
痒い所に手を届けてくれるTips集。
「システムリソース」(デフォルトで提供されるAndroid用アイコン画像。iOSはまた別にある)、ハードウェアキーの制御、バージョン設定、SDカードへのアプリインストール許可が参考になった。(あるいは参考になりそう。)

2011年12月26日月曜日

CSSだけで吹き出し画像のような見た目を実現する方法

CSS のみで吹き出し - terkel.jp
hail2u.net – Weblog – Pure CSS な吹き出し に触発されて、画像や JavaScript を使わずに CSS だけを使って「吹き出し」を作る方法を僕も考えてみた。

メモ。

外側のブロックは2つのborderを指定することによりborder同士の接触を斜めに表示させて、かつ片方を透過にすることにより一方のborderの斜めの部分だけ表示させるというテクニックを使い、吹き出しの三角部分を表示している。

2011年12月22日木曜日

Advanced Rest CSS

よさげなリセットCSS Normalize.cssを適当に日本語にしました | nevermind
リセットCSSは色々ありますが、このNormalize.cssはHTML5,CSS3対応かつ、AndroidやiOSのスマートフォン系についても細かく設定されているので、なかなかよさそうです。

リセットCSSの代替を目指すらしい。
スマホを意識しているのが目新しい。
ライセンスはPublic Domain

圧縮はしてないから自分でしてね、らしい。どこかのCDNで取り扱ってないかなー?

Google Libraries APIから YUIが消えた

Google freezes support for YUI in the Google Libraries API - Forums - YUI Library
After discussing with the library owners, we will be freezing support for YUI in the Google Libraries API. No existing versions will be removed (so no current implementations will break), but, going forward, you should look to the official YUI channels for getting the library.

YUI 3.4がいつまで経っても出てこないからおかしいと思ってたら、もうサポートしないことになったらしい。

ただしこれまでにホスティングしてきたバージョンは引き続き提供してくれる。
YUI 2.x系は2.9.0、YUI 3.x系は3.3.0がGoogle CDNがホスティングする最後のバージョンになった。

2011年12月19日月曜日

HTMLの select要素をなんと呼ぶか

HTMLのSELECT要素で作成されるモノの呼び名 - Miuran Business Systems
「HTMLのSELECT要素で作成されるアレって、セレクトボックス、ドロップダウンリスト、プルダウンリストなどいろいろ呼ぶけど、なんと呼ぶのが正しいんだろう…」。そんな疑問から調べてみました。

「セレクトボックス」「選択メニュー」あたりが無難みたい。
でも「セレクトボックス」だと一般ユーザーには分かりづらいかなあ。

「リストボックス」だと複数選択可のselect要素のイメージになるのはVBが由来か。
VB上がりの人はコンボボックスって呼ぶよね。JavaScriptを駆使して直接入力もできるようにしたならコンボボックスでもいいんだけど。(それはもうselect要素ではないだろうけど。)


2011年12月14日水曜日

Titanium Mobileで WebViewの Cookieを取得したい

WebVIewのクッキーをクリアする - toweroflの日記
このpathにCookies.binarycookiesというファイルで保存されているらしい、あとは削除するなり空のデータを書き込むなりとのこと。

空のデータを書き込めるということは、読んだり書いたりもできるということかな。

Google Maps API V3の Polygonの編集モードで頂点の clickイベントを捕捉したい

[Google Maps API v3] Polygon verteces events
1. How to capture the index id of a polygon's vertex when clicking on a vertex of a polygon? I want to use this to delete verteces by clicking on them.

あとで読む

2011年12月12日月曜日

Google Maps APIで道路の交通状況を取得する方法

渋滞の状況: Maps API - Seis Pesos
API でも、できた。

既存のAPIでそのままできるみたい。

2011年12月8日木曜日

TortoiseSVN 1.7.1で サブフォルダの.svnフォルダがなくなった

TortoiseSVN 1.7.1 | knowledge://try-z.com
WC-NG は .svn ディレクトリが Check Out Root にのみに存在するように変更された。

フォルダごとコピーするときとか鬱陶しかったからこれはありがたい

2011年12月6日火曜日

Facebookの OAuthを使うサンプル

Facebook APIのつかいかた (OAuth 2.0) - Censorable log
フィードやウォールに書き込んだり、likeしたりする、アクティビティ系や、
Facebookにログインしないと見れない情報をするときには、認証が必要だ。

PHPやJavaScriptでFacebookにOAuthするサンプルが載ってる。

2011年12月2日金曜日

GMailの送信者名の左に表示される鍵マークの意味

安全な送信者からのメールに鍵アイコン:Gmail Labs、フィッシング対策機能「Authentication icon」発表 - ITmedia エンタープライズ
Googleはメールのヘッダの「From」部分をチェックし、例えば「ebay.com」など「super-trustworthy」なアカウントからのメールにのみ鍵アイコンを表示する。super-trustworthyなアカウントとは、送信者が金融機関などフィッシャーのターゲットになる企業で、送信ドメイン認証の「DKIM(DomainKeys Identified Mail)」の認証を受けており、Gmailでこのアカウントのなりすましメールを遮断しているという3つの条件を満たすアカウントをさすとしている。

これか!

HTML5で意味が変わったタグ、の嘘

第2回 HTML5で使い方が変更されたタグをまとめよう - MdN Design Interactive
HTML5でサイトが作られる機会が少しづつ増え、HTML5の新しいタグを覚えようというブログや書籍はよく見ますが、今までxhtml1.0で使われていたタグの中にも使い方の変更になったタグがいくつかあります。いつも使っていたタグなので何気なく使ってしまうこともありますが、まずは今まで使っていたタグの中で元々使われないタグや、昔から馴染みのあるタグで使い方の違ったものをまとめてみました。

昔からあるけどHTML5で意味が変わったタグっていうのは、要するに、「見た目に関することはHTMLではなくCSSで定義する」っていうポーズを保ちつつ、かつ、実は見た目もHTMLでやっちゃうという昔ながらのやり方を追認するための、「これは見た目ではなく、意味を定義してるんですってば!」という、なんか誰に対し言ってるのか(自分?)よう分からん言い訳をするために頑張って定義を考えましたって言うことですよね。(こじつけというか、確かにそうとも言えるがこの変更に何の意味があるのかというような変更ばっか。)

例外はruby要素くらいじゃなかったっけ?

a要素でtargetが復活したりimg要素のaltやtable要素のsummaryが省略可になったのも現状の追認だし。
もうtable要素をレイアウトのために使うのもおおっぴらに認めればいいのに。

でも、a要素内にブロック要素を入れられるようになったのは便利だね!

2011年11月28日月曜日

jQuery Mobileで Google Analytics その2

jQuery MobileでGoogle Analyticsを使うために気をつけなければいけないこと | MOL
要点を言うと、jQuery MobileでAjax遷移してると、普通にGoogle Analytics置いてても作動しないから気をつけてねって話です。

こっちの方がすっきりしてる!

jQuery Mobileで Google Analyticsを使うためのベストコード

How to do mobile analytics using Jquery mobile - Stack Overflow
The 'pageshow' event fires even for the first page, so don't think you want to include the _trackPageview with the GA setup. Also, location.hash will return url with the "#" character so hash.subtr(1) cleans that off which will normalize hash/pushstate visitors.

2番目のやつ。今のところこれが一番しっくりくるかな。

2011年11月24日木曜日

Another transaction by user xxx is already in progress for...の解決方法

Google App EngineでDeploy中にLauncherを終了したら、次のDeployからエラーが出てDeployできなくなった。

debianとpythonとOSXとAndroidと: 【OSX】Google App Engine エラー 409 rollbackとは?
Error 409: --- begin server output ---
Another transaction by user "ユーザー名" is already in progress for app: "アプリ名", version: 1. That user can undo the transaction with "appcfg rollback".


どうやら、Deploy中などにアプリケーションを強制終了したりすると起きてしまうトラブルのようです。

ありがとうございます。
これで解決した。最後のプロジェクト名のとこは実際はプロジェクトのあるフォルダのパスを指定する。(プロジェクトがデフォルトの場所にあるならプロジェクト名だけで正しい相対パスになる。)

2011年11月22日火曜日

Androidと iPhoneのブラウザのフォントサイズの比較

iPhone ユーザが INFOBAR A01 を買って、2週間使ってみた - Shin x blog
両者で同じページを表示しているブラウザのスクリーンショットを撮ってみました(左: INFOBAR、右: iPhone)。フォントサイズもありますが、INFOBAR の方が表示領域が広く、小さな文字も読みやすく感じます。一覧性については INFOBAR の方が気に入っています。

INFOBARとiPhoneのブラウザ画面の比較。
INFOBARの方が文字が小さく、その分1行に入る文字数が多い。

モリサワフォントのINFOBARでない場合はまた違うのかなー?

2011年11月21日月曜日

apc.phpのソースを取得する方法

PECL :: Package :: APC
Alternative PHP Cache

ここからtgzをダウンロードして展開して、apc.phpだけ取り出す。

php.iniでの APCについての設定

PHP: 実行時設定 - Manual
php.ini の設定により動作が変化します。

たいていの場合はデフォルトの APC 設定でうまく動作しますが、 きちんとチューニングをしたい場合は以下のパラメータを設定します。

メモメモ。

CentOSに APCをインストールする方法

icoro : CentOSにPHPアクセラレータのAPCを入れてみた
APCをインストールするには方法がいくつかあるようですが、今回は一番簡単にインストール出来るpeclを利用する方法をとります。

メモ。

2011年11月17日木曜日

Windows用の APCのダウンロード

http://downloads.php.net/pierre/
php_apc-20110109-5.3-vc9-x86.zip (2011-01-09 12:16 -0800)
MD5 (php_apc-20110109-5.3-vc9-x86.zip) = 60deac3b69b8fb75767cdb1f575c8182

php.net内で配布してた。zipの中身はdllがあるだけ。
とりあえずメモ。

2011年11月11日金曜日

Seasar2の Doltengで作ったサンプルアプリが動かなくなった問題の解決

[seasar dolteng sastruts]org.seasar.framework.exception.EmptyRuntimeException: [ESSR0007]S2Containerはnullあるいは空であってはいけません - こい@備忘録

プロジェクトのプロパティ-tomcat-全般タブ-Webアプリケーション・ルートとするサブディレクトリ(オプション)を
「src/main/webapp/」から「src/main/webapp/WEB-INF/view」に変更しました。

 

さっきまで動いていたのに、ちょこちょこいじっていたら動かなくなった。

原因はこれだったようだ。

2011年11月9日水曜日

Eclipseに SAStruts Pluginをインストール出来ない問題の解決方法

SAStrutsPluginがインストールできないとき - こい@備忘録

SAStrutsPlugin 0.0.14 (org.seasar.sastrutsplugin.feature.feature.group 0.0.14)
Missing requirement: SAStrutsPlugin 0.0.14 (org.seasar.sastrutsplugin 0.0.14) requires
 'bundle org.eclipse.jst.jsp.core 0.0.0' but it could not be found

EclipseのメニューからWTPをインストールする方法(WebとJava EEをインストール等)ではうまくいかなかったが、上記に書いてあるやり方(WTPのZIPをダウンロードしてEclipseに上書き)でエラーが解消した。

2011年11月6日日曜日

Android Marketへの APKファイルのアップロードで 「ERROR getting 'android:icon' attribute: attribute is not a string value」の解決方法

スマホとタブレット: Titanium Studioで日本語のAndroidアプリ名


その際、en ディレクトリにも strgins.xml を準備しないと、android marketにアップロードする際に、
The file is invalid:・・・Failure getting entry for 0x7f030000・・・package 0 (error -75) ERROR getting 'android:icon' attribute: attribute is not a string value
のエラーが発生する。(enフォルダとstrings.xmlを準備したらエラーが発生しなかった。)

 

多謝多謝!

Google Groupでのディスカッションを見ると、昔は大丈夫だったアプリのバージョンアップでもエラーが出るみたいなので、Android Market側の最近の仕様変更のようだ。

2011年11月2日水曜日

Titanium Mobileで作ったアプリを配布する準備

295 デプロイと配布 - Training Lab Tutorials - Appcelerator Wiki
このラボでは、テストのために実機で動かすためデプロイする手順や、Android MarketやiTunes App Storeで配布する手順を学びます。

メモ。

Titanium Mobileで Androidアプリの名前を日本語にする方法

Androidではアプリ名を日本語名でつけれられないのでしょうか? « Titanium BBS(JP unofficial)
すみません、blogにまとめようと思っていたのですが、iPhone/Android共にbuildに手を加えず日本語名を付けることができます。

メモメモ。Titanium Studioからできれば楽なのにね。
.

Android SDKのエミュレータを高速化する方法

Titanium Mobileで作る! iPhone/Androidアプリ:第13回 Androidでの開発での問題点と回避策|gihyo.jp … 技術評論社
普段のエミュレータ動作も相当に遅いので,なるべくエミュレータの画面解像を低くしておくことでいくらか動作をまともにすることができます。

解像度が低い方が動作がよいらしい。

Titaniumでは勝手にWVGA854(480 x 854)のAVDを作って立ち上げてしまうが、Android SDK ToolsのSDK ManagerからAVDの設定を編集してHVGA(320 x 480)等にすれば小さくなる。

Titaniumでバックグラウンドでアプリを実行する方法

Titanium Mobileで作る! iPhone/Androidアプリ:第18回 ServiceとNotification|gihyo.jp … 技術評論社
今回はAndroid版でのみ使える,ServiceとNotificationの機能について解説しました。アプリを終了させずにバックグラウンド処理を続けさせることのできる点はAndroidの大きな魅力の一つですので是非お試しください。

Androidの場合。ステータスバーへの通知表示の解説もあり。

2011年10月26日水曜日

Titaniumで Windowのプロパティにした Objectはメソッドが使えないらしい

[Titanium]window.urlが駄目な理由 - もぎゃろぐ
ここからは推測なのですけど、そうやって生成されたWindowオブジェクトのプロパティに値を代入する(たとえば、win.obj = obj; のように)と、JavaScriptとObjectiveC/Java言語の壁を越えるために、いったんJSON文字列に変換されてしまいます。

結果としてメソッドは生き残ることが出来ないので、obj.setVar()がまともに動作しなくなります。

それだったらいっそ例外になってくれれば良いと思うのですけど、中途半端に動くあたり、もしかしたらJSON化じゃなくてもう少し別の実装になっているのかもしれない。

じゃあメソッドレスなDTOで渡して、受け取った方は常に最初にDTOから目的のObjectを生成する、という決めにすればよいのかな。一手間増えるけど。

Ti.APIの何か経由で渡せばいいとかいうのをどこかで見た気が...

2011年10月24日月曜日

スマートフォン(とケータイ)の位置情報取得の技術的な話

Galaxy SのGPSを調整してみる « All Giant Albino Penguin are belong to us
では、最近のケータイなどのGPSがやけに精度がいいのは何故かというと、それを補助するための様々な技術が導入されているからで、それがDGPS、gpsOne、A-GPSといったものです。

前半部分が勉強になった。

自分で何箇所かでためしたところ、こんな感じだった。(上の方が精度が良い)
  1. GPS
    • 精度は十数メートル
    • 測定に時間がかかる
    • おそらく測定に時間がかかりタイムアウトしたと思われるが、GPSが使える場所でもWi-Fiが使える場合はGPSが使われなかった(Wi-Fiからの位置取得をOffにしないとGPSでの測定ができなかった)
    • 屋内では使えない(窓際とかなら使える場合もある)
  2. Wi-Fi
    • 精度は数十メートル。田舎の方だとまた違うかも?
    • たまーに取得に失敗する
  3. 3G
    • 精度は数百メートル
  4. IPアドレス(固定LANのインターネット接続から)
    • 精度は100km以上
    • 国と大まかな地方が分かる程度。使い物にはならない

測定に時間がかかり意外に使えないGPS。そして意外に使えるWi-Fi。

2011年10月20日木曜日

Google Calendar Header and Navigation Switcherを Googleカレンダーの新しいデザインに対応させる

Broken with new look - Userscripts.org
Made the following modification to line 88. Now it hides the search box and other buttons.
88行目での隠す対象の指定を変更し、左側の非表示に関係しているif文を45行目あたりに入れる。
88行目はahbiさんが書いてあるのが一番省スペース。ビューの切り替え等のコントロールを残したいなら、「#vr-nav」を含めないようにすると良い。

2011年10月14日金曜日

Titaniumで URL

Titaniumメモ:カスタムURLスキームでの引数の受け取り方(修正) | マナブ・イガラシ
ちなみに、Titanium Mobileで作っているアプリはデフォルトでプロジェクト名でカスタムURLスキームが自動的に設定されている。

例えば、webSnapというプロジェクトなら、
SafariのURL欄にwebSnap:と入力すればそのアプリを起動することができる。

プロジェクト名がSchemeになるらしい。衝突したら?(候補から選択?)

パラメータの受け取り方も参考になる。

2011年10月13日木曜日

携帯電話の売れ筋ランキング

携帯電話の売れ筋情報|BCNランキング【月間】
集計期間:2011/09/01~2011/09/30

iPhoneやAndroidを含む日本での携帯電話の機種別の売り上げランキング。
ブレの大きい週間ランキングより、月間ランキングの方が参考になりそう。

量販店のPOSを元にしているとのことなので、新規契約が対象?
まあ少なくとも目安にはなるんじゃないでしょうか?

Titanium Mobileは本当の意味でネイティブコードを吐くわけではないらしい

Titanium Mobileセミナーに行ってきたのでそのメモ - I’m hungry
- 仕組み
アーキテクチャ
OSの上にJSインタプリタが乗ってる
Appleが提供しているJSインタプリタを使ってる
AndroidはオープンソースのJSインタプリタ使ってる
TitaniumがAPIとModuleを用意してるよ

Titaniumはよく「JavaScriptをネイティブコードに変換する」と言われるけど。
実際には、共通のJavaScriptを異なるプラットフォームで動かすためにJSインタプリタをVM的にクッションに使っているらしい。
まあ何を持ってネイティブというかは微妙かもしれないけど。少しはプリコンパイル的なこともしてるのかな?(CoffeeScript使う場合はしてそうか。)

Titanium MobileでJavaScriptが実行されるまでのソースコード追ってみた | KRAY Incという記事も。

2011年10月12日水曜日

Titaniumの Android用のアイコン画像

Appcelerator Developer Center - API for Titanium.Android.R (version 1.7.2)
drawable object

Drawable resources, see http://developer.android.com/reference/android/R.drawable.html

iPhone用はTitanium.UI.iPhone.SystemButtonの下に定数が並んでるが、Titanium.UI.Androidにはアイコン画像の定数は無い。

KitchenSinkで探したら、CloseボタンのアイコンはTitanium.Android.R.drawable.ic_menu_close_clear_cancelを使っていた。
Titanium.Android.R.drawableを通して、Androidのネイティブの定数を使っているようだ。
でもリンク先にも実際のアイコン画像が載ってないので分かり辛い...

2011年10月11日火曜日

Titanium Studioで 「問題が発生したため、emulator-arm.exe を終了します。」

今から1時間で,Androidアプリの開発環境を構築し,Windows上でサンプルを動作させる手順 - 主に言語とシステム開発に関して
※なお,「エミュレータは起動するが,エミュレータ上のボタンをクリックしようとすると,エミュレータがハングする」という場合がある。

「問題が発生したため,emulator-arm.exeを終了します。」

というエラーメッセージで強制終了してしまうのだ。
この原因は単なるメモリ不足なので,いったんWindowsを再起動してからEclipseだけを立ち上げ,慎重にエミュレータを起動すればOK。

そうなのか。でもメモリに余裕はありそうだが...

2011年10月7日金曜日

jQueryの次の世代、 新世代JavaScriptライブラリたち

5 JavaScript Libraries You'll Love
Backbone, for adding structure to large JavaScript-based web apps.
Underscore, a utility-belt library that adds functional programming features to JavaScript.
Knockout, a great way to simplify your user interfaces.
Sugar, which extends the JavaScript language with a wealth of useful methods.
CoffeeScript, a language that compiles down to JavaScript and is really nice to work with.

CoffeeScriptなんてもうJavaScriptの範疇に入らないかも。

Google Libraries APIが未だに YUI 3.4を配布しない

Google Libraries API - Developer's Guide - Google Libraries API - Google Code
Yahoo! User Interface Library (YUI)
name: yui
latest version: 3.3.0 (view older versions)

もう3.4.1が出たのに、まだ3.3のまま。もう更新しないのかな。

YUI3 Calendarで日本語がサポートされたらしい

YUI 3.4.1 is now live » Yahoo! User Interface Blog (YUIBlog)
Japanese language support for Calendar and Console, courtesy of YUI contributor Ryuichi Okumura.

どうやるんだろう?localeに"ja"をセットするのかな?(参考:Calendar Class - YUI Library
ポップアップ(Datepicker)対応はまだかな。
でもそれでもjQeury UIのDatepicker使うかなー

2011年10月6日木曜日

Titaniumの Kitchen Sinkの階層図

逆引きKitchenSink
逆引きKitchenSink

メモ。

Androidブラウザからアプリを起動したりデータを渡す方法

たくまけい: Androidの標準ブラウザで開いたHTMLから自作アプリを起動してみた
ブラウザーから起動された場合、getIntent().getData()でUriを取得することができる。

メモ。データはQueryStringで渡せそう。

2011年10月5日水曜日

jQuery Mobileで動的に li要素を追加する場合の装飾

jQueryMobileのかゆいところに手が届くお作法メモ at HouseTect, JavaScriptな情報をあなたに
ul要素を含むHTMLを装飾したい場合はlistview()を使い、li要素しかない場合はlistview('refresh')を使います。

動的にアイテムを追加した場合、listviewに対してlistview("refresh")する。なるほど。やはり需要があるのね。

2011年10月4日火曜日

jQuery Mobileで動的に追加した要素を装飾する方法

jQueryMobileのかゆいところに手が届くお作法メモ at HouseTect, JavaScriptな情報をあなたに
「Ajaxでデータを取得して画面にappendするときにHTMLを装飾したい!」という場合にすごく有力なメソッドがこのpage()です。
以下のサンプルのようにjqmのdata-roleを含んだHTMl文字列をappendして、page()を実行するとまるっと装飾されます。

後で試す

Phonegap 1.1で HelloWorld

Get Started Guide « PhoneGap
Right click on AndroidManifest.xml and select Open With > Text Editor
Paste the following permissions under versionName: (view image below)

PhoneGap Fanからダウンロードすると0.9.5だが、本家の最新版は1.1だった。
1.1はPhoneGap Fanの0.9.5のインストール方法(Android編)では動かなかった。
AndroidManifest.xmlが違うためのようだ。本家の説明どおりに変更したら動いた。

Chrome dev版で日本語の表示がおかしかったけど治った

All other plastics : |_・)づ Google Chrome dev-m 16.0.891.0 日本語表示の不具合><
|_・)づ Google Chrome dev-m 16.0.891.0 (Windows)の日本語表示にて、現在、日本語フォントの表示が崩れて読めないという不具合が発生しています。

そうそう、先週くらいからおかしくなっていい加減対策しようかと調べたらやはりアンチエイリアスか。
どうしようかと思ってたらちょうどUpdateがあり、治った。なんというタイミング。

2011年10月3日月曜日

国産のPhonegapの対抗馬?

FrontPage - jsWaffle
jsWaffle は、HTML5/JavaScript/CSS を使って Android アプリを制作する フレームワークです。

iPhoneには非対応(未対応?)らしい。

2011年9月30日金曜日

Twitter Streaming APIが HTTPSのみになった

Streaming API turning SSL only on September 29th | Twitter Developers
Streaming API: use https://stream.twitter.com instead of http://stream.twitter.com

日本時間で9月30日、Twitter Streaming APIがHTTPによるアクセスを受け付けなくなった。HTTPSにする必要がある。
あまり知られてない気がするけど、結構影響あるんじゃない?急に接続できなくなったとこが続々と?
そんなに使われてないのかなあ。

jQuery Mobileは jQuery UIのメンバーが作ってる?

jQuery UI Development & Planning Wiki / FrontPage
We're working on jQuery Mobile

たしかにコンセプトは近いし、UIも似ているような(似ていないような)。
そしてまだUIの方で実装されていないチェックボックスとかを先にMobileで実装してしまったのか。

Firefoxの profileのフォルダを簡単に開く方法

プロファイル | 操作方法 | Firefox ヘルプ
Firefox ウィンドウ上部の Firefox メニューをクリックし、ヘルプ メニューの右の矢印 (Windows XP では ヘルプ メニュー) をクリックし、トラブルシューティング情報... を選択します。 トラブルシューティング上のタブが開きます。

これは分かりにくい

2011年9月29日木曜日

Titanium Studioを Windows XPにインストールする時の注意

Titanium Studio起動メモ(use Windows XP) — Gist
XPでの注意点)
空白パスのサポートが完全に駄目。><。
手動で設定変更が必要!!
Win7は空白パスがないから動いているだけ~

いろんな人がダメダメ書いてたけど、やっぱり駄目かー

Titanium Studioのインストール

Office L: Windows で Titanium Studio を使って Android アプリ開発の準備
今回、Titanium Mobile によるスマートフォンアプリ開発勉強会(DevHub西新宿)を開催することになったので、 Windows での環境構築のチェックを兼ねて、 KitchenSink が動作するところまでを試してみました。

上記サイトにも書いてあるが、(現時点では)下記に注意
  • JDKは6にする(そのうちTitaniumがUpdateして7に対応してくれそうだけど)
  • Android SDKのplatform-tools\adb.exeをtools\adb.exeにコピーする(これもそのうち対応するでしょう)
  • 下記のパスをWindowsの環境変数「Path」に追加する
    ・JDKのbin
    ・Android SDKのplatform-tools
    ・Android SDKのtools

2011年9月28日水曜日

Androidアプリ開発の参考サイト

素人のアンドロイドアプリ開発日記
このサイトでは、javaの初心者がアプリを作成していけるまでを書いていきます。
androidアプリ制作において役立つ情報を配信し、皆さまの開発に役立てればと思います。

Javaのインストールから丁寧に説明されてる。

PHPの SPLの例外群の系統建てが分かるクラス図

2011年9月27日火曜日

ブラウザ上でAndroid/iPhoneアプリを開発できるサービス

Monaca - クラウドベースのネイティブアプリ開発環境
コーディングからビルドまで
全てはクラウド上で

スマートフォンアプリ開発に必要な開発環境のセットアップは難解で時間のかかるものです。Monacaではこれらのセットアップを行う必要もありませんし、ワンクリックでアプリケーションを使える状態にビルドします。

ブラウザ上でコーディングできるらしい。裏ではPhoneGapを使っているので、HTML/CSS/JavaScriptでローカルWebアプリを作ることになる。

ビルドはサーバサイドでやってくれる。
Androidの場合、JavaとかAndroid SDKとかが要らないのかな?
iPhoneアプリはさすがにSDKが要ると思う。

2011年9月26日月曜日

jQeury Mobileの入門サイト

ASCII.jp:西畑一馬のjQuery Mobileデザイン入門
西畑一馬のjQuery Mobileデザイン入門

いまもっとも注目されているモバイルフレームワーク「jQuery Mobile」。jQuery Mobileの基本的な使い方から、実践的なデザインテクニックまで。iPhone/Androidなどのスマートフォンサイト制作にjQuery Mobileを活用する方法を具体的に解説します。

第1回からの説明の流れが分かりやすい。基本的に、HTMLに決められたrole-xxx属性やclass属性を加えるだけでいいようだ。(HTML構造はある程度限定される。)
実際にどんな属性にどんな値を入れるのかは、第5~7回のサンプルに列記してある。(他にもあるのかな。)

TechCrunch創設者の新ブログが指導

UNCRUNCHED
Here I Am

TechCrunch創設者にて元編集長(先日退社)のMichal Arringtonが、新ブログを始めた。日本語版は無理かな。

2011年9月17日土曜日

Androidの Macアドレスの調べ方

apad(android pad・tablet)日本最大級情報サイト » Blog Archive » apad(android pad)日本最大級情報サイト
意外とわかりにくい場所にあるMACアドレスの調べ方について、ご説明します。

無線LANでMacアドレスを限定している場合などに。
設定画面でさらにMENUボタンを押すというのは気づかなかった。
他にも長押ししないと出ないメニューとか分かりづらいよね。

2011年9月16日金曜日

Windows8の IE10

Windows8 Developer Preview ファーストインプレッション【アプリケーション編】 | Sinack
フルスクリーンです。メニューすらないです。

画面下にはアドレスバーやらバックボタンやらがあります。

IE10(PP)にアドレスバー(URL欄)が無いのはこのためだったのか。
IE8~9は他のブラウザの後追いのイメージが強かったけど、IE10のUIは他より先行してるかも。(それともChrome OSの影響?)

Google Analyticsでサイトのページ表示の速さを調べられるらしい

Googleアナリティクスの「サイトの速度」でページの表示スピードを計測 | 海外SEO情報ブログ
「サイトの速度」を記録するにはトラッキングコードを変更する必要があります(後述)。

そのうちデフォルトでオンになるのかな。

Google検索結果のフィルタリング指定がやっと日本でも使えるようになったらしい

Google、特定のサイトを検索結果に表示させない「ブロックサイト」機能を日本にも導入 | 海外SEO情報ブログ
ユーザーがブロックしたサイトは、パンダ・アップデート v2からは質が低いと判断したときの妥当性を検証するデータとして使われています。

「多くのユーザーがブロックするサイト」=「質の低いサイト」という図式が成り立つからですね。

これでみんな、はてなブックマークをブロックしまくるだろうから、はてなブックマークスパムの効果が低くなって、結果的に、はてなブックマークスパムがなくなるといいな。

それにしても、はてな、みたいに平仮名の名前は前後に句読点を入れなきゃ読みにくくなるから良くないよね。

PHP版 heroku?(日本発!)

無料ではじめるクラウド・ホスティング・プラットフォーム│C4SA
C4SAは、サーバーの設定や運用、管理に掛かる業務コストを大幅にカット。
複雑なサーバー設定一切不要で、即日、大規模WEBサービスを公開可能にしました。

日本発というか日本向けか。

0.05円/PVというのは高くは無いと思うが、クローラからのアクセスとかも含まれるだろうから、単純にGoogle AnalyticsベースのPVで計算はできない。(何倍くらいになるんだろう?)

メールが飛ばせない/受け取れないのは痛いかな。まあ用途を絞ればいいのか。
独自ドメインとかHTTPSとかはどうなんだろ。できるのかな?共通のサーバ証明書が使えれば便利かも。

2011年9月現在、PHPは5.3、MySQLは5.1。PHPのリビジョンは気になる。あと、今後のUpdateどうするかも。ユーザー側がUpdateの適用を選べないと困る場面もありそう。

総じて言えば、Amazon EC2でMicroインスタンス借りた方が何かといじり倒せていいかなー。
もし共通のサーバ証明書があれるなら、それは魅力だが...

2011年9月14日水曜日

PHPの mbstringの internal_encodingのデフォルト値

PHP の mbstring に関するメモ
php.ini で mbstring.internal_encoding を指定しなかった場合、mbstring.language の設定に対応した mbstring の内部文字コードが設定されます。

実際には以下のようになります。

マニュアルにはnullと書かれていたが、実際はnullにはならなかった。
上記リンク先が正しそう。
PHP5.4からはneutralやEnglishがUTF-8になるのかな。Japaneseも?

2011年9月12日月曜日

PHPの mcrypt_encrypt()で AESの鍵長を指定する方法

floatingdays: PHPで AES方式 (Rijndael-128)で暗号化するメモ
PHPのラインダールでは鍵長を指定するパラメータが無いので、鍵長は渡した鍵の長さに応じて決まる。

実験したところ、渡した鍵が収まるうちで最も小さい鍵長が使われることが分かった。

AES(MCRYPT_RIJNDAEL_128)の"128"は鍵長かと思ったらブロック長の128のようだ。
鍵長はパラメータの鍵の長さで決まる、と。

2011年9月9日金曜日

OpenSSL::Cipher::Cipher

RubyのOpenSSL::Cipher::Cipherについて。


パディングについて
OpenSSL::Cipher::CipherのパディングはPKCS#5形式。

下記が詳しい。

OpenSSL::Cipher::Cipher のパディング処理 | へびにっき
結果、PKCS#5 の PBES1, PBES2 と同じく RFC 1423 で定義されたパディング処理を行っていることが分かった。このパディングアルゴリズムは一般には PKCS#5 Padding などと呼ばれているらしい。


鍵長について
AES-128の場合、keyの長さは128ビット。
それより短いとエラー。
長いとはみ出た部分は無視された。
keyには文字列をセットすればOK。
ASCIIなら16文字(1文字で1バイト=8ビット)。
平仮名は1文字で(UTF-8なので)3バイト扱いになった。

JSONによるデータのやり取りにはセキュリティ的に色々注意点があるらしい

PHPのイタい入門書を読んでAjaxのXSSについて検討した(3)~JSON等の想定外読み出しによる攻撃~ - ockeghem(徳丸浩)の日記
さらに上表に示す対策のカバー範囲をあわせて考えて、以下で対応することを提案致します。

対策の基本はX-Requested-Withヘッダのチェック
Content-Typeは正しく application/json; charset=UTF-8 と指定
IEに顔を立てて、X-Content-Type-Options: nosniff を指定(あるいは不要か?)
JSON生成ライブラリで設定できる最大限のエスケープ

何もしないと意外に脆弱性が多いんだ。

jQueryとX-Requested-Withのチェックをして文字コードを適切にすればいいということか。でもブラウザでJSONを表示してチェックしたい時には外さないと。(jQuery使ったチェックツール作ればいいか。)

X-Content-Type-Options: nosniffはやった方がいいんだろうけど、未対応ブラウザのことを考えると結局鉄壁ではないしねー。

PHPのjson_encode()って色々オプションがあるんだ。

2011年9月8日木曜日

httpsを使わずに JavaScriptで送信データを暗号化

httpsを使わずに、JavaScriptで送信データを暗号化しているサイトがあった。

そば屋五兵衛 WEB サイトにて使用されている暗号化技術に関して
そば屋五兵衛の WEB サイト(以下 当サイト) では、SSL/TLS による暗号化通信をサポートしておりません。
その代わりに javascript による暗号化を実装しており、これによりお客様のデータを保護できるようになっております。

公開/秘密鍵方式と共通鍵方式を併用して、SSL/TLSと同様のことを実装している。そば屋のサイトにしてはすごい。(サーバ証明書買った方が何かと楽そうだが、事情があるのかな。)

他にもこのサイト、ケータイ向け・スマートフォン向け・英語版のそれぞれのページがあるなど、意外にすごい。
その割にページのタイトル要素が無かったり、地図がしょぼかったり。
誰が作ったんだろう。

CSSの構文チェックやその他のヒントをくれる CSS版 JSLint

CSS Lint
Your CSS goes here. The more, the better. Linting works best when we see the big picture, so give us everything you've got.

セレクタにID使うと注意される

JSLintより使いやすい JavaScript構文チェックサービス

JSHint, A JavaScript Code Quality Tool
How JSHint is different from JSLint

JSHint is a fork of Douglas Crockford's JSLint that is designed to be more flexible than the original. Our goal is to make a tool that helps you to find errors in your JavaScript code and to enforce your favorite coding style.

要らないとこばかりチェックするJSLintと違い、デフォルトの設定でかなり普通のJavaScriptをPASSしてくれるので使いやすい

2011年9月6日火曜日

Railsで has_manyと belongs_toのモデルを generateする例

Railsで作るTwitterもどき - 篳篥日記
ここではそのように作ってみる。つぶやき(Tweet)モデルと、お気に入りの関連モデル(Favoriteship)を作成。

これが分かりやすそう

Google App Engineの Pythonのバージョンが 2.7になるらしい

App Engine の料金体系変更に関する FAQ - Google Japan Developer Relations Blog
Q: Python 2.7 を使用するために、コードにどんな変更を加える必要がありますか?
A: 基本的には、現在の Python 2.5 用のコードはそのまま Python 2.7 でも動作しますが、いくつか大事な変更をする必要があるかもしれません:
- Django 1.2 を使用してください: 現在の Python ランタイムはデフォルトで Django 0.96 を使用します(実は webapp 組み込みの template システムを使用すると Django を使うことになります)。Python 2.7 は新しいランタイムなので、この古いバージョンをパッケージ、サポートする予定はありません。Django 1.2 以降のバージョンをサポートする予定です。これに備えるためには、コードが Django 1.2 で動作することを確認しておくのが一番良い方法です。Django 1.2 を使用する方法については、こちらに解説があります。
- Python 2.7 サポート: 言うまでもないことかも知れませんが言っておきますと、新しいランタイムで使用するためには、コードが Python 2.7 で動作する必要があります。

Q: Python 2.7 では並列リクエストはどのように動作しますか?
A: 現在の Java ランタイムがスレッドにより並列リクエストをサポートしているのと同様に、並列リクエストはスレッドを使用します。
- WSGI 準拠のフレームワークを使用してください: 並列リクエストの恩恵を受けるためには、CGI インターフェースではなく、その替りに WSGI 準拠のフレームワーク(これは App Engine に同梱している webapp フレームワークも含まれます)を使用する必要があります。
- スレッドセーフ: Python 2.7 ではスレッドを使用して並列リクエストをサポートしているので、この恩恵を受けるためにはコードがスレッドセーフである必要があります。
- もちろん前の質問で述べてある Python 2.7 対応も必要です。

Djangoは1.2へ。
並列リクエストを受け付けられるようになるので、新しい課金体系での料金を抑えられるようだ。

2011年9月5日月曜日

CSS生成の LESSの PHP版

lessphp - leaner css in php
lessphp is a compiler for LESS written in PHP.

The entire compiler comes in a single includable class, but an additional command line interface to the compiler is included. See the quick start for basic usage.

LESSを扱えるPHPツール。Rails3.1はSCSSを採用したが、どっちが生き残るのかな

2011年9月2日金曜日

Windows XPで Meiryo UIを使う方法

ちょいマシOffice:WindowsXP で Meiryo UI を使う
この、Meiryo UI フォントですが、Windows XP 向けの提供はされていないようです。
しかし、最新(2010)の Powerpoint Viewer をインストールすることで、私の環境では使えるようになりました。

試してみる価値はある

Safari、 Chrome、 Firefoxでのフォント名の指定方法

SVGとフォント名 | 4D
今回は, 4D SVG(v12)とSafari, Google Chrome, FireFoxを比較してみました。

Safari、Chrome、Firefoxでは英語でフォントファミリーを指定しておけばよいということか

メイリオをjQueryで show()や hide()でアニメーションするとギザギザになる

メイリオを指定したIE7・8でopacity不具合 | 技術部 | TAC部Log
フォントにメイリオを指定したページを、jQueryでフェードインしてみたところ、
IE7・8での挙動がなんだかおかしい。。。
メイリオのアンチエイリアスが効かなくなり、テキストがジャギジャギになっています。

IE(8以下)の場合jQueryはshow()やhide()等のアニメーションにIE独自実装のfilterを使って透過っぽい表現を実現するので、メイリオのClearTypeが無効になるようだ。

2011年8月31日水曜日

IE10では条件付きコメントが使えない

IE10(プレビュー版)概説(後編) - @IT
「HTML5では、ブラウザごとの差異が無くなる」という前提の下、IE10のHTML5エンジンでは、条件付きコメントがサポートされなくなった。

唯一IEが他のブラウザに比べて優れてる機能がー!

IE9で IE8や IE7での見た目を確認する方法

管理者向けの機能 - @IT
また、F12の開発者ツールでモードを切り替えれば、その効果や違いなどを確認できる。

開発者ツールかー

イントラネットで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としては成り立たないことが多そうだが。(最近の携帯はそうでもないのか?)

2011年3月28日月曜日

Firefox4で検索バーを表示すると リンク先URLの表示が右下になる


Firefox4でページ内のリンクにマウスカーソルを当てると、リンク先のURLが画面の左下に表示される。
ところが、サイト内検索をして検索バーを表示している場合、なぜかURLが画面の右下に表示される。

バグなのか、仕様なのか?

Google App Engineのインストールで 2908エラー

Google App Engine SDK for PythonをバージョンアップしようとしてダウンロードしたMSIを実行すると、インストールの途中でエラー発生。
The installer has encountered an unexpected error installing this packege. This may indicate a problem with this package. The error code is 2908.
このエラーが出続けて止まらない。仕方ないから強制終了。Windowsを再起動しても駄目。

調べてみたら情報があった。

Issue 3884 - googleappengine - Installing SDK 1.3.8 fails : Error 2908 in Updating Component Registration phase - Google App Engine - Google Project Hosting
Running installation again and choosing "Repair" option seems to work.

レジストリうんぬんも書いてあるけど、その前の「Repairすればいいみたい」を実行したら確かにいいみた。バージョンアップされた。

2011年3月25日金曜日

OAuthについての参考記事

OAuth 2.0でWebサービスの利用方法はどう変わるか(1/3)- @IT
OAuthの現状と1.0の問題点、2.0での特徴などを解説し、2.0の例としてFacebookのAPIの利用例を紹介します

分かりやすくまとまっている。

フローについても分かりやすいが、人のアイコンを「Webブラウザ」、「クライアント」を「OAuth利用サーバ」とか表現した方が分かりやすいかも。

IE9で Google Maps API V3の OverviewMapControlが表示されない問題が解消するらしい

Issue 3187 - gmaps-api-issues - IE9 Support for Overview Map Control - Google Maps API bug reports and feature requests - Google Project Hosting
Status: FixedNotReleased

FixedNotReleasedってのは、解決したけどまだリリースはしてないよ、これからリリースするよ、ってことかな?

HTML5ではスペルチェックの可否を指定できる

Firefox、Chrome、Safari、Operaはテキストエリアに英語を入力すると親切にスペルチェックをしてくれる。Safariの場合、それに加えてテキストボックス(input要素でtype属性がtext)でもスペルチェックしてくれる。
しかし、日本語で使う時にはこのスペルチェックがかえって邪魔と感じる人も多い。
(Firefoxではabout:configのlayout.spellcheckDefaultを0にすればスペルチェックをオフにできる。たぶん他のブラウザでもできるんだろうね。)

HTML5の新属性"spellcheck"を使えば、このスペルチェックをHTML側でオフに指定できる。

spellcheck 属性 - グローバル属性 - HTML5 タグリファレンス - HTML5.JP
element . spellcheck [ = value ]

要素がスペルおよび文法のチェックを受けることになっていれば true を返し、そうでなければ false を返します。

値をセットして、デフォルトを変更し、spellcheck コンテンツ属性をセットすることができます。

各要素においてこの属性は親要素の値を引き継ぐ。つまり、body要素にspellcheck="false"を書いておけば、全ての要素でスペルチェックがオフになる。

ただし、Safariだけはなぜかbodyに書いても効かなかった。(textarea要素に直接spellcheck="false"を書いたら効いた。)

Google Maps API V3にはポリゴン・ポリラインの作成・編集機能が無い

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
Being the person who started that rumour I can confirm that we are continuing to work on this, but the scheduled has now slipped a little to mid Q2. Apologies for the delay.

V2にはあるポリゴンやポリラインの作成・編集機能がV3にはまだないらしい。
あれはかなり強力な機能だけど、需要はなさそうというか狭そう。
mid Q2ということは5月頃リリース?

2011年3月24日木曜日

Windows用の Libavバイナリが動いた

POSTORO: Libav (FFmpegから改名)が Windows用バイナリの配布を開始
exeをダブルクリックしても起動しない。レジストリに登録とかあるのかな?

エラーが出るDLLを削除して、代わりにリビジョン付きの方を改名(例:avcodec-52.114.0.dll → avcodec-52.dll)するという作業を一つずつやったら動くようになった。(少なくともコマンドプロンプトからヘルプ等を見られるようにはなった。)

Libav (FFmpegから改名)が Windows用バイナリの配布を開始

Libav
Moreover, we are proud to accompany this source release with executables and libraries for the win32 platform. These binaries include H.264 encoding using the bundled x264 library. Enjoy!

7-Zipで解凍して中を見たら、まだFFmpegの名前が残っていた。(互換性のため?)
exeをダブルクリックしても起動しない。レジストリに登録とかあるのかな?

suは何の略? sbinは?

sbinのsは何の略ですか? - 人力検索はてな
suはswitch userではなく、substitute userの意味だったはずです。
substitutionが代理、代用なので、一時的に他のuser idを代用する、という感じです。

suを使うのは、ちょっとだけroot権限ユーザーになって何か作業するときが多々あるので、
Super Userの略だという勘違いは昔からみたいですね(私も最初はそう思ってた)。

suはsubstitute userの略。switch user説もあるけど、英語のmanを見たら
su - run a shell with substitute user and group IDs
って書いてあった。

また、sbinはsystem binaryの略という説が有力だが、staticのsだという説もあるようだ。


Firefox4に対応した はてなブックマークのアドオンが動いた

POSTORO: Firefox4に対応した はてなブックマークのアドオンは動かなかった
Firefox4に対応したバージョン2.1.2とバージョン2.1.2b2を両方試してみたが、少なくともGoogle検索結果にはてなブックマーク数を表示する機能は動かなかった。(それ以外の機能は試してない。)

動かなかったと思った2.1.2だが、気がついたらGoogle検索結果にはてなブックマーク数が表示されるようになっていた。なぜ?いつから?
もしかして、はてなのサーバ側の問題だったのか?

YSlowで CDNが CDNとして認識されない問題の対策

YSlow FAQ
Unfortunately, the list of "known CDNs" are the ones used by Yahoo!. Most likely these are not relevant to your web site, except for potentially yui.yahooapis.com. If you want an accurate score for your web site, you can add your CDN hostnames to YSlow using Firefox's preferences. Here are the steps to follow:

デフォルトではYSlowは身内の yui.yahooapis.com しかCDNとみなさないらしい。
せめて ajax.googleapis.com くらいはCDNとみなして欲しいものだ。

設定の変更方法は、
  1. about:configを開く
  2. 適当なところで右クリックしてコンテキストメニューから「新規作成」「文字列」を選択
  3. 設定名に「extensions.yslow.cdnHostnames」と入力
  4. 値にはCDNとして登録したいドメインを登録(複数ある場合はカンマ区切りで)
  5. Firefoxを再起動

これで反映された。

Firefox4に対応した はてなブックマークのアドオンは動かなかった

POSTORO: Firefox4に対応した はてなブックマークのアドオンが既にあった
バージョン番号から"b"は取れてるけどまだベータ版なのかな?(既知の不具合があるし。)


Firefox4に対応したバージョン2.1.2とバージョン2.1.2b2を両方試してみたが、少なくともGoogle検索結果にはてなブックマーク数を表示する機能は動かなかった。(それ以外の機能は試してない。)

やはりまだ正式版ではないのだね。

Firefox4に対応した はてなブックマークのアドオンが既にあった

Hatena Bookmark :: Versions :: Add-ons for Firefox
- Firefox 4 に対応
- Google 検索結果でのマイブックマーク全文検索結果表示が乱れていたのを修正

既知の不具合
- Firefox 4 において、コメント文字数の多いブックマークが存在するとき、コメントビューワーの幅が大きく広がることがある

バージョン番号から"b"は取れてるけどまだベータ版なのかな?(既知の不具合があるし。)

それとも、もしかしてリリースしたつもりがLatest Version扱いになっていない?!
.

2011年3月23日水曜日

Rails2のドキュメント

Rails3がリリースされてから公式サイトのRailsのドキュメントがRails3のものに変わってしまった。



でもRails2のドキュメントも残っていた。

Ruby on Rails Documentation
Modified: Thu Aug 19 22:56:35 +0000 2010

Firefox4で TweetsCounterV2が動かない問題の対策

これと同じ原因みたい。

Firefox 4.0b8~b9 でLDRize (Minibufferの修正) - wltの日記
どうもXMLオブジェクトを渡すのがいけないらしくてtoString()メソッドで文字列にした。

同じように「<><![CDATA[」~「]]></> 」を()で囲んで.toString()したら動くようになった。

Firefox4はステータスバーがなくなった

Firefox 4 アドオンバーの中にリンク先URLの表示を移動させてみた | Firefox Fan Club + More Browsers
Firefox 4 からステータスバーが廃止になって代わりに「アドオンバー」となった。


探しちゃっよー

Firefox4 非互換レポート その4:はてなブックマーク Firefox拡張が動かない

はてなブックマーク Firefox 拡張
はてなブックマーク Firefox 拡張は、Mozilla Firefox ブラウザ専用のブラウザ拡張です。はてなブックマークの様々な機能をブラウザに組み込むことで、はてなブックマークをより便利に利用することができます。

Google検索結果のリンクに、はてなブックマーク数が表示されない。
その他の機能については未確認。

Firefox4 非互換レポート その3: VMware Infrastructure Web Accessが一部動かない

VMware Server の FAQ、無償の仮想化によるサーバ統合
VMware Server は、サーバ仮想化を実現するための無償製品です。 VMware Server は、一般のアプリケーションのように、あらゆる既存のサーバ ハードウェアにインストールできます。また、1 台の物理サーバをパーティショニングして、複数の仮想マシンを作成することができます。 今回リリースされる次世代のバージョンでは、直感的な Web ベースの管理インターフェイスが導入されており、Windows または Linux ユーザーに継続的な管理環境を提供します。

VMware Server2のVMware Infrastructure Web Accessの表示はできたが、VMを選んでも詳細が表示されない。
まあ以前から別の一部の機能(何だっけ?VM作成時の何か)は動かなかったが。

ちなみにAmazonのAWS Management Consoleは大丈夫そう。

Firefox4 非互換レポート その2:Wescriptが暴走

Wescript
ウェブをもっと便利にする
ユーザスクリプトを
発見しよう

Mozilla製アドオンのAdd-on Compatibility Reporterを入れれば、Firefox4未対応のアドオンでもたいていは動く。
でもこれでWescriptを動かしてしまうとFirefoxの動きがあちこちでおかしくなるので注意。既に動かしてしまったら、セーフモードにして無効にするか削除を。

Firefox4 非互換レポート その1:TweetsCounterV2が動かない

TweetsCounterV2 for Greasemonkey
displays a tip indicating how many tweets on the current page(URL) / 閲覧中のページに関するつぶやきの件数を表示。クリックで一覧を表示
Version: 0.0.5.0

表示中のページについてのTweetを表示してくれるTweetsCounterV2がFirefox4で動かないようだ。

2011年3月21日月曜日

URL短縮サービスはフィッシング対策すべき

floatingdays: 大手サイトがやっている自サイト専用のURL短縮サービス
日経新聞のサブドメインを使うやり方は好感が持てる。

bit.lyのようなURL短縮サービスは、フィッシング対策のために短縮URLに短縮前のドメインを含むようにすべきだと思う。

こんな感じで。

http://bit.ly/www.example.com/xxx

長いから嫌なんだろうな。ながーーいドメインとかあるしね。

2011年3月18日金曜日

EBSは Terminateしても消えないらしい(オプションによるが)

EC2におけるIPとストレージ(Ephemeral,EBS)の変化タイミングまとめ | TecTec Cloud
DBサーバには通常EBSを用いる為、障害にて強制terminateされてもデータが失われることはない。

device-mappingオプションというのがあって、通常のインスタンス(オンデマンド)の場合はインスタンスをTerminateしてもEBSは削除されないらしい。

(2011/3/18 追記)
EBSブートのインスタンスをterminateしたらEBSは削除された。上記の話はブートでないEBSの話かも。

Twitter APIで ReTweet済みの Tweetを ReTweetしようとしたらどうなるか

Twitter API Wiki / Twitter REST API Method: statuses retweet
Twitter will ignore attempts to perform duplicate retweets.

無視されるらしい。

AdSenseの表示が高速化されたらしい

Inside Adsense - 日本語: すべてのコンテンツ向け AdSense サイト運営者様のウェブ表示速度を高速化
現時点では、Google Chrome、Mozilla Firefox、Microsoft Internet Explorer 8 で高速化を導入しておりますが、この他のブラウザにも順次導入する予定です。

Chrome、Firefox、IE8限定の高速化って、技術的には何をしたんだろう?

ApacheLoungeの PHPが公式に推奨されていた

php.internals: PHP 5.3.6 Released!
Windows users: please mind that we do no longer provide builds created with Visual Studio C++ 6. It is impossible to maintain a high quality and safe build of PHP for Windows using this unmaintained compiler.

For Apache SAPIs (php5_apache2_2.dll), be sure that you use a Visual Studio C++ 9 version of Apache. We recommend the PHP builds as provided by ApacheLounge.

今までWindow用のバイナリはVC6、VC9のそれぞれで作ったものが提供されていたが、PHP5.3.6からはVC6版の提供が無くなったらしい。
普通にApacheをインストールするとVC6版なので、困る人は多いと思う。

で、代わりに推奨されているのがApacheLounge版。たしかにApacheLoungeはリリースが素早くeAcceleratorなどの周辺ツールも充実しててよいのだが...
以前サイトが一時落ちてて、寄付を募集してたのが心配。アクセスが集中してたらまた落ちちゃうんじゃ...

urllib.urlencodeで UnicodeEncodeError: 'ascii' codec can't encode characters

urllib.urlencode に unicode を渡すとエラー - Pythonで遊ぶよ - pythonグループ
そういうときは urllib.urlencode を使って

import urllib
print urllib.urlencode(args)

とするみたいなのだが、unicode が混じってると使えない。

おーすばらしー!ありがとー!
.

2011年3月17日木曜日

Google Maps API V3の OverviewMapControlが公式に発表された

Google Geo Developers Blog: A new angle on the world with 45° imagery
overviewMapControl: true,
overviewMapControlOptions: {
    opened: true
}

In three weeks the Overview Map Control will be added by default to all Maps in its minimized state.

デフォルトでは初期表示時には閉じた状態(矢印アイコンのみに縮小された状態)だが、上記のように「opened: true」を指定すれば開いた状態になる。
3週間以内には「overviewMapControl」のデフォルトがtrueになるようだ。

いつのまにかGoogle Chart APIも HTTPSでアクセスできるようになっていた

Getting Started With Charts - Google Chart Tools / Image Charts (aka Chart API) - Google Code
https://chart.googleapis.com/chart?chs=250x100&chd=t:60,40&cht=p3&chl=Hello|World

以前のURL
 http://chart.apis.google.com/...

今のURL
 https://chart.googleapis.com/...

ちなみに、今のURLはhttpでもアクセスできる。

2010年の12月にはもう使えるようになっていたみたい → HTTPS access via https://chart.googleapis.com - Google Chart API | Google グループ
知らなかった。

Amazon EC2にサインアップしたら使えるサービス

Amazon EC2にサインアップしたら、AWS Management Consoleに表示されるサービスのうち、下記のサービスが使えるようになった。

  • S3
  • EC2
  • VPC
  • CloudWatch
  • SNS

それに対して下記のサービスは別途サインアップが必要なようだ。(また電話かかってくることは無いかもしれないけど。)

  • Elastic Beanstalk
  • Elastic MapReduce
  • CloudFront
  • CloudFormation
  • RDS

境界線はなんだろう?
CloudFormationはEC2とセットだから有効になってもよさそうだけど。
逆にSNSが使えるようになるのは意外だった。

Google Maps API V3が HTTPSでアクセス可能になった

Google Geo Developers Blog: Maps APIs over SSL now available to all
To load the Maps API v3 over HTTPS, the API must be loaded from the hostname maps-api-ssl.google.com. For the Static Maps API and Web Services, please use maps.googleapis.com.

こんな感じか。
<script type="text/javascript" src="https://maps-api-ssl.google.com/maps/api/js?sensor=false"></script>

maps-api-ssl.google.co.jpではアクセスできなかった。


Google Chart APIはどうなんだろ?

2011年3月16日水曜日

Googleでリアルタイム検索にするためのパラメータ

銀河の歴史がまた1ページ - 2010.10.01
オプション「tbs=mbl:1」でリアルタイム検索になるのかな?

余談だが、オプション「tbs=vid:1」にすると、動画のサムネイルも含めて検索結果に表示されるようになるらしい。

試したら「tbs=mbl:1」でリアルタイム検索になった。
ちなみに「tbs=mbl:0」や「tbs=mbl:2」というのはなさそう。

2011年3月15日火曜日

IEがイントラネットで互換表示するのを回避する方法

IE8が互換表示になりバグと誤解するのを回避する方法 | エンタープライズ | マイコミジャーナル
ここで問題になるのは何をもって「イントラネットにあるコンテンツ」と判断しているかだが、Craig Buckler氏は自分が実施した調査範囲内だと前置きしたうえで、どうやらドットを含まないドメイン名を使ってコンテンツにアクセスしている場合にはイントラネットだと判断しているようだと説明している。またlocalhost、127.0.0.1、192.168.x.xのようなIPやドメイン名でのアクセスはイントラネットとは判定されなかったという。
試してみたらそのとおりだった。
IPアドレスで指定すればいいんだ。

HTML5は標準モードになる

HTML5でマークアップしてみよう-そろそろ、HTML5
HTML5におけるDOCTYPE宣言は、あまり意味を持たないとされていますが、 DOCTYPE宣言が無いとブラウザのレンダリングモードが、互換モード(Quirks mode)となってしまいます。 ブラウザに標準モード(Standards mode)で解釈させたい場合には、DOCTYPE宣言を記述する必要があります。 IE6も含めて、主要なブラウザでは文書の先頭に と記述することで標準モードとなります。

あんなDOCTYPE宣言でも標準モードになるんだー

IE8で LAN内の Webページを IE7互換表示で表示する方法

IE8でLAN内のWebページを表示すると、普段は表示している「互換表示ボタン」が表示されない。
IE7での見栄えを確認したい時に不便。
調べてみると設定で変えられるようだ。

IE8の互換表示モードの罠! Peaceful Paradise Life
それは互換表示設定(ツール→互換表示設定)で下記の項目にチェックが入っているからだった。

上記はMSの要互換表示サイトリストによる適用をやめる場合だが、同じダイアログにある「互換表示でイントラネット サイトを表示する」の方のチェックを外せばOK。

2011年3月12日土曜日

Google Maps API V3で面積や距離を計算する

Google Maps Javascript API V3 Reference - Google Maps JavaScript API V3 - Google Code
google.maps.geometry.spherical namespace

Utility functions for computing geodesic angles, distances and areas. The default radius is Earth's radius of 6378137 meters.

V2のようにPolylineやPolygoneになかなか実装されないと思っていたら、これを使えばできたのか。

Google Maps API V3にOverview Controlが追加された

Issue 1470 - gmaps-api-issues - Add overview map control - Project Hosting on Google Code
overviewMapControl: true

公式ドキュメントにはまだ書いてないが、V2の時のようなOverview Controlが追加された。(少し小さくなったような?)

上記リンク先のコメント35によると、まだ未完成(バグがある)なのでGoogleは発表していないのではないか、とのこと。

2011年3月9日水曜日

VMware Authorization Serviceが自動起動しない問題の対策

VMware Server2の話。
サービスの設定で自動起動にしているのだが、VMware Authorization Serviceが起動に失敗し、それに引っ張られてVMware Host Agentも自動起動されない問題。

原因は意外にもDropboxだった。

OneNote的な VMware Serverのサービスが自動で起動しない
同時期に、しばらくPCを起動しているとDropboxがフリーズし、エクスプローラーの操作が非常に重くなるという現象が発生していたが、Dropboxを再インストールすると解消し、VMware serverのサービスも正常に起動するようになった。どうやらDropboxが原因だったようだ。

自分のところでもDropboxを0.7.110から1.0.20にバージョンアップしたら問題が解決したみたい。(Windowsを再起動してもVMwareのサービスはきちんと自動起動された。)

Dropboxを 1.0にバージョンアップする方法

Dropbox - Downloading Dropbox - Online backup, file sync, and sharing made easy.
Downloading Dropbox...

ダウンロードしたexeを実行するだけで、0.7.110(ぐらい)から1.0.20にバージョンアップできた。
既存のDropboxの停止も不要だった。完了通知もなくあっけなく終わった。

PHPの file_get_contents()で失敗した時に Warningを出さない方法の注意点

POSTORO: PHPの file_get_contents()で失敗した時に Warningを出さない方法
こうなっていると、4xxや5xxのステータスコードであってもWarnningを発生させず、本来のレスポンスボディが返ってくるようになります。

ステータスコードが返ってくればWarningは出ないんだけど、ホスト名の名前解決ができない場合はWarningが出るので注意。gethostbyname()とかでチェックするかー?

PHPの file_get_contents()で失敗した時に Warningを出さない方法

[メモ] PHPのfile_get_contentsを、HTTPリクエストに使うときのTIPS ::ハブろぐ
過剰なエラー反応や、2xx&3xx以外のレスポンスボディを取得しない問題は、PHP5.3系であればコンテキストにignore_errorsを与えることで解決します。
(中略)
こうなっていると、4xxや5xxのステータスコードであってもWarnningを発生させず、本来のレスポンスボディが返ってくるようになります。

こんなパラメータあったんだ。
Manualによると5.2.10から追加されたらしい。

ブログ アーカイブ

カテゴリー