しすてむ さんぽみち。

適当なしすてむ紹介など。ようはくだらないBlog(´▽`)

postgresqlでUTF-8でDBを作成するときのおまじない。

2012-02-02 19:38:00 | postgres
最近のpostgresだと createdb -E UTF8 だとうまくいかなかったり
したのだかがあって、最近使っているおまじない。

createdb -E UTF8 -T template0 --lc-collate=ja_JP.utf8 --lc-ctype=ja_JP.utf8 DB名


コメント (0) |  トラックバック (0) | 

【PHP】 CSV書き出したけど、エクセルが誤変換してしまうのどうしようかなー?の対策 目から鱗

2011-06-09 17:19:54 | Weblog
PHP以外でもそうなんですけども。


システム組んでいると、エクセル形式でデータ書き出してほしいなんていうことはよくある事かと思います。
でも、たまに変な変換されてしまうとかあんですよね!><

全角数字なのに勝手に半角にしたり。
数字とハイフンつけたら勝手に日にちと間違えられたり。


エクセルまじうぜーーーーーーーーーーーーーーー><


って思うですが、対策方法が目から鱗だった。
てか、CSVのフォーマットの知識があれば、単純なことなんでしょうけど・・・。


とりあえず、書き出す時にダブルコーテーションでくくる。
まぁ、これはよくあることだと思うんですが。
その前に「=」をつけてやればいいらしいです。

例えば

12345678,1234−1

なんてのをそのまま読み込んでほしい場合は


="12345678",="1234−1"\r\n

とやってあげれば、誤変換がされないみたい。
知ってると知らないでだいぶ違うなぁと、本当に目から鱗でした。



コメント (0) |  トラックバック (0) | 

【PHP】ヒアドキュメントの便利な使い方

2010-11-09 14:50:25 | PHP
ヒアドキュメント超便利。大好き!><



大部分をテンプレート化したとしても、ソース内でタグ書きたいとかありますよね。
そんな時にヒアドキュメントが便利です。

echo なんかでやろうとすると


echo "<input type = \"hidden\" name = \"ahoaho\" value =\"".$ahoaho."\" />";


なんてやらないといけないですが、
ヒアドキュメントだったら


echo <<<EOF
<input type = "hidden" name = "ahoaho" value = "{$ahoaho}" />
EOF;


なんてかんじで出来ちゃいます。
まぁ、ダブルコーテーションじゃなくてシングルコーテーションでできるじゃんとか、
変数そのままかいても、表示されるよね?とかあるんですが、
たまーに、そこに問題が出るのでそういうとこで詰まりたくないですよね。
なので、便利なのです!><


ちなみにヒアドキュメントは変数にも格納することができます。


$tmp = <<<EOF
<input type = "hidden" name = "ahoaho" value = "{$ahoaho}" />
EOF;

echo $tmp;




超便利!><





そんなヒアドキュメントさんの新しい使い方を教わった。
ヒアドキュメント内で{}くくりをすることで、それが変数ということを明確にしているわけですが
関数だとこれが適用されません><

しかし!
クラス内のメソッド化することで、これが回避できるらしいのです。やっほーい!


class base{
function aho($baka){
return str_replace("天才","アホ",$baka);
}
}

$CB = new base();
$tmp = <<<EOF
{$CB -> aho("ぼくは天才!><")}
EOF;




こんなことができます。
たとえ悪かったかもしれないですが、関数がそのまま利用できるのって色々メリットあるですよ。
使い道は探してみてくださいー。^^































コメント (0) |  トラックバック (0) | 

かわいいradiko嬢 をデスクトップ上で飼いならしてみる。

2010-04-06 20:22:44 | Weblog
今日は最近話題のradikoをデスクトップ上に常駐しちゃおう計画です。
下の画像のようなかんじ。
ただ、XPより前のOSじゃないとできないかもしれません。
この記事にインスパイアされました。





1.radikoへ行って、聞きたい局の「listen now]をクリック。
表示されたlistenウィンドウのURLコピペ



2.タスクバーの余白部分で右クリックすると画像のようなものが出ます。
画像の流れに沿って、「新規ツールバー」をクリック。



3.画像のようなボックスが出ます。
フォルダのとこにさっきコピーしたURLを貼り付け。



4.タスクバーに何かがでる。



5.引っ張ると何かがでる。
一応これで、シャットダウンしても常駐してくれるはずです。



6.ハジにもってくとくっつきます。



適当ですいません><



コメント (0) |  トラックバック (0) | 

3分でできる twitterAPIの使い方

2010-03-18 14:22:50 | Weblog
今回はさくっと適当に。
php使ってさくっとtwitterアプリ作りたいなぁという人向け。
今後はOAuth利用が義務付けられると思うので、期間限定ですけどね。

1.pearのservices_twitterをインストール
http://labs.transrain.net/products/services_twitter/
もしくは、tarファイルなどをDLしてservices_twitterを動作するphpファイルと同階層に設置

2.
投稿用のphpファイルを作成する。↓中身

require_once("Services/Twitter.php");
$st =& new Services_Twitter(ユーザ名, パスワード);
$st->setUpdate("書きたい事");


最低限これで、できます。(たぶん
後はcron回すなりなんなりすれば、投稿されます。保存はUTF-8で。
以上です。(キリッ
コメント (0) |  トラックバック (0) | 

Twitterの書き込みに緯度、経度情報の埋め込み

2010-02-19 16:08:00 | PHP
タイトルの件を、このまえ必死に漁って処理してみたので一応ポストしておこー!
調べ方が悪かったのかもしれないけどね・・。

Twitter自体は、緯度、経度情報を含むデータがあった場合に特に表示しないのだけど、RSSには書き込まれています。

↓こんなかんじ
<georss:point>35.6288224 139.6846339</georss:point>

この情報は、確認した限りだとiphoneアプリのエコーフォンや、twitterクライアントのtwitdocなどでは参照していて、地図を表示してくれます。


ただ、twitterのつぶやき投稿からはこの位置情報は入れられないようで、APIを通すことで行えるようです。
普通のつぶやきで、地図表示を対応したい場合は「L:東京都渋谷区」のようなフォーマットがあるようです。
こちらは、緯度、経度に対応してるって情報も見たのですが対応していないようでした。
(そんな仕様に対応しているクライアントがなかった


というわけで、APIにて緯度、経度情報を挿入する方法について
twitterのAPIは、非常にシンプルですが細分化されているので、
公式の仕様書を参照するのが一番てっとりばやいかと思います。

http://usy.jp/twitter/index.php?Twitter%20API#y369b038
僕は英語が読んでると混乱してくるので、日本語訳見てます。(翻訳感謝><

つぶやきを行う部分は、「ステータス関連のAPI」のupdateが該当するようです。
渡し先はPOST(必須)で下記URLへ
http://api.twitter.com/1/statuses/update.format
(format は xml, json のうちのいずれかを指定)

この項の引数を見ていただければ、一目瞭然なのですが
・lat=緯度 (オプション) [将来、指定可能になる予定]
・long=経度 (オプション) [将来、指定可能になる予定]
の項目があります。
予定と書いてありますが、利用できました。


1つ失敗したのが、緯度がlatなので経度はlonだろうと思い込みして無駄に時間を過ごしました。
APIの利用の方法はいろいろあるかと思いますが、上記を指定することで、緯度経度の情報を引き渡すことができます。

今回、試したのは、PHPのpearにあるtwitterクラスです。
http://pear.php.net/package/Services_Twitter

このクラスの中で実際に、Twitterに対してつぶやき投稿のための通信を行う部分は、Twitter.php の setUpdateメソッドのようでした。

また、同メソッドの中で、投稿用のデータのパラメータの設定をしているのが
Twitter.php の _setDataメソッドのようでした。

このメソッドの第二パラメータに配列で、API仕様書にある引数を設定すると、その値が引き渡されるようです。
デフォルトだと"status"や"in_reply_to_status_id"の設定ができるのですが、それ以外は設定できなさそうでしたので、
この配列の中に"lat","long"を追加することでうまくいきました。

違うところで設定できるのかも?と思いましたが、そのあたりはおいおい調べていけたらなぁと思っています。
















コメント (0) |  トラックバック (0) | 

ウィルスバスターをインストールすると青い画面になる

2009-12-13 19:12:13 | Weblog
windows7のマシンを最近購入したので、いろいろインストールしたりしているのですが、何かのタイミングでブルー画面が出てどうしようもなくなってしまう

前回えらい大変だったので、インストールの類はできるだけ控えようと思っていたのですが、必要なのでまたガシガシインストールしはじめたらブルー画面。
こっちがブルーですよ!><(心情的な意味で

どうもウィルスバスターがあやしい。と、ウィルスバスターインストール前で復旧させたらとりあえず正常起動しました。

ちゃんと64bit版をインストールしているんだけどなぁ・・・。
怖くてインストールできない・・・

使っているマシンは Acer Aspire R3610 です。
相性がわるいのかなぁ・・・



コメント (0) |  トラックバック (0) | 

postgres timestampをunixtimeへ変換

2009-11-13 14:52:28 | postgres
全部SQLで済んでしまえば問題ないのですが、
DBの負荷を除くためにソートをプログラム側で処理したいとか
ないですか?

まぁ、僕はよくそういう風に思ったりしていたので
何度かやっているのですが、いつも忘れてしまうのでメモ

■SQL例
select extract(epoch from timestamp '2009-11-13 15:00:00');

1221631200

参考URL
http://u2k772.blog95.fc2.com/blog-entry-13.html

上記はtimestampでキャストした「2009-11-13 15:00:00」のデータを返しています。
実際に利用される場合は

select extract(epoch from '変換したいtimesatamp型のカラム名') from 'テーブル名';
となります。


-----
extract関数について少し書いてみます。

extract 関数は日付/時刻の値から年とか時刻などの部分フィールドを抽出します。


先のtimestamp以外にも下記のような例もイケるようです。

・曜日を取得してみる。
何曜日だっけ?というのが取得できます。カレンダーとか作るのに役立つかも。

select extract(dow from timestamp '2001-02-16 20:38:40');
Result: 5
曜日(0〜6、日曜日が 0、timestamp の値のみで使用可)

■年間日数を取得してみる。
365日の何日目だっけ?というのが取得できます。

select extract(doy from timestamp '2001-02-16 20:38:40');
Result: 47

他にもいろいろあるので、参考サイトのURLをみてみてください。

参考URL
http://www.postgresql.jp/document/pg721doc/user/functions-datetime.html


コメント (0) |  トラックバック (0) | 

XPのOSがついてないパソコンの修復とか

2009-07-07 16:31:32 | Windows
今回は特にシステムでもなんでもないんですが、
OSがついてこないパソコン なんていうんですか OEM? みたいなかんじのパソコンがうんともすんとも言わなくなった。


まったくいっていないかというと違くてこんなことをほざいておりまする。


「オリジナルセットアップCD-ROMからWindowsセットアップを起動して、 このファイルを修復できます。 」


だから、そのCD-ROMがないんだYO!HO!


というわけで、リカバリディスクはあるんですが 他のHDDにリカバリしようとしてあえなく失敗ばかりだったので、そのオリジナルセットアップCD−ROMなるものをなんとかしてやろうじゃないの?アハン? 的な作業がはじまりました。


上記のメッセージでぐぐると やっぱり同じようなことで困っている人はいっぱいいるようです。教えてgoo!やら システム系の掲示板やら ほんとにいっぱい。
とりあえず最初にわかったことは オリジナルセットアップCD-ROMとやらは XPのOSだということ。家やら身内やらがもってるOSもってくればもしかしたらそれでもいけちゃうのかもしれない。


まぁ、とにかく今それないし。
どーするの?と探していたらナイスな人がいるんですね。
懇切丁寧に解説してくださってる方がおりました。

↓懇切丁寧な解説をしてくださってるサイトはこちら
CDブートの回復コンソールディスクを作る


ここでポコポコ書くよりはよっぽど丁寧なので、まずはこちらを参照してCDから起動できるとこまでいってみてください。
ちょろっとさわりだけ書くと、Microsoftが一応起動ディスクはこれでできちゃうんだぜ!って書いてるんですけど、なぜかいまだにフロッピー。つうか、フロッピードライブないんですが?的なわけです。
そこで、CD-ROMにて起動する方法を上述のサイトさんは説明してくれています。Microsoftが最初っからそうしてくれればいいのに! と思うのですが、何か問題とかがあるのかなー・・・。


まぁ、とりあえずCD作成手順を参考に作成開始。
XP Professional のSPなし でやったところ、起動がなんか途中で止まって FDDをA:\にいれちゃってよ!パパン! みたいな英語メッセージが出てきてしまいました。
これは、なにかやっぱり失敗したんだろうなぁ・・・。と落胆しましたが、もういっかいチャレンジ。

今度は、SP1用でやってみたところ成功!うほ!ktkr!!
で、またサイトに書いてある通りに コマンド入力が打てるとこまでたどりつけた。
正直、アレこの後どうするの?と 思ったわけですが、ここはいさぎよく 「先生!ありがとうございました!」と言っておきましょう。助かりました。


まぁ、とりあえずアレだよね?チェックディスクじゃないの?ということで、CHKDSKと打ってみるものの

「そいつの仲間のAUTOCHK.exeとやらのありかはどこにあるのかな?あはん?」

みたいな英語のメッセージ。これは Windowsからの挑戦状なんだろうか。つーか、しらねーよwwww
で、またぐぐって 新しい先生を発見。

↓第二の先生のサイトはこちら
XP復活の儀式ナムナム

こちらの先生も同様のことで苦労していらっしゃる。
LINUXから起動だのちょろちょろやっている部分ははしょって最後の部分。


autochk.exeは、c:\windows\system32\autochk.exeである。


これや!XPの挑戦状の回答これや!かあちゃん僕やったよ!!
とりあえず変なテンションになりつつ、無事チェックディスクが起動できました。
とりあえず、こんなかんじです。



僕「CHKDSK /R」バシンッ
XP「autochk.exeとやらはどこにあるのかな?」
僕「c:\windows\system32\」です
XP「チッ しょうがない、チェックしてあげる!><」



で、まだチェック中wwwwww
問題解決するかはわからないけど、とりあえずまとめメモでした。


コメント (0) |  トラックバック (0) | 

to_char で 月 日 の0を取り除く方法

2009-07-03 17:26:43 | postgres
timestamp型のデータとかを to_charでフォーマットかけるとかは よくやりますよね。

例えばこんなかんじ

select to_char(now(),'YYYY/mm/dd');


こういうのね
これの結果ってこうなる


to_char
------------
2009/07/03


月と日の前に0がいるんですよ 0。こいつ邪魔臭くないですか?
と今更気づいたんですが、postgresのto_charのフォーマット表をみてみると・・・


MM 月の数 (01-12)
DD 月の日にち (01-31)


しかなくて、なんだこいつ不便だな!とか思っちゃうわけです。
しかし、ページを読み進めるとこんなのがあった。


FM 接頭辞 字詰めモード (スペース/ゼロを挿入するのを無効にする)


これや!キタ━━━━(゚∀゚)━━━━!!


select to_char(now(),'YYYY/FMmm/FMdd');
to_char
----------
2009/7/3


はい、うまくいきました。
お勉強になりました。



参考URL:http://www.sraoss.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/functions-formatting.html






コメント (0) |  トラックバック (0) |