アーカイブ

‘日記’ カテゴリーのアーカイブ

githubの使い方

2010 年 8 月 22 日 コメントはありません

公開鍵を作成し設定する
Help.GitHub – Generating SSH keys (Win/msysgit)

ユーザー名、アクセストークンの設定をする

$ git config --global github.user username
$ git config --global github.token xxxxxxxxxxxxxxxxxxxxxx

接続を試してみる。

$ ssh git@github.com
ERROR: Hi username! You've successfully authenticated, but GitHub does not provide shell access
   Connection to github.com closed.

successfully authenticatedのメッセージが帰ってくればOK

あとはgithubでリポジトリを作成すると、commitの仕方が表示されます。

カテゴリー: 日記 タグ:

ChromeのRSS Subscription Extension

2010 年 8 月 4 日 コメントはありません

RSS Subscription Extension(by Google) – Google Chrome 拡張機能ギャラリー
FirefoxのようにChromeでも簡単にRSSを登録できるようになる拡張機能

オプションからlivedoor Readerを追加
説明:「livedoor Reader」
URL:「http://reader.livedoor.com/subscribe/%s」

カテゴリー: 日記 タグ: ,

ツイート非公開時のTwitterAPIの挙動

2010 年 7 月 20 日 コメントはありません

ツイート非公開時のTwitterAPIの挙動が一部違う。

ツイート非公開時に、取得しようとした時、共通のエラーが返されるAPI一覧。
Retweet周りは触ったことがないので、知っている限り。

Twitter API Wiki / Twitter REST API Method: statuses user_timeline
Twitter API Wiki / Twitter REST API Method: statuses friends
Twitter API Wiki / Twitter REST API Method: statuses followers
Twitter API Wiki / Twitter REST API Method: favorites

返ってくるステータスコード

401

返ってくる文字列

Not authorized

statuses showだけ返る結果が違うので注意が必要。
Twitter API Wiki / Twitter REST API Method: statuses show

返ってくるステータスコード

403

返ってくる文字列

Sorry, you are not authorized to see this status.
カテゴリー: 日記 タグ:

blogのデータが吹っ飛びました

2010 年 6 月 22 日 コメントはありません

blogのデータと、redmineのwikiと、リポジトリが死にました。
超泣きたい。

カテゴリー: 日記 タグ:

Services_Twitterにパッチが取り込まれてたよ

2010 年 6 月 14 日 コメントはありません

PEAR::Services_Twitterのリスト対応

Changelog:
* Updated statuses/update method : added lat, long, place_id and display_coordinates parameters (closes feature request #17421)
* Added lists and trends support from http://blog.cheki.net/archives/1618
* Added generatePackage.php for easy package.xml management
Services_Twitter :: 0.6.0

ひどく他力によって。

@cockok どもー、blog見ました。Services_Twitterの件についてコメントしたんですが、さっきcomitterから「やりたいけど手が回らん、パッチなら歓迎だぜ!」的な返事来たんですが、そちらのpatch紹介させて貰っていいですか?

2010-04-14 02:19:57 via YoruFukurou to @cockok

@withgod 是非ともよろしくお願いします。以前投げようとして挫折したまま放置してました。 test切り分けて、申し訳程度にサイズとmd5記載しましたのでこちらでお願いします。 http://bit.ly/aRF2Ny

2010-04-14 11:37:56 via TweetDeck to @withgod

@cockok わざわざ有り難うございます、今からメール書いて投げます。

2010-04-14 13:38:37 via YoruFukurou to @cockok

カテゴリー: 日記 タグ:

CrCh2で開くが地味にウザイ、そんなとき

2010 年 6 月 10 日 コメントはありません

Chromeのポストchaika、CrCh2が0.2にアップデートされました。
ChromeのExtentionsって勝手にアップデートされるの?よくわからんけど。
2chリンクの前に[CrCh2で開く]が強制的につくようになって地味にウザイ。
修正ファイル。
%userprofile%\AppData\Local\Google\Chrome\User Data\Default\Extensions\bidpjfcjipmhampdmejokganmjlhnpkd\0.2\contentscript.js
コメントアウトしてるとこをいじればリンク自体を書き換えてくれる。
そのうちオプションで指定できるようになるんだろうけど。
2NNみれればいいや、他で確認してたりしない。

  //if(ch_exp.test(link.href))
  //{
  //  var new_link = document.createElement(“span”);
  //  new_link.innerText = “[CrCh2で開く]“//link.innerText;
  //  new_link.className = “anchor”;
  //  new_link.churl = “http://” + RegExp.$2 + “.2ch.net/”  + RegExp.$3 + “/dat/” + RegExp.$4 + “.dat”;
  //  new_link.dat = RegExp.$4;
  //  new_link.addEventListener(“click”, function() {
  //    chrome.extension.sendRequest({command:0,board:this.churl,dat:this.dat ,focus:0})
  //  }, false);
  //  var space = document.createElement(“span”);
  //  space.innerText = ” “;
  //  parent.insertBefore(space, link);
  //  parent.insertBefore(new_link, space);
  // // parent.replaceChild(new_link, link);
  //}
  if(ch_exp.test(link.href))
  {
    link.churl = “http://” + RegExp.$2 + “.2ch.net/”  + RegExp.$3 + “/dat/” + RegExp.$4 + “.dat”;
    link.dat = RegExp.$4;
    link.addEventListener(“click”, function() {
      chrome.extension.sendRequest({command:0,board:this.churl,dat:this.dat ,focus:0})
    }, false);
    link.removeAttribute(‘href’);
    link.removeAttribute(‘target’);
  }
カテゴリー: 日記 タグ:

forで毎度countするとパフォーマンスが悪いという話

2010 年 6 月 10 日 コメントはありません

forで毎度countするとパフォーマンスが悪いというのは周知の事実だと思います。
注意される書き方。


$arr = range(1, 15);
for ($i = 0; $i < count($arr); $i++) {
  echo $arr[$i];
}

一般的な書き方。


$arr = range(1, 15);
$cnt = count($arr);
for ($i = 0; $i < $cnt; $i++) {
  echo $arr[$i];
}

俺カッコいいな書き方。一般的な書き方ではなく、見通しが悪いので自己満足極み。

$arr = range(1, 15);
for ($i = 0; $cnt = count($arr), $i < $cnt; $i++) {
  echo $arr[$i];
}

上記のような使い方だと、代替としてforeachが利用でき、foreachのほうがパフォーマンスがいいという話。

foreach (range(1, 15) as $key => $val) {
  echo $val;
}
カテゴリー: 日記 タグ:

PEAR:HTTP_OAuth_Consumer_Response::getDataFromBody()

2010 年 6 月 10 日 コメントはありません

PEAR::HTTP_OAuthでxAuth

require_once ‘HTTP/Request2.php’;
require_once ‘HTTP/OAuth/Consumer.php’;
$consumer_key           = ‘YOUR-CONSUMER-KEY’;
$consumer_secret        = ‘YOUR-CONSUMER-SECRET’;
$username               = ‘YOUR-USER-NAME’;
$password               = ‘YOUR-PASSWORD’;
$xauth_access_token_url = ‘https://api.twitter.com/oauth/access_token’;
$params = array(
  ‘x_auth_username’ => $username,
  ‘x_auth_password’ => $password,
  ‘x_auth_mode’     => ‘client_auth’,
);
try {
  $request = new HTTP_Request2();
  $request->setConfig(’ssl_verify_peer’, false);
  $consumerRequest = new HTTP_OAuth_Consumer_Request();
  $consumerRequest->accept($request);
  $oauth = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
  $oauth->accept($consumerRequest);
  $response = $oauth->sendRequest($xauth_access_token_url,
                                  $params,
                                  HTTP_Request2::METHOD_POST);
  $data = $response->getDataFromBody();
  // oauth_token, oauth_token_secret, user_id, screen_name, x_auth_expire
  var_dump($data);
} catch (HTTP_OAuth_Exception $e) {
  echo $e->toText();
  exit;
}
カテゴリー: 日記 タグ:

PHPで絵文字、および、いわゆる「半角カナ」「機種依存文字」入りメールを送信するダーティーハック

2010 年 6 月 10 日 コメントはありません

mbstring.internal_encoding は UTF-8

Shift_JIS編


$to = 'test@docomo.ne.jp';
$from = 'from@example.jp';
$subject = 'あアア①'.pack('H*', 'EE98BE');
$body = 'あアア①'.pack('H*', 'EE98BE');
$headers = "From: ".$from;
$sendmail_param = "-f".$from;
$subject = '=?shift_jis?B?'.base64_encode(mb_convert_encoding($subject, 'cp932')).'?=';
$body = mb_convert_encoding($body, 'cp932');
mail($to, $subject, $body, $headers, $sendmail_param);

ダーティーなところ。
メールヘッダは78文字毎にCRLFで改行すべき(should)だが、しなければならない(must)じゃないので無視する。
mimeエンコードはクライアントが識別できるShift_JISするが、実際の文字コードはcp932を利用する。

ISO-2022-JP編


$to = ‘test@docomo.ne.jp’;
$from = ‘from@example.jp’;
$subject = ‘あアア’;
$body = ‘あアア’;
$headers = “From: “.$from;
$sendmail_param = “-f”.$from;
$subject = ‘=?iso-2022-jp?B?’.base64_encode(mb_convert_encoding($subject, ‘jis’)).’?=’;
$body = mb_convert_encoding($body, ‘jis’);
mail($to, $subject, $body, $headers, $sendmail_param);

PHP5.2.1以上の環境ならば「jis」→「iso-2022-jp-ms」にすると①等も送信できる。

カテゴリー: 日記 タグ:

QNAP TS-459 Pro購入

2010 年 6 月 10 日 コメントはありません

というわけで、QNAP TS-459 Proを購入しました。
HDDはWD20EARS-00MVWB0を4本ほど。
WD20EARS-00MVWB0
消費電流が前のモデルに比べて0.1A増えてるので悩んだんですが結局これにしました。
Western Digital(WD)/ウェスタン・デジタル WD20EARSのレビューと評価: -00S8B1 と-00MVWB0を比較してみました・・・ [coneco.net 商品レビュー]
667GBプラッタ採用ハードディスク「WD20EARS-00MVWB0」の速度検証

カテゴリー: 日記 タグ: