page_adsence

2012年3月22日木曜日

word-breakに関して

普通、半角英数字に関してはブラウザで折り返ししてくれないのですが、
それを折り返すために以下のように書いたりするのですが、
IE独自の仕様のためFirefox等のブラウザでは別途対応が迫られてしまいます。

.word_break {
    word-break: break-all
}

で、折り返しをするためにJavascriptを使うのが定石だと思っていたのですが、
CSSの記述だけでいけるってのを教えてもらって、それを何度か使っていたくせに
毎回書き方を聞かれて忘れているのでメモしておく。

.word_wrap {
    word-wrap: break-word;
}

若干情報が古いですが、よくまとまっているので参考。
http://blog.sakurachiro.com/2010/06/control-break/

2012年3月16日金曜日

mkdirは実は再帰的にディレクトリを作ることができたらしい

今まで知らなかったけど、実はmkdirはphp5から再帰的にディレクトリを作ることができるみたい。

なので早速やってみた。

使い方は以下の通り。
mkdir(ディレクトリのパス, パーミッション, 再帰処理フラグ);

mkdir('/path/to/dir', 0775, true);

こうすると「/path/to/dir」へのディレクトリが一気に作成される。
ちなみに、「/path/to」までのディレクトリが存在していても、エラーになるわけではないみたいです。

もうphp4で開発する機会も大分減ってきたし、がんがん使っていこうと思います。

2012年3月15日木曜日

Firefox11のページインスペクタが3Dで見ると面白い

先日、帰り際にFirefox11がリリースされているってのに気づいたので、早速アップデートしてみた。
とりあえず必須アドオンだけ動くのを確認してアップデート。

で、リリースノートを見てみたらすごいよくわからない機能があった。

「Google Chrome から、ブックマーク、履歴、Cookie を
インポートできるようになりました。」

ふむ、まぁ便利だね。

「Firefox Sync でアドオンを同期できるようになりました。」

これも会社と自宅のアドオン同期できるようになるので、まぁ便利だ。

「ページインスペクタの 3D ビュー を使って、
Web ページの構造を立体的に視覚化できるようになりました。」

ん??

3D??

3Dにする必要あるのか?と思いながらも、早速使ってみました。
使ってみた感想としては・・・。

すごいっ!!

Webページ構造を立体的に見るとこういう風に見えるのかと。
なんかpositionとかマイナスにして画面外に吹っ飛ばしている要素まで、
ぐるぐる回していると見つかってしまいます。
試しにYAHOOとかGmailのページにアクセスして使ってみたのですが、面白いです。
非常に。
これから無駄に使っていこうと思います。

ちなみに使い方は以下の通り。

1.ブラウザ上で右クリックしてコンテキストメニューを表示させる
2.要素を調査
3.すると画面右下に3D、HTML、スタイルと3つのボタンが並んで出てくるので、3Dをクリック。

そうするとこうなります。


以上。
簡単ですね。

2012年3月14日水曜日

JsonpでAjax通信時にネットワーク系のエラーが発生した際のエラーハンドリング

Twitterからタイムラインを取得してきて、表示するという単純な処理を書いていたのですが、
IP別に1時間のリクエスト数が150を超えると400 Bad Requestとなってしまうため、
callback関数が呼ばれずに処理が途中で終了してしまうという現象に遭遇した。

てっきりJSONPの場合もerrorとかの関数も呼ばれていると思っていたのですが、そうではない様子。
試しにerrorとか書いてみても全く反応なし・・・。

調べてみたらどうやらJSONPの場合はsuccessとcomplete以外はコールされないらしい。
とりあえずググってみたら、案の定出てきました。

「jquery.jsonp.js」

これを使えば普通にエラーハンドリングができそうです。

$.jsonp({
    url: "http://hoge.jp/",
    callback: "callback_function_name",
    success: function(json) {
       // This will be called in case of success no matter the callback name
    },
    error: function() {
       // This will be called in case of error no matter the callback name
    }
});

jqueryを使って配列をPOST

一番簡単な方法は対象のフォームを要素をセレクタで選択してシリアライズしてPOST。
あとはサーバサイドでよしなにすればOK。

Jquery
var postData = $('form').serializeArray();

$.post(
    'index.php',
    postData,
    function(data){
        console.log(data);
    }
);

php
var_dump($_POST);

但し、通常のフォームでPOSTされてきたように送りたい場合はJS側で色々と手を入れないといけない。
ソースに関してはその部分が出来次第公開予定。

2012年3月13日火曜日

mysqlに接続できない

会社で用意してもらったテスト用のサーバでローカル上のmysqlを使おうと思ったら
以下のようなエラーで出て接続ができなかった。

$ mysql -uroot
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

とりあえずググってみたら、mysqldが起動してない可能性があると。
で、psコマンドで調べてみた。

$ ps aux | grep mysqld

いない・・・。

じゃあmysqlを起動させようと思って、
$ /etc/init.d/mysqld start

へ移動しようと思ったらmysqldが存在してない!

mysqlコマンド自体は使えるから、インストールとかに失敗してるのかと思って、
何度かアンインストールしてから、再インストールしてみたりとかしたのですが、状況は変わらず・・・。

なぜかわからず、ググり続けてみたらありました。
mysql-serverがインストールされていないんじゃないかという・・・。

というか、よくよく見てみたら結構色々とインストールされていなかった・・・。
mysql-serverだけでなく、php-mysqlとかも入ってなかった。
勝手に使える状態だと思っていたのですが、確認は大事ですね。