Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

4,942 views
4,633 views

Published on

Published in: Technology
0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,942
On SlideShare
0
From Embeds
0
Number of Embeds
264
Actions
Shares
0
Downloads
20
Comments
0
Likes
19
Embeds 0
No embeds

No notes for slide

Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

  1. 1. Twitter4Jのプロモーション戦略たくさん使ってもらうためにしたこと Yusuke Yamamoto @yusuke
  2. 2. @yusuke#jjug_b11 #q
  3. 3. • 2007年5月∼• オープンソース• たくさん使って貰いたい• 営利目的ではない Yusuke Yamamoto @yusuke
  4. 4. Yusuke Yamamoto @yusuke
  5. 5. Twitter4Jの プロモーション 戦略たくさん使ってもらうためにしたこと Yusuke Yamamoto @yusuke
  6. 6. プロモーション Yusuke Yamamoto @yusuke
  7. 7. 活動プロモーション Yusuke Yamamoto @yusuke
  8. 8. 活動 手段プロモーション 広告出稿 インセンティブ 営業活動 口コミ Yusuke Yamamoto @yusuke
  9. 9. 目的 活動 手段 プロモーション 広告出稿 インセンティブ 営業活動 口コミ Yusuke Yamamoto @yusuke
  10. 10. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブ 営業活動 口コミ Yusuke Yamamoto @yusuke
  11. 11. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブブランド向上 営業活動 口コミ Yusuke Yamamoto @yusuke
  12. 12. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブブランド向上 営業活動売上最大化 口コミ Yusuke Yamamoto @yusuke
  13. 13. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブブランド向上 営業活動売上最大化 口コミ Yusuke Yamamoto @yusuke
  14. 14. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブブランド向上 営業活動ユーザー増加 口コミ Yusuke Yamamoto @yusuke
  15. 15. 目的 活動 手段知名度向上 プロモーションブランド向上ユーザー増加 Yusuke Yamamoto @yusuke
  16. 16. 目的 活動 手段知名度向上 プロモーションブランド向上ユーザー増加 Yusuke Yamamoto @yusuke
  17. 17. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上ユーザー増加 Yusuke Yamamoto @yusuke
  18. 18. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上 安心して使えるようにユーザー増加 Yusuke Yamamoto @yusuke
  19. 19. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上 安心して使えるようにユーザー増加 簡単に使えるように Yusuke Yamamoto @yusuke
  20. 20. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上 安心して使えるようにユーザー増加 簡単に使えるように Yusuke Yamamoto @yusuke
  21. 21. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上 安心して使えるようにユーザー増加 簡単に使えるように Yusuke Yamamoto @yusuke
  22. 22. Twitter4Jのプロモーション戦略 プロモーション Yusuke Yamamoto @yusuke
  23. 23. Twitter4Jのプロモーション戦略 プロモーション ユーザー層を広げる 安心して使えるように 簡単に使えるように Yusuke Yamamoto @yusuke
  24. 24. プロモーション Yusuke Yamamoto @yusuke
  25. 25. プロモーション• とにかく知って貰う‣ ブログ Yusuke Yamamoto @yusuke
  26. 26. プロモーション• とにかく知って貰う‣ ブログ Yusuke Yamamoto @yusuke
  27. 27. プロモーション• とにかく知って貰う‣ Twitter Yusuke Yamamoto @yusuke
  28. 28. プロモーション• とにかく知って貰う‣ Twitter Yusuke Yamamoto @yusuke
  29. 29. プロモーション• ニュース系サイト Yusuke Yamamoto @yusuke
  30. 30. プロモーション• ニュース系サイト: javanews.jp Yusuke Yamamoto @yusuke
  31. 31. プロモーション• ニュース系サイト: TheServerSide Yusuke Yamamoto @yusuke
  32. 32. プロモーション• ニュース系サイト: digg.com Yusuke Yamamoto @yusuke
  33. 33. プロモーション• ニュース系サイト: DZone.com Yusuke Yamamoto @yusuke
  34. 34. プロモーション• ニュース系サイト: マイナビ Yusuke Yamamoto @yusuke
  35. 35. プロモーション•見つけて貰う• 名前を分かりやすく‣ Twitter + Java = Twitter4J Yusuke Yamamoto @yusuke
  36. 36. プロモーション• 高いググラビリティ Yusuke Yamamoto @yusuke
  37. 37. ユーザー層を広げる Yusuke Yamamoto @yusuke
  38. 38. ユーザー層を広げる • 言語 • プラットフォーム Yusuke Yamamoto @yusuke
  39. 39. 対象言語を増やす• ユーザー: プログラマ Yusuke Yamamoto @yusuke
  40. 40. 対象言語を増やす• ユーザー: プログラマ‣ 手段: 言語を増やす Yusuke Yamamoto @yusuke
  41. 41. 対象言語を増やす• ユーザー: プログラマ‣ 手段: 言語を増やす • プログラミング言語 • 自然言語 Yusuke Yamamoto @yusuke
  42. 42. 対象言語を増やす {• ユーザー: プログラマ Java‣ 手段: 言語を増やす .Net • プログラミング言語 C Ruby Python • 自然言語 Yusuke Yamamoto @yusuke
  43. 43. 対象言語を増やす {• ユーザー: プログラマ Java‣ 手段: 言語を増やす .Net • プログラミング言語 C { 英語 Ruby 中国語 Python • 自然言語 ヒンディー語 ....日本語 Yusuke Yamamoto @yusuke
  44. 44. 対象言語を増やす {• ユーザー: プログラマ Java‣ 手段: 言語を増やす .Net • プログラミング言語 C { 英語 Ruby 中国語 Python • 自然言語 ヒンディー語 ....日本語 Yusuke Yamamoto @yusuke
  45. 45. 英語対応• マルチリンガルサイト‣ http://twitter4j.org/en/ : 英語‣ http://twitter4j.org/ja/ : 日本語 Yusuke Yamamoto @yusuke
  46. 46. 実装•jsp + サーブレットフィルタ• jspのファイル内に英語と日本語を混ぜて書ける $[ja:日本語]$[en:English] Yusuke Yamamoto @yusuke
  47. 47. 対象プラットフォームを増やす• プラットフォーム‣ Java • 1.4.x • 5.0 • 6.0 { リリース当時サポート • 7.0 Yusuke Yamamoto @yusuke
  48. 48. Java 1.4.xサポートの難しさ•拡張for文なし• Genericsなし• アノテーションなし• StringBuilderなし• Enumなし Yusuke Yamamoto @yusuke
  49. 49. Java 1.4.xサポートの難しさ••• 拡張for文なし• Genericsなし アノテーションなし { StringBuilderなし -target jsr14• Enumなし Yusuke Yamamoto @yusuke
  50. 50. Java 1.4.xサポートの難しさ•拡張for文なし• Genericsなし• アノテーションなし { -target jsr14•• StringBuilderなし Enumなし {使わない努力 Yusuke Yamamoto @yusuke
  51. 51. 参考情報 http://www.slideshare.net/yusukey/java7-8530853Java7シンタックスで レガシーコードを快適メンテナンス Yusuke Yamamoto @yusuke
  52. 52. 対象プラットフォームを増やす• プラットフォーム‣ Java • 1.4.x • 5.0 • 6.0 { リリース当時サポート • 7.0 Yusuke Yamamoto @yusuke
  53. 53. 対象プラットフォームを増やす• プラットフォーム‣ Java -target jsr14ではJava 7互換性に問題あり • 1.4.x • 5.0 • 6.0 { リリース当時サポート • 7.0 Yusuke Yamamoto @yusuke
  54. 54. 対象プラットフォームを増やす• プラットフォーム‣ Java -target jsr14ではJava 7互換性に問題あり • 1.4.x • 5.0 • 6.0 • 7.0 { 次期バージョンのサポート対象 Yusuke Yamamoto @yusuke
  55. 55. 対象プラットフォームを増やす• プラットフォーム‣ Java Yusuke Yamamoto @yusuke
  56. 56. 対象プラットフォームを増やす• プラットフォーム‣ Java‣ Google App Engine Yusuke Yamamoto @yusuke
  57. 57. 対象プラットフォームを増やす• プラットフォーム‣ Java‣ Google App Engine‣ Android Yusuke Yamamoto @yusuke
  58. 58. 対象プラットフォームを増やす• プラットフォーム‣ Java‣ Google App Engine‣ Android • 「対応しています」 • テストはしてない! • 報告があり次第対応 Yusuke Yamamoto @yusuke
  59. 59. Android対応• AndroidはJavaジャナイ• 両対応ライブラリは注意が必要http://www.slideshare.net/yusukey/android-6595931 Yusuke Yamamoto @yusuke
  60. 60. 安心して使える Yusuke Yamamoto @yusuke
  61. 61. 使う側から見て安心できるOSS•一般的なライセンス• 開発がアクティブ• コミュニティがアクティブ• ロードマップが明確• プロジェクトに設定しやすい Yusuke Yamamoto @yusuke
  62. 62. 一般的なライセンス•OSI公式ライセンス• 緩め(感染性がない)‣リリース当初: BSD‣ 現在: Apache License 2.0 Yusuke Yamamoto @yusuke
  63. 63. 開発がアクティブ•頑張る• Twitter APIの追加変更に即対応 Yusuke Yamamoto @yusuke
  64. 64. コミュニティがアクティブ• MLで素早く親切丁寧に対応 Yusuke Yamamoto @yusuke
  65. 65. コミュニティがアクティブ• MLで素早く親切丁寧に対応No GGRKS! Yusuke Yamamoto @yusuke
  66. 66. ロードマップが明確• JIRAで課題、ロードマップ公開 Yusuke Yamamoto @yusuke
  67. 67. • プロジェクトに設定しやすい • 古典的なライブラリの使い方 ‣zip/tgzをダウンロード・展開 ‣ jarをlibsディレクトリに配置 ‣ クラスパスに通す Yusuke Yamamoto @yusuke
  68. 68. • プロジェクトに設定しやすい • モダンなライブラリの使い方 • プロジェクトの依存を明記 • 対応ツール • Maven / Ivy / Grape / Gradle / Buildr / SBT • Maven Central Repoよりダウンロード • 自動的にクラスパスに追加 Yusuke Yamamoto @yusuke
  69. 69. 簡単に使える Yusuke Yamamoto @yusuke
  70. 70. 簡単に使えるOSS•サンプルコードが充実• ドキュメントが充実• ライブラリ依存関係• シンプルなパッケージ構成• 容易なトラブルシューティング Yusuke Yamamoto @yusuke
  71. 71. サンプルコードが充実•全メソッドにサンプルコード• .cmd / .sh で簡単に実行できる Yusuke Yamamoto @yusuke
  72. 72. ドキュメント• 多くのOSSで問題‣ ドキュメンテーションのメンテナン スコスト Yusuke Yamamoto @yusuke
  73. 73. ドキュメント• Twitter4Jのフォーカス‣ 簡単なサンプルコード例‣ 設定方法‣ 開発に参加する方法 Yusuke Yamamoto @yusuke
  74. 74. ライブラリ依存関係• 依存関係があると敷居が高い‣ クラスパスが分からない開発者 • NoClassDefFoundError!‣ 他の依存ライブラリと衝突 Yusuke Yamamoto @yusuke
  75. 75. ライブラリ依存関係• Twitter4Jはライブラリ依存なし‣ twitter4j-core.jarをクラスパスに通す だけ Yusuke Yamamoto @yusuke
  76. 76. ライブラリ依存関係• がんばって自作した‣ OAuth‣ BASE64‣ HttpClient Yusuke Yamamoto @yusuke
  77. 77. ライブラリ依存関係• パッケージを変更して内蔵‣ org.json.* → twitter4j.interna.org.json.* Yusuke Yamamoto @yusuke
  78. 78. ライブラリ依存関係• あれば自動的に使う‣ ロギング • Log4j / Commons Logging • SLF4J • LogBack • JUL(java.util.logging.*) Yusuke Yamamoto @yusuke
  79. 79. シンプルなパッケージ構成•import twitter4j.* で利用可能• 内部実装は twitter4j.internal.* に 配置 Yusuke Yamamoto @yusuke
  80. 80. 容易なトラブルシューティング • 例外スタックトレースの工夫 ‣ バージョンを織り込むtwitter4j.TwitterRuntimeException: A JSONArraytext must start with [ at 2 [character 3 line1]Relevant discussions can be on the Internet at: http://www.google.co.jp/search?q=610d24cf or http://www.google.co.jp/search?q=03587c2fTwitterException{exceptionCode=[610d24cf-03587c2f2efc4644-56189413], statusCode=-1, retryAfter=-1,rateLimitStatus=null,featureSpecificRateLimitStatus=null,version=2.2.5} Yusuke Yamamoto @yusuke
  81. 81. 容易なトラブルシューティング • 例外スタックトレースの工夫 ‣ 検索用コードを織り込むtwitter4j.TwitterRuntimeException: A JSONArraytext must start with [ at 2 [character 3 line1]Relevant discussions can be on the Internet at:http://www.google.co.jp/search?q=29f6cd28http://www.google.co.jp/search?q=00ded0d8TwitterException{exceptionCode=[610d24cf-03587c2f2efc4644-56189413], statusCode=-1, retryAfter=-1,rateLimitStatus=null,featureSpecificRateLimitStatus=null,version=2.2.5} Yusuke Yamamoto @yusuke
  82. 82. 容易なトラブルシューティング• 例外スタックトレースの工夫‣ 検索用コードを織り込む Yusuke Yamamoto @yusuke
  83. 83. #q Yusuke Yamamoto @yusuke
  84. 84. プロモーション ユーザー層を広げるブログ 言語Twitter プラットフォームニュースサイトググラビリティの高い名称安心して使える 簡単に使える一般的なライセンス サンプルコードが充実開発がアクティブ ドキュメントコミュニティがアクティブ ライブラリ依存関係ロードマップが明確 シンプルなパッケージ構成Maven対応 容易なトラブルシューティング
  85. 85. #ありがとうございました

×