RのPOSIXct的な数値からdate-time objectを作る

どん詰まりしたのでメモ。

> t <- as.POSIXct(<経過秒数>,origin=”<基準にする時間>”);

PHPを使っている場合、time()で1970/01/01から現在までの経過秒数が返ってくる。

私の場合、time()の値をそのまま取り回しているので、これをR上で扱うためには以下のように記述する。

> t  <- as.POSIXct(1323847055,origin=”1970-01-01″);
> t
[1] “2011-12-14 07:17:35 JST”

ちなみにWindowsの場合、シリアル値(だっけ?)というのがあって、これは1900/01/01からの経過秒数のため、excel上などで扱うときは1900-01-01を指定すること。

[PHP] CakePHPの設定

普通にXAMPPとか使ってる人には縁のない話なのだと思うけど、私は時間単位で詰まったのでメモ。

apache2.2.11
WinXP SP3
PHP 5.2.10
MySQL 5.1.35

この環境でCakePHP 2.03を動かしたとき、設定が正しいはずなのにCakePHPがDBに繋がらなかった。

多分設定は皆見る。注意するのは2点。

1、ポート番号を指定すること

$default の設定の部分に”port”を指定して、ポート番号かsockを指定する

‘port’=>” // stringでね

2. php.iniでphp_pdo_mysql.dllを有効にしておくこと

;extension=php_pdo_mysql.dll
という項目があるので頭のセミコロンを外す。

上のextension=php_pdo.dllが有効になってたので油断した…。

lolipop.jp – チカッパプランのsshに公開鍵認証で入る。

はじめに

ロリポップ!レンタルサーバのチカッパプランには、サーバにsshでアクセス可能である。
しかし、このアクセスは2011年12月3日現在、以下に挙げる制約がある。

  • ユーザ名が固定で変えられない
  • パスワード認証のみしか利用できず、しかもパスワードの変更ができない

上記の理由により、通常のアクセスは煩雑な手続きが必要である。
そこで、公開鍵認証を導入した上で、かつ設定ファイルを用意することで面倒なユーザ名入力を省くことを狙いとする。

環境

本記事では、以下の環境が用意されていることを前提とする。

linux環境は不要である。
また、PuttyはOpenSSH2鍵に対応していないようで使用不可能ではないかと考えている (少なくとも、私は出来なかった)。

手順

鍵の作成

まず用意されているはずのアカウントでパスワードでログインする。

$ ssh [lolipopのユーザ名]@[sshサーバ名] -p

初回はサーバのfingerprintが出てyesした後、パスフレーズを聞かれるので入力。無いとは思うが手入力しないように、cygwinのbashの場合は右クリックでペーストするわけではないが、左上右クリックメニューから編集 -> 貼り付けでやる。

続いて、key-pairを作成する。

$ ssh-keygen -t rsa

パスフレーズを聞かれるので、2回入力を行う。
生成した鍵の公開鍵の方は、authorized_keysとして.sshに置く。

$ cd .ssh
$ mv id_rsa authorized_keys

パーミッションの変更を行う。

$ chmod 600 authorized_keys
$ chmod 700 ../.ssh

秘密鍵の転送方法は、可能な限り暗号路経由でコピーするのが望ましい。私の場合はFTPSで接続してローカルマシンへ転送した。

続いて、cygwinのホームディレクトリに.sshフォルダを作り、そこに秘密鍵を入れる。

$ cd ~
$ mkdir .ssh

続いて設定ファイルを作る。

$ cd .ssh
$ touch config

configを編集する。

Host lolipop.jp
User [lolipopのユーザ名]
Hostname [sshdのサーバ名]
Port [ポート番号]
IdentityFile [秘密鍵へのパス]

この状態から、sshで接続すれば良い。

$ ssh lolipop.jp

このあと、git等を利用する予定があるなら、msysGitを入れておくと便利で、秘密鍵ファイルをホームディレクトリの.sshフォルダに置き、configファイルを設定するとパスフレーズの入力だけで接続可能であり、こちらは非常に(cygwinが)便利である。

[PHP] ロリポップ環境下におけるpearの使用

amazon関連のpackageを使いたかったので、借りてるlolipop上でpearを動かすことにする。

まず、go-pearを探す。
http://pear.php.net/manual/ja/installation.getting.php

「ホスティング環境下でのPHP」を参考に、ドキュメントルート下に/pearを作って、そこにgo-pear.phpを設置してアクセス。何をするのかよく分からんし、とりあえずパーミッションは777にしておいた。

実行すると中々立派なGUIが出る。

そのままインストールを続けようとすると、以下のようなエラーが出る。

Fatal error: No PEAR.php in supplied PEAR directory: @pear_dir@ in /home/users/2/lolipop.jp-dp13261450/web/index.php on line 24

ということで、/pearに生成されたindex.phpをいじる。@pear_dir@の部分を/pearまでのパスに書き換える。

パスはユーザ専用ページに書いてあったはず。

ページ下部のQuick install a packageでパッケージ名を入力する。

目当てのServices_Amazonに辿りつくまで、dependencyの関係で2つ3つのパッケージのインストールについて聞かれたけど、無事に導入成功。

Services_Amazonは、インスタンス生成時に以下の情報が必要。

  • AWSのKeyID
  • 同上に付随するSecret key
  • Associate ID

上記のアカウントは、以下のサイトで登録して持ってくる。
http://www.amazon.co.jp/gp/feature.html/?docId=451209
の一番上。

Services_Amazon::ItemSearch(mixed array);で検索を行う事ができる。

required parameterとしては、以下のようなindexを持つ値を連想配列で食わせる必要がある
‘Keywords’,’Title’,’Power’,’BrowseNode’,’Artist’,’Author’,’Actor’,’Director’,’AudienceRating’,’Manufacturer’,’MusicLabel’,’Composer’,’Publisher’,’Brand’,’Conductor’,’Orchestra’,’TextStream’,’Cuisine’,’City’,’Neighborhood’

 

[debian] [linux] smartctlについて

参考になりそうなURLを貼っておく、後でじっくり読む。

一番参考になりそう、日本語。
http://smart.jinaka.com/

大元くさい?
http://smartmontools.sourceforge.net/badblockhowto.html

さて行動一覧
まず対象は /dev/sdc で、ここにはsdc1というpartitionが1つある、多分拡張領域。
何しろ

# sfdisk -l /dev/sdc

Disk /dev/sdc: 0 cylinders, 255 heads, 63 sectors/track
read: 無効な引数です

sfdisk: read error on /dev/sdc - cannot read sector 0
 /dev/sdc: unrecognized partition table type
No partitions found

どうしようもない。

続いてSMARTの簡易テスト?みたいなことをやってみる。

# smartctl -a /dev/sdc -T permissive
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Short INQUIRY response, skip product id
SMART Health Status: OK
Read defect list: asked for grown list but didn't get it

Error Counter logging not supported
Device does not support Self Test logging

どうもdefect listというのを取得できてない様子。

次にsmartdが何を吐き出してるのか見るため、/var/logを眺めてみた。

# tail /var/log/messages
Nov 14 21:33:42 asuki-saba kernel: [139291.099086] program smartctl is using a deprecated SCSI ioctl, please convert it to SG_IO

続いて参考になりそうなURL
http://d.hatena.ne.jp/kinneko/20070530/p10

現在Short Testを行う、バックで動いてるようだが、全然何も出てこないので不安極まる。

# smartctl -t short -d scsi /dev/sdc -T permissive
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Short INQUIRY response, skip product id
Short Background Self Test has begun
Use smartctl -X to abort test

大丈夫なのだろうか・・・。結果を確認したいけど/var/logに出るのこれ?

[debian] [linux] サーバ機のディスクに問題発生か?

ちょっとした事情があってサーバ機の電源を落として、事を済ませた後に再起動。
しかし問題、ディスクが1つ正常にマウントされていないようだ。

原因は分からない、とりあえず再マウントしようと試みる。

#  mount -t ext3 /dev/sdc1 /var/storage3

ファイルシステムの不一致?みたいなエラーが出る。
ニッチもサッチもいかないので、SMARTを試してみようと思った。サーバ機はdebianのlennyだったっけな…。

# aptitude install smartmontools

でsmart絡みのツールが手に入る。
しかし気になったのは、インストール時にsmartdが動いてないようなログが残っている。なんでだろう。

まぁともかく、ちょっと調べてみる。そもそもsmartが機能してるかどうか

root@asuki-saba: /usr/sbin# smartctl --all /dev/sdc -T permissive
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Short INQUIRY response, skip product id
SMART Health Status: OK
Read defect list: asked for grown list but didn't get it

Error Counter logging not supported
Device does not support Self Test logging

smartは普通にいけてる。なんかdefect listというのが出て来てないみたい。

とりあえずよく分からん、何はともあれテストしてみようと思った。

root@asuki-saba:/usr/sbin# smartctl --test=long /dev/sdc -T permissive
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Short INQUIRY response, skip product id
Extended Background Self Test has begun
Use smartctl -X to abort test

ということで今バックグランドでテスト中。

次の課題はdefect listって何だろう、という点。

[PHP] ヒアドキュメントに関して

ヒアドキュメントとは、PHPコード中に多くの行を出力するとき、まとめて出力する機能です。

http://php.net/manual/ja/language.types.string.php

書いてあるんだけど、終了IDの前にtabとか入れたらいけないし、終了タブセミコロンの後ろに空白が入ってもいけない

基本だと思ったけど、NetBeansで見てて初めて知ったので書いておく。

 

sourceforgeの利用を開始してみた

結果を積み上げるということで、sourceforgeを使うことにしてみるんよ。

スキルを上げる目的もあるし、結果を積み上げずに揮発させる人生をこれ以上送らないためにも望ましいことだと思う。

今日はアカウントを作ってPersonal Project機能を使ってみた。

次は実際に活動しようと思う。