ダメプログラマの技術メモ

プログラミングの技術メモや駄文など

Ginqでカッコ良く配列を操作する

出向先にいる優秀なフリーランスのプログラマに教えてもらったGinqという面白いライブラリのご紹介です。GinqはLINQにインスパイアされたPHPのライブラリです。LINQを知らないという人は次をどうぞ。統合言語クエリ - Wikipedia Ginqのインストール GitHubか…

Sass/CompassをEclipseから利用する

外部ツールなど使わずに普段利用しているEclipse上でSass/Compassの作業を完結させたかったので、導入からEclipseでCompassのコンパイルを行うまでの手順をメモしました。 Rubyのダウンロード SassもCompassもRubyで書かれているためRubyのインストールが必…

高負荷時に「java.net.NoRouteToHostException: 要求アドレスに割り当てられません」が発生した場合の対応方法

Javaで作成したWebAPIの負荷試験を行っている最中に次のようなExceptionが発生しました。 The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.GeneratedCo…

Skype7.3の広告領域を削除する方法など

新しいスカイプのUIが馴染めない(´;ω;`)ので広告領域の削除を含めて 個人的に使いやすくなるような設定をまとめてみました。 フォント変更する(チャット部分) フォントの設定画面を開いて編集します。 「ツール」メニュー → 設定 → チャット&SMS → チ…

phpredisを使用してランキング集計を行う

Redisでリアルタイムランキング集計するっていうのが周りで流行っているので自分なりにまとめてみました。phpredisを使用して自分の前後のランキングと同率順位のランキングを集計してみます。 とりあえずphpredisのクラス・メソッドを使用してみる Redisの…

CentOS6.5にphpRedisAdminをインストール

開発中などに手軽にRedisに保存した値を確認できる便利な管理ツールをご紹介します。その名もphpRedisAdmin!!画面は2ペインのシンプルな構成でkey-valueの検索、追加、編集、削除が可能です。 管理画面 topページ key-valueページ phpRedisAdminのインスト…

CentOS6.5にApache2.2+PHP5.4+Redis2.4をインストール

VirtualBoxにCentOS6.5をインストール ~ 初期設定 CentOS6.5にMySQL5.5をインストール の続きです。 Apache2.2のインストール # yum install httpd インストール内容の確認 # yum list installed | grep httpd httpd.x86_64 2.2.15-31.el6.centos httpd-too…

CentOS6.5にMySQL5.5をインストール

VirtualBoxにCentOS6.5をインストール ~ 初期設定 の続きです。 MySQL5.5のインストール remiリポジトリからMySQL5.5のインストール # yum --enablerepo=remi install mysql mysql-server mysql-devel インストールの確認 # yum list installed | grep mysq…

VirtualBoxにCentOS6.5をインストール ~ 初期設定

やりたいこと CentOS6.5を最小構成でVirtualBoxにインストールする。 ターミナルソフトでsshログインできるようにする。 CentOS6.5のダウンロード 次のダウンロードサイトにアクセスする。 http://archive.kernel.org/centos-vault/6.5/isos/x86_64/ 「CentO…

CakePHP2.x系で多次元(三次元)配列をソートする

array_multisort関数を使用した二次元配列のソートはネット上によくあるのですが、三次元配列のソートに言及しているところはほとんどなかったので自作してみました。CakePHPはモデルメソッドの戻り値が[インデックス][モデル名][フィールド名]のような三次…

CakePHP2.x系でRESTful API(JSON)のSQLデバッグを簡単に行う方法

この記事で行うことは、http://127.0.0.1/cakephp/Test/indexのようにアクセスすればjsonのレスポンスが返り、http://127.0.0.1/cakephp/Test/index?debugのようにアクセスすれば通常のweb画面が表示される(SQLログの確認ができる)方法の解説です。 ソース…

EC-CUBEのデータ(MySQL)の自動バックアップとリストアの方法

2013/08/28頃からロリポップでWordPressサイトの改ざん被害が多数報告されるようになりました。 当社サービス「ロリポップ!レンタルサーバー」ユーザーサイトへの第三者による大規模攻撃について 設定ファイルの情報が抜き出されて、データベースの内容が書…

MySQLクライアントソフト「HeidiSQL」が軽快・多機能で便利すぎる

MySQLのクライアントソフトといえばCSE、黒猫 SQL Studio、MySQL Workbench、phpMyAdminなど数多くありますが、今回はその中でも私がイチオシのHeidiSQLをご紹介します。 HeidiSQLとは WindowsネイティブのMySQLクライアントソフト ODBCドライバが不要 動作…

HotmailにEC-CUBEの注文完了メールを送ることができない

久しぶりに更新です。先月(2013/07/28)のことなのですが、突然Hotmail宛にEC-CUBEの注文完了メールを送ることができないという現象が発生しました。不思議なことにGmail・Yahoo!メールなどのWebメールは問題ありません。Hotmailだけメールを送ることができず…

CakePHP2.x系でバルクインサートを使用して高速なインサート処理を実現する

CakePHPで複数のレコードをDBに投入する時に、forループでsaveメソッドを何度も呼び出していませんか?今のプロジェクトでもそういったソースをよく見かけるのですが、とてつもなく遅い(;´Д`)ということで、今回はCakePHPでバルクインサートを使用してイン…

CakePHP 2.x系のbindModel+recursive=2はちょっとヤバイ?

CakePHPで3テーブル以上をbindModelで結合することってよくありますよね?しかも、その後に、findメソッドにrecursive=2を指定することってよくありますよね?(汗実はbindModelとrecursive>=2の組み合わせはSQLの発行回数が爆発的に増えてしまうことがある…

CakePHP 2.x系の更新時のSQL発行回数を減らしたい

今年7月に入ってから業務でCakePHPを使用しており、外国人プログラマ達によって書かれたソースの改修とパフォーマンス・チューニングを行っています。 その際、DB更新処理でSQLの発行回数を減らす必要が生じたので、その対応方法を述べたいと思います(需要…

突然、ロリポップ!で動かしているEC-CUBEのメールが送信できなくなった

私は以前、本業とは別に知人に依頼を受けてEC-CUBEでサイト構築をしたことがあります。 (詳しくは、EC-CUBEのカート機能を既存のHTMLに組み込む(その1)にあります。) 2012年4月から運用を開始して、今まで大きな問題がなかったのですが、2012年8月下旬の…