ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    Fatal error: Allowed memory size of 16777216 bytes exhausted

    このエントリーを含むはてなブックマーク はてなブックマーク - Fatal error: Allowed memory size of 16777216 bytes exhausted あとで読む
    PHPのWebアプリでエラーメッセージが出た。

    Fatal error: Allowed memory size of 16777216 bytes exhausted



    解決方法を調べた。
    PHP Fatal error: Allowed memory size exhausted の対処 | 植物の成長の記録

    PHP Fatal error: Allowed memory size of 16777216 bytes exhausted
    というエラーが出たときの超その場しのぎの対処法。

    PHPソースコードの先頭に以下を記述。
    ini_set("memory_limit","256M");

    または、.htaccessに以下を記述。
    php_value memory_limit 256M



    上記の方法を試してみたら、とりあえずエラーは解決した。
    =PHPのプログラムに割り当てるメモリーの容量をアップすれば解決すると。

    どうしてメモリーが足りないのか原因を調べたら、データベースから取得するデータ数が多すぎる処理をやっていたことが分かった。
    これは、データベースの設計がまずかった。

    一時的には、メモリーの割り当て量を増やすことで対処できたが、根本的には、トランザクションデータの取り扱い方法を変更しなければならない。

    スタイリッシュなハゲ

    このエントリーを含むはてなブックマーク はてなブックマーク - スタイリッシュなハゲ あとで読む
    髪型としてのハゲは、アクセントに欠け、単調なスタイルになりがちだろうか?
    スタイリッシュなハゲ(坊主頭)がいた。
    EXILEのボーカル、アツシだ。
    【“スタイリッシュなハゲ”の続きを読む】

    Webラーニングプラザ - 技術者のための無料ネット講座

    このエントリーを含むはてなブックマーク はてなブックマーク - Webラーニングプラザ - 技術者のための無料ネット講座 あとで読む
    インターネットで、無料の学習講座があった。

    Webラーニングプラザ

    http://weblearningplaza.jst.go.jp/

    Webラーニングプラザとは?
    技術者の継続的能力開発や再教育の支援を目的とし、科学技術振興機構が無料にて提供する、技術者向けeラーニングサービスです。
    ライフサイエンス、情報通信、環境、ナノテクノロジー・材料、電気電子、機械、化学、社会基盤、安全、科学技術史、総合技術監理、技術者倫理、知財に関する教材を学習できます。



    Flashを使ったコンテンツが用意されていて、視覚的に理解できる。

    これは便利だ!
    後で使ってみよう。

    科学・技術の二〇〇年をたどりなおす (やりなおしサイエンス講座)科学・技術の二〇〇年をたどりなおす (やりなおしサイエンス講座)
    (2008/02)
    村上 陽一郎

    商品詳細を見る

    MySQL+Sennaで全文検索

    このエントリーを含むはてなブックマーク はてなブックマーク - MySQL+Sennaで全文検索 あとで読む
    MySQLにSenna(セナ)を追加して、全文検索をやってみる。
    Sennaのインストール方法が紹介されていた。

    wadsのblog - Ubuntu+Senna+MySQLで全文検索エンジンの設定
    Ngramしか使う予定ないけど、一応MeCabも入れておくか。

    Sennaを入れた後は、MySQLと同じように使えばOKとのこと。
    Senna PHP MySQL - 人力検索はてな

    組み込み済み MySQL が導入できれば PHP の側で得にすることはありません。
    標準の Full Text Search と同じ構文で SQL を発行するだけです。


    PAC (Presentation Abstract Controller)

    このエントリーを含むはてなブックマーク はてなブックマーク - PAC (Presentation Abstract Controller) あとで読む
    ブログを読んでいたら、アーキテクチャーパターンとして「MVC」よりも「PAC」が良いという話があった。
    PACとは、Presentation Abstract Controllerの略で、「MVCの階層的アーキテクチャー」とみなせるものだという。
    PACなんて知らんかったのでちょっと調べてみた。

    ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系
    (2000/12)
    F. ブッシュマンH. ローネルト

    商品詳細を見る

    【“PAC (Presentation Abstract Controller)”の続きを読む】

    UbuntuでMySQLのバックアップ

    このエントリーを含むはてなブックマーク はてなブックマーク - UbuntuでMySQLのバックアップ あとで読む
    UbuntuサーバにあるMySQLのデータをバックアップしたい。
    一番簡単な方法は、MySQLのデータファイルをコピーして別の場所に置くこと。
    データのコピー作業は、Linuxの基本操作でOK。

    Linuxスーパーユーザハンドブック Technical Handbook (Technical Handbook Series)Linuxスーパーユーザハンドブック Technical Handbook (Technical Handbook Series)
    (2005/05/25)
    吉田 智彦関根 達夫

    商品詳細を見る

    【“UbuntuでMySQLのバックアップ”の続きを読む】

    Amazon.co.jpを使った情報操作

    このエントリーを含むはてなブックマーク はてなブックマーク - Amazon.co.jpを使った情報操作 あとで読む
    通販サイト「Amazon.co.jp」では、ユーザーが商品のレビューを投稿できる。
    そして、このレビューをAmazon以外の第三者が削除できる仕組みが用意されているらしい。
    つまり、商品を批判する意見があっても、商品の販売メーカーが削除できるということになる。

    アマゾン・ドット・コムの光と影アマゾン・ドット・コムの光と影
    (2005/04/19)
    横田増生

    商品詳細を見る


    【“Amazon.co.jpを使った情報操作”の続きを読む】

    P2PはGoogleを超える

    このエントリーを含むはてなブックマーク はてなブックマーク - P2PはGoogleを超える あとで読む
    Winny(ウィニー)というファイル交換ソフトを作った人が、著作権法違反幇助の罪に問われて裁判になっていたが、二審で無罪の判決が出た。
    「P2P(Peer to Peer)」という個人間のデータ通信を実現するネットワーク技術は、人類を支配するために利用される技術 これから大きく発展する技術になる、と予想している。
    日本がP2Pの分野で先行者利益を享受し、巨大な国益を得るためには、この無罪判決は当然であると言わざるを得ない。

    Winnyの技術Winnyの技術
    (2005/10)
    金子 勇

    商品詳細を見る

    【“P2PはGoogleを超える”の続きを読む】

    Seleniumでブラウザを自動的に操作する方法

    このエントリーを含むはてなブックマーク はてなブックマーク - Seleniumでブラウザを自動的に操作する方法 あとで読む
    ブラウザを自動的に操作して、Webサービスの利用をコンピューターにやらせたい。
    Selenium(セレニウム)というテストツールを利用すれば、ブラウザの操作を自動化できる。
    試しにSeleniumを使ってみたら、とても便利なツールだった。

    Selenium公式サイト
    http://seleniumhq.org/

    継続的インテグレーション入門 開発プロセスを自動化する47の作法継続的インテグレーション入門 開発プロセスを自動化する47の作法
    (2009/08/06)
    ポール・M・デュバルスティーブ・M・マティアス

    商品詳細を見る

    【“Seleniumでブラウザを自動的に操作する方法”の続きを読む】

    MySQLのUPDATEでサブクエリを使う方法

    このエントリーを含むはてなブックマーク はてなブックマーク - MySQLのUPDATEでサブクエリを使う方法 あとで読む
    データベースで、データを一括コピーしたい。
    =MySQLのテーブルAにあるデータを、別のテーブルBにコピーする。

    (1) テーブルAとテーブルBを結合する。
    (2) コピーする条件(商品番号が同じ商品同士の場合)を指定する。
    (3) UPDATE句で、テーブルA側にあるデータをテーブルB側のカラムに書き込む。

    この(1)から(3)までの処理を1回のSQLで実行しようと思って、(1)と(2)をまとめたサブクエリを書こうと思った。
    なんかうまく動かないので調べてみたら、MySQLのサブクエリは、テーブルの扱いに制約があることが分かった。

    Google - MySQL update サブクエリ の検索結果 約 16,200 件

    ●MySQLのサブクエリの制約
    MySQLはUpdate, Deleteで自己相関サブクエリが使えない

    演習問題で自己結合してUPDATEする問題があるんですが、これMySQLだと動きません。
    公式マニュアルにも自己相関サブクエリ使えないと書いてありました。



    MySQLのサブクエリでは、テーブルの更新と参照を同時に行うことができない。

    逆に言えば、テーブルを参照するだけで更新しないサブクエリならちゃんと動くはず。

    MySQL 5.1 リファレンスマニュアル :: 12.2.10 UPDATE 構文

    複合テーブルをカバーする UPDATE 演算を行う事もできます。
    UPDATE items,month SET items.price=month.price
    WHERE items.id=month.id;

    前出の例はカンマ演算子を利用する内部接合を表しますが、複合テーブルの UPDATE ステートメントは、LEFT JOIN のような、SELECT ステートメント内で許容される接合タイプを利用する事ができます。



    この方法でシンプルに書いたらうまくいった。
    =サブクエリの中をゴチャゴチャ書いて、テーブルの結合方法を間違えていただけだった。

    達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)
    (2008/02/07)
    ミック

    商品詳細を見る


    【“MySQLのUPDATEでサブクエリを使う方法”の続きを読む】

    FC2Ad