※ パクレゼルヴではWeb開発エンジニアを大募集中!詳細はこちら

Archive

Archive for 2008/2

DBさわってみました。  

2008/2/29 金曜日 19:28:57

はじめまして、べきこです。
開発ちーむ唯一の女子です(´ー`)
こちらの会社に来て、初めて開発のお仕事をさせていただいてます。
日々のお仕事の中で覚えたことを勉強メモ程度にこちらに載せていこうと思ってます!

こちらでのお仕事で初めてDBをさわってるのですが、項目やら条件やら増えてくるとなかなか思ったような結果が取得できない・・・
最近は日付が絡んだデータをいじってるのですが、もっと簡単にさくっと集計できないかなぁとか・・・

そんなときにみつけたものが

DATE_FORMAT

MySQLの日付の関数なのですが、形式を指定してあげることでSQL側で日付を整形して出力してくれるのです。
でも単純に出力してあげるだけでなく、これを利用してデータを日付で集計できるみたいです!

DATE_FORMAT(date,'%Y-%m-%d')

こんなかんじで日付を年月日の形にして、まとめて・・・、とやってくと、日ごとの集計ができました!
日付部分を年月のみにすると、月ごとの集計になります。

DATE_FORMAT(date,'%Y-%m')

これなら、こちらでデータを加工しなくてもさくっとみることができるので便利です!

まだまだわからないことだらけなので、もっとこんなやり方がある!とかここ違うよ!とか、どんどんつっこんでいただけるとうれしいです!
とりあえず今日はここまで!

べきこ MySQL, Tips

LinuxやMacでのシリアル接続について  

2008/2/28 木曜日 23:50:40

初めまして、マカーです。
どうぞよろしくお願いいたします。

余談:Macユーザー増えてます

MacBook Airいきなり余談から始まります(笑
先日、Rails勉強会に参加しましたところ、参加者の持参ノートPCの半分以上がMacで、ちょっと感動しました。
しかも発売したばかりのMacBook Airの台数が非常に多かったことに驚きました。

MacはUNIXベースですので、LeopardにはRuby on Railsが標準でインストールされていたり、Web開発者にとっては非常に良い環境だと思います。

Web開発者以外にとってはどうなんでしょう?
そこはコメントを控えるということで(笑

また、うちの社長もMacBook Airにしちゃったようです。

そんな感じで、Macユーザー増えているなぁというのが最近感じるところです。

本題:LinuxやMacでのシリアル接続

さて、本題の方に入りますが、ルータやインテリジェントスイッチ等の機器を設定する場合に、シリアル接続でコンソールを使うことが良くあります。
Windowsの場合、OS付属のハイパーターミナルやTeraTermなどの端末エミュレータを使用します。

MacやLinuxの場合、IP接続の場合はtelnetやsshというコマンドを使用しますが、シリアル接続の場合はどうしたら良いのでしょう?

シリアル接続できる端末エミュレータとしてscreenというプログラムがあります。

使用方法は下記の通りです。

screen デバイス名

デバイス名は、OSによって多少異なります。
Linuxの場合、COM1が/dev/ttyS0というデバイスになりますので、

$ screen /dev/ttyS0

で、COM1に繋がります。

Macの場合、現在の機種は標準ではシリアルポートがありませんので、USBシリアルコンバータを使用することになりますが、デバイス名は使用しているものにより異なります。

例えば、KeyspanのUSA-49Wでポート1の場合、デバイス名が/dev/tty.USA49W1d1P1.1となっています。

デバイス名は /dev/tty. で始まりますので、

$ ls /dev/tty.*

と入力して、どんなデバイスがあるか調べてみると良いでしょう。

通信設定の変更

通信設定を変更したい場合は、sttyコマンドをあわせて使います。

9600ボー、8ビット、パリティなし、ストップビット1であれば

$ stty 9600 cs8 -parenb cstopb
$ screen /dev/tty.USA49W1d1P1.1

で行えます。

終了方法

終了したい場合は、C-a C-\で行えます。

C-aはデフォルトのエスケープキー、C-\で終了です。
エスケープキーのカスタマイズは ~/.screenrc で行えます。

いかがでしたか?
本日はこんなところで。
またお会いしましょう!

マカー Linux, Mac OS X

障害対策とバックアップ  

2008/2/22 金曜日 10:31:33

お初にお目にかかります、姜子牙です。お仕事はインフラ運用が主体です。

周りは開発系の方ばっかりなのでやや内容が異色になりますがご容赦ください。

プログラムは組めますが最近はバッチの作成だったり、Excelのマクロに生かされてたりします。

サーバを運用していると常識的に取得するバックアップですが、実はただ取るだけじゃバックアップとして役割を果たさないことがあります。以下に大きく原因別として二つに分けて書いていきたいと思います。

まず一つ目は物理障害、具体的にはサーバ本体に関わる障害対策です。最近ではRAID1によるミラーリングも普及しているため、HDDの障害の発生頻度は低くなりましたが、サーバ機器そのものが動かなくなることはあるため、その際にはバックアップデータが必要になります。

ここで必要になるのは「サーバの機器の外にデータを持ち出すバックアップをする」になります。DATであったり外付けのディスクであったり、別のサーバにだったりします。

仮に機器が動かなくなったとしても、システムの設定や随時更新されるデータなどを機器の外に持ち出しておくことで、機器からデータが取り出せなくなってもサーバを復旧することができます。

二つ目は論理障害、機器は正常でもデータが壊れてしまう場合です。この場合、時間が経つと壊れたデータをバックアップしていくことになるため、もし1日分しかバックアップデータを持たないとしたら、二日経った時点論理障害をバックアップで復旧することはできなくなります。

ここで必要になるのは「古いバックアップを取っておくこと」になります。単純にデータが壊れる直前のデータまで戻してしまうのです。但し、どこまで古いデータを持っておくかは決めておく必要があります。たくさん持てば持つほどディスク容量を圧迫しますし、少なければ役に立たなくなってしまうかもしれません。この辺りは正解のない問題になります。

そして最後に、どちらの場合においても「バックアップデータからリカバリできること」が重要です。データだけ取り出したけど元に戻せないでは本末転倒です。できることならシステムが運用開始される前にバックアップからリカバリする試験をして、いざという時に手際良く対応できるようにしておくことが大切です。

姜子牙 その他

Let’s GD 其の二  

2008/2/20 水曜日 10:25:36

はい、セリカです。

前回に引き続き、GDのことでもやっていこうと思います。
今回は、巷で一時期流行った?
○○ジェネレータに応用できそうな、文字描画です。

文字を描画するには・・

ImageTTFText(resource image,
			float size,
			float angle,
			int x,
			int y,
			int color,
			string fontfile,
			string text);

を使います。

これ一つで、フォントサイズ、フォント指定、描画位置・・その他諸々設定できます。

引数の説明:

  • resource image・・・リソース
  • float size・・・フォントサイズ
  • float angle・・・描画角度
  • int x, int y・・・描画位置XY
  • int color・・・描画色(ImageColorAllocateで指定したもの)
  • string fontfile・・・TrueTypeフォントへのファイルパス
  • string text・・・描画文字(UTF-8)
$im = imagecreate(100, 100);
$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
ImageTTFText($im, 18, 0, 0, 0, $black, $font, $str);
imagePNG($im, $path);
ImageDestroy($im);

といった感じで、文字の書かれた画像が作成できます。

とりあえず、超手軽に出来てしまうわけなのです。
今回は、この辺で以上です。

下音タヌキ PHP, Tips

PHP標準関数の手っ取り早い調べ方  

2008/2/19 火曜日 19:50:01

開発部、新人のチョコボールです。
少しずつ業務にも慣れてきました。
現在はフレームワークcakePHPを使って、Eコマースの管理画面等の開発を行っています。

かなりの小ネタですが…
『手っ取り早いPHP標準関数の調べ方』を紹介させていただきます。
名前の分かっている関数の詳細についてサクッと調べたい時に有効です。

WEBブラウザのアドレスバーに、直接、下記のように打ち込んでEnterキーを押します。

php.net/mb_convert_kana

これだけで、PHP公式マニュアルの日本語版の解説ページに飛ぶことができます。

サーチエンジンの膨大な検索結果から絞り込むよりも断然早いと思います。

MoriMoriMoriMori PHP