開発

長時間起動のプロセスをkillするスクリプト

例えば30分以上経っても処理が終わらないhttpdプロセスをkillする方法。親プロセスはroot権限でしょうから、grep -v rootで除外しておきます。このシェルスクリプトをrootで定期実行すればok for i in `ps aux | grep httpd | grep -v root | gawk '{print $…

divやspanタグの中の全ての情報を削除する方法

フォーム中にjavascript(prototype.js)で色々と値や項目を動的に追加していった場合、その場で追加した値を消したいときなどに利用するため、動的に追加したものはspan id="hoge0001"のようなユニークなIDを振っておいて、消したくなったら下記のような関…

JavascriptでselectタグのOptionの値と表示名を取得

javascript( prototype.js )でselectタグのvalueはすぐに取得できたんだけど、表示名の方の取得ではまったのでメモvalueの方は var add1_val = $("address1").value; これでOK 表示名の方は、options配列の中に入っているので、その中から選択されているもの…

IEだとJavascriptでselectタグの中身を変更できない

Prototype.js使ってajaxでSelectタグのプルダウン連動をやってたらはまった。 あるSelectボックスの値を変えると、連動して他のSelectボックスの値をAjaxでサーバから取得し、optionタグの内容を全て入れ替えるというもの。例えば、都道府県を変更したら、連…

MySQLのDatetime型で秒を切り捨て

MySQLのDatetime型は年月日と時分秒の情報を持っている。検索の際に日時分までで検索したい場合、SQLの中で秒を切り捨てて、where句で扱うTips(普通にdatetime型でイコールで条件指定すると、秒数まで入ってしまうため) select * from hoge where date_for…

サーバの定期DBフルバックアップ

うちのサーバはPostgresとmysqlが動いていて、それぞれ夜間に定期的にフルバックアップを取ってリモートサーバに転送していて、いざという時はリモートサーバにあるダンプファイルを使ってリストア一発で元に戻せるようにしてます。今回はPostgresとmysqlの…

ECcubeにGMO-PG決済モジュールを組み込んで実行したらMalformed responseというエラーが出た

ECcube2.3.3で、GMO-PG決済モジュールを入れてテストしてみたら、下記のエラーが出た 通信ができませんでした。Malformed response.”これはPHPにOpenSSLが組み込まれてないために起こるエラーのようなので、phpのコンパイル時に--with-opensslをつけてコンパ…

一定期間CPU負荷が高かった場合の、負荷が高いプロセスを記録する

サーバ運用していて、たまにMRTGの結果からCPU負荷が高くなる時間や日があったりします。 最近では、SSHの総当たり辞書攻撃を中国などから受けてて高くなってました。/var/log/secureファイルのサイズが大きくなってて、中を見たらsshの認証が失敗しているロ…

ブラウザベースでP2P

http://blog.katsuma.tv/2008/12/about_rtmfp.html これは熱い!

お手軽に自作アプリ配布できる開発環境Titanium

Titaniumとは、AirとかWidgetアプリのように、Javascriptとかhtmlとかで開発ができて、開発したパッケージはランタイムを含めて配布するので、利用者はAirとかのように実行環境をインストールする必要がない開発環境。Apacheライセンスです。これは凄いぞ…We…

シェルスクリプトとコマンドを駆使してECcubeのサイトを自動構築するまで

別にECcubeに限らないけど、自動であるサイトを構築する際のシェルのTIPs 全体の流れは下記のようになります。OSはLinuxです。ECcube2.1.2を用いて、PostgreSQLをDBにしています。 今回は細切れに説明していきますが、実際は1つのシェルスクリプトで全自動で…

MySQLでテーブル単位のバックアップ、リストア

データバックアップ(テーブル単位) mysqldump -u ユーザ名 DB名 -p --default-character-set=binary --tables テーブル名 > 20080722_HOGE.sql データのリストア(テーブル単位) mysql -u ユーザ名 DB名 -p --default-character-set=binary HOGE.sql

申し込み機能を作る

よくある申し込み、お問い合わせ画面の機能をCakePHPで作ってみる。 申し込み画面→確認画面(バリデーションチェック)→完了画面 という流れ。 DBの作成 moushikomiテーブルを作成 CREATE TABLE `testcake`.`moushikomi` ( `id` INT NOT NULL AUTO_INCREMENT…

簡単な申込アプリでも作るか

昨日はブログ書いたりなんなりで、bakeまでしかできなかった。 bakeで出来たスクリプトを参考によくある申込フォームのアプリを作ってみよう。 PHPカンファレンスの合間にだらだらとやってみることにする。申込画面→確認画面→完了画面(メール送信) が出来…

楽しようと思ったら

やっぱフレームワークを使って楽をしようと思ったら、ある程度の学習コストをかけてそのフレームワークのお作法を学ばないといけないな。今日1日でとりあえずCakePHPの基本的なところは分かったし、便利なところも分かった。 そのお作法で基本的なパターン…

とりあえずデータの入出力をするアプリを作る

Bakeでテーブル単位のCRUD系ファイルを自動生成 とりあえずbakeする bakeスクリプトを使うと、DBに対して一覧表示、新規レコード追加、変更、削除などが出来るMVCファイルを作ってくれる。 bakeスクリプトファイルは /cake/console/cake です。 DBの定義 hog…

cakePHPの路線をあえてはずれる方法を身につけておく

今回は、CakePHP1.2を使います。 cakePHPの路線をあえてはずれる方法を身につけておく cakePHPは高速開発が出来る代わりに、ある程度制約を持たせています。例えばモデルやコントローラ、Viewの名前など。 最大の恩恵を受けるためにはこのような制約に沿った…

cakePHPはじめました

この夏、cakePHPが熱い!と勝手に思い込み、若干乗り遅れ気味なcakePHPの世界へGO! なぜcakePHPか? 別にPerlでも良かったんだけど、どんなレンタルサーバでも(DBが動いていれば)使えるし、ファイルの依存関係で色々なものをインストールするのに悩まされる…

スパム投稿を防止する方法

申し込み画面とか、何かしらのフォーム画面を設置しておくと、そのうちスパム投稿の嵐に見舞われることがある。 例えば、申込画面だと申し込み後に管理者にメール送信なんてことしてると、メールがスパムで埋まる・・・お客さんのサイトでそいうのに見舞われ…

PerlでPDF自動生成

PDFをperlから動的に作成するPDFJというフリーのソフトウェアを触ってみた。 http://hp1.jonex.ne.jp/~nakajima.yasushi/UTF8にも対応しているということで、今回はUTF8で作成。もちろんPerlのソースはUTF8で保存してます。PDFJの良いところは、動的に枠線付…

最近のことをメモ

約10日ぐらいで、仕様書の理解、DB設計、DBデータ用エクセル、独自フレームワークの理解(PHP&smarty)、70画面実装を行ってました。マジしんどかったけど、良い勉強になった。 フレームワークはドキュメントがほぼ無い状況だったので、ソースコードをひたすら…