AKISAME.JP
iepngfix.htcのIE判定
- 2010-05-12 (水)
- PC
IE5.5やIE6でも透過PNGを表示できるようにしてくれるIE PNG Fixをとてもありがたく使わせてもらっているんだけど、IEのバージョン判定が甘い気がする。
問題の箇所はipengfix.htcの74行目付近。
if (
!/MSIE (5\.5|6)/.test(navigator.userAgent) ||
typeof elm.filters == 'unknown'
) {
return;
}これだと透過PNGが使えるIE7やIE8でも適用されてしまう。
・・・というかこのプログラムはそういう仕様なのかも。
「IE5.5+ PNG Alpha Fix v2.0 Alpha」って書いてあるし。
IE5.5以上で透過PNG使えるようにするみたい。
- Comments (Close): 0
- Trackbacks (Close): 0
google スプレッドシートのフォーム機能の「必須」を「required」にする
- 2010-04-01 (木)
- PC
googleドキュメントでフォームを作ったんだけど、「必須」のところを英語で「required」って表示させたい。フランス語なら「Obligatoire」
海外の人にもアンケートに答えて欲しい。そんなときのtips。
googleドキュメントの仕様(予想)
googleにログインしている人
→その人のgoogle docsの設定に依存
googleにログインしていない人
→spread sheetを作った人のgoogle docsの設定に依存
→言語が指定されていればその指定に従う
で、言語の指定方法はアドレスにhl=enをつけてあげる(英語の場合)だけ。
http://spreadsheets.google.com/viewform?hl=en&formkey=…
hl=frだとフランス語
hl=koだと韓国語
hl=itだとイタリア語
hl=deだとドイツ語
hl=deだとドイツ語
hl=spだとスペイン語
のようです。
- Comments (Close): 0
- Trackbacks (Close): 0
im.kayac.comでiPhoneにtwitterをプッシュ通知するphpソースコードサンプル
特定のユーザのtwitterの投稿をiPhoneにプッシュ通知してくれるアプリが欲しい。
そういうアプリはなさそうなので、本当はそういうアプリを作りたかったのだけれど、大変そうなのでim.kayac.comとphpとcronで実現してみた。
im.kayac.com(App Store)
このiPhoneアプリはいろいろ便利。プログラムかければいろんなのをプッシュ通知できる。
以下サンプルソース。変なところがあったら教えて欲しい。
これをcronで5分毎に実行する。
(cronで実行するときは、1行目に#!/usr/local/bin/phpって書く)
<?php // 取得したいツイッターユーザの名前(ID)を配列で設定。 $tnames = array("tweetid"); // im.kayacのユーザ名 define(K_NAME, 'username'); // im.kayacでパスワード認証を設定している場合 define(K_PASS, 'pass'); // // im.kayacで秘密鍵認証を設定している場合 define(K_SIG, 'pass'); // 重複取得回避用のログファイル define(LOG_FILE_NAME, 'tw_log.php'); // エラーログ記録用のファイル define(ERRLOG_FILE_NAME, 'tw_errlog.log'); // 取得したメッセージをim.kayac.comへ。 function outMessage($message){ // メッセージの内容 // 時間 $timestamp = strtotime($message->created_at); $content = date("Y/m/d H:i",$timestamp)."@"; // 名前 $content .= $message->user->name.">>"; // 内容 $content .= $message->text.""; // imkayacを使ってプッシュ imkayac($content); return; } // http://project-p.jp/halt/anubis/blog_show/1269をほぼそのまんま // cURLでできるんじゃなかろうか。 function imkayac($message){ $data = array( "message" => $message, "password" => K_PASS, ); $data['sig'] = sha1($data['message'] . K_SIG); unset($data['password']); $data = http_build_query($data, "", "&"); //header $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ".strlen($data) ); $context = array( "http" => array( "method" => "POST", "header" => implode("\r\n", $header), "content" => $data ) ); $url = "http://im.kayac.com/api/post/".K_NAME; file_get_contents($url, false, stream_context_create($context)); return; } // ログ取得(重複tweet読込回避) function getLog(){ $retval = array(); if( ($fp = fopen(LOG_FILE_NAME,"r+") ) ){ while (! feof($fp)) { $line = fgets ($fp, 4096); $data = explode(",", trim($line)); $retval[$data[0]] = $data[1]; } fclose($fp); } return $retval; } // ログ保存(重複tweet読込回避) function saveLog($datas){ $log = ''; if(!empty($datas) && is_array($datas)){ foreach($datas as $name => $id){ if(!empty($name) && $id){ $log .= $name.",".$id."\n"; } } } $fp = fopen(LOG_FILE_NAME,"w+"); flock($fp, LOCK_EX); fputs($fp, $log); flock($fp, LOCK_UN); fclose($fp); return; } // エラーログ保存(念のため) function saveErrLog($message){ $fp = fopen(ERRLOG_FILE_NAME,"a+"); $date = date('Y/m/d h:i:s'); $logmessage = $date." ".$message."\n"; flock($fp, LOCK_EX); fputs($fp, $logmessage); flock($fp, LOCK_UN); fclose($fp); return; } // 重複取得回避用 $logs = getLog(); foreach($tnames as $tname){ // 重複取得回避用 if(!empty($logs[$tname])){ $since_id = "?since_id=".$logs[$tname]; } else { $since_id = ""; } // 特定のユーザーのタイムライン取得用API $apiURL = "http://api.twitter.com/1/statuses/user_timeline/".$tname.".xml".$since_id; // cURLを使ってXML取得 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiURL); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $retXML = curl_exec($ch); curl_close($ch); // 取得したXMLを解析 if(!empty($retXML) && ereg("^<\?xml", $retXML) && $xml = simplexml_load_string($retXML) ){ if($xml->status){ foreach($xml->status as $message){ // 重複取得回避用 if($logs[$tname] <= $message->id){ $logs[$tname] = $message->id; } // 取得したTLを出力 outMessage($message); } } } else { // 一応エラーログ記録 saveErrLog("xml取得失敗"); } } // 重複取得回避用 saveLog($logs); ?>
twiiterAPIと通信する部分をいろいろ変えればReplyとかmentionとかだけ取得することも可能。
そんときはログインも必要になるので、「phpでTwitterをハンドリングするサンプル」を参考に変えたらいいと思う。
他に欲しい情報とかあったら、Twitter API Wikiのサイトをみればだいたい分かる。
英語読めなくても結構わかる。
※参考サイト
- Comments: 0
- Trackbacks (Close): 0
Artisteer – WordPressナビゲーションメニューの調整
- 2010-03-15 (月)
- PC
aritsteer使ってる人ってあまりいないのだろうか。日本語の情報が少ない。
artisteerの作ったテーマを適用した場合、静的ページを作成したらそれがナビゲーションにメニューに自動的に表示されてとても便利。
でもメニューが増えてくると邪魔。
なのでそういうときは、テーマを編集する。
functions.php内に、art_menu_items()という関数があるのでそのwp_list_pagesのパラメータを以下のように編集。
変更前。
wp_list_pages(‘title_li=&sort_column=menu_order);
変更後。
wp_list_pages(‘title_li=&sort_column=menu_order&include=9,26,43,50,53′);
includeの後に表示させたいページIDをカンマ区切りで入れていけばOK。
ページIDは、管理画面の「ページ」から編集したい画面を選択するとURLがpost=xxとなってるのでその番号を記載する。
表示させたくないページだけ表示させないようにする場合はinclude→excludeにしてIDを指定する。
こんな感じ。
wp_list_pages(‘title_li=&sort_column=menu_order&exclude=3,4′);
参考サイト
- Comments (Close): 0
- Trackbacks (Close): 0
Thunderbirdでcp932の文字化け対策
- 2009-06-07 (日)
- PC | thunderbird
Thunderbird(windows)でcharset=CP932のメールもらうと文字化けする。
で、対処方法みつけたのでメモ。
C:\Program Files\Mozilla Thunderbird\resフォルダのcharsetalias.propertiesというファイルを編集すればOK
#
# Aliases for Shift_JIS
#
x-sjis=Shift_JIS
shift-jis=Shift_JIS
ms_kanji=Shift_JIS
csshiftjis=Shift_JIS
windows-31j=Shift_JIS
↑の部分に以下の行を追加。
cp932=Shift_JIS
再起動したら文字化けしなくなってました。
厳密にはこの二つの文字コードは違うものらしいのだけれど、とりあえずこれで見られるようになったのでOKということで。
charset=CP932の文字コードはどうやらMac OS X のMail.app使ってるとそうなるらしい。
メールを送る人がCP932をやめてくれればいいのだけれど、言えないときもよくあるので、そんなときはこの対策。
- Comments (Close): 0
- Trackbacks (Close): 0
Thunderbirdでhtml形式の変換を避ける
- 2009-05-09 (土)
- PC
「返信」ボタンを押すと、html形式で編集が始まる
メーラーはThunderbirdを使ってます。
「返信」ボタンを押すと、たまに勝手にhtml形式で編集が始まります。
原因はよくわからない。たまにそうなる。そんなの耐えられない。
それを回避する方法を探してたんだけど、どこにも設定がなくて・・・。
あきらめかけたところで
「ツール」⇒「オプション」⇒「詳細」⇒「一般」⇒「設定エディタ」を発見。
それらしい言葉(htmlとかeditor)のところを見当つけて、一個ずついじってやっと発見。
忘れてしまうと、もったいないのでメモ。
「設定エディタ」で値を変更
mail.identity.default.compose_html
これをfalseにすればいいっぽい。
いまだにhtmlのメールがキライで全部text形式で送ってます。
相手に届くメールの内容が意図しない形に編集されるのは嫌だ。
残りの課題
ISO-8859-1って何?
実はもう一個解決したい問題があって、これも「返信」を書いてるときなんだけど、「西欧(ISO-8859-1)」で編集が始まります。
それだけなら何の問題もないのだけれど、しばらくすると「UTF-8で送信したほうがいいよ」みたいな警告が出てきます。
警告がじゃまなので、常にUTF-8で編集するように設定したいのだけれど、設定の仕方がわからない。
- Comments (Close): 0
- Trackbacks (Close): 0
googleでアンケート
- 2009-04-07 (火)
- 戯言
googleドキュメントにフォームの作成機能が便利な件。
イベントを開催して参加者の申し込みを受け付けるときは、たいてい無料フォームメールのサービスを使うのだけれど、googleの「フォーム作成」を使ったら便利そう。
無料フォームメールサービス(以下、FMS)とGoogleドキュメントのフォーム作成機能(Google Form)を比較してみた。
まずは申し込みを受け付けるフォームとしての利用。
| FMS | Google Form | |
| 見た目 | ある程度自由 | 変更できない。でもシンプルでカッコイイ |
| 広告 | 広告が入る | 広告なし |
| フォームの作成 | カッコイイものを作ろうとすると、ある程度HTMLの知識が必要 | HTMLの知識必要なし |
| 集計 | 一回一回CSV形式でダウンロードして集計 | GoogleDocsからすぐに集計可能。概要機能もあり。 |
たとえば↓みたいなのがったら騙されそう
読込中…
↓こういうのも出来る
読込中…
- Comments: 0
- Trackbacks (Close): 0
WindowsでTortoiseSVNを使う
- 2008-12-06 (土)
- PC
さくらにSubversionをインストールの続きの記事。
さくらインターネットのレンタルサーバ(スタンダードプラン)にsubversionをインストールしてある前提で話を進めます。
WindowsのバージョンはXP SP3です。
Windowに以下をインストールして設定。
- puttyごった煮版
- TortoiseSVN
鍵認証でssh接続するので鍵の生成と管理用にputtyもインストールします。
私の場合は複数の接続先(さくらのスタンダードプランを2つ契約してる)でSVNを使ってるので、鍵を使いわけるためputtyごった煮版を使用してます。
なのでToroiseSVNのsshクライアントの設定とレポジトリのURLが他のサイトと少し違うかも。
- sshクライアントの設定
- レポジトリのURL
“C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe” -l XXXXX -i “C:\Program Files\TortoiseSVN\bin\id_rsa.ppk”
[sshクライアント] -l [ユーザID] -i [秘密鍵]
svn+ssh://XXXXX.sakura.ne.jp/home/XXXXX/repo/test
svn+ssh://[アドレス]/[リポジトリがあるディレクトリのパス]
となっているところが
- sshクライアントの設定
- レポジトリのURL
“C:\Program Files\Putty\Plinkw.exe”
[sshクライアント]
svn+ssh://XXXXX@XXXXX.sakura.ne.jp/home/XXXXX/repo/test
svn+ssh://[ユーザID]@[アドレス]/[リポジトリがあるディレクトリのパス]
になります。
以下詳細を説明していきます。
puttyごった煮版をインストール
http://yebisuya.dip.jp/Software/PuTTY/
からインストール版をダウンロードしてインストールします。
手順は省略(^^;)
TortoiseSVNをインストール
インストール方法はhttp://www.gside.org/Gentoo/subversion/subversion_client.htmlに載ってるのでそちらをみてください(^^;)
わかりやすいです。
ssh接続のための設定
svn+sshで接続するので、その設定を書いておきます。
鍵の生成
PuTTYgenを起動します。
場所は「すべてのプログラム」→「PuTTYごった煮版」→「PuTTYgen」。
「生成」ボタンを押して鍵生成。
マウスを適当に動かしてるとゲージが動いて鍵が生成される。
公開鍵の部分をコピーしてメモ帳などのエディタを開いてペースト。
「authorized_keys」という名前で保存。
これをサーバの /home/xxxxx/.ssh ディレクトリの中にアップロード。
もちろんxxxxxは自分のIDに置き換えてください。
「秘密鍵の保存」をクリックすると警告が出るけど、「はい」を押して適当な名前(とりあえず「id_rsa.ppk」で)をつけて保存。
場所は自分でわかりやすい場所で。
秘密鍵は厳重に管理してください。最悪の場合サイトがのっとられてしまいます。
本来なら秘密鍵にはパスワードをかけるべきです。
パスワードをかけておけば万が一秘密鍵がとられてしまった場合でも”少し”安心です。
心配な方はパスワードをかけてください。
パスワードを設定する場合は、「鍵のパスフレーズ」にパスワードを入力すれば設定できます。
ただしパスワードを設定すると毎回接続するときにパスワードを入力しないといけなくなります。
この辺は自己責任で。
次にPageantを起動。
場所は、「すべてのプログラム」→「PuTTYごった煮版」→「Pageant」。
※Pageantを起動して鍵を設定する操作はPC立ち上げ後、TortoiseSVNを使う前に毎回行わないとだめ。
面倒だからなんとかならないかな。
PCに斜め線が入ったアイコンをクリックor右クリックして「鍵の追加」をします。
で先ほど生成した秘密鍵「id_rsa.ppk」を追加。
TortoiseSVNの設定
適当なフォルダ(なんでもOK)で右クリック。
「TortoiseSVN」→「設定」を選択。
「ネットワーク」のsshクライアント設定の項目に「”C:\Program Files\Putty\Plinkw.exe”」と記入して「OK」をクリック。
TortoiseSVNを使ってチェックアウトとかコミットとか
TortoiseSVNを使ってバージョン管理するときの基本的な手順は以下。
- リポジトリを作ってサーバにアップロード
- リポジトリからチェックアウト
- ファイル(.phpとか.cとか)を作成してコミット
- ファイル(.phpとか.cとか)を変更・作成してコミット
- ファイル(.phpとか.cとか)を・・・以下ずっと続く
最初の2つをちょっとだけ詳しく書きます。
中身が空っぽのフォルダを作って、そのフォルダを右クリック。
「TortoiseSVN」→「リポジトリ作成」でリポジトリを作る。
リポジトリの種類は「Native filesystem(FSFS)」を選択。
フォルダ内にいくつかファイルが出来てるので全て /home/xxxxx/repo/test ディレクトリに入れる。(mkdirコマンドでディレクトリを作っておく)
xxxxxは自分のIDに置き換えてください。
これでリポジトリは作れたので次はチェックアウト。
これからプロジェクトで使うフォルダを右クリックして「SVNチェックアウト」をクリック。
リポジトリのURLに「svn+ssh://XXXXX@XXXXX.sakura.ne.jp/home/XXXXX/repo/test」と入力。
xxxxxは自分のIDに置き換えてください。
参考サイト
- putty→http://yebisuya.dip.jp/Software/PuTTY/
- TortoiseSVN→http://www.gside.org/Gentoo/subversion/subversion_client.html
- Totoise複数の鍵の使い分け→http://sfi.hamazo.tv/e1317475.html
- Comments: 0
- Trackbacks (Close): 0
さくらにsubversionをインストール
- 2008-12-02 (火)
- PC
さくらインターネットのレンタルサーバ(スタンダードプラン)にsubversionをインストールする方法のメモです。
プログラムのバージョン管理は、使い慣れてるSubversionを使用。
サーバ側にsubversionをインストールして、クライアントはWindowsXPでToroiseSVNを使います。
サーバのOSはFreeBSD 6.1-RELEASE-p24 i386。
サーバにsubversionをインストールする
以下の3つが必要。
- subversion
- apr
- apr-util
検索したらswigとかneonも必要って書いてあったけど、上の3つだけで使えました。
subversionダウンロードして解凍
最新版はhttp://subversion.tigris.org/から、たどれば持ってこれます。
.tar.bz2でも.tar.gzでも.zipでもお好きなものを。
今回は1.5.2の.tar.gzを持ってきてインストール。
mkdir -p $HOME/local/src cd $HOME/local/src wget http://subversion.tigris.org/downloads/subversion-1.5.2.tar.gz tar xzf subversion-1.5.2.tar.gz
APRとAPR-Utilをダウンロードして解凍
subversionは1.4.0移行だとAPRとAPR-Utilが入ってなくて
makeできないのでAPRとAPR-Utilをダウンロード。
最新版はもっと新しいけれど、subversionをconfigureしたときに
0.9.xを入れろと書いてあったので0.9.xの最新を持ってくる。
最新版はhttp://apr.apache.org/から0.9.XのところのDownloadをクリックしてたどれば持ってこられます。
cd $HOME/local/src wget http://www.meisei-u.ac.jp/mirror/apache/dist/apr/apr-0.9.17.tar.gz tar xzf apr-0.9.17.tar.gz wget http://www.meisei-u.ac.jp/mirror/apache/dist/apr/apr-util-0.9.15.tar.gz tar xzf apr-util-0.9.15.tar.gz
解凍した中身をsubversionのディレクトリにコピー。
cd $HOME/local/src mkdir subversion-1.5.2/apr mkdir subversion-1.5.2/apr-util cp -rf apr-0.9.17/* subversion-1.5.2/apr cp -rf apr-util-0.9.15/* subversion-1.5.2/apr-util
subversionインストール
cd $HOME/local/src cd subversion-1.5.2 ./configure --prefix=$HOME/local make && make install
configureはこれだけでいいのか不安。
でもこれで使えました。
windowsの設定は、WindowsでTortoiseSVNを使うに書いておきました。
参考サイト
- Comments: 0
- Trackbacks (Close): 0
さくらインターネット共有サーバにWordPressを設置
- 2008-12-01 (月)
- PC
さくらインターネット共有サーバ(スタンダードプラン)でWordPressが動くようになるまでのメモ。
難しいところはなさそうなので、手順だけずらっとメモしておきます。
WordPressインストール手順
DBの準備
さくらのコントロールパネル「アプリケーションの設定」の「データベースの設定」からボタン押すだけ。
WordPerssのダウンロード
WordPress 日本語ローカルサイトから最新版(この記事を書いてるときは2.6.5)をダウンロード
展開してconfig.phpにDBの設定を書く
日本語ドキュメントがあるのでつまづきそうになったらそこを読めば大丈夫。
http://サイトURL/wp-admin/install.phpにアクセスしてサイト名とメールアドレスを入力
以上で、終わり。
古い記事だとphpのパーミッション変えるとか書いてあったけど、やらなくても(644のままで)大丈夫でした。
- Comments: 0
- Trackbacks (Close): 0
- Search
- Feeds
- Meta












