タグ

ブックマーク / tech.dclog.jp (19)

  • DECOLOGの絵文字変換処理

    こんにちは tommy です。今回は絵文字シリーズ後半ということで、DECOLOG サイトでの絵文字処理方式について解説したいと思います。正直な話誰得な感じもしますけれども、滲み出るカオス感を楽しんでいただければ幸いです。なお絵文字そのものの仕様については、適宜前回の記事を参照ください。 1. 携帯時代 まずはスマートフォン登場以前の話です。 絵文字DB に格納する DECOLOG の携帯版のサイトでは、ブラウザの入出力の文字コードは Shift JIS、アプリケーション (PHP) およびデータベース (MySQL) の内部コードは UTF-8 としています。よってアプリケーション内で Shift JIS - UTF-8 間の変換を行っています。文字コード変換には CP932 のマッピング (PHP では "SJIS-win") を使います。ここいら辺は割と定番だと思います。 さて、

    a2ikm
    a2ikm 2012/03/05
    RDSじゃutf8mb4が使えないorz
  • おとなの正しいおねだりのしかた

    こんにちは!レーシックにより生まれ変わりました!hiroshi改めhiroshi2.0です!(視力が2.0)夏が楽しみ!! さて、takaがAWSを使ったサービスについてのエントリを書いてますが、AWSを使いたいから採用したわけではないですし、会社組織なので使いたかったら使えるというもんでもないわけです。場合によっては田園調布に家が建つくらいのお金が動きうる話ですので、相応の行動を起こさねばいけません。このギャグ知らないか。 すなわち、意味があるかどうかをキチンと検討し、意味があるという結論になれば、それを理解してもらうべき人に理解してもらうというステップを踏む必要があります。 今回は、そのステップの足がかりのイメージがわかない人向けに、その足がかりが提供できればと思います。誰得なのかわかんないですけど。 当にAWSが必要なのか?意味があるのか?を検討する 当たり前といえば当たり前ですが

    a2ikm
    a2ikm 2012/03/02
    社内向けの提案の仕方
  • スマートフォンブラウザの絵文字事情

    こんにちは。tommy です。どういうわけか名前だけは時々出ていたと思うのですが、自分でエントリを書くのは初めてです。よろしくお願いします。 さて、DECOLOG では、ユーザーが投稿したテキストに含まれる絵文字を各キャリアに合わせて適宜変換して表示しています。携帯サイトでは当たり前にやっていることではありますが、DECOLOG の場合はそれに加えて携帯-スマートフォン間についても相互変換を実現しています。ここではそれをどのように実現しているかを 2 回に分けて解説していきたいと思います。 まず今回は、現状のスマートフォンのブラウザがどのように絵文字を扱っているのかを整理し、次回それに対して実際にどのような仕組みで対応しているかを説明したいと思います。 1. 携帯絵文字の仕様のおさらい 古き良き(?)携帯の絵文字の仕様については既に解説が既に多くありますので詳細は省略します。(きちんとした

  • Chefでサーバのセットアップ・管理作業を楽チンにしよう~選定編~

    >>hiroshiの母でございます。この度は(ry 最近お会いしたエンジニアの方から「他社さんのブログとかは規模や難易度が凄過ぎて真似できないことが多いんですが、DECOLOG TECH BLOGは僕らでも利用できるレベルのネタが多いので助かってます!」と言われて今まで感じたことのないキモチになったhiroshiです。 今回はChefのお話です。 去年の10月くらいの話だったんですが、「あっちのwebサーバとこっちのwebサーバ、設定微妙に違くね?」みたいなことが発覚し(いや、前から知ってたけど)、それ自体はその時点で大きな問題ではなかったんですが、「このままだといつかなんかやるよね」と危機感を覚え、システムの構成管理ができるようなツール探しをしました。 つまり、Chefとは上記ような問題点が解決できるツールで、パッケージやミドルウェア(って同じ?)を定義した状態に保ってくれるツールです。

    Chefでサーバのセットアップ・管理作業を楽チンにしよう~選定編~
  • 仲間大募集中その2-募集要項

    こんにちは。hiroshiことTECHチームの採用担当をしている諸富です。 お久しぶりのブログが技術的じゃないもので恐縮です。 かねてより僕たちはエンジニアを大募集していますが、募集要項をきちんと明示していなかったので、ここに募集要項を公開いたします。 募集要項 <勤務地>東京社 東京都渋谷区恵比寿南(転勤なし) <勤務時間>フレックスタイム制 コアタイム10:00~16:00(所定労働時間8時間)、休日:土日祝日、夏季休暇、年末年始休暇、有給休暇、その他特別休暇 <給与>年収400万~1000万を想定(経験・能力・前職での給与を考慮の上、規定により応相談)、賞与年2回、昇給年1回 <福利厚生>健康保険、厚生年金保険、雇用保険、労災保険、定期健康診断、社外研修・勉強会参加サポート(業務時間内、参加費負担)、業務にかかわる書籍代サポート、交通費支給(月額50,000まで) <その他>遠方に

  • 仲間募集のお知らせ

    2011/03/02 追記)募集要項を公開しました。 2012/02/15 追記)ページの最後に「募集しているのってエンジニアだけなの?」を追加しました。

  • redisの実用例。redis速いよredis

    こんにちは!hiroshiです! 今回は、最近DECOLOG界隈で大ブームのredisについて、その利用用途や導入方法についてお話ししたいと思います。 今回のお話と関連する過去エントリに以下がありますので、こちらに目を通していただいた上でエントリを読んでいただくと分かりやすいと思います。 NoSQL redisとMySQLのベンチマーク比較 redisのサービスへの投入 redis導入後にトラブル発生、そのレポート DECOLOGでのMySQL Archiveエンジンの使い方 …と、これまでのエントリからは実運用できてるのかどうか微妙なタッチになっているかもしれませんが、結論からいうと実運用できてます! 「redis導入後にトラブル発生、そのレポート」ではTTLを設定した場合にうまくいかないケースがあったのですが、TTLなしのデータでは特に問題なく運用できました。 現在のredisの利用

    a2ikm
    a2ikm 2011/02/08
    新しいものを導入するときは既存のものと並行しつつ、導入の割合を制御できる機構を組み込む/key-valueのvalueが数値で、そのカウントアップをする場合には最強
  • Hadoopサーバーの増やし方、減らし方

    すべての地雷を踏む男leonです。 Hadoopカスタマイズをネタにブログを始めさせていただきました。 前回、Hadoopセットアップ手順を紹介させていただいたので、今回からカスタマイズ話をしたいと思います。 Hadoopのincludeファイル、excludeファイルにハマった・・・。 今日はそのお話をさせていただきます。 話を始める前にincludeファイル、excludeファイルとはなんですかを説明しないとですね。 このincludeファイルとexcludeファイルはサーバーのslave接続を終了させる際に、ノードからデータを退避して脱退させる為に使用します。 includeファイルはデータノードへの接続を許可されるデータノード、JobTrackerに接続可能なTaskTrackerのホスト名を記述するファイルです。includeファイルはdfs.hostsプロパティとmapred.

  • Hadoopのカスタマイズ

    はじめましてミツバチワークスleonです。TECHチームの一員としてブログ連載をさせていただく機会をいただきました。 テーマはHadoopカスタマイズにします。 Hadoopは既にstoneさんが現在の運用で使っているテクニックを記事にされています。そこで私はHadoopのカスタマイズについてご紹介させていいただくことにします。私自身がHadoop初心者ということもあり、私は初歩からスタートさせていただこうと思います。お付き合いのほどよろしくお願いします。 Hadoopとは?から始めるのが礼儀かと思いますが、そこはwikipediaなどにお任せします。ご容赦ください。 何はともあれ立ち上がっているサービスがないと話を始められません。そこで、最初の最初はHADOOPのセットアップ手順のご紹介です。 実際、弊社ではHadoopに十数台のサーバーを投入していますが、わかりやすいように最小限のサー

  • ZABBIX勉強会でDECOLOGのシステム監視運用のお話をしました。

    こんにちは。落ちている点棒は拾う主義のhiroshiです。 今年最後のブログ更新になるかもしれないエントリーです。 去る2010年12月18日(土)18:30~に開催された「第3回ZABBIX勉強会」に登壇してみました! 第3回ZABBIX勉強会の概要はこちら 第3回ZABBIX勉強会の資料はこちら Ustはこちら きっかけは、TwitterでZABBIX-JP代表の寺島さんに「話してみませんか?」とご依頼いただいたことでした。やっててよかったTwitter!そして寺島さん!ありがとうございます! 今思えば「やりましょう。」っていうまたとないチャンスだったのに「DMでメールください」とか当にダサかったなあって反省しています。 なんていうか、僕こういう勉強会とかセミナーとか行ったことなかったので、非常に緊張してて、当日が近づくにつれ、何度か「病気になったことにしようかなー」とか思わなかった

    a2ikm
    a2ikm 2011/01/03
    知名度向上、その規模なりのノウハウの需要、勘や流れでやってた部分の裏を取るきっかけ、発表への慣れ
  • daemontoolsの利用法をいくつか

    こんにちわ、stoneです。 いままで、MySQL関連のご紹介をいくつかしてきましたが、今回は、少々切り口を変えて、daemontoolsについて、いくつかご紹介してみたいと思います。 daemontoolsのものすごく簡単な概要daemontoolsとは、プロセス監視を行ってくれるデーモンプロセスです。 監視対象のプロセスが、何らかの理由で落ちた場合、daemontoolsが自動的に再起動を行ってくれます。DECOLOGでは、qmail、memcached、keepalived、gearmand等のプロセス監視で利用しています。 daemontoolsそのものの詳しいことは、家サイトhttp://cr.yp.to/daemontools.html等を参照してください。 ディレクトリ構成daemontoolsは、/service/xxxxxxというディレクトリを見つけると、その下にあるr

    a2ikm
    a2ikm 2010/12/10
    「監視対象のプロセスが、何らかの理由で落ちた場合、daemontoolsが自動的に再起動を行ってくれます」
  • DECOLOGでのMySQL Archiveエンジンの使い方

    こんにちわ、stoneです。 今回は、MySQLのストレージエンジンの中の1つ、ArchiveエンジンのDECOLOGでの使い方をご紹介したいと思います。 ※「DECOLOGでのMySQL BlackHoleエンジンの使い方」も合わせてどうぞ Archiveエンジンの概要MySQLのマニュアルをご覧いただくのが正確なのですが、その特徴を簡単にまとめると。。。。 insert/selectは出来るが、update/deleteは出来ない order byはサポートされない blobもサポートされない データは圧縮されてディスクに保存される まぁ、最初にこのマニュアルを読んだときの、正直な感想は、 「どうやって使うんだ、これ?」 って感じでした。 deleteが出来ないので、データは溜まる一方だし、データは圧縮して保存されているので、selectもそんなに速くないことは容易に想像できます。 ア

    a2ikm
    a2ikm 2010/11/29
    解析用にとり貯めておくデータ用のストレージエンジン。insertが多いならLVSで分散させる。一つのDBに入っている必要はないものに限る。解析にはHadoopなどでバッチ処理
  • mysqlのテーブルの「のれん分け」

    大まかな手順は以下です。 三段構成にする。 slaveを切り替える masterを切り替える 余分なテーブルを落とす の4ステップです。 1.三段構成にする。 これはつまりこんな状態にすることをいいます。 この作業は基的には単純なslave増設と新規レプリケーション構成を組むのの組み合わせでできるので、前回のエントリ「replicationしてるMySQLのslave増設手順」を参考にしてください。 通常のレプリケーション構築との違う、ポイントとしては テーブル構成は最初は丸ままコピーすること 「New master」my.cnfの設定にlog-slave-updatesとreplicate-do-tableでノレン分けしたいテーブルを設定しておくこと です。 テーブル構成を丸ままコピーするのは、そうしないとレプリケーションが失敗するからです。replicate-ignore-dbやre

    mysqlのテーブルの「のれん分け」
    a2ikm
    a2ikm 2010/11/23
    テーブル別のシェーディングの手順//図の色合いが綺麗。何を使って描いてるんだろう?
  • replicationしてるMySQLのslave増設手順

    こんにちは、hiroshiです。おひさしぶりですね。 stoneが書いたhadoopの記事が打ち合わせとかで「見ましたよ。評判ですよ。」とか言われてジェラシーいっぱいです。 僕もがんばります。目指せホッテントり! といっても、僕だと書けることに限界があるので、今日は半定常作業のMySQLの増設作業について書こうと思います。 下図のように、master1台←slave2台がLVS+keepalivedで負荷分散構成されているDBがあるとします。 この構成の組み方にしようかと思ったのですが、これはググったらいっぱいあったのでホッテントリは狙えないと思ってやめました。 なので、今回のテーマは「このテーブルはwriteは余裕だけどreadがきつくなってきたからslaveを増設しなければ!」となった場合のslaveを増設する手順について書いてみます。 下図のslaveCを追加するぞ!の場合です。 ※

    replicationしてるMySQLのslave増設手順
  • DECOLOGでのMySQL BlackHoleエンジンの使い方

    こんにちわ、ミツバチワークス stoneです。 DECOLOGでは、データベースにMySQLを使用しています。 ストレージエンジンのメインはInnoDBなのですが、他にもMyISAM、BlackHole、Archiveエンジンを使っています。 今回は、その中でBlackHoleエンジンについて、DECOLOG内での利用方法をご紹介したいと思います。 BlackHoleエンジンについて BlackHoleエンジンは、何もしません。 insert、update、deleteを行っても、データは全く変更されませんし、selectをしても、データは何も返ってきません。 実際のデータファイルを見てみても、テーブル定義ファイルの.frm以外のファイルは作成されません。 /dev/nullと似ているイメージです。 が、BlackHoleのテーブルに対して発行されたinsert、update、delete

    a2ikm
    a2ikm 2010/11/08
    自身にデータは格納しないがbinlogは残すのでレプリケーションが可能。INSERTの応答も速い。レプリケーションの遅延が問題になる場合にはmemcachedにキャッシュすることで補完する
  • redis導入後にトラブル発生、そのレポート

    こんにちわ、ミツバチワークス stoneです。 今回は、redisシリーズ第3弾、実際にredisをサービスの投入してみて、うまく行かなかった事例についてご紹介します。 redisの使用用途 今回、いくつかあるセッションデータのうち2つをMySQLからredisへ移行させました。 これらのセッションデータ、MySQL上では、セッションIDの他に複数のカラムから構成されているのですが、redis上では、この複数のカラムをserialize()して、 key(string) => value(string) という形で格納するようにしました。 ちゃんとソースコードで確認はしていないのですが、memcachedでも、TTLが設定できますが、TTLを過ぎたデータを監視してクリアしていないですよね。 また、memcached内部のslabの構成次第では、TTLまでデータが保持されずに、データがクリア

  • redisのサービスへの投入

    こんにちわ、ミツバチワークス stoneです。 今回は、前回、ベンチマークをとったredisをサービスに投入した、その方法について、ご紹介します。 1 redisのセットアップ 1.1 redisをインストールredisは、2.0.2を使用しました。 redisのインストールは、 # tar zxvf redis-2.0.2.tar.gz # cd redis-2.0.2 # make install ですんなり出来ました。 コンパイルされたバイナリは、/usr/local/bin/以下にコピーされています。 1.2 コンフィグDECOLOGでは、ApacheとMySQLを除いて、daemontoolsを利用して運用しています。 そのため、redisのコンフィグは、デフォルトのredis.confから、以下の項目を修正してあります。 (デフォルトのredis.confは、redis-2.0

  • NoSQL redisとMySQLのベンチマーク比較

    という構成です。 サーバーAベンチーマークを取るサーバー このサーバー上で、abを走らせます サーバーBApache + PHPのサーバー DECOLOGで、実際にサービスしているWebサーバーと 同じセットアップをしてあります。 関係ありそうなソフトのバージョンを上げておくと。。。 Apache 2.2.x(MaxClients 200) PHP 5.2.x(APC 3.0.x) MySQLへの接続 PEAR::DB Redisへの接続1 owlient-phpredis-2.0.4-5 Redisへの接続2 Rediska0.5.0 と、なっています。 サーバーCMySQLサーバー バージョン: 5.0.x ストレージは、InnoDBBlackHole、Archiveを使用しました。 InnoDBのパラメーターのうち、スピードに関係ありそうなモノのは、 こんな↓感じで設定しています。

    NoSQL redisとMySQLのベンチマーク比較
    a2ikm
    a2ikm 2010/10/20
    redisといえばpusherapp/サービスに投入してみてわかることもある
  • HadoopによるApacheのログ解析の実際

    こんにちは、ミツバチワークス stoneです。 今日は、DECOLOGで行われている、Apacheのログ解析について、 ご紹介してみようかと思います。 現在、DECOLOGでは、リバースプロキシが8台あって、 その8台の1日のApacheのログは、全部で、200Gバイト以上になっています。 これを、13台のHadoopのスレーブノードで解析を行っています。 全体の流れとしては、 1) リバースプロキシからHDFSにログを転送 2) 解析用のサーバーで、HDFSにログの転送が終わるのを監視 3) ログの転送が終わったら、Hadoopを起動、解析 4) Hadoopの解析結果をデータベースに保存 以下では、各々のステップを個別に見て行くことにしますね。 1. リバースプロキシからHDFSにログを転送 当初、Hadoopのプロセスが立ち上がっていないと、HDFSにはアクセスできない、 と思い込ん

  • 1