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

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

ブログ アーカイブ

カテゴリー