サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大阪万博
d.hatena.ne.jp/k_yamamot
OpenPNE, サーバーさくらのVPSにOpenPNE3.8をインストールしてみたのでメモ。ちなみにOpenPNE3系はフレームワークにsymphonyを使っていますが、私自身はsymphonyがあまり好きになれないので使ったことがありません。また、実際には最初にiptablesやSSH鍵認証の設定などを行っていますが、それはOpenPNEの設定とは関係ないのではしょります。(ただ、さくらVPSを借りた直後はファイアウォール未設定/rootログインし放題なので、注意してください。このへんを見て適当に設定していただければ)とりあえずドメインはexample.jp、OpenPNE用のLinuxユーザー/MySQLユーザーを共にsnsとしますが、この辺は適宜変更してください。とりあえずOpenPNE用のユーザーを作成 # useradd "sns" # passwd "sns" 必要なアプリケ
携帯サイトだいぶ前から騒がれている問題なので、知っている人も多いと思いますが、DNSリバインディングを利用した携帯の簡単ログインの脆弱性問題について。詳細は下記のリンク先にて、HASHコンサルティング株式会社の徳丸氏という方が非常に詳細な情報を公開しているので、細かい点はそちらを見てもらうとして(笑)いろいろ調べたので、要点だけまとめておこうと思います。http://www.hash-c.co.jp/info/2010052401.htmlhttp://www.slideshare.net/ockeghem/was-forum-2010さて、このDNSリバインディングについて、以前からHTTP_HOSTを照合するくらいの対策はしていたのですが、2011年2月から実施されるSoftbankのSSL周りの仕様変更について、携帯のSSL周りのことについていろいろ調べていたのですが、いろいろと危な
cakePHP最近、PHPのフレームワークとしてcakePHPを使うようになった。実は、今までPHPでの開発は自分で開発したものに関しては、ずっとフレームワークとも呼べないような超簡単なフレームワークを自前で作成してつかっていたのだが、やはりみんなで開発するときにそれはあんまりよくないんじゃないかという社内の方針により、そうなった。取りあえずはcakePHPを落としてきて、svnへ。ついでに一応、trunk,branches,tagsと分けてみた。 % cd /home/hoge/work.YYYYMMDD % mkdir trunk % mkdir branches % mkdir tags % cd trunk % wget http://cakeforge.org/frs/download.php/734/cake_1.2.5.tar.gz/donation=complete % t
PHP, 携帯サイトAUの絵文字を含むShift_JIS文字列を、メール送信のためにJISコードに変換する関数を書いてみた。通常の文字変換はPHPのmb_convert_encoding関数を使っているが、AUの絵文字についてはそれでは変換できない上、メール送出用の絵文字は特殊な計算が必要なので、自前で変換する。 function encode_e($str) { $buf = ""; $dst = ""; $src = unpack("C*",$str); $len = strlen($str); for ($i=1;$ilen;$i++) { $c1 = $c2 = 0; // SJIS の場合 // 0x00 - 0x7F ascii // 0xA1 - 0xDF 1byte(半角カナ) // それ以外 2byte $c1 = $src[$i]; if ($c1 >= 0x80 &&
お勉強そういえば、去年の十月に簿記二級を取得した。きっかけといえば、仕事中にたまたま簿記2,3級を独学で同時に3週間で受かる方法とか独学で効率よく簿記三&二級に合格するための僕の方法 - ミームの死骸を待ちながらというページを発見し、仕訳のしの字もわからない、会計処理なんてまったくわかっていない僕でもなんとなく受かりそうな気がしたからだ。結果から言うと、ちょっと期間に余裕がある状態ではあったのだが、結果としては、1ヶ月の勉強で受かった。というか、僕がその時受けた試験はものすごく簡単な印象を受けたのだが、仮に難しい問題であったとしても、やることをきちんとやっておけば、上記のように完全に独学でも3週間〜1ヶ月で実際に受かると思う。エンジニアがわざわざ簿記二級を取る意味実際に、簿記二級は単なる帳簿作業に過ぎないので、財務諸表を見て、それぞれの数字が何を意味しているのか最低限はわかるようになったが
MySQL最近、さくらのレンタルサーバーでMySQLの全文検索システムを作ってみた。しかもスタンダートプランで(^^;WEBプログラムを作っていると、たいていの人は一度は通る全文検索ですが、私の場合、以下のページなどを参考にいつもはMySQL+Sennaで実装します。(たぶん、MySQLで全文検索といったらこれが一番、普及しているような気がします)MySQLで全文検索 - FULLTEXTインデックスの基礎知識|blog|たたみラボMySQL FULLTEXT + Ngram : LIKE検索より数十倍高速な、お手軽 日本語全文検索 について|blog|たたみラボですが、今回はレンタルサーバーなので、MySQLはSSHクライアントから使えるのですが、当然rootはもっていませんし、Sennaをインストールしたり、my.cnf(MySQLのconfファイル)を書き換えたり、といったことも当然
MySQLMySQLの複合インデックスについて。MySQLを使いこなしている人には常識の範疇にはいる知識だと思うのですが、かつての私のように、知らないとドツボにはまるので、ここにまとめておきます。タイトルでどういう内容か、もしかしたら大体、想像がつくかなと思うのですが、MySQLは1つのクエリーで1つのテーブルに対し、1つのインデックスしか機能しないということです。ようするに、あるテーブルに対して、普通に大量のインデックスを張ってもあまり意味がありません。そこで、今回は、最適な複合インデックスはどのようにしてはることができるか考えていこうじゃないか、という趣旨で書いていきたいと思います。まずは分析。テスト環境でインデックスが使われていないSQLを集めるまずは、/etc/my.cnfのパラメータを以下のように設定し、インデックスが使われていないSQLをスロークエリーに吐き出します。 slow
MySQLさて、ここでコーヒーブレークして、MySQLの最適化について考えてみたいと思います。MySQLデータベース分散処理では、SQLを複数のサーバーやテーブルへと分散する方法についてご紹介させて頂きましたが、こちらは主に、個々のDBサーバーの最適化について考えてみたいと思います。大きくわけると、MySQLにおいては、以下のことがポイントになるかなと思います。(レプリケーションなどの分散系は他でさんざん触れているのでここでは割愛します)重要だと思う順番に列挙します。1.とにかく分析。できるだけ実際に近いデータでEXPLAINの結果を見たり、slow-queryを分析します。また、CPUの使用状況として、vmstatなどで、できるだけ常にiowaitが0近い状態にします。MySQLは癖が強いので、特に慣れていない人はセオリー通りにいかないことは結構あると思います。ですので、実際の分析を何よ
MySQLさて、今回は前回までの以下の記事を踏まえた上で、もう活用しない古いデータを読み取り専用のテーブルに移行することで、テーブルの分散と処理の高速化を図ろうというお話。MySQLのレプリケーションとパーティショニングの設計例(1)MySQLのレプリケーションとパーティショニングの設計例(2)MySQLのレプリケーションとパーティショニングの設計例(3)前回までの内容で、以下のように、test_user__1〜test_user__8までの8個のテーブル、およびtest_user_email_list、test_user_searchという、メールアドレス照合用、検索用のテーブルの計10個のテーブルを作成したのでした。今回はさらに、以下のようなtest_deleteuserというテーブルを作成し、管理画面からのみ閲覧できるようにします。話を簡単にするために、今回はtest_userテーブ
MySQL前回の記事で、SNSや出会い系などのコミュニティでよく使われる会員制のメールシステムを構築することを考えることを通して、MySQLのレプリケーションについて考えてみた。今回はそのお話の続きをします。さて、前回はテーブルを「ユーザー情報」「メール情報」の2つのスキーマに分割し、さらにそれぞれにレプリケーションを適応したのでした。メールのテーブル分割さて、今回は、さらにそのテーブルを複数に分割してみたいと思います。テーブルを分割する際に、まずはそのデータが何によって成り立っているかを考えてみます。まずはメールについて考えてみると、mixiなどを含む会員制のメールシステムにおいては、主に以下のような機能が提供されています。受信箱送信箱保存箱ごみ箱メール送受信機能メール削除これらをよく見てみると、どれも「特定のひとりのユーザー」にひもづいていることがわかります(メール送受信機能については
MySQL今まで、携帯の大規模サイトをいくつか運用してきて、過去には会員数300万人を超える携帯SNSをほぼ一人で作ったりしてきたわけだが、今回はその過程で得たMySQLの分散処理についてまとめたい。パラメータ系の設定はまた今度にして、とりあえず今回は設計のお話。まず、基本的にはどんなプログラムでも負荷に関して何らかの対策は必要で、常に意識すべきことではあるのですが、特にWEBアプリの場合、データベースの負荷対策が中心的な課題となります。その中でも、confファイルの編集やINDEX、個々のテーブル設計などで個々のデータベースのパフォーマンスチューニングを、テーブル全体の設計やレプリケーションなどの設計で冗長化による負荷の分散を行うわけですが、今回は後者に重点を置いてお話をしたいと思います。私の場合、行っている分散処理は実は非常に単純でして、主に下記の内容となります。レプリケーションスキー
cakePHP, Ajax, prototypecakePHPとajaxでjsonを扱ってみたのでその備忘録。まずはコントローラー側で必要なヘルパーとコンポーネントを追加する。ちなみに view でprototype.js を読み込んでいるがそこは省略wapp/controllers/hoge.php class HogeController extends AppController { var $helpers = array("Javascript"); /* 取りあえずは Javascriptヘルパーが必要 */ var $components = array("RequestHandler"); /* RequestHandlerコンポーネントが必要 */ /* コントローラのメソッドなど ... */ } ?> あれ?Ajaxヘルパーは?と思った方もいるだろうけど、Ajaxヘル
このページを最初にブックマークしてみませんか?
『d.hatena.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く