SlideShare uma empresa Scribd logo
1 de 47
inside mixi
ソーシャルネットワークを支える技術
              Daichi Hiroki
廣木 大地(@hiroki_daichi)

株式会社mixi

システム本部技術部たんぽぽ開発G

 刺身にたんぽぽを乗せる仕事を無くす部隊

 火を消したり、火の用心の見回りしたりする

2008年新卒入社

 アプリケーションアーキテクチャ

 広告関連/技術教育/JavaScript開発支援など
Social Graph

       Diary        Voice       Calendar               Check
PC向け           スマートフォン向け    フィーチャフォン向け   API Service




mixiについて
多様なデバイスに多様なサービスを
2102万ユーザ(1430万)、297.7億PV/月                                (2010/7)
mixi                 2004
development
歴史の長いコード
機能間連携多い       2010
同一のコードベース
開発者数増         ついにメガプログラミングに
2つのスケーラビリティ
2つのスケーラビリティ


Performance : アクセス数の増加や変動に耐える



Development : 機能追加や多人数開発に耐える
memcached
揮発するKVS
汎用キャッシュ
LRU
Cacheとは?
         Cache    DataSource

更新に対して参照が多いデータの参照を高速に


 いつ、キャッシュにいれるか、更新されるか

 なにを、キャッシュにいれるか

 データ参照のホットスポットを発見して適応
通常データ             参照量の多い共通データ

         write                write
                                      複数台に同時書き込み
keyからketamaで一意のノードから読み書き




                      プロセスごとに異なるノードに問い合わせ

         read              read         read
Cache戦略の考え方
 Cache方式   Cache対象レイヤ


リードスルー     カラムレベル
ライトスルー     レコードレベル
変則ライトスルー   ドメインレベル
  (1)(2)   サービスレベル
Cache戦略の考え方
 Cache方式   Cache対象レイヤ


リードスルー     カラムレベル
ライトスルー     レコードレベル
変則ライトスルー   ドメインレベル
  (1)(2)   サービスレベル
リードスルー
読み込み時にキャッシュに追加
  client memcached data source
 読み込み要求
           キャッシュ問い合わせ


 キャッシュから                   特徴:
           データソース問い合わせ
                          実装が簡単。
                          Aspect
           戻り値をキャッシュに保存
                          Moose::Role
   ソースから                  Class::Method::Modifier
                          などで関数に透過的に
                          実装できる。更新時に
 書き込み要求
                          複数の読み込みの
            キャッシュ削除
                          問い合わせがデータ
            データソース更新
                          ソースにいく可能性アリ
ライトスルー
書き込み時にキャッシュに書き込む
  client memcached data source
  書き込み時
           キャッシュ書き込み


           データソース書き込み




  読み込み要求   読み込み時は、リードスルーと同様の実装




   特徴:書き込み粒度と読み込み粒度を一致させる必要がある。
           共通リソースへの同時書き込みがほぼないデータに有効
           キャッシュが存在しない期間がほぼ無い
変則ライトスルー(1)
DBに書き込んでから、マスターを読み出す
   client memcached data source
  書き込み時

           データソース書き込み

           データソース読み込み

           キャッシュデータ書き込み


  読み込み要求   読み込み時は、リードスルーと同様の実装




   特徴:書き込み粒度と読み込み粒度を一致させる必要が無い
           Master/Slave構成のDBの場合、Masterで読み書きの必要
           キャッシュが存在しない期間がほぼ無い
           社内オペレーションで操作する共通データなど
変則ライトスルー(2)
incrをうまく使い数を管理する
    client memcached data source
  書き込み時
           incr命令で加算する

           データソース書き込み




  読み込み要求   読み込み時は、リードスルーと同様の実装




   特徴:とりあつかえるのは数量のみ(select countの結果など)
           キャッシュが存在しない期間がほぼ無い
Cache戦略の考え方
 Cache方式   Cache対象レイヤ


リードスルー     カラムレベル
ライトスルー     レコードレベル
変則ライトスルー   ドメインレベル
  (1)(2)   サービスレベル
Cache戦略の考え方
 Cache方式   Cache対象レイヤ


リードスルー     カラムレベル
ライトスルー     レコードレベル
変則ライトスルー   ドメインレベル
  (1)(2)   サービスレベル
カラム単位キャッシュ
データ保存の最小単位/粒度最小
                         id   名前      年齢
user:1:name   大野         1    大野          29
                         2    櫻井          28
                         3    二宮          27
特徴:                     削除タイミング:
個別に参照頻度が高いデータ。          該当カラムが更新
get_multiなどで必要なカラムを収    データソース系モジュールで削除
集して柔軟に使いたいケー
ス。set_by_keyなど使えると局所性
もコントロールできて高速に。
行単位キャッシュ
レコード単位でキャッシュ

                       id    名前        年齢
user:1 {name:”大野”,     1     大野        29
          age:29}      2     櫻井        28
                       3     二宮        27
特徴:                  削除タイミング:
個別に参照頻度が高いテーブル       該当レコードが更新
カラム追加できない状況だと、       データソース系モジュールで削除
仕様変更に弱い
粒度と意味
行単位でキャッシュする分には代替できる
ケースが多い。ホットスポットを分析して、
キャッシュの粒度は意味に依存するほうがよい
ドメイン単位のキャッシュ
一つのモデル領域でデータを保存
            Userid                       名前        年齢
user:1   {                          1    大野         29
          name:”大野”,
                                    2    櫻井         28
          age:29,
                                    3    二宮         27
          program:
          [{id:1,’歌のおにいさん’},       id   owner_id         出演作品
          {id:2,”怪物くん”}]
                                   1    大野(1)      歌のおにいさん
         }
                                   2    大野(1)            怪物くん
                                   3    二宮(3)      フリーター家をかう


特徴:                            更新タイミング:
 サービス上のモデル分析の                  該当エンティティが更新
 妥当性が重要。                       モデル管理モジュールで更新
 大きすぎる粒度に注意。
 その範囲では仕様変更につよい
サービス単位
複数のドメイン領域で横断的にデータを保持
                 Us

                 日記サービスid
                        1
                        2
                        3
                             名前
                             大野
                             櫻井
                                       年齢
                                        29
                                        28
                                        27

history:1
                             二宮
                      id    owner_id     出演作品
                       1     大野(1)     歌のおにいさん
                       2     大野(1)       怪物くん    Us
                       3     二宮(3)     フリーター家を
                                                 ユーザデータid
                                                        1
                                                        2
                                                        3
                                                             名前
                                                             大野
                                                             櫻井
                                                                       年齢
                                                                        29
                                                                        28
                                                                        27
                                                             二宮
アプリケーション単位の                                           id
                                                       1
                                                            owner_id
                                                             大野(1)
                                                                         出演作品
                                                                       歌のおにいさん
                                                       2     大野(1)       怪物くん
表示、リストデータなど      Us                                    3     二宮(3)     フリーター家を


                 通知履歴  id
                        1
                        2
                        3
                             名前
                             大野
                             櫻井
                                       年齢
                                        29
                                        28
                                        27
                             二宮
                      id    owner_id     出演作品
                       1     大野(1)     歌のおにいさん
                       2     大野(1)       怪物くん
                       3     二宮(3)     フリーター家を




特徴:              削除タイミング:
参照データ頻度が大きく           Expireのみを期待する。
キャッシュやDBを複数個経由        ドメインごとの更新タイミングに
して出来上がるデータ。           フックポイントを仕込む(後述)
削除タイミングが難しい
粒度と抽象化
           View/Controller
                                       Cacheポイント

                  Service

      Model1            Model2

   DB1     KVS       DB1     Web API

 アクセス数や更新頻度に応じて適切に選択

   http://blog.nomadscafe.jp/2010/08/re-kazuho-
handlersocket-plugin-mycached-memcached-10.html
memcached
揮発するKVS
キャッシュ以外の
使い方
リリース時/復旧時にオペレータが制御
リリースと暖めと
 アクティベーション                                                                    write

                                                                       read           read
          service              [追加時刻,回復時間]

                                                                     アプリケーション側でユーザ毎に
                                                                        有効かどうかを計算
               キャッシュヒーティング
100
                                                                    決まった時間で線形にユーザの有効率を
               キャッシュ搭載率
               有効ユーザ数                                               あげていき、DB負荷を安定稼働状態まで
 75
               DB負荷                                                 キャッシュをあたためさせる。

 50




 25




 0
      1    2   3   4   5   6   7   8   9   10   11   12   13   14
memcached以外のcache
 cacheの種類       CPAN Module                        備考
                                         ketamaが実装されるのが
  デーモン      Cache::Memcached::Fast
                                         早かった

                                         mixiでは未使用/
 プロセス間      Cache::Swifty/TC
                                         Coherencyを保つの面倒
                                         memcachedコネクション
 プロセス内      Class::Data (Inheritable)
                                         一部memoizeとして

                                         DBコネクション/
 リクエスト      mod_perl2 pnotes             Singleton/Flyweight/
                                         memcached戻り値


 スコープ内      Scope::Session	             script/plack/job worker
memcached以外のcache
 cacheの種類       CPAN Module                        備考
                                         ketamaが実装されるのが
  デーモン      Cache::Memcached::Fast
                                         早かった

                                         mixiでは未使用/
 プロセス間      Cache::Swifty/TC
                                         Coherencyを保つの面倒
                                         memcachedコネクション
 プロセス内      Class::Data (Inheritable)
                                         一部memoizeとして

                                         DBコネクション/
 リクエスト キャッシュ値が一時的 Singleton/Flyweight/
        mod_perl2 pnotes
                                         memcached戻り値
            にずれるのを許容
 スコープ内      Scope::Session	             script/plack/job worker
コードの複雑さを防ぐ
キレイなコードが必要になる瞬間。
今そこにある危機にmixiが取り組んでいること
Model/
                         Social Graph
 Service

              Diary       Voice       Calendar         Check


       PC向け           スマートフォン向け   フィーチャフォン向け

                                         API Service




 View/
Controller
Profile
                   Customer
                    Support
      Diary                       Calendar



     News     Social Graph
複雑に各コンポーネントが依存し合うサービス要件
                           Check
          Voice


   Ad / Analysis              API Service

                   Home
凝集度             結合度


 1つの責任対してモジュールのカバー モジュールのカバーしている責任が、
 している範囲が広いか、狭いか。    どの程度結合しているか。
 高いほうが良い。           低いほうが良い。


凝集度を高く結合度を低く保つためのアーキテクチャ
   凝集度の低い状態   結合度の高い状態




     モジュール

                       モジュール
            モジュール
   モジュール
コンポーネント間の連携を
定義する原則
• ADP (The Acyclic Dependencies Principle)
   – 非循環依存の法則
• REP(Release Reuse Equivalency Principle)
   – 再利用・リリース等価原則
• SDP(The Stable Dependencies Principle )
   – 安定依存原則
• SAP(The Stable Abstractions Principle )
   – 安定度抽象度等価原則
• CRP(The Common Reuse Principle )
   – 全再利用原則
• CCP(The Common Closure Principle)
   – 閉鎖性共通原則
システムコンポーネント
  抽象度/安定度                    基礎ライブラリ

       高                            use

                             フレームワーク

       低                            use
コンポーネントの機能単位の
特徴から依存関係や用途などを                サービス
決める。             use   use                      use   use
依存性が広範囲で再帰的に                  register/call
なる状態を避け、
影響範囲を限定的にする。
                アプリケーション                      アプリケーション
システムコンポーネント
コンポーネント横断で利用できるAPIを制限する


JobQueueサーバを利用してユーザの行動をフック


 個別のアプリケーション
 の機能を他のアプリケーションから     サービス
 利用する方法を制限して、
 アプリケーション毎の清潔さを保つ
                      register/call

           アプリケーション                   アプリケーション
仲介者を通じて公開APIを定義
                                        Apps

        Apps


                 Apps
 Apps                    Apps           Broker   Apps



                        Resource File
          Apps
                                        Apps


すべてのモジュールの公開メソッド        BrokerにおしえたAPIだけ保守すれ
を保守する必要がある              ばよい。O(n)個のAPI


namespaceが別途ある言語なら、public interfaceと同義
Broker(内部Procedure)
コンポーネント横断で利用できるAPIを制限する


  --- diary.yaml
  getEntityTitle : Diary::Adapter::Entity
  getEntity      : Diary::Adapter::Entity
  createFeedback : Diary::Adapter::Feedback


登録したAPIはそれを構成する
モジュールよりも安定させる。
JobQueueの使いどころ
シェーピング
 突発的な負荷を緩衝して、スパイクを避ける

Joinの代替   論理/物理
 複数ソースにまたがっている関連情報を一貫させる

副次的な要件の処理
 異なる責務領域で必要になる処理
JobQueueのシステム構成
 Job
  Job


 WorkerWorkerWorker   WorkerWorkerWorker   WorkerWorkerWorker   WorkerWorkerWorker




      Q4M                  Q4M                 Q4M                Q4M

            Job
             Job

                             WebServer
                             WebServer
                              WebServer
JobQueueでPub-Sub
副次的要件の処理
                        sub   add_diary {
                              # 本来的な処理
 sub   add_diary {              日記作成イベントの発火
                        }
       # 本来的な処理
       健全化系モジュール処理                      JobQueue経由で
                                            関連要件を実行
        ニュース系処理
                                    健全化系モジュール処理
          広告系処理
                                      ニュース系処理
       サービスキャッシュ削除
 }
                                       広告系処理

                                    サービスキャッシュ削除
単純な処理に対して、複数の関連する要件が
     積み重なりコードが肥大化しやすい
Publisher-Subscriber
Brokerの一種で、1つのトピックに
                               健全化系モジュール処理
複数のサブスクライバが存在し                      Subscriber
それぞれを知らずに責務を果たす

                                    ニュース系処理
                                        Subscriber
                 日記作成イベント
     Publisher         Topic

                                         広告系処理
                                          Subscriber


                                 サービスキャッシュ削除
                                    Subscriber
ModelのCRUDにフック
 アプリケーション外から
 シンプルに見えるように

  Create
  Read
  Update
  Delete

個別コードの事情や構成に詳しくなくても利用できる
CRUDを捕捉したサービス
Us
                                                                     赤文字のようにシステム
日記     id
        1
        2
             名前
             大野
             櫻井
                       年齢
                        29
                        28       日記コメント
        3    二宮         27
                                                                     横断的に利用されるものも
      id
       1
            owner_id
             大野(1)
                         出演作品
                       歌のおにいさん
                                  日記イイネ!削除
       2
       3
             大野(1)
             二宮(3)
                         怪物くん
                       フリーター家を                                       それぞれのアプリケーション

                                     Us
                                                                     のCRUDを捕捉できれば、
Us


フォト                                  赤文字通知
      id     名前        年齢                  id    名前        年齢
       1
       2
             大野
             櫻井
                        29
                        28
                                            1
                                            2
                                                 大野
                                                 櫻井
                                                            29
                                                            28
                                                                     高い粒度のキャッシュを
       3     二宮         27                  3    二宮         27
     id
      1
            owner_id
             大野(1)
                         出演作品
                       歌のおにいさん
                                          id
                                           1
                                                owner_id
                                                 大野(1)
                                                             出演作品
                                                           歌のおにいさん   シンプルに実現できる。
      2      大野(1)       怪物くん              2     大野(1)       怪物くん
      3      二宮(3)     フリーター家を             3     二宮(3)     フリーター家を



Us
                                                      通知用DB書き込み
カレンダー
      id     名前        年齢
       1     大野         29
       2     櫻井         28
       3                27
     id
             二宮
            owner_id     出演作品                         通知用サービスキャッシュ
      1      大野(1)     歌のおにいさん
      2      大野(1)       怪物くん
      3      二宮(3)     フリーター家を
                                                      通知用サービスキャッシュクリア
Us
                                                      通知用DB更新
ボイス   id
       1
       2
             名前
             大野
             櫻井
                       年齢
                        29
                        28
       3     二宮         27
     id     owner_id     出演作品
      1      大野(1)     歌のおにいさん
      2      大野(1)       怪物くん
      3      二宮(3)     フリーター家を
まとめ
2つのスケーラビリティ

アクセスに耐える構成/機能追加に耐える構成

両方とも最終的には似てくる。

責務の分散構成≒負荷の分散構成

早く(速く)実装したければキレイに書く

設計の負債、ご利用は計画的に。
このひとを探しています。




      http://career.mixi.co.jp/
ご清聴
ありがとうございました

Mais conteúdo relacionado

Último

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Último (10)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

YAPC::Asia 2010 Inside Mixi

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n